sg3-utils: add newer buildable version
[openembedded.git] / classes / debian.bbclass
index d66c1fc..8f6e7d8 100644 (file)
@@ -1,7 +1,22 @@
+# Debian package renaming only occurs when a package is built
+# We therefore have to make sure we build all runtime packages
+# before building the current package to make the packages runtime
+# depends are correct
+#
+# Custom library package names can be defined setting
+# DEBIANNAME_ + pkgname to the desired name.
+#
+# Better expressed as ensure all RDEPENDS package before we package
+# This means we can't have circular RDEPENDS/RRECOMMENDS
+do_package_write_ipk[rdeptask] = "do_package"
+do_package_write_deb[rdeptask] = "do_package"
+do_package_write_tar[rdeptask] = "do_package"
+do_package_write_rpm[rdeptask] = "do_package"
+
 python debian_package_name_hook () {
        import glob, copy, stat, errno, re
 
-       workdir = bb.data.getVar('WORKDIR', d, 1)
+       pkgdest = bb.data.getVar('PKGDEST', d, 1)
        packages = bb.data.getVar('PACKAGES', d, 1)
 
        def socrunch(s):
@@ -30,7 +45,7 @@ python debian_package_name_hook () {
                sonames = []
                has_bins = 0
                has_libs = 0
-               pkg_dir = os.path.join(workdir, "install", orig_pkg)
+               pkg_dir = os.path.join(pkgdest, orig_pkg)
                for root, dirs, files in os.walk(pkg_dir):
                        if bin_re.match(root) and files:
                                has_bins = 1
@@ -74,9 +89,12 @@ python debian_package_name_hook () {
                        if soname_result:
                                (pkgname, devname) = soname_result
                                for pkg in packages.split():
-                                       if (bb.data.getVar('PKG_' + pkg, d)):
+                                       if (bb.data.getVar('PKG_' + pkg, d) or bb.data.getVar('DEBIAN_NOAUTONAME_' + pkg, d)):
                                                continue
-                                       if pkg == orig_pkg:
+                                       debian_pn = bb.data.getVar('DEBIANNAME_' + pkg, d)
+                                       if debian_pn:
+                                               newpkg = debian_pn
+                                       elif pkg == orig_pkg:
                                                newpkg = pkgname
                                        else:
                                                newpkg = pkg.replace(orig_pkg, devname, 1)
@@ -89,5 +107,5 @@ python debian_package_name_hook () {
 
 EXPORT_FUNCTIONS package_name_hook
 
-DEBIAN_NAMES = 1
+DEBIAN_NAMES = "1"