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 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto