summaryrefslogtreecommitdiff
path: root/classes/image.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'classes/image.bbclass')
-rw-r--r--classes/image.bbclass69
1 files changed, 37 insertions, 32 deletions
diff --git a/classes/image.bbclass b/classes/image.bbclass
index f8d896d813..6350a733e8 100644
--- a/classes/image.bbclass
+++ b/classes/image.bbclass
@@ -32,6 +32,8 @@ python () {
for dep in (bb.data.getVar('EXTRA_IMAGEDEPENDS', d, True) or "").split():
deps += " %s:do_populate_staging" % dep
bb.data.setVarFlag('do_rootfs', 'depends', deps, d)
+
+ runtime_mapping_rename("PACKAGE_INSTALL", d)
}
#
@@ -43,17 +45,33 @@ python () {
# is searched for in the BBPATH (same as the old version.)
#
def get_devtable_list(d):
- import bb
- devtable = bb.data.getVar('IMAGE_DEVICE_TABLE', d, 1)
- if devtable != None:
- return devtable
- str = ""
- devtables = bb.data.getVar('IMAGE_DEVICE_TABLES', d, 1)
- if devtables == None:
- devtables = 'files/device_table-minimal.txt'
- for devtable in devtables.split():
- str += " %s" % bb.which(bb.data.getVar('BBPATH', d, 1), devtable)
- return str
+ import bb
+ devtable = bb.data.getVar('IMAGE_DEVICE_TABLE', d, 1)
+ if devtable != None:
+ return devtable
+ str = ""
+ devtables = bb.data.getVar('IMAGE_DEVICE_TABLES', d, 1)
+ if devtables == None:
+ devtables = 'files/device_table-minimal.txt'
+ for devtable in devtables.split():
+ str += " %s" % bb.which(bb.data.getVar('BBPATH', d, 1), devtable)
+ return str
+
+def get_imagecmds(d):
+ import bb
+ cmds = "\n"
+ old_overrides = bb.data.getVar('OVERRIDES', d, 0)
+ for type in bb.data.getVar('IMAGE_FSTYPES', d, True).split():
+ localdata = bb.data.createCopy(d)
+ bb.data.setVar('OVERRIDES', '%s:%s' % (type, old_overrides), localdata)
+ bb.data.update_data(localdata)
+ cmd = "\t#Code for image type " + type + "\n"
+ cmd += "\t${IMAGE_CMD_" + type + "}\n"
+ cmd += "\tcd ${DEPLOY_DIR_IMAGE}/\n"
+ cmd += "\trm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}." + type + "\n"
+ cmd += "\tln -s ${IMAGE_NAME}.rootfs." + type + " ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}." + type + "\n\n"
+ cmds += bb.data.expand(cmd, localdata)
+ return cmds
IMAGE_POSTPROCESS_COMMAND ?= ""
MACHINE_POSTPROCESS_COMMAND ?= ""
@@ -66,6 +84,7 @@ LINGUAS_INSTALL = "${@" ".join(map(lambda s: "locale-base-%s" % s, bb.data.getVa
do_rootfs[nostamp] = "1"
do_rootfs[dirs] = "${TOPDIR}"
+do_rootfs[lockfiles] = "${IMAGE_ROOTFS}.lock"
do_build[nostamp] = "1"
# Must call real_do_rootfs() from inside here, rather than as a separate
@@ -83,25 +102,11 @@ fakeroot do_rootfs () {
rootfs_${IMAGE_PKGTYPE}_do_rootfs
- insert_feed_uris
+ insert_feed_uris
${IMAGE_PREPROCESS_COMMAND}
-
- export TOPDIR=${TOPDIR}
- export DISTRO=${USERDISTRO}
- export MACHINE=${MACHINE}
- for type in ${IMAGE_FSTYPES}; do
- if test -z "$FAKEROOTKEY"; then
- fakeroot -i ${TMPDIR}/fakedb.image ${PYTHON} `which bbimage` -t $type -e ${FILE}
- else
- ${PYTHON} `which bbimage` -n "${IMAGE_NAME}" -t "$type" -e "${FILE}"
- fi
-
- cd ${DEPLOY_DIR_IMAGE}/
- rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.$type
- ln -s ${IMAGE_NAME}.rootfs.$type ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.$type
- done
+ ${@get_imagecmds(d)}
${IMAGE_POSTPROCESS_COMMAND}
@@ -119,19 +124,19 @@ do_deploy_to () {
insert_feed_uris () {
echo "Building feeds for [${DISTRO}].."
-
+
for line in ${FEED_URIS}
do
# strip leading and trailing spaces/tabs, then split into name and uri
line_clean="`echo "$line"|sed 's/^[ \t]*//;s/[ \t]*$//'`"
feed_name="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\1/p'`"
- feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`"
+ feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`"
echo "Added $feed_name feed with URL $feed_uri"
# insert new feed-sources
echo "src/gz $feed_name $feed_uri" >> ${IMAGE_ROOTFS}/etc/opkg/${feed_name}-feed.conf
- done
+ done
# Allow to use package deploy directory contents as quick devel-testing
# feed. This creates individual feed configs for each arch subdir of those
@@ -159,7 +164,7 @@ log_check() {
else
echo "Cannot find logfile [$lf_path]"
fi
- echo "Logfile is clean"
+ echo "Logfile is clean"
done
set -x
@@ -170,7 +175,7 @@ log_check() {
zap_root_password () {
sed 's%^root:[^:]*:%root:*:%' < ${IMAGE_ROOTFS}/etc/passwd >${IMAGE_ROOTFS}/etc/passwd.new
- mv ${IMAGE_ROOTFS}/etc/passwd.new ${IMAGE_ROOTFS}/etc/passwd
+ mv ${IMAGE_ROOTFS}/etc/passwd.new ${IMAGE_ROOTFS}/etc/passwd
}
create_etc_timestamp() {