[yocto] RPM multilib package installation issue

Mark Hatle mark.hatle at windriver.com
Fri Sep 2 11:56:04 PDT 2011


On 9/2/11 1:36 PM, McClintock Matthew-B29882 wrote:
> On Fri, Sep 2, 2011 at 12:09 PM, Mark Hatle <mark.hatle at windriver.com> wrote:
>> For everything I see, that should work.
>>
>> In classes/image.bbclass, RDEPENDS is augmented by the contents of
>> IMAGE_INSTALL, LINGUAS_INSTALL, MULTILIB_IMAGE_INSTALL, and NORMAL_FEATURE_INSTALL.
> 
> The bitbake side is fine, It's getting put into RDEPENDS and all the
> packages are beinh built properly. RPMs are built as well.
> 
>> The place to start looking for this is within the log.do_rootfs in the rootfs
>> directory you are working on.  You should see something that indicates it's
>> trying to install the "lib64-perl".  (in the case of RPM, it should eventually
>> rename it to "perl" -- but choose the 64-bit version.)
> 
> However, I don't see code that invokes package_rpm.bbclass properly.
> It looks like it could work, but no where is MLPREFIX set for image.
> There is some override or something missing on my end or in the code
> to properly export these vars for the ML rpm install scenario.
> 
> Further more, from what I see no where in rootfs_rpm.bbclass do we
> pass MULTILIB_PACKAGE_INSTALL into the list of packages to be
> installed... thus they fall off. ipk looks like it might have this
> stuff done.

This looks like a typo of some sorts:

image.bbclass:RDEPENDS += "${IMAGE_INSTALL} ${LINGUAS_INSTALL}
${MULTILIB_IMAGE_INSTALL} ${NORMAL_FEATURE_INSTALL}"

image.bbclass:export MULTILIB_PACKAGE_INSTALL ?= "${MULTILIB_IMAGE_INSTALL}"

So you should be setting MULTILIB_IMAGE_INSTALL, this should feed into the
RDEPENDS and that should in turn seed the roofs stuff..  So there looks to be a
disconnect of some sort between the implementation of the image.bbclass and the
individual package_*.bbclasses.

(The only place I see MULTILIB_PACKAGE_INSTALL is in rootfs_ipk.bbclass.)

The way the rootfs_rpm (which uses package_rpm) gets the list of things to
install is via:

package_linguas=INSTALL_PACKAGES_LINGUAS_RPM=LINGUAS_INSTALL

package_to_install=INSTALL_PACKAGES_NORMAL_RPM=PACKAGE_INSTALL="${IMAGE_INSTALL}
 ${FEATURE_INSTALL}"

package_attemptonly=INSTALL_PACKAGES_ATTEMPTONLY_RPM=PACKAGE_INSTALL_ATTEMPTONLY=FEATURE_INSTALL_OPTIONAL

Where you see RPM above, replace with ipk and deb and the same ordering should
be used.  So based on that, RDEPENDS is being populated from the
"image.bbclass", but nothing is populating the MULTILIB_IMAGE_INSTALL like it
should be.  Either it needs to be added to the 'PACKAGE_INSTALL' or something
similar needs to be invented and added to each of the rootfs_* types.  (Note,
there needs to be a translation step between the definition of
MULTILIB_IMAGE_INSTALL and where it's used.. since things like "zlib" can become
"libz1" via name translation.  (translation happens in runtime_mapping_rename if
I remember correctly.. in image.bbclass)

I'd suggest you file a bug about this in the yocto system.  We'll get someone to
work on it...  (I agree it's broken BTW..)  The ipk usage may turn out to be an
example for the deb and rpm usage... but the three should continue to be in sync
for most of it.

--Mark

> -M
> 
> -M




More information about the yocto mailing list