GNU bug report logs -
#28157
“r-minimal” retains no reference to “which”
Previous Next
Reported by: Ricardo Wurmus <rekado <at> elephly.net>
Date: Sun, 20 Aug 2017 11:18:01 UTC
Severity: normal
Done: Ricardo Wurmus <rekado <at> elephly.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:
> Ricardo Wurmus <rekado <at> elephly.net> skribis:
>
>> Right. In the case of R, the environment for a package is serialized to
>> a possibly compressed data file (.Rdb) with an index (.Rdx).
>> “Sys.which” is part of the “base” package and I cannot find a plain text
>> reference to “bin/which” in the binaries for “base”.
>
> Doh! That’s a problem. The GC won’t detect those references either,
> which can lead to early-deletion problems.
>
>> I don’t know if we can (or should) disable compression for Rdb files.
>
> We’ll probably have to disable it. (According to ‘file’ it’s no a
> standard compression format like gzip; maybe raw zlib without gzip
> headers?)
Here’s a patch:
[0001-gnu-r-minimal-Do-not-compress-serialized-files.patch (text/x-patch, inline)]
From bbacb223cbd6f1ba0ca77eda9d168e325537e3f3 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado <at> elephly.net>
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.
---
gnu/packages/statistics.scm | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index dc7491acd..676752e03 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -127,10 +127,10 @@ be output in text, PostScript, PDF or HTML.")
#:phases
(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"))
+ (substitute* "src/library/base/makebasedb.R"
+ (("compress = TRUE") "compress = FALSE"))
#t))
(add-before 'configure 'patch-uname
(lambda* (#:key inputs #:allow-other-keys)
@@ -250,10 +250,8 @@ be output in text, PostScript, PDF or HTML.")
("libxt" ,libxt)
("pcre" ,pcre)
("readline" ,readline)
+ ("which" ,which)
("zlib" ,zlib)))
- ;; FIXME: By default Sys.which embeds a reference to "which", but this
- ;; reference is not detected by Guix (see bug #28157).
- (propagated-inputs `(("which" ,which)))
(native-search-paths
(list (search-path-specification
(variable "R_LIBS_SITE")
--
2.14.1
[Message part 3 (text/plain, inline)]
I have built r-minimal with it and confirmed that “which” is retained as
a reference. I don’t know if this causes any other problems down the
road, but I think it should not be a problem.
--
Ricardo
GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC
https://elephly.net
This bug report was last modified 7 years and 275 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.