No, static libraries were not enabled. I am using only the -dev IPK, which
has only the shared libraries. With this change, it is successfully
building. Also, if it links to the static library, it will fail as I am not
installing the static IPK.

In the latest pkgconf commit, it looks like Requires.private is needed for
header inclusion also:
https://github.com/pkgconf/pkgconf/commit/2d26db3a984e7a69cedc6274c22119de4bcf1b40

Cheers
Sreejith

On Tue, Jun 25, 2024 at 10:41 PM Richard Purdie <
[email protected]> wrote:

> 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 <[email protected]>
> > ---
> >  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 (#201154): 
https://lists.openembedded.org/g/openembedded-core/message/201154
Mute This Topic: https://lists.openembedded.org/mt/106876780/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to