[yocto] dnf fail in do_rootfs cannot find shared library

Måns Zigher mans.zigher at gmail.com
Wed Jan 23 05:19:27 PST 2019


Hi guys,

I found the issue and dnf is doing exactly what it should. The problem is
the shared library

readelf -d libx_media_1.0.so


Dynamic section at offset 0xf31c8 contains 40 entries:
  Tag        Type                         Name/Value
....
...
 0x000000000000000e (SONAME)             Library soname: [
libx_media_1.0_wtf.so]

So the SONAME of the file is actually set to libx_media_1.0_wtf.so but the
file is named libx_media_1.0.so and the executable that is part of the
package is linked against libx_media_1.0.so also.
I manage to figure this out when I was going
through /tmp/work/path/to/xmedia/1.0-r43/pkgdata/shlibs2 and I noticed that
in xmedia.lst file actually did not include the libx_media_1.0.so but
libx_media_1.0_wtf.so.
Thanks for your efforts.

BR
Måns Zigher

Den ons 23 jan. 2019 kl 13:01 skrev Måns Zigher <mans.zigher at gmail.com>:

> Hi,
>
> Yes I noticed it so I tried that out but without any success but I will
> investigate that also to see if change it can in another result.
>
> BR
> Måns Zigher
>
> Den ons 23 jan. 2019 kl 12:33 skrev Einar Vading <yocto-ml at vading.se>:
>
>> This is a longshot but I am currently investigating an issue we have
>> with a packagegroup.
>>
>> I get a similar error but I can fix it by moving the package in my
>> RDEPENDS in the packagegroup.
>>
>> If you move your libx_media up or down in the packagegroup, does it help?
>>
>> For me i got:
>>     Error:
>>       Problem: conflicting requests
>>       - nothing provides libserved-utilsoversion needed by
>> packagegroup-base-1.0-r0.0.noarch
>>
>> When I had:
>>     RDEPENDS_${PN} = "\
>>         libdomain-somelib \
>>         libsomeotherlib \
>>         served-util \
>>     "
>>
>> But changing to:
>>     RDEPENDS_${PN} = "\
>>         libdomain-somelib \
>>         served-util \
>>         libsomeotherlib \
>>     "
>> Made it work.
>>
>> If you're down to trying anything you might as well try this =)
>>
>> // Einar
>>
>> On Wed, Jan 23, 2019 at 12:03 PM Måns Zigher <mans.zigher at gmail.com>
>> wrote:
>> >
>> > I have toke the rpm file that was produced. I found the file under the
>> build directory under
>> tmp/work/imx8mq-strix-linux/x_media/1.0-r44/deploy-rpms/imx8mq/temp/x_media-1.0-r44.imx8mq.rpm.
>> I used the following commands
>> > 7z x x_media-1.0-r44.imx8mq.rpm
>> > 7z x x_media-1.0-r44.imx8mq.cpio
>> >
>> > The result from this gave me the file tree where I then could run
>> > file usr/lib/libx_media_1.0.so
>> > usr/lib/libx_media_1.0.so: ELF 64-bit LSB shared object, ARM aarch64,
>> version 1 (SYSV), dynamically linked, stripped
>> >
>> > So I believe that I have concluded that the rpm include the file that
>> dnf is complaining about. I don't understand why dnf thinks that this
>> dependency is not meet when it clearly is part of the package. I have added
>> verbose flags to the dnf call but dose not give any more information.
>> > I am not sure how I can proceed to find out what I have done wrong. The
>> recipe is a bit of a freak of nature because the binaries that I am
>> packaging is actually built using another toolchain but it is for the same
>> arch can dnf detect that?
>> >
>> > BR
>> > Måns Zigher
>> >
>> > Den tis 22 jan. 2019 kl 17:59 skrev Måns Zigher <mans.zigher at gmail.com
>> >:
>> >>
>> >> Hi,
>> >>
>> >> I am struggling with a recipe which more or less just downloads
>> binaries and creating a package. We have previously been using ipkg but now
>> we have switched to rpm in our builds. One of the binaries in the packages
>> is a library let's call it libx_media_1.0.so. This library is part of
>> the package that the recipe is producing. The library is placed under
>> /usr/lib/. When building the image I am getting the following error
>> >>
>> >> ERROR: base-image-1.0-r0 do_rootfs: Could not invoke dnf. Command
>> >> .....
>> >> ...
>> >> Error:
>> >>  Problem: package packagegroup-x-media-1.0-r11.noarch requires
>> x_media, but none of the providers can be installed
>> >>   - conflicting requests
>> >>   - nothing provides libx_media_1.0.so()(64bit) needed by
>> x_media-1.0-r44.imx8mq
>> >>
>> >> ERROR: base-image-1.0-r0 do_rootfs: Function failed: do_rootfs
>> >>
>> >> Here is the output from running the command file on the library
>> >>
>> >> usr/lib/libx_media_1.0.so: ELF 64-bit LSB shared object, ARM aarch64,
>> version 1 (SYSV), dynamically linked, stripped
>> >>
>> >> I have also verified that the library is part of the produced rpm so
>> that is not the issue.
>> >>
>> >> Dose anyone have any suggestion on how to debug this problem? Because
>> I am out of ideas
>> >>
>> >> BR
>> >> Måns Zigher
>> >
>> > --
>> > _______________________________________________
>> > yocto mailing list
>> > yocto at yoctoproject.org
>> > https://lists.yoctoproject.org/listinfo/yocto
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190123/f28ca57f/attachment-0001.html>


More information about the yocto mailing list