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)
>
Unfortunately this patch fails to apply. This is not a patch against
master and obviously hasn't need tested there.
Cheers,
Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#201164):
https://lists.openembedded.org/g/openembedded-core/message/201164
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]]
-=-=-=-=-=-=-=-=-=-=-=-