From eaac67fef883a2c891d9a0d0e3c2b77f6bcde7f7 Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Fri, 23 Dec 2022 20:54:17 +0100 Subject: Notes on fixing Guix --- topics/guix-profiles.gmi | 4 +++ topics/guix/packages.gmi | 65 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 topics/guix/packages.gmi diff --git a/topics/guix-profiles.gmi b/topics/guix-profiles.gmi index 3c40b81..153357d 100644 --- a/topics/guix-profiles.gmi +++ b/topics/guix-profiles.gmi @@ -1,5 +1,9 @@ # Updating Guix profiles (for production and development) +This document describes updating Guix for GeneNetwork by using a channel. To develop guix packages see + +=> guix/packages.gmi + ## Executive summary To build guix profiles that can run GN2+GN3 we use a so-called channel. diff --git a/topics/guix/packages.gmi b/topics/guix/packages.gmi new file mode 100644 index 0000000..a52f49b --- /dev/null +++ b/topics/guix/packages.gmi @@ -0,0 +1,65 @@ +# Guix packages + +To deploy GN we have packages in Guix itself (that comes with a distribution), in guix-bioinformatics and in guix-past (for older packages). + +Typically run a guix pull to get the latest guix: + +``` +mkdir -p ~/opt +guix package -i guix -p ~/opt/guix +``` + +and checkout guix-past and guix-bioinformatics using git. + +Now Guix should be happy with + +``` +~/opt/guix-pull/bin/guix package -L ~/guix-bioinformatics/ -L ~/guix-past/modules/ -A genenetwork +genenetwork1 0.0.0-2.acf65ac out /home/wrk/guix-bioinformatics/gn/past/genenetwork1.scm:148:4 +genenetwork2 3.11-2.1328932 out /home/wrk/guix-bioinformatics/gn/packages/genenetwork.scm:452:4 +genenetwork3 0.1.0-2.e781996 out /home/wrk/guix-bioinformatics/gn/packages/genenetwork.scm:107:4 +``` + +and we can try building + +``` +~/opt/guix-pull/bin/guix build -L ~/guix-bioinformatics/ -L ~/guix-past/modules/ genenetwork2 +``` + +Any errors at either command means that we have to fix packages. + +Note that you can use tux02 as a substitute server, see the README in guix-bioinformatics. That means that any package you build on tux02 can be downloaded from guix.genenetwork.org. So, best to build on tux02 - so everyone can share! + +On tux02, to ramp up parallel building speed, you may want to use `-c 24 -M 24 -k` switches. + +## Fixing a package + +Here python-pingouin failed. Which is pulled in by + +``` +tux02:~/guix-bioinformatics$ grep -r pingouin * +gn/packages/genenetwork.scm: python-pingouin +``` + +git blame shows it was added in summer by Arun as part of the genenetwork3 package. A check of genenetwork3 shows + +``` +tux02:~/genenetwork3$ git blame gn3/computations/correlations.py +``` + +it was added by Alex in 2021. + +Now it is not puzzling why the tests fail for this package as the Guix package does not build on the build farm, see + +=> https://packages.guix.gnu.org/packages/python-pingouin/0.5.2/ + +I am going to disable it for testing. By introducing the override + +``` +(define python-pingouin-without-tests + (package + (inherit python-pingouin) + (arguments + (substitute-keyword-arguments (package-arguments python-pingouin) + ((#:tests? _ #f) #f))))) +``` -- cgit v1.2.3