gnu: r-affycompatible: Build reproducibly.

* gnu/packages/bioconductor.scm (r-affycompatible)[arguments]: Sort XML
elements before generating R code from them.
This commit is contained in:
Ricardo Wurmus 2022-07-15 00:06:26 +02:00
parent cbdfa54c77
commit 9238ba5874
No known key found for this signature in database
GPG key ID: 197A5888235FACAC

View file

@ -2940,6 +2940,25 @@ (define-public r-affycompatible
(properties (properties
`((upstream-name . "AffyCompatible"))) `((upstream-name . "AffyCompatible")))
(build-system r-build-system) (build-system r-build-system)
(arguments
(list
#:phases
`(modify-phases %standard-phases
(add-after 'unpack 'make-reproducible
(lambda _
;; Order DTD elements before generating R code from them.
(substitute* "R/methods-AffyCompatible.R"
(("dtd <- .*" m)
(string-append m "
elements <- dtd$elements
ordered <- elements[order(names(elements))]\n"))
(("elt in dtd\\$elements")
"elt in ordered"))
;; Use a predictable directory name for code generation.
(mkdir-p "/tmp/NetAffxResourcePrototype")
(substitute* "R/DataClasses.R"
(("directory=tempdir\\(\\)")
"directory=\"/tmp/NetAffxResourcePrototype\"")))))))
(propagated-inputs (propagated-inputs
(list r-biostrings r-rcurl r-xml)) (list r-biostrings r-rcurl r-xml))
(home-page "https://bioconductor.org/packages/AffyCompatible/") (home-page "https://bioconductor.org/packages/AffyCompatible/")