From a87ff4a5c67852e24450570479be4b4df52c1d04 Mon Sep 17 00:00:00 2001 From: Sreejith Ravi Date: Tue, 11 Feb 2025 16:53:59 +0000 Subject: [PATCH 1/5] RDKE-138 : Extended support to handle pkgconfig module from IPK --- meta/classes/package.bbclass | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 49d30caef70..2d4eaa96d76 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -2078,6 +2078,8 @@ python package_do_pkgconfig () { found = True if found == False: bb.note("couldn't find pkgconfig module '%s' in any package" % n) + if n not in (d.getVar('PKGCONFIGSKIPLIST_%s'%pkg) or "").split(): + d.appendVar('PKGCONFIGSKIPLIST_%s'%pkg,"%s "%(n)) deps_file = os.path.join(pkgdest, pkg + ".pcdeps") if len(deps): with open(deps_file, 'w') as fd: From c116adf6d7e3a713182d26499000a3762f8e2a0a Mon Sep 17 00:00:00 2001 From: Sreejith Ravi Date: Tue, 11 Feb 2025 17:11:48 +0000 Subject: [PATCH 2/5] RDK-47229 : Extended support to handle shared libs from IPK --- meta/classes/package.bbclass | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 2d4eaa96d76..2a3911037f7 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -1993,6 +1993,10 @@ python package_do_shlibs() { deps.append(dep) continue bb.note("Couldn't find shared library provider for %s, used by files: %s" % (n[0], n[1])) + # Storing the details of the shared libraries that don't have a provider. + # This variable can be used to check whether any other prebuilt packages provide this. + if n[0] not in (d.getVar('SHLIBSKIPLIST_%s'%pkg) or "").split(): + d.appendVar('SHLIBSKIPLIST_%s'%pkg,"%s "%(n[0])) deps_file = os.path.join(pkgdest, pkg + ".shlibdeps") if os.path.exists(deps_file): From 7a2b014508ffa3162711cc9f63baf0d861f7f651 Mon Sep 17 00:00:00 2001 From: Sreejith Ravi Date: Tue, 11 Feb 2025 17:14:03 +0000 Subject: [PATCH 3/5] RDKE-455 : Extended support to handle useradd with base-passwd ipk pkgs --- meta/classes/useradd.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass index 0f0ed3446d2..c1e11aeea41 100644 --- a/meta/classes/useradd.bbclass +++ b/meta/classes/useradd.bbclass @@ -146,7 +146,7 @@ python useradd_sysroot_sstate () { task = d.getVar("BB_CURRENTTASK") if task == "package_setscene": bb.build.exec_func("useradd_sysroot", d) - elif task == "prepare_recipe_sysroot": + elif task == "prepare_recipe_sysroot" or task == "install_ipk_recipe_sysroot": # Used to update this recipe's own sysroot so the user/groups are available to do_install scriptfile = d.expand("${RECIPE_SYSROOT}${bindir}/postinst-useradd-${PN}") bb.build.exec_func("useradd_sysroot", d) From c58640a10cd4bf3f3a2d24aca9b5fcd52598901e Mon Sep 17 00:00:00 2001 From: Sreejith Ravi Date: Tue, 11 Feb 2025 17:15:54 +0000 Subject: [PATCH 4/5] RDKE-667 : Extended support to handle qa check for files from ipk pkgs --- meta/classes/insane.bbclass | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index d6da53252f2..0043def53a1 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -821,6 +821,18 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d): break if filerdepends: for key in filerdepends: + if bb.data.inherits_class('base-deps-resolver', d): + if key.split("(")[0] in (d.getVar("FILES_IPK_PKG:%s"%pkg) or ""): + # Skip qa check for files from IPK + bb.warn("Skipping qa check for file %s which is available in IPK"%key) + continue + else: + # Check for non lib files from IPK + ipk = get_rdeps_provider_ipk(d, key.split("(")[0]) + if ipk and ipk.strip().split(" ")[0] in rdepends: + bb.warn("Skipping qa check for file %s which is available in IPK %s"%(key, ipk)) + continue + error_msg = "%s contained in package %s requires %s, but no providers found in RDEPENDS_%s?" % \ (filerdepends[key].replace("_%s" % pkg, "").replace("@underscore@", "_"), pkg, key, pkg) package_qa_handle_error("file-rdeps", error_msg, d) From da85369f7412699aec39cb42c8757448042008e1 Mon Sep 17 00:00:00 2001 From: Sreejith Ravi Date: Tue, 11 Feb 2025 17:20:01 +0000 Subject: [PATCH 5/5] RDK-50635 : Fix broken dev dependency with pkg-config --- meta/classes/package.bbclass | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 2a3911037f7..20f510dfbfe 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -2037,19 +2037,18 @@ python package_do_pkgconfig () { with open(file, 'r') as f: lines = f.readlines() for l in lines: - m = var_re.match(l) - if m: - name = m.group(1) - val = m.group(2) - pd.setVar(name, pd.expand(val)) - continue m = field_re.match(l) 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) + if m: + name = m.group(1) + val = m.group(2) + pd.setVar(name, pd.expand(val)) for pkg in packages.split(): pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist") if pkgconfig_provided[pkg] != []: