classes: Add mechanism to install packages into images only if they've been built

This commit is contained in:
Richard Purdie 2008-11-06 16:23:32 +00:00
parent 1e967ea93e
commit 436c5f4716
4 changed files with 21 additions and 3 deletions

View 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)
}
#

View 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

View 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}

View 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"