debian: Set RPROVIDES to include the original packagename when renaming
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 19 Aug 2014 12:40:36 +0000 (13:40 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 25 Aug 2014 07:57:44 +0000 (08:57 +0100)
Currently its hard for a packagegroup recipe to depend on something who's name
can change unpredictably. We therefore add in RPROVIDES for the original
package name so that these are also available to use as dependencies.

(From OE-Core rev: 3409c4379559afbb1d1d29045582995147a33bbc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/debian.bbclass

index 47d3ed8..c859703 100644 (file)
@@ -52,6 +52,13 @@ python debian_package_name_hook () {
             return 0
         return (s[stat.ST_MODE] & stat.S_IEXEC)
 
+    def add_rprovides(pkg, d):
+        newpkg = d.getVar('PKG_' + pkg)
+        if newpkg and newpkg != pkg:
+            provs = (d.getVar('RPROVIDES_' + pkg, True) or "").split()
+            if pkg not in provs:
+                d.appendVar('RPROVIDES_' + pkg, " " + pkg)
+
     def auto_libname(packages, orig_pkg):
         sonames = []
         has_bins = 0
@@ -99,6 +106,7 @@ python debian_package_name_hook () {
                 (pkgname, devname) = soname_result
                 for pkg in packages.split():
                     if (d.getVar('PKG_' + pkg) or d.getVar('DEBIAN_NOAUTONAME_' + pkg)):
+                        add_rprovides(pkg, d)
                         continue
                     debian_pn = d.getVar('DEBIANNAME_' + pkg)
                     if debian_pn:
@@ -113,6 +121,9 @@ python debian_package_name_hook () {
                             newpkg = mlpre + newpkg
                     if newpkg != pkg:
                         d.setVar('PKG_' + pkg, newpkg)
+                        add_rprovides(pkg, d)
+        else:
+            add_rprovides(orig_pkg, d)
 
     # reversed sort is needed when some package is substring of another
     # ie in ncurses we get without reverse sort: