From 90cca7c6c2eb617eaf7bb591a85c24ffd0a25c1c Mon Sep 17 00:00:00 2001 From: Andreas Oberritter Date: Wed, 10 Sep 2014 19:54:25 +0200 Subject: {insane,package{,_deb,_ipk}}.bbclass: support 'Breaks' control field by introducing RBREAKS Required by Debian Policy section 7.3. Signed-off-by: Andreas Oberritter --- meta/classes/insane.bbclass | 3 ++- meta/classes/package.bbclass | 4 ++-- meta/classes/package_deb.bbclass | 4 ++++ meta/classes/package_ipk.bbclass | 4 ++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 9605ac2bae..08e7694810 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -782,6 +782,7 @@ def package_qa_check_deps(pkg, pkgdest, d): check_valid_deps('RPROVIDES') check_valid_deps('RREPLACES') check_valid_deps('RCONFLICTS') + check_valid_deps('RBREAKS') QAPKGTEST[usrmerge] = "package_qa_check_usrmerge" def package_qa_check_usrmerge(pkg, d, messages): @@ -1245,7 +1246,7 @@ python () { if (d.getVar('PACKAGES') or "").split(): for dep in (d.getVar('QADEPENDS') or "").split(): d.appendVarFlag('do_package_qa', 'depends', " %s:do_populate_sysroot" % dep) - for var in 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RCONFLICTS', 'RPROVIDES', 'RREPLACES', 'FILES', 'pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm', 'ALLOW_EMPTY': + for var in 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RCONFLICTS', 'RPROVIDES', 'RREPLACES', 'RBREAKS', 'FILES', 'pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm', 'ALLOW_EMPTY': if d.getVar(var, False): issues.append(var) diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index d8bef3afb0..5781c3a0e5 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -1351,7 +1351,7 @@ EXPORT_FUNCTIONS package_name_hook PKGDESTWORK = "${WORKDIR}/pkgdata" -PKGDATA_VARS = "PN PE PV PR PKGE PKGV PKGR LICENSE DESCRIPTION SUMMARY RDEPENDS RPROVIDES RRECOMMENDS RSUGGESTS RREPLACES RCONFLICTS SECTION PKG ALLOW_EMPTY FILES CONFFILES FILES_INFO pkg_postinst pkg_postrm pkg_preinst pkg_prerm" +PKGDATA_VARS = "PN PE PV PR PKGE PKGV PKGR LICENSE DESCRIPTION SUMMARY RDEPENDS RPROVIDES RRECOMMENDS RSUGGESTS RREPLACES RCONFLICTS RBREAKS SECTION PKG ALLOW_EMPTY FILES CONFFILES FILES_INFO pkg_postinst pkg_postrm pkg_preinst pkg_prerm" python emit_pkgdata() { from glob import glob @@ -2116,7 +2116,7 @@ python package_depchains() { # Since bitbake can't determine which variables are accessed during package # iteration, we need to list them here: -PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm pkg_postinst_ontarget INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR USERADD_PARAM GROUPADD_PARAM CONFFILES SYSTEMD_SERVICE LICENSE SECTION pkg_preinst pkg_prerm RREPLACES GROUPMEMS_PARAM SYSTEMD_AUTO_ENABLE SKIP_FILEDEPS PRIVATE_LIBS" +PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS RBREAKS PKG ALLOW_EMPTY pkg_postinst pkg_postrm pkg_postinst_ontarget INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR USERADD_PARAM GROUPADD_PARAM CONFFILES SYSTEMD_SERVICE LICENSE SECTION pkg_preinst pkg_prerm RREPLACES GROUPMEMS_PARAM SYSTEMD_AUTO_ENABLE SKIP_FILEDEPS PRIVATE_LIBS" def gen_packagevar(d): ret = [] diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index fa0f8a373f..b6ce271b11 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass @@ -225,6 +225,8 @@ def deb_write_pkg(pkg, d): debian_cmp_remap(rreplaces) rconflicts = bb.utils.explode_dep_versions2(localdata.getVar("RCONFLICTS") or "") debian_cmp_remap(rconflicts) + rbreaks = bb.utils.explode_dep_versions2(localdata.getVar("RBREAKS", True) or "") + debian_cmp_remap(rbreaks) if rdepends: ctrlfile.write("Depends: %s\n" % bb.utils.join_deps(rdepends)) if rsuggests: @@ -237,6 +239,8 @@ def deb_write_pkg(pkg, d): ctrlfile.write("Replaces: %s\n" % bb.utils.join_deps(rreplaces)) if rconflicts: ctrlfile.write("Conflicts: %s\n" % bb.utils.join_deps(rconflicts)) + if rbreaks: + ctrlfile.write("Breaks: %s\n" % bb.utils.join_deps(rbreaks)) ctrlfile.close() for script in ["preinst", "postinst", "prerm", "postrm"]: diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass index 9f9da2f91d..efd7759b4d 100644 --- a/meta/classes/package_ipk.bbclass +++ b/meta/classes/package_ipk.bbclass @@ -190,6 +190,8 @@ def ipk_write_pkg(pkg, d): debian_cmp_remap(rreplaces) rconflicts = bb.utils.explode_dep_versions2(localdata.getVar("RCONFLICTS") or "") debian_cmp_remap(rconflicts) + rbreaks = bb.utils.explode_dep_versions2(localdata.getVar("RBREAKS", True) or "") + debian_cmp_remap(rbreaks) if rdepends: ctrlfile.write("Depends: %s\n" % bb.utils.join_deps(rdepends)) @@ -203,6 +205,8 @@ def ipk_write_pkg(pkg, d): ctrlfile.write("Replaces: %s\n" % bb.utils.join_deps(rreplaces)) if rconflicts: ctrlfile.write("Conflicts: %s\n" % bb.utils.join_deps(rconflicts)) + if rbreaks: + ctrlfile.write("Breaks: %s\n" % bb.utils.join_deps(rbreaks)) ctrlfile.write("Source: %s\n" % recipesource) ctrlfile.close() -- cgit 1.2.3-korg