summaryrefslogtreecommitdiff
path: root/classes/rootfs_ipk.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'classes/rootfs_ipk.bbclass')
-rw-r--r--classes/rootfs_ipk.bbclass31
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() {