]> code.ossystems Code Review - openembedded-core.git/commitdiff
classes/rootfs_rpm: implement BAD_RECOMMENDATIONS for RPM
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Wed, 24 Jul 2013 16:26:08 +0000 (17:26 +0100)
committerSaul Wold <sgw@linux.intel.com>
Sun, 28 Jul 2013 06:28:29 +0000 (23:28 -0700)
Add support for the BAD_RECOMMENDATIONS variable that can be used to
prevent specific packages from being installed via an RRECOMMENDS
relationship when using the RPM backend. (Previously this
functionality was only available when using ipk packaging.)

In the process this moves the defaulting of BAD_RECOMMENDATIONS (as
empty) to bitbake.conf since it is no longer specific to the ipk
backend, as well as unifying some of the code that creates the
configuration for smart for use on the host and target.

Fixes [YOCTO #3916].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
meta/classes/package_rpm.bbclass
meta/classes/rootfs_ipk.bbclass
meta/classes/rootfs_rpm.bbclass
meta/conf/bitbake.conf

index 1537079bb059e48aa48afc637992f79b0cd7e0fc..324d83f7512b7d5a27584a72245080809cff587a 100644 (file)
@@ -224,6 +224,14 @@ translate_oe_to_smart() {
        export pkgs_to_install
 }
 
+package_write_smart_config() {
+       # Write common configuration for host and target usage
+       smart --data-dir=$1/var/lib/smart config --set rpm-nolinktos=1
+       smart --data-dir=$1/var/lib/smart config --set rpm-noparentdirs=1
+       for i in ${BAD_RECOMMENDATIONS}; do
+               smart --data-dir=$1/var/lib/smart flag --set ignore-recommends $i
+       done
+}
 
 #
 # Install a bunch of packages using rpm.
@@ -345,10 +353,9 @@ EOF
                rm -rf ${target_rootfs}/var/lib/smart
                smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-root=${target_rootfs}
                smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-dbpath=${rpmlibdir}
-               smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-nolinktos=1
-               smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-noparentdirs=1
                smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-extra-macros._var=${localstatedir}
                smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-extra-macros._tmppath=/install/tmp
+               package_write_smart_config ${target_rootfs}
                # Optional debugging
                #smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-log-level=debug
                #smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-log-file=/tmp/smart-debug-logfile
index 1403422ca70a7adba7996d2850062fe70b2c6625..c9650cb6c7ffdd5452a7d28f2c383161ec58a969 100644 (file)
@@ -21,8 +21,6 @@ OPKG_POSTPROCESS_COMMANDS = "ipk_insert_feed_uris; "
 
 OPKGLIBDIR = "${localstatedir}/lib"
 
-# Which packages to not install on the basis of a recommendation
-BAD_RECOMMENDATIONS ?= ""
 MULTILIBRE_ALLOW_REP = "${OPKGLIBDIR}/opkg"
 
 fakeroot rootfs_ipk_do_rootfs () {
index 1b09c8d5ff0830cf3875718449ad93e7a79371ec..30b52d4da2912dfa4815d5a114440d1b939d5b93 100644 (file)
@@ -163,8 +163,7 @@ rpm_setup_smart_target_config() {
        # Set up smart configuration for the target
        rm -rf ${IMAGE_ROOTFS}/var/lib/smart
        smart --data-dir=${IMAGE_ROOTFS}/var/lib/smart channel --add rpmsys type=rpm-sys -y
-       smart --data-dir=${IMAGE_ROOTFS}/var/lib/smart config --set rpm-nolinktos=1
-       smart --data-dir=${IMAGE_ROOTFS}/var/lib/smart config --set rpm-noparentdirs=1
+       package_write_smart_config ${IMAGE_ROOTFS}
        rm -f ${IMAGE_ROOTFS}/var/lib/smart/config.old
 }
 
index 62a39367441a5a221404decdfd444a607bc243ef..07eb4731902f2ffe3d9fe8d2005f3415481a1dd6 100644 (file)
@@ -753,6 +753,8 @@ COMBINED_FEATURES[vardeps] += "DISTRO_FEATURES MACHINE_FEATURES"
 SERIAL_CONSOLE ??= ""
 SERIAL_CONSOLES ??= "${@d.getVar('SERIAL_CONSOLE', True).replace(' ', ';')}"
 
+BAD_RECOMMENDATIONS ?= ""
+
 # Make sure MACHINE isn't exported
 # (breaks binutils at least)
 MACHINE[unexport] = "1"