diff mbox series

meta/conf/layer.conf: Avoid adding build deps of rpm-sequoia-native

Message ID 20251103080410.2025712-1-zboszor@gmail.com
State New
Headers show
Series meta/conf/layer.conf: Avoid adding build deps of rpm-sequoia-native | expand

Commit Message

Zoltán Böszörményi Nov. 3, 2025, 8:04 a.m. UTC
Avoid adding dependencies of rpm-sequoia-native into sysroots
as it needs none of its build dependencies to run.

It can save significant disk space and speeds up packaging into
signed rpms a little.

It also avoids conflicts with different LLVM/CLANG versions,
like those found in meta-clang-revival.

Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
---
 meta/conf/layer.conf | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Alexander Kanavin Nov. 3, 2025, 11:16 a.m. UTC | #1
On Mon, 3 Nov 2025 at 09:04, Zoltan Boszormenyi via
lists.openembedded.org <zboszor=gmail.com@lists.openembedded.org>
wrote:

> Avoid adding dependencies of rpm-sequoia-native into sysroots
> as it needs none of its build dependencies to run.

This needs to be a bit more specific. What is specifically installed
into sysroots that you would like to avoid having there?

Alex
Zoltán Böszörményi Nov. 3, 2025, 12:29 p.m. UTC | #2
2025. 11. 03. 12:16 keltezéssel, Alexander Kanavin írta:
> On Mon, 3 Nov 2025 at 09:04, Zoltan Boszormenyi via
> lists.openembedded.org <zboszor=gmail.com@lists.openembedded.org>
> wrote:
>
>> Avoid adding dependencies of rpm-sequoia-native into sysroots
>> as it needs none of its build dependencies to run.
> This needs to be a bit more specific. What is specifically installed
> into sysroots that you would like to avoid having there?

rpm-sequoia is Rust based.

rust[-native] in Yocto master depends on llvm[-native].

The target build just uses the shlib dependencies (only libssl.so.3,
libcrypto.so.3, libgcc_s.so.1, and the C runtime), but the native build
pulls in the whole destdir for each build dependency.

So, it's not actually true that none of the build dependencies
are needed, but the openssl libs and the libgcc_s native builds
are pulled in via some other recipes that are needed in native sysroots.

Anyway, noth rust-native and llvm-native are quite heavy, so
not copying them speeds up packaging a little and saves disk space.

llvm-native also conflicts with clangXX-native builds in meta-clang-revival.

Recipes using TOOLCHAIN = "clang14" or similar build successfully,
but extend_recipe_sysroot in staging.bbclass fails when re-run
before packaging.

See my previous mail at
https://lists.openembedded.org/g/openembedded-core/message/225411

Currently this change is in the layer.conf of meta-clang-revival,
but the speedup and the disk space saving worth it to have
it in oe-core.

I will send v2 with the extended explanation and only omitting
rust-native and llvm-native.
diff mbox series

Patch

diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf
index 54fa04e213..5e78bcfeaf 100644
--- a/meta/conf/layer.conf
+++ b/meta/conf/layer.conf
@@ -116,6 +116,13 @@  SSTATE_EXCLUDEDEPS_SYSROOT += "\
     .*->perlcross-native \
     libarchive-native->e2fsprogs-native \
 "
+# Avoid adding dependencies of rpm-sequoia-native as
+# it needs none of its build dependencies to run.
+# It can save significant disk space and speeds up packaging
+# into signed rpms a little.
+SSTATE_EXCLUDEDEPS_SYSROOT += "\
+    rpm-sequoia-native->.* \
+"
 # Nothing needs to depend on libc-initial
 # base-passwd/shadow-sysroot don't need their dependencies
 SSTATE_EXCLUDEDEPS_SYSROOT += "\