diff options
Diffstat (limited to 'classes/rootfs_ipk.bbclass')
| -rw-r--r-- | classes/rootfs_ipk.bbclass | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass index 16dd511fcb..77e573c260 100644 --- a/classes/rootfs_ipk.bbclass +++ b/classes/rootfs_ipk.bbclass @@ -5,9 +5,11 @@ # See image.bbclass for a usage of this. # -do_rootfs[depends] += "opkg-native:do_populate_staging" +do_rootfs[depends] += "opkg-native:do_populate_sysroot" +do_rootfs[lockfiles] = "${DEPLOY_DIR_IPK}.lock" -IPKG_ARGS = "-f ${IPKGCONF_TARGET} -o ${IMAGE_ROOTFS} ${@base_conditional("PACKAGE_INSTALL_NO_DEPS", "1", "-nodeps", "", d)}" +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)}" PACKAGE_INSTALL_NO_DEPS ?= "0" @@ -31,6 +33,7 @@ fakeroot rootfs_ipk_do_rootfs () { package_generate_ipkg_conf mkdir -p ${T} + mkdir -p ${IPKG_TMP_DIR} mkdir -p ${IMAGE_ROOTFS}${libdir}/opkg/ STATUS=${IMAGE_ROOTFS}${libdir}/opkg/status @@ -38,7 +41,7 @@ fakeroot rootfs_ipk_do_rootfs () { for i in ${BAD_RECOMMENDATIONS}; do echo "Package: $i" >> $STATUS echo "Architecture: ${TARGET_ARCH}" >> $STATUS - echo "Status: deinstall ok not-installed" >> $STATUS + echo "Status: deinstall hold not-installed" >> $STATUS echo >> $STATUS done @@ -56,6 +59,11 @@ fakeroot rootfs_ipk_do_rootfs () { if [ ! -z "${PACKAGE_INSTALL}" ]; then opkg-cl ${IPKG_ARGS} install ${PACKAGE_INSTALL} fi + if [ ! -z "${PACKAGE_INSTALL_ATTEMPTONLY}" ]; then + for i in ${PACKAGE_INSTALL_ATTEMPTONLY}; do + opkg-cl ${IPKG_ARGS} install $i 2>&1 || true + done > ${T}/log.do_rootfs-attemptonly.${PID} + fi export D=${IMAGE_ROOTFS} export OFFLINE_ROOT=${IMAGE_ROOTFS} @@ -68,18 +76,20 @@ fakeroot rootfs_ipk_do_rootfs () { fi for i in ${IMAGE_ROOTFS}${libdir}/opkg/info/*.preinst; do - if [ -f $i ] && ! sh $i; then + if [ -f $i ] && ! sh -e $i; then opkg-cl ${IPKG_ARGS} flag unpacked `basename $i .preinst` fi done for i in ${IMAGE_ROOTFS}${libdir}/opkg/info/*.postinst; do - if [ -f $i ] && ! sh $i configure; then + if [ -f $i ] && ! sh -e $i configure; then opkg-cl ${IPKG_ARGS} flag unpacked `basename $i .postinst` fi done install -d ${IMAGE_ROOTFS}/${sysconfdir} echo ${BUILDNAME} > ${IMAGE_ROOTFS}/${sysconfdir}/version + + ${ROOTFS_POSTPROCESS_COMMAND} if [ "${ONLINE_PACKAGE_MANAGEMENT}" != "none" ]; then if [ "${ONLINE_PACKAGE_MANAGEMENT}" == "add" ]; then @@ -88,18 +98,21 @@ fakeroot rootfs_ipk_do_rootfs () { else rm -f ${IMAGE_ROOTFS}${libdir}/opkg/lists/* fi - + + # Remove lists, but leave SHR's tmp dir if it exists. + rm -f ${IMAGE_ROOTFS}/var/lib/opkg/* || true + # Keep these lines until package manager selection is implemented ln -s opkg ${IMAGE_ROOTFS}${sysconfdir}/ipkg ln -s opkg ${IMAGE_ROOTFS}${libdir}/ipkg else rm -rf ${IMAGE_ROOTFS}${libdir}/opkg rm -rf ${IMAGE_ROOTFS}/usr/lib/opkg + rm -rf ${IMAGE_ROOTFS}/var/lib/opkg fi - - ${ROOTFS_POSTPROCESS_COMMAND} - + log_check rootfs + rm -rf ${IPKG_TMP_DIR} } rootfs_ipk_log_check() { |
