Dear,
Currently, the URI scheme (see 'bioconductor-uri' in
guix/build-system/r.scm) is:
https://bioconductor.org/packages/release/data/type-url-part /src/contrib/ upstream-name - version .tar.gz
which leads to 2 issues:
1. when Bioconductor updates their release, some package versions are
updated too, and so, the upstream return 404.
2. for this reason 1., the "guix time-machine" is broken for all the
Bioconductor packages, at least if Berlin or SWH does not have a
substitute; which is not expected for 'annotation' packages.
However, the Bioconductor archive still serves the old release, i.e.,
https://bioconductor.org/packages/3.x/data/type-url-part /src/contrib/ upstream-name - version .tar.gz
The ways to fix the both issues are:
a) Add the Bioconductor release (known at packaging time) to all the
packages; provide as argument to 'bioconductor-uri'.
b) Add more URLs to fallback.
As discussed on IRC, Tobias seems more inclined with the option a) and
I am more in favour of option b.
Attached, a quick patch showing the option b).
Please also consider #36805 which was never merged or closed.
All the best,
simon
From 87e73e02202fe5e342d68f1fb17efdd4425737cd Mon Sep 17 00:00:00 2001
From: zimoun <zimon.toutoune@gmail.com>
Date: Tue, 3 Mar 2020 16:53:39 +0100
Subject: [PATCH] build-system: r: Use Bioconductor old releases to fallback.
* guix/build-system/r.scm (bioconductor-uri): Extend the fallback list.
---
guix/build-system/r.scm | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
Toggle diff (34 lines)
diff --git a/guix/build-system/r.scm b/guix/build-system/r.scm
index 2d328764b0..8638e1b888 100644
--- a/guix/build-system/r.scm
+++ b/guix/build-system/r.scm
@@ -54,15 +54,18 @@ release corresponding to NAME and VERSION."
('annotation "/data/annotation")
('experiment "/data/experiment")
(_ "/bioc"))))
- (list (string-append "https://bioconductor.org/packages/release"
- type-url-part
- "/src/contrib/"
- name "_" version ".tar.gz")
- ;; TODO: use %bioconductor-version from (guix import cran)
- (string-append "https://bioconductor.org/packages/3.10"
- type-url-part
- "/src/contrib/Archive/"
- name "_" version ".tar.gz"))))
+ (append (list (string-append "https://bioconductor.org/packages/release"
+ type-url-part
+ "/src/contrib/"
+ name "_" version ".tar.gz"))
+ (map (lambda (release)
+ (string-append "https://bioconductor.org/packages/"
+ release
+ type-url-part
+ "/src/contrib/"
+ name "_" version ".tar.gz"))
+ (list (@@ (guix import cran) %bioconductor-version)
+ "3.9" "3.8" "3.7")))))
(define %r-build-system-modules
;; Build-side modules imported by default.
--
2.25.0