Subject: bug#28157: “r-minimal” retains no reference to “which”

From: Ricardo Wurmus <[email-masked]>
Date: Tue, 22 Aug 2017 16:03:06 +0200

Ludovic Courtès <[email-masked]> writes:

> Ricardo Wurmus <[email-masked]> skribis:
>
>> Here’s a patch:
>
> That was fast.  :-)
>
>> From bbacb223cbd6f1ba0ca77eda9d168e325537e3f3 Mon Sep 17 00:00:00 2001
>> From: Ricardo Wurmus <[email-masked]>
>> Date: Tue, 22 Aug 2017 12:59:48 +0200
>> Subject: [PATCH] gnu: r-minimal: Do not compress serialized files.
>>
>> * gnu/packages/statistics.scm (r-minimal)[arguments]: Replace build phase
>> "patch-which" with "do-not-compress-serialized-files".
>> [propagated-inputs]: Move "which" from here...
>> [inputs]: ...to here.
>
> [...]
>
>>         (modify-phases %standard-phases
>>           ;; FIXME: see bug #28157.
>> -         (add-before 'configure 'patch-which
>> +         (add-before 'configure 'do-not-compress-serialized-files
>>             (lambda* (#:key inputs #:allow-other-keys)
>> -             (substitute* "src/library/base/R/unix/system.unix.R"
>> -               (("@WHICH@") "which"))
>
> Shouldn’t we keep the ‘patch-which’ phase?

I don’t think so.  I only added this to work around the bug.

By default it does the right thing and embeds the full path to “which”
(at configure time) in the library.  Since the binaries are now
uncompressed, the references are visible to Guix, so we should keep the
reference instead of just a dangling pointer to “which”, in my opinion.

>> +             (substitute* "src/library/base/makebasedb.R"
>> +               (("compress = TRUE") "compress = FALSE"))
>
> Perhaps move the comment about this bug right above this, so we know why
> we don’t compress.  Otherwise LGTM!

Okay!

> Any idea how much extra storage this incurs on disk?

The previous “r-minimal”:
total: 607.6 MiB

The new one:
total: 611.2 MiB

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net