On Tue, 2024-10-08 at 13:42 +0200, Alexander Kanavin wrote:
> > On Tue, 8 Oct 2024 at 13:24, <[email protected]> wrote:
> > 
> > > > It is a build time dependency as I see it.
> > > > 
> > > > if foo.bb is setting DEPENDS to include "bar baz and qux" to
> > > > indicate
> > > > it need it for compilation.
> > > > 
> > > > When foo is added to an image, and we then populate_sdk for
> > > > this
> > > > image
> > > > I expect that the SDK includes the dev packages of bar baz and
> > > > qux
> > > > to
> > > > be able to compile foo with it.
> > > > 
> > > > This has working until now as the SDK installed the recommended
> > > > packages.
> > > > 
> > > > The key is that process_depchains in package.py make the
> > > > recommendation. From the comment
> > > > 
> > > > <snip>
> > > > def process_depchains(pkgfiles, d):
> > > >     """
> > > >     For a given set of prefix and postfix modifiers, make those
> > > > packages
> > > >     RRECOMMENDS on the corresponding packages for its RDEPENDS.
> > > > 
> > > >     Example:  If package A depends upon package B, and A's .bb
> > > > emits an
> > > >     A-dev package, this would make A-dev Recommends: B-dev.
> > > > </snip>
> > > > 
> > > > I will start on creating an example on my github account
> > > > showing
> > > > the
> > > > issue better if it is not yet clear.
> > 
> > I still don't understand why the standard SDK population mechanism
> > doesn't work for you. It does pull in -dev for everything that is
> > in
> > the image, so where does this break down?
> > 
> > Alex


I have made a small example on github - in the sdk_example branch
https://github.com/frosteyes/yocto-master/tree/fe/sdk_example

In short it has a layer named meta-fe.
This contains a small app named fe-app (just a program with boost
dependency), and a dummy-fe-app as placeholder for the same
dependencies.

https://github.com/frosteyes/yocto-master/tree/fe/sdk_example/meta-fe/recipes-application/fe-app

Next their is two images. image-amp-base based on core-image-minimal,
just adding dummy-fe-app, and a image-fe starting from the base image,
but removing the dummy-fe-app and adding the fe-app instead.

Think of this as a pattern, where you have several dummy packages, and
that the dependency includes a significant number of packages like
boost, qt packages, gstreamer, etc.

Until know this pattern have worked great for having a base sdk /
image, able to be shared to an application team, so they have something
to code against when upgrading, so their is breaking changes of the
application.

It is based around that the SDK installed the recommends packages, as
the list of packages ends in the recommends section of the RPM
packages.

yocto@yocto:~/./deploy/rpm/core2_64$ rpm -q --recommends dummy-fe-app-
dev*
boost-dev
dummy-fe-app = git-r0

But as the dummy package only contain a text file and no binary, the
rpm --requires only list the default rpmlib and not all the files
located for the binary of fe-app.

Hope it make it more clear what workflow their is broken with the
change, and why my patch suggest to making it a configurable option.

Will update the patch (split out documentation and better commit
message) and send v1 of the patch.

/Claus

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#205646): 
https://lists.openembedded.org/g/openembedded-core/message/205646
Mute This Topic: https://lists.openembedded.org/mt/108685995/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to