From 45e896bd416e533d2c05c5cfa0397954c51ab389 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 | 3 ++- meta/classes/package_deb.bbclass | 4 ++++ meta/classes/package_ipk.bbclass | 4 ++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 0c11c36583..48c1e4e4c4 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -996,6 +996,7 @@ def package_qa_check_deps(pkg, pkgdest, skip, d): check_valid_deps('RPROVIDES') check_valid_deps('RREPLACES') check_valid_deps('RCONFLICTS') + check_valid_deps('RBREAKS') QAPKGTEST[expanded-d] = "package_qa_check_expanded_d" def package_qa_check_expanded_d(package, d, messages): @@ -1339,7 +1340,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 a03c05b9f7..44c459a9ac 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -1376,6 +1376,7 @@ python emit_pkgdata() { write_if_exists(sf, pkg, 'RSUGGESTS') write_if_exists(sf, pkg, 'RREPLACES') write_if_exists(sf, pkg, 'RCONFLICTS') + write_if_exists(sf, pkg, 'RBREAKS') write_if_exists(sf, pkg, 'SECTION') write_if_exists(sf, pkg, 'PKG') write_if_exists(sf, pkg, 'ALLOW_EMPTY') @@ -2017,7 +2018,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 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 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 5475636418..eb879e48a6 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass @@ -243,6 +243,8 @@ python do_package_deb () { 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: @@ -255,6 +257,8 @@ python do_package_deb () { 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 a1e51ee690..7d3a6a4e9e 100644 --- a/meta/classes/package_ipk.bbclass +++ b/meta/classes/package_ipk.bbclass @@ -193,6 +193,8 @@ python do_package_ipk () { 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)) @@ -206,6 +208,8 @@ python do_package_ipk () { 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