summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2008-11-06 16:23:32 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2008-11-06 16:23:32 +0000
commit436c5f4716bae47bf9ddddfe0cbaf595a3de46c7 (patch)
treef4f9a76d581903d2b62f58b490996552ed47d9e4
parent1e967ea93ee425dfca6857ec958e9a55160133ac (diff)
downloadopenembedded-core-contrib-436c5f4716bae47bf9ddddfe0cbaf595a3de46c7.tar.gz
classes: Add mechanism to install packages into images only if they've been built
-rw-r--r--meta/classes/image.bbclass2
-rw-r--r--meta/classes/rootfs_deb.bbclass14
-rw-r--r--meta/classes/rootfs_ipk.bbclass4
-rw-r--r--meta/classes/rootfs_rpm.bbclass4
4 files changed, 21 insertions, 3 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 8407cdd567..35b7e12498 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -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)
}
#
diff --git a/meta/classes/rootfs_deb.bbclass b/meta/classes/rootfs_deb.bbclass
index 55d2b920b6..411a6c4e71 100644
--- a/meta/classes/rootfs_deb.bbclass
+++ b/meta/classes/rootfs_deb.bbclass
@@ -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
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
index ce6dd797ec..07f418adbd 100644
--- a/meta/classes/rootfs_ipk.bbclass
+++ b/meta/classes/rootfs_ipk.bbclass
@@ -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}
diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass
index e3697cb12c..dcdd37c8ee 100644
--- a/meta/classes/rootfs_rpm.bbclass
+++ b/meta/classes/rootfs_rpm.bbclass
@@ -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"