[yocto] Version numbering of dependencies

radioconfusion at gmail.com radioconfusion at gmail.com
Thu Mar 8 23:18:12 PST 2018


Hello all

I'm confused with version numbering of shared libs dependencies on yocto
environment. I’m using Morty but the thing looks like same with newer releases.

Let me explain the problem.

I'll take Curl package for example. We all know that the Curl recipe makes
libcurl-package also. Ok, now I want to add some important compiling options
to Curl and I make curl_%.bbappend file to my custom layer with the wanted
customizations. I don't want to raise the original version number of Curl
and I use PR_append = "-myver1" instead. Now I get packages
curl_x.y.z-r0-myver1_blabla.ipk and
libcurl_x.y.z-r0-myver1_blabla.ipk. That’s very good for me.

The problem is that: Now the Curl ipk package dependencies are

Depends: libc6 (>= a.b), libcurl4 (>= x.y.z), libz1 (>= c.d.e)

And I think there should be:

Depends: libc6 (>= a.b), libcurl4 (>= x.y.z-r0-myver1), libz1 (>= c.d.e)

or something like that.

Now I can upgrade Curl from x.y.z to x.y.z-r0-myver1 on my device without
upgrading the libcurl and that breaks a lot of things. Ok, normally
'opkg upgrade' installs both of them but in case of network failure or an other
failure this problem can be happened.

I found that package.bbclass uses PKGV, PKGV_+pkg and PV_+pkg environment
variables to get version number for dependencies.
If I change it to use EXTENDPKGV, I get expected results.

Is this a bug or am I doing something wrong?

The patch I tried:

--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1620,7 +1620,9 @@ python package_do_shlibs() {
         needs_ldconfig = False
         bb.debug(2, "calculating shlib provides for %s" % pkg)

-        pkgver = d.getVar('PKGV_' + pkg, True)
+        pkgver = d.getVar('EXTENDPKGV', True)
+        if not pkgver:
+            pkgver = d.getVar('PKGV_' + pkg, True)
         if not pkgver:
             pkgver = d.getVar('PV_' + pkg, True)
         if not pkgver:

Best Regards,
Jussi



More information about the yocto mailing list