From 793bde538c2ea63a4783f68d5f7ec0a324baf187 Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Fri, 13 Jul 2018 13:45:27 +0000 Subject: GNU Guix build system --- .guix.dag.svg | 739 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INSTALL.md | 33 +++ 2 files changed, 772 insertions(+) create mode 100644 .guix.dag.svg diff --git a/.guix.dag.svg b/.guix.dag.svg new file mode 100644 index 0000000..47e1cb1 --- /dev/null +++ b/.guix.dag.svg @@ -0,0 +1,739 @@ + + + + + + +Guix package + + + +31025984 + +gemma-dev-env-0.98 + + + +35790208 + +unzip-6.0 + + + +31025984->35790208 + + + + + +31396992 + +sassc-3.4.5 + + + +31025984->31396992 + + + + + +36471744 + +gemma-wrapper-0.97 + + + +31025984->36471744 + + + + + +35758272 + +bzip2-1.0.6 + + + +35790208->35758272 + + + + + +36473280 + +gemma-gn2-git-0.97-c760aa0 + + + +36471744->36473280 + + + + + +35816384 + +perl-5.26.1 + + + +36473280->35816384 + + + + + +35817920 + +which-2.21 + + + +36473280->35817920 + + + + + +25432256 + +gfortran-5.5.0 + + + +36473280->25432256 + + + + + +30805376 + +gsl-2.4 + + + +36473280->30805376 + + + + + +20318656 + +eigen-3.3.4 + + + +36473280->20318656 + + + + + +38278848 + +shunit2-2.0.4-60dd60b + + + +36473280->38278848 + + + + + +38278656 + +openblas-git-0.2.20-git-893bd14 + + + +36473280->38278656 + + + + + +35759232 + +zlib-1.2.11 + + + +36473280->35759232 + + + + + +25432256->35816384 + + + + + +25432256->35759232 + + + + + +35760768 + +texinfo-6.5 + + + +25432256->35760768 + + + + + +27153536 + +isl-0.18 + + + +25432256->27153536 + + + + + +27152768 + +gmp-6.1.2 + + + +25432256->27152768 + + + + + +27152384 + +mpfr-3.1.6 + + + +25432256->27152384 + + + + + +27311872 + +mpc-1.0.3 + + + +25432256->27311872 + + + + + +25275008 + +libelf-0.8.13 + + + +25432256->25275008 + + + + + +35808192 + +coreutils-8.28 + + + +38278848->35808192 + + + + + +38278656->35816384 + + + + + +38278656->25432256 + + + + + +38278656->25432256 + + + + + +35524160 + +cunit-2.1-3 + + + +38278656->35524160 + + + + + +35760768->35816384 + + + + + +20465536 + +ncurses-6.0-20170930 + + + +35760768->20465536 + + + + + +27153536->27152768 + + + + + +21923520 + +m4-1.4.18 + + + +27152768->21923520 + + + + + +27152384->27152768 + + + + + +27311872->27152768 + + + + + +27311872->27152384 + + + + + +21297984 + +pkg-config-0.29.2 + + + +20465536->21297984 + + + + + +35808192->35816384 + + + + + +35808192->27152768 + + + + + +35809728 + +acl-2.2.52 + + + +35808192->35809728 + + + + + +35711616 + +libcap-2.25 + + + +35808192->35711616 + + + + + +35809728->35816384 + + + + + +35810496 + +gettext-minimal-0.19.8.1 + + + +35809728->35810496 + + + + + +35809920 + +attr-2.4.47 + + + +35809728->35809920 + + + + + +35711616->35816384 + + + + + +35711616->35809920 + + + + + +32973568 + +expat-2.2.5 + + + +35810496->32973568 + + + + + +35809920->35816384 + + + + + +35809920->35810496 + + + + + +36062720 + +automake-1.15.1 + + + +35524160->36062720 + + + + + +36064064 + +autoconf-2.69 + + + +35524160->36064064 + + + + + +36062336 + +libtool-2.4.6 + + + +35524160->36062336 + + + + + +36062720->35816384 + + + + + +36063296 + +autoconf-wrapper-2.69 + + + +36062720->36063296 + + + + + +36064064->35816384 + + + + + +36064064->21923520 + + + + + +36062336->35816384 + + + + + +36062336->21923520 + + + + + +36062336->21923520 + + + + + +36062336->36062720 + + + + + +36062336->36063296 + + + + + +20409152 + +help2man-1.47.5 + + + +36062336->20409152 + + + + + +36063296->35816384 + + + + + +36063296->21923520 + + + + + +36063296->36064064 + + + + + +20438784 + +guile-2.0.14 + + + +36063296->20438784 + + + + + +20464576 + +bash-4.4.12 + + + +36063296->20464576 + + + + + +20438784->27152768 + + + + + +20438784->21297984 + + + + + +34802880 + +libffi-3.2.1 + + + +20438784->34802880 + + + + + +20464384 + +bash-minimal-4.4.12 + + + +20438784->20464384 + + + + + +24184704 + +libunistring-0.9.8 + + + +20438784->24184704 + + + + + +36062144 + +libltdl-2.4.6 + + + +20438784->36062144 + + + + + +20406848 + +libgc-7.6.0 + + + +20438784->20406848 + + + + + +20464576->20465536 + + + + + +21297792 + +readline-7.0.3 + + + +20464576->21297792 + + + + + +20406848->21297984 + + + + + +20406464 + +libatomic-ops-7.4.8 + + + +20406848->20406464 + + + + + +21297792->20465536 + + + + + +20409152->35816384 + + + + + diff --git a/INSTALL.md b/INSTALL.md index f42d7a9..f68120c 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -53,6 +53,39 @@ To build GEMMA from source you can opt to install the build tools with GNU Guix guix package -i make gcc linux-libre-headers gsl eigen openblas lapack glibc ld-wrapper +#### GNU Guix reproducible build system + +One of the challenges of developing software is dealing with +dependencies. GNU Guix provides a way of using reproducible build +systems. This is done by providing the exact same build 'graph'. This +has the advantage that we easily can go back in time when users report +issues (i.e., for the purpose of debugging). + +Note that this is an advanced configuration option at this stage. GNU +Guix will make it easier in the future to deal with shared +graphs. Contact Pjotr Prins if you are really interested. + +The following two links provide the reproducible build system that we for working on GEMMA: + + https://gitlab.com/genenetwork/guix-bioinformatics/tree/f7a4bbf655bb255df46228f04cc191c1f08f198b + https://gitlab.com/genenetwork/guix/tree/686f5b9a8cdb66e81140b03a42644579e7eb1f9a + +Check the tree out, build Guix from source and run something like + + env GUIX_PACKAGE_PATH=../guix-bioinformatics/ ./pre-inst-env guix package -i gemma-dev-env --no-grafts --substitute-urls="https://berlin.guixsd.org http://guix.genenetwork.org https://mirror.hydra.gnu.org" -p ~/opt/gemma-dev-env + +Now by setting the environment you should be set to compile everything + + . ~/opt/gemma-dev-env/etc/profile + make EIGEN_INCLUDE_PATH=~/.guix-profile/include/eigen3 WITH_LAPACK=1 + make EIGEN_INCLUDE_PATH=~/.guix-profile/include/eigen3 WITH_LAPACK=1 check + +The following generates the graph + +![Current Guix dependency graph](.guix.dag.svg) + + env GUIX_PACKAGE_PATH=../guix-bioinformatics/ ./pre-inst-env guix graph gemma-dev-env |dot -Gsize="10,10" -Gratio=0.7 -Tsvg -Nfontsize=48 > dag.svg + ### Install from source Install listed dependencies and run -- cgit 1.4.1