[oe] [PATCH] classes: Modify rootfs_ipk.bbclass for -force-overwrite.

Alex Ferguson thoughtmonster at gmail.com
Fri Oct 29 14:08:54 UTC 2010


Rationale: In Jlime we ship a package called jlime-extras which
contains several files (configuration files, scripts, etc.), some
of which conflict with files provided by other packages. This is
intentional, and is for distro customization purposes. For example
we ship a modified version of the /usr/bin/startx script, some
alternative icons for applications, some modified .desktop files
and so on. Building an image with this jlime-extras package fails,
of course, due to conflicting files.

To overcome this issue, I have added a base-conditional to
rootfs_ipk.bbclass, adding the PACKAGE_FORCE_OVERWRITE variable
to IPKG_ARGS which enables -force-overwrite for opkg, and which
can be used in image recipes individually without affecting others.

I believe this functionality might be useful for everyone and comes
at almost no additional cost, which is why I'm sending this patch
for consideration by the OE developers.

I'd be more than happy to help in any way in order to get this in.

Thank you.

Signed-off-by: Alex Ferguson <thoughtmonster at gmail.com>
---
 classes/rootfs_ipk.bbclass |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass
index a4a8563..dd8586a 100644
--- a/classes/rootfs_ipk.bbclass
+++ b/classes/rootfs_ipk.bbclass
@@ -9,9 +9,10 @@ do_rootfs[depends] += "opkg-native:do_populate_sysroot"
 do_rootfs[lockfiles] = "${DEPLOY_DIR_IPK}.lock"
 
 IPKG_TMP_DIR = "${IMAGE_ROOTFS}-tmp"
-IPKG_ARGS = "-f ${IPKGCONF_TARGET} -o ${IMAGE_ROOTFS} -t ${IPKG_TMP_DIR} ${@base_conditional("PACKAGE_INSTALL_NO_DEPS", "1", "-nodeps", "", d)}"
+IPKG_ARGS = "-f ${IPKGCONF_TARGET} -o ${IMAGE_ROOTFS} -t ${IPKG_TMP_DIR} ${@base_conditional("PACKAGE_INSTALL_NO_DEPS", "1", "-nodeps", "", d)} ${@base_conditional("PACKAGE_FORCE_OVERWRITE", "1", "-force-overwrite", "", d)}"
 
 PACKAGE_INSTALL_NO_DEPS ?= "0"
+PACKAGE_FORCE_OVERWRITE ?= "0"
 
 # What support to provide for online management of packages at run time?
 #  full -> traditional system, opkg is installed with all metadata
-- 
1.7.3.2





More information about the Openembedded-devel mailing list