Skip to contentSkip to conversation

autodetected dependencies

PATCH In review Martin Jansa 3 participants 22 messages Jul 24, 2013 – Jul 25, 2013

lore
Share & tools
lore
#0 lore raw

cover autodetected dependencies

The following changes since commit ac5d20f4adac69ea1702694fb50849c9e465b443:

systemd: Remove systemd_unitdir if systemd is not in distro features (2013-07-23 07:49:54 -0700)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib jansa/deps
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=jansa/deps

Martin Jansa (18):
test-dependencies: add simple script to detect missing or autoenabled
dependencies
gst-plugins-bad: add few more PACKAGECONFIGs
xkeyboard-config: add missing dependency on util-macros
ccache: add zlib dependency
cups: add PACKAGECONFIG for acl
directfb: add PACKAGECONFIG for jpeg2000
distcc: add PACKAGECONFIG for popt
grub: add PACKAGECONFIG for grub-mount
mailx: remove support for autodetection of krb5
minicom: add configure option and PACKAGECONFIG for lockdev
ltp: add acl, openssl dependency
patch: add PACKAGECONFIG for attr
python-imaging: add PACKAGECONFIG for lcms
socat: add PACKAGECONFIG for tcp-wrappers
sudo: add PACKAGECONFIG for zlib gstreamer1.0-plugins-good: add PACKAGECONFIG for v4l
gst-plugins-good: add PACKAGECONFIG for jpeg, wavpack, gdkpixbuf, v4l,
bzip2, orc
gettext: disable nls when INHIBIT_DEFAULT_DEPS is set

 meta/classes/gettext.bbclass                       |   4 +-
 meta/recipes-bsp/grub/grub_2.00.bb                 |   3 +
 meta/recipes-connectivity/socat/socat_1.7.2.2.bb   |   3 +
 meta/recipes-devtools/ccache/ccache.inc            |   2 +
 meta/recipes-devtools/distcc/distcc_3.1.bb         |   4 +-
 meta/recipes-devtools/patch/patch.inc              |   3 +
 .../allow.to.disable.some.features.patch           |  65 ++++++
 .../python/python-imaging_1.1.7.bb                 |  10 +-
 meta/recipes-extended/cups/cups16.inc              |   1 +
 meta/recipes-extended/ltp/ltp_20130503.bb          |   2 +-
 .../explicitly.disable.krb5.support.patch          |  46 ++++
 meta/recipes-extended/mailx/mailx_12.5.bb          |   1 +
 .../minicom-2.6.2/allow.to.disable.lockdev.patch   |  21 ++
 meta/recipes-extended/minicom/minicom_2.6.2.bb     |   7 +-
 meta/recipes-extended/sudo/sudo.inc                |   3 +
 meta/recipes-graphics/directfb/directfb.inc        |   3 +
 .../xorg-lib/xkeyboard-config_2.9.bb               |   2 +-
 .../gstreamer/gst-plugins-bad_0.10.23.bb           |  10 +
 .../gstreamer/gst-plugins-good_0.10.31.bb          |  12 +-
 .../gstreamer/gstreamer1.0-plugins-good.inc        |   2 +-
 scripts/test-dependencies.sh                       | 256 +++++++++++++++++++++
 21 files changed, 449 insertions(+), 11 deletions(-)
 create mode 100644 meta/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch
 create mode 100644 meta/recipes-extended/mailx/mailx-12.5/explicitly.disable.krb5.support.patch
 create mode 100644 meta/recipes-extended/minicom/minicom-2.6.2/allow.to.disable.lockdev.patch
 create mode 100755 scripts/test-dependencies.sh
Signature · 1 line
1.8.3.2
#1 lore raw

PATCH 1/18 test-dependencies: add simple script to detect missing or autoenabled dependencies

---
 scripts/test-dependencies.sh | 256 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 256 insertions(+)
 create mode 100755 scripts/test-dependencies.sh
scripts/test-dependencies.sh new file +256 -0
new file mode 100755
index 0000000..e4cf4d3
@@ -0,0 +1,256 @@
+#!/bin/sh
+
+# Author: Martin Jansa <[email protected]>
+#
+# Copyright (c) 2013 Martin Jansa <[email protected]>
+
+# Used to detect missing dependencies or automagically
+# enabled dependencies which aren't explicitly enabled
+# or disabled.
+
+# It does 3 builds of <target>
+# 1st to populate sstate-cache directory and sysroot
+# 2nd to rebuild each recipe with every possible
+#     dependency found in sysroot (which stays populated
+#     from 1st build
+# 3rd to rebuild each recipe only with dependencies defined
+#     in DEPENDS
+# 4th (optional) repeat build like 3rd to make sure that
+#     minimal versions of dependencies defined in DEPENDS
+#     is also enough
+
+# Global vars
+tmpdir=
+targets=
+recipes=
+buildhistory=
+buildtype=
+default_targets="world"
+default_buildhistory="buildhistory"
+default_buildtype="1 2 3 c"
+
+usage () {
+  cat << EOF
+Welcome to utility to detect missing or autoenabled dependencies.
+WARNING: this utility will completely remove your tmpdir (make sure
+         you don't have important buildhistory or persistent dir there).
+$0 <OPTION>
+
+Options:
+  -h, --help
+        Display this help and exit.
+
+  --tmpdir=<tmpdir>
+        Specify tmpdir, will use the environment variable TMPDIR if it is not specified.
+        Something like /OE/oe-core/tmp-eglibc (no / at the end).
+
+  --targets=<targets>
+        List of targets separated by space, will use the environment variable TARGETS if it is not specified.
+        It will run "bitbake <targets>" to populate sysroots.
+        Default value is "world".
+
+  --recipes=<recipes>
+        File with list of recipes we want to rebuild with minimal and maximal sysroot.
+        Will use the environment variable RECIPES if it is not specified.
+        Default value will use all packages ever recorded in buildhistory directory.
+
+  --buildhistory=<buildhistory>
+        Path to buildhistory directory, it needs to be enabled in your config,
+        because it's used to detect different dependencies and to create list
+        of recipes to rebuild when it's not specified.
+        Will use the environment variable BUILDHISTORY if it is not specified.
+        Default value is "buildhistory"
+
+  --buildtype=<buildtype>
+        There are 4 types of build:
+          1: build to populate sstate-cache directory and sysroot
+          2: build to rebuild each recipe with every possible dep
+          3: build to rebuild each recipe with minimal dependencies
+          4: build to rebuild each recipe again with minimal dependencies
+          c: compare buildhistory directories from build 2 and 3
+        Will use the environment variable BUILDTYPE if it is not specified.
+        Default value is "1 2 3 c", order is important, type 4 is optional.
+EOF
+}
+
+# Print error information and exit.
+echo_error () {
+  echo "ERROR: $1" >&2
+  exit 1
+}
+
+while [ -n "$1" ]; do
+  case $1 in
+    --tmpdir=*)
+      tmpdir=`echo $1 | sed -e 's#^--tmpdir=##' | xargs readlink -e`
+      [ -d "$tmpdir" ] || echo_error "Invalid argument to --tmpdir"
+      shift
+        ;;
+    --targets=*)
+      targets=`echo $1 | sed -e 's#^--targets="*\([^"]*\)"*#\1#'`
+      shift
+        ;;
+    --recipes=*)
+      recipes=`echo $1 | sed -e 's#^--recipes="*\([^"]*\)"*#\1#'`
+      shift
+        ;;
+    --buildhistory=*)
+      buildhistory=`echo $1 | sed -e 's#^--buildhistory="*\([^"]*\)"*#\1#'`
+      shift
+        ;;
+    --buildtype=*)
+      buildtype=`echo $1 | sed -e 's#^--buildtype="*\([^"]*\)"*#\1#'`
+      shift
+        ;;
+    --help|-h)
+      usage
+      exit 0
+        ;;
+    *)
+      echo "Invalid arguments $*"
+      echo_error "Try '$0 -h' for more information."
+        ;;
+  esac
+done
+
+# tmpdir directory, use environment variable TMPDIR
+# if it was not specified, otherwise, error.
+[ -n "$tmpdir" ] || tmpdir=$TMPDIR
+[ -n "$tmpdir" ] || echo_error "No tmpdir found!"
+[ -d "$tmpdir" ] || echo_error "Invalid tmpdir \"$tmpdir\""
+[ -n "$targets" ] || targets=$TARGETS
+[ -n "$targets" ] || targets=$default_targets
+[ -n "$recipes" ] || recipes=$RECIPES
+[ -n "$recipes" -a ! -f "$recipes" ] && echo_error "Invalid file with list of recipes to rebuild"
+[ -n "$recipes" ] || echo "All packages ever recorded in buildhistory directory will be rebuilt"
+[ -n "$buildhistory" ] || buildhistory=$BUILDHISTORY
+[ -n "$buildhistory" ] || buildhistory=$default_buildhistory
+[ -d "$buildhistory" ] || echo_error "Invalid buildhistory directory \"$buildhistory\""
+[ -n "$buildtype" ] || buildtype=$BUILDTYPE
+[ -n "$buildtype" ] || buildtype=$default_buildtype
+echo "$buildtype" | grep -v '^[1234c ]*$' && echo_error "Invalid buildtype \"$buildtype\", only some combination of 1, 2, 3, 4, c separated by space is allowed"
+
+OUTPUT_BASE=test-dependencies/`date "+%s"`
+
+build_all() {
+  echo "===== 1st build to populate sstate-cache directory and sysroot ====="
+  OUTPUT1=${OUTPUT_BASE}/${TYPE}_all
+  mkdir -p ${OUTPUT1}
+  echo "Logs will be stored in ${OUTPUT1} directory"
+  bitbake -k $targets | tee -a ${OUTPUT1}/complete.log
+}
+
+build_every_recipe() {
+  if [ "${TYPE}" = "2" ] ; then
+    echo "===== 2nd build to rebuild each recipe with every possible dep ====="
+    OUTPUT_MAX=${OUTPUT_BASE}/${TYPE}_max
+    OUTPUTB=${OUTPUT_MAX}
+  else
+    echo "===== 3rd or 4th build to rebuild each recipe with minimal dependencies ====="
+    OUTPUT_MIN=${OUTPUT_BASE}/${TYPE}_min
+    OUTPUTB=${OUTPUT_MIN}
+  fi
+
+  mkdir -p ${OUTPUTB} ${OUTPUTB}/failed ${OUTPUTB}/ok
+  echo "Logs will be stored in ${OUTPUTB} directory"
+  if [ -z "$recipes" ]; then
+    ls -d $buildhistory/packages/*/* | xargs -n 1 basename | sort -u > ${OUTPUTB}/recipe.list
+    recipes=${OUTPUTB}/recipe.list
+  fi
+  if [ "${TYPE}" != "2" ] ; then
+    echo "!!!Removing tmpdir \"$tmpdir\"!!!"
+    rm -rf $tmpdir/deploy $tmpdir/pkgdata $tmpdir/sstate-control $tmpdir/stamps $tmpdir/sysroots $tmpdir/work $tmpdir/work-shared 2>/dev/null
+  fi
+  i=1
+  count=`cat $recipes | wc -l`
+  for recipe in `cat $recipes`; do
+    echo "Building recipe: ${recipe} ($i/$count)"
+    bitbake -c cleansstate ${recipe} > ${OUTPUTB}/log.${recipe} 2>&1;
+    bitbake ${recipe} >> ${OUTPUTB}/log.${recipe} 2>&1;
+    grep "ERROR: Task.*failed" ${OUTPUTB}/log.${recipe} && mv ${OUTPUTB}/log.${recipe} ${OUTPUTB}/failed/${recipe} || mv ${OUTPUTB}/log.${recipe} ${OUTPUTB}/ok/${recipe}
+    if [ "${TYPE}" != "2" ] ; then
+      rm -rf $tmpdir/deploy $tmpdir/pkgdata $tmpdir/sstate-control $tmpdir/stamps $tmpdir/sysroots $tmpdir/work $tmpdir/work-shared 2>/dev/null
+    fi
+    i=`expr $i + 1`
+  done
+  echo "Copying buildhistory/packages to ${OUTPUTB}"
+  cp -ra $buildhistory/packages ${OUTPUTB}
+  # This will be usefull to see which library is pulling new dependency
+  echo "Copying do_package logs to ${OUTPUTB}/do_package/"
+  mkdir ${OUTPUTB}/do_package
+  find $tmpdir/work/ -name log.do_package | while read f; do
+    # pn is 3 levels back, but we don't know if there is just one log per pn (only one arch and version)
+    # dest=`echo $f | sed 's#^.*/\([^/]*\)/\([^/]*\)/\([^/]*\)/log.do_package#\1#g'`
+    dest=`echo $f | sed "s#$tmpdir/work/##g; s#/#_#g"`
+    cp $f ${OUTPUTB}/do_package/$dest
+  done
+  grep "ERROR: Task.*failed" ${OUTPUTB}/failed/*
+  ls -1 ${OUTPUTB}/failed/* >> ${OUTPUT_BASE}/failed.recipes
+}
+
+compare_deps() {
+  # you can run just compare task with command like this
+  # OUTPUT_BASE=test-dependencies/1373140172 \
+  # OUTPUT_MAX=${OUTPUT_BASE}/2_max \
+  # OUTPUT_MIN=${OUTPUT_BASE}/3_min \
+  # openembedded-core/scripts/test-dependencies.sh --tmpdir=tmp-eglibc --targets=glib-2.0 --recipes=recipe_list --buildtype=c
+  echo "===== Compare dependencies recorded in \"${OUTPUT_MAX}\" and \"${OUTPUT_MIN}\" ====="
+  [ -n "${OUTPUTC}" ] || OUTPUTC=${OUTPUT_BASE}
+  mkdir -p ${OUTPUTC}
+  OUTPUT_FILE=${OUTPUTC}/dependency-changes
+  echo "Differences will be stored in ${OUTPUT_FILE}, dot is shown for every 100 of checked packages"
+  echo > ${OUTPUT_FILE}
+
+  [ -d ${OUTPUT_MAX} ] || echo_error "Directory with output from build 2 \"${OUTPUT_MAX}\" does not exist"
+  [ -d ${OUTPUT_MIN} ] || echo_error "Directory with output from build 3 \"${OUTPUT_MIN}\" does not exist"
+  [ -d ${OUTPUT_MAX}/packages/ ] || echo_error "Directory with packages from build 2 \"${OUTPUT_MAX}/packages/\" does not exist"
+  [ -d ${OUTPUT_MIN}/packages/ ] || echo_error "Directory with packages from build 3 \"${OUTPUT_MIN}/packages/\" does not exist"
+  i=0
+  find ${OUTPUT_MAX}/packages/ -name latest | sed "s#${OUTPUT_MAX}/##g" | while read pkg; do
+    max_pkg=${OUTPUT_MAX}/${pkg}
+    min_pkg=${OUTPUT_MIN}/${pkg}
+    if [ ! -f "${min_pkg}" ] ; then
+      echo "ERROR: ${min_pkg} doesn't exist" | tee -a ${OUTPUT_FILE}
+      continue
+    fi
+    # strip version information in parenthesis
+    max_deps=`grep "^RDEPENDS = " ${max_pkg} | sed 's/^RDEPENDS = / /g; s/$/ /g; s/([^(]*)//g'`
+    min_deps=`grep "^RDEPENDS = " ${min_pkg} | sed 's/^RDEPENDS = / /g; s/$/ /g; s/([^(]*)//g'`
+    if [ "$i" = 100 ] ; then
+      echo -n "." # cheap progressbar
+      i=0
+    fi
+    if [ "${max_deps}" = "${min_deps}" ] ; then
+      # it's annoying long, but at least it's showing some progress, warnings are grepped at the end
+      echo "NOTE: ${pkg} dependencies weren't changed" >> ${OUTPUT_FILE}
+    else
+      missing_deps=
+      for dep in ${max_deps}; do
+        echo "${min_deps}" | grep -q " ${dep} " || missing_deps="${missing_deps} ${dep}"
+      done
+      if [ -n "${missing_deps}" ] ; then
+        echo # to get rid of dots on last line
+        echo "WARN: ${pkg} lost dependency on ${missing_deps}" | tee -a ${OUTPUT_FILE}
+      fi
+    fi
+    i=`expr $i + 1`
+  done
+  echo # to get rid of dots on last line
+  echo "Found differences: "
+  grep "^WARN: " ${OUTPUT_FILE} | tee ${OUTPUT_FILE}.warn
+  echo "Found errors: "
+  grep "^ERROR: " ${OUTPUT_FILE} | tee ${OUTPUT_FILE}.error
+  # useful for reexecuting this script with only small subset of recipes with known issues
+  sed 's#.*[ /]packages/\([^/]*\)/\([^/]*\)/.*#\2#g' ${OUTPUT_FILE}.warn ${OUTPUT_FILE}.error | sort -u >> ${OUTPUT_BASE}/failed.recipes
+}
+
+for TYPE in $buildtype; do
+  case ${TYPE} in
+    1) build_all;;
+    2) build_every_recipe;;
+    3) build_every_recipe;;
+    4) build_every_recipe;;
+    c) compare_deps;;
+    *) echo_error "Invalid buildtype \"$TYPE\""
+  esac
+done
Signature · 1 line
1.8.3.2
#2 lore raw

PATCH 2/18 gst-plugins-bad: add few more PACKAGECONFIGs

---
 meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb | 10 ++++++++++
 1 file changed, 10 insertions(+)
meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb +10 -0
index 7e80ce4..dceb12c 100644
@@ -24,6 +24,16 @@ PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
 PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg,"
 PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
 PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon"
+PACKAGECONFIG[mms] = "--enable-libmms,--disable-libmms,libmms"
+PACKAGECONFIG[cog] = "--enable-cog,--disable-cog,libpng"
+PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2"
+PACKAGECONFIG[jp2k] = "--enable-jp2k,--disable-jp2k,jasper"
+PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug"
+PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus"
+PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1"
+PACKAGECONFIG[vp8] = "--enable-vp8,--disable-vp8,libvpx"
+PACKAGECONFIG[ass] = "--enable-assrender,--disable-assrender,libass"
+PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft"
 
 ARM_INSTRUCTION_SET = "arm"
 
Signature · 1 line
1.8.3.2
#3 lore raw

PATCH 3/18 xkeyboard-config: add missing dependency on util-macros

In reply to Martin Jansa

* build fails without it
configure.ac:7: error: must install xorg-macros 1.12 or later before

---
 meta/recipes-graphics/xorg-lib/xkeyboard-config_2.9.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-graphics/xorg-lib/xkeyboard-config_2.9.bb +1 -1
index df96c31..c60c7fe 100644
@@ -17,7 +17,7 @@ SRC_URI[md5sum] = "9b1280d8ba40274a0f1567c94fca7501"
 SRC_URI[sha256sum] = "5e89bc182a10d53c3e83efc6c3546de0fe5504d91c3dbc80d55cc64ddab5643a"
 
 SECTION = "x11/libs"
-DEPENDS = "intltool-native virtual/gettext"
+DEPENDS = "intltool-native virtual/gettext util-macros"
 
 
 EXTRA_OECONF = "--with-xkb-rules-symlink=xorg --disable-runtime-deps"
Signature · 1 line
1.8.3.2
#4 lore raw

PATCH 4/18 ccache: add zlib dependency

In reply to Martin Jansa

* when it's not detected in sysroot it uses bundled version
* add explicit dependency to make it deterministic
* PACKAGECONFIG wasn't used because configure doesn't have an option to select which one should be used

---
 meta/recipes-devtools/ccache/ccache.inc | 2 ++
 1 file changed, 2 insertions(+)
meta/recipes-devtools/ccache/ccache.inc +2 -0
index 29ac409..087cb7d 100644
@@ -7,6 +7,8 @@ HOMEPAGE = "http://ccache.samba.org"
 SECTION = "devel"
 LICENSE = "GPLv3+"
 
+DEPENDS = "zlib"
+
 SRC_URI = "http://samba.org/ftp/ccache/ccache-${PV}.tar.xz"
 
 inherit autotools
Signature · 1 line
1.8.3.2
#5 lore raw

PATCH 5/18 cups: add PACKAGECONFIG for acl

In reply to Martin Jansa

* acl is autodetected from sysroot
* add PACKAGECONFIG to make it deterministic

---
 meta/recipes-extended/cups/cups16.inc | 1 +
 1 file changed, 1 insertion(+)
meta/recipes-extended/cups/cups16.inc +1 -0
index bf155a1..7b8ba06 100644
@@ -13,6 +13,7 @@ inherit autotools binconfig
 
 PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)}"
 PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
+PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl"
 
 EXTRA_OECONF = " \
                --enable-gnutls \
Signature · 1 line
1.8.3.2
#6 lore raw

PATCH 6/18 directfb: add PACKAGECONFIG for jpeg2000

In reply to Martin Jansa

* it's autodetected from sysroot
* add PACKAGECONFIG to make it deterministic

---
 meta/recipes-graphics/directfb/directfb.inc | 3 +++
 1 file changed, 3 insertions(+)
meta/recipes-graphics/directfb/directfb.inc +3 -0
index 97a4c55..7295c35 100644
@@ -23,6 +23,9 @@ LDFLAGS_append =" -lts -lm"
 
 inherit autotools binconfig pkgconfig
 
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[jpeg2000] = "--enable-jpeg2000,--disable-jpeg2000,jasper"
+
 EXTRA_OECONF = "\
   --with-gfxdrivers=none \
   --enable-libmpeg3=no \
Signature · 1 line
1.8.3.2
#7 lore raw

PATCH 7/18 distcc: add PACKAGECONFIG for popt

In reply to Martin Jansa

* it's autodetected from sysroot
* add PACKAGECONFIG to make it deterministic

---
 meta/recipes-devtools/distcc/distcc_3.1.bb | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
meta/recipes-devtools/distcc/distcc_3.1.bb +3 -1
index cb5d696..3571732 100644
@@ -11,8 +11,10 @@ DEPENDS = "avahi"
 GTKCONFIG = "gtk"
 GTKCONFIG_libc-uclibc = ""
 
-PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', '${GTKCONFIG}', '', d)}"
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', '${GTKCONFIG}', '', d)} popt"
 PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk --without-gnome,gtk+"
+# use system popt by default
+PACKAGECONFIG[popt] = "--without-included-popt,--with-included-popt,popt"
 
 RRECOMMENDS_${PN} = "avahi-daemon"
 
Signature · 1 line
1.8.3.2
#8 lore raw

PATCH 8/18 grub: add PACKAGECONFIG for grub-mount

In reply to Martin Jansa

* fuse is autodetected from sysroot
* add PACKAGECONFIG to make it deterministic

---
 meta/recipes-bsp/grub/grub_2.00.bb | 3 +++
 1 file changed, 3 insertions(+)
meta/recipes-bsp/grub/grub_2.00.bb +3 -0
index 8d224242..5153b6a 100644
@@ -33,6 +33,9 @@ FILES_${PN}-dbg += "${libdir}/${BPN}/i386-pc/.debug"
 inherit autotools
 inherit gettext
 
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[grub-mount] = "--enable-grub-mount,--disable-grub-mount,fuse"
+
 EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --program-prefix="" \
                --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no"
 
Signature · 1 line
1.8.3.2
#9 lore raw

PATCH 9/18 mailx: remove support for autodetection of krb5

In reply to Martin Jansa

* it's autodetected from sysroot and makeconfig doesn't allow to explicitly define what's expected

---
 .../explicitly.disable.krb5.support.patch          | 46 ++++++++++++++++++++++
 meta/recipes-extended/mailx/mailx_12.5.bb          |  1 +
 2 files changed, 47 insertions(+)
 create mode 100644 meta/recipes-extended/mailx/mailx-12.5/explicitly.disable.krb5.support.patch
meta/recipes-extended/mailx/mailx-12.5/explicitly.disable.krb5.support.patch new file +46 -0
new file mode 100644
index 0000000..8c7178b
@@ -0,0 +1,46 @@
+krb5 support is autodetected from sysroot making builds undeterministic
+feel free to improve this to support explicitly enabling/disabling it
+
+Upstream-Status: Penging
+
+Signed-off-by: Martin Jansa <[email protected]>
+
+--- a/makeconfig	2013-07-21 15:06:11.177792334 +0200
++++ b/makeconfig	2013-07-21 15:07:20.028793994 +0200
+@@ -424,36 +424,6 @@
+ }
+ !
+ 
+-<$tmp2.c link_check gssapi 'for GSSAPI in libgss' \
+-		'#define USE_GSSAPI' '-lgss' ||
+-	<$tmp2.c link_check gssapi 'for GSSAPI in libgssapi_krb5' \
+-			'#define USE_GSSAPI' '-lgssapi_krb5' ||
+-		link_check gssapi 'for GSSAPI in libgssapi_krb5, old-style' \
+-				'#define USE_GSSAPI
+-#define GSSAPI_OLD_STYLE' '-lgssapi_krb5' <<\! || \
+-			link_check gssapi 'for GSSAPI in libgssapi' \
+-				'#define USE_GSSAPI
+-#define	GSSAPI_REG_INCLUDE' '-lgssapi' <<\%
+-#include <gssapi/gssapi.h>
+-#include <gssapi/gssapi_generic.h>
+-
+-int main(void)
+-{
+-	gss_import_name(0, 0, gss_nt_service_name, 0);
+-	gss_init_sec_context(0,0,0,0,0,0,0,0,0,0,0,0,0);
+-	return 0;
+-}
+-!
+-#include <gssapi.h>
+-
+-int main(void)
+-{
+-	gss_import_name(0, 0, GSS_C_NT_HOSTBASED_SERVICE, 0);
+-	gss_init_sec_context(0,0,0,0,0,0,0,0,0,0,0,0,0);
+-	return 0;
+-}
+-%
+-
+ cat >$tmp2.c <<\!
+ #include "config.h"
+ #ifdef HAVE_NL_LANGINFO
meta/recipes-extended/mailx/mailx_12.5.bb +1 -0
index 2a08113..f6734c7 100644
@@ -14,6 +14,7 @@ DEPENDS = "openssl"
 
 SRC_URI = "${DEBIAN_MIRROR}/main/h/heirloom-mailx/heirloom-mailx_${PV}.orig.tar.gz;name=archive \
            ${DEBIAN_MIRROR}/main/h/heirloom-mailx/heirloom-mailx_${PV}-1.diff.gz;name=patch \
+           file://explicitly.disable.krb5.support.patch \
           "
 
 SRC_URI[archive.md5sum] = "29a6033ef1412824d02eb9d9213cb1f2"
Signature · 1 line
1.8.3.2
#10 lore raw

PATCH 10/18 minicom: add configure option and PACKAGECONFIG for lockdev

In reply to Martin Jansa

* it's autodetected from sysroot
* add PACKAGECONFIG to make it deterministic

---
 .../minicom-2.6.2/allow.to.disable.lockdev.patch    | 21 +++++++++++++++++++++
 meta/recipes-extended/minicom/minicom_2.6.2.bb      |  7 ++++++-
 2 files changed, 27 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-extended/minicom/minicom-2.6.2/allow.to.disable.lockdev.patch
meta/recipes-extended/minicom/minicom-2.6.2/allow.to.disable.lockdev.patch new file +21 -0
new file mode 100644
index 0000000..f5c0889
@@ -0,0 +1,21 @@
+Upstream-Status: Pending
+
+Signed-off-by: Martin Jansa <[email protected]>
+
+--- a/configure.in	2013-02-06 18:18:13.000000000 +0100
++++ b/configure.in	2013-07-21 15:31:27.614828894 +0200
+@@ -40,7 +40,13 @@
+ fi
+ 
+ PKG_PROG_PKG_CONFIG
+-if test -n "$PKG_CONFIG"; then
++
++AC_ARG_ENABLE([lockdev],
++        AS_HELP_STRING([--enable-lockdev],
++                       [Enable lockdev support (def: enabled)]),
++        [], [enable_lockdev="yes"])
++
++if test -n "$PKG_CONFIG" && test "x$enable_lockdev" = xyes; then
+ 	PKG_CHECK_MODULES([LOCKDEV], [lockdev], AC_DEFINE([HAVE_LOCKDEV],[1],[Define if you have lockdev]),[:])
+ fi
+ 
meta/recipes-extended/minicom/minicom_2.6.2.bb +6 -1
index 0d65e80..558867d 100644
@@ -8,11 +8,16 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=420477abc567404debca0a2a1cb6b645 \
 
 PR = "r0"
 
-SRC_URI = "http://alioth.debian.org/frs/download.php/3869/minicom-${PV}.tar.gz"
+SRC_URI = "http://alioth.debian.org/frs/download.php/3869/minicom-${PV}.tar.gz \
+           file://allow.to.disable.lockdev.patch \
+"
 
 SRC_URI[md5sum] = "203c56c4b447f45e2301b0cc4e83da3c"
 SRC_URI[sha256sum] = "f3cf215f7914ffa5528e398962176102ad74df27ba38958142f56aa6d15c9168"
 
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lockdev] = "--enable-lockdev,--disable-lockdev,lockdev"
+
 inherit autotools gettext
 
 do_install() {
Signature · 1 line
1.8.3.2
#11 lore raw

PATCH 11/18 ltp: add acl, openssl dependency

In reply to Martin Jansa

* when it's not detected in sysroot it uses bundled version
* add explicit dependency to make it deterministic
* PACKAGECONFIG wasn't used because configure doesn't have an option to select which one should be used

---
 meta/recipes-extended/ltp/ltp_20130503.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-extended/ltp/ltp_20130503.bb +1 -1
index c00c647..387826d 100644
@@ -19,7 +19,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
 		    file://utils/benchmark/kernbench-0.42/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
 		"
 
-DEPENDS = "attr libaio libcap"
+DEPENDS = "attr libaio libcap acl openssl"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/ltp/ltp-full-${PV}.bz2"
 
Signature · 1 line
1.8.3.2
#12 lore raw

PATCH 12/18 patch: add PACKAGECONFIG for attr

In reply to Martin Jansa

* it's autodetected from sysroot
* add PACKAGECONFIG to make it deterministic

---
 meta/recipes-devtools/patch/patch.inc | 3 +++
 1 file changed, 3 insertions(+)
meta/recipes-devtools/patch/patch.inc +3 -0
index 332b97a..b49226a 100644
@@ -9,5 +9,8 @@ S = "${WORKDIR}/patch-${PV}"
 
 inherit autotools update-alternatives
 
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[attr] = "--enable-xattr,--disable-xattr,attr"
+
 ALTERNATIVE_${PN} = "patch"
 ALTERNATIVE_PRIORITY = "100"
Signature · 1 line
1.8.3.2
#13 lore raw

PATCH 13/18 python-imaging: add PACKAGECONFIG for lcms

In reply to Martin Jansa

* it's autodetected from sysroot
* add PACKAGECONFIG to make it deterministic

---
 .../allow.to.disable.some.features.patch           | 65 ++++++++++++++++++++++
 .../python/python-imaging_1.1.7.bb                 | 10 +++-
 2 files changed, 74 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch
meta/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch new file +65 -0
new file mode 100644
index 0000000..4960ed4
@@ -0,0 +1,65 @@
+At least lcms wasn't deterministicly detected from sysroot.
+
+This will allow to export LCMS_ENABLED=False when lcms isn't in PACKAGECONFIG.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Martin Jansa <[email protected]>
+
+diff -uNr Imaging-1.1.7.orig/setup.py Imaging-1.1.7/setup.py
+--- Imaging-1.1.7.orig/setup.py	2013-07-22 10:17:02.081457075 +0200
++++ Imaging-1.1.7/setup.py	2013-07-22 13:10:09.029707492 +0200
+@@ -39,6 +39,12 @@
+ TIFF_ROOT = None
+ FREETYPE_ROOT =  os.environ['STAGING_LIBDIR'], os.environ['STAGING_INCDIR']
+ LCMS_ROOT = None
++TCL_ENABLED = os.getenv('TCL_ENABLED', "True")
++JPEG_ENABLED = os.getenv('JPEG_ENABLED', "True")
++ZLIB_ENABLED = os.getenv('ZLIB_ENABLED', "True")
++TIFF_ENABLED = os.getenv('TIFF_ENABLED', "True")
++FREETYPE_ENABLED = os.getenv('FREETYPE_ENABLED', "True")
++LCMS_ENABLED = os.getenv('LCMS_ENABLED', "True")
+ 
+ # FIXME: add mechanism to explicitly *disable* the use of a library
+ 
+@@ -220,22 +226,22 @@
+             zlib = jpeg = tiff = freetype = tcl = tk = lcms = None
+         feature = feature()
+ 
+-        if find_include_file(self, "zlib.h"):
++        if ZLIB_ENABLED == 'True' and find_include_file(self, "zlib.h"):
+             if find_library_file(self, "z"):
+                 feature.zlib = "z"
+             elif sys.platform == "win32" and find_library_file(self, "zlib"):
+                 feature.zlib = "zlib" # alternative name
+ 
+-        if find_include_file(self, "jpeglib.h"):
++        if JPEG_ENABLED == 'True' and find_include_file(self, "jpeglib.h"):
+             if find_library_file(self, "jpeg"):
+                 feature.jpeg = "jpeg"
+             elif sys.platform == "win32" and find_library_file(self, "libjpeg"):
+                 feature.jpeg = "libjpeg" # alternative name
+ 
+-        if find_library_file(self, "tiff"):
++        if TIFF_ENABLED == 'True' and find_library_file(self, "tiff"):
+             feature.tiff = "tiff"
+ 
+-        if find_library_file(self, "freetype"):
++        if FREETYPE_ENABLED == 'True' and find_library_file(self, "freetype"):
+             # look for freetype2 include files
+             freetype_version = 0
+             for dir in self.compiler.include_dirs:
+@@ -256,11 +262,11 @@
+                 if dir:
+                     add_directory(self.compiler.include_dirs, dir, 0)
+ 
+-        if find_include_file(self, "lcms.h"):
++        if LCMS_ENABLED == 'True' and find_include_file(self, "lcms.h"):
+             if find_library_file(self, "lcms"):
+                 feature.lcms = "lcms"
+ 
+-        if _tkinter and find_include_file(self, "tk.h"):
++        if TCL_ENABLED == 'True' and _tkinter and find_include_file(self, "tk.h"):
+             # the library names may vary somewhat (e.g. tcl84 or tcl8.4)
+             version = TCL_VERSION[0] + TCL_VERSION[2]
+             if find_library_file(self, "tcl" + version):
meta/recipes-devtools/python/python-imaging_1.1.7.bb +9 -1
index de0e975..e100358 100644
@@ -7,23 +7,31 @@ SRCNAME = "Imaging"
 PR = "r5"
 
 SRC_URI = "http://effbot.org/downloads/Imaging-${PV}.tar.gz \
-           file://0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch"
+           file://0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch \
+           file://allow.to.disable.some.features.patch"
 
 SRC_URI[md5sum] = "fc14a54e1ce02a0225be8854bfba478e"
 SRC_URI[sha256sum] = "895bc7c2498c8e1f9b99938f1a40dc86b3f149741f105cf7c7bd2e0725405211"
 S = "${WORKDIR}/${SRCNAME}-${PV}"
 
+# There isn't enable/disable option, and lcms is in meta-oe, at least make it explicit when enabled
+# setup.py already has FIXME: add mechanism to explicitly *disable* the use of a library
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lcms] = ",,lcms"
+
 inherit distutils
 
 do_compile() {
     export STAGING_LIBDIR=${STAGING_LIBDIR}
     export STAGING_INCDIR=${STAGING_INCDIR}
+    export LCMS_ENABLED=${@base_contains('PACKAGECONFIG', 'lcms', 'True', 'False', d)}
     distutils_do_compile
 }
 
 do_install() {
     export STAGING_LIBDIR=${STAGING_LIBDIR}
     export STAGING_INCDIR=${STAGING_INCDIR}
+    export LCMS_ENABLED=${@base_contains('PACKAGECONFIG', 'lcms', 'True', 'False', d)}
     distutils_do_install
     install -d ${D}${datadir}/doc/${BPN}/html/
     install -m 0644 ${S}/README ${D}${datadir}/doc/${BPN}/
Signature · 1 line
1.8.3.2
#14 lore raw

PATCH 14/18 socat: add PACKAGECONFIG for tcp-wrappers

In reply to Martin Jansa

* it's autodetected from sysroot
* add PACKAGECONFIG to make it deterministic

---
 meta/recipes-connectivity/socat/socat_1.7.2.2.bb | 3 +++
 1 file changed, 3 insertions(+)
meta/recipes-connectivity/socat/socat_1.7.2.2.bb +3 -0
index 2f0ee68..f015def 100644
@@ -18,6 +18,9 @@ SRC_URI = "http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2 \
 SRC_URI[md5sum] = "39231e512d8052f328552865df15d42f"
 SRC_URI[sha256sum] = "9a167af11a4d3809cbc66f5e2dcb39b6e371251282ef5de6ea6ff0c4be8a953c"
 
+PACKAGECONFIG ??= "tcp-wrappers"
+PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
+
 EXTRA_OECONF += "ac_cv_have_z_modifier=yes sc_cv_sys_crdly_shift=9 \
         sc_cv_sys_tabdly_shift=11 sc_cv_sys_csize_shift=4 \
         ac_cv_ispeed_offset=13 \
Signature · 1 line
1.8.3.2
#15 lore raw

PATCH 15/18 sudo: add PACKAGECONFIG for zlib

In reply to Martin Jansa

* it's autodetected from sysroot
* add PACKAGECONFIG to make it deterministic

---
 meta/recipes-extended/sudo/sudo.inc | 3 +++
 1 file changed, 3 insertions(+)
meta/recipes-extended/sudo/sudo.inc +3 -0
index 9dcb677..ef2367a 100644
@@ -13,6 +13,9 @@ LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=d25a8240ca6decdecb9990789e593130 \
 
 inherit autotools
 
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
+
 EXTRA_OECONF = "--with-editor=/bin/vi --with-env-editor"
 
 do_configure_prepend () {
Signature · 1 line
1.8.3.2
#16 lore raw

PATCH 16/18 gstreamer1.0-plugins-good: add PACKAGECONFIG for v4l

In reply to Martin Jansa
---
 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc +1 -1
index 3d0f970..68bc9f1 100644
@@ -32,7 +32,7 @@ PACKAGECONFIG[speex]      = "--enable-speex,--disable-speex,speex"
 PACKAGECONFIG[taglib]     = "--enable-taglib,--disable-taglib,taglib"
 PACKAGECONFIG[vpx]        = "--enable-vpx,--disable-vpx,libvpx"
 PACKAGECONFIG[wavpack]    = "--enable-wavpack,--disable-wavpack,wavpack"
-
+PACKAGECONFIG[v4l]        = "--with-libv4l2,--without-libv4l2,libv4l"
 
 EXTRA_OECONF += " \
     --disable-directsound \
Signature · 1 line
1.8.3.2
#17 lore raw

PATCH 17/18 gst-plugins-good: add PACKAGECONFIG for jpeg, wavpack, gdkpixbuf, v4l, bzip2, orc

In reply to Martin Jansa
---
 .../recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb +9 -3
index e630f67..8868ba7 100644
@@ -7,11 +7,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
 
 PR = "r8"
 
-PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}"
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} jpeg"
 PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
 PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
-
-DEPENDS += "gst-plugins-base gconf cairo jpeg libpng zlib libid3tag flac \
+PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
+PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack"
+PACKAGECONFIG[gdkpixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf"
+PACKAGECONFIG[v4l] = "--with-libv4l2,--without-libv4l2,libv4l"
+PACKAGECONFIG[bzip2] = "--enable-bz2,--disable-bz2,bzip2"
+PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
+
+DEPENDS += "gst-plugins-base gconf cairo libpng zlib libid3tag flac \
             speex libsoup-2.4"
 
 inherit gettext gconf
Signature · 1 line
1.8.3.2
#18 lore raw

PATCH 18/18 gettext: disable nls when INHIBIT_DEFAULT_DEPS is set

In reply to Martin Jansa

* for example in gcc-runtime DEPENDS_GETTEXT from gettext.bbclass isn't used because gcc-runtime recipes also set INHIBIT_DEFAULT_DEPS, explicitly disable NLS when DEPENDS_GETTEXT is empty
* this is causing undeterministic build
if you compare i586-oe-linux/libstdc++-v3/config.log in WORKDIR when building gcc-runtime before and after building gettext-native you'll see that msgfmt isn't found in one of them and gcc-runtime-locale-{de,fr} packages aren't created, there is only one file in them:
gcc-runtime-locale-de/usr/share/locale/de/LC_MESSAGES/libstdc++.mo

---
 meta/classes/gettext.bbclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/classes/gettext.bbclass +2 -2
index 95818c6..17c894f 100644
@@ -10,8 +10,8 @@ def gettext_dependencies(d):
 def gettext_oeconf(d):
     if oe.utils.inherits(d, 'native', 'cross'):
         return '--disable-nls'
-    # Remove the NLS bits if USE_NLS is no.
-    if d.getVar('USE_NLS', True) == 'no' and not oe.utils.inherits(d, 'nativesdk', 'cross-canadian'):
+    # Remove the NLS bits if USE_NLS is no or INHIBIT_DEFAULT_DEPS is set
+    if (d.getVar('USE_NLS', True) == 'no' or d.getVar('INHIBIT_DEFAULT_DEPS', True)) and not oe.utils.inherits(d, 'nativesdk', 'cross-canadian'):
         return '--disable-nls'
     return "--enable-nls"
 
Signature · 1 line
1.8.3.2
#19 lore raw

Re: [PATCH 01/18] test-dependencies: add simple script to detect missing or autoenabled dependencies

In reply to Martin Jansa

This whole series looks great, thanks Martin for donating vast amounts of CPU time to this!

Ross

#20 lore raw

test-dependencies.sh results from big world build

In reply to Martin Jansa

My biggest build with 20+ layers included finally finished today (after many days because there was hw issue on server where it was running, so it was slower then it should be).

The results are a bit messy because:
1) It had only some fixes from my last "autodetected dependencies" patchsets for oe-core and meta-oe
2) It was started when oe-core/master had broken boost, so many packages failed because of boost
3) It was started when oe-core/master had issues with qt-mobility (not sure if all were fixed already)
4) It wasn't using latest version of test-dependencies script
5) It was using complete buildhistory repo which had many stalled packages like task-* and couple of architectures.

But at least it will allow me to restrict recipes to rebuild from 1900 to only 256 which were failing in this build.

It was tested only for qemuarm.

Complete logs are here:
http://logs.nslu2-linux.org/buildlogs/oe/oe-shr-core-branches/test-dependencies-2013-07-24/

Interesting parts
11 recipes failed in world build:
http://logs.nslu2-linux.org/buildlogs/oe/oe-shr-core-branches/test-dependencies-2013-07-24/failed.world

101 recipes failed in minimal build (8 caused by boost):
http://logs.nslu2-linux.org/buildlogs/oe/oe-shr-core-branches/test-dependencies-2013-07-24/failed.min

216 packages (160 recipes) doesn't have deterministic dependencies
http://logs.nslu2-linux.org/buildlogs/oe/oe-shr-core-branches/test-dependencies-2013-07-24/failed.dependencies

Next results should be more interesting, because many issues are already fixed by change I've sent today to oe-core and oe-devel ML, but not all, because they were detected in build without x11 in DISTRO_FEATURES and without some layers (like meta-browser meta-efl meta-gnome meta-gpe meta-initramfs meta-webserver meta-xfce).

Cheers,

#21 lore raw

Re: test-dependencies.sh results from big world build

Quoted 36 lines · Martin Jansa

My biggest build with 20+ layers included finally finished today (after many days because there was hw issue on server where it was running, so it was slower then it should be).

The results are a bit messy because:
1) It had only some fixes from my last "autodetected dependencies" patchsets for oe-core and meta-oe
2) It was started when oe-core/master had broken boost, so many packages failed because of boost
3) It was started when oe-core/master had issues with qt-mobility (not sure if
all were fixed already)
4) It wasn't using latest version of test-dependencies script
5) It was using complete buildhistory repo which had many stalled packages like task-* and couple of architectures.

But at least it will allow me to restrict recipes to rebuild from 1900 to only 256 which were failing in this build.

It was tested only for qemuarm.

Complete logs are here:

http://logs.nslu2-linux.org/buildlogs/oe/oe-shr-core-branches/test-dependencies-2013-07-24/

Interesting parts
11 recipes failed in world build:

http://logs.nslu2-linux.org/buildlogs/oe/oe-shr-core-branches/test-dependencies-2013-07-24/failed.world

101 recipes failed in minimal build (8 caused by boost):

http://logs.nslu2-linux.org/buildlogs/oe/oe-shr-core-branches/test-dependencies-2013-07-24/failed.min

216 packages (160 recipes) doesn't have deterministic dependencies

Quoted 8 lines

http://logs.nslu2-linux.org/buildlogs/oe/oe-shr-core-branches/test-dependencies-2013-07-24/failed.dependencies

Next results should be more interesting, because many issues are already fixed by change I've sent today to oe-core and oe-devel ML, but not all, because they were detected in build without x11 in DISTRO_FEATURES and without some layers (like meta-browser meta-efl meta-gnome meta-gpe meta-initramfs meta-webserver meta-xfce).

I just wanted to say, this is some impressive work, nicely done. I'm amazed at how many recipes still don't have deterministic dependencies, even after all these years :)

Signature · 5 lines
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics