[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Help Ruby packages be reproducible
From: |
Ricardo Wurmus |
Subject: |
Re: [PATCH] Help Ruby packages be reproducible |
Date: |
Wed, 30 Dec 2015 09:26:20 +0100 |
User-agent: |
mu4e 0.9.13; emacs 24.5.1 |
Ben Woodcroft <address@hidden> writes:
> From 3d23171d88b9f38c90efa469f6519b52b15a1d01 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <address@hidden>
> Date: Wed, 30 Dec 2015 10:27:33 +1000
> Subject: [PATCH] build: ruby: Remove cached gem after install.
> The .gem file stored in GEM_HOME after install is both redundant and an
> archive that stores timestamped files which makes builds non-deterministic. So
> delete it after 'gem install'.
Good idea! I don’t know if the existence of the cached gem is checked
for by any Ruby tools (bundler or the like). Is there some
documentation about this cache?
> - (zero? (apply system* "gem" "install" (first-matching-file "\\.gem$")
> - "--local" "--ignore-dependencies"
> - ;; Executables should go into /bin, not /lib/ruby/gems.
> - "--bindir" (string-append out "/bin")
> - gem-flags))))
> + (apply system* "gem" "install" gem-name
> + "--local" "--ignore-dependencies"
> + ;; Executables should go into /bin, not /lib/ruby/gems.
> + "--bindir" (string-append out "/bin")
> + gem-flags)
> + ;; Remove the cached gem file as this is unnecessary and contains
> + ;; timestamped files rendering builds not reproducible.
> + (delete-file (string-append gem-home "/cache/" gem-name))
> + #t))
I’d prefer to keep ‘(zero? ...)’ and only delete the file when the
‘system*’ call above succeeded. It would be nice if we could propagate
any bad return value from ‘system*’ to the end of the procedure.
Maybe something like this:
(and (zero? (apply system* ...))
(begin (delete-file ...) #t))
It’s a bit clunky but the return value would still be #f if ‘system*’
fails. What do you think?
~~ Ricardo
- [PATCH] Add 12 rubygems., Ben Woodcroft, 2015/12/29
- Re: [PATCH] Add 12 rubygems., Ben Woodcroft, 2015/12/29
- Re: [PATCH] Add 12 rubygems., Ricardo Wurmus, 2015/12/29
- [PATCH] Help Ruby packages be reproducible (was: [PATCH] Add 12 rubygems.), Ben Woodcroft, 2015/12/29
- Re: [PATCH] Help Ruby packages be reproducible, Ben Woodcroft, 2015/12/29
- Re: [PATCH] Help Ruby packages be reproducible, Pjotr Prins, 2015/12/29
- Re: [PATCH] Help Ruby packages be reproducible,
Ricardo Wurmus <=
- Re: [PATCH] Help Ruby packages be reproducible, Ben Woodcroft, 2015/12/30
- Re: [PATCH] Help Ruby packages be reproducible, Ricardo Wurmus, 2015/12/31
- Re: [PATCH] Help Ruby packages be reproducible, Ben Woodcroft, 2015/12/31
Re: [PATCH] Add 12 rubygems., Ricardo Wurmus, 2015/12/30