From: Sreejith Ravi Date: Wed, 26 Jun 2024 14:05:00 +0000 (+0000) Subject: package.py: Add Requires.private field in process_pkgconfig X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b5c8b7006aae2162614ba810ecf4418ca3f36b4;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git package.py: Add Requires.private field in process_pkgconfig Currently, the process_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 Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index d1303f32bfd..e6b46a0dc57 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py @@ -1853,7 +1853,7 @@ def process_pkgconfig(pkgfiles, d): 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)