[OE-core] rpmdeps, was Re: dbus-native --with-x

Mark Hatle mark.hatle at windriver.com
Wed Jun 1 21:14:10 UTC 2011


On 6/1/11 2:00 PM, Koen Kooi wrote:
> 
> Op 1 jun 2011, om 20:55 heeft Mark Hatle het volgende geschreven:
> 
>> On 6/1/11 12:08 PM, Phil Blundell wrote:
>>> On Wed, 2011-06-01 at 11:58 -0500, Mark Hatle wrote:
>>>> On 6/1/11 11:54 AM, Phil Blundell wrote:
>>>>> On Wed, 2011-06-01 at 11:48 -0500, Mark Hatle wrote:
>>>>>> So in the above, perl and python are really the only items that could be disabled.
>>>>>
>>>>> Just to be clear, in the list you mentioned, were you talking about the
>>>>> usage of rpm-native for rpmdeps, or the usage by package_rpm.bbclass
>>>>> itself?
>>>>
>>>> I was talking about rpm-native recipe in general, and how it's used.
>>>>
>>>> rpmdeps requires a good chunk of the rpm infrastructure (even if we don't end up
>>>> using rpmbuild or rpm commands during the build..)
>>>
>>> Do you happen to have a list of what exactly rpmdeps does require?
>>> Based on the descriptions you gave before, I'm guessing that it probably
>>> doesn't need openssl (since, afaik, it doesn't do any signing) or pcre
>>> (since it isn't building any packages) or acl, attr, bzip and zlib
>>> (since it also isn't installing anything).  
>>
>> rpmdeps uses, according to ldd:
>>
>>        linux-vdso.so.1
>>        librpm-5.4.so
>>        librpmdb-5.4.so
>>        librpmio-5.4.so
>>        librpmmisc-5.4.so
>>        libm.so.6
>>        libdl.so.2
>>        libacl.so.1
>>        libattr.so.1
>>        libpcreposix.so.0
>>        libdb-5.1.so
>>        libmagic.so.1
>>        liblzma.so.5
>>        libbz2.so.0
>>        libz.so.1
>>        libpthread.so.0
>>        librt.so.1
>>        libelf.so.1
>>        libpopt.so.0
>>        libssl.so.0.9.8
>>        libcrypto.so.0.9.8
>>        libpcre.so.0
>>        libc.so.6
>>        libgcc_s.so.1
>>        /lib64/ld-linux-x86-64.so.2 (0x0000003c51800000)
>>
>> The issue is that it uses the librpm, librpmdb, librpmio, and librpmmisc
>> libraries.  These libraries provide and use all of the rest of the components.
> 
> 
> What is rpmdeps actually used for in package.bbclass when you're not using rpm as package format?

In package.bbclass:

package_do_filedeps is where rpmdeps is used.

This captures file dependencies on a per-file basis.  The dependencies captured
include interpreter information as well as ELF sonames and related.

There are/were a number of small dependencies that were being missed in the
past, this is a complete set of dependencies which are captured (again on a
per-file basis).

The reason we capture on a per-file is so that additional tooling can be
developed to allow people to view, understand and modify the rootfs images they
are working on.  One of the things people like to do is understand why perl or
python is being included on a small filesystem... the per-file dependencies can
be used to "see" this, and also allow people to skip specific files and thus
affect the dependencies within their system.  (Note, this tool does not yet
exist!  But I expect that it will at some point.)

(There are three places you can typically affect the dependencies of the end
device.  During recipe creation (i.e. manual RDEPENDS), during source
configuration, and during binary package creation...  this gives us the ability
to hook in and modify the package creation -- or re-create the packages based on
new criteria.)

(BTW besides the rpmdeps, rpm components are also used in the
split_and_strip_files function...  but this is really just debugedit)


--Mark

> regards,
> 
> Koen
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core





More information about the Openembedded-core mailing list