aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/image.bbclass15
-rw-r--r--meta/classes/populate_sdk_deb.bbclass2
-rw-r--r--meta/classes/populate_sdk_ipk.bbclass2
-rw-r--r--meta/classes/populate_sdk_rpm.bbclass2
-rw-r--r--meta/classes/rootfs_ipk.bbclass14
-rwxr-xr-xscripts/opkg-query-helper.py9
6 files changed, 24 insertions, 20 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index bc60f0d6c0..8217fb3254 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -179,6 +179,9 @@ ROOTFS_POSTPROCESS_COMMAND_prepend = "run_intercept_scriptlets; "
ROOTFS_POSTPROCESS_COMMAND += '${@base_contains("IMAGE_FEATURES", "debug-tweaks", "ssh_allow_empty_password; ", "",d)}'
# Enable postinst logging if debug-tweaks is enabled
ROOTFS_POSTPROCESS_COMMAND += '${@base_contains("IMAGE_FEATURES", "debug-tweaks", "postinst_enable_logging; ", "",d)}'
+# Write manifest
+IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
+ROOTFS_POSTPROCESS_COMMAND =+ "write_image_manifest ; "
# Set default postinst log file
POSTINST_LOGFILE ?= "${localstatedir}/log/postinstall.log"
@@ -381,6 +384,11 @@ fakeroot do_rootfs () {
${IMAGE_POSTPROCESS_COMMAND}
${MACHINE_POSTPROCESS_COMMAND}
+
+ if [ -n "${IMAGE_LINK_NAME}" -a -f "${IMAGE_MANIFEST}" ]; then
+ rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.manifest
+ ln -s ${IMAGE_NAME}.rootfs.manifest ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.manifest
+ fi
}
insert_feed_uris () {
@@ -602,12 +610,7 @@ make_zimage_symlink_relative () {
}
write_image_manifest () {
- rootfs_${IMAGE_PKGTYPE}_write_manifest
-
- if [ -n "${IMAGE_LINK_NAME}" ]; then
- rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.manifest
- ln -s ${IMAGE_NAME}.rootfs.manifest ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.manifest
- fi
+ list_installed_packages ver | sort > ${IMAGE_MANIFEST}
}
# Make login manager(s) enable automatic login.
diff --git a/meta/classes/populate_sdk_deb.bbclass b/meta/classes/populate_sdk_deb.bbclass
index ebb842ba86..a63280d1ef 100644
--- a/meta/classes/populate_sdk_deb.bbclass
+++ b/meta/classes/populate_sdk_deb.bbclass
@@ -84,6 +84,8 @@ list_installed_packages() {
echo "$pkg $fullpath $pkgarch"
fi
done
+ elif [ "$1" = "ver" ] ; then
+ ${DPKG_QUERY_COMMAND} -W -f='${Package} ${PackageArch} ${Version}\n'
else
${DPKG_QUERY_COMMAND} -W -f='${Package}\n'
fi
diff --git a/meta/classes/populate_sdk_ipk.bbclass b/meta/classes/populate_sdk_ipk.bbclass
index 04c71af42e..fc6ed536a8 100644
--- a/meta/classes/populate_sdk_ipk.bbclass
+++ b/meta/classes/populate_sdk_ipk.bbclass
@@ -70,6 +70,8 @@ list_installed_packages() {
echo "$pkg $fullpath $pkgarch"
fi
done
+ elif [ "$1" = "ver" ] ; then
+ opkg-cl ${OPKG_ARGS} status | opkg-query-helper.py -v
else
opkg-cl ${OPKG_ARGS} list_installed | awk '{ print $1 }'
fi
diff --git a/meta/classes/populate_sdk_rpm.bbclass b/meta/classes/populate_sdk_rpm.bbclass
index b0105931a1..67cccafe4c 100644
--- a/meta/classes/populate_sdk_rpm.bbclass
+++ b/meta/classes/populate_sdk_rpm.bbclass
@@ -162,6 +162,8 @@ list_installed_packages() {
${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH}\n]" | translate_smart_to_oe arch
elif [ "$1" = "file" ]; then
${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH} %{PACKAGEORIGIN}\n]" | translate_smart_to_oe file
+ elif [ "$1" = "ver" ]; then
+ ${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH} %{VERSION}\n]" | translate_smart_to_oe arch
else
${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH}\n]" | translate_smart_to_oe
fi
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
index 6ce3e5d908..dbe1c798a6 100644
--- a/meta/classes/rootfs_ipk.bbclass
+++ b/meta/classes/rootfs_ipk.bbclass
@@ -118,20 +118,6 @@ save_postinsts () {
done
}
-rootfs_ipk_write_manifest() {
- manifest=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest
- cp ${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/status $manifest
-
- sed '/Depends/d' -i $manifest
- sed '/Status/d' -i $manifest
- sed '/Architecture/d' -i $manifest
- sed '/Installed-Time/d' -i $manifest
- sed '/Auto-Installed/d' -i $manifest
- sed '/Recommends/d' -i $manifest
- sed '/Provides/d' -i $manifest
- sed '/Conflicts/d' -i $manifest
-}
-
remove_packaging_data_files() {
rm -rf ${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg
# We need the directory for the package manager lock
diff --git a/scripts/opkg-query-helper.py b/scripts/opkg-query-helper.py
index fa6c44fa8b..2fb1a78970 100755
--- a/scripts/opkg-query-helper.py
+++ b/scripts/opkg-query-helper.py
@@ -28,6 +28,7 @@ import re
archmode = False
filemode = False
+vermode = False
args = []
for arg in sys.argv[1:]:
@@ -35,6 +36,8 @@ for arg in sys.argv[1:]:
archmode = True
elif arg == '-f':
filemode = True
+ elif arg == '-v':
+ vermode = True
else:
args.append(arg)
@@ -60,6 +63,12 @@ for line in fileinput.input(args):
elif line.startswith("Architecture:"):
arch = line.split(": ")[1]
print("%s %s_%s_%s.ipk %s" % (pkg,pkg,ver,arch,arch))
+ elif vermode:
+ if line.startswith("Version:"):
+ ver = line.split(": ")[1]
+ elif line.startswith("Architecture:"):
+ arch = line.split(": ")[1]
+ print("%s %s %s" % (pkg,arch,ver))
else:
if line.startswith("Depends:"):
depval = line.split(": ")[1]