mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 00:39:46 +00:00
classes: Add mechanism to install packages into images only if they've been built
This commit is contained in:
@@ -9,6 +9,7 @@ INHIBIT_DEFAULT_DEPS = "1"
|
|||||||
# "export IMAGE_BASENAME" not supported at this time
|
# "export IMAGE_BASENAME" not supported at this time
|
||||||
IMAGE_BASENAME[export] = "1"
|
IMAGE_BASENAME[export] = "1"
|
||||||
export PACKAGE_INSTALL ?= "${IMAGE_INSTALL}"
|
export PACKAGE_INSTALL ?= "${IMAGE_INSTALL}"
|
||||||
|
PACKAGE_INSTALL_ATTEMPTONLY ?= ""
|
||||||
|
|
||||||
# We need to recursively follow RDEPENDS and RRECOMMENDS for images
|
# We need to recursively follow RDEPENDS and RRECOMMENDS for images
|
||||||
do_rootfs[recrdeptask] += "do_deploy do_populate_staging"
|
do_rootfs[recrdeptask] += "do_deploy do_populate_staging"
|
||||||
@@ -36,6 +37,7 @@ python () {
|
|||||||
bb.data.setVarFlag('do_rootfs', 'depends', deps, d)
|
bb.data.setVarFlag('do_rootfs', 'depends', deps, d)
|
||||||
|
|
||||||
runtime_mapping_rename("PACKAGE_INSTALL", d)
|
runtime_mapping_rename("PACKAGE_INSTALL", d)
|
||||||
|
runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", d)
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -81,12 +81,20 @@ fakeroot rootfs_deb_do_rootfs () {
|
|||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
find ${IMAGE_ROOTFS} -name \*.dpkg-new | for i in `cat`; do
|
|
||||||
mv $i `echo $i | sed -e's,\.dpkg-new$,,'`
|
|
||||||
done
|
|
||||||
done
|
done
|
||||||
fi
|
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}
|
install -d ${IMAGE_ROOTFS}/${sysconfdir}
|
||||||
echo ${BUILDNAME} > ${IMAGE_ROOTFS}/${sysconfdir}/version
|
echo ${BUILDNAME} > ${IMAGE_ROOTFS}/${sysconfdir}/version
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,10 @@ fakeroot rootfs_ipk_do_rootfs () {
|
|||||||
opkg-cl ${IPKG_ARGS} install ${PACKAGE_INSTALL}
|
opkg-cl ${IPKG_ARGS} install ${PACKAGE_INSTALL}
|
||||||
fi
|
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 D=${IMAGE_ROOTFS}
|
||||||
export OFFLINE_ROOT=${IMAGE_ROOTFS}
|
export OFFLINE_ROOT=${IMAGE_ROOTFS}
|
||||||
export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS}
|
export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS}
|
||||||
|
|||||||
@@ -110,6 +110,10 @@ EOF
|
|||||||
fakechroot yum ${YUMARGS} -y install ${PACKAGE_INSTALL}
|
fakechroot yum ${YUMARGS} -y install ${PACKAGE_INSTALL}
|
||||||
fi
|
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
|
# Add any recommended packages to the image
|
||||||
# (added as an extra script since yum itself doesn't support this)
|
# (added as an extra script since yum itself doesn't support this)
|
||||||
yum-install-recommends.py ${IMAGE_ROOTFS} "fakechroot yum ${YUMARGS} -y install"
|
yum-install-recommends.py ${IMAGE_ROOTFS} "fakechroot yum ${YUMARGS} -y install"
|
||||||
|
|||||||
Reference in New Issue
Block a user