diff options
author | Robert Schuster <thebohemian@gmx.net> | 2008-03-04 16:46:11 +0000 |
---|---|---|
committer | Robert Schuster <thebohemian@gmx.net> | 2008-03-04 16:46:11 +0000 |
commit | ba69123b245d6244b756a07f7118bfb11acb47f0 (patch) | |
tree | 6c0f87cbb91fb142e9b748fdc2628e8390f5edd0 /classes | |
parent | 25fe9599d951a3de39a2e8983810f2c6a40d74b0 (diff) | |
parent | b1fbc8c1b11f8c30bf327b4605defac0a3d47457 (diff) |
merge of '1d06736abd89e6b42d2eaf5918fcd17ad518fcb3'
and '3601bc2cdb1e980ccaf4f1de781d948df8d45545'
Diffstat (limited to 'classes')
-rw-r--r-- | classes/base.bbclass | 2 | ||||
-rw-r--r-- | classes/distutils-base.bbclass | 15 | ||||
-rw-r--r-- | classes/distutils.bbclass | 7 | ||||
-rw-r--r-- | classes/insane.bbclass | 11 | ||||
-rw-r--r-- | classes/mono.bbclass | 9 | ||||
-rw-r--r-- | classes/native.bbclass | 47 | ||||
-rw-r--r-- | classes/package.bbclass | 2 | ||||
-rw-r--r-- | classes/package_deb.bbclass | 4 | ||||
-rw-r--r-- | classes/package_ipk.bbclass | 4 | ||||
-rw-r--r-- | classes/pkgconfig.bbclass | 30 | ||||
-rw-r--r-- | classes/qt3e.bbclass | 4 | ||||
-rw-r--r-- | classes/qt3x11.bbclass | 2 | ||||
-rw-r--r-- | classes/rootfs_deb.bbclass | 8 | ||||
-rw-r--r-- | classes/sdk.bbclass | 12 | ||||
-rw-r--r-- | classes/sip.bbclass | 2 | ||||
-rw-r--r-- | classes/sip3.bbclass | 2 | ||||
-rw-r--r-- | classes/testlab.bbclass | 65 |
17 files changed, 137 insertions, 89 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass index 089cd5acd3..7609c05851 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -544,7 +544,7 @@ def oe_unpack_file(file, data, url = None): cmd = 'tar x --no-same-owner -f %s' % file elif file.endswith('.tgz') or file.endswith('.tar.gz') or file.endswith('.tar.Z'): cmd = 'tar xz --no-same-owner -f %s' % file - elif file.endswith('.tbz') or file.endswith('.tar.bz2'): + elif file.endswith('.tbz') or file.endswith('.tbz2') or file.endswith('.tar.bz2'): cmd = 'bzip2 -dc %s | tar x --no-same-owner -f -' % file elif file.endswith('.gz') or file.endswith('.Z') or file.endswith('.z'): cmd = 'gzip -dc %s > %s' % (file, efile) diff --git a/classes/distutils-base.bbclass b/classes/distutils-base.bbclass index 5150be76b9..c4551ace83 100644 --- a/classes/distutils-base.bbclass +++ b/classes/distutils-base.bbclass @@ -11,8 +11,17 @@ def python_dir(d): raise "No Python in STAGING_INCDIR. Forgot to build python-native ?" PYTHON_DIR = "${@python_dir(d)}" + +PACKAGES = "${PN}-dev ${PN}-dbg ${PN}-doc ${PN}" + FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*" -FILES_${PN}-dbg = "${libdir}/${PYTHON_DIR}/site-packages/.debug \ - ${libdir}/${PYTHON_DIR}/site-packages/*/.debug \ - ${libdir}/${PYTHON_DIR}/site-packages/*/*/.debug" +FILES_${PN}-dev += "\ + ${libdir}/pkgconfig \ + ${libdir}/${PYTHON_DIR}/site-packages/*.la \ +" +FILES_${PN}-dbg = "\ + ${libdir}/${PYTHON_DIR}/site-packages/.debug \ + ${libdir}/${PYTHON_DIR}/site-packages/*/.debug \ + ${libdir}/${PYTHON_DIR}/site-packages/*/*/.debug \ +" diff --git a/classes/distutils.bbclass b/classes/distutils.bbclass index 18aee09a26..fa34565eaf 100644 --- a/classes/distutils.bbclass +++ b/classes/distutils.bbclass @@ -13,16 +13,15 @@ distutils_do_compile() { } distutils_stage_headers() { - install -d ${STAGING_DIR_HOST}${layout_prefix}/lib/${PYTHON_DIR}/site-packages + install -d ${STAGING_DIR_HOST}${layout_libdir}/${PYTHON_DIR}/site-packages BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ ${STAGING_BINDIR_NATIVE}/python setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \ oefatal "python setup.py install_headers execution failed." } distutils_stage_all() { - install -d ${STAGING_DIR_HOST}${layout_prefix}/lib/${PYTHON_DIR}/site-packages - # is this missing a lib below? - PYTHONPATH=${STAGING_DIR_HOST}${layout_prefix}/${PYTHON_DIR}/site-packages \ + install -d ${STAGING_DIR_HOST}${layout_libdir}/${PYTHON_DIR}/site-packages + PYTHONPATH=${STAGING_DIR_HOST}${layout_libdir}/${PYTHON_DIR}/site-packages \ BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ ${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \ oefatal "python setup.py install (stage) execution failed." diff --git a/classes/insane.bbclass b/classes/insane.bbclass index 97cf036dd9..5ff49cd65e 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -333,12 +333,15 @@ def package_qa_check_staged(path,d): import os, bb sane = True - workdir = os.path.join(bb.data.getVar('TMPDIR', d, True), "work") + tmpdir = bb.data.getVar('TMPDIR', d, True) + workdir = os.path.join(tmpdir, "work") - if bb.data.inherits_class("native", d): + if bb.data.inherits_class("native", d) or bb.data.inherits_class("cross", d): installed = "installed=no" + pkgconfigcheck = workdir else: installed = "installed=yes" + pkgconfigcheck = tmpdir # find all .la and .pc files # read the content @@ -356,8 +359,8 @@ def package_qa_check_staged(path,d): sane = package_qa_handle_error(8, error_msg, "staging", path, d) elif file[-2:] == "pc": file_content = open(path).read() - if workdir in file_content: - error_msg = "%s failed sanity test (workdir) in path %s" % (file,root) + if pkgconfigcheck in file_content: + error_msg = "%s failed sanity test (tmpdir) in path %s" % (file,root) sane = package_qa_handle_error(6, error_msg, "staging", path, d) return sane diff --git a/classes/mono.bbclass b/classes/mono.bbclass index ccb16d9acc..cf8dd15bdf 100644 --- a/classes/mono.bbclass +++ b/classes/mono.bbclass @@ -52,6 +52,8 @@ def mono_find_provides_and_requires(files, d): requires = [e for e in requires if not e in provides] return provides, requires +CLILIBSDIR = "${STAGING_DIR_HOST}/clilibs" + python mono_do_clilibs() { import bb, os, re, os.path @@ -70,14 +72,9 @@ python mono_do_clilibs() { bb.error("WORKDIR not defined") return - staging = bb.data.getVar('STAGING_DIR', d, 1) - if not staging: - bb.error("STAGING_DIR not defined") - return - pkgdest = bb.data.getVar('PKGDEST', d, 1) - clilibs_dir = os.path.join(staging, "clilibs") + clilibs_dir = bb.data.getVar('CLILIBSDIR', d, 1) bb.mkdirhier(clilibs_dir) provides, requires = {}, {} diff --git a/classes/native.bbclass b/classes/native.bbclass index 934303cc0c..8f2b6f3fec 100644 --- a/classes/native.bbclass +++ b/classes/native.bbclass @@ -47,39 +47,33 @@ export AS = "${HOST_PREFIX}as" export RANLIB = "${HOST_PREFIX}ranlib" export STRIP = "${HOST_PREFIX}strip" - # Path prefixes -base_prefix = "${STAGING_DIR}/${BUILD_ARCH}-${BUILD_OS}" -prefix = "${base_prefix}" -exec_prefix = "${base_prefix}" +export base_prefix = "${STAGING_DIR_NATIVE}" +export prefix = "${STAGING_DIR_NATIVE}${layout_prefix}" +export exec_prefix = "${STAGING_DIR_NATIVE}${layout_exec_prefix}" # Base paths -base_bindir = "${base_prefix}/bin" -base_sbindir = "${base_prefix}/bin" -base_libdir = "${base_prefix}/lib" +export base_bindir = "${STAGING_DIR_NATIVE}${layout_base_bindir}" +export base_sbindir = "${STAGING_DIR_NATIVE}${layout_base_sbindir}" +export base_libdir = "${STAGING_DIR_NATIVE}${layout_base_libdir}" # Architecture independent paths -sysconfdir = "${prefix}/etc" -sharedstatedir = "${prefix}/com" -localstatedir = "${prefix}/var" -infodir = "${datadir}/info" -mandir = "${datadir}/man" -docdir = "${datadir}/doc" -servicedir = "${prefix}/srv" +export datadir = "${STAGING_DIR_NATIVE}${layout_datadir}" +export sysconfdir = "${STAGING_DIR_NATIVE}${layout_sysconfdir}" +export sharedstatedir = "${STAGING_DIR_NATIVE}${layout_sharedstatedir}" +export localstatedir = "${STAGING_DIR_NATIVE}${layout_localstatedir}" +export infodir = "${STAGING_DIR_NATIVE}${layout_infodir}" +export mandir = "${STAGING_DIR_NATIVE}${layout_mandir}" +export docdir = "${STAGING_DIR_NATIVE}${layout_docdir}" +export servicedir = "${STAGING_DIR_NATIVE}${layout_servicedir}" # Architecture dependent paths -bindir = "${exec_prefix}/bin" -sbindir = "${exec_prefix}/bin" -libexecdir = "${exec_prefix}/libexec" -libdir = "${exec_prefix}/lib" -includedir = "${exec_prefix}/include" -oldincludedir = "${exec_prefix}/include" - -# Datadir is made arch dependent here, primarily -# for autoconf macros, and other things that -# may be manipulated to handle crosscompilation -# issues. -datadir = "${exec_prefix}/share" +export bindir = "${STAGING_DIR_NATIVE}${layout_bindir}" +export sbindir = "${STAGING_DIR_NATIVE}${layout_sbindir}" +export libexecdir = "${STAGING_DIR_NATIVE}${layout_libexecdir}" +export libdir = "${STAGING_DIR_NATIVE}${layout_libdir}" +export includedir = "${STAGING_DIR_NATIVE}${layout_includedir}" +export oldincludedir = "${STAGING_DIR_NATIVE}${layout_includedir}" do_stage () { if [ "${INHIBIT_NATIVE_STAGE_INSTALL}" != "1" ] @@ -93,3 +87,4 @@ do_install () { } PKG_CONFIG_PATH .= "${EXTRA_NATIVE_PKGCONFIG_PATH}" +PKG_CONFIG_SYSROOT_DIR = "" diff --git a/classes/package.bbclass b/classes/package.bbclass index cb4417fc7f..325c0b52f5 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -519,7 +519,7 @@ if [ x"$D" = "x" ]; then fi } -SHLIBSDIR = "${STAGING_DIR}/${HOST_SYS}/shlibs" +SHLIBSDIR = "${STAGING_DIR_HOST}/shlibs" python package_do_shlibs() { import os, re, os.path diff --git a/classes/package_deb.bbclass b/classes/package_deb.bbclass index 1a3622c3bb..22b6166685 100644 --- a/classes/package_deb.bbclass +++ b/classes/package_deb.bbclass @@ -28,7 +28,7 @@ python do_package_deb_install () { pkgfn = bb.data.getVar('PKGFN', d, 1) rootfs = bb.data.getVar('IMAGE_ROOTFS', d, 1) debdir = bb.data.getVar('DEPLOY_DIR_DEB', d, 1) - stagingdir = bb.data.getVar('STAGING_DIR', d, 1) + apt_config = bb.data.expand('${STAGING_ETCDIR_NATIVE}/apt/apt.conf', d) stagingbindir = bb.data.getVar('STAGING_BINDIR_NATIVE', d, 1) tmpdir = bb.data.getVar('TMPDIR', d, 1) @@ -55,7 +55,7 @@ python do_package_deb_install () { # Set up environment apt_config_backup = os.getenv('APT_CONFIG') - os.putenv('APT_CONFIG', os.path.join(stagingdir, 'etc', 'apt', 'apt.conf')) + os.putenv('APT_CONFIG', apt_config) path = os.getenv('PATH') os.putenv('PATH', '%s:%s' % (stagingbindir, os.getenv('PATH'))) diff --git a/classes/package_ipk.bbclass b/classes/package_ipk.bbclass index de7f0fe0c4..2feaeba3b3 100644 --- a/classes/package_ipk.bbclass +++ b/classes/package_ipk.bbclass @@ -12,6 +12,10 @@ python package_ipk_fn () { } python package_ipk_install () { + # + # Warning - this function is not multimachine safe (see stagingdir reference)! + # + import os, sys pkg = bb.data.getVar('PKG', d, 1) pkgfn = bb.data.getVar('PKGFN', d, 1) diff --git a/classes/pkgconfig.bbclass b/classes/pkgconfig.bbclass index d2176d8b39..d65f8a6253 100644 --- a/classes/pkgconfig.bbclass +++ b/classes/pkgconfig.bbclass @@ -2,36 +2,10 @@ inherit base DEPENDS_prepend = "pkgconfig-native " -# The namespaces can clash here hence the two step replace -def get_pkgconfig_mangle(d): - import bb.data - s = "-e ''" - if not bb.data.inherits_class('native', d): - s += " -e 's:=${libdir}:=OELIBDIR:;'" - s += " -e 's:=${includedir}:=OEINCDIR:;'" - s += " -e 's:=${datadir}:=OEDATADIR:'" - s += " -e 's:=${prefix}:=OEPREFIX:'" - s += " -e 's:=${exec_prefix}:=OEEXECPREFIX:'" - s += " -e 's:OELIBDIR:${STAGING_LIBDIR}:;'" - s += " -e 's:OEINCDIR:${STAGING_INCDIR}:;'" - s += " -e 's:OEDATADIR:${STAGING_DATADIR}:'" - s += " -e 's:OEPREFIX:${STAGING_DIR_HOST}${layout_prefix}:'" - s += " -e 's:OEEXECPREFIX:${STAGING_DIR_HOST}${layout_exec_prefix}:'" - s += " -e 's:-L${WORKDIR}\S*: :g'" - s += " -e 's:-I${WORKDIR}\S*: :g'" - - return s - -do_install_append () { - for pc in `find ${D} -name '*.pc' -type f | grep -v -- '-uninstalled.pc$'`; do - sed -i ${@get_pkgconfig_mangle(d)} -e 's:${D}::g' -e 's:${STAGING_LIBDIR}:${libdir}:g' -e 's:${STAGING_INCDIR}:${includedir}:g' -e 's:${STAGING_DIR_TARGET}:${prefix}:g' ${pc} - done -} - do_stage_append () { + install -d ${PKG_CONFIG_DIR} for pc in `find ${S} -name '*.pc' -type f | grep -v -- '-uninstalled.pc$'`; do pcname=`basename $pc` - install -d ${PKG_CONFIG_DIR} - cat $pc | sed ${@get_pkgconfig_mangle(d)} -e 's:${D}${libdir}\S*:${STAGING_LIBDIR}:g' -e 's:${D}${prefix}/include\S*:${STAGING_INCDIR}:g' > ${PKG_CONFIG_DIR}/$pcname + cat $pc > ${PKG_CONFIG_DIR}/$pcname done } diff --git a/classes/qt3e.bbclass b/classes/qt3e.bbclass index 98c47adb90..35958b34ab 100644 --- a/classes/qt3e.bbclass +++ b/classes/qt3e.bbclass @@ -1,8 +1,8 @@ # # override variables set by qmake_base to compile Qt/X11 apps # -export QTDIR="${STAGING_DIR}/${HOST_SYS}/qte3" -export QTEDIR="${STAGING_DIR}/${HOST_SYS}/qte3" +export QTDIR="${STAGING_DIR_HOST}/qte3" +export QTEDIR="${STAGING_DIR_HOST}/qte3" export OE_QMAKE_UIC="${STAGING_BINDIR_NATIVE}/uic3" export OE_QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc3" export OE_QMAKE_CXXFLAGS="${CXXFLAGS} " diff --git a/classes/qt3x11.bbclass b/classes/qt3x11.bbclass index 67f2cf7348..5408b7f342 100644 --- a/classes/qt3x11.bbclass +++ b/classes/qt3x11.bbclass @@ -3,7 +3,7 @@ EXTRA_QMAKEVARS_POST += "CONFIG+=thread" # # override variables set by qmake_base to compile Qt/X11 apps # -export QTDIR = "${STAGING_DIR}/${HOST_SYS}/qt3" +export QTDIR = "${STAGING_DIR_HOST}/qt3" export OE_QMAKE_UIC = "${STAGING_BINDIR_NATIVE}/uic3" export OE_QMAKE_MOC = "${STAGING_BINDIR_NATIVE}/moc3" export OE_QMAKE_CXXFLAGS = "${CXXFLAGS} -DQT_NO_XIM" diff --git a/classes/rootfs_deb.bbclass b/classes/rootfs_deb.bbclass index c2c4a764e4..5237285e4c 100644 --- a/classes/rootfs_deb.bbclass +++ b/classes/rootfs_deb.bbclass @@ -10,12 +10,8 @@ fakeroot rootfs_deb_do_rootfs () { mkdir -p ${IMAGE_ROOTFS}/var/dpkg/info mkdir -p ${IMAGE_ROOTFS}/var/dpkg/updates - mkdir -p ${STAGING_ETCDIR_NATIVE}/apt/ - rm -f ${STAGING_ETCDIR_NATIVE}/apt/sources.list.rev rm -f ${STAGING_ETCDIR_NATIVE}/apt/preferences - > ${STAGING_ETCDIR_NATIVE}/apt/sources.list.rev - > ${STAGING_ETCDIR_NATIVE}/apt/preferences > ${IMAGE_ROOTFS}/var/dpkg/status > ${IMAGE_ROOTFS}/var/dpkg/available # > ${STAGING_DIR}/var/dpkg/status @@ -40,9 +36,9 @@ fakeroot rootfs_deb_do_rootfs () { priority=$(expr $priority + 5) done - tac ${STAGING_ETCDIR_NATIVE}/apt/sources.list.rev > ${STAGING_DIR}/etc/apt/sources.list + tac ${STAGING_ETCDIR_NATIVE}/apt/sources.list.rev > ${STAGING_ETCDIR_NATIVE}/apt/sources.list - cat "${STAGING_DIR}/etc/apt/apt.conf.sample" \ + cat "${STAGING_ETCDIR_NATIVE}/apt/apt.conf.sample" \ | sed -e 's#Architecture ".*";#Architecture "${TARGET_ARCH}";#' \ > "${STAGING_ETCDIR_NATIVE}/apt/apt-rootfs.conf" diff --git a/classes/sdk.bbclass b/classes/sdk.bbclass index 63f12117eb..71c65a1629 100644 --- a/classes/sdk.bbclass +++ b/classes/sdk.bbclass @@ -6,15 +6,16 @@ OLD_PACKAGE_ARCH := ${PACKAGE_ARCH} PACKAGE_ARCH = "${BUILD_ARCH}-${OLD_PACKAGE_ARCH}-sdk" HOST_ARCH = "${BUILD_ARCH}" -HOST_VENDOR = "${BUILD_VENDOR}" +# This isn't BUILD_VENDOR since we don't want to clash with native staging +HOST_VENDOR = "${TARGET_VENDOR}" HOST_OS = "${BUILD_OS}" HOST_PREFIX = "${BUILD_PREFIX}" HOST_CC_ARCH = "${BUILD_CC_ARCH}" -CPPFLAGS = "${BUILD_CPPFLAGS}" -CFLAGS = "${BUILD_CFLAGS}" -CXXFLAGS = "${BUILD_CFLAGS}" -LDFLAGS = "${BUILD_LDFLAGS}" +CPPFLAGS = "${BUILDSDK_CPPFLAGS}" +CFLAGS = "${BUILDSDK_CFLAGS}" +CXXFLAGS = "${BUILDSDK_CFLAGS}" +LDFLAGS = "${BUILDSDK_LDFLAGS}" # Path prefixes prefix = "${SDK_PREFIX}" @@ -49,3 +50,4 @@ FILES_${PN}-dbg += "${prefix}/.debug \ ${prefix}/bin/.debug \ " +export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${HOST_SYS}" diff --git a/classes/sip.bbclass b/classes/sip.bbclass index ae186bd04a..30c08b1ed9 100644 --- a/classes/sip.bbclass +++ b/classes/sip.bbclass @@ -55,6 +55,8 @@ sip_do_generate() { done } +do_generate[deptask] = "do_populate_staging" + EXPORT_FUNCTIONS do_generate addtask generate after do_unpack do_patch before do_configure diff --git a/classes/sip3.bbclass b/classes/sip3.bbclass index 1dd42ba86b..7ecc63bf02 100644 --- a/classes/sip3.bbclass +++ b/classes/sip3.bbclass @@ -53,6 +53,8 @@ sip3_do_generate() { done } +do_generate[deptask] = "do_populate_staging" + EXPORT_FUNCTIONS do_generate addtask generate after do_unpack do_patch before do_configure diff --git a/classes/testlab.bbclass b/classes/testlab.bbclass new file mode 100644 index 0000000000..5a88f3de62 --- /dev/null +++ b/classes/testlab.bbclass @@ -0,0 +1,65 @@ +# +# Performs various tests and analysises on images +# +# Copyright (C) 2007, 2008 Koen Kooi <koen@openembedded.org> + +# The current features are: +# 1) dump a list of installed packages +# 2) dump a list of sizes of installed packages +# 3) dependency graphs of installed packages + +# See +# * http://dominion.thruhere.net/koen/cms/the-testlab-strikes-again +# * http://dominion.thruhere.net/koen/cms/package-relations-inside-images +# for use cases + +# TODO: +# * log information to a server for safekeeping +# * use mtn certs to record this info into the scm +# * add test suite to run on the target device + + +# Needs 'dot', 'ipkg-cl' + +do_testlab() { +if [ -e ${IMAGE_ROOTFS}/etc/ipkg ] ; then + + TESTLAB_DIR="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-testlab" + mkdir -p ${TESTLAB_DIR}/ + ls -laR ${IMAGE_ROOTFS} >& ${TESTLAB_DIR}/files-in-image.txt + + echo > ${TESTLAB_DIR}/installed-packages.txt + echo -e "digraph depends {\n node [shape=plaintext]" > ${TESTLAB_DIR}/depends.dot + + for pkg in $(ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -o ${IMAGE_ROOTFS} list_installed | awk '{print $1}') ; do + ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -o ${IMAGE_ROOTFS} info $pkg | grep Filename | awk -F: '{print $2}' >> ${TESTLAB_DIR}/installed-packages.txt + + for depends in $(ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -o ${IMAGE_ROOTFS} info $pkg | grep Depends) ; do + echo "$pkg OPP $depends;" | grep -v "(" | grep -v ")" | grep -v Depends | sed -e 's:,::g' -e 's:-:_:g' -e 's:\.:_:g' -e 's:+::g' |sed 's:OPP:->:g' >> ${TESTLAB_DIR}/depends.dot + done + + for recommends in $(ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -o ${IMAGE_ROOTFS} info $pkg | grep Recom) ; do + echo "$pkg OPP $recommends [style=dotted];" | grep -v "(" | grep -v ")" | grep -v Recom | sed -e 's:,::g' -e 's:-:_:g' -e 's:\.:_:g' -e 's:+::g' |sed 's:OPP:->:g' >> ${TESTLAB_DIR}/depends.dot + done + done + + echo "}" >> ${TESTLAB_DIR}/depends.dot + + grep -v kernel_2 ${TESTLAB_DIR}/depends.dot | grep -v kernel_image > ${TESTLAB_DIR}/depends-nokernel.dot + grep -v libc6 ${TESTLAB_DIR}/depends-nokernel.dot | grep -v libgcc > ${TESTLAB_DIR}/depends-nokernel-nolibc.dot + grep -v update_ ${TESTLAB_DIR}/depends-nokernel-nolibc.dot > ${TESTLAB_DIR}/depends-nokernel-nolibc-noupdate.dot + grep -v kernel_module ${TESTLAB_DIR}/depends-nokernel-nolibc-noupdate.dot > ${TESTLAB_DIR}/depends-nokernel-nolibc-noupdate-nomodules.dot + + #dot has some library troubles when run under fakeroot, uncomment at your own risk + #dot -Tpng -o ${TESTLAB_DIR}/image-dependencies.png ${TESTLAB_DIR}/depends.dot + #dot -Tpng -o ${TESTLAB_DIR}/image-dependencies-nokernel-nolibc.png ${TESTLAB_DIR}/depends-nokernel-nolibc.dot + #dot -Tpng -o ${TESTLAB_DIR}/image-dependencies-nokernel-nolibc-noupdate.png ${TESTLAB_DIR}/depends-nokernel-nolibc-noupdate.dot + #dot -Tpng -o ${TESTLAB_DIR}/image-dependencies-nokernel-nolibc-noupdate-nomodules.png ${TESTLAB_DIR}/depends-nokernel-nolibc-noupdate-nomodules.dot + + for file in $(cat ${TESTLAB_DIR}/installed-packages.txt) ; do + du -k $(find ${DEPLOY_DIR_IPK} -name "$file") + done | grep "\.ipk" | sed -e s:${DEPLOY_DIR_IPK}::g | sort -n -r | awk '{print $1 "\tKiB " $2}' > ${TESTLAB_DIR}/installed-package-sizes.txt +fi +} + +IMAGE_POSTPROCESS_COMMAND += " do_testlab ;" |