Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Trevor Woerner <twoerner@gmail.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH v2] ruby: scrub build host paths from rbconfig.rb for nativesdk too
Date: Thu,  6 Aug 2026 07:58:09 -0400	[thread overview]
Message-ID: <20260806115809.3765164-1-twoerner@gmail.com> (raw)

rbconfig.rb records the flags ruby was configured with, which include the
recipe sysroot, the hosttools directory and the debug prefix map, all of
them paths on the machine that did the build. The recipe removes them,
but only for class-target, so a nativesdk build ships them.

Nothing noticed because nativesdk-ruby has not been installed into an
SDK before. Doing so fails do_package_qa outright:

  QA Issue: File .../rbconfig.rb in package nativesdk-ruby contains
  reference to TMPDIR [buildpaths]

Move the scrubbing into a function and call it for class-nativesdk as
well as class-target.

Deliberately not for class-native. A native rbconfig.rb names paths
inside the native sysroot, and those are correct: stripping them leaves
the file pointing at the build host's /usr, which breaks every recipe
that builds anything with ruby-native. With the scrub applied to native,
DLDFLAGS becomes

  -L/usr/lib -L/lib -Wl,-rpath,/usr/lib ...

and CFLAGS becomes -isystem/usr/include. Nothing packages a native
rbconfig.rb, so there is no reason to touch it.

AI-Generated: codex/claude-opus 5 (xhigh)
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
 meta/recipes-devtools/ruby/ruby_4.0.6.bb | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/ruby/ruby_4.0.6.bb b/meta/recipes-devtools/ruby/ruby_4.0.6.bb
index 13b6746bbeb3..2bbe434f196a 100644
--- a/meta/recipes-devtools/ruby/ruby_4.0.6.bb
+++ b/meta/recipes-devtools/ruby/ruby_4.0.6.bb
@@ -78,7 +78,7 @@ EXTRA_OECONF:append:libc-musl = "\
 
 PARALLEL_MAKEINST = ""
 
-do_install:append:class-target () {
+ruby_scrub_rbconfig () {
     rbconfig_rb=`find ${D} -name rbconfig.rb`
     # Remove build host directories
     sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' \
@@ -97,6 +97,16 @@ do_install:append:class-target () {
     find ${D} -name gem_make.out -delete
 }
 
+# Not for class-native: those paths point into the native sysroot and are
+# correct there, and scrubbing them leaves ruby-native naming the host's /usr.
+do_install:append:class-target () {
+    ruby_scrub_rbconfig
+}
+
+do_install:append:class-nativesdk () {
+    ruby_scrub_rbconfig
+}
+
 do_install_ptest () {
     cp -rf ${S}/test ${D}${PTEST_PATH}/
     install -D ${S}/tool/test/init.rb ${D}${PTEST_PATH}/tool/test/init.rb
-- 
2.50.0.173.g8b6f19ccfc3a



                 reply	other threads:[~2026-08-06 11:58 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260806115809.3765164-1-twoerner@gmail.com \
    --to=twoerner@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox