Project

General

Profile

Actions

Bug #15304

closed

Package build with extensions is not reproducible

Added by lewo (lewo lewo) about 6 years ago. Updated about 6 years ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
-
[ruby-core:89803]

Description

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

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

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0