summaryrefslogtreecommitdiffstats
path: root/meta/classes/buildhistory.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/buildhistory.bbclass')
-rw-r--r--meta/classes/buildhistory.bbclass51
1 files changed, 23 insertions, 28 deletions
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index f0bf849860..ddb76e8771 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -285,48 +285,43 @@ buildhistory_get_image_installed() {
285 mkdir -p ${BUILDHISTORY_DIR_IMAGE} 285 mkdir -p ${BUILDHISTORY_DIR_IMAGE}
286 286
287 # Get list of installed packages 287 # Get list of installed packages
288 list_installed_packages | sort > ${BUILDHISTORY_DIR_IMAGE}/installed-package-names.txt 288 pkgcache="${BUILDHISTORY_DIR_IMAGE}/installed-packages.tmp"
289 INSTALLED_PKGS=`cat ${BUILDHISTORY_DIR_IMAGE}/installed-package-names.txt` 289 list_installed_packages file | sort > $pkgcache
290
291 cat $pkgcache | awk '{ print $1 }' > ${BUILDHISTORY_DIR_IMAGE}/installed-package-names.txt
292 cat $pkgcache | awk '{ print $2 }' | xargs -n1 basename > ${BUILDHISTORY_DIR_IMAGE}/installed-packages.txt
293
294 # Produce dependency graph
295 # First, filter out characters that cause issues for dot
296 rootfs_list_installed_depends | sed -e 's:-:_:g' -e 's:\.:_:g' -e 's:+::g' > ${BUILDHISTORY_DIR_IMAGE}/depends.tmp
297 # Change delimiter from pipe to -> and set style for recommend lines
298 sed -i -e 's:|: -> :' -e 's:\[REC\]:[style=dotted]:' -e 's:$:;:' ${BUILDHISTORY_DIR_IMAGE}/depends.tmp
299 # Add header, sorted and de-duped contents and footer and then delete the temp file
300 echo -e "digraph depends {\n node [shape=plaintext]" > ${BUILDHISTORY_DIR_IMAGE}/depends.dot
301 cat ${BUILDHISTORY_DIR_IMAGE}/depends.tmp | sort | uniq >> ${BUILDHISTORY_DIR_IMAGE}/depends.dot
302 echo "}" >> ${BUILDHISTORY_DIR_IMAGE}/depends.dot
303 rm ${BUILDHISTORY_DIR_IMAGE}/depends.tmp
290 304
291 # Produce installed package file and size lists and dependency graph 305 # Produce installed package sizes list
292 echo -n > ${BUILDHISTORY_DIR_IMAGE}/installed-packages.txt
293 echo -n > ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.tmp 306 echo -n > ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.tmp
294 echo -e "digraph depends {\n node [shape=plaintext]" > ${BUILDHISTORY_DIR_IMAGE}/depends.dot 307 cat $pkgcache | while read pkg pkgfile
295 for pkg in $INSTALLED_PKGS; do 308 do
296 pkgfile=`get_package_filename $pkg`
297 echo `basename $pkgfile` >> ${BUILDHISTORY_DIR_IMAGE}/installed-packages.txt
298 if [ -f $pkgfile ] ; then 309 if [ -f $pkgfile ] ; then
299 pkgsize=`du -k $pkgfile | head -n1 | awk '{ print $1 }'` 310 pkgsize=`du -k $pkgfile | head -n1 | awk '{ print $1 }'`
300 echo $pkgsize $pkg >> ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.tmp 311 echo $pkgsize $pkg >> ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.tmp
301 fi 312 fi
302 313 done
303 deps=`list_package_depends $pkg`
304 for dep in $deps ; do
305 echo "$pkg OPP $dep;" | sed -e 's:-:_:g' -e 's:\.:_:g' -e 's:+::g' | sed 's:OPP:->:g'
306 done
307
308 recs=`list_package_recommends $pkg`
309 for rec in $recs ; do
310 echo "$pkg OPP $rec [style=dotted];" | sed -e 's:-:_:g' -e 's:\.:_:g' -e 's:+::g' | sed 's:OPP:->:g'
311 done
312 done | sort | uniq >> ${BUILDHISTORY_DIR_IMAGE}/depends.dot
313 echo "}" >> ${BUILDHISTORY_DIR_IMAGE}/depends.dot
314
315 cat ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.tmp | sort -n -r | awk '{print $1 "\tKiB " $2}' > ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.txt 314 cat ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.tmp | sort -n -r | awk '{print $1 "\tKiB " $2}' > ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.txt
316 rm ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.tmp 315 rm ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.tmp
317 316
317 # We're now done with the cache, delete it
318 rm $pkgcache
319
318 # Produce some cut-down graphs (for readability) 320 # Produce some cut-down graphs (for readability)
319 grep -v kernel_image ${BUILDHISTORY_DIR_IMAGE}/depends.dot | grep -v kernel_2 | grep -v kernel_3 > ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel.dot 321 grep -v kernel_image ${BUILDHISTORY_DIR_IMAGE}/depends.dot | grep -v kernel_2 | grep -v kernel_3 > ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel.dot
320 grep -v libc6 ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel.dot | grep -v libgcc > ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel-nolibc.dot 322 grep -v libc6 ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel.dot | grep -v libgcc > ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel-nolibc.dot
321 grep -v update_ ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel-nolibc.dot > ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel-nolibc-noupdate.dot 323 grep -v update_ ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel-nolibc.dot > ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel-nolibc-noupdate.dot
322 grep -v kernel_module ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel-nolibc-noupdate.dot > ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel-nolibc-noupdate-nomodules.dot 324 grep -v kernel_module ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel-nolibc-noupdate.dot > ${BUILDHISTORY_DIR_IMAGE}/depends-nokernel-nolibc-noupdate-nomodules.dot
323
324 # Workaround for broken shell function dependencies
325 if false ; then
326 get_package_filename
327 list_package_depends
328 list_package_recommends
329 fi
330} 325}
331 326
332buildhistory_get_imageinfo() { 327buildhistory_get_imageinfo() {