[OE-core] [PATCH 2/4] opkg-utils: add update-alternatives PACKAGECONFIG

Robert Yang liezhi.yang at windriver.com
Fri Jan 15 09:23:43 UTC 2016


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 <chris_larson at mentor.com>
>
> 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 <chris_larson at mentor.com>
> ---
>   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"
>



More information about the Openembedded-core mailing list