Hi Chris,

I've afraid this patch can't work well, when opkg-utils doesn't provide
virtual/update-alternatives, then chkconfig would be built and there would
be dependency loops for example,

PACKAGECONFIG = "python"
$ bitbake core-image-minimal

[snip]
ERROR:
Dependency loop #1 found:
Task 747 (/buildarea/lyang1/poky/meta/recipes-support/libpcre/libpcre_8.38.bb, do_packagedata) (dependent Tasks ['libpcre, do_package']) Task 2067 (/buildarea/lyang1/poky/meta/recipes-extended/slang/slang_2.2.4.bb, do_package) (dependent Tasks ['gcc-runtime, do_packagedata', 'pseudo, do_populate_sysroot', 'slang, do_install', 'libpcre, do_packagedata', 'libtool-cross, do_packagedata', 'glibc, do_packagedata', 'rpm, do_populate_sysroot']) Task 2064 (/buildarea/lyang1/poky/meta/recipes-extended/slang/slang_2.2.4.bb, do_packagedata) (dependent Tasks ['slang, do_package']) Task 1876 (/buildarea/lyang1/poky/meta/recipes-extended/newt/libnewt_0.52.18.bb, do_package) (dependent Tasks ['slang, do_packagedata', 'gcc-runtime, do_packagedata', 'pseudo, do_populate_sysroot', 'libnewt, do_install', 'libtool-cross, do_packagedata', 'glibc, do_packagedata', 'popt, do_packagedata', 'rpm, do_populate_sysroot']) Task 1873 (/buildarea/lyang1/poky/meta/recipes-extended/newt/libnewt_0.52.18.bb, do_packagedata) (dependent Tasks ['libnewt, do_package']) Task 1405 (/buildarea/lyang1/poky/meta/recipes-extended/chkconfig/chkconfig_1.3.58.bb, do_package) (dependent Tasks ['gcc-runtime, do_packagedata', 'pseudo, do_populate_sysroot', 'glibc, do_packagedata', 'libnewt, do_packagedata', 'chkconfig, do_install', 'popt, do_packagedata', 'gettext, do_packagedata', 'rpm, do_populate_sysroot']) Task 1402 (/buildarea/lyang1/poky/meta/recipes-extended/chkconfig/chkconfig_1.3.58.bb, do_packagedata) (dependent Tasks ['chkconfig, do_package']) Task 853 (/buildarea/lyang1/poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb, do_package) (dependent Tasks ['gcc-runtime, do_packagedata', 'bzip2, do_install_ptest_base', 'bzip2, do_install', 'libtool-cross, do_packagedata', 'glibc, do_packagedata', 'pseudo, do_populate_sysroot', 'chkconfig, do_packagedata', 'rpm, do_populate_sysroot']) Task 850 (/buildarea/lyang1/poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb, do_packagedata) (dependent Tasks ['bzip2, do_package']) Task 750 (/buildarea/lyang1/poky/meta/recipes-support/libpcre/libpcre_8.38.bb, do_package) (dependent Tasks ['libpcre, do_install_ptest_base', 'libpcre, do_install', 'gcc-runtime, do_packagedata', 'pseudo, do_populate_sysroot', 'libtool-cross, do_packagedata', 'glibc, do_packagedata', 'bzip2, do_packagedata', 'zlib, do_packagedata', 'rpm, do_populate_sysroot'])

[snip]

// Robert


On 11/13/2015 07:41 AM, Christopher Larson wrote:
From: Christopher Larson <[email protected]>

This lets someone use a different update-alternatives-native provider. Without
this available, they'll step on one another in the sysroot unconditionally,
since we need to build opkg-utils-native for ipk based builds regardless.

Signed-off-by: Christopher Larson <[email protected]>
---
  meta/recipes-devtools/opkg-utils/opkg-utils_git.bb | 12 +++++++++---
  1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils_git.bb 
b/meta/recipes-devtools/opkg-utils/opkg-utils_git.bb
index 5f518d2..b242d1f 100644
--- a/meta/recipes-devtools/opkg-utils/opkg-utils_git.bb
+++ b/meta/recipes-devtools/opkg-utils/opkg-utils_git.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "http://code.google.com/p/opkg/";
  LICENSE = "GPLv2+"
  LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
                      
file://opkg.py;beginline=1;endline=18;md5=15917491ad6bf7acc666ca5f7cc1e083"
-PROVIDES += "virtual/update-alternatives"
+PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 
'virtual/update-alternatives', '', d)}"

  SRCREV = "53274f087565fd45d8452c5367997ba6a682a37a"
  PV = "0.1.8+git${SRCPV}"
@@ -21,15 +21,21 @@ TARGET_CC_ARCH += "${LDFLAGS}"
  PYTHONRDEPS = "python python-shell python-io python-math python-crypt 
python-logging python-fcntl python-subprocess python-pickle python-compression 
python-textutils python-stringold"
  PYTHONRDEPS_class-native = ""

-PACKAGECONFIG = "python"
+PACKAGECONFIG = "python update-alternatives"
  PACKAGECONFIG[python] = ",,,${PYTHONRDEPS}"
+PACKAGECONFIG[update-alternatives] = ",,,"

  do_install() {
        oe_runmake PREFIX=${prefix} DESTDIR=${D} install
+       if ! ${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 
'true', 'false', d)}; then
+               rm -f "${D}${bindir}/update-alternatives"
+       fi
  }

  do_install_append_class-target() {
-       sed -i ${D}${bindir}/update-alternatives -e 's,/usr/bin,${bindir},g; 
s,/usr/lib,${libdir},g'
+       if [ -e "${D}${bindir}/update-alternatives" ]; then
+               sed -i ${D}${bindir}/update-alternatives -e 
's,/usr/bin,${bindir},g; s,/usr/lib,${libdir},g'
+       fi
  }

  PACKAGES =+ "update-alternatives-opkg"

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to