[yocto] do_rootfs missing package (ipk) or not found in base feeds (rpm)

Koehler, Yannick (HP Networking) yannick.koehler at hp.com
Wed Jan 7 10:13:04 PST 2015


Thanks for the fast reply, yes, the packages-split/libutil is empty.  As stated, I produce a .so, a .a and some headers, it appears that bitbake.conf will treat those as libutil-dev and libutil-staticdev, leaving my libutil empty.  You say I must fix that, but I am unclear how.  Basically, if I look at the logic it seems ok, shared/static libs are "-dev" stuff and I do not mind, but then if I change IMAGE_INSTALL_append to use libutil-dev I still get an error:

	error: Can't install libutil-dev-1.0.0-r0 at i586: no package provides libutil = 1.0.0-r0

I looked at libpcap as an example, I see no override of FILES_ or PACKAGES, and yet the libpcap package exists.  Ha! Think I got it, libpcap.so is actually libpcap.so.1, so likely the issue is that my lib is libutil.so, I will rename it to libutil.so.1 and should get same results then.

Ok, that would explain it, thanks a lot!

--
Yannick Koehler

-----Message d'origine-----
De : Paul Eggleton [mailto:paul.eggleton at linux.intel.com] 
Envoyé : January-07-15 12:59 PM
À : Koehler, Yannick (HP Networking)
Cc : yocto at yoctoproject.org
Objet : Re: [yocto] do_rootfs missing package (ipk) or not found in base feeds (rpm)

Hi Yannick,

On Wednesday 07 January 2015 17:20:08 Koehler, Yannick wrote:
>   I created my second recipe in Yocto, it is a shared library.
> 
> --
> SUMMARY = "libutil"
> 
> LICENSE = "LGPLv2.1+"
> LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1"
> 
> SRC_URI = "file://libutil-${PV}-Source.tar.bz2"
> SRC_URI[md5sum] = "???"
> SRC_URI[sha256sum] = "???"
> 
> S = "${WORKDIR}/libutil-${PV}-Source"
> 
> DEPENDS = "libpcap"
> 
> inherit cmake
> --
> 
>   I added to conf/distro/poky.conf the following
> 
> --
> IMAGE_INSTALL_append = " libutil"
> --
> 
>    It build nicely and install some headers and a shared library.  
> Yet, when Yocto calls the do_rootfs, it fails and claim that the 
> package is not found.
> 
>    I did a "find tmp -name libutil*" and see that  I have the following:
> 
> ../build/tmp/deploy/rpm/i586/libutil-staticdev-1.0.0-r0.i586.rpm
> ../build/tmp/deploy/rpm/i586/libutil-dev-1.0.0-r0.i586.rpm
> ../build/tmp/deploy/rpm/i586/libutil-dbg-1.0.0-r0.i586.rpm
> ../build/tmp/deploy/ipk/i586/libutil-dbg_1.0.0-r0_i586.ipk
> ../build/tmp/deploy/ipk/i586/libutil-staticdev_1.0.0-r0_i586.ipk
> ../build/tmp/deploy/ipk/i586/libutil-dev_1.0.0-r0_i586.ipk
> 
>   I am unclear what triggered the package to be named -dev or 
> -staticdev and actually having no package named 
> libutil-1.0.0-r0.i586.rpm as it seems that do_rootfs is looking for.
> 
>   I have tried with both ipk and rpm without success.  I searched 
> google for some answer but could not get a solution to this problem.  
> My
> libutil-1.0.0-Source.tar.bz2 generate a libutil.so, libutil-static.a 
> and headers, all of which is install properly when using 
> cmake/make/make install. I am using a local copy of Yocto "Dizzy".

What's almost certainly happening is your main libutil package is ending up empty; by default packages are not actually written out if they are empty (the -dev, -dbg and -staticdev are always written out). You can verify this by looking under packages-split under the workdir for the recipe (tmp/work/<architecture>/libutil/1.0.0-r0/). Either this is because files you want in the main package aren't actually being built, or they are ending up in one of the other packages. During do_package, the build system looks through packages in the order they are mentioned in the PACKAGES variable, and the first package whose FILES value matches the file gets the file (you can see the default values of PACKAGES and FILES in meta/conf/bitbake.conf). So either you need to fix it so that the right files are being produced/installed, or adjust PACKAGES / FILES as appropriate.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list