13:05 hrw@home:org.openembedded$ mtn diff classes/package.bbclass packages/pimlico/dates.inc packages/openmoko-pim/openmoko-dates_svn.bb # # old_revision [1ed405ffccbd44e0a25a79e91b04768f25f6d2a4] # # patch "classes/package.bbclass" # from [11f1fb0bda9849ac1e65a798ecb45a9d4818f571] # to [52ea8b44a7994453ab2fb8068d813ee29eb9c464] # # patch "packages/openmoko-pim/openmoko-dates_svn.bb" # from [3c8266f76280e518251f226f0bb8eb00dd1fc071] # to [20a9e6532534f98641249d3415259acb51f782d4] # # patch "packages/pimlico/dates.inc" # from [a64609f3f3056abc3ec4fb11dcea81c42a9757cb] # to [3c8175461e2a23c3fe274e3a505e5a6ee08ac90b] # ============================================================ --- classes/package.bbclass 11f1fb0bda9849ac1e65a798ecb45a9d4818f571 +++ classes/package.bbclass 52ea8b44a7994453ab2fb8068d813ee29eb9c464 @@ -573,11 +573,15 @@ python package_do_shlibs() { bb.mkdirhier(shlibs_dir) needed = {} + selfprovided = {} + private_libs = bb.data.getVar('PRIVATE_LIBS', d, 1) + print 'private libs: %s' % private_libs for pkg in packages.split(): needs_ldconfig = False bb.debug(2, "calculating shlib provides for %s" % pkg) needed[pkg] = [] + selfprovided[pkg] = [] sonames = list() top = os.path.join(workdir, "install", pkg) for root, dirs, files in os.walk(top): @@ -596,7 +600,9 @@ python package_do_shlibs() { needed[pkg].append(m.group(1)) m = re.match("\s+SONAME\s+([^\s]*)", l) if m and not m.group(1) in sonames: - sonames.append(m.group(1)) + if -1 == private_libs.find(m.group(1)): + sonames.append(m.group(1)) + selfprovided[pkg].append(m.group(1)) if m and libdir_re.match(root): needs_ldconfig = True shlibs_file = os.path.join(shlibs_dir, pkg + ".list") @@ -647,7 +653,24 @@ python package_do_shlibs() { bb.debug(2, "calculating shlib requirements for %s" % pkg) deps = list() + + print 'needed:' for n in needed[pkg]: + print n + + for sp in selfprovided[pkg]: + print 'sp: %s' % sp + try: + if needed[pkg].index(sp): + needed[pkg].remove(sp) + except: + print 'error: %s' % sp + + print 'needed 2:' + for n in needed[pkg]: + print n + + for n in needed[pkg]: if n in shlib_provider.keys(): (dep_pkg, ver_needed) = shlib_provider[n] @@ -663,6 +686,8 @@ python package_do_shlibs() { else: bb.note("Couldn't find shared library provider for %s" % n) + print deps + deps_file = os.path.join(workdir, "install", pkg + ".shlibdeps") if os.path.exists(deps_file): os.remove(deps_file) ============================================================ --- packages/openmoko-pim/openmoko-dates_svn.bb 3c8266f76280e518251f226f0bb8eb00dd1fc071 +++ packages/openmoko-pim/openmoko-dates_svn.bb 20a9e6532534f98641249d3415259acb51f782d4 @@ -1,10 +1,12 @@ RDEPENDS = "libedata-cal" DESCRIPTION = "Dates is a calendar application." SECTION = "openmoko/pim" LICENSE = "GPL" DEPENDS = "glib-2.0 gtk+ libglade eds-dbus openmoko-libs" RDEPENDS = "libedata-cal" +RCONFLICTS = "dates" +RREPLACES = "dates" PV = "0.1+svn${SRCDATE}" -PR = "r6" +PR = "r7" inherit gnome autotools pkgconfig gtk-icon-cache @@ -23,3 +25,4 @@ FILES_${PN} += "${datadir}/pixmaps/dates FILES_${PN} += "${datadir}/pixmaps/dates.png \ ${datadir}/dates/" +PRIVATE_LIBS = "libgtkdatesview.so.0" ============================================================ --- packages/pimlico/dates.inc a64609f3f3056abc3ec4fb11dcea81c42a9757cb +++ packages/pimlico/dates.inc 3c8175461e2a23c3fe274e3a505e5a6ee08ac90b @@ -1,8 +1,10 @@ RDEPENDS = "libedata-cal" DESCRIPTION = "Dates is a calendar application." LICENSE = "LGPL" SECTION = "x11" DEPENDS = "glib-2.0 gtk+ libglade eds-dbus" RDEPENDS = "libedata-cal" +RCONFLICTS = "openmoko-dates" +RREPLACES = "openmoko-dates" inherit autotools pkgconfig gtk-icon-cache @@ -15,3 +17,4 @@ do_install_append () { install -m 0644 ${D}/${datadir}/icons/hicolor/48x48/apps/dates.png ${D}/${datadir}/pixmaps/ } +PRIVATE_LIBS = "libgtkdatesview.so.0"