On Thu, 2024-10-24 at 15:48 +0100, Sreejith Ravi via lists.openembedded.org
wrote:
> Currently, RDEPENDS for -staticdev and -dev is set using EXTENDPKGV
> in meta/conf/bitbake.conf:
> ----------------------------------
> EXTENDPKGV ?= "${EXTENDPKGEVER}${PKGV}-${PKGR}"
> DEV_PKG_DEPENDENCY = "${PN} (= ${EXTENDPKGV})"
> RDEPENDS:${PN}-staticdev = "${PN}-dev (= ${EXTENDPKGV})"
> ----------------------------------
>
> During the do_package task, AUTOINC is replaced in PKGV
> (via package_setup_pkgv), which is used for creating the package name.
> However, Yocto sets RDEPENDS with PKGV during the recipe parsing stage,
> resulting in the RDEPENDS field in the IPK control data containing AUTOINC.
>
> As the IPK name is generated with the updated PKGV, but the version in
> RDEPENDS still uses AUTOINC, this mismatch leads to installation failures.
>
> Example: libnsl
> install libnsl-staticdev throws the error, nothing provides
> libnsl-dev = 1.2.0+gitAUTOINC+4a062cf418-r0
> ----------------------------------
> IPKs available:
> libnsl2_1.2.0+git0+4a062cf418-r0_armv7at2hf-neon.ipk
> libnsl-src_1.2.0+git0+4a062cf418-r0_armv7at2hf-neon.ipk
> libnsl-dbg_1.2.0+git0+4a062cf418-r0_armv7at2hf-neon.ipk
> libnsl-staticdev_1.2.0+git0+4a062cf418-r0_armv7at2hf-neon.ipk
> libnsl-dev_1.2.0+git0+4a062cf418-r0_armv7at2hf-neon.ipk
>
> control data: libnsl-staticdev
> Package: libnsl-staticdev
> Version: 1.2.0+git0+4a062cf418-r0
> ----
> ----
> Depends: libnsl-dev (= 1.2.0+gitAUTOINC+4a062cf418-r0)
> Provides: libnsl2-staticdev
> Source: libnsl2_git.bb
>
> control data: libnsl-dev
> Package: libnsl-dev
> Version: 1.2.0+git0+4a062cf418-r0
> ----
> ----
> Depends: libnsl2 (= 1.2.0+gitAUTOINC+4a062cf418-r0), libtirpc-dev
> Recommends: gcc-runtime-dev, glibc-dev, libtirpc-dev
> Provides: libnsl2-dev
> Source: libnsl2_git.bb
> ----------------------------------
>
> This patch fixes the RDEPENDS versions set using EXTENDPKGV in the -dev and
> -staticdev packages. It replaces AUTOINC before generating the package
> control data.
>
> Updated control data:
> ----------------------------------
> Package: libnsl-dev
> Version: 1.2.0+git0+4a062cf418-r0
> ----
> ----
> Depends: libnsl2 (= 1.2.0+git0+4a062cf418-r0), libtirpc-dev
> Recommends: gcc-runtime-dev, glibc-dev, libtirpc-dev
> Provides: libnsl2-dev
> Source: libnsl2_git.bb
>
> Package: libnsl-staticdev
> Version: 1.2.0+git0+4a062cf418-r0
> ----
> ----
> Depends: libnsl-dev (= 1.2.0+git0+4a062cf418-r0)
> Provides: libnsl2-staticdev
> Source: libnsl2_git.bb
> ----------------------------------
>
> Signed-off-by: Sreejith Ravi <[email protected]>
> ---
> meta/classes-global/package.bbclass | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/meta/classes-global/package.bbclass
> b/meta/classes-global/package.bbclass
> index 6cd8c0140f..066a7ff835 100644
> --- a/meta/classes-global/package.bbclass
> +++ b/meta/classes-global/package.bbclass
> @@ -325,6 +325,15 @@ python package_setup_pkgv() {
> # Adjust pkgv as necessary...
> if 'AUTOINC' in pkgv:
> d.setVar("PKGV", pkgv.replace("AUTOINC", "${PRSERV_PV_AUTOINC}"))
> +
> + # Adjust dependencies that are statically set with EXTENDPKGV
> + vars =
> ["RDEPENDS","RPROVIDES","RRECOMMENDS","RSUGGESTS","RREPLACES","RCONFLICTS"]
> + packages = d.getVar('PACKAGES').split()
> + for var in vars:
> + for pkg in packages:
> + val = d.getVar("%s_%s"%(var,pkg))
> + if val and 'AUTOINC' in val:
> + d.setVar("%s_%s"%(var,pkg), val.replace("AUTOINC",
> "${PRSERV_PV_AUTOINC}"))
> }
>
Something isn't adding up here. With master, if I set:
DISABLE_STATIC:pn-libnsl2 = ""
and put PV = "2.0.1+git${SRCPV}" into the recipe, then bitbake libnsl2,
I see:
dpkg --info libnsl-staticdev_2.0.1+git0+d4b22e54b5-r0_amd64.deb
Package: libnsl-staticdev
Version: 2.0.1+git0+d4b22e54b5-r0
Architecture: amd64
OE: libnsl2
PackageArch: core2-64
Depends: libnsl-dev (= 2.0.1+git0+d4b22e54b5-r0)
Provides: libnsl2-staticdev (= 2.0.1+git0+d4b22e54b5)
which looks right to me. Similarly, the ipk looks correct.
cat kgdata/runtime/libnsl2-staticdev
PN: libnsl2
PV: 2.0.1+git
PR: r0
PKGV: 2.0.1+git@PRSERV_PV_AUTOINC@+d4b22e54b5
PKGR: r0@EXTENDPRAUTO@
LICENSE: LGPL-2.1-only
RDEPENDS:libnsl2-staticdev: libnsl2-dev (=
2.0.1+git@PRSERV_PV_AUTOINC@+d4b22e54b5-r0@EXTENDPRAUTO@)
RPROVIDES:libnsl2-staticdev: libnsl2-staticdev
(=2.0.1+git@PRSERV_PV_AUTOINC@+d4b22e54b5)
SECTION:libnsl2-staticdev: devel
which again, looks ok.
So which release are you seeing the issue on as I suspect it isn't
master?
Cheers,
Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#206442):
https://lists.openembedded.org/g/openembedded-core/message/206442
Mute This Topic: https://lists.openembedded.org/mt/109187668/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-