X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=cirros-testvm%2Fsrc-cirros%2Fbuildroot-2015.05%2Fsupport%2Fscripts%2Fpkg-stats;fp=cirros-testvm%2Fsrc-cirros%2Fbuildroot-2015.05%2Fsupport%2Fscripts%2Fpkg-stats;h=fad7ae9c74973ca2feabef2439b18aafd02834e9;hb=b0a0f15dfaa205161a7fcb20cf1b8cd4948c2ef3;hp=0000000000000000000000000000000000000000;hpb=c6ac3cd55ee2da956195eee393b0882105dfad4e;p=packages%2Ftrusty%2Fcirros-testvm.git diff --git a/cirros-testvm/src-cirros/buildroot-2015.05/support/scripts/pkg-stats b/cirros-testvm/src-cirros/buildroot-2015.05/support/scripts/pkg-stats new file mode 100755 index 0000000..fad7ae9 --- /dev/null +++ b/cirros-testvm/src-cirros/buildroot-2015.05/support/scripts/pkg-stats @@ -0,0 +1,410 @@ +#!/usr/bin/env bash + +# Copyright (C) 2009 by Thomas Petazzoni +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# This script generates an HTML file that contains a report about all +# Buildroot packages, their usage of the different package +# infrastructure and possible cleanup actions +# +# Run the script from the Buildroot toplevel directory: +# +# ./support/scripts/pkg-stats > /tmp/pkg.html +# + +echo " + +Statistics of Buildroot packages + + +Results
+ + + + + + + + + + + +" + +autotools_packages=0 +cmake_packages=0 +kconfig_packages=0 +luarocks_package=0 +perl_packages=0 +python_packages=0 +rebar_packages=0 +virtual_packages=0 +generic_packages=0 +manual_packages=0 +packages_with_licence=0 +packages_without_licence=0 +packages_with_license_files=0 +packages_without_license_files=0 +packages_with_hash_file=0 +packages_without_hash_file=0 +total_patch_count=0 +cnt=0 + +for i in $(find boot/ linux/ package/ -name '*.mk' | sort) ; do + + if test \ + $i = "boot/common.mk" -o \ + $i = "linux/linux-ext-fbtft.mk" -o \ + $i = "linux/linux-ext-xenomai.mk" -o \ + $i = "linux/linux-ext-rtai.mk" -o \ + $i = "package/efl/efl.mk" -o \ + $i = "package/freescale-imx/freescale-imx.mk" -o \ + $i = "package/gcc/gcc.mk" -o \ + $i = "package/gstreamer/gstreamer.mk" -o \ + $i = "package/gstreamer1/gstreamer1.mk" -o \ + $i = "package/gtk2-themes/gtk2-themes.mk" -o \ + $i = "package/matchbox/matchbox.mk" -o \ + $i = "package/opengl/opengl.mk" -o \ + $i = "package/qt5/qt5.mk" -o \ + $i = "package/x11r7/x11r7.mk" -o \ + $i = "package/doc-asciidoc.mk" -o \ + $i = "package/pkg-autotools.mk" -o \ + $i = "package/pkg-cmake.mk" -o \ + $i = "package/pkg-kconfig.mk" -o \ + $i = "package/pkg-luarocks.mk" -o \ + $i = "package/pkg-perl.mk" -o \ + $i = "package/pkg-python.mk" -o \ + $i = "package/pkg-rebar.mk" -o \ + $i = "package/pkg-virtual.mk" -o \ + $i = "package/pkg-download.mk" -o \ + $i = "package/pkg-generic.mk" -o \ + $i = "package/pkg-utils.mk" ; then + echo "skipping $i" 1>&2 + continue + fi + + cnt=$((cnt+1)) + + hashost=0 + hastarget=0 + infratype="" + + # Determine package infrastructure + if grep -E "\(host-autotools-package\)" $i > /dev/null ; then + infratype="autotools" + hashost=1 + fi + + if grep -E "\(autotools-package\)" $i > /dev/null ; then + infratype="autotools" + hastarget=1 + fi + + if grep -E "\(kconfig-package\)" $i > /dev/null ; then + infratype="kconfig" + hastarget=1 + fi + + if grep -E "\(host-luarocks-package\)" $i > /dev/null ; then + infratype="luarocks" + hashost=1 + fi + + if grep -E "\(luarocks-package\)" $i > /dev/null ; then + infratype="luarocks" + hastarget=1 + fi + + if grep -E "\(host-perl-package\)" $i > /dev/null ; then + infratype="perl" + hashost=1 + fi + + if grep -E "\(perl-package\)" $i > /dev/null ; then + infratype="perl" + hastarget=1 + fi + + if grep -E "\(host-python-package\)" $i > /dev/null ; then + infratype="python" + hashost=1 + fi + + if grep -E "\(python-package\)" $i > /dev/null ; then + infratype="python" + hastarget=1 + fi + + if grep -E "\(host-rebar-package\)" $i > /dev/null ; then + infratype="rebar" + hashost=1 + fi + + if grep -E "\(rebar-package\)" $i > /dev/null ; then + infratype="rebar" + hastarget=1 + fi + + if grep -E "\(host-virtual-package\)" $i > /dev/null ; then + infratype="virtual" + hashost=1 + fi + + if grep -E "\(virtual-package\)" $i > /dev/null ; then + infratype="virtual" + hastarget=1 + fi + + if grep -E "\(host-generic-package\)" $i > /dev/null ; then + infratype="generic" + hashost=1 + fi + + if grep -E "\(generic-package\)" $i > /dev/null ; then + infratype="generic" + hastarget=1 + fi + + if grep -E "\(host-cmake-package\)" $i > /dev/null ; then + infratype="cmake" + hashost=1 + fi + + if grep -E "\(cmake-package\)" $i > /dev/null ; then + infratype="cmake" + hastarget=1 + fi + + pkg=$(basename $i) + dir=$(dirname $i) + pkg=${pkg%.mk} + pkgvariable=$(echo ${pkg} | tr "a-z-" "A-Z_") + + + # Count packages per infrastructure + if [ -z ${infratype} ] ; then + infratype="manual" + manual_packages=$(($manual_packages+1)) + elif [ ${infratype} = "autotools" ]; then + autotools_packages=$(($autotools_packages+1)) + elif [ ${infratype} = "cmake" ]; then + cmake_packages=$(($cmake_packages+1)) + elif [ ${infratype} = "kconfig" ]; then + kconfig_packages=$(($kconfig_packages+1)) + elif [ ${infratype} = "luarocks" ]; then + luarocks_packages=$(($luarocks_packages+1)) + elif [ ${infratype} = "perl" ]; then + perl_packages=$(($perl_packages+1)) + elif [ ${infratype} = "python" ]; then + python_packages=$(($python_packages+1)) + elif [ ${infratype} = "rebar" ]; then + rebar_packages=$(($rebar_packages+1)) + elif [ ${infratype} = "virtual" ]; then + virtual_packages=$(($virtual_packages+1)) + elif [ ${infratype} = "generic" ]; then + generic_packages=$(($generic_packages+1)) + fi + + if grep -qE "^${pkgvariable}_LICENSE[ ]*=" $i ; then + packages_with_license=$(($packages_with_license+1)) + license=1 + else + packages_without_license=$(($packages_without_license+1)) + license=0 + fi + + if grep -qE "^${pkgvariable}_LICENSE_FILES[ ]*=" $i ; then + packages_with_license_files=$(($packages_with_license_files+1)) + license_files=1 + else + packages_without_license_files=$(($packages_without_license_files+1)) + license_files=0 + fi + + if test -f ${dir}/${pkg}.hash; then + packages_with_hash_file=$(($packages_with_hash_file+1)) + hash_file=1 + else + packages_without_hash_file=$(($packages_without_hash_file+1)) + hash_file=0 + fi + + echo "" + + echo "" + echo "" + + package_dir=$(dirname $i) + patch_count=$(find ${package_dir} -name '*.patch' | wc -l) + total_patch_count=$(($total_patch_count+$patch_count)) + + if test $patch_count -lt 1 ; then + patch_count_class="nopatches" + elif test $patch_count -lt 5 ; then + patch_count_class="somepatches" + else + patch_count_class="lotsofpatches" + fi + + echo "" + + if [ ${infratype} = "manual" ] ; then + echo "" + else + echo "" + fi + + if [ ${license} -eq 0 ] ; then + echo "" + else + echo "" + fi + + if [ ${license_files} -eq 0 ] ; then + echo "" + else + echo "" + fi + + if [ ${hash_file} -eq 0 ] ; then + echo "" + else + echo "" + fi + + echo "" + +done +echo "
IdPackagePatch countInfrastructureLicenseLicense filesHash file
$cnt$i" + echo "$patch_count" + echo "manual" + echo "${infratype}
" + if [ ${hashost} -eq 1 -a ${hastarget} -eq 1 ]; then + echo "target + host" + elif [ ${hashost} -eq 1 ]; then + echo "host" + else + echo "target" + fi + echo "
NoYesNoYesNoYes
" + +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "" +echo "
Packages using the generic infrastructure$generic_packages
Packages using the cmake infrastructure$cmake_packages
Packages using the autotools infrastructure$autotools_packages
Packages using the luarocks infrastructure$luarocks_packages
Packages using the kconfig infrastructure$kconfig_packages
Packages using the perl infrastructure$perl_packages
Packages using the python infrastructure$python_packages
Packages using the rebar infrastructure$rebar_packages
Packages using the virtual infrastructure$virtual_packages
Packages not using any infrastructure$manual_packages
Packages having license information$packages_with_license
Packages not having licence information$packages_without_license
Packages having license files information$packages_with_license_files
Packages not having licence files information$packages_without_license_files
Packages having hash file$packages_with_hash_file
Packages not having hash file$packages_without_hash_file
Number of patches in all packages$total_patch_count
TOTAL$cnt
" + +echo "
" +echo "Updated on $(LANG=C date), Git commit $(git log master -n 1 --pretty=format:%H)" +echo "" +echo ""