diff options
Diffstat (limited to 'classes/image_ipk.oeclass')
-rw-r--r-- | classes/image_ipk.oeclass | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/classes/image_ipk.oeclass b/classes/image_ipk.oeclass index e69de29bb2..7821aa6c6d 100644 --- a/classes/image_ipk.oeclass +++ b/classes/image_ipk.oeclass @@ -0,0 +1,72 @@ +# TODO: +# - now that there is a rootfs_ipk one should re-use it here +# - also, the makedev-stuff should be configurable, there are devices +# out that use devfs and don't need no /dev-directory population +# We probably could do this with some gentoo-like "use devfs || ..." +# feature + +DEPENDS_prepend="ipkg-native ipkg-utils-native makedevs fakeroot-native mtd-native makedevs-native " +DEPENDS_append=" ${EXTRA_IMAGEDEPENDS}" + +PACKAGES = "" + +IMAGE_DEVICE_TABLE = "${@oe.which(oe.data.getVar('OEPATH', d, 1), 'files/device_table-minimal.txt')}" + +do_images[nostamp] = 1 +do_images[dirs] = ${TOPDIR} + +IPKG_ARGS = "-f ${DEPLOY_DIR_IMAGE}/ipkg.conf -o ${IMAGE_ROOTFS}" + +IMAGE_POSTPROCESS_COMMAND ?= "" + +fakeroot do_images () { + set -x + rm -rf ${IMAGE_ROOTFS} + + mkdir -p ${IMAGE_ROOTFS}/dev + makedevs -r ${IMAGE_ROOTFS} -D ${IMAGE_DEVICE_TABLE} + + touch ${DEPLOY_DIR_IPK}/Packages + ipkg-make-index -r ${DEPLOY_DIR_IPK}/Packages -p ${DEPLOY_DIR_IPK}/Packages -l ${DEPLOY_DIR_IPK}/Packages.filelist -m ${DEPLOY_DIR_IPK} + mkdir -p ${DEPLOY_DIR_IMAGE} + echo "src oe file:${DEPLOY_DIR_IPK}" > ${DEPLOY_DIR_IMAGE}/ipkg.conf + cat <<EOF >>${DEPLOY_DIR_IMAGE}/ipkg.conf +arch all 1 +arch any 1 +arch noarch 1 +arch ${TARGET_ARCH} 10 +EOF + for i in ${IPKG_ARCHS}; do + if [ $i != "all" ] && [ $i != "${TARGET_ARCH}" ]; then + echo "arch $i 5" >> ${DEPLOY_DIR_IMAGE}/ipkg.conf + fi + done + ipkg-cl ${IPKG_ARGS} update + ipkg-cl ${IPKG_ARGS} install ${IPKG_INSTALL} + + export D=${IMAGE_ROOTFS} + export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} + + for i in ${IMAGE_ROOTFS}/usr/lib/ipkg/info/*.preinst; do + if [ -f $i ] && ! sh $i; then + ipkg-cl ${IPKG_ARGS} flag unpacked `basename $i .preinst` + fi + done + for i in ${IMAGE_ROOTFS}/usr/lib/ipkg/info/*.postinst; do + if [ -f $i ] && ! sh $i; then + ipkg-cl ${IPKG_ARGS} flag unpacked `basename $i .postinst` + fi + done + + install -d ${IMAGE_ROOTFS}/${sysconfdir} + echo ${BUILDNAME} > ${IMAGE_ROOTFS}/${sysconfdir}/version + + ${IMAGE_POSTPROCESS_COMMAND} + + if test -z "$FAKEROOTKEY"; then + fakeroot -i ${TMPDIR}/fakedb.image oeimage -t ${IMAGE_FSTYPE} -e ${FILE} + else + oeimage -t ${IMAGE_FSTYPE} -e ${FILE} + fi +} +addtask images before do_build after do_install |