On Tue, 2024-06-25 at 19:15 +0000, Sreejith Ravi via lists.openembedded.org wrote: > Currently, the package_do_pkgconfig() only handles the "Requires" key > field from the .pc file and ignores the "Requires.private" field while > generating the dev dependency chain. This results in a broken dependency > list and requires the installation of recommended packages to resolve > the build dependencies when using the dev IPKs. This increases the > hard disk space usage and download time and installs many unnecessary > packages as part of the recommendations. > > This patch ensures that the "Requires.private" field is also considered > when creating the dependency list for the dev IPKs. With this, the dev > IPK will have the proper dependencies listed, eliminating the need to > install recommended packages to resolve the build time dependencies. > > Example: usr/lib/pkgconfig/libical.pc > ---------- > Libs: -L${libdir} -lical -licalss -licalvcal > Libs.private: -lpthread > Requires.private: icu-i18n > ---------- > Depends field generated for libical-dev > Depends: glib-2.0-dev, libical (= 3.0.7-r0) > ------------ > > When trying to resolve the build time dependency with libical > package using “-dev” ipk generated, it will throw the below error. > ----------- > Package icu-i18n was not found in the pkg-config search path. > Perhaps you should add the directory containing `icu-i18n.pc' > to the PKG_CONFIG_PATH environment variable > Package 'icu-i18n', required by 'libical', not found > ----------- > > This patch will fix the broken dependency list. > > ------- > libical-dev depends field generated with this patch > Depends: glib-2.0-dev, icu-dev, libical (= 3.0.7-r0) > ------- > > Other examples of packages generated with broken dev dependency. > > libflac-dev : https://packages.debian.org/sid/libflac-dev > Without patch: > Depends: flac (= 1.3.3-r0), libflac, libflac++ > with patch: > Depends: flac (= 1.3.3-r0), libflac, libflac++, libogg-dev > > libglib2.0-dev : https://packages.debian.org/buster/libglib2.0-dev > without patch: > Depends: libffi-dev, libglib-2.0-0 (= 1:2.62.6-r0), libpcre-dev > with patch: > Depends: libffi-dev, libglib-2.0-0 (= 1:2.62.6-r0), libpcre-dev, > util-linux-dev, zlib-dev > > Signed-off-by: Sreejith Ravi <sreejith.ravi...@gmail.com> > --- > meta/classes/package.bbclass | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass > index 67351b2510..084fe428e5 100644 > --- a/meta/classes/package.bbclass > +++ b/meta/classes/package.bbclass > @@ -2182,7 +2182,7 @@ python package_do_pkgconfig () { > if m: > hdr = m.group(1) > exp = pd.expand(m.group(2)) > - if hdr == 'Requires': > + if hdr == 'Requires' or hdr == > 'Requires.private': > pkgconfig_needed[pkg] += exp.replace(',', ' > ').split() > continue > m = var_re.match(l) >
As I understand it, Requires.private are only needed for static linking so shouldn't this dependency just be added to the -staticdev package? The -dev package wouldn't contain a static library anyway. Did you have static libraries enabled? Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#201147): https://lists.openembedded.org/g/openembedded-core/message/201147 Mute This Topic: https://lists.openembedded.org/mt/106876780/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-