From: nobu@... Date: 2018-11-16T12:21:06+00:00 Subject: [ruby-core:89835] [Ruby trunk Bug#15304] Package build with extensions is not reproducible Issue #15304 has been updated by nobu (Nobuyoshi Nakada). lewo (lewo lewo) wrote: > I think the `mkmf.log` should not be written in the `install-dir`. But what about the `Makefile`? Could it be still used after the ruby gem build? If not, it could also be removed from the `install-dir`. These (and page-Makefile.ri) are all garbages after installation. > What do you think about removing these two files (`Makefile` and `mkmf.log`) from the `--install-dir` ? I dislike that rubygems installs junk files including `*.o` files. ---------------------------------------- Bug #15304: Package build with extensions is not reproducible https://bugs.ruby-lang.org/issues/15304#change-74895 * Author: lewo (lewo lewo) * Status: Third Party's Issue * Priority: Normal * Assignee: * Target version: * ruby -v: * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- The build of a package with extensions, such as msgpack, is not reproducible due to temporary filenames appearing in the generated Makefile [1]: ``` grep gem lib/ruby/gems/2.5.0/gems/msgpack-1.2.4/ext/msgpack/Makefile sitearchdir = $(DESTDIR)./.gem.20181114-6835-czlel4 sitelibdir = $(DESTDIR)./.gem.20181114-6835-czlel4 ``` This issue comes from the creation of temporary files: the name is different across builds. More precisely, I've identified the following lines - https://github.com/ruby/ruby/blob/trunk/lib/rubygems/ext/ext_conf_builder.rb#L16 - https://github.com/ruby/ruby/blob/trunk/lib/rubygems/ext/ext_conf_builder.rb#L29 There are several choices to fix this: - use deterministic temporary filename: is there a lib to do this? - provide these filenames as arguments and the use actual logic if these filenames are not provided: how to provide such filename? - remove `Makefile` and `gem_make.out` files: I don't know how they are useful - surely some other way to fix this... I'm not a ruby programmer so I don't really know how it is difficult to implement these solutions. What do you think about this? [1] https://tests.reproducible-builds.org/archlinux/community/ruby-msgpack/ruby-msgpack-1.2.4-1-x86_64.pkg.tar.xz.html#ruby-msgpack--.-.----x--_--.pkg.tar---usr-lib-ruby-gems--.-.--gems-msgpack--.-.--ext-msgpack-Makefile -- https://bugs.ruby-lang.org/ Unsubscribe: