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. http://issues.guix.gnu.org/issue/36805 All the best, simon
From 87e73e02202fe5e342d68f1fb17efdd4425737cd Mon Sep 17 00:00:00 2001 From: zimoun <zimon.touto...@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(-) 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