> -----Original Message-----
> From: [email protected] <openembedded-
> [email protected]> On Behalf Of Mark Hatle
> Sent: den 15 december 2020 02:02
> To: [email protected]
> Subject: Re: [OE-core] How to create a directory in multiple packages?
>
> On 12/14/20 11:43 AM, Peter Kjellerstedt wrote:
> > Say we have a recipe that creates an empty /etc/foo directory. Now we
> > want to add a new file in that directory /etc/foo/bar and package it as
> > ${PN}-bar. This means the creation of the /etc/foo directory is moved
> > from the ${PN} package to the ${PN}-bar package. Is there any way to
> > make ${PN} continue to create an empty /etc/foo, or is the only
> > alternative to introduce an /etc/foo/.dummy and package it in ${PN}?
>
> try adjust the order of the PACKAGES variant. Something like:
>
> PACKAGES = "${PN}-bar ... ${PN}"
>
> FILES_${PN}-bar = "/etc/foo/bar"
> FILES_${PN} = "/etc/foo"
>
> That SHOULD package the file 'bar' in -bar, and the directory in ${PN}.
Unfortunately that does not work (seems bitbake is too smart). What I have
is basically:
PACKAGE_BEFORE_PN = "${PN}-bar"
FILES_${PN} += "${sysconfdir}/foo"
FILES_${PN}-bar = "${sysconfdir}/foo/bar"
which results in the following in the spec file:
%files -n foo-bar
%defattr(-,-,-,-)
%dir "/etc"
%dir "/etc/foo"
"/etc/foo/bar"
There is nothing else about /etc or /etc/foo in the spec file.
After delving into the code for at bit, I believe this is due to how
populate_packages() works. When it handles the ${PN}-bar package and
finds the /etc/foo/bar file, it will also mark /etc and /etc/foo as
seen, which means they will not be added to any other package, unless
that package has an entry for some other /etc/foo/something file, even
if /etc/foo is explicitly listed in, e.g., FILES_${PN}.
So for now, it seems we will have to resort to using a pkg_postinst_${PN}.
> (Some of the people commenting this isn't less then optimal, actually
> it's not that unusual.. Typical case I see is creating a directory in
> /var or /usr/share for datafiles and the main package owns the directory,
> with sub-packages [or other packages] contributing data into that
> directory.)
Yes, there are reason why the empty directory needs to be installed as
part of the image. Otherwise I would just have used a file in
"/usr/lib/tmpfiles.d".
> --Mark
>
> > //Peter
//Peter
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#145652):
https://lists.openembedded.org/g/openembedded-core/message/145652
Mute This Topic: https://lists.openembedded.org/mt/78956546/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-