[Bio-packaging] testing out guix

Ben Woodcroft b.woodcroft at uq.edu.au
Mon Jun 8 06:05:50 UTC 2015


Hey,

Based on discussions from this list I thought I might give it a spin, 
but ran into a few problems (on 0.8.2). Specifically, I was unable to 
get a "hello world" package of my own making to work, presumably because 
of my own ignorance. Maybe someone can help me out. Seeing as package 
files seem quite straightforward to write, I'm hoping it won't be too 
much effort to write one for each piece of software that we publish.

I tried to follow the instructions at
https://www.gnu.org/software/guix/manual/guix.html#Defining-Packages

but it is unclear what to do with the 'recipe' once created. Where do I 
put it? What is a good name for a recipe file? How do I test/install it? 
It would be great to have a blog post that steps through the process of 
creating a new package to follow.


Some other problems/notes - Apologies for being wide-ranging.
* OSX support seems like it would be very pertinent for 
bioinformaticians, does/will guix support?
* Installing from gnu hydra is way slow on the underside of the planet, 
I'm getting DL speeds of 70KB/s. There's no mirrors?
* For some reason my per-user profile is a broken soft-link:

$ ls -lh ~/.guix-profile
lrwxrwxrwx 1 ben ben 44 Jun  8 13:40 /home/ben/.guix-profile -> 
/var/guix/profiles/per-user/ben/guix-profile
$ ls -A /var/guix/profiles/per-user/ben/
$


For completism's sake, here is my (quite buggy I'm sure) recipe, and log 
of my install of guix.

(define-module (gnu packages orfm)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (guix licenses))

(define-public orfm
   (package
     (name "orfm")
     (version "0.2.0")
     (source (origin
              (method url-fetch)
              (uri (string-append 
https://github.com/wwood/OrfM/archive/v" version ".tar.gz))
              (sha256
               (base32 
"7141fd43ecef8e5f5779127c460020449e48d361355d00e16d421fe4b8af00a2"))))
     (build-system gnu-build-system)
     (synopsis "Simple and not slow open reading frame (ORF) caller")
     (description "An ORF caller finds stretches of DNA that when 
translated are not interrupted by stop codons. OrfM finds and prints 
these ORFs.")
     (home-page "https://github.com/wwood/OrfM")
     (license lgpl3+)))


ben at u:~/bioinfo$ wget ftp://alpha.gnu.org/gnu/guix/guix-binary-0.8.2.x86_64-linux.tar.xz
...

ben at u:/$ sudo tar xf ~/bioinfo/guix-binary-0.8.2.x86_64-linux.tar.xz
[sudo] password for ben:

ben at u:/gnu$ sudo -i
root at u:~# groupadd --system guix-builder
root at u:~# for i in `seq 1 10`;
>   do
>     useradd -g guix-builder -G guix-builder           \
>             -d /var/empty -s `which nologin`          \
>             -c "Guix build user $i" --system          \
>             guix-builder$i;
>   done
root at u:~# /root/.guix-profile/bin/guix-daemon --build-users-group=guix-builder
^C
root at u:~# /root/.guix-profile/bin/guix-daemon --build-users-group=guix-builder &
[1] 1029
root at u:~# cd /usr/local/bin
root at u:/usr/local/bin# ln -s /root/.guix-profile/bin/guix
root at u:/usr/local/bin# guix archive --authorize < /root/.guix-profile/share/guix/hydra.gnu.org.pub
warning: failed to install locale: Invalid argument
root at u:/usr/local/bin# fg
/root/.guix-profile/bin/guix-daemon --build-users-group=guix-builder	(wd: ~)
^C
root at u:/usr/local/bin# /root/.guix-profile/bin/guix-daemon --build-users-group=guix-builder &
[1] 1186
ben at u:~/git/OrfM$ guix package -i emacs
warning: failed to install locale: Invalid argument
The following package will be installed:
    emacs	24.5	/gnu/store/7l7nvb8mm22cij39fr2mw40z4fqmya3q-emacs-24.5

substitute: warning: failed to install locale: Invalid argument
substitute: updating list of substitutes from 'http://hydra.gnu.org'... 100.0%
The following derivations will be built:
    /gnu/store/a34r3s8zgg1br29j97dhvf32p9bjr514-profile.drv
    /gnu/store/sa3li6wf2yl2h8bp2h0f7hyh0bdnrs8c-ca-certificate-bundle.drv
    /gnu/store/8x40mds6p2hmqqv7j25c4d513h177zcz-info-dir.drv
The following files will be downloaded:
    /gnu/store/cnqmkmj40jmssnx6fkf9n0n3bqj5x426-guile-2.0.11
    /gnu/store/kbf46vds6f7lp723xn62kgdaxmwc1jvi-module-import-compiled
    /gnu/store/x41ghgfg03z6mv616jmfihqijxdckvyx-glibc-utf8-locales-2.21
    /gnu/store/7l7nvb8mm22cij39fr2mw40z4fqmya3q-emacs-24.5
...




Thanks,
ben


More information about the bio-packaging mailing list