diff mbox series

ruby: scrub build host paths from rbconfig.rb in every class

Message ID 20260805070009.3498678-1-twoerner@gmail.com
State Under Review
Headers show
Series ruby: scrub build host paths from rbconfig.rb in every class | expand

Commit Message

Trevor Woerner Aug. 5, 2026, 7 a.m. UTC
rbconfig.rb records the full configure invocation, which contains 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]

Drop the class-target restriction so the same scrubbing runs whatever
class is being built. The variables it substitutes are defined for every
class, and for a target build the result is byte for byte what it was.

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

Comments

Mathieu Dubois-Briand Aug. 6, 2026, 6:10 a.m. UTC | #1
On Wed Aug 5, 2026 at 9:00 AM CEST, Trevor Woerner via lists.openembedded.org wrote:
> rbconfig.rb records the full configure invocation, which contains 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]
>
> Drop the class-target restriction so the same scrubbing runs whatever
> class is being built. The variables it substitutes are defined for every
> class, and for a target build the result is byte for byte what it was.
>
> AI-Generated: codex/claude-opus 5 (xhigh)
> Signed-off-by: Trevor Woerner <twoerner@gmail.com>
> ---

Hi Trevor,

It looks like this is breaking webkitgtk build:

ERROR: webkitgtk-2.52.5-r0 do_configure: Execution of '/srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-64-v3-poky-linux/webkitgtk/2.52.5/temp/run.do_configure.610119' failed with exit code 1
...
| -- Using source list file: inspector/remote/SourcesGLib.txt
| /srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-64-v3-poky-linux/webkitgtk/2.52.5/recipe-sysroot-native/usr/lib/ruby/4.0.0/did_you_mean/core_ext/name_error.rb:11: warning: getoptlong is not part of the default gems since Ruby 3.4.0. Install getoptlong from RubyGems.
| /srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-64-v3-poky-linux/webkitgtk/2.52.5/build/WTF/Scripts/generate-unified-source-bundles.rb:27:in 'Kernel#require': cannot load such file -- getoptlong (LoadError)
| 	from /srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-64-v3-poky-linux/webkitgtk/2.52.5/build/WTF/Scripts/generate-unified-source-bundles.rb:27:in '<main>'
| CMake Error at Source/cmake/WebKitMacros.cmake:30 (message):
|   generate-unified-source-bundles.rb exited with non-zero status, exiting
| Call Stack (most recent call first):
|   Source/JavaScriptCore/CMakeLists.txt:1719 (WEBKIT_COMPUTE_SOURCES)
|
|
| -- Configuring incomplete, errors occurred!
| WARNING: exit code 1 from a shell command.
NOTE: recipe webkitgtk-2.52.5-r0: task do_configure: Failed
NOTE: recipe lib32-xf86-video-vmware-2_13.4.0-r0: task do_package: Started
ERROR: Task (/srv/pokybuild/yocto-worker/qemux86-world/build/layers/openembedded-core/meta/recipes-sato/webkit/webkitgtk_2.52.5.bb:do_configure) failed with exit code '1'

https://autobuilder.yoctoproject.org/valkyrie/#/builders/59/builds/4346

Can you have a look at the issue?

Thanks,
Mathieu
diff mbox series

Patch

diff --git a/meta/recipes-devtools/ruby/ruby_4.0.6.bb b/meta/recipes-devtools/ruby/ruby_4.0.6.bb
index 13b6746bbeb3..8b8c397963c4 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 () {
+do_install:append () {
     rbconfig_rb=`find ${D} -name rbconfig.rb`
     # Remove build host directories
     sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' \