From 4293eb92bfb406c4e68e2db2e62d82a7d73bea71 Mon Sep 17 00:00:00 2001 From: Martchus Date: Fri, 4 Mar 2022 21:49:43 +0100 Subject: [PATCH] Ignore libs for cross-compilation when checking any packages for binaries Not really generic yet (e.g. doesn't cover `aarch64-linux-gnu-glibc`) but good enough for now. --- librepomgr/buildactions/repomanagement.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/librepomgr/buildactions/repomanagement.cpp b/librepomgr/buildactions/repomanagement.cpp index 54f39d5..7e87133 100644 --- a/librepomgr/buildactions/repomanagement.cpp +++ b/librepomgr/buildactions/repomanagement.cpp @@ -469,7 +469,20 @@ void CheckForProblems::run() } } if (package->packageInfo->arch == "any" && (!package->libdepends.empty() || !package->libprovides.empty())) { - problems.emplace_back(RepositoryProblem{ .desc = "\"any\"-arch package but binary present", .pkg = package->name }); + auto crossOnly = true; + for (const auto &libnames : { package->libdepends, package->libprovides }) { + for (const auto &libname : libnames) { + // ignore Windows and Android libs + if (!libname.starts_with("pe-") && !libname.starts_with("android-")) { + crossOnly = false; + goto break2; + } + } + } + break2: + if (!crossOnly) { + problems.emplace_back(RepositoryProblem{ .desc = "\"any\"-arch package but binary present", .pkg = package->name }); + } } return false; });