[OE-core] [PATCH 3/3] ruby: improve reproducibility

Hongxu Jia hongxu.jia at windriver.com
Mon Aug 27 15:31:28 UTC 2018


Find out rbconfig.rb and created.rid from ${B}/.installed.list
and remove build host directories

- For rbconfig.rb, parse it like python's _sysconfigdata.py
[snip rbconfig.rb]
 26   CONFIG["INSTALL"] = 'install -c'
[snip rbconfig.rb]

- For created.rid, it records file created time, just strip ${WORKDIR} prefix.
[snip created.rid]
840 /ruby-2.5.1/doc/maintainers.rdoc        Fri, 22 Dec 2017 23:08:05 +0000
[snip created.rid]

Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
---
 meta/recipes-devtools/ruby/ruby_2.5.1.bb | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/meta/recipes-devtools/ruby/ruby_2.5.1.bb b/meta/recipes-devtools/ruby/ruby_2.5.1.bb
index af2739a..1197323 100644
--- a/meta/recipes-devtools/ruby/ruby_2.5.1.bb
+++ b/meta/recipes-devtools/ruby/ruby_2.5.1.bb
@@ -35,6 +35,26 @@ do_install() {
     oe_runmake 'DESTDIR=${D}' install
 }
 
+do_install_append_class-target () {
+    # Find out rbconfig.rb from .installed.list
+    rbconfig_rb=`grep rbconfig.rb ${B}/.installed.list`
+    # Remove build host directories
+    sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' \
+           -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \
+           -e 's|${DEBUG_PREFIX_MAP}||g' \
+           -e 's:${HOSTTOOLS_DIR}/::g' \
+           -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
+           -e 's:${RECIPE_SYSROOT}::g' \
+           -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
+        ${D}$rbconfig_rb
+
+    # Find out created.rid from .installed.list
+    created_rid=`grep created.rid ${B}/.installed.list`
+    # Remove build host directories
+    sed -i -e 's:${WORKDIR}::g' ${D}$created_rid
+
+}
+
 PACKAGES =+ "${PN}-ri-docs ${PN}-rdoc"
 
 SUMMARY_${PN}-ri-docs = "ri (Ruby Interactive) documentation for the Ruby standard library"
-- 
2.7.4




More information about the Openembedded-core mailing list