Browse Source

Merge branch 'master' into core-updates

wip-loongson2f
Ludovic Courtès 6 years ago
parent
commit
7575655212
No known key found for this signature in database GPG Key ID: 90B11993D9AEBB5
  1. 3
      .dir-locals.el
  2. 1
      .gitignore
  3. 6
      .mailmap
  4. 4
      HACKING
  5. 2
      Makefile.am
  6. 1
      THANKS
  7. 4
      config-daemon.ac
  8. 11
      configure.ac
  9. 189
      doc/guix.texi
  10. 2
      emacs/guix-devel.el
  11. 1
      etc/guix-daemon.service.in
  12. 15
      gnu/local.mk
  13. 57
      gnu/packages/admin.scm
  14. 4
      gnu/packages/algebra.scm
  15. 9
      gnu/packages/backup.scm
  16. 636
      gnu/packages/bioinformatics.scm
  17. 4
      gnu/packages/bittorrent.scm
  18. 67
      gnu/packages/busybox.scm
  19. 11
      gnu/packages/ccache.scm
  20. 6
      gnu/packages/cdrom.scm
  21. 37
      gnu/packages/compression.scm
  22. 11
      gnu/packages/conkeror.scm
  23. 90
      gnu/packages/crypto.scm
  24. 2
      gnu/packages/databases.scm
  25. 22
      gnu/packages/datastructures.scm
  26. 46
      gnu/packages/disk.scm
  27. 38
      gnu/packages/documentation.scm
  28. 4
      gnu/packages/ebook.scm
  29. 535
      gnu/packages/emacs.scm
  30. 27
      gnu/packages/engineering.scm
  31. 17
      gnu/packages/enlightenment.scm
  32. 5
      gnu/packages/flashing-tools.scm
  33. 9
      gnu/packages/fonts.scm
  34. 6
      gnu/packages/freedesktop.scm
  35. 38
      gnu/packages/games.scm
  36. 11
      gnu/packages/gd.scm
  37. 36
      gnu/packages/geeqie.scm
  38. 1
      gnu/packages/gimp.scm
  39. 61
      gnu/packages/gl.scm
  40. 12
      gnu/packages/gnunet.scm
  41. 24
      gnu/packages/gnupg.scm
  42. 185
      gnu/packages/golang.scm
  43. 28
      gnu/packages/graphics.scm
  44. 25
      gnu/packages/grub.scm
  45. 24
      gnu/packages/gstreamer.scm
  46. 4
      gnu/packages/imagemagick.scm
  47. 6
      gnu/packages/irc.scm
  48. 3
      gnu/packages/julia.scm
  49. 5
      gnu/packages/kde.scm
  50. 12
      gnu/packages/libreoffice.scm
  51. 13
      gnu/packages/libusb.scm
  52. 150
      gnu/packages/linux.scm
  53. 2
      gnu/packages/lisp.scm
  54. 90
      gnu/packages/llvm.scm
  55. 45
      gnu/packages/logging.scm
  56. 159
      gnu/packages/lsh.scm
  57. 17
      gnu/packages/lxde.scm
  58. 46
      gnu/packages/mail.scm
  59. 12
      gnu/packages/man.scm
  60. 5
      gnu/packages/markdown.scm
  61. 30
      gnu/packages/maths.scm
  62. 4
      gnu/packages/messaging.scm
  63. 4
      gnu/packages/mpd.scm
  64. 71
      gnu/packages/music.scm
  65. 2
      gnu/packages/networking.scm
  66. 7
      gnu/packages/ninja.scm
  67. 19
      gnu/packages/node.scm
  68. 4
      gnu/packages/openstack.scm
  69. 17
      gnu/packages/owncloud.scm
  70. 7
      gnu/packages/package-management.scm
  71. 4
      gnu/packages/parallel.scm
  72. 256
      gnu/packages/patches/avrdude-fix-libusb.patch
  73. 69
      gnu/packages/patches/clang-3.8-libc-search-path.patch
  74. 81
      gnu/packages/patches/gd-CVE-2016-5766.patch
  75. 253
      gnu/packages/patches/gd-CVE-2016-6128.patch
  76. 55
      gnu/packages/patches/gd-CVE-2016-6132.patch
  77. 66
      gnu/packages/patches/gd-CVE-2016-6214.patch
  78. 34
      gnu/packages/patches/gd-fix-test-on-i686.patch
  79. 96
      gnu/packages/patches/gimp-CVE-2016-4994.patch
  80. 16
      gnu/packages/patches/khmer-use-libraries.patch
  81. 554
      gnu/packages/patches/libmtp-devices.patch
  82. 34
      gnu/packages/patches/ninja-tests.patch
  83. 47
      gnu/packages/patches/openimageio-boost-1.60.patch
  84. 21
      gnu/packages/patches/python-dendropy-exclude-failing-tests.patch
  85. 372
      gnu/packages/patches/sudo-CVE-2015-5602.patch
  86. 42
      gnu/packages/pdf.scm
  87. 308
      gnu/packages/perl.scm
  88. 1
      gnu/packages/pumpio.scm
  89. 257
      gnu/packages/python.scm
  90. 87
      gnu/packages/qt.scm
  91. 28
      gnu/packages/readline.scm
  92. 18
      gnu/packages/samba.scm
  93. 4
      gnu/packages/scheme.scm
  94. 36
      gnu/packages/screen.scm
  95. 15
      gnu/packages/smalltalk.scm
  96. 162
      gnu/packages/ssh.scm
  97. 7
      gnu/packages/stalonetray.scm
  98. 150
      gnu/packages/statistics.scm
  99. 2
      gnu/packages/tls.scm
  100. 38
      gnu/packages/tmux.scm

3
.dir-locals.el

@ -41,6 +41,8 @@
(eval . (put 'with-atomic-file-output 'scheme-indent-function 1))
(eval . (put 'call-with-compressed-output-port 'scheme-indent-function 2))
(eval . (put 'call-with-decompressed-port 'scheme-indent-function 2))
(eval . (put 'call-with-gzip-input-port 'scheme-indent-function 1))
(eval . (put 'call-with-gzip-output-port 'scheme-indent-function 1))
(eval . (put 'signature-case 'scheme-indent-function 1))
(eval . (put 'emacs-batch-eval 'scheme-indent-function 0))
(eval . (put 'emacs-batch-edit-file 'scheme-indent-function 1))
@ -59,6 +61,7 @@
(eval . (put 'run-with-store 'scheme-indent-function 1))
(eval . (put 'run-with-state 'scheme-indent-function 1))
(eval . (put 'wrap-program 'scheme-indent-function 1))
(eval . (put 'with-imported-modules 'scheme-indent-function 1))
(eval . (put 'call-with-container 'scheme-indent-function 1))
(eval . (put 'container-excursion 'scheme-indent-function 1))

1
.gitignore

@ -35,6 +35,7 @@
/doc/guix.ky
/doc/guix.pg
/doc/guix.toc
/doc/guix.t2p
/doc/guix.tp
/doc/guix.vr
/doc/guix.vrs

6
.mailmap

@ -30,8 +30,9 @@ Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr>
Mathieu Lirzin <mthl@gnu.org> <mthl@openmailbox.org>
Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org>
Nikita Karetnikov <nikita@karetnikov.org> <nikita.karetnikov@gmail.com>
Nils Gillmann <ng0@libertad.pw> <niasterisk@grrlz.net>
Nils Gillmann <ng0@libertad.pw> <ng@niasterisk.space>
ng0 <ng0@we.make.ritual.n0.is> <niasterisk@grrlz.net>
ng0 <ng0@we.make.ritual.n0.is> <ng@niasterisk.space>
ng0 <ng0@we.make.ritual.n0.is> <ng0@libertad.pw>
Pjotr Prins <pjotr.public01@thebird.nl>
Pjotr Prins <pjotr.public01@thebird.nl> <pjotr.public12@thebird.nl>
Raimon Grau <raimonster@gmail.com> <raimon@3scale.net>
@ -41,3 +42,4 @@ Ricardo Wurmus <rekado@elephly.net> <ricardo.wurmus@mdc-berlin.de>
Sou Bunnbu (宋文武) <iyzsong@gmail.com>
Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
Tomáš Čech <sleep_walker@gnu.org> <sleep_walker@suse.cz>
Tobias Geerinckx-Rice <me@tobias.gr> <tobias.geerinckx.rice@gmail.com>

4
HACKING

@ -35,6 +35,10 @@ upgrading GnuTLS or GLib.) We have a mailing list for commit notifications
(guix-commits@gnu.org), so people can notice. Before pushing your changes,
make sure to run ‘git pull --rebase’.
All commits that are pushed to the central repository on Savannah should be
signed with a PGP key, and the public key should be uploaded to your user
account on Savannah.
For anything else, please post to guix-devel@gnu.org and leave time for a
review, without committing anything. If you didn’t receive any reply
after two weeks, and if you’re confident, it’s OK to commit.

2
Makefile.am

@ -57,6 +57,7 @@ MODULES = \
guix/licenses.scm \
guix/graph.scm \
guix/cve.scm \
guix/zlib.scm \
guix/build-system.scm \
guix/build-system/ant.scm \
guix/build-system/cmake.scm \
@ -252,6 +253,7 @@ SCM_TESTS = \
tests/graph.scm \
tests/challenge.scm \
tests/cve.scm \
tests/zlib.scm \
tests/file-systems.scm \
tests/system.scm \
tests/services.scm \

1
THANKS

@ -14,6 +14,7 @@ infrastructure help:
Alexandru Cojocaru <xojoc@gmx.com>
Aleix Conchillo Flaqué <aconchillo@gmail.com>
Malcolm Cook <MEC@stowers.org>
Thomas Danckaert <thomas.danckaert@gmail.com>
Rafael Ferreira <rafael.f.f1@gmail.com>
Christian Grothoff <christian@grothoff.org>
Eric Hanchrow <eric.hanchrow@gmail.com>

4
config-daemon.ac

@ -113,10 +113,10 @@ if test "x$guix_build_daemon" = "xyes"; then
dnl Determine the appropriate default list of substitute URLs.
GUILE_MODULE_AVAILABLE([have_gnutls], [(gnutls)])
if test "x$have_gnutls" = "xyes"; then
guix_substitute_urls="https://mirror.hydra.gnu.org https://hydra.gnu.org"
guix_substitute_urls="https://mirror.hydra.gnu.org"
else
AC_MSG_WARN([GnuTLS is missing, substitutes will be downloaded in the clear])
guix_substitute_urls="http://mirror.hydra.gnu.org http://hydra.gnu.org"
guix_substitute_urls="http://mirror.hydra.gnu.org"
fi
AC_MSG_CHECKING([for default substitute URLs])
AC_MSG_RESULT([$guix_substitute_urls])

11
configure.ac

@ -189,6 +189,17 @@ AC_SUBST([LIBGCRYPT_LIBDIR])
GUIX_ASSERT_LIBGCRYPT_USABLE
dnl Library name of zlib suitable for 'dynamic-link'.
GUIX_LIBZ_LIBDIR([libz_libdir])
if test "x$libz_libdir" = "x"; then
LIBZ="libz"
else
LIBZ="$libz_libdir/libz"
fi
AC_MSG_CHECKING([for zlib's shared library name])
AC_MSG_RESULT([$LIBZ])
AC_SUBST([LIBZ])
AC_CACHE_SAVE
m4_include([config-daemon.ac])

189
doc/guix.texi

@ -17,6 +17,7 @@ Copyright @copyright{} 2015, 2016 Mathieu Lirzin@*
Copyright @copyright{} 2014 Pierre-Antoine Rault@*
Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*
Copyright @copyright{} 2015, 2016 Leo Famulari@*
Copyright @copyright{} 2015, 2016 Ricardo Wurmus@*
Copyright @copyright{} 2016 Ben Woodcroft@*
Copyright @copyright{} 2016 Chris Marusich@*
Copyright @copyright{} 2016 Efraim Flashner
@ -546,6 +547,10 @@ Installing
allow you to use the @command{guix import pypi} command (@pxref{Invoking
guix import}). It is of
interest primarily for developers and not for casual users.
@item
When @url{http://zlib.net, zlib} is available, @command{guix publish}
can compress build byproducts (@pxref{Invoking guix publish}).
@end itemize
Unless @code{--disable-daemon} was passed to @command{configure}, the
@ -2669,6 +2674,7 @@ Examples include:
download a file from the HTTP, HTTPS, or FTP URL specified in the
@code{uri} field;
@vindex git-fetch
@item @var{git-fetch} from @code{(guix git-download)}
clone the Git version control repository, and check out the revision
specified in the @code{uri} field as a @code{git-reference} object; a
@ -2686,6 +2692,10 @@ A bytevector containing the SHA-256 hash of the source. Typically the
@code{base32} form is used here to generate the bytevector from a
base-32 string.
You can obtain this information using @code{guix download}
(@pxref{Invoking guix download}) or @code{guix hash} (@pxref{Invoking
guix hash}).
@item @code{file-name} (default: @code{#f})
The file name under which the source code should be saved. When this is
@code{#f}, a sensible default value will be used in most cases. In case
@ -2697,8 +2707,9 @@ file name explicitly because the default is not very descriptive.
A list of file names containing patches to be applied to the source.
@item @code{snippet} (default: @code{#f})
A quoted piece of code that will be run in the source directory to make
any modifications, which is sometimes more convenient than a patch.
A G-expression (@pxref{G-Expressions}) or S-expression that will be run
in the source directory. This is a convenient way to modify the source,
sometimes more convenient than a patch.
@item @code{patch-flags} (default: @code{'("-p1")})
A list of command-line flags that should be passed to the @code{patch}
@ -2713,10 +2724,6 @@ such as GNU@tie{}Patch.
A list of Guile modules that should be loaded during the patching
process and while running the code in the @code{snippet} field.
@item @code{imported-modules} (default: @code{'()})
The list of Guile modules to import in the patch derivation, for use by
the @code{snippet}.
@item @code{patch-guile} (default: @code{#f})
The Guile package that should be used in the patching process. When
this is @code{#f}, a sensible default is used.
@ -3697,6 +3704,30 @@ In the example above, the native build of @var{coreutils} is used, so
that @command{ln} can actually run on the host; but then the
cross-compiled build of @var{emacs} is referenced.
@cindex imported modules, for gexps
@findex with-imported-modules
Another gexp feature is @dfn{imported modules}: sometimes you want to be
able to use certain Guile modules from the ``host environment'' in the
gexp, so those modules should be imported in the ``build environment''.
The @code{with-imported-modules} form allows you to express that:
@example
(let ((build (with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
(mkdir-p (string-append #$output "/bin"))))))
(gexp->derivation "empty-dir"
#~(begin
#$build
(display "success!\n")
#t)))
@end example
@noindent
In this example, the @code{(guix build utils)} module is automatically
pulled into the isolated build environment of our gexp, such that
@code{(use-modules (guix build utils))} works as expected.
The syntactic form to construct gexps is summarized below.
@deffn {Scheme Syntax} #~@var{exp}
@ -3756,6 +3787,16 @@ G-expressions created by @code{gexp} or @code{#~} are run-time objects
of the @code{gexp?} type (see below.)
@end deffn
@deffn {Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}
Mark the gexps defined in @var{body}@dots{} as requiring @var{modules}
in their execution environment. @var{modules} must be a list of Guile
module names, such as @code{'((guix build utils) (guix build gremlin))}.
This form has @emph{lexical} scope: it has an effect on the gexps
directly defined in @var{body}@dots{}, but not on those defined, say, in
procedures called from @var{body}@dots{}.
@end deffn
@deffn {Scheme Procedure} gexp? @var{obj}
Return @code{#t} if @var{obj} is a G-expression.
@end deffn
@ -3781,7 +3822,9 @@ stored in a file called @var{script-name}. When @var{target} is true,
it is used as the cross-compilation target triplet for packages referred
to by @var{exp}.
Make @var{modules} available in the evaluation context of @var{exp};
@var{modules} is deprecated in favor of @code{with-imported-modules}.
Its meaning is to
make @var{modules} available in the evaluation context of @var{exp};
@var{modules} is a list of names of Guile modules searched in
@var{module-path} to be copied in the store, compiled, and made available in
the load path during the execution of @var{exp}---e.g., @code{((guix
@ -3862,10 +3905,9 @@ This is the declarative counterpart of @code{text-file}.
@end deffn
@deffn {Scheme Procedure} computed-file @var{name} @var{gexp} @
[#:modules '()] [#:options '(#:local-build? #t)]
[#:options '(#:local-build? #t)]
Return an object representing the store item @var{name}, a file or
directory computed by @var{gexp}. @var{modules} specifies the set of
modules visible in the execution context of @var{gexp}. @var{options}
directory computed by @var{gexp}. @var{options}
is a list of additional arguments to pass to @code{gexp->derivation}.
This is the declarative counterpart of @code{gexp->derivation}.
@ -3873,7 +3915,7 @@ This is the declarative counterpart of @code{gexp->derivation}.
@deffn {Monadic Procedure} gexp->script @var{name} @var{exp}
Return an executable script @var{name} that runs @var{exp} using
@var{guile} with @var{modules} in its search path.
@var{guile}, with @var{exp}'s imported modules in its search path.
The example below builds a script that simply invokes the @command{ls}
command:
@ -3899,16 +3941,20 @@ executable file @file{/gnu/store/@dots{}-list-files} along these lines:
@end deffn
@deffn {Scheme Procedure} program-file @var{name} @var{exp} @
[#:modules '()] [#:guile #f]
[#:guile #f]
Return an object representing the executable store item @var{name} that
runs @var{gexp}. @var{guile} is the Guile package used to execute that
script, and @var{modules} is the list of modules visible to that script.
script.
This is the declarative counterpart of @code{gexp->script}.
@end deffn
@deffn {Monadic Procedure} gexp->file @var{name} @var{exp}
@deffn {Monadic Procedure} gexp->file @var{name} @var{exp} @
[#:set-load-path? #t]
Return a derivation that builds a file @var{name} containing @var{exp}.
When @var{set-load-path?} is true, emit code in the resulting file to
set @code{%load-path} and @code{%load-compiled-path} to honor
@var{exp}'s imported modules.
The resulting file holds references to all the dependencies of @var{exp}
or a subset thereof.
@ -4533,6 +4579,17 @@ hash (@pxref{Invoking guix archive}).
@c FIXME: Replace xref above with xref to an ``Archive'' section when
@c it exists.
@vindex git-fetch
As an example, here is how you would compute the hash of a Git checkout,
which is useful when using the @code{git-fetch} method (@pxref{origin
Reference}):
@example
$ git clone http://example.org/foo.git
$ cd foo
$ rm -rf .git
$ guix hash -r .
@end example
@end table
@node Invoking guix import
@ -5592,6 +5649,18 @@ accept connections from any interface.
Change privileges to @var{user} as soon as possible---i.e., once the
server socket is open and the signing key has been read.
@item --compression[=@var{level}]
@itemx -C [@var{level}]
Compress data using the given @var{level}. When @var{level} is zero,
disable compression. The range 1 to 9 corresponds to different gzip
compression levels: 1 is the fastest, and 9 is the best (CPU-intensive).
The default is 3.
Compression occurs on the fly and the compressed streams are not
cached. Thus, to reduce load on the machine that runs @command{guix
publish}, it may be a good idea to choose a low compression level, or to
run @command{guix publish} behind a caching proxy.
@item --ttl=@var{ttl}
Produce @code{Cache-Control} HTTP headers that advertise a time-to-live
(TTL) of @var{ttl}. @var{ttl} must denote a duration: @code{5d} means 5
@ -7494,6 +7563,41 @@ created by @command{guix archive --generate-key} (@pxref{Invoking guix
archive}). If that is not the case, the service will fail to start.
@end deffn
@anchor{rngd-service}
@deffn {Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @
[#:device "/dev/hwrng"]
Return a service that runs the @command{rngd} program from @var{rng-tools}
to add @var{device} to the kernel's entropy pool. The service will fail if
@var{device} does not exist.
@end deffn
@anchor{pam-limits-service}
@cindex session limits
@cindex ulimit
@cindex priority
@deffn {Scheme Procedure} pam-limits-service [#:limits @var{limits}]
Return a service that installs a configuration file for the
@uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html,
@code{pam_limits} module}. The procedure optionally takes a list of
@code{pam-limits-entry} values, which can be used to specify
@code{ulimit} limits and nice priority limits to user sessions.
The following limits definition sets two hard and soft limits for all
login sessions of users in the @code{realtime} group:
@example
(pam-limits-service
(list
(pam-limits-entry "@@realtime" 'both 'rtprio 99)
(pam-limits-entry "@@realtime" 'both 'memlock 'unlimited)))
@end example
The first entry increases the maximum realtime priority for
non-privileged processes; the second entry lifts any restriction of the
maximum address space that can be locked in memory. These settings are
commonly used for real-time audio systems.
@end deffn
@node Scheduled Job Execution
@subsubsection Scheduled Job Execution
@ -7602,7 +7706,7 @@ Protocol (DHCP) client, on all the non-loopback network interfaces.
@end deffn
@deffn {Scheme Procedure} static-networking-service @var{interface} @var{ip} @
[#:gateway #f] [#:name-services @code{'()}]
[#:gateway #f] [#:name-servers @code{'()}]
Return a service that starts @var{interface} with address @var{ip}. If
@var{gateway} is true, it must be a string specifying the default network
gateway.
@ -7695,7 +7799,7 @@ In addition, @var{extra-settings} specifies a string to append to the
configuration file.
@end deffn
Furthermore, @code{(gnu services ssh)} provides the following service.
Furthermore, @code{(gnu services ssh)} provides the following services.
@deffn {Scheme Procedure} lsh-service [#:host-key "/etc/lsh/host-key"] @
[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @
@ -7733,6 +7837,47 @@ root.
The other options should be self-descriptive.
@end deffn
@deffn {Scheme Procedure} dropbear-service [@var{config}]
Run the @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear SSH
daemon} with the given @var{config}, a @code{<dropbear-configuration>}
object.
For example, to specify a Dropbear service listening on port 1234, add
this call to the operating system's @code{services} field:
@example
(dropbear-service (dropbear-configuration
(port-number 1234)))
@end example
@end deffn
@deftp {Data Type} dropbear-configuration
This data type represents the configuration of a Dropbear SSH daemon.
@table @asis
@item @code{dropbear} (default: @var{dropbear})
The Dropbear package to use.
@item @code{port-number} (default: 22)
The TCP port where the daemon waits for incoming connections.
@item @code{syslog-output?} (default: @code{#t})
Whether to enable syslog output.
@item @code{pid-file} (default: @code{"/var/run/dropbear.pid"})
File name of the daemon's PID file.
@item @code{root-login?} (default: @code{#f})
Whether to allow @code{root} logins.
@item @code{allow-empty-passwords?} (default: @code{#f})
Whether to allow empty passwords.
@item @code{password-authentication?} (default: @code{#t})
Whether to enable password-based authentication.
@end table
@end deftp
@defvr {Scheme Variable} %facebook-host-aliases
This variable contains a string for use in @file{/etc/hosts}
(@pxref{Host Names,,, libc, The GNU C Library Reference Manual}). Each
@ -7767,7 +7912,7 @@ The @code{(gnu services avahi)} provides the following definition.
@deffn {Scheme Procedure} avahi-service [#:avahi @var{avahi}] @
[#:host-name #f] [#:publish? #t] [#:ipv4? #t] @
[#:ipv6? #t] [#:wide-area? #f] @
[#:domains-to-browse '()]
[#:domains-to-browse '()] [#:debug? #f]
Return a service that runs @command{avahi-daemon}, a system-wide
mDNS/DNS-SD responder that allows for service discovery and
"zero-configuration" host name lookups (see @uref{http://avahi.org/}), and
@ -9973,15 +10118,11 @@ program. That gives a lot of flexibility. The
program to run in that initrd.
@deffn {Monadic Procedure} expression->initrd @var{exp} @
[#:guile %guile-static-stripped] [#:name "guile-initrd"] @
[#:modules '()]
[#:guile %guile-static-stripped] [#:name "guile-initrd"]
Return a derivation that builds a Linux initrd (a gzipped cpio archive)
containing @var{guile} and that evaluates @var{exp}, a G-expression,
upon booting. All the derivations referenced by @var{exp} are
automatically copied to the initrd.
@var{modules} is a list of Guile module names to be embedded in the
initrd.
@end deffn
@node GRUB Configuration
@ -10805,10 +10946,6 @@ where @var{service-name} is one of the symbols in @var{provision}
This is the list of modules that must be in scope when @code{start} and
@code{stop} are evaluated.
@item @code{imported-modules} (default: @var{%default-imported-modules})
This is the list of modules to import in the execution environment of
the Shepherd.
@end table
@end deftp

2
emacs/guix-devel.el

@ -216,6 +216,7 @@ to find 'modify-phases' keywords."
"with-derivation-substitute"
"with-directory-excursion"
"with-error-handling"
"with-imported-modules"
"with-monad"
"with-mutex"
"with-store"))
@ -306,6 +307,7 @@ Each rule should have a form (SYMBOL VALUE). See `put' for details."
(with-derivation-substitute 2)
(with-directory-excursion 1)
(with-error-handling 0)
(with-imported-modules 1)
(with-monad 1)
(with-mutex 1)
(with-store 1)

1
etc/guix-daemon.service.in

@ -7,6 +7,7 @@ Description=Build daemon for GNU Guix
[Service]
ExecStart=@bindir@/guix-daemon --build-users-group=guixbuild
Environment=GUIX_LOCPATH=/root/.guix-profile/lib/locale
RemainAfterExit=yes
StandardOutput=syslog
StandardError=syslog

15
gnu/local.mk

@ -150,6 +150,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/gnustep.scm \
%D%/packages/gnuzilla.scm \
%D%/packages/gnu-pw-mgr.scm \
%D%/packages/golang.scm \
%D%/packages/gperf.scm \
%D%/packages/gprolog.scm \
%D%/packages/gps.scm \
@ -214,7 +215,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/llvm.scm \
%D%/packages/lout.scm \
%D%/packages/logging.scm \
%D%/packages/lsh.scm \
%D%/packages/lsof.scm \
%D%/packages/lua.scm \
%D%/packages/lxde.scm \
@ -441,7 +441,6 @@ dist_patch_DATA = \
%D%/packages/patches/automake-test-gzip-warning.patch \
%D%/packages/patches/avahi-localstatedir.patch \
%D%/packages/patches/avidemux-install-to-lib.patch \
%D%/packages/patches/avrdude-fix-libusb.patch \
%D%/packages/patches/awesome-reproducible-png.patch \
%D%/packages/patches/bash-completion-directories.patch \
%D%/packages/patches/beets-image-test-failure.patch \
@ -454,6 +453,7 @@ dist_patch_DATA = \
%D%/packages/patches/cdparanoia-fpic.patch \
%D%/packages/patches/chmlib-inttypes.patch \
%D%/packages/patches/clang-libc-search-path.patch \
%D%/packages/patches/clang-3.8-libc-search-path.patch \
%D%/packages/patches/clucene-pkgconfig.patch \
%D%/packages/patches/cmake-fix-tests.patch \
%D%/packages/patches/cpio-gets-undeclared.patch \
@ -511,10 +511,16 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-cross-environment-variables.patch \
%D%/packages/patches/gcc-libvtv-runpath.patch \
%D%/packages/patches/gcc-5.0-libvtv-runpath.patch \
%D%/packages/patches/gd-CVE-2016-5766.patch \
%D%/packages/patches/gd-CVE-2016-6128.patch \
%D%/packages/patches/gd-CVE-2016-6132.patch \
%D%/packages/patches/gd-CVE-2016-6214.patch \
%D%/packages/patches/gd-fix-test-on-i686.patch \
%D%/packages/patches/gegl-CVE-2012-4433.patch \
%D%/packages/patches/geoclue-config.patch \
%D%/packages/patches/ghostscript-CVE-2015-3228.patch \
%D%/packages/patches/ghostscript-runpath.patch \
%D%/packages/patches/gimp-CVE-2016-4994.patch \
%D%/packages/patches/glib-networking-ssl-cert-file.patch \
%D%/packages/patches/glib-tests-timer.patch \
%D%/packages/patches/glibc-bootstrap-system.patch \
@ -590,6 +596,7 @@ dist_patch_DATA = \
%D%/packages/patches/jasper-CVE-2016-2089.patch \
%D%/packages/patches/jasper-CVE-2016-2116.patch \
%D%/packages/patches/jbig2dec-ignore-testtest.patch \
%D%/packages/patches/khmer-use-libraries.patch \
%D%/packages/patches/kmod-module-directory.patch \
%D%/packages/patches/ldc-disable-tests.patch \
%D%/packages/patches/lftp-dont-save-unknown-host-fingerprint.patch \
@ -603,7 +610,6 @@ dist_patch_DATA = \
%D%/packages/patches/libdrm-symbol-check.patch \
%D%/packages/patches/libevent-dns-tests.patch \
%D%/packages/patches/libextractor-ffmpeg-3.patch \
%D%/packages/patches/libmtp-devices.patch \
%D%/packages/patches/liboop-mips64-deplibs-fix.patch \
%D%/packages/patches/libotr-test-auth-fix.patch \
%D%/packages/patches/liblxqt-include.patch \
@ -673,7 +679,6 @@ dist_patch_DATA = \
%D%/packages/patches/ocaml-CVE-2015-8869.patch \
%D%/packages/patches/ocaml-findlib-make-install.patch \
%D%/packages/patches/openexr-missing-samples.patch \
%D%/packages/patches/openimageio-boost-1.60.patch \
%D%/packages/patches/openjpeg-CVE-2015-6581.patch \
%D%/packages/patches/openjpeg-use-after-free-fix.patch \
%D%/packages/patches/openssh-CVE-2015-8325.patch \
@ -729,6 +734,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-2.7-source-date-epoch.patch \
%D%/packages/patches/python-3-deterministic-build-info.patch \
%D%/packages/patches/python-3-search-paths.patch \
%D%/packages/patches/python-dendropy-exclude-failing-tests.patch \
%D%/packages/patches/python-disable-ssl-test.patch \
%D%/packages/patches/python-fix-tests.patch \
%D%/packages/patches/python-ipython-inputhook-ctype.patch \
@ -760,7 +766,6 @@ dist_patch_DATA = \
%D%/packages/patches/slim-sigusr1.patch \
%D%/packages/patches/slurm-configure-remove-nonfree-contribs.patch \
%D%/packages/patches/soprano-find-clucene.patch \
%D%/packages/patches/sudo-CVE-2015-5602.patch \
%D%/packages/patches/superlu-dist-scotchmetis.patch \
%D%/packages/patches/synfig-build-fix.patch \
%D%/packages/patches/t1lib-CVE-2010-2642.patch \

57
gnu/packages/admin.scm

@ -11,6 +11,7 @@
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at>
;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -789,18 +790,17 @@ system administrator.")
(define-public sudo
(package
(name "sudo")
(version "1.8.15")
(version "1.8.17p1")
(source (origin
(method url-fetch)
(uri
(list (string-append "http://www.sudo.ws/sudo/dist/sudo-"
(list (string-append "https://www.sudo.ws/sudo/dist/sudo-"
version ".tar.gz")
(string-append "ftp://ftp.sudo.ws/pub/sudo/OLD/sudo-"
version ".tar.gz")))
(sha256
(base32
"0263gi6i19fyzzc488n0qw3m518i39f6a7qmrfvahk9j10bkh5j3"))
(patches (search-patches "sudo-CVE-2015-5602.patch"))))
"1k2mn65l1kmsxm8wh0gjxy496xhbpiimbpm6yv6kw6snzc3xg466"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -849,7 +849,7 @@ system administrator.")
`(("groff" ,groff)
("linux-pam" ,linux-pam)
("coreutils" ,coreutils)))
(home-page "http://www.sudo.ws/")
(home-page "https://www.sudo.ws/")
(synopsis "Run commands as root")
(description
"Sudo (su \"do\") allows a system administrator to delegate authority to
@ -1139,19 +1139,20 @@ characters can be replaced as well, as can UTF-8 characters.")
(define-public testdisk
(package
(name "testdisk")
(version "6.14")
(version "7.0")
(source (origin
(method url-fetch)
(uri (string-append "http://www.cgsecurity.org/testdisk-"
version ".tar.bz2"))
(sha256
(base32
"0v1jap83f5h99zv01v3qmqm160d36n4ysi0gyq7xzb3mqgmw75x5"))))
"0ba4wfz2qrf60vwvb1qsq9l6j0pgg81qgf7fh22siaz649mkpfq0"))))
(build-system gnu-build-system)
(inputs
`(;; ("ntfs" ,ntfs)
`(("ntfs-3g" ,ntfs-3g)
("util-linux" ,util-linux)
("openssl" ,openssl)
;; FIXME: add reiserfs
("zlib" ,zlib)
("e2fsprogs" ,e2fsprogs)
("libjpeg" ,libjpeg)
@ -1345,17 +1346,14 @@ of supported upstream metrics systems simultaneously.")
(define-public ansible
(package
(name "ansible")
(version "1.9.2")
(version "2.1.0.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://pypi.python.org/packages/source/a/ansible/ansible-"
version
".tar.gz"))
(uri (pypi-uri "ansible" version))
(sha256
(base32
"007fzgsqaahb0y4gjdxxmir9kcni7wph2z14jhqgpz88idrz8pn2"))))
"1bfc2xiplpad6f2nwi48y0kps7xqnsll85dlz63cy8k5bysl6d20"))))
(build-system python-build-system)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
@ -1708,3 +1706,34 @@ throughput (in the same interval).")
"The Fuck tries to match a rule for a previous, mistyped command, creates
a new command using the matched rule, and runs it.")
(license license:x11)))
(define-public di
(package
(name "di")
(version "4.42")
(source
(origin
(method url-fetch)
(uri (string-append "https://gentoo.com/di/di-" version ".tar.gz"))
(sha256
(base32 "1i6m9zdnidn8268q1lz9fd8payk7s4pgwh5zlam9rr4dy6h6a67n"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; Obscure test failures.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'setup-environment
(lambda* (#:key outputs #:allow-other-keys)
(setenv "CC" "gcc")
(setenv "prefix" (assoc-ref outputs "out"))
#t)))
#:make-flags (list "--environment-overrides")))
(home-page "https://www.gentoo.com/di/")
(synopsis "Advanced df like disk information utility")
(description
"'di' is a disk information utility, displaying everything
(and more) that your @code{df} command does. It features the ability to
display your disk usage in whatever format you prefer. It is designed to be
highly portable. Great for heterogenous networks.")
(license license:zlib)))

4
gnu/packages/algebra.scm

@ -202,7 +202,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
(define-public giac-xcas
(package
(name "giac-xcas")
(version "1.2.2-59")
(version "1.2.2-75")
(source (origin
(method url-fetch)
;; "~parisse/giac" is not used because the maintainer regularly
@ -214,7 +214,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
"source/giac_" version ".tar.gz"))
(sha256
(base32
"02s774v2zg2ya43rm8s7bcwzrmp4wlmn8h2rlg4816zpfrjkrdn4"))))
"0vs111fkd900wkm7yypaxmplc8i8j63d9shc3fbdhddn7cdj70b1"))))
(build-system gnu-build-system)
(arguments
`(#:phases

9
gnu/packages/backup.scm

@ -407,17 +407,14 @@ detection, and lossless compression.")
(define-public borg
(package
(name "borg")
(version "1.0.3")
(version "1.0.6")
(source (origin
(method url-fetch)
(uri (string-append
"https://pypi.python.org/packages/"
"c9/c6/1efc338724b054d4d264dfeadfcba11cefa6c3c50f474cec91b8f0c21d3a"
"/borgbackup-" version ".tar.gz"))
(uri (pypi-uri "borgbackup" version))
(sha256
(base32
"0kzr0xa00yjfxx27aipli67qg5ffj52yrnqhpf3sdy6k5wzwaybs"))))
"1dxn9p4xm0zd32xzzd9hs4a542db34clykrrnnv3hrdnc394895p"))))
(build-system python-build-system)
(arguments
`(#:phases

636
gnu/packages/bioinformatics.scm

@ -27,6 +27,7 @@
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix build-system ant)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
@ -49,18 +50,23 @@
#:use-module (gnu packages file)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
#:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages linux)
#:use-module (gnu packages logging)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
#:use-module (gnu packages statistics)
#:use-module (gnu packages tbb)
@ -70,6 +76,7 @@
#:use-module (gnu packages vim)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages zip)
#:use-module (srfi srfi-1))
@ -215,7 +222,7 @@ computational cluster.")
(define-public bedtools
(package
(name "bedtools")
(version "2.25.0")
(version "2.26.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/arq5x/bedtools2/archive/v"
@ -223,7 +230,7 @@ computational cluster.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1ywcy3yfwzhl905b51l0ffjia55h75vv3mw5xkvib04pp6pj548m"))))
"0xvri5hnp2iim1cx6mcd5d9f102p5ql41x69rd6106x1c17pinqm"))))
(build-system gnu-build-system)
(native-inputs `(("python" ,python-2)))
(inputs `(("samtools" ,samtools)
@ -251,6 +258,51 @@ intervals from multiple files in widely-used genomic file formats such as BAM,
BED, GFF/GTF, VCF.")
(license license:gpl2)))
;; Later releases of bedtools produce files with more columns than
;; what Ribotaper expects.
(define-public bedtools-2.18
(package (inherit bedtools)
(name "bedtools")
(version "2.18.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/arq5x/bedtools2/"
"archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"05vrnr8yp7swfagshzpgqmzk1blnwnq8pq5pckzi1m26w98d63vf"))))))
(define-public ribotaper
(package
(name "ribotaper")
(version "1.3.1")
(source (origin
(method url-fetch)
(uri (string-append "https://ohlerlab.mdc-berlin.de/"
"files/RiboTaper/RiboTaper_Version_"
version ".tar.gz"))
(sha256
(base32
"0ykjbps1y3z3085q94npw8i9x5gldc6shy8vlc08v76zljsm07hv"))))
(build-system gnu-build-system)
(inputs
`(("bedtools" ,bedtools-2.18)
("samtools" ,samtools-0.1)
("r" ,r)
("r-foreach" ,r-foreach)
("r-xnomial" ,r-xnomial)
("r-domc" ,r-domc)
("r-multitaper" ,r-multitaper)
("r-seqinr" ,r-seqinr)))
(home-page "https://ohlerlab.mdc-berlin.de/software/RiboTaper_126/")
(synopsis "Define translated ORFs using ribosome profiling data")
(description
"Ribotaper is a method for defining translated @dfn{open reading
frames} (ORFs) using ribosome profiling (ribo-seq) data. This package
provides the Ribotaper pipeline.")
(license license:gpl3+)))
(define-public bioawk
(package
(name "bioawk")
@ -421,7 +473,7 @@ into separate processes; and more.")
(define-public blast+
(package
(name "blast+")
(version "2.2.31")
(version "2.4.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -429,7 +481,7 @@ into separate processes; and more.")
version "/ncbi-blast-" version "+-src.tar.gz"))
(sha256
(base32
"19gq6as4k1jrgsd26158ads6h7v4jca3h4r5dzg1y0m6ya50x5ph"))
"14n9jik6vhiwjd3m7bach4xj1pzfn0szbsbyfxybd9l9cc43b6mb"))
(modules '((guix build utils)))
(snippet
'(begin
@ -1439,6 +1491,40 @@ accessing bigWig files.")
(native-inputs
`(("python-setuptools" ,python2-setuptools))))))
(define-public python-dendropy
(package
(name "python-dendropy")
(version "4.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "DendroPy" version))
(sha256
(base32
"1jfz7gp18wph311w1yygbvjanb3n5mdqal439bb6myw41dwb5m63"))
;; There are two known test failures that will be fixed in the next
;; release after 4.1.0.
;; https://github.com/jeetsukumaran/DendroPy/issues/48
(patches (search-patches
"python-dendropy-exclude-failing-tests.patch"))))
(build-system python-build-system)
(home-page "http://packages.python.org/DendroPy/")
(synopsis "Library for phylogenetics and phylogenetic computing")
(description
"DendroPy is a library for phylogenetics and phylogenetic computing: reading,
writing, simulation, processing and manipulation of phylogenetic
trees (phylogenies) and characters.")
(license license:bsd-3)
(properties `((python2-variant . ,(delay python2-dendropy))))))
(define-public python2-dendropy
(let ((base (package-with-python2 (strip-python2-variant python-dendropy))))
(package
(inherit base)
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(define-public deeptools
(package
(name "deeptools")
@ -1482,7 +1568,7 @@ identify enrichments with functional annotations of the genome.")
(define-public diamond
(package
(name "diamond")
(version "0.8.7")
(version "0.8.15")
(source (origin
(method url-fetch)
(uri (string-append
@ -1491,7 +1577,7 @@ identify enrichments with functional annotations of the genome.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"15r7gcrqc4pv5d4kvv530zc3xnni92c74y63zrxzidriss7591yx"))))
"14n0p28b4i5j8vvz1fl4xj1gxnpg98bj0kr3i90mhn7miwr4pkpw"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no "check" target
@ -1517,6 +1603,75 @@ data and settings.")
(license (license:non-copyleft "file://src/COPYING"
"See src/COPYING in the distribution."))))
(define-public eigensoft
(let ((revision "1")
(commit "b14d1e202e21e532536ff8004f0419cd5e259dc7"))
(package
(name "eigensoft")
(version (string-append "6.1.2-"
revision "."
(string-take commit 9)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/DReichLab/EIG.git")
(commit commit)))
(file-name (string-append "eigensoft-" commit "-checkout"))
(sha256
(base32
"0f5m6k2j5c16xc3xbywcs989xyc26ncy1zfzp9j9n55n9r4xcaiq"))
(modules '((guix build utils)))
;; Remove pre-built binaries.
(snippet '(begin
(delete-file-recursively "bin")
(mkdir "bin")
#t))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
#:make-flags '("CC=gcc")
#:phases
(modify-phases %standard-phases
;; There is no configure phase, but the Makefile is in a
;; sub-directory.
(replace 'configure
(lambda _
(chdir "src")
;; The link flags are incomplete.
(substitute* "Makefile"
(("-lgsl") "-lgsl -lm -llapack -llapacke -lpthread"))
#t))
;; The provided install target only copies executables to
;; the "bin" directory in the build root.
(add-after 'install 'actually-install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(mkdir-p bin)
(for-each (lambda (file)
(install-file file bin))
(find-files "../bin" ".*"))
#t))))))
(inputs
`(("gsl" ,gsl)
("lapack" ,lapack)
("openblas" ,openblas)
("perl" ,perl)
("gfortran" ,gfortran "lib")))
(home-page "https://github.com/DReichLab/EIG")
(synopsis "Tools for population genetics")
(description "The EIGENSOFT package provides tools for population
genetics and stratification correction. EIGENSOFT implements methods commonly
used in population genetics analyses such as PCA, computation of Tracy-Widom
statistics, and finding related individuals in structured populations. It
comes with a built-in plotting script and supports multiple file formats and
quantitative phenotypes.")
;; The license of the eigensoft tools is Expat, but since it's
;; linking with the GNU Scientific Library (GSL) the effective
;; license is the GPL.
(license license:gpl3+))))
(define-public edirect
(package
(name "edirect")
@ -2170,7 +2325,7 @@ manipulating HTS data.")
(define-public htslib
(package
(name "htslib")
(version "1.2.1")
(version "1.3.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -2178,7 +2333,7 @@ manipulating HTS data.")
version "/htslib-" version ".tar.bz2"))
(sha256
(base32
"1c32ssscbnjwfw3dra140fq7riarp2x990qxybh34nr1p5r17nxx"))))
"1rja282fwdc25ql6izkhdyh8ppw8x2fs0w0js78zgkmqjlikmma9"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@ -2301,6 +2456,87 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
;; files such as lib/jsoncpp.cpp are released under the Expat license.
(license (list license:gpl3+ license:expat))))
(define-public khmer
(package
(name "khmer")
(version "2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "khmer" version))
(sha256
(base32
"0wb05shqh77v00256qlm68vbbx3kl76fyzihszbz5nhanl4ni33a"))
(patches (search-patches "khmer-use-libraries.patch"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Delete bundled libraries.
(delete-file-recursively "third-party/zlib")
(delete-file-recursively "third-party/bzip2")
;; Replace bundled seqan.
(let* ((seqan-all "third-party/seqan")
(seqan-include (string-append
seqan-all "/core/include")))
(delete-file-recursively seqan-all)
(copy-recursively (string-append (assoc-ref inputs "seqan")
"/include/seqan")
(string-append seqan-include "/seqan")))
;; We do not replace the bundled MurmurHash as the canonical
;; repository for this code 'SMHasher' is unsuitable for
;; providing a library. See
;; https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00977.html
#t))
(add-after 'unpack 'set-cc
(lambda _
(setenv "CC" "gcc")
#t))
;; It is simpler to test after installation.
(delete 'check)
(add-after 'install 'post-install-check
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(setenv "PATH"
(string-append
(getenv "PATH")
":"
(assoc-ref outputs "out")
"/bin"))
(setenv "PYTHONPATH"
(string-append
(getenv "PYTHONPATH")
":"
out
"/lib/python"
(string-take (string-take-right
(assoc-ref inputs "python") 5) 3)
"/site-packages"))
(with-directory-excursion "build"
(zero? (system* "nosetests" "khmer" "--attr"
"!known_failing")))))))))
(native-inputs
`(("seqan" ,seqan)
("python-nose" ,python-nose)))
(inputs
`(("zlib" ,zlib)
("bzip2" ,bzip2)
("python-screed" ,python-screed)
("python-bz2file" ,python-bz2file)))
(home-page "https://khmer.readthedocs.org/")
(synopsis "K-mer counting, filtering and graph traversal library")
(description "The khmer software is a set of command-line tools for
working with DNA shotgun sequencing data from genomes, transcriptomes,
metagenomes and single cells. Khmer can make de novo assemblies faster, and
sometimes better. Khmer can also identify and fix problems with shotgun
data.")
;; When building on i686, armhf and mips64el, we get the following error:
;; error: ['khmer', 'khmer.tests', 'oxli'] require 64-bit operating system
(supported-systems '("x86_64-linux"))
(license license:bsd-3)))
(define-public macs
(package
(name "macs")
@ -2333,7 +2569,7 @@ sequencing tag position and orientation.")
(define-public mafft
(package
(name "mafft")
(version "7.267")
(version "7.299")
(source (origin
(method url-fetch)
(uri (string-append
@ -2342,7 +2578,7 @@ sequencing tag position and orientation.")
(file-name (string-append name "-" version ".tgz"))
(sha256
(base32
"1xl6xq1rfxkws0svrlhyqxhhwbv6r77jwblsdpcyiwzsscw6wlk0"))))
"1pwwdy5a17ggx8h9v9y712ilswj27dc3d23r65l56jgjz67y5zc0"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no automated tests, though there are tests in the read me
@ -2408,7 +2644,7 @@ sequences).")
(define-public metabat
(package
(name "metabat")
(version "0.26.1")
(version "0.26.3")
(source (origin
(method url-fetch)
(uri (string-append
@ -2417,31 +2653,40 @@ sequences).")
(file-name (string-append name "-" version ".tar.bz2"))
(sha256
(base32
"0vgrhbaxg4dkxyax2kbigak7w0arhqvw0szwp6gd9wmyilc44kfa"))))
"1vpfvgsn8wdsv1g7z73zxcncskx7dy7bw5msg1hhibk25ay11pyg"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-includes
(lambda _
(substitute* "SConstruct"
(("/include/bam/bam.h")
"/include/samtools/bam.h"))
(substitute* "src/BamUtils.h"
(("^#include \"bam/bam\\.h\"")
"#include \"samtools/bam.h\"")
(("^#include \"bam/sam\\.h\"")
"#include \"samtools/sam.h\""))
(substitute* "src/KseqReader.h"
(("^#include \"bam/kseq\\.h\"")
"#include \"samtools/kseq.h\""))
#t))
(lambda _
(substitute* "src/BamUtils.h"
(("^#include \"bam/bam\\.h\"")
"#include \"samtools/bam.h\"")
(("^#include \"bam/sam\\.h\"")
"#include \"samtools/sam.h\""))
(substitute* "src/KseqReader.h"
(("^#include \"bam/kseq\\.h\"")
"#include \"htslib/kseq.h\""))
#t))
(add-after 'unpack 'fix-scons
(lambda _
(substitute* "SConstruct" ; Do not distribute README
(("^env\\.Install\\(idir_prefix, 'README\\.md'\\)")
""))
#t))
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "SConstruct"
(("^htslib_dir = 'samtools'")
(string-append "hitslib_dir = '"
(assoc-ref inputs "htslib")
"'"))
(("^samtools_dir = 'samtools'")
(string-append "samtools_dir = '"
(assoc-ref inputs "htslib")
"'"))
(("^findStaticOrShared\\('bam', hts_lib")
(string-append "findStaticOrShared('bam', '"
(assoc-ref inputs "samtools")
"/lib'"))
;; Do not distribute README.
(("^env\\.Install\\(idir_prefix, 'README\\.md'\\)") ""))
#t))
(delete 'configure)
(replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
@ -2450,17 +2695,11 @@ sequences).")
(string-append
"PREFIX="
(assoc-ref outputs "out"))
(string-append
"HTSLIB_DIR="
(assoc-ref inputs "htslib"))
(string-append
"SAMTOOLS_DIR="
(assoc-ref inputs "samtools"))
(string-append
"BOOST_ROOT="
(assoc-ref inputs "boost"))
"install"))))
;; check and install carried out during build phase
;; Check and install are carried out during build phase.
(delete 'check)
(delete 'install))))
(inputs
@ -2919,6 +3158,75 @@ while RNA-seq specific modules evaluate sequencing saturation, mapped reads
distribution, coverage uniformity, strand specificity, etc.")
(license license:gpl3+)))
(define-public seek
;; There are no release tarballs. According to the installation
;; instructions at http://seek.princeton.edu/installation.jsp, the latest
;; stable release is identified by this changeset ID.
(let ((changeset "2329130")
(revision "1"))
(package
(name "seek")
(version (string-append "0-" revision "." changeset))
(source (origin
(method hg-fetch)
(uri (hg-reference
(url "https://bitbucket.org/libsleipnir/sleipnir")
(changeset changeset)))
(sha256
(base32
"0qrvilwh18dpbhkf92qvxbmay0j75ra3jg2wrhz67gf538zzphsx"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((srfi srfi-1)
(guix build gnu-build-system)
(guix build utils))
#:phases
(let ((dirs '("SeekMiner"
"SeekEvaluator"
"SeekPrep"
"Distancer"
"Data2DB"
"PCL2Bin")))
(modify-phases %standard-phases
(add-before 'configure 'bootstrap
(lambda _
(zero? (system* "bash" "gen_auto"))))
(add-after 'build 'build-additional-tools
(lambda* (#:key make-flags #:allow-other-keys)
(every (lambda (dir)
(with-directory-excursion (string-append "tools/" dir)
(zero? (apply system* "make" make-flags))))
dirs)))
(add-after 'install 'install-additional-tools
(lambda* (#:key make-flags #:allow-other-keys)
(fold (lambda (dir result)
(with-directory-excursion (string-append "tools/" dir)
(and result
(zero? (apply system*
`("make" ,@make-flags "install"))))))
#t dirs)))))))
(inputs
`(("gsl" ,gsl)
("boost" ,boost)
("libsvm" ,libsvm)
("readline" ,readline)
("gengetopt" ,gengetopt)
("log4cpp" ,log4cpp)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("perl" ,perl)))
(home-page "http://seek.princeton.edu")
(synopsis "Gene co-expression search engine")
(description
"SEEK is a computational gene co-expression search engine. SEEK provides
biologists with a way to navigate the massive human expression compendium that
now contains thousands of expression datasets. SEEK returns a robust ranking
of co-expressed genes in the biological area of interest defined by the user's
query genes. It also prioritizes thousands of expression datasets according
to the user's query of interest.")
(license license:cc-by3.0))))
(define-public samtools
(package
(name "samtools")
@ -3359,6 +3667,44 @@ optimize the sequencing depth, or to screen multiple libraries to avoid low
complexity samples.")
(license license:gpl3+)))
(define-public python-screed
(package
(name "python-screed")
(version "0.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "screed" version))
(sha256
(base32
"18czszp9fkx3j6jr7y5kp6dfialscgddk05mw1zkhh2zhn0jd8i0"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(setenv "PYTHONPATH"
(string-append (getenv "PYTHONPATH") ":."))
(zero? (system* "nosetests" "--attr" "!known_failing")))))))
(native-inputs
`(("python-nose" ,python-nose)))
(inputs
`(("python-bz2file" ,python-bz2file)))
(home-page "http://github.com/dib-lab/screed/")
(synopsis "Short read sequence database utilities")
(description "Screed parses FASTA and FASTQ files and generates databases.
Values such as sequence name, sequence description, sequence quality and the
sequence itself can be retrieved from these databases.")
(license license:bsd-3)))
(define-public python2-screed
(let ((base (package-with-python2 (strip-python2-variant python-screed))))
(package
(inherit base)
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(define-public sra-tools
(package
(name "sra-tools")
@ -3600,7 +3946,7 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
(define-public star
(package
(name "star")
(version "2.5.1b")
(version "2.5.2a")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/alexdobin/STAR/archive/"
@ -3608,7 +3954,7 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0wzcfhkg10apnh0y73xlarfa79xxwxdizicbdl11wb48awk44iq4"))
"0xjlsm4p9flln111hv4xx7xy94c2nl53zvdvbk9winmiradjsdra"))
(modules '((guix build utils)))
(snippet
'(begin
@ -3665,6 +4011,8 @@ by seed clustering and stitching procedure. In addition to unbiased de novo
detection of canonical junctions, STAR can discover non-canonical splices and
chimeric (fusion) transcripts, and is also capable of mapping full-length RNA
sequences.")
;; Only 64-bit systems are supported according to the README.
(supported-systems '("x86_64-linux" "mips64el-linux"))
;; STAR is licensed under GPLv3 or later; htslib is MIT-licensed.
(license license:gpl3+)))
@ -3869,7 +4217,7 @@ data types as well.")
(define-public vsearch
(package
(name "vsearch")
(version "2.0.0")
(version "2.0.1")