]> code.ossystems Code Review - openembedded-core.git/commitdiff
classes: Add mechanism to install packages into images only if they've been built
authorRichard Purdie <rpurdie@linux.intel.com>
Thu, 6 Nov 2008 16:23:32 +0000 (16:23 +0000)
committerRichard Purdie <rpurdie@linux.intel.com>
Thu, 6 Nov 2008 16:23:32 +0000 (16:23 +0000)
meta/classes/image.bbclass
meta/classes/rootfs_deb.bbclass
meta/classes/rootfs_ipk.bbclass
meta/classes/rootfs_rpm.bbclass

index 8407cdd567fb5e79787f14710770a94ab3cb2e49..35b7e1249890736c4f7d944cda2c76055c7b121c 100644 (file)
@@ -9,6 +9,7 @@ INHIBIT_DEFAULT_DEPS = "1"
 # "export IMAGE_BASENAME" not supported at this time
 IMAGE_BASENAME[export] = "1"
 export PACKAGE_INSTALL ?= "${IMAGE_INSTALL}"
+PACKAGE_INSTALL_ATTEMPTONLY ?= ""
 
 # We need to recursively follow RDEPENDS and RRECOMMENDS for images
 do_rootfs[recrdeptask] += "do_deploy do_populate_staging"
@@ -36,6 +37,7 @@ python () {
     bb.data.setVarFlag('do_rootfs', 'depends', deps, d)
 
     runtime_mapping_rename("PACKAGE_INSTALL", d)
+    runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", d)
 }
 
 #
index 55d2b920b6e7ba211931ef869e2244ecadc18c8e..411a6c4e7108a185db27611c44147488b2104908 100644 (file)
@@ -81,12 +81,20 @@ fakeroot rootfs_deb_do_rootfs () {
                        if [ $? -ne 0 ]; then
                                exit 1
                        fi
-                       find ${IMAGE_ROOTFS} -name \*.dpkg-new | for i in `cat`; do
-                               mv $i `echo $i | sed -e's,\.dpkg-new$,,'`
-                       done
                done
        fi
 
+       rm ${WORKDIR}/temp/log.do_$target-attemptonly.${PID}
+       if [ ! -z "${PACKAGE_INSTALL_ATTEMPTONLY}" ]; then
+               for i in ${PACKAGE_INSTALL_ATTEMPTONLY}; do
+                       apt-get install $i --force-yes --allow-unauthenticated >> ${WORKDIR}/temp/log.do_$target-attemptonly.${PID} || true
+               done
+       fi
+
+       find ${IMAGE_ROOTFS} -name \*.dpkg-new | for i in `cat`; do
+               mv $i `echo $i | sed -e's,\.dpkg-new$,,'`
+       done
+
        install -d ${IMAGE_ROOTFS}/${sysconfdir}
        echo ${BUILDNAME} > ${IMAGE_ROOTFS}/${sysconfdir}/version
 
index ce6dd797ec8f82ef3c8009f3b836db8f1740681e..07f418adbddff8c3815ecfb7143bdfc5425dfd7f 100644 (file)
@@ -42,6 +42,10 @@ fakeroot rootfs_ipk_do_rootfs () {
                opkg-cl ${IPKG_ARGS} install ${PACKAGE_INSTALL}
        fi
 
+       if [ ! -z "${PACKAGE_INSTALL_ATTEMPTONLY}" ]; then
+               opkg-cl ${IPKG_ARGS} install ${PACKAGE_INSTALL_ATTEMPTONLY} > "${WORKDIR}/temp/log.do_rootfs_attemptonly.${PID}" || true
+       fi
+
        export D=${IMAGE_ROOTFS}
        export OFFLINE_ROOT=${IMAGE_ROOTFS}
        export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS}
index e3697cb12ca52738f213b5b3298cd72eb74f6668..dcdd37c8eede64181df8ce34d240941982da5e55 100644 (file)
@@ -110,6 +110,10 @@ EOF
                fakechroot yum ${YUMARGS} -y install ${PACKAGE_INSTALL}
        fi
 
+       if [ ! -z "${PACKAGE_INSTALL_ATTEMPTONLY}" ]; then
+               fakechroot yum ${YUMARGS} -y install ${PACKAGE_INSTALL_ATTEMPTONLY} > ${WORKDIR}/temp/log.do_$target-attemptonly.${PID} || true
+       fi
+
        # Add any recommended packages to the image
        # (added as an extra script since yum itself doesn't support this)
        yum-install-recommends.py ${IMAGE_ROOTFS} "fakechroot yum ${YUMARGS} -y install"