diff options
author | Leo Famulari <leo@famulari.name> | 2018-01-11 14:22:50 -0800 |
---|---|---|
committer | Leo Famulari <leo@famulari.name> | 2018-01-11 14:22:50 -0800 |
commit | 4adb40bffc0dda8871878283887a0e0cd88d9578 (patch) | |
tree | 74d5fb686116002da72de4a1075d0ed8f307cec1 | |
parent | 4610ab7c9a5327df0d475262817bc081a5891aa8 (diff) | |
parent | 138c08899ba73049de8afd2b74a8cf6845a1d9e1 (diff) | |
download | guix-4adb40bffc0dda8871878283887a0e0cd88d9578.tar.gz |
Merge branch 'master' into core-updates
116 files changed, 2946 insertions, 1042 deletions
diff --git a/.dir-locals.el b/.dir-locals.el index 949f7e0bc8..dac6cb1453 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -24,6 +24,7 @@ (eval . (put 'guard 'scheme-indent-function 1)) (eval . (put 'lambda* 'scheme-indent-function 1)) (eval . (put 'substitute* 'scheme-indent-function 1)) + (eval . (put 'match-record 'scheme-indent-function 2)) ;; 'modify-phases' and its keywords. (eval . (put 'modify-phases 'scheme-indent-function 1)) diff --git a/README b/README index 4192eb4129..d96a43bbef 100644 --- a/README +++ b/README @@ -25,13 +25,14 @@ GNU Guix currently depends on the following packages: - [[https://www.gnu.org/software/make/][GNU Make]] - [[https://www.gnutls.org][GnuTLS]] compiled with guile support enabled. - [[https://gitlab.com/guile-git/guile-git][Guile-Git]] + - [[http://www.zlib.net/][zlib]] - optionally [[https://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command Unless `--disable-daemon' was passed, the following packages are needed: - [[https://sqlite.org/][SQLite 3]] - - [[http://www.bzip.org][libbz2]] - [[https://gcc.gnu.org][GCC's g++]] + - optionally [[http://www.bzip.org][libbz2]] When `--disable-daemon' was passed, you instead need the following: diff --git a/config-daemon.ac b/config-daemon.ac index 42b59819d3..80d84cbdbc 100644 --- a/config-daemon.ac +++ b/config-daemon.ac @@ -18,11 +18,18 @@ if test "x$guix_build_daemon" = "xyes"; then dnl Use 64-bit file system calls so that we can support files > 2 GiB. AC_SYS_LARGEFILE - dnl Look for libbz2, a required dependency. - AC_CHECK_LIB([bz2], [BZ2_bzWriteOpen], [true], - [AC_MSG_ERROR([Guix requires libbz2, which is part of bzip2. See http://www.bzip.org/.])]) - AC_CHECK_HEADERS([bzlib.h], [true], - [AC_MSG_ERROR([Guix requires libbz2, which is part of bzip2. See http://www.bzip.org/.])]) + dnl Look for zlib, a required dependency. + AC_CHECK_LIB([z], [gzdopen], [true], + [AC_MSG_ERROR([Guix requires zlib. See http://www.zlib.net/.])]) + AC_CHECK_HEADERS([zlib.h], [true], + [AC_MSG_ERROR([Guix requires zlib. See http://www.zlib.net/.])]) + + dnl Look for libbz2, an optional dependency. + AC_CHECK_LIB([bz2], [BZ2_bzWriteOpen], [HAVE_LIBBZ2=yes], [HAVE_LIBBZ2=no]) + if test "x$HAVE_LIBBZ2" = xyes; then + AC_CHECK_HEADERS([bzlib.h]) + HAVE_LIBBZ2="$ac_cv_header_bzlib_h" + fi dnl Look for SQLite, a required dependency. PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.6.19]) @@ -163,6 +170,7 @@ if test "x$guix_build_daemon" = "xyes"; then [chmod +x nix/scripts/offload]) fi +AM_CONDITIONAL([HAVE_LIBBZ2], [test "x$HAVE_LIBBZ2" = "xyes"]) AM_CONDITIONAL([BUILD_DAEMON], [test "x$guix_build_daemon" = "xyes"]) AM_CONDITIONAL([BUILD_DAEMON_OFFLOAD], \ [test "x$guix_build_daemon" = "xyes" \ diff --git a/configure.ac b/configure.ac index aa70f140d3..53efa4a684 100644 --- a/configure.ac +++ b/configure.ac @@ -113,6 +113,10 @@ AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"]) dnl Make sure we have a full-fledged Guile. GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads]) +dnl Make sure we don't suffer from the bug in 'equal?' wrt. syntax objects +dnl found in 2.2.1. See <https://bugs.gnu.org/29903>. +GUIX_ASSERT_SYNTAX_OBJECT_EQUAL + dnl Decompressors, for use by the substituter and other modules. AC_PATH_PROG([GZIP], [gzip]) AC_PATH_PROG([BZIP2], [bzip2]) diff --git a/doc/guix.texi b/doc/guix.texi index 1d1f30f000..6245d54e8d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13,7 +13,7 @@ @set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5 @copying -Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès@* +Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* @@ -44,7 +44,8 @@ Copyright @copyright{} 2017 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017 Arun Isaac@* -Copyright @copyright{} 2017 nee +Copyright @copyright{} 2017 nee@* +Copyright @copyright{} 2018 Rutger Helling Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -604,6 +605,7 @@ Guile,, gnutls-guile, GnuTLS-Guile}); @c FIXME: Specify a version number once a release has been made. @uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August 2017 or later; +@item @url{http://zlib.net, zlib}; @item @url{http://www.gnu.org/software/make/, GNU Make}. @end itemize @@ -625,8 +627,8 @@ Support for build offloading (@pxref{Daemon Offload Setup}) and version 0.10.2 or later. @item -When @url{http://zlib.net, zlib} is available, @command{guix publish} -can compress build byproducts (@pxref{Invoking guix publish}). +When @url{http://www.bzip.org, libbz2} is available, +@command{guix-daemon} can use it to compress build logs. @end itemize Unless @code{--disable-daemon} was passed to @command{configure}, the @@ -634,7 +636,6 @@ following packages are also needed: @itemize @item @url{http://sqlite.org, SQLite 3}; -@item @url{http://www.bzip.org, libbz2}; @item @url{http://gcc.gnu.org, GCC's g++}, with support for the C++11 standard. @end itemize @@ -1234,12 +1235,13 @@ processes to gain access to undeclared dependencies. It is necessary, though, when @command{guix-daemon} is running under an unprivileged user account. -@item --disable-log-compression -Disable compression of the build logs. +@item --log-compression=@var{type} +Compress build logs according to @var{type}, one of @code{gzip}, +@code{bzip2}, or @code{none}. Unless @code{--lose-logs} is used, all the build logs are kept in the @var{localstatedir}. To save space, the daemon automatically compresses -them with bzip2 by default. This option disables that. +them with bzip2 by default. @item --disable-deduplication @cindex deduplication @@ -5619,11 +5621,26 @@ The following derivations will be built: Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host. +@quotation Note +The @code{--system} flag is for @emph{native} compilation and must not +be confused with cross-compilation. See @code{--target} below for +information on cross-compilation. +@end quotation + An example use of this is on Linux-based systems, which can emulate different personalities. For instance, passing -@code{--system=i686-linux} on an @code{x86_64-linux} system allows users +@code{--system=i686-linux} on an @code{x86_64-linux} system allows you to build packages in a complete 32-bit environment. +Similarly, when transparent emulation with QEMU and @code{binfmt_misc} +is enabled (@pxref{Virtualization Services, +@code{qemu-binfmt-service-type}}), you can build for any system for +which a QEMU @code{binfmt_misc} handler is installed. + +Builds for a system other than that of the machine you are using can +also be offloaded to a remote machine of the right architecture. +@xref{Daemon Offload Setup}, for more information on offloading. + @item --target=@var{triplet} @cindex cross-compilation Cross-build for @var{triplet}, which must be a valid GNU triplet, such @@ -5674,6 +5691,7 @@ collection as soon as the build completes. @xref{Invoking guix gc}, for more on GC roots. @item --log-file +@cindex build logs, access Return the build log file names or URLs for the given @var{package-or-derivation}, or raise an error if build logs are missing. @@ -7066,7 +7084,7 @@ The above commands only use the default output of the given packages. To select other outputs, two element tuples can be specified: @example -guix environment --ad-hoc -e '(list (@ (gnu packages bash) bash) "include")' +guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) "include")' @end example @item --load=@var{file} @@ -7236,6 +7254,22 @@ http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i Obviously, these URLs only work for files that are in the store; in other cases, they return 404 (``Not Found''). +@cindex build logs, publication +Build logs are available from @code{/log} URLs like: + +@example +http://example.org/log/gwspk@dots{}-guile-2.2.3 +@end example + +@noindent +When @command{guix-daemon} is configured to save compressed build logs, +as is the case by default (@pxref{Invoking guix-daemon}), @code{/log} +URLs return the compressed log as-is, with an appropriate +@code{Content-Type} and/or @code{Content-Encoding} header. We recommend +running @command{guix-daemon} with @code{--log-compression=gzip} since +Web browsers can automatically decompress it, which is not the case with +bzip2 compression. + The following options are available: @table @code @@ -9910,6 +9944,10 @@ The number of seconds of silence and the number of seconds of activity, respectively, after which a build process times out. A value of zero disables the timeout. +@item @code{log-compression} (default: @code{'bzip2}) +The type of compression used for build logs---one of @code{gzip}, +@code{bzip2}, or @code{none}. + @item @code{extra-options} (default: @code{'()}) List of extra command-line options for @command{guix-daemon}. @@ -12151,6 +12189,13 @@ limited number of special-purpose system interfaces. Additionally, adding a service made by @code{mate-desktop-service} adds the MATE metapackage to the system profile. +The desktop environments in Guix use the Xorg display server by +default. If you'd like to use the newer display server protocol +called Wayland, you need to use the @code{sddm-service} instead of the +@code{slim-service} for the graphical login manager. You should then +select the ``GNOME (Wayland)'' session in SDDM. Currently only GNOME +has support for Wayland. + @deffn {Scheme Procedure} gnome-desktop-service Return a service that adds the @code{gnome} package to the system profile, and extends polkit with the actions from @@ -14697,6 +14742,48 @@ the 2nd element of the pair is the password. @end deftp +@subsubheading Darkstat Service +@cindex darkstat +Darkstat is a packet sniffer that captures network traffic, calculates +statistics about usage, and serves reports over HTTP. + +@defvar {Scheme Variable} darkstat-service-type +This is the service type for the +@uref{https://unix4lyfe.org/darkstat/, darkstat} +service, its value must be a @code{darkstat-configuration} record as in +this example: + +@example +(service darkstat-service-type + (darkstat-configuration + (interface "eno1"))) +@end example +@end defvar + +@deftp {Data Type} darkstat-configuration +Data type representing the configuration of @command{darkstat}. + +@table @asis +@item @code{package} (default: @code{darkstat}) +The darkstat package to use. + +@item @code{interface} +Capture traffic on the specified network interface. + +@item @code{port} (default: @code{"667"}) +Bind the web interface to the specified port. + +@item @code{bind-address} (default: @code{"127.0.0.1"}) +Bind the web interface to the specified address. + +@item @code{base} (default: @code{"/"}) +Specify the path of the base URL. This can be useful if +@command{darkstat} is accessed via a reverse proxy. + +@end table +@end deftp + + @node Kerberos Services @subsubsection Kerberos Services @cindex Kerberos @@ -16884,8 +16971,10 @@ an absolute path can be specified here. @node Virtualization Services @subsubsection Virtualization services + The @code{(gnu services virtualization)} module provides services for -the libvirt and virtlog daemons. +the libvirt and virtlog daemons, as well as other virtualization-related +services. @subsubheading Libvirt daemon @code{libvirtd} is the server side daemon component of the libvirt @@ -17588,6 +17677,90 @@ Defaults to @samp{3} @end deftypevr +@subsubheading Transparent Emulation with QEMU + +@cindex emulation +@cindex @code{binfmt_misc} +@code{qemu-binfmt-service-type} provides support for transparent +emulation of program binaries built for different architectures---e.g., +it allows you to transparently execute an ARMv7 program on an x86_64 +machine. It achieves this by combining the @uref{https://www.qemu.org, +QEMU} emulator and the @code{binfmt_misc} feature of the kernel Linux. + +@defvr {Scheme Variable} qemu-binfmt-service-type +This is the type of the QEMU/binfmt service for transparent emulation. +Its value must be a @code{qemu-binfmt-configuration} object, which +specifies the QEMU package to use as well as the architecture we want to +emulated: + +@example +(service qemu-binfmt-service-type + (qemu-binfmt-configuration + (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc")))) +@end example + +In this example, we enable transparent emulation for the ARM and aarch64 +platforms. Running @code{herd stop qemu-binfmt} turns it off, and +running @code{herd start qemu-binfmt} turns it back on (@pxref{Invoking +herd, the @command{herd} command,, shepherd, The GNU Shepherd Manual}). +@end defvr + +@deftp {Data Type} qemu-binfmt-configuration +This is the configuration for the @code{qemu-binfmt} service. + +@table @asis +@item @code{platforms} (default: @code{'()}) +The list of emulated QEMU platforms. Each item must be a @dfn{platform +object} as returned by @code{lookup-qemu-platforms} (see below). + +@item @code{guix-support?} (default: @code{#f}) +When it is true, QEMU and all its dependencies are added to the build +environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, +@code{--chroot-directory} option}). This allows the @code{binfmt_misc} +handlers to be used within the build environment, which in turn means +that you can transparently build programs for another architecture. + +For example, let's suppose you're on an x86_64 machine and you have this +service: + +@example +(service qemu-binfmt-service-type + (qemu-binfmt-configuration + (platforms (lookup-qemu-platforms "arm")) + (qemu-support? #t))) +@end example + +You can run: + +@example +guix build -s armhf-linux inkscape +@end example + +@noindent +and it will build Inkscape for ARMv7 @emph{as if it were a native +build}, transparently using QEMU to emulate the ARMv7 CPU. Pretty handy +if you'd like to test a package build for an architecture you don't have +access to! + +@item @code{qemu} (default: @code{qemu}) +The QEMU package to use. +@end table +@end deftp + +@deffn {Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{} +Return the list of QEMU platform objects corresponding to +@var{platforms}@dots{}. @var{platforms} must be a list of strings +corresponding to platform names, such as @code{"arm"}, @code{"sparc"}, +@code{"mips64el"}, and so on. +@end deffn + +@deffn {Scheme Procedure} qemu-platform? @var{obj} +Return true if @var{obj} is a platform object. +@end deffn + +@deffn {Scheme Procedure} qemu-platform-name @var{platform} +Return the name of @var{platform}---a string such as @code{"arm"}. +@end deffn @node Version Control Services @subsubsection Version Control Services diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index 4dd740174e..997107a67a 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -430,7 +430,8 @@ bailing out.~%root contents: ~s~%" (scandir "/")) qemu-guest-networking? volatile-root? pre-mount - (mounts '())) + (mounts '()) + (on-error 'debug)) "This procedure is meant to be called from an initrd. Boot a system by first loading LINUX-MODULES (a list of module names) from LINUX-MODULE-DIRECTORY, then setting up QEMU guest networking if @@ -444,7 +445,10 @@ if any. MOUNTS must be a list of <file-system> objects. When VOLATILE-ROOT? is true, the root file system is writable but any changes -to it are lost." +to it are lost. + +ON-ERROR is passed to 'call-with-error-handling'; it determines what happens +upon error." (define (root-mount-point? fs) (string=? (file-system-mount-point fs) "/")) @@ -517,6 +521,7 @@ to it are lost." (begin (display "no boot file passed via '--load'\n") (display "entering a warm and cozy REPL\n") - (start-repl))))))) + (start-repl))))) + #:on-error on-error)) ;;; linux-initrd.scm ends here diff --git a/gnu/local.mk b/gnu/local.mk index 7257a8e967..ff5fe59dd0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2,7 +2,7 @@ # Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> # Copyright © 2013, 2014, 2015, 2016, 2017 Andreas Enge <andreas@enge.fr> # Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> -# Copyright © 2013, 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> +# Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> # Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> # Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net> # Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org> @@ -16,6 +16,7 @@ # Copyright © 2017 Clément Lassieur <clement@lassieur.org> # Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> # Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> +# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net> # # This file is part of GNU Guix. # @@ -87,6 +88,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/cdrom.scm \ %D%/packages/certs.scm \ %D%/packages/check.scm \ + %D%/packages/chemistry.scm \ %D%/packages/chez.scm \ %D%/packages/ci.scm \ %D%/packages/cinnamon.scm \ @@ -460,6 +462,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/mail.scm \ %D%/services/mcron.scm \ %D%/services/messaging.scm \ + %D%/services/monitoring.scm \ %D%/services/networking.scm \ %D%/services/nfs.scm \ %D%/services/shepherd.scm \ @@ -541,6 +544,7 @@ dist_patch_DATA = \ %D%/packages/patches/agg-am_c_prototype.patch \ %D%/packages/patches/ansible-wrap-program-hack.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ + %D%/packages/patches/ao-cad-aarch64-support.patch \ %D%/packages/patches/apr-skip-getservbyname-test.patch \ %D%/packages/patches/aspell-default-dict-dir.patch \ %D%/packages/patches/ath9k-htc-firmware-binutils.patch \ @@ -717,7 +721,6 @@ dist_patch_DATA = \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-default-utf8.patch \ - %D%/packages/patches/guile-bytestructures-name-clash.patch \ %D%/packages/patches/guile-default-utf8.patch \ %D%/packages/patches/guile-linux-syscalls.patch \ %D%/packages/patches/guile-present-coding.patch \ @@ -755,6 +758,7 @@ dist_patch_DATA = \ %D%/packages/patches/icecat-bug-1415133.patch \ %D%/packages/patches/icecat-bug-1414945.patch \ %D%/packages/patches/icecat-bug-1424373-pt2.patch \ + %D%/packages/patches/icecat-bug-1427870-spectre-mitigation.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ %D%/packages/patches/intltool-perl-compatibility.patch \ @@ -783,6 +787,8 @@ dist_patch_DATA = \ %D%/packages/patches/ldc-disable-tests.patch \ %D%/packages/patches/ldc-1.1.0-disable-dmd-tests.patch \ %D%/packages/patches/ldc-1.1.0-disable-phobos-tests.patch \ + %D%/packages/patches/ledger-fix-uninitialized.patch \ + %D%/packages/patches/ledger-revert-boost-python-fix.patch \ %D%/packages/patches/liba52-enable-pic.patch \ %D%/packages/patches/liba52-link-with-libm.patch \ %D%/packages/patches/liba52-set-soname.patch \ @@ -832,6 +838,8 @@ dist_patch_DATA = \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libusb-for-axoloti.patch \ %D%/packages/patches/libvdpau-va-gl-unbundle.patch \ + %D%/packages/patches/libvorbis-CVE-2017-14632.patch \ + %D%/packages/patches/libvorbis-CVE-2017-14633.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ %D%/packages/patches/libxcb-python-3.5-compat.patch \ %D%/packages/patches/libxslt-generated-ids.patch \ @@ -892,8 +900,6 @@ dist_patch_DATA = \ %D%/packages/patches/netsurf-system-utf8proc.patch \ %D%/packages/patches/netsurf-y2038-tests.patch \ %D%/packages/patches/netsurf-longer-test-timeout.patch \ - %D%/packages/patches/newsbeuter-CVE-2017-12904.patch \ - %D%/packages/patches/newsbeuter-CVE-2017-14500.patch \ %D%/packages/patches/nfs-utils-missing-headers.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ninja-zero-mtime.patch \ @@ -1110,6 +1116,7 @@ dist_patch_DATA = \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ + %D%/packages/patches/webkitgtk-mitigate-spectre.patch \ %D%/packages/patches/weechat-python.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \ %D%/packages/patches/wicd-get-selected-profile-fix.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index d90bc7c050..81df265362 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au> ;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com> ;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org> +;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,6 +43,7 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module (gnu packages) @@ -756,6 +758,31 @@ console window to allow commands to be interactively run on multiple servers over ssh connections.") (license license:gpl2+))) +(define-public rename + (package + (name "rename") + (version "0.20") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RM/RMBARKER/File-Rename-" + version ".tar.gz")) + (sha256 + (base32 + "1cf6xx2hiy1xalp35fh8g73j67r0w0g66jpcbc6971x9jbm7bvjy")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page "https://metacpan.org/pod/distribution/File-Rename/rename.PL") + (synopsis "Perl extension for renaming multiple files") + (description + "This package provides a Perl interface (@code{Perl::Rename}) as well +as a command-line utility (@command{rename}) that can rename multiple files +at once based on a Perl regular expression.") + (license license:perl-license))) + (define-public rottlog (package (name "rottlog") diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index d21c093876..c3a591baa3 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 John Darrington <jmd@gnu.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -64,7 +65,7 @@ in FITS files.") (define-public wcslib (package (name "wcslib") - (version "5.17") + (version "5.18") (source (origin (method url-fetch) @@ -72,7 +73,7 @@ in FITS files.") "ftp://ftp.atnf.csiro.au/pub/software/wcslib/" name "-" version ".tar.bz2")) (sha256 - (base32 "0v23x1fw01arhmqdrzfd9n593mjglhzfyx4793v065z0dg4bb72w")))) + (base32 "16jh568k99c9p0y3qzcgps2rii933x9wlay7q1xm0lr59zqzp4xn")))) (inputs `(("cfitsio" ,cfitsio))) (build-system gnu-build-system) @@ -85,9 +86,10 @@ in FITS files.") #t))))) (home-page "https://www.atnf.csiro.au/people/mcalabre/WCS") (synopsis "Library which implements the FITS WCS standard") - (description "The FITS \"World Coordinate System\" (WCS) standard defines -keywords and usage that provide for the description of astronomical coordinate -systems in a FITS image header.") + (description "The FITS \"World Coordinate System\" (@dfn{WCS}) standard +defines keywords and usage that provide for the description of astronomical +coordinate systems in a @dfn{FITS} (Flexible Image Transport System) image +header.") (license license:lgpl3+))) (define-public gnuastro @@ -117,15 +119,16 @@ programs for the manipulation and analysis of astronomical data.") (define-public stellarium (package (name "stellarium") - (version "0.16.0") + (version "0.17.0") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/stellarium/" - "Stellarium-sources/" - version "/stellarium-" version ".tar.gz")) + (uri (string-append "https://github.com/Stellarium/" name + "/releases/download/v" version + "/" name "-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1krxj51lix096xbz64lys166a8zdwhill5vvs7dlxdn14amc8d98")))) + "0d6b3fs5aify7i1lwgkcickppnj73cbh24g8qschnfs3ypdf48fc")))) (build-system cmake-build-system) (inputs `(("qtbase" ,qtbase) @@ -140,19 +143,19 @@ programs for the manipulation and analysis of astronomical data.") ("qtbase" ,qtbase) ; Qt MOC is needed at compile time ("qttools" ,qttools))) (arguments - `(#:test-target "tests" - #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-tests - (lambda _ - (substitute* "src/tests/testStelSphereGeometry.cpp" - (("Vec3d v[(]0[)]") "Vec3d v(0.0)")) - #t)) - (add-before 'check 'set-offscreen-display - (lambda _ - ;; make Qt render "offscreen", required for tests - (setenv "QT_QPA_PLATFORM" "offscreen") - (setenv "HOME" "/tmp") - #t))))) + `(#:test-target "test" + #:configure-flags (list "-DENABLE_TESTING=1" + (string-append + "-DCMAKE_CXX_FLAGS=-isystem " + (assoc-ref %build-inputs "qtserialport") + "/include/qt5")) + #:phases (modify-phases %standard-phases + (add-before 'check 'set-offscreen-display + (lambda _ + ;; make Qt render "offscreen", required for tests + (setenv "QT_QPA_PLATFORM" "offscreen") + (setenv "HOME" "/tmp") + #t))))) (home-page "http://www.stellarium.org/") (synopsis "3D sky viewer") (description "Stellarium is a planetarium. It shows a realistic sky in diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 6851827924..456c6a9dcc 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> @@ -1028,7 +1028,7 @@ follower.") (define-public fluidsynth (package (name "fluidsynth") - (version "1.1.8") + (version "1.1.9") (source (origin (method git-fetch) (uri (git-reference @@ -1037,7 +1037,7 @@ follower.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "12q7hv0zvgylsdj1ipssv5zr7ap2y410dxsd63dz22y05fa2hwwd")))) + "0krvmb1idnf95l2ydzfcb08ayyx3n4m71hf9fgwv3srzaikvpf3q")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no check phase @@ -1960,19 +1960,20 @@ and ALSA.") (define-public qjackctl (package (name "qjackctl") - (version "0.4.5") + (version "0.5.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/" version "/qjackctl-" version ".tar.gz")) (sha256 (base32 - "1dsavjfzz5bpzc80mvfs940w9f9f47cf4r9cqxnaqrl4xilsa3f5")))) + "0lx81dfwanc10vrny1vzi0wx73ph82dlz99ffjzsigj3cqzz6x4s")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; no check target (inputs `(("jack" ,jack-1) + ("alsa-lib" ,alsa-lib) ("qtbase" ,qtbase) ("qtx11extras" ,qtx11extras))) (native-inputs @@ -1987,14 +1988,15 @@ into various outputs and to start, stop and configure jackd") (define-public qjackrcd (package (name "qjackrcd") - (version "1.2.0") + (version "1.2.2") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/qjackrcd/stable/" - "qjackrcd-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/orouits/qjackrcd.git") + (commit (string-append "v" version)))) (sha256 (base32 - "0xpnhzbwg5c60n5dhwln5p7qm191nvmf23la88zxfqx1jv0mmxxb")))) + "1l5iq2mkqd4gn9yr8xbh9qlpp1clcflazychl4vhdbz0bzq4c6al")))) (build-system gnu-build-system) (arguments `(#:phases @@ -2598,7 +2600,7 @@ interface.") (define-public qsynth (package (name "qsynth") - (version "0.4.4") + (version "0.5.0") (source (origin (method url-fetch) @@ -2606,7 +2608,7 @@ interface.") "/qsynth-" version ".tar.gz")) (sha256 (base32 - "0qhfnikx3xcllkvs60kj6vcf2rwwzh31y41qkk6kwfhzgd219y8f")))) + "1sr6vrz8z9r99j9xcix86lgcqldragb2ajmq1bnhr58d99sda584")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" phase diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index b29256d1b0..6da09750e8 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> @@ -38,6 +38,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) #:use-module (gnu packages databases) #:use-module (gnu packages dejagnu) #:use-module (gnu packages ftp) @@ -469,7 +470,7 @@ detection, and lossless compression.") ;; Remove bundled shared libraries. (with-directory-excursion "src/borg/algorithms" (for-each delete-file-recursively - (list "lz4" "zstd"))))))) + (list "blake2" "lz4" "zstd"))))))) (build-system python-build-system) (arguments `(#:modules ((srfi srfi-26) ; for cut @@ -480,9 +481,11 @@ detection, and lossless compression.") (add-after 'unpack 'set-env (lambda* (#:key inputs #:allow-other-keys) (let ((openssl (assoc-ref inputs "openssl")) + (libb2 (assoc-ref inputs "libb2")) (lz4 (assoc-ref inputs "lz4")) (zstd (assoc-ref inputs "zstd"))) (setenv "BORG_OPENSSL_PREFIX" openssl) + (setenv "BORG_LIBB2_PREFIX" libb2) (setenv "BORG_LIBLZ4_PREFIX" lz4) (setenv "BORG_LIBZSTD_PREFIX" zstd) (setenv "PYTHON_EGG_CACHE" "/tmp") @@ -542,6 +545,7 @@ detection, and lossless compression.") ("python-guzzle-sphinx-theme" ,python-guzzle-sphinx-theme))) (inputs `(("acl" ,acl) + ("libb2" ,libb2) ("lz4" ,lz4) ("openssl" ,openssl) ("python-llfuse" ,python-llfuse) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index ee92c49f4e..92acbd3640 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> @@ -39,6 +39,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages perl) #:use-module (gnu packages linux) + #:use-module (gnu packages pcre) #:use-module (gnu packages texinfo) #:use-module (gnu packages hurd) #:use-module (gnu packages pkg-config) @@ -93,6 +94,7 @@ command-line arguments, multiple languages, and so on.") (patches (search-patches "grep-timing-sensitive-test.patch")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ;some of the tests require it + (inputs `(("pcre" ,pcre))) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm index 42c417b18e..8d2b17ba48 100644 --- a/gnu/packages/benchmark.scm +++ b/gnu/packages/benchmark.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Dave Love <fx@gnu.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,7 +34,7 @@ (define-public fio (package (name "fio") - (version "3.2") + (version "3.3") (source (origin (method url-fetch) (uri (string-append @@ -41,7 +42,7 @@ "fio-" version ".tar.bz2")) (sha256 (base32 - "1f5vina9bxn99drda8dhbxng8ypj4ny72xh6mp8rq955d0f8sq0z")))) + "0mrilkm7qdn6fgzlprqp7w48bwwm362rmwxqirbzqmi54k3mj3ar")))) (build-system gnu-build-system) (arguments '(#:test-target "test" diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 0e9c20f1f1..d3b137513c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -790,20 +790,6 @@ into separate processes; and more.") (define-public python2-biopython (package-with-python2 python-biopython)) -;; An outdated version of biopython is required for seqmagick, see -;; https://github.com/fhcrc/seqmagick/issues/59 -;; When that issue has been resolved this package should be removed. -(define python2-biopython-1.66 - (package - (inherit python2-biopython) - (version "1.66") - (source (origin - (method url-fetch) - (uri (pypi-uri "biopython" version)) - (sha256 - (base32 - "1gdv92593klimg22icf5j9by7xiq86jnwzkpz4abaa05ylkdf6hp")))))) - (define-public bpp-core ;; The last release was in 2014 and the recommended way to install from source ;; is to clone the git repository, so we do this. @@ -3518,16 +3504,16 @@ sequencing tag position and orientation.") (define-public mafft (package (name "mafft") - (version "7.310") + (version "7.313") (source (origin (method url-fetch) (uri (string-append - "http://mafft.cbrc.jp/alignment/software/mafft-" version + "https://mafft.cbrc.jp/alignment/software/mafft-" version "-without-extensions-src.tgz")) (file-name (string-append name "-" version ".tgz")) (sha256 (base32 - "0gbsaz6z2qa307kd7wfb06c3y4ikmv1hsdvlns11f6zq4w1z9pwc")))) + "0r83qmg2if8mi6jyx3xdf8ar2gcxl7r9nmj98jr7lxym97v61a2k")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no automated tests, though there are tests in the read me @@ -5391,34 +5377,19 @@ bioinformatics file formats, sequence alignment, and more.") (define-public seqmagick (package (name "seqmagick") - (version "0.6.1") + (version "0.7.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/s/seqmagick/seqmagick-" - version ".tar.gz")) + (uri (pypi-uri "seqmagick" version)) (sha256 (base32 - "0cgn477n74gsl4qdaakrrhi953kcsd4q3ivk2lr18x74s3g4ma1d")))) + "12bfyp8nqi0hd36rmj450aygafp01qy3hkbvlwn3bk39pyjjkgg5")))) (build-system python-build-system) - (arguments - ;; python2 only, see https://github.com/fhcrc/seqmagick/issues/56 - `(#:python ,python-2 - #:phases - (modify-phases %standard-phases - ;; Current test in setup.py does not work as of 0.6.1, - ;; so use nose to run tests instead for now. See - ;; https://github.com/fhcrc/seqmagick/issues/55 - (replace 'check (lambda _ (zero? (system* "nosetests"))))))) (inputs - ;; biopython-1.66 is required due to - ;; https://github.com/fhcrc/seqmagick/issues/59 - ;; When that issue is resolved the 'python2-biopython-1.66' package - ;; should be removed. - `(("python-biopython" ,python2-biopython-1.66))) + `(("python-biopython" ,python-biopython))) (native-inputs - `(("python-nose" ,python2-nose))) + `(("python-nose" ,python-nose))) (home-page "https://github.com/fhcrc/seqmagick") (synopsis "Tools for converting and modifying sequence files") (description diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 3cffbcfeb6..5884cbd750 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -3,10 +3,10 @@ ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> -;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016, 2017 David Craven <david@craven.ch> -;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +28,7 @@ #:use-module (gnu packages admin) #:use-module ((gnu packages algebra) #:select (bc)) #:use-module (gnu packages assembly) + #:use-module (gnu packages base) #:use-module (gnu packages disk) #:use-module (gnu packages bison) #:use-module (gnu packages cdrom) @@ -41,10 +42,13 @@ #:use-module (gnu packages mtools) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages texinfo) + #:use-module (gnu packages tls) #:use-module (gnu packages swig) #:use-module (gnu packages virtualization) + #:use-module (gnu packages web) #:use-module (guix build-system gnu) #:use-module (guix download) #:use-module (guix git-download) @@ -217,7 +221,8 @@ menu to select one of the installed operating systems.") "/lib/grub"))) (for-each (lambda (basename) - (if (not (string-prefix? "." basename)) + (if (not (or (string-prefix? "." basename) + (file-exists? (string-append output-dir "/" basename)))) (symlink (string-append input-dir "/" basename) (string-append output-dir "/" basename)))) (scandir input-dir)) @@ -421,6 +426,73 @@ also initializes the boards (RAM etc).") (define-public u-boot-odroid-c2 (make-u-boot-package "odroid-c2" "aarch64-linux-gnu")) +(define-public vboot-utils + (package + (name "vboot-utils") + (version "R63-10032.B") + (source (origin + ;; XXX: Snapshots are available but changes timestamps every download. + (method git-fetch) + (uri (git-reference + (url (string-append "https://chromium.googlesource.com" + "/chromiumos/platform/vboot_reference")) + (commit (string-append "release-" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0h0m3l69vp9dr6xrs1p6y7ilkq3jq8jraw2z20kqfv7lvc9l1lxj")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list "CC=gcc" + (string-append "DESTDIR=" (assoc-ref %outputs "out"))) + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-hard-coded-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((coreutils (assoc-ref inputs "coreutils")) + (diffutils (assoc-ref inputs "diffutils"))) + (substitute* "futility/misc.c" + (("/bin/cp") (string-append coreutils "/bin/cp"))) + (substitute* "tests/bitmaps/TestBmpBlock.py" + (("/usr/bin/cmp") (string-append diffutils "/bin/cmp"))) + (substitute* "vboot_host.pc.in" + (("prefix=/usr") + (string-append "prefix=" (assoc-ref outputs "out")))) + #t))) + (delete 'configure) + (add-before 'check 'patch-tests + (lambda _ + ;; These tests compare diffs against known-good values. + ;; Patch the paths to match those in the build container. + (substitute* (find-files "tests/futility/expect_output") + (("/mnt/host/source/src/platform/vboot_reference") + (string-append "/tmp/guix-build-" ,name "-" ,version + ".drv-0/source"))) + ;; Tests require write permissions to many of these files. + (for-each make-file-writable (find-files "tests/futility")) + #t))) + #:test-target "runtests")) + (native-inputs + `(("pkg-config" ,pkg-config) + + ;; For tests. + ("diffutils" ,diffutils) + ("python@2" ,python-2))) + (inputs + `(("coreutils" ,coreutils) + ("libyaml" ,libyaml) + ("openssl" ,openssl) + ("openssl:static" ,openssl "static") + ("util-linux" ,util-linux))) + (home-page + "https://dev.chromium.org/chromium-os/chromiumos-design-docs/verified-boot") + (synopsis "ChromiumOS verified boot utilities") + (description + "vboot-utils is a collection of tools to facilitate booting of +Chrome-branded devices. This includes the @command{cgpt} partitioning +program, the @command{futility} and @command{crossystem} firmware management +tools, and more.") + (license license:bsd-3))) + (define-public os-prober (package (name "os-prober") diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 523158d553..38190340f1 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -97,14 +97,14 @@ caching facility provided by the library.") (define-public libcdio (package (name "libcdio") - (version "0.94") + (version "2.0.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libcdio/libcdio-" - version ".tar.gz")) + version ".tar.bz2")) (sha256 (base32 - "0nh222bnj0hgdic5nvr8l9j194mh5niqy15rypwrdbk6z01wkqln")))) + "0jr8ppdm80c533nzmrpz3iffnpc6nhvsria1di9f4jg1l19a03fd")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) @@ -127,14 +127,14 @@ extraction from CDs.") (define-public libcdio-paranoia (package (name "libcdio-paranoia") - (version "10.2+0.93+1") + (version "10.2+0.94+2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libcdio/libcdio-paranoia-" - version ".tar.bz2")) + version ".tar.gz")) (sha256 (base32 - "14x4b4jk5b0zvcalrg02y4jmbkmmlb07qfmk5hph9k18b8frn7gc")))) + "0h8rr1ir05r29rgawa1ccw335668k4s3zq4yg9095svyx7n843yn")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs `(("libcdio" ,libcdio))) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index f5c6470257..80a5a22f2c 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -27,6 +27,7 @@ ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1506,12 +1507,16 @@ backported from Python 2.7 for Python 2.4+.") (base32 "1iypp6z46r19n4xmgx6m1lwmlpfjh8vapq8izigrqlaarvp2y64c")))) (build-system python-build-system) + (native-inputs + `(("python-mock" ,python-mock) + ("python-nose" ,python-nose) + ("python-pyhamcrest" ,python-pyhamcrest))) (propagated-inputs `(("python-six" ,python-six) ("python-parse" ,python-parse) ("python-parse-type" ,python-parse-type))) - (arguments `(#:tests? #f)) ;TODO: tests require nose>=1.3 and - ;PyHamcrest>=1.8 + (arguments + '(#:test-target "behave_test")) (home-page "https://github.com/behave/behave") (synopsis "Python behavior-driven development") (description @@ -1724,3 +1729,37 @@ retried.") (define-public python2-flaky (package-with-python2 python-flaky)) + +(define-public python-pyhamcrest + (package + (name "python-pyhamcrest") + (version "1.9.0") + (source (origin + (method url-fetch) + (uri + (string-append + "https://github.com/hamcrest/PyHamcrest/archive/V" + version + ".tar.gz")) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1lqjajhwf7x7igvvnj5p1cm31y9njy07qby94w18kl6zwbdjqrwy")))) + (native-inputs ; All native inputs are for tests + `(("python-pytest-cov" ,python-pytest-cov) + ("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-hypothesis" ,python-hypothesis))) + (propagated-inputs + `(("python-six" ,python-six))) + (build-system python-build-system) + (home-page "http://hamcrest.org/") + (synopsis "Hamcrest matchers for Python") + (description + "PyHamcrest is a framework for writing matcher objects, + allowing you to declaratively define \"match\" rules.") + (license license:bsd-3))) + +(define-public python2-pyhamcrest + (package-with-python2 python-pyhamcrest)) diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm new file mode 100644 index 0000000000..ed883072b4 --- /dev/null +++ b/gnu/packages/chemistry.scm @@ -0,0 +1,119 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages chemistry) + #:use-module (guix packages) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (gnu packages gv) + #:use-module (gnu packages maths) + #:use-module (gnu packages python) + #:use-module (guix build-system python)) + +(define-public domainfinder + (package + (name "domainfinder") + (version "2.0.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/khinsen/" + "domainfinder/downloads/DomainFinder-" + version ".tar.gz")) + (sha256 + (base32 + "1z26lsyf7xwnzwjvimmbla7ckipx6p734w7y0jk2a2fzci8fkdcr")))) + (build-system python-build-system) + (inputs + `(("python-mmtk" ,python2-mmtk))) + (arguments + `(#:python ,python-2 + ;; No test suite + #:tests? #f)) + (home-page "http://dirac.cnrs-orleans.fr/DomainFinder") + (synopsis "Analysis of dynamical domains in proteins") + (description "DomainFinder is an interactive program for the determination +and characterization of dynamical domains in proteins. It can infer dynamical +domains by comparing two protein structures, or from normal mode analysis on a +single structure. The software is currently not actively maintained and works +only with Python 2 and NumPy < 1.9.") + (license license:cecill-c))) + +(define with-numpy-1.8 + (package-input-rewriting `((,python2-numpy . ,python2-numpy-1.8)))) + +(define-public nmoldyn + (package + (name "nmoldyn") + (version "3.0.11") + (source + (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/khinsen/" + "nmoldyn3/downloads/nMOLDYN-" + version ".tar.gz")) + (sha256 + (base32 + "1mvmz3lkr217kdrd8cvdr1d82y58wp1403c9rnd943mijgq8xb5a")))) + (build-system python-build-system) + (inputs + `(("python-matplotlib" ,(with-numpy-1.8 python2-matplotlib)) + ("python-scientific", python2-scientific) + ("netcdf", netcdf) + ("gv" ,gv))) + (propagated-inputs + `(("python-mmtk" ,python2-mmtk))) + (arguments + `(#:python ,python-2 + #:tests? #f ; No test suite + #:phases + (modify-phases %standard-phases + (add-before 'build 'create-linux2-directory + (lambda _ + (mkdir-p "nMOLDYN/linux2"))) + (add-before 'build 'change-PDF-viewer + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "nMOLDYN/Preferences.py" + ;; Set the paths for external executables, substituting + ;; gv for acroread. + ;; There is also vmd_path, but VMD is not free software + ;; and Guix contains currently no free molecular viewer that + ;; could be substituted. + (("PREFERENCES\\['acroread_path'\\] = ''") + (format "PREFERENCES['acroread_path'] = '~a'" + (which "gv"))) + (("PREFERENCES\\['ncdump_path'\\] = ''") + (format "PREFERENCES['ncdump_path'] = '~a'" + (which "ncdump"))) + (("PREFERENCES\\['ncgen_path'\\] = ''") + (format "PREFERENCES['ncgen_path'] = '~a'" + (which "ncgen3"))) + (("PREFERENCES\\['task_manager_path'\\] = ''") + (format "PREFERENCES['task_manager_path'] = '~a'" + (which "task_manager"))) + ;; Show documentation as PDF + (("PREFERENCES\\['documentation_style'\\] = 'html'") + "PREFERENCES['documentation_style'] = 'pdf'") )))))) + (home-page "http://dirac.cnrs-orleans.fr/nMOLDYN/") + (synopsis "Analysis software for Molecular Dynamics trajectories") + (description "nMOLDYN is an interactive analysis program for Molecular Dynamics +simulations. It is especially designed for the computation and decomposition of +neutron scattering spectra, but also computes other quantities. The software +is currently not actively maintained and works only with Python 2 and +NumPy < 1.9.") + (license license:cecill))) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index a094f0a465..81e3ae6b64 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -1,11 +1,12 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2015, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> +;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ (define-module (gnu packages code) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) @@ -39,7 +41,9 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages autogen) #:use-module (gnu packages ncurses) - #:use-module (gnu packages autotools)) + #:use-module (gnu packages autotools) + #:use-module (gnu packages llvm) + #:use-module (gnu packages bash)) ;;; Tools to deal with source code: metrics, cross-references, etc. @@ -383,3 +387,39 @@ case. The extension consists of a set of Perl scripts which build on the textual @command{gcov} output to implement the following enhanced functionality such as HTML output.") (license license:gpl2+))) + +(define-public rtags + (package + (name "rtags") + (version "2.16") + (home-page "https://github.com/Andersbakken/rtags") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit "8ef7554852541eced514c56d5e39d6073f7a2ef9") + + ;; FIXME: This fetches bundled copies of Lua, RCT, and + ;; Selene. + (recursive? #t))) + (sha256 + (base32 + "12r7lsqdmcbs9864a6dpblvifqvmfxhvxippyhfnnm2ai5ra80nc")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DBUILD_TESTING=FALSE" + "-DRTAGS_NO_ELISP_FILES=1") + #:tests? #f)) + (inputs + `(("clang" ,clang) + ("llvm" ,llvm) + ("bash-completion" ,bash-completion))) + (synopsis "Indexer for the C language family with Emacs integration") + (description + "RTags is a client/server application that indexes C/C++ code and keeps a +persistent file-based database of references, declarations, definitions, +symbolnames etc. There’s also limited support for ObjC/ObjC++. It allows you +to find symbols by name (including nested class and namespace scope). Most +importantly we give you proper follow-symbol and find-references support.") + (license license:gpl3+))) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 676eec00c5..aeacade21c 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org> @@ -891,6 +891,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" (package-with-bootstrap-guile (package-with-explicit-inputs (package (inherit grep) + (inputs '()) ;no PCRE support (native-inputs `(("perl" ,perl-boot0)))) %boot5-inputs (current-source-location) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 5ad9fd33bc..4fd499f5f3 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,7 +28,7 @@ (define-public libzen (package (name "libzen") - (version "0.4.35") + (version "0.4.37") (source (origin (method url-fetch) (uri (string-append "https://mediaarea.net/download/source/" @@ -35,7 +36,7 @@ name "_" version ".tar.bz2")) (sha256 (base32 - "12a1icgcffgv503ii2k1453kxg5hfly09mf4zjcc80aq8a6rf8by")))) + "1hcsrmn85b0xp0mp33aazk7g071q1v3f163nnhv8b0mv9c4bgsfn")))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 1ac704ddb8..e616c9223f 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -3,10 +3,11 @@ ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox> -;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2016, 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,7 +57,9 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) - #:use-module (guix build-system perl)) + #:use-module (guix build-system perl) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) (define-public libsodium (package @@ -612,3 +615,51 @@ data on your platform, so the seed itself will be as random as possible. ;; files in the compilation are in the public domain. (license (list license:boost1.0 license:public-domain)))) +(define-public libb2 + (let ((revision "1") ; upstream doesn't ‘do’ releases + (commit "60ea749837362c226e8501718f505ab138e5c19d")) + (package + (name "libb2") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BLAKE2/libb2") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07a2m8basxrsj9dsp5lj24y8jraj85lfy56756a7za1nfkgy04z7")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (arguments + `(#:configure-flags + (list + ,@(if (any (cute string-prefix? <> (or (%current-system) + (%current-target-system))) + '("x86_64" "i686")) + ;; fat only checks for Intel optimisations + '("--enable-fat") + '()) + "--disable-native") ; don't optimise at build time. + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + (invoke "sh" "autogen.sh")))))) + (home-page "https://blake2.net/") + (synopsis "Library implementing the BLAKE2 family of hash functions") + (description + "libb2 is a portable implementation of the BLAKE2 family of cryptographic +hash functions. It includes optimised implementations for IA-32 and AMD64 +processors, and an interface layer that automatically selects the best +implementation for the processor it is run on. + +@dfn{BLAKE2} (RFC 7693) is a family of high-speed cryptographic hash functions +that are faster than MD5, SHA-1, SHA-2, and SHA-3, yet are at least as secure +as the latest standard, SHA-3. It is an improved version of the SHA-3 finalist +BLAKE.") + (license license:public-domain)))) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 302c696233..a5869140ff 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -149,7 +149,17 @@ tunneling, and so on.") "1q192f457sjypgvwq7grrf8gq8w272p3zf1d5ppc20mriqm0mbc3")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/davidjpeacock/kurly")) + `(#:import-path "github.com/davidjpeacock/kurly" + #:install-source? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-readme + (lambda* (#:key outputs import-path #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (readme (string-append "src/" import-path "/README.md")) + (misc (string-append out "/share/kurly/misc/"))) + (install-file readme misc) + #t)))))) (inputs `(("go-github-com-alsm-ioprogress" ,go-github-com-alsm-ioprogress) ("go-github-com-aki237-nscjar" ,go-github-com-aki237-nscjar) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index d98dba0911..26ee48e9e6 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -30,6 +30,7 @@ ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Kristofer Buffington <kristoferbuffington@gmail.com> +;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1549,19 +1550,19 @@ trees (LSM), for sustained throughput under random insert workloads.") (define-public guile-wiredtiger (package (name "guile-wiredtiger") - (version "20171113.6cbc51da") + (version "0.6.3") (source (origin (method git-fetch) (uri (git-reference (url "https://framagit.org/a-guile-mind/guile-wiredtiger.git") - (commit "6cbc51dab95d28fe31ae025fbdd88f3ecbf2111b"))) + (commit "070ed68139d99c279f058a6c293f00292d35dbd7"))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0x3qwpgch5pg0k21kc792h4y6b36a8xd1zkfq8ar2l2mqmpzkzyd")))) + "14rna97wsylajzxfif95wnblq85csgcfc666gh5dl0ssgd7x8llh")))) (build-system gnu-build-system) (arguments - '(#:tests? #f + '(#:parallel-tests? #f ;; tests can't be run in parallel, yet. #:configure-flags (list (string-append "--with-libwiredtiger-prefix=" (assoc-ref %build-inputs "wiredtiger"))) @@ -1570,15 +1571,9 @@ trees (LSM), for sustained throughput under random insert workloads.") (modify-phases %standard-phases (add-after 'unpack 'bootstrap (lambda _ - (zero? (system* "sh" "bootstrap")))) - (add-before 'bootstrap 'remove-bundled-dependencies - (lambda _ - ;; TODO: Remove microkanren.scm when we have a separate package - ;; for it. - (delete-file "htmlprag.scm") - (substitute* "Makefile.am" - (("htmlprag\\.scm") "")) - #t))))) + (invoke "sh" "bootstrap")))))) + ;; TODO: Remove microkanren.scm when we have a separate package + ;; for it. (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -1588,10 +1583,10 @@ trees (LSM), for sustained throughput under random insert workloads.") ("guile" ,guile-2.2))) (propagated-inputs `(("guile-lib" ,guile-lib))) ;for (htmlprag) - (synopsis "Wired Tiger bindings for GNU Guile") + (synopsis "WiredTiger bindings for GNU Guile") (description "This package provides Guile bindings to the WiredTiger ``NoSQL'' -database.") +database. Various higher level database abstractions.") (home-page "https://framagit.org/a-guile-mind/guile-wiredtiger") (license license:gpl3+))) diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm index d96a88b4d1..81bc322335 100644 --- a/gnu/packages/dictionaries.scm +++ b/gnu/packages/dictionaries.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -150,14 +151,14 @@ work, such as sentence length and other readability measures.") (define-public ding (package (name "ding") - (version "1.8") + (version "1.8.1") (source (origin (method url-fetch) (uri (string-append "http://ftp.tu-chemnitz.de/pub/Local/urz/" name "/" name "-" version ".tar.gz")) (sha256 (base32 - "00z97ndwmzsgig9q6y98y8nbxy76pyi9qyj5qfpbbck24gakpz5l")))) + "0chjqs3z9zs1w3l7b5lsaj682rgnkf9kibcbzhggqqcn1pbvl5sq")))) (build-system gnu-build-system) (inputs `(("tk" ,tk))) (arguments diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 85b44fb6fb..987449aa02 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -443,34 +443,41 @@ served by AS112. Stub and forward zones are supported.") (define-public yadifa (package (name "yadifa") - (version "2.2.6") + (version "2.3.7") (source - (let ((build "7246")) + (let ((build "7543")) (origin (method url-fetch) (uri (string-append "http://cdn.yadifa.eu/sites/default/files/releases/" name "-" version "-" build ".tar.gz")) (sha256 - (base32 - "041a35f5jz2wcn8pxk1m7b2qln2wbvj4ddwb0a53lqabl912xi6p"))))) + (base32 "0j4zj7h72ni3bbqbm1632z0vx8b9fjdrn4n1yx4yyzkpchsipwff"))))) (build-system gnu-build-system) (native-inputs `(("which" ,which))) (inputs `(("openssl" ,openssl))) (arguments - `(#:phases (modify-phases %standard-phases - (add-before 'configure 'omit-example-configurations - (lambda _ - (substitute* "Makefile.in" - ((" (etc|var)") "")) - #t))) - #:configure-flags (list "--sysconfdir=/etc" "--localstatedir=/var" - "--enable-shared" "--disable-static" - "--enable-messages" "--enable-ctrl" - "--enable-nsec" "--enable-nsec3" - "--enable-tsig" "--enable-caching"))) + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'omit-example-configurations + (lambda _ + (substitute* "Makefile.in" + ((" (etc|var)") "")) + #t))) + #:configure-flags + (list "--sysconfdir=/etc" + "--localstatedir=/var" + "--disable-build-timestamp" ; build reproducibly + "--enable-shared" + "--disable-static" + "--enable-acl" + "--enable-caching" + "--enable-ctrl" ; enable remote control + "--enable-nsec" + "--enable-nsec3" + "--enable-tsig"))) (home-page "http://www.yadifa.eu/") (synopsis "Authoritative DNS name server") (description "YADIFA is an authoritative name server for the @dfn{Domain diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 553c5fa5ae..ceabc2a6c4 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 nee <nee.git@cock.li> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,7 +32,7 @@ (define-public elixir (package (name "elixir") - (version "1.5.2") + (version "1.5.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/elixir-lang/elixir" @@ -39,7 +40,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0v7z0avs3gir7qdfgysfw88l3z9p5f7p7pjnrnsz5gmmsflvf5vk")) + "0acnxfwvkx1m1d0h5z051mz95n35zm468hcvc3wpmn17c15h5ihg")) ;; FIXME: 27 tests (out of 4K) had to be disabled as ;; they fail in the build environment. Common failures ;; are: diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 81cdc29336..2885a589a6 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -31,7 +31,7 @@ ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org> -;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2017, 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1132,7 +1132,7 @@ as a library for other Emacs packages.") (define-public emacs-auctex (package (name "emacs-auctex") - (version "11.91.0") + (version "12.1.0") (source (origin (method url-fetch) @@ -1142,7 +1142,7 @@ as a library for other Emacs packages.") ".tar")) (sha256 (base32 - "1yh182mxgngjmwpkyv2n9km3vyq95bqfq8mnly3dbv78nwk7f2l3")))) + "0iy5x61xqkxaph2hq64sg50l1c6yp6qhzppwadayxkdz00b46sas")))) (build-system emacs-build-system) ;; We use 'emacs' because AUCTeX requires dbus at compile time ;; ('emacs-minimal' does not provide dbus). @@ -2332,27 +2332,29 @@ truncation.") (license license:gpl2+))) (define-public emacs-sr-speedbar - (package - (name "emacs-sr-speedbar") - (version "20140914.2339") - (source - (origin - (method url-fetch) - (uri (string-append - "https://github.com/emacsorphanage/sr-speedbar/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "15xwwc6kgvmk4wdhx1j8w6m6ivxvc94028ppgdpa2m51a8c9vjm9")))) - (build-system emacs-build-system) - (home-page "https://www.emacswiki.org/emacs/SrSpeedbar") - (synopsis "Same frame Emacs @code{speedbar}") - (description - "This Emacs package allows you to show @code{M-x speedbar} in the + (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47") + (revision "0")) + (package + (name "emacs-sr-speedbar") + (version (git-version "20161025" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacsorphanage/sr-speedbar.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/SrSpeedbar") + (synopsis "Same frame Emacs @code{speedbar}") + (description + "This Emacs package allows you to show @code{M-x speedbar} in the same frame (in an extra window). You can customize the initial width of the speedbar window.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-shell-switcher (package @@ -6635,3 +6637,27 @@ mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim features and provides Vim-like key bindings.") (license license:gpl3+))) + +(define-public emacs-bongo + (package + (name "emacs-bongo") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/dbrock/bongo/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d")))) + (build-system emacs-build-system) + (home-page "https://github.com/dbrock/bongo") + (synopsis "Media player for Emacs") + (description + "This package provides a flexible media player for Emacs. @code{Bongo} +supports multiple backends such as @code{vlc}, @code{mpg123}, +@code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and +@code{afplay}.") + (license license:gpl2+))) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index dbd3c5e4f1..cf8df310b0 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -559,10 +559,11 @@ as well as pick-place files.") (license license:gpl2+))) (define-public ao - (let ((commit "0bc2354b8dcd1a82a0fd6647706b126045e52734")) + (let ((commit "fb288c945aa7e30d9be10a564edad7e1b6a6c1ae") + (revision "1")) (package (name "ao-cad") ;XXX: really "ao", but it collides with libao - (version (string-append "0." (string-take commit 7))) + (version (git-version "0" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -570,8 +571,9 @@ as well as pick-place files.") (commit commit))) (sha256 (base32 - "0lm7iljklafs8dhlvaab2yhwx4xymrdjrqk9c5xvn59hlvbgl1j5")) - (file-name (string-append name "-" version "-checkout")) + "0syplfqiq7ng7md44yriq5cz41jp8q9z3pl2iwkkllds6p9ylyal")) + (file-name (git-file-name name version)) + (patches (search-patches "ao-cad-aarch64-support.patch")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries: Eigen, glm, and catch. TODO: @@ -594,6 +596,10 @@ as well as pick-place files.") #:phases (modify-phases %standard-phases + (add-after 'unpack 'remove-native-compilation + (lambda _ + (substitute* "CMakeLists.txt" (("-march=native") "")) + #t)) (add-before 'build 'add-eigen-to-search-path (lambda* (#:key inputs #:allow-other-keys) ;; Allow things to find our own Eigen and Catch. @@ -615,16 +621,12 @@ as well as pick-place files.") (with-directory-excursion ,(string-append "../" name "-" version "-checkout") - (substitute* "bind/guile/ao/bind.scm" + (substitute* "bind/guile/ao/sys/libao.scm" (("\\(define libao \\(dynamic-link .*$") (string-append "(define libao (dynamic-link \"" out "/lib/libao\")) ;"))) - (for-each (lambda (file) - (install-file file - (string-append moddir - "/ao"))) - (find-files "bind/guile" "\\.scm$")) + (copy-recursively "bind/guile/ao" (string-append moddir "/ao")) (substitute* "bin/ao-guile" (("\\(add-to-load-path .*") diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 8d2b734d92..ce0172be06 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -6,6 +6,8 @@ ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> +;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +31,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (guix build-system python) + #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages check) @@ -130,7 +133,9 @@ line client and a client based on Qt.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "12jlv3gsjhrja25q9hrwh73cdacd2l3c2yyn8qnijav9mdhnbw4h")))) + "12jlv3gsjhrja25q9hrwh73cdacd2l3c2yyn8qnijav9mdhnbw4h")) + (patches (search-patches "ledger-revert-boost-python-fix.patch" + "ledger-fix-uninitialized.patch")))) (build-system cmake-build-system) (arguments `(#:modules ((guix build cmake-build-system) @@ -218,7 +223,7 @@ in ability, and easy to use.") (define-public geierlein (package (name "geierlein") - (version "0.9.5") + (version "0.9.13") (source (origin (method url-fetch) @@ -227,13 +232,13 @@ in ability, and easy to use.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0b11fq8v5w8nxjb20jl4dsfhv76xky6n3sq3k3fbb0m2sq9ikikw")))) + "11jfa7mxvvf0ldhx0hsvjbx3xwvzvn2wrfjpms8c7qmrnqhwh4wp")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; would require npm, python and a lot more #:phases (modify-phases %standard-phases - (delete 'configure) + (delete 'configure) ; no configure script (add-after 'unpack 'override-target-directory-and-tool-paths (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* "Makefile" @@ -252,7 +257,7 @@ in ability, and easy to use.") #t))))) (inputs `(("icecat" ,icecat))) - (home-page "http://stesie.github.io/geierlein/") + (home-page "https://stesie.github.io/geierlein/") (synopsis "Free Elster client, for sending Germany VAT declarations") (description "Geierlein is a free Elster client, i.e. an application that @@ -268,7 +273,7 @@ do so.") (define-public electrum (package (name "electrum") - (version "3.0") + (version "3.0.5") (source (origin (method url-fetch) @@ -277,7 +282,7 @@ do so.") version ".tar.gz")) (sha256 (base32 - "184cmpfqcznnm0wfjiarb6dps2vs0s2aykmy2ji7p77x20fbisfi")) + "06z0a5p1jg93jialphslip8d72q9yg3651qqaf494gs3h9kw1sv1")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index e015fcbc36..5d8493b328 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -76,7 +77,7 @@ (define-public xdg-utils (package (name "xdg-utils") - (version "1.1.1") + (version "1.1.2") (source (origin (method url-fetch) @@ -85,7 +86,7 @@ version ".tar.gz")) (sha256 (base32 - "09a1pk3ifsndc5qz2kcd1557i137gpgnv3d739pv22vfayi67pdh")))) + "1k4b4m3aiyqn9k12a0ihcdahzlspl3zhskmm1d7228dvqvi546cm")))) (build-system gnu-build-system) (native-inputs `(("docbook-xsl" ,docbook-xsl) diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index 9f4e4fc1c3..340489f7e5 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; ;;; This file is part of GNU Guix. @@ -173,7 +173,7 @@ as required.") (define-public libfilezilla (package (name "libfilezilla") - (version "0.11.1") + (version "0.11.2") (source (origin (method url-fetch) @@ -181,7 +181,7 @@ as required.") name "/" name "-" version ".tar.bz2")) (sha256 (base32 - "1xv4is3zaz66h6iblj9pikapsjasjcbxx31bhkgn62xdq1sadfpc")))) + "0wl42yxrha633dbh1vcbhrpsd7sv4zwskbmlpx549ygnzi39krcn")))) (build-system gnu-build-system) (native-inputs `(("cppunit" ,cppunit) @@ -190,13 +190,27 @@ as required.") (synopsis "Cross-platform C++ library used by Filezilla client") (description "This package provides some basic functionality to build high-performing, -platform-independent programs.") +platform-independent programs. + +Some of the highlights include: +@itemize +@item +A type-safe, multi-threaded event system that's simple to use yet efficient. +@item +Timers for periodic events. +@item +A @code{datetime} class that not only tracks timestamp but also their accuracy, +which simplifies dealing with timestamps originating from different sources. +@item +Simple process handling for spawning child processes with redirected input and +output. +@end itemize\n") (license gpl2+))) (define-public filezilla (package (name "filezilla") - (version "3.27.1") + (version "3.29.0") (source (origin (method url-fetch) @@ -205,7 +219,7 @@ platform-independent programs.") "/FileZilla_" version "_src" ".tar.bz2")) (sha256 (base32 - "14lsplbp9fy7lk6cpwi3aj6jskz4j82h67x0fik82z1bns0zm2a3")))) + "0najf2w6p5j4qc8jmglx6j63mph749s5p90lz2nkmwwwy5sfvlga")))) (build-system gnu-build-system) (arguments ;; Don't let filezilla phone home to check for updates. diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 8d0db5ee4f..058b87d3fe 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -4682,7 +4682,7 @@ fish. The whole game is accompanied by quiet, comforting music.") (define-public crawl (package (name "crawl") - (version "0.20.1") + (version "0.21.0") (source (origin (method url-fetch) @@ -4696,7 +4696,7 @@ fish. The whole game is accompanied by quiet, comforting music.") version "-nodeps.tar.xz"))) (sha256 (base32 - "0cagx7687r5ln7pmzl60akjhjpyqd62z9zhfr2mqfk53wl9jbsbj")) + "0mmnkch8s9l7dh136yjvcyjr0vmyzv7z370rlcyir91qz6gg82n1")) (patches (search-patches "crawl-upgrade-saves.patch")))) (build-system gnu-build-system) (inputs diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 70926263c0..377a4cc537 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -24,11 +24,11 @@ ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> -;;; Copyright © 2017 nee <nee-git@hidamari.blue> +;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue> ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org> ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org> -;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> +;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -142,6 +142,7 @@ #:use-module (gnu packages readline) #:use-module (gnu packages fonts) #:use-module (gnu packages speech) + #:use-module (gnu packages version-control) #:use-module (gnu packages virtualization) #:use-module (gnu packages vpn) #:use-module (gnu packages xorg) @@ -4825,7 +4826,7 @@ window manager.") (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.24.3") + (version "3.26.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4833,7 +4834,7 @@ window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "0m1qf2ffxzmwxa157lrvh3507d5gr3lg4kvj653zhcihjpmmhbi5")))) + "1l8p1ghknmkmjpnpl7jr53j66qbzpikickzbmrz0aczyhq6pdy29")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. @@ -4849,7 +4850,6 @@ window manager.") ("json-glib" ,json-glib) ("libsecret" ,libsecret) ("rest" ,rest) - ("telepathy-glib" ,telepathy-glib) ("webkitgtk" ,webkitgtk))) (synopsis "Single sign-on framework for GNOME") (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts") @@ -5245,7 +5245,7 @@ libxml2.") (define-public gdm (package (name "gdm") - (version "3.24.2") + (version "3.26.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5253,7 +5253,7 @@ libxml2.") name "-" version ".tar.xz")) (sha256 (base32 - "1s2xzrwcjhfb4ra8jrxqfycs1jpv97id0f6idb2h6vjkspxbjy23")))) + "0mxdal6hh345xk2xqmw5192jgpprkbcv1d4bwmnl4arcc00cpp8p")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags @@ -7090,3 +7090,43 @@ photo-booth-like software, such as Cheese.") "Cheese uses your webcam to take photos and videos. Cheese can also apply fancy special effects and lets you share the fun with others.") (license license:gpl2+))) + +(define-public sound-juicer + (package + (name "sound-juicer") + (version "3.24.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("desktop-file-utils" ,desktop-file-utils) + ("intltool" ,intltool) + ("itstool" ,itstool) + ("pkg-config" ,pkg-config) + ("xmllint" ,libxml2))) + (inputs + `(("gtk+" ,gtk+) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ("gst-plugins-good" ,gst-plugins-good) + ("iso-codes" ,iso-codes) + ("libbrasero-media3" ,brasero) + ("libcanberra" ,libcanberra) + ("libdiscid" ,libdiscid) + ("libmusicbrainz" ,libmusicbrainz) + ("neon" ,neon))) + (home-page "https://wiki.gnome.org/Apps/SoundJuicer") + (synopsis "Audio music cd ripper") + (description "Sound Juicer extracts audio from compact discs and convert it +into audio files that a personal computer or digital audio player can play. +It supports ripping to any audio codec supported by a GStreamer plugin, such as +mp3, Ogg Vorbis and FLAC") + (license license:gpl2+))) diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 89a0682378..25200e3f99 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -47,15 +47,15 @@ (define-public gnucash (package (name "gnucash") - (version "2.6.18") + (version "2.6.19") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/" - version "/gnucash-" version "-1.tar.bz2")) + version "/gnucash-" version ".tar.bz2")) (sha256 (base32 - "1794qi7lkn1kbnhzk08wawacfcphbln3ngdl3q0qax5drv7hnwv8")) + "1lbz7ygqlxbndxir5ay59bmmrqv9qvc6pgb5jwgdbhkf4ikr7f2h")) (patches (search-patches "gnucash-price-quotes-perl.patch")))) (build-system glib-or-gtk-build-system) (inputs @@ -142,7 +142,7 @@ financial calculations or scheduled transactions.") version "/gnucash-docs-" version ".tar.gz")) (sha256 (base32 - "0bzc7mvdba2sc8m61yxa1fp2liqs00b64dvfxhv854vdrl1z5vmb")))) + "1ix99d5c1ppamn5ajamjfxpx6l25bv81nkg777rp1sl0glaib116")))) (build-system gnu-build-system) ;; These are native-inputs because they are only required for building the ;; documentation. diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 2e96ec26af..61f20a4fd0 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -510,7 +510,11 @@ security standards.") (mozilla-patch "icecat-bug-1412145.patch" "66cfc3c4047d" "05j8ic4lv2d2ygr6d62rkdlfyg2rpljalwrkkhllinw2dfi3n15b") (mozilla-patch "icecat-bug-1399400.patch" "3236ffdf0ced" "1kvk4qyslaj1ldgs1wpxnf79zajcihzcd1zvbrg990i3hgyn3gk3") (mozilla-patch "icecat-bug-1424373-pt1.patch" "320032aaa068" "1ch282qibprz1q0f2imvynh4sg7gads6sf3ayhjcd62zjncpgyz7") - (search-patch "icecat-bug-1424373-pt2.patch"))) + (search-patch "icecat-bug-1424373-pt2.patch") + (mozilla-patch "icecat-bug-1412420.patch" "c2945f1249eb" "18p0344w6grpyfiz8dczfw977p0qy37iqv95whgnrjli2ab51kji") + (mozilla-patch "icecat-bug-1395508-pt1.patch" "263165eacc54" "0518xnd9f4qkn7l0z73kldm9dr33y6hf054ril4f8r2j8s9fy33i") + (mozilla-patch "icecat-bug-1395508-pt2.patch" "58e87d9cc44e" "0j9qwjm25bmhw0sj426yl4fqaa6zknf5cjk0yisdd3895652n5i4") + (search-patch "icecat-bug-1427870-spectre-mitigation.patch"))) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 00d9093669..e344a74308 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -13,10 +13,10 @@ ;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org> -;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is> -;;; Coypright © 2017 Roel Janssen <roel@gnu.org> -;;; Coypright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Coypright © 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> +;;; Copyright © 2017 Roel Janssen <roel@gnu.org> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1413,14 +1413,14 @@ glass artworks done by Venicians glass blowers.") (define-public gtkspell3 (package (name "gtkspell3") - (version "3.0.8") + (version "3.0.9") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gtkspell/" - version "/" name "-" version ".tar.gz")) + version "/" name "-" version ".tar.xz")) (sha256 (base32 - "1zrz5pz4ryvcssk898liynmy2wyxgj95ak7mp2jv7x62yzihq6h1")))) + "09jdicmpipmj4v84gnkqwbmj4lh8v0i6pn967rb9jx4zg2ia9x54")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index cf87688627..17862dc7da 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1718,90 +1718,18 @@ is no support for parsing block and inline level HTML.") (define-public guile-bytestructures (package (name "guile-bytestructures") - (version "20170402.91d042e") + (version "1.0.1") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/TaylanUB/scheme-bytestructures") - (commit "91d042e3427e1d7740b604b6296c616cf2eec13d"))) - (file-name (string-append name "-" version "-checkout")) + (method url-fetch) + (uri (string-append "https://github.com/TaylanUB/scheme-bytestructures" + "/releases/download/v" version + "/bytestructures-" version ".tar.gz")) (sha256 (base32 - "04lgh0nk6ddnwgh20hnz4pyhczaik0xbd50kikjsxcwcl46shavb")) - (patches (search-patches "guile-bytestructures-name-clash.patch")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils) - (ice-9 ftw) - (ice-9 match) - (ice-9 popen) - (ice-9 rdelim)) - ;; Unpack. - (setenv "PATH" - (string-join (list (assoc-ref %build-inputs "tar") - (assoc-ref %build-inputs "xz")) - "/bin:" 'suffix)) - (system* "tar" "xf" (assoc-ref %build-inputs "source")) - (match (scandir ".") - (("." ".." directory) - (chdir directory))) - - (let* ((out (assoc-ref %outputs "out")) - (guile (assoc-ref %build-inputs "guile")) - (effective (read-line - (open-pipe* OPEN_READ - (string-append guile "/bin/guile") - "-c" "(display (effective-version))"))) - (module-dir (string-append out "/share/guile/site/" - effective)) - (object-dir (string-append out "/lib/guile/" effective - "/site-ccache")) - (source (getcwd)) - (doc (string-append out "/share/doc/scheme-bytestructures")) - (sld-files (with-directory-excursion source - (find-files "bytestructures/r7" "\\.exports.sld$"))) - (scm-files (filter (lambda (path) - (not (string-prefix? "bytestructures/r7" path))) - (with-directory-excursion source - (find-files "bytestructures" "\\.scm$")))) - (guild (string-append (assoc-ref %build-inputs "guile") - "/bin/guild"))) - ;; Make installation directories. - (mkdir-p doc) - - ;; Compile .scm files and install. - (chdir source) - (setenv "GUILE_AUTO_COMPILE" "0") - (for-each (lambda (file) - (let* ((dest-file (string-append module-dir "/" - file)) - (go-file (string-append object-dir "/" - (substring file 0 - (string-rindex file #\.)) - ".go"))) - ;; Install source module. - (mkdir-p (dirname dest-file)) - (copy-file file dest-file) - - ;; Install compiled module. - (mkdir-p (dirname go-file)) - (unless (zero? (system* guild "compile" - "-L" source - "-o" go-file - file)) - (error (format #f "Failed to compile ~s to ~s!" - file go-file))))) - (append sld-files scm-files)) - - ;; Also copy over the README. - (install-file "README.md" doc) - #t)))) + "1lnfcy65mqj823lamy2n2vaghdz0g7mj011bgnhmd6hwpnaidnh2")))) + (build-system gnu-build-system) (native-inputs - `(("tar" ,tar) - ("xz" ,xz))) + `(("pkg-config" ,pkg-config))) (inputs `(("guile" ,guile-2.2))) (home-page "https://github.com/TaylanUB/scheme-bytestructures") diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm index 6bcf6c9589..45041c3698 100644 --- a/gnu/packages/haskell-check.scm +++ b/gnu/packages/haskell-check.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -343,17 +343,16 @@ provided by the Haskell Platform.") (define-public ghc-quickcheck-unicode (package (name "ghc-quickcheck-unicode") - (version "1.0.0.1") + (version "1.0.1.0") (source (origin (method url-fetch) (uri (string-append - "https://hackage.haskell.org/package/quickcheck-unicode/quickcheck-unicode-" - version - ".tar.gz")) + "https://hackage.haskell.org/package/quickcheck-unicode/" + "quickcheck-unicode-" version ".tar.gz")) (sha256 (base32 - "1a8nl6x7l9b22yx61wm0bh2n1xzb1hd5i5zgg1w4fpaivjnrrhi4")))) + "0s43s1bzbg3gwsjgm7fpyksd1339f0m26dlw2famxwyzgvm0a80k")))) (build-system haskell-build-system) (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) (home-page diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 68172d8a91..7fb8213048 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -6306,16 +6306,16 @@ testing strategies.") (define ghc-chell-quickcheck-bootstrap (package (name "ghc-chell-quickcheck-bootstrap") - (version "0.2.5") + (version "0.2.5.1") (source (origin (method url-fetch) (uri (string-append - "https://hackage.haskell.org/package/chell-quickcheck/chell-quickcheck-" - version ".tar.gz")) + "https://hackage.haskell.org/package/chell-quickcheck/" + "chell-quickcheck-" version ".tar.gz")) (sha256 (base32 - "02bkcnx5k6r5csdnnkvk4wfd0l36nxb87i1463ynw17n7ym9s4cs")))) + "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a")))) (build-system haskell-build-system) (inputs `(("ghc-chell" ,ghc-chell) @@ -6331,16 +6331,16 @@ testing strategies.") (define-public ghc-chell-quickcheck (package (name "ghc-chell-quickcheck") - (version "0.2.5") + (version "0.2.5.1") (source (origin (method url-fetch) (uri (string-append - "https://hackage.haskell.org/package/chell-quickcheck/chell-quickcheck-" - version ".tar.gz")) + "https://hackage.haskell.org/package/chell-quickcheck/" + "chell-quickcheck-" version ".tar.gz")) (sha256 (base32 - "02bkcnx5k6r5csdnnkvk4wfd0l36nxb87i1463ynw17n7ym9s4cs")))) + "1iicsys9igx7m7n4l2b8djardmjy2ah5ibzp7kzs758h460fq53a")))) (build-system haskell-build-system) (inputs `(("ghc-chell" ,ghc-chell) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index f4eac49ea5..bb1b973145 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -56,7 +56,7 @@ (define-public feh (package (name "feh") - (version "2.22.2") + (version "2.23") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -64,7 +64,7 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "1kcflv4jb4250g94nqn28i98xqvvci8w7vqpfr62gxlp16z1za05")))) + "18922zv8ckm82r1ap1yn7plbk6djpj02za2ahng58sjj2fw3rpqn")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index 4c68af0088..f1a3cb23f4 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,7 +46,7 @@ (define-public inkscape (package (name "inkscape") - (version "0.92.1") + (version "0.92.2") (source (origin (method url-fetch) (uri (string-append "https://media.inkscape.org/dl/" @@ -63,7 +64,7 @@ "0wwyhkqb1qyazz5f6wqrc223l6k8qnmadiw28q8gihlgvh38rvll"))))) (sha256 (base32 - "01chr3vh728dkg7l7lilwgmh5nrp784khdhjgpqjbq9dh2zhax15")))) + "1lyghk6yarcv9nwkh6k366p6hb7rfilqcvbyji09hki59khd0a56")))) (build-system cmake-build-system) (inputs `(("aspell" ,aspell) @@ -87,7 +88,7 @@ ("pkg-config" ,pkg-config))) ;; FIXME: tests require gmock (arguments `(#:tests? #f)) - (home-page "http://inkscape.org/") + (home-page "https://inkscape.org/") (synopsis "Vector graphics editor") (description "Inkscape is a vector graphics editor. What sets Inkscape apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard, diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index f367032fe5..ce2ec3c0f6 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -115,7 +115,7 @@ irssi, but graphical.") (define-public irssi (package (name "irssi") - (version "1.0.5") + (version "1.0.6") (source (origin (method url-fetch) (uri (string-append "https://github.com/irssi/irssi/" @@ -123,7 +123,7 @@ irssi, but graphical.") version ".tar.xz")) (sha256 (base32 - "055r9fhbfcfkzinsnprnlqd8psspdyn3j26lzsmnrc1fw4kn8mf2")))) + "11c5vrwz525ld3478p81hngnv9aw0cd4xvfqcrr7ycxz7r7qi7h2")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/iso-codes.scm b/gnu/packages/iso-codes.scm index 801b22afce..ccd07706c5 100644 --- a/gnu/packages/iso-codes.scm +++ b/gnu/packages/iso-codes.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,7 +19,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages iso-codes) - #:use-module ((guix licenses) #:select (gpl2+)) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -29,7 +30,7 @@ (define-public iso-codes (package (name "iso-codes") - (version "3.76") + (version "3.77") (source (origin (method url-fetch) (uri (string-append @@ -37,7 +38,7 @@ version ".tar.xz")) (sha256 (base32 - "1i40shd6v4nh4lkv1c1a5qm9jmf17316bv03jr65nzf0wwfqrsiq")))) + "140dgygv22a49xb8x1941xr5ff12cphd9zzwxds98pgrqsj77k91")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) @@ -62,5 +63,4 @@ translations instead of maintaining their own translation infrastructure. Moreover, the programmer does not need to follow changes in the ISO standard and will not work with outdated information.") - ; Some bits use the lgpl2 - (license gpl2+))) + (license license:gpl2+))) ; some bits use the lgpl2 diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index 144311ceaa..e4301c5208 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -250,14 +251,14 @@ implementing @code{javax.usb} (JSR-80).") (define-public libmtp (package (name "libmtp") - (version "1.1.13") + (version "1.1.14") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/libmtp/libmtp/" version "/libmtp-" version ".tar.gz")) (sha256 (base32 - "0h3dv9py5mmvxhfxmkr8ky4s80hgq3d66cmrfnnnlcdwpwpy0kj9")))) + "1s0jyhypxmj0j8s003ba1n74x63h1rw8am9q4z2ip3xyjvid65rq")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6390697b90..5427a1feea 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2,12 +2,12 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> -;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org> -;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> @@ -15,7 +15,7 @@ ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> -;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com> ;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> @@ -370,8 +370,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) (define %linux-compatible-systems '("x86_64-linux" "i686-linux" "armhf-linux")) -(define %linux-libre-version "4.14.11") -(define %linux-libre-hash "09q968iv4cbr0gby8pispxabraf2mkzbsx9y2rif4n2ykmxwx4wg") +(define %linux-libre-version "4.14.13") +(define %linux-libre-hash "1a1wkl4xn2jsjvdnszv5gmg794waiir6x178q85qykninfbigfzx") ;; linux-libre configuration for armhf-linux is derived from Debian armmp. It ;; supports qemu "virt" machine and possibly a large number of ARM boards. @@ -384,14 +384,14 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.74" - "1xavyjj1ajg1nb6iy75ih1k2rwcfx09vjav1a69r0vq4q140qsfc" + (make-linux-libre "4.9.76" + "1ms026dp8r1cv8rbc98nfc331xggwdz1dafv89ack8d80qrhg1y1" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.109" - "1yn0vzvh8g26zgmblr92krcik18c0290mqdba5lbz7sd29jbhvzn" + (make-linux-libre "4.4.111" + "1yxii8csdxpxbspbz5gd768zjzfv9x0h22hdk8dbw4c9nq09z0zc" %intel-compatible-systems #:configuration-file kernel-config)) @@ -2337,6 +2337,28 @@ you to access information from temperature, voltage, and fan speed sensors. It works with most newer systems.") (license license:gpl2+))) +(define-public iucode-tool + (package + (name "iucode-tool") + (version "2.2") + (source (origin + (method url-fetch) + (uri (string-append "https://gitlab.com/iucode-tool/releases" + "/raw/latest/iucode-tool_" version ".tar.xz")) + (sha256 + (base32 + "0w99k1aq1xw148ffk1xykqf60rdbphb1jknw98jcmadq4pwxl44q")))) + (build-system gnu-build-system) + (home-page "https://gitlab.com/iucode-tool/iucode-tool/wikis/home") + (synopsis "Manipulate Intel microcode bundles") + (description + "@command{iucode_tool} is a utility to work with microcode packages for +Intel processors. It can convert between formats, extract specific versions, +create a firmware image suitable for the Linux kernel, and more.") + ;; cpuid.h is available for i686, x86_64, and ia64. + (supported-systems '("i686-linux" "x86_64-linux")) + (license license:gpl2+))) + (define-public i2c-tools (package (name "i2c-tools") @@ -2486,14 +2508,14 @@ thanks to the use of namespaces.") (define-public hdparm (package (name "hdparm") - (version "9.52") + (version "9.53") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version ".tar.gz")) (sha256 (base32 - "1djgxhfadd865dcrl6dp7dvjxpaisy7mk17mbdbglwg24ga9qhn3")))) + "1rb5086gp4l1h1fn2nk10ziqxjxigsd0c1zczahwc5k9vy8zawr6")))) (build-system gnu-build-system) (arguments `(#:make-flags (let ((out (assoc-ref %outputs "out"))) @@ -2515,8 +2537,8 @@ performance benchmarking tool. @command{hdparm} provides a command line interface to various Linux kernel interfaces provided by the SATA/ATA/SAS @code{libata} subsystem, and the older -IDE driver subsystem. Many external USB drive enclosures with @dfn{SCSI-ATA -Command Translation} (SAT) are also supported.") +IDE driver subsystem. Many external USB drive enclosures with SCSI-ATA Command +Translation (@dfn{SAT}) are also supported.") (license (license:non-copyleft "file://LICENSE.TXT")))) (define-public rfkill @@ -3085,7 +3107,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.14") + (version "4.14.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -3093,7 +3115,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "1bwirg6hz6gyfj5r3xkj4lfwadvl9pxlccf916fsmdn27fy5q289")))) + "1palnddw3d50kyflwk1j4xapbc6jniid6j5i9dsr8l8a7nkv7ich")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index 6f9056d8f2..27557e1b1b 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -2,6 +2,8 @@ ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> +;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,7 +38,7 @@ (define-public log4cpp (package (name "log4cpp") - (version "1.1.1") + (version "1.1.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/log4cpp/log4cpp-" @@ -45,7 +47,7 @@ "/log4cpp-" version ".tar.gz")) (sha256 (base32 - "1l5yz5rfzzv6g3ynrj14mxfsk08cp5h1ssr7d74hjs0accrg7arm")))) + "07gmr3jyaf2239n9sp6h7hwdz1pv7b7aka8n06gmr2fnlmaymfrc")))) (build-system gnu-build-system) (synopsis "Log library for C++") (description @@ -84,7 +86,14 @@ staying as close to their API as is reasonable.") ;; mismatch, so run the whole thing. (delete-file "test-driver") (delete-file "configure") ;it's read-only - (zero? (system* "autoreconf" "-vfi"))))))) + (zero? (system* "autoreconf" "-vfi")))) + (add-before 'check 'disable-signal-tests + (lambda _ + ;; See e.g. https://github.com/google/glog/issues/219 + ;; and https://github.com/google/glog/issues/256 + (substitute* "Makefile" + (("\tsignalhandler_unittest_sh") "\t$(EMPTY)")) + #t))))) (synopsis "C++ logging library") (description "Google glog is a library that implements application-level logging. diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 3fd1c43d4a..b375ff90c3 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016 doncatnip <gnopap@gmail.com> ;;; Copyright © 2016, 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org> +;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,8 +29,11 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) + #:use-module (guix build utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) #:use-module (gnu packages) #:use-module (gnu packages readline) #:use-module (gnu packages tls) @@ -434,3 +438,59 @@ on numbers.") (define-public lua5.1-bitop (make-lua-bitop "lua5.1-bitop" lua-5.1)) + +(define-public selene + (package + (name "selene") + (version "2017.08.25") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jeremyong/Selene.git") + ;; The release is quite old. + (commit "ffe1ade2568d4cff5894552be8f43e63e379a4c9"))) + (file-name "Selene") + (sha256 + (base32 + "1axrgv3rxxdsaf807lwvklfzicn6x6gpf35narllrnz9lg6hn508")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + ;; lua pc file in CMakeLists.txt is lua5.3.pc + '("-DLUA_PC_CFG=lua;lua-5.3;lua-5.1") + #:test-target "all" + #:phases + ;; This is a header only library + (modify-phases %standard-phases + (delete 'build) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((output (assoc-ref outputs "out")) + (source (assoc-ref inputs "source")) + (includedir (string-append output "/include"))) + (copy-recursively + (string-append source "/include") + includedir)) + #t)) + ;; The path of test files are hard coded. + (replace 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((output (assoc-ref outputs "out")) + (source (assoc-ref inputs "source")) + (builddir (getcwd)) + (testdir (string-append builddir "/test"))) + (copy-recursively (string-append source "/test") testdir) + (invoke "make") + (mkdir-p "runner") + (copy-file "./test_runner" "./runner/test_runner") + (chdir "./runner") + (invoke "./test_runner"))))))) + (native-inputs + `(("lua" ,lua) + ("pkg-config" ,pkg-config))) + (home-page "https://github.com/jeremyong/Selene") + (synopsis "Lua C++11 bindings") + (description + "Selene is a simple C++11 header-only library enabling seamless + interoperability between C++ and Lua programming language.") + (license license:zlib))) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 354121f81a..e45c1ae3d3 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,24 +53,22 @@ (define-public libsvm (package (name "libsvm") - (version "3.20") + (version "3.22") (source (origin (method url-fetch) - (uri (string-append - "https://github.com/cjlin1/libsvm/archive/v" - (string-delete #\. version) ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append "https://www.csie.ntu.edu.tw/~cjlin/libsvm/" + name "-" version ".tar.gz")) (sha256 (base32 - "1jpjlql3frjza7zxzrqqr2firh44fjb8fqsdmvz6bjz7sb47zgp4")))) + "0zd7s19y5vb7agczl6456bn45cj1y64739sslaskw1qk7dywd0bd")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target #:phases (modify-phases %standard-phases (delete 'configure) (replace - 'install + 'install ; no ‘install’ target (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin/"))) @@ -100,7 +99,7 @@ classification.") (modify-phases %standard-phases (delete 'configure) (replace - 'install + 'install ; no ‘install’ target (lambda* (#:key inputs outputs #:allow-other-keys) (let ((site (string-append (assoc-ref outputs "out") "/lib/python" diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 3cfa7baebd..c415e85552 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -693,14 +693,14 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.25.3") + (version "0.26") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.gz")) (sha256 (base32 - "1fyx20rjpwbf2j1v5fpa5s0rjnwhcgvijzh2qyinp8rlbh1qxmab")))) + "1pvn1n7giv8n3xlazi3wpscdqhd2yak0fgv68aj23myr5bnr9s6k")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 5b6c87992a..16177a0b50 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> -;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -76,8 +76,8 @@ extensive examples, including parsers for the Javascript and C99 languages.") ("nyacc" ,nyacc))) (native-inputs `(("guile" ,guile-2.2) - ,@(if (string-prefix? "x86_64-linux" (or (%current-target-system) - (%current-system))) + ,@(if (not (string-prefix? "i686-linux" (or (%current-target-system) + (%current-system)))) ;; Use cross-compiler rather than #:system "i686-linux" to get ;; MesCC 64 bit .go files installed ready for use with Guile. `(("i686-linux-binutils" ,(cross-binutils triplet)) diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index c136265c52..f178232cc3 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system perl) #:use-module (guix build-system gnu) + #:use-module (gnu packages admin) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages gd) @@ -122,3 +124,35 @@ etc. via a Web interface. Features include: notification and problem history, log file, etc. @end itemize\n") (license license:gpl2))) + +(define-public darkstat + (package + (name "darkstat") + (version "3.0.719") + (source (origin + (method url-fetch) + (uri (string-append "https://unix4lyfe.org/darkstat/darkstat-" + version ".tar.bz2")) + (sha256 + (base32 + "1mzddlim6dhd7jhr4smh0n2fa511nvyjhlx76b03vx7phnar1bxf")))) + (build-system gnu-build-system) + (arguments '(#:tests? #f)) ; no tests + (inputs + `(("libpcap" ,libpcap) + ("zlib" ,zlib))) + (home-page "https://unix4lyfe.org/darkstat/") + (synopsis "Network statistics gatherer") + (description + "@command{darkstat} is a packet sniffer that runs as a background process, +gathers all sorts of statistics about network usage, and serves them over +HTTP. Features: + +@itemize +@item Traffic graphs, reports per host, shows ports for each host. +@item Embedded web-server with deflate compression. +@item Asynchronous reverse DNS resolution using a child process. +@item Small. Portable. Single-threaded. Efficient. +@item Supports IPv6. +@end itemize") + (license license:gpl2))) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index fbb924ba51..38467a94cc 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -362,12 +362,6 @@ use with CD-recording software).") (base32 "07nsn5sy3a8xbmw1bidxnsj5fj6kg9ai04icmqw40ybkp353dznx")))) (build-system gnu-build-system) - ;; XXX FIXME: Use gcc-4.8 on i686 to work around - ;; <http://bugs.gnu.org/20856>. - (native-inputs (if (and (not (%current-target-system)) - (string-prefix? "i686-" (%current-system))) - `(("gcc" ,(canonical-package gcc-4.8))) - '())) (home-page "http://lame.sourceforge.net/") (synopsis "MPEG Audio Layer III (MP3) encoder") (description "LAME is a high quality MPEG Audio Layer III (MP3) encoder.") diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 5b8728e591..b7dc7d9aaa 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2016 Al McElrath <hello@yrns.org> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> @@ -13,7 +13,8 @@ ;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 nee <nee.git@hidamari.blue> ;;; ;;; This file is part of GNU Guix. ;;; @@ -113,6 +114,7 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages tex) #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages wxwidgets) @@ -1266,7 +1268,7 @@ users to select LV2 plugins and run them with jalv.") (define-public synthv1 (package (name "synthv1") - (version "0.8.5") + (version "0.8.6") (source (origin (method url-fetch) (uri @@ -1274,7 +1276,7 @@ users to select LV2 plugins and run them with jalv.") "/synthv1-" version ".tar.gz")) (sha256 (base32 - "0mvrqk6jy7h2wg442ixwm49w7x15rs4066c2ljrz4kvxlzp5z69i")))) + "141ah1gnv5r2k846v5ay15q9q90h01p74240a56vlxqh20z43g92")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1300,7 +1302,7 @@ oscillators and stereo effects.") (define-public drumkv1 (package (name "drumkv1") - (version "0.8.5") + (version "0.8.6") (source (origin (method url-fetch) (uri @@ -1308,7 +1310,7 @@ oscillators and stereo effects.") "/drumkv1-" version ".tar.gz")) (sha256 (base32 - "06xqqm1ylmpp2s7xk7xav325gc50kxlvh9vf1343b0n3i8xkgjfg")))) + "0fwxrfyp15a4m77mzz4mwj36mhdrj646whlrkvcys33p2w75f8cq")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1335,7 +1337,7 @@ effects.") (define-public samplv1 (package (name "samplv1") - (version "0.8.5") + (version "0.8.6") (source (origin (method url-fetch) (uri @@ -1343,7 +1345,7 @@ effects.") "/samplv1-" version ".tar.gz")) (sha256 (base32 - "1gscwybsbaqbnylmgf2baf71cm2g7a0pd11rqmk3cz9hi3lyjric")))) + "035bq7yfg1yirsqk63zwkzjw9dxl52lrzq9y0w7nga0vb11xdfij")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1367,6 +1369,42 @@ effects.") effects.") (license license:gpl2+))) +(define-public padthv1 + (package + (name "padthv1") + (version "0.8.6") + (source (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/padthv1/padthv1/" version + "/padthv1-" version ".tar.gz")) + (sha256 + (base32 + "1mikab2f9n5q1sfgnp3sbm1rf3v57k4085lsgh0a5gzga2h4hwxq")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests. + #:configure-flags + '("CXXFLAGS=-std=gnu++11"))) + (inputs + `(("jack" ,jack-1) + ("lv2" ,lv2) + ("alsa-lib" ,alsa-lib) + ("non-session-manager" ,non-session-manager) + ("liblo" ,liblo) + ("fftw" ,fftw) + ("qtbase" ,qtbase))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("qttools" ,qttools))) + (home-page "http://padthv1.sourceforge.net") + (synopsis "Polyphonic additive synthesizer") + (description + "Padthv1 is an old-school polyphonic additive synthesizer with stereo +effects. Padthv1 is based on the PADsynth algorithm by Paul Nasca, as a +special variant of additive synthesis.") + (license license:gpl2+))) + (define-public amsynth (package (name "amsynth") @@ -1928,7 +1966,7 @@ capabilities, custom envelopes, effects, etc.") (define-public yoshimi (package (name "yoshimi") - (version "1.5.5") + (version "1.5.6") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/yoshimi/" @@ -1936,7 +1974,7 @@ capabilities, custom envelopes, effects, etc.") "/yoshimi-" version ".tar.bz2")) (sha256 (base32 - "0h71x9742bswifwll7bma1fz648fd5xd0yfp7byvsczy6zhjz5pf")))) + "0bjfhfslpa2hjrc9h38m7dlr62953w9n4cvkgvfy495cbym12dak")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; there are no tests @@ -1956,17 +1994,7 @@ capabilities, custom envelopes, effects, etc.") (("-msse -msse2 -mfpmath=sse") "") (("-march=(athlon64|core2)" flag) (string-append flag " -msse -msse2 -mfpmath=sse"))) - #t)) - ;; Yoshimi tries to find ncurses with pkg-config, but our ncurses - ;; package does not install .pc files. - (add-after 'unpack 'find-ncurses - (lambda _ - (substitute* "src/CMakeLists.txt" - (("LIBNCURSES REQUIRED") "LIBNCURSES") - (("NCURSES REQUIRED") "NCURSES") - (("FATAL_ERROR \"libncurses") "STATUS \"libncurses") - (("\\$\\{NCURSES_LIBRARIES\\}") "ncurses")) - #t))))) + #t))))) (inputs `(("boost" ,boost) ("fftwf" ,fftwf) @@ -1986,7 +2014,7 @@ capabilities, custom envelopes, effects, etc.") (home-page "http://yoshimi.sourceforge.net/") (synopsis "Multi-paradigm software synthesizer") (description - "Yoshimi is a fork of ZynAddSubFX, a feature heavy realtime software + "Yoshimi is a fork of ZynAddSubFX, a feature-heavy real-time software synthesizer. It offers three synthesizer engines, multitimbral and polyphonic synths, microtonal capabilities, custom envelopes, effects, etc. Yoshimi improves on support for JACK features, such as JACK MIDI.") @@ -3460,6 +3488,62 @@ sample library.") (home-page "https://musescore.org") (license license:gpl2))) +(define-public muse-sequencer + (package + (name "muse-sequencer") + (version "3.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/muse-sequencer/muse.git") + (commit (string-append "muse_" + (string-map (lambda (c) + (if (char=? c #\.) + #\_ c)) version))))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1nninz8qyqlxxjdnrm79y3gr3056pga9l2fsqh674jd3cjvafya3")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; there is no test target + #:configure-flags + (list "-DENABLE_LV2_SUPPLIED=OFF" + "-DENABLE_RTAUDIO=OFF" ; FIXME: not packaged + "-DENABLE_INSTPATCH=OFF" ; FIXME: not packaged + "-DENABLE_VST_NATIVE=OFF") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "muse3")))))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("lash" ,lash) + ("jack" ,jack-1) + ("liblo" ,liblo) + ("dssi" ,dssi) + ("ladspa" ,ladspa) + ("lv2" ,lv2) + ("lilv" ,lilv) + ("sord" ,sord) + ("libsndfile" ,libsndfile) + ("libsamplerate" ,libsamplerate) + ("fluidsynth" ,fluidsynth) + ("pcre" ,pcre) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("qttools" ,qttools))) + (home-page "http://muse-sequencer.org") + (synopsis "MIDI/Audio sequencer") + (description "MusE is a MIDI/Audio sequencer with recording and editing +capabilities. Its audio sequencer supports the LADSPA, DSSI, and LV2 audio +plugin formats; the MIDI sequencer provides a piano roll, a drum editor, a +list view, and a score editor. MusE aims to be a complete multitrack virtual +studio.") + (license license:gpl2+))) + (define-public dssi (package (name "dssi") @@ -3475,7 +3559,7 @@ sample library.") (build-system gnu-build-system) (inputs `(("alsa-lib" ,alsa-lib) - ("jack-2" ,jack-2) + ("jack" ,jack-1) ("ladspa" ,ladspa) ("libsamplerate" ,libsamplerate) ("libsndfile" ,libsndfile) @@ -3566,7 +3650,7 @@ specification and header.") ("dssi" ,dssi) ("flac" ,flac) ("fftwf" ,fftwf) - ("jack-2" ,jack-2) + ("jack" ,jack-1) ("ladspa" ,ladspa) ("liblo" ,liblo) ("libsamplerate" ,libsamplerate) @@ -3752,3 +3836,59 @@ for the DSSI Soft Synth Interface. A brief list of features: @end enumerate ") (license license:gpl2+))) + +(define-public libdiscid + (package + (name "libdiscid") + (version "0.6.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/libdiscid-" + version ".tar.gz")) + (sha256 + (base32 + "1f9irlj3dpb5gyfdnb1m4skbjvx4d4hwiz2152f83m0d9jn47r7r")))) + (arguments `(#:test-target "check")) + (build-system cmake-build-system) + (home-page "https://musicbrainz.org/doc/libdiscid") + (synopsis "Disc id reader library") + (description "libdiscid is a C library for creating MusicBrainz and freedb +disc IDs from audio CDs. It reads a CD's table of contents (TOC) and generates +an identifier which can be used to lookup the CD at MusicBrainz. Additionally, +it provides a submission URL for adding the disc ID to the database and gathers +ISRCs and the MCN (=UPC/EAN) from disc.") + (license license:lgpl2.1+))) + +(define-public libmusicbrainz + (package + (name "libmusicbrainz") + (version "5.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/metabrainz/libmusicbrainz/releases/download/release-" + version "/libmusicbrainz-" version ".tar.gz")) + (sha256 + (base32 + "0ikb9igyyk28jm34raxfzkw2qyn4nzzwsymdyprp7cmvi6g2ajb7")) )) + (build-system cmake-build-system) + (arguments `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (and + ;; requires network connections + ;; (zero? (system* "tests/mbtest")) + (zero? (system* "tests/ctest")))))))) + (inputs `(("neon" ,neon) + ("libxml2" ,libxml2))) + (native-inputs `(("pkg-config" ,pkg-config))) + (home-page "https://musicbrainz.org/doc/libmusicbrainz") + (synopsis "MusicBrainz client library") + (description "The MusicBrainz Client Library (libmusicbrainz), also known as +mb_client, is a development library geared towards developers who wish to add +MusicBrainz lookup capabilities to their applications.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index c96c74bdcf..06955c60ab 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,7 +30,7 @@ (define-public nano (package (name "nano") - (version "2.9.1") + (version "2.9.2") (source (origin (method url-fetch) @@ -37,7 +38,7 @@ version ".tar.xz")) (sha256 (base32 - "0z5sxji8jh8sh0g3inbzndhsrbm4qyqlvjrxl5wkxbr61lnxa5k3")))) + "0m9xm085pi0fhmmshgppipjimr1jkxksbyg8pa5cwaap3d2vgk2f")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index bf8e8c65d4..2c55d6793a 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -450,7 +450,7 @@ and up to 1 Mbit/s downstream.") (define-public whois (package (name "whois") - (version "5.2.19") + (version "5.2.20") (source (origin (method url-fetch) @@ -458,16 +458,15 @@ and up to 1 Mbit/s downstream.") name "_" version ".tar.xz")) (sha256 (base32 - "0b16w48c17k35lhd95qcl2kjq2rahk8znkg3w467rf3kzmsa4fbc")))) + "02f00vpgrdb77w7lskl9jfm2akpy21ws9cjazs13gash2xksnj38")))) (build-system gnu-build-system) - ;; TODO: unbundle mkpasswd binary + its po files. (arguments - `(#:tests? #f ; Does not exist + `(#:tests? #f ; Does not exist #:make-flags (list "CC=gcc" (string-append "prefix=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases - (delete 'configure) ; No configure + (delete 'configure) ; No configure (add-before 'build 'setenv (lambda _ (setenv "HAVE_ICONV" "1") @@ -1194,7 +1193,7 @@ procedure calls (RPCs).") (define-public openvswitch (package (name "openvswitch") - (version "2.6.1") + (version "2.8.1") (source (origin (method url-fetch) (uri (string-append @@ -1202,7 +1201,7 @@ procedure calls (RPCs).") version ".tar.gz")) (sha256 (base32 - "036gq741j9kqsjlp693nff838c9wjd1c56nswl9vyyd1lsmj0yrh")))) + "14rqqhfyv49irz8ag0qbv9jn8z0bn3qzxir3r074y16p4sg4674d")))) (build-system gnu-build-system) (arguments '(;; FIXME: many tests fail with: diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index ae0c77f2d3..85b2dc8b45 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -3619,7 +3619,7 @@ is provide a description of your project and Jbuilder will do the rest.") (define-public ocaml-zed (package (name "ocaml-zed") - (version "1.5") + (version "1.6") (source (origin (method url-fetch) (uri (string-append "https://github.com/diml/zed/archive/" @@ -3627,7 +3627,7 @@ is provide a description of your project and Jbuilder will do the rest.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1q281slzwgdrrxalayll75bxgghadswlh2zcvzy08nrywqnlq5y8")))) + "19m5vrj60vg1b63qfsv0aabdlzgn40cqmx65s3wafqi4fs9xp6jn")))) (build-system ocaml-build-system) (arguments `(#:phases diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 3c53de63af..59213c52de 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -88,8 +88,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.14.0") - (commit "f76ff984ebdbed18fce4fe2a62cee73d0ccd8140") - (revision 3)) + (commit "3c5dbd2beeaeb21b3b978ec6d76aa16260670fcd") + (revision 5)) (package (name "guix") @@ -105,7 +105,7 @@ (commit commit))) (sha256 (base32 - "1sslkcp14vx0fa3lmy7mx96z8slhq7qli0d6cvc7h39dbpkzs2ni")) + "1kia1fbw275xsnm4x0xq46465azryck94pja3gmh09vcdbwwmwq5")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/patches/ao-cad-aarch64-support.patch b/gnu/packages/patches/ao-cad-aarch64-support.patch new file mode 100644 index 0000000000..291369cd9b --- /dev/null +++ b/gnu/packages/patches/ao-cad-aarch64-support.patch @@ -0,0 +1,18 @@ +Support in ao-cad for aarch64. + +Submitted upstream at https://github.com/mkeeter/ao/issues/69 + +--- ao/ui/vendor/efsw/src/efsw/inotify-nosys.h.orig 2017-12-14 16:27:16.125871099 -0600 ++++ ao/ui/vendor/efsw/src/efsw/inotify-nosys.h 2017-12-14 16:26:39.786022981 -0600 +@@ -69,6 +69,11 @@ + # define __NR_inotify_add_watch (__NR_SYSCALL_BASE+317) + # define __NR_inotify_rm_watch (__NR_SYSCALL_BASE+318) + ++#elif defined (__aarch64__) ++# define __NR_inotify_init 1043 ++# define __NR_inotify_add_watch 27 ++# define __NR_inotify_rm_watch 28 ++ + #elif defined (__frv__) + # define __NR_inotify_init 291 + # define __NR_inotify_add_watch 292 diff --git a/gnu/packages/patches/guile-bytestructures-name-clash.patch b/gnu/packages/patches/guile-bytestructures-name-clash.patch deleted file mode 100644 index ac834dd504..0000000000 --- a/gnu/packages/patches/guile-bytestructures-name-clash.patch +++ /dev/null @@ -1,31 +0,0 @@ -This patch works around a name clash between the 'cstring-pointer' module and -the 'cstring-module' variable that occurs in Guile 2.0: - - ice-9/boot-9.scm:109:20: re-exporting local variable: cstring-pointer - ---- guile-bytestructures-20170402.91d042e-checkout/bytestructures/guile.scm 2017-07-25 17:04:32.858289986 +0200 -+++ guile-bytestructures-20170402.91d042e-checkout/bytestructures/guile.scm 2017-07-25 17:04:41.130244725 +0200 -@@ -1,6 +1,6 @@ - (define-module (bytestructures guile)) - --(import -+(use-modules - (bytestructures guile base) - (bytestructures guile vector) - (bytestructures guile struct) -@@ -8,7 +8,7 @@ - (bytestructures guile pointer) - (bytestructures guile numeric) - (bytestructures guile string) -- (bytestructures guile cstring-pointer)) -+ ((bytestructures guile cstring-pointer) #:prefix cstr:)) - (re-export - make-bytestructure-descriptor - bytestructure-descriptor? -@@ -75,5 +75,5 @@ - - bs:string - -- cstring-pointer -+ cstr:cstring-pointer - ) diff --git a/gnu/packages/patches/icecat-bug-1427870-spectre-mitigation.patch b/gnu/packages/patches/icecat-bug-1427870-spectre-mitigation.patch new file mode 100644 index 0000000000..6b088286cb --- /dev/null +++ b/gnu/packages/patches/icecat-bug-1427870-spectre-mitigation.patch @@ -0,0 +1,49 @@ +Mitigate Spectre by reducing the resolution of performance.now() to 20 +microseconds. Based on: + + https://hg.mozilla.org/releases/mozilla-release/rev/afa87f9be3a8 + +For more details, see: + + https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/ + +This patch was modified to apply cleanly to GNU IceCat. + + +# HG changeset patch +# User Tom Ritter <tom@mozilla.com> +# Date 1514660820 21600 +# Node ID afa87f9be3a8852da3a30f286b15ae599c7874f6 +# Parent 6caa457ebedc915b43dc1d054b8fe22e82ca7447 +Bug 1427870 - Change resolution of .now() to 20us. r=bkelly, a=lizzard + +The comment about workers was introduced in Bug 1186489 but became obsolete some time after that +(definitely by Bug 1278838) + +diff --git a/dom/performance/Performance.cpp b/dom/performance/Performance.cpp +--- a/dom/performance/Performance.cpp ++++ b/dom/performance/Performance.cpp +@@ -234,20 +234,19 @@ Performance::ClearResourceTimings() + { + MOZ_ASSERT(NS_IsMainThread()); + mResourceEntries.Clear(); + } + + DOMHighResTimeStamp + Performance::RoundTime(double aTime) const + { +- // Round down to the nearest 5us, because if the timer is too accurate people +- // can do nasty timing attacks with it. See similar code in the worker +- // Performance implementation. +- const double maxResolutionMs = 0.005; ++ // Round down to the nearest 20us, because if the timer is too accurate people ++ // can do nasty timing attacks with it. ++ const double maxResolutionMs = 0.020; + return floor(aTime / maxResolutionMs) * maxResolutionMs; + } + + + void + Performance::Mark(const nsAString& aName, ErrorResult& aRv) + { + // Don't add the entry if the buffer is full. XXX should be removed by bug 1159003. diff --git a/gnu/packages/patches/ledger-fix-uninitialized.patch b/gnu/packages/patches/ledger-fix-uninitialized.patch new file mode 100644 index 0000000000..128c90ec13 --- /dev/null +++ b/gnu/packages/patches/ledger-fix-uninitialized.patch @@ -0,0 +1,27 @@ +This fixes failures of tests "BaseLine_opt-datetime-format" and +"BaseLine_opt-time-report", which were printing an unexpected trailing '*' on +the last line of output, e.g.: + + @@ -5,4 +5,4 @@ + 04/05/13 12:00 PM 04/05/13 01:30 PM 1.50h Lunch + 04/05/13 11:30 AM 04/05/13 12:00 PM 30.0m Walk + -------------------------------------------------- + - + + * + +Reported upstream at +https://groups.google.com/d/msg/ledger-cli/EeJUrUk8YDc/pIR-LOTVEAAJ + +diff --git a/src/account.h b/src/account.h +index 1b97463d..f2555593 100644 +--- a/src/account.h ++++ b/src/account.h +@@ -187,7 +187,7 @@ public: + + datetime_t earliest_checkin; + datetime_t latest_checkout; +- bool latest_checkout_cleared; ++ bool latest_checkout_cleared = false; + + std::set<path> filenames; + std::set<string> accounts_referenced; diff --git a/gnu/packages/patches/ledger-revert-boost-python-fix.patch b/gnu/packages/patches/ledger-revert-boost-python-fix.patch new file mode 100644 index 0000000000..99f48f6e46 --- /dev/null +++ b/gnu/packages/patches/ledger-revert-boost-python-fix.patch @@ -0,0 +1,39 @@ +From 01220484f428a447e9b00e071a0d85185f30e1de Mon Sep 17 00:00:00 2001 +From: Alexis Hildebrandt <afh@surryhill.net> +Date: Wed, 22 Jun 2016 15:43:37 +0200 +Subject: [PATCH] Revert "[python] Add fix for Boost.Python compile errors" + +This reverts commit 11590e134eafa768ccc4a171cc7fb216e906095f. +--- + src/py_commodity.cc | 3 --- + src/py_journal.cc | 3 --- + 2 files changed, 6 deletions(-) + +diff --git a/src/py_commodity.cc b/src/py_commodity.cc +index 5aafa6c..c457e64 100644 +--- a/src/py_commodity.cc ++++ b/src/py_commodity.cc +@@ -243,9 +243,6 @@ namespace { + + void export_commodity() + { +-#if BOOST_VERSION >= 106000 +- python::register_ptr_to_python< shared_ptr<commodity_pool_t> >(); +-#endif + class_< commodity_pool_t, shared_ptr<commodity_pool_t>, + boost::noncopyable > ("CommodityPool", no_init) + .add_property("null_commodity", +diff --git a/src/py_journal.cc b/src/py_journal.cc +index c1c38a9..879f954 100644 +--- a/src/py_journal.cc ++++ b/src/py_journal.cc +@@ -232,9 +232,6 @@ void export_journal() + boost::noncopyable >("PostHandler") + ; + +-#if BOOST_VERSION >= 106000 +- python::register_ptr_to_python< shared_ptr<collector_wrapper> >(); +-#endif + class_< collector_wrapper, shared_ptr<collector_wrapper>, + boost::noncopyable >("PostCollectorWrapper", no_init) + .def("__len__", &collector_wrapper::length) diff --git a/gnu/packages/patches/libvorbis-CVE-2017-14632.patch b/gnu/packages/patches/libvorbis-CVE-2017-14632.patch new file mode 100644 index 0000000000..99debf2104 --- /dev/null +++ b/gnu/packages/patches/libvorbis-CVE-2017-14632.patch @@ -0,0 +1,63 @@ +Fix CVE-2017-14632: + +https://gitlab.xiph.org/xiph/vorbis/issues/2328 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14632 + +Patch copied from upstream source repository: + +https://gitlab.xiph.org/xiph/vorbis/commit/c1c2831fc7306d5fbd7bc800324efd12b28d327f + +From c1c2831fc7306d5fbd7bc800324efd12b28d327f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org> +Date: Wed, 15 Nov 2017 18:22:59 +0100 +Subject: [PATCH] CVE-2017-14632: vorbis_analysis_header_out: Don't clear opb + if not initialized + +If the number of channels is not within the allowed range +we call oggback_writeclear altough it's not initialized yet. + +This fixes + + =23371== Invalid free() / delete / delete[] / realloc() + ==23371== at 0x4C2CE1B: free (vg_replace_malloc.c:530) + ==23371== by 0x829CA31: oggpack_writeclear (in /usr/lib/x86_64-linux-gnu/libogg.so.0.8.2) + ==23371== by 0x84B96EE: vorbis_analysis_headerout (info.c:652) + ==23371== by 0x9FBCBCC: ??? (in /usr/lib/x86_64-linux-gnu/sox/libsox_fmt_vorbis.so) + ==23371== by 0x4E524F1: ??? (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) + ==23371== by 0x4E52CCA: sox_open_write (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) + ==23371== by 0x10D82A: open_output_file (sox.c:1556) + ==23371== by 0x10D82A: process (sox.c:1753) + ==23371== by 0x10D82A: main (sox.c:3012) + ==23371== Address 0x68768c8 is 488 bytes inside a block of size 880 alloc'd + ==23371== at 0x4C2BB1F: malloc (vg_replace_malloc.c:298) + ==23371== by 0x4C2DE9F: realloc (vg_replace_malloc.c:785) + ==23371== by 0x4E545C2: lsx_realloc (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) + ==23371== by 0x9FBC9A0: ??? (in /usr/lib/x86_64-linux-gnu/sox/libsox_fmt_vorbis.so) + ==23371== by 0x4E524F1: ??? (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) + ==23371== by 0x4E52CCA: sox_open_write (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) + ==23371== by 0x10D82A: open_output_file (sox.c:1556) + ==23371== by 0x10D82A: process (sox.c:1753) + ==23371== by 0x10D82A: main (sox.c:3012) + +as seen when using the testcase from CVE-2017-11333 with +008d23b782be09c8d75ba8190b1794abd66c7121 applied. However the error was +there before. +--- + lib/info.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/info.c b/lib/info.c +index 7bc4ea4..8d0b2ed 100644 +--- a/lib/info.c ++++ b/lib/info.c +@@ -589,6 +589,7 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v, + private_state *b=v->backend_state; + + if(!b||vi->channels<=0||vi->channels>256){ ++ b = NULL; + ret=OV_EFAULT; + goto err_out; + } +-- +2.15.1 + diff --git a/gnu/packages/patches/libvorbis-CVE-2017-14633.patch b/gnu/packages/patches/libvorbis-CVE-2017-14633.patch new file mode 100644 index 0000000000..ec6bf5265c --- /dev/null +++ b/gnu/packages/patches/libvorbis-CVE-2017-14633.patch @@ -0,0 +1,43 @@ +Fix CVE-2017-14633: + +https://gitlab.xiph.org/xiph/vorbis/issues/2329 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14633 + +Patch copied from upstream source repository: + +https://gitlab.xiph.org/xiph/vorbis/commit/a79ec216cd119069c68b8f3542c6a425a74ab993 + +From a79ec216cd119069c68b8f3542c6a425a74ab993 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org> +Date: Tue, 31 Oct 2017 18:32:46 +0100 +Subject: [PATCH] CVE-2017-14633: Don't allow for more than 256 channels + +Otherwise + + for(i=0;i<vi->channels;i++){ + /* the encoder setup assumes that all the modes used by any + specific bitrate tweaking use the same floor */ + int submap=info->chmuxlist[i]; + +overreads later in mapping0_forward since chmuxlist is a fixed array of +256 elements max. +--- + lib/info.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/info.c b/lib/info.c +index fe759ed..7bc4ea4 100644 +--- a/lib/info.c ++++ b/lib/info.c +@@ -588,7 +588,7 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v, + oggpack_buffer opb; + private_state *b=v->backend_state; + +- if(!b||vi->channels<=0){ ++ if(!b||vi->channels<=0||vi->channels>256){ + ret=OV_EFAULT; + goto err_out; + } +-- +2.15.1 + diff --git a/gnu/packages/patches/newsbeuter-CVE-2017-12904.patch b/gnu/packages/patches/newsbeuter-CVE-2017-12904.patch deleted file mode 100644 index 8e90502469..0000000000 --- a/gnu/packages/patches/newsbeuter-CVE-2017-12904.patch +++ /dev/null @@ -1,34 +0,0 @@ -Fix CVE-2017-12904: - -https://github.com/akrennmair/newsbeuter/issues/591 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12904 - -Patch copied from the Debian package of newsbeuter, version 2.9-5+deb9u1. - -Adapted from upstream source repository: - -https://github.com/akrennmair/newsbeuter/commit/96e9506ae9e252c548665152d1b8968297128307 - -Description: Fix a RCE vulnerability in the bookmark command - Newsbeuter didn't properly escape the title and description fields before - passing them to the bookmarking program which could lead to remote code - execution using the shells command substitution functionality (e.g. "$()", ``, - etc) - -Origin: upstream, https://github.com/akrennmair/newsbeuter/commit/96e9506ae9e252c548665152d1b8968297128307 -Last-Update: 2017-08-18 - ---- newsbeuter-2.9.orig/src/controller.cpp -+++ newsbeuter-2.9/src/controller.cpp -@@ -1274,9 +1274,10 @@ std::string controller::bookmark(const s - std::string bookmark_cmd = cfg.get_configvalue("bookmark-cmd"); - bool is_interactive = cfg.get_configvalue_as_bool("bookmark-interactive"); - if (bookmark_cmd.length() > 0) { -- std::string cmdline = utils::strprintf("%s '%s' %s %s", -+ std::string cmdline = utils::strprintf("%s '%s' '%s' '%s'", - bookmark_cmd.c_str(), utils::replace_all(url,"'", "%27").c_str(), -- stfl::quote(title).c_str(), stfl::quote(description).c_str()); -+ utils::replace_all(title,"'", "%27").c_str(), -+ utils::replace_all(description,"'", "%27").c_str()); - - LOG(LOG_DEBUG, "controller::bookmark: cmd = %s", cmdline.c_str()); diff --git a/gnu/packages/patches/newsbeuter-CVE-2017-14500.patch b/gnu/packages/patches/newsbeuter-CVE-2017-14500.patch deleted file mode 100644 index 449105e42a..0000000000 --- a/gnu/packages/patches/newsbeuter-CVE-2017-14500.patch +++ /dev/null @@ -1,43 +0,0 @@ -https://github.com/akrennmair/newsbeuter/commit/26f5a4350f3ab5507bb8727051c87bb04660f333.patch -http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14500 - -From 26f5a4350f3ab5507bb8727051c87bb04660f333 Mon Sep 17 00:00:00 2001 -From: Alexander Batischev <eual.jp@gmail.com> -Date: Sat, 16 Sep 2017 19:31:43 +0300 -Subject: [PATCH] Work around shell code in podcast names (#598) - ---- - src/pb_controller.cpp | 6 +++--- - src/queueloader.cpp | 2 +- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/pb_controller.cpp b/src/pb_controller.cpp -index 09b5e897..213216cd 100644 ---- a/src/pb_controller.cpp -+++ b/src/pb_controller.cpp -@@ -306,9 +306,9 @@ void pb_controller::play_file(const std::string& file) { - if (player == "") - return; - cmdline.append(player); -- cmdline.append(" \""); -- cmdline.append(utils::replace_all(file,"\"", "\\\"")); -- cmdline.append("\""); -+ cmdline.append(" \'"); -+ cmdline.append(utils::replace_all(file,"'", "%27")); -+ cmdline.append("\'"); - stfl::reset(); - LOG(LOG_DEBUG, "pb_controller::play_file: running `%s'", cmdline.c_str()); - ::system(cmdline.c_str()); -diff --git a/src/queueloader.cpp b/src/queueloader.cpp -index c1dabdd8..ae725e04 100644 ---- a/src/queueloader.cpp -+++ b/src/queueloader.cpp -@@ -130,7 +130,7 @@ std::string queueloader::get_filename(const std::string& str) { - strftime(lbuf, sizeof(lbuf), "%Y-%b-%d-%H%M%S.unknown", localtime(&t)); - fn.append(lbuf); - } else { -- fn.append(base); -+ fn.append(utils::replace_all(base, "'", "%27")); - } - return fn; - } diff --git a/gnu/packages/patches/perl-module-pluggable-search.patch b/gnu/packages/patches/perl-module-pluggable-search.patch index ec51abc35d..ec51abc35d 100755..100644 --- a/gnu/packages/patches/perl-module-pluggable-search.patch +++ b/gnu/packages/patches/perl-module-pluggable-search.patch diff --git a/gnu/packages/patches/webkitgtk-mitigate-spectre.patch b/gnu/packages/patches/webkitgtk-mitigate-spectre.patch new file mode 100644 index 0000000000..3d983ede66 --- /dev/null +++ b/gnu/packages/patches/webkitgtk-mitigate-spectre.patch @@ -0,0 +1,107 @@ +Disable SharedArrayBuffers to mitigate Spectre. Based on: + + https://trac.webkit.org/changeset/226386/webkit + +Backported to webkitgtk-2.18.4 by Mark H Weaver <mhw@netris.org> + + +--- webkitgtk-2.18.4/Source/JavaScriptCore/runtime/JSGlobalObject.h.orig 2017-12-19 02:23:07.000000000 -0500 ++++ webkitgtk-2.18.4/Source/JavaScriptCore/runtime/JSGlobalObject.h 2018-01-06 19:28:55.985066986 -0500 +@@ -338,8 +338,10 @@ + WriteBarrier<Structure> m_moduleLoaderStructure; + WriteBarrier<JSArrayBufferPrototype> m_arrayBufferPrototype; + WriteBarrier<Structure> m_arrayBufferStructure; ++#if ENABLE(SHARED_ARRAY_BUFFER) + WriteBarrier<JSArrayBufferPrototype> m_sharedArrayBufferPrototype; + WriteBarrier<Structure> m_sharedArrayBufferStructure; ++#endif + + #define DEFINE_STORAGE_FOR_SIMPLE_TYPE(capitalName, lowerName, properName, instanceType, jsName, prototypeBase) \ + WriteBarrier<capitalName ## Prototype> m_ ## lowerName ## Prototype; \ +@@ -670,8 +672,13 @@ + switch (sharingMode) { + case ArrayBufferSharingMode::Default: + return m_arrayBufferPrototype.get(); ++#if ENABLE(SHARED_ARRAY_BUFFER) + case ArrayBufferSharingMode::Shared: + return m_sharedArrayBufferPrototype.get(); ++#else ++ default: ++ return m_arrayBufferPrototype.get(); ++#endif + } + } + Structure* arrayBufferStructure(ArrayBufferSharingMode sharingMode) const +@@ -679,8 +686,13 @@ + switch (sharingMode) { + case ArrayBufferSharingMode::Default: + return m_arrayBufferStructure.get(); ++#if ENABLE(SHARED_ARRAY_BUFFER) + case ArrayBufferSharingMode::Shared: + return m_sharedArrayBufferStructure.get(); ++#else ++ default: ++ return m_arrayBufferStructure.get(); ++#endif + } + RELEASE_ASSERT_NOT_REACHED(); + return nullptr; +--- webkitgtk-2.18.4/Source/JavaScriptCore/runtime/JSGlobalObject.cpp.orig 2017-12-19 02:23:07.000000000 -0500 ++++ webkitgtk-2.18.4/Source/JavaScriptCore/runtime/JSGlobalObject.cpp 2018-01-06 19:27:16.628574304 -0500 +@@ -574,8 +574,10 @@ + + m_arrayBufferPrototype.set(vm, this, JSArrayBufferPrototype::create(vm, this, JSArrayBufferPrototype::createStructure(vm, this, m_objectPrototype.get()), ArrayBufferSharingMode::Default)); + m_arrayBufferStructure.set(vm, this, JSArrayBuffer::createStructure(vm, this, m_arrayBufferPrototype.get())); ++#if ENABLE(SHARED_ARRAY_BUFFER) + m_sharedArrayBufferPrototype.set(vm, this, JSArrayBufferPrototype::create(vm, this, JSArrayBufferPrototype::createStructure(vm, this, m_objectPrototype.get()), ArrayBufferSharingMode::Shared)); + m_sharedArrayBufferStructure.set(vm, this, JSArrayBuffer::createStructure(vm, this, m_sharedArrayBufferPrototype.get())); ++#endif + + m_iteratorPrototype.set(vm, this, IteratorPrototype::create(vm, this, IteratorPrototype::createStructure(vm, this, m_objectPrototype.get()))); + m_generatorPrototype.set(vm, this, GeneratorPrototype::create(vm, this, GeneratorPrototype::createStructure(vm, this, m_iteratorPrototype.get()))); +@@ -620,10 +622,11 @@ + + JSArrayBufferConstructor* arrayBufferConstructor = JSArrayBufferConstructor::create(vm, JSArrayBufferConstructor::createStructure(vm, this, m_functionPrototype.get()), m_arrayBufferPrototype.get(), m_speciesGetterSetter.get(), ArrayBufferSharingMode::Default); + m_arrayBufferPrototype->putDirectWithoutTransition(vm, vm.propertyNames->constructor, arrayBufferConstructor, DontEnum); ++#if ENABLE(SHARED_ARRAY_BUFFER) + JSArrayBufferConstructor* sharedArrayBufferConstructor = nullptr; + sharedArrayBufferConstructor = JSArrayBufferConstructor::create(vm, JSArrayBufferConstructor::createStructure(vm, this, m_functionPrototype.get()), m_sharedArrayBufferPrototype.get(), m_speciesGetterSetter.get(), ArrayBufferSharingMode::Shared); + m_sharedArrayBufferPrototype->putDirectWithoutTransition(vm, vm.propertyNames->constructor, sharedArrayBufferConstructor, DontEnum); +- ++#endif + #define CREATE_CONSTRUCTOR_FOR_SIMPLE_TYPE(capitalName, lowerName, properName, instanceType, jsName, prototypeBase) \ + capitalName ## Constructor* lowerName ## Constructor = capitalName ## Constructor::create(vm, capitalName ## Constructor::createStructure(vm, this, m_functionPrototype.get()), m_ ## lowerName ## Prototype.get(), m_speciesGetterSetter.get()); \ + m_ ## lowerName ## Prototype->putDirectWithoutTransition(vm, vm.propertyNames->constructor, lowerName ## Constructor, DontEnum); \ +@@ -686,7 +689,9 @@ + putDirectWithoutTransition(vm, vm.propertyNames->builtinNames().ArrayPrivateName(), arrayConstructor, DontEnum | DontDelete | ReadOnly); + + putDirectWithoutTransition(vm, vm.propertyNames->ArrayBuffer, arrayBufferConstructor, DontEnum); ++#if ENABLE(SHARED_ARRAY_BUFFER) + putDirectWithoutTransition(vm, vm.propertyNames->SharedArrayBuffer, sharedArrayBufferConstructor, DontEnum); ++#endif + + #define PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE(capitalName, lowerName, properName, instanceType, jsName, prototypeBase) \ + putDirectWithoutTransition(vm, vm.propertyNames-> jsName, lowerName ## Constructor, DontEnum); \ +@@ -1288,8 +1293,10 @@ + + visitor.append(thisObject->m_arrayBufferPrototype); + visitor.append(thisObject->m_arrayBufferStructure); ++#if ENABLE(SHARED_ARRAY_BUFFER) + visitor.append(thisObject->m_sharedArrayBufferPrototype); + visitor.append(thisObject->m_sharedArrayBufferStructure); ++#endif + + #define VISIT_SIMPLE_TYPE(CapitalName, lowerName, properName, instanceType, jsName, prototypeBase) \ + visitor.append(thisObject->m_ ## lowerName ## Prototype); \ +--- webkitgtk-2.18.4/Source/WTF/wtf/Platform.h.orig 2017-10-16 08:18:56.000000000 -0400 ++++ webkitgtk-2.18.4/Source/WTF/wtf/Platform.h 2018-01-06 19:29:52.897349199 -0500 +@@ -1190,6 +1190,9 @@ + #define HAVE_NS_ACTIVITY 1 + #endif + ++/* Disable SharedArrayBuffers until Spectre security concerns are mitigated. */ ++#define ENABLE_SHARED_ARRAY_BUFFER 0 ++ + #if (OS(DARWIN) && USE(CG)) || (USE(FREETYPE) && !PLATFORM(GTK)) || (PLATFORM(WIN) && (USE(CG) || USE(CAIRO))) + #undef ENABLE_OPENTYPE_MATH + #define ENABLE_OPENTYPE_MATH 1 diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index f997005241..5df7385e78 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -4,11 +4,11 @@ ;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> -;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is> -;;; Coypright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> -;;; Coypright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> -;;; Coypright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> -;;; Coypright © 2016 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> +;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm index 121ebec414..cbb2138a6e 100644 --- a/gnu/packages/perl-check.scm +++ b/gnu/packages/perl-check.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> -;;; Coypright © 2016 ng0 <ng0@infotropique.org> +;;; Copyright © 2016 ng0 <ng0@infotropique.org> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Alex Sassmannshausen <alex@pompo.co> ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 520395b5b5..ce152b1dea 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> -;;; Coypright © 2016 ng0 <ng0@infotropique.org> +;;; Copyright © 2016 ng0 <ng0@infotropique.org> ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> @@ -4404,7 +4404,7 @@ intersections, unions, unique elements, complements and many more.") (define-public perl-list-moreutils (package (name "perl-list-moreutils") - (version "0.426") + (version "0.428") (source (origin (method url-fetch) @@ -4412,7 +4412,7 @@ intersections, unions, unique elements, complements and many more.") "List-MoreUtils-" version ".tar.gz")) (sha256 (base32 - "1dj77b42cp5ziq9y38fff458avjwzm88kn076svcvl660h6n21cf")))) + "1hkc8xkd27yzfkgaglzn77j4qjmilyva4gaz3pc64vpism2hjgki")))) (build-system perl-build-system) (arguments `(#:phases diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 5d87c7486e..99e5bd9e0b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -32,7 +32,7 @@ ;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016, 2017 Julien Lepiller <julien@lepiller.eu> -;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com> @@ -2534,7 +2534,8 @@ interested parties to subscribe to events, or \"signals\".") ("python-blinker" ,python-blinker) ("python-unidecode" ,python-unidecode) ("python-six" ,python-six) - ("python-dateutil" ,python-dateutil))) + ("python-dateutil" ,python-dateutil) + ("python-markdown" ,python-markdown))) (home-page "http://getpelican.com/") (arguments `(;; XXX Requires a lot more packages to do unit tests :P @@ -4857,13 +4858,13 @@ of the structure, dynamics, and functions of complex networks.") (define-public snakemake (package (name "snakemake") - (version "4.2.0") + (version "4.4.0") (source (origin (method url-fetch) (uri (pypi-uri "snakemake" version)) (sha256 - (base32 "0mgl44q152ws40zj2vicqark5szyd73vqy9pf26g6hk6dk0y0c79")))) + (base32 "0g0paia4z7w3srnqdmavq3hrb2x7qnpf81jx50njl0p7y4y0j8jv")))) (build-system python-build-system) (arguments ;; TODO: Package missing test dependencies. @@ -6023,14 +6024,14 @@ versions of Python.") (define-public python-idna (package (name "python-idna") - (version "2.5") + (version "2.6") (source (origin (method url-fetch) (uri (pypi-uri "idna" version)) (sha256 (base32 - "1ara12a7k2zc69msa0arrvw00gn61a6i6by01xb3lkkc0h4cxd9w")))) + "13qaab6d0s15gknz8v3zbcfmbj6v86hn9pjxgkdf62ch13imssic")))) (build-system python-build-system) (home-page "https://github.com/kjd/idna") (synopsis "Internationalized domain names in applications") @@ -6859,13 +6860,13 @@ for atomic file system operations.") (define-public python-click-threading (package (name "python-click-threading") - (version "0.4.3") + (version "0.4.4") (source (origin (method url-fetch) (uri (pypi-uri "click-threading" version)) (sha256 (base32 - "0xs4bg2ws0zgyiplk312l049hi23c2zqf1g771rjhh5vr2msk4cg")))) + "1rsxc2fbkxlhwhlmxsdjzq3spn284l6rvjfcz9mbb17ibgdgmc5j")))) (build-system python-build-system) (propagated-inputs `(("python-click" ,python-click))) @@ -6878,13 +6879,13 @@ applications.") (define-public python-click-log (package (name "python-click-log") - (version "0.2.0") + (version "0.2.1") (source (origin (method url-fetch) (uri (pypi-uri "click-log" version)) (sha256 (base32 - "1bjrfxji1yv4fj0g78ri2yfgn2wbivn8g69fxfinxvxpmighhshp")))) + "1r1x85023cslb2pwldd089jjk573mk3w78cnashs77wrx7yz8fj9")))) (build-system python-build-system) (propagated-inputs `(("python-click" ,python-click))) @@ -8600,14 +8601,14 @@ network support library.") (define-public python-ply (package (name "python-ply") - (version "3.9") + (version "3.10") (source (origin (method url-fetch) (uri (pypi-uri "ply" version)) (sha256 (base32 - "0gpl0yli3w03ipyqfrp3w5nf0iawhsq65anf5wwm2wf5p502jzhd")))) + "1jxsr1d2f732r6ljhvm827113dckwl6qwakfvpbdhcbhvpvlmscn")))) (build-system python-build-system) (home-page "http://www.dabeaz.com/ply/") (synopsis "Python Lex & Yacc") @@ -12296,3 +12297,44 @@ physical units, automatic derivatives, ...) whereas others are more domain-specific (e.g. netCDF and PDB support). The library is currently not actively maintained and works only with Python 2 and NumPy < 1.9.") (license license:cecill-c))) + +(define-public python2-mmtk + (package + (name "python2-mmtk") + (version "2.7.10") + (source + (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/khinsen/" + "mmtk/downloads/MMTK-" version ".tar.gz")) + (file-name (string-append "MMTK-" version ".tar.gz")) + (sha256 + (base32 + "1k4gsd50zja89dbzgy3aji7h4zpvbvdfrds7rxr3whqrsgcffnir")))) + (build-system python-build-system) + (native-inputs + `(("netcdf" ,netcdf))) + (propagated-inputs + `(("python-scientific" ,python2-scientific) + ("python-tkinter" ,python-2 "tk"))) + (arguments + `(#:python ,python-2 + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'includes-from-scientific + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "Include/Scientific") + (copy-recursively + (string-append + (assoc-ref inputs "python-scientific") + "/include/python2.7/Scientific") + "Include/Scientific")))))) + (home-page "http://dirac.cnrs-orleans.fr/MMTK") + (synopsis "Python library for molecular simulation") + (description "MMTK is a library for molecular simulations with an emphasis +on biomolecules. It provides widely used methods such as Molecular Dynamics +and normal mode analysis, but also basic routines for implementing new methods +for simulation and analysis. The library is currently not actively maintained +and works only with Python 2 and NumPy < 1.9.") + (license license:cecill-c))) diff --git a/gnu/packages/rrdtool.scm b/gnu/packages/rrdtool.scm index fbb6a3403b..39b5d05ac9 100644 --- a/gnu/packages/rrdtool.scm +++ b/gnu/packages/rrdtool.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,41 +18,50 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages rrdtool) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages algebra) #:use-module (gnu packages base) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages groff) - #:use-module (gnu packages python) #:use-module (gnu packages fontutils) #:use-module (gnu packages glib) + #:use-module (gnu packages groff) #:use-module (gnu packages gtk) - #:use-module (gnu packages xml)) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages xml) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages)) (define-public rrdtool (package (name "rrdtool") - (version "1.4.8") + (version "1.7.0") (source (origin (method url-fetch) (uri (string-append "http://oss.oetiker.ch/rrdtool/pub/rrdtool-" version ".tar.gz")) (sha256 (base32 - "1mpki7pv5ql73h5al04dps6dky0nqc3mmb8ac21hd2s8mbsvk5fy")))) + "0ssjqpa0dwwzbylc0drmlbq922qcw8crffc0rpr805xr6n4k8zgr")))) (build-system gnu-build-system) - (inputs `(("cairo" ,cairo) - ("glib" ,glib) - ("gtk" ,gtk+-2) - ("pango" ,pango) - ("freetype" ,freetype) - ("libxml2" ,libxml2) - ("python" ,python-2))) - (native-inputs `(("pkg-config" ,pkg-config) - ("groff" ,groff))) + (inputs + `(("cairo" ,cairo) + ("freetype" ,freetype) + ("glib" ,glib) + ("gtk" ,gtk+-2) + ("libxml2" ,libxml2) + ("pango" ,pango) + ("python" ,python-2))) + (native-inputs + `(("groff" ,groff) + ("pkg-config" ,pkg-config) + + ;; For tests. + ("bc" ,bc) + ("perl" ,perl) ; will also build Perl bindings + ("tzdata" ,tzdata))) (arguments '(#:phases (modify-phases %standard-phases @@ -59,11 +69,23 @@ (lambda _ (substitute* "libtool" (("/bin/sed") (which "sed"))) - (substitute* "src/Makefile.in" - (("^rrdcached_LDADD = librrd_th.la") - "rrdcached_LDADD = librrd_th.la -lglib-2.0")) - #t))))) - (home-page "http://oss.oetiker.ch/rrdtool/") + #t)) + (add-before 'check 'prepare-test-environment + (lambda* (#:key inputs #:allow-other-keys) + (setenv "TZDIR" + (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo")) + #t)) + (add-after 'install 'remove-native-input-references + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (examples (string-append out "/share/rrdtool/examples"))) + ;; Drop shebangs from examples to avoid depending on native-input + ;; perl. It's clear from context and extension how to run them. + (substitute* (find-files examples "\\.pl$") + (("^#!.*") "")) + #t)))))) + (home-page "https://oss.oetiker.ch/rrdtool/") (synopsis "Time-series data storage and display system") (description "The Round Robin Database Tool (RRDtool) is a system to store and display diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index cee047b938..345c326300 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -151,14 +151,14 @@ anywhere.") (define-public samba (package (name "samba") - (version "4.7.3") + (version "4.7.4") (source (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/stable/" "samba-" version ".tar.gz")) (sha256 (base32 - "0b7xbfjpg7l1lz13gvj4ifcp9j3cvfp6pswjbq03z06bl4n1br06")))) + "0iw290n0q4l5s92d0f9yz27yp3rdfr6bvsmvg1xvd19g8p2d04pv")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index d70a8d3fd5..8df4841eae 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -265,7 +265,7 @@ that implements both the msgpack and msgpack-rpc specifications.") (define-public jsoncpp (package (name "jsoncpp") - (version "1.8.2") + (version "1.8.4") (source (origin (method url-fetch) (uri (string-append @@ -274,7 +274,7 @@ that implements both the msgpack and msgpack-rpc specifications.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1vwf0yrv5540ygfnxikirbs63awsdzn7dabkia3g0bnz43p5l7w1")))) + "1dpxk8hkni5dq4mdw8qbaj40jmid3a31d1gh8iqcnfwkw34ym7f4")))) (build-system cmake-build-system) (home-page "https://github.com/open-source-parsers/jsoncpp") (arguments diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index a5f2256afd..8a5f158878 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,14 +51,14 @@ (define-public blind (package (name "blind") - (version "1.0") + (version "1.1") (source (origin (method url-fetch) (uri (string-append "https://dl.suckless.org/tools/blind-" version ".tar.gz")) (sha256 (base32 - "1b36k8fg2gmabm69jckqja49i8y4rcbccgvv2wija15ciszrm1x9")))) + "0nncvzyipvkkd7zlgzwbjygp82frzs2hvbnk71gxf671np607y94")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no check target @@ -351,7 +352,7 @@ few minutes.") (define-public xbattmon (package (name "xbattmon") - (version "0.9") + (version "1.1") (source (origin (method url-fetch) @@ -359,7 +360,7 @@ few minutes.") name "-" version ".tar.gz")) (sha256 (base32 - "0n2rrjq03pgqrdkl7cz5snsfdanf4s58w9h6dbvnl7p8bbd3j2kn")))) + "1zr6y8lml9xkx0a3dbbsds2qz1bjxvskp7wsckkf8mlsqrbb3xsg")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No tests diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 085d04cc91..4ed62ff966 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -164,7 +165,7 @@ their folder. (define-public lsyncd (package (name "lsyncd") - (version "2.2.1") + (version "2.2.2") (source (origin (method url-fetch) @@ -173,7 +174,7 @@ their folder. (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0da7mrq2c578v2dd5x9v75l1fqrm28jvn28qkcd49y8p992nj6gl")))) + "02g054qv8rnbxywd4f0gnd13lrlns9175d3ciqnyslhs1zs15nqb")))) (build-system cmake-build-system) (arguments `(;; The "tests" target is broken and assumes that tests are run in the diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 5d7c0f5b36..66c3fedfe2 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -28,7 +28,7 @@ (define-public syncthing (package (name "syncthing") - (version "0.14.42") + (version "0.14.43") (source (origin (method url-fetch) (uri (string-append "https://github.com/syncthing/syncthing" @@ -36,7 +36,7 @@ "/syncthing-source-v" version ".tar.gz")) (sha256 (base32 - "0qqcn8j2hng4jl6ndbrjmbiwbl2f305qx5yw7swbvj7s3l7k756i")))) + "175xkc4i00axxljc5kgkr30lm1s9hfmz0hrzrsl91rpwpbh500mv")))) (build-system go-build-system) ;; The primary Syncthing executable goes to "out", while the auxiliary ;; server programs and utility tools go to "utils". This reduces the size @@ -118,8 +118,8 @@ (inputs `(("go-github-com-audriusbutkevicius-cli" ,go-github-com-audriusbutkevicius-cli) - ("go-github-com-audriusbutkevicius-kcp-go" - ,go-github-com-audriusbutkevicius-kcp-go) + ("go-github-com-xtaci-kcp-go" + ,go-github-com-xtaci-kcp-go) ("go-github-com-audriusbutkevicius-go-nat-pmp" ,go-github-com-audriusbutkevicius-go-nat-pmp) ("go-github-com-audriusbutkevicius-pfilter" @@ -157,9 +157,9 @@ ("go-golang-org-x-net-union" ,(go-golang-org-x-net-union)) ("go-golang-org-x-text" ,(go-golang-org-x-text-union)) ("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate) - ("go-github-com-d4l3k-messagediff" - ,go-github-com-d4l3k-messagediff) - ("go-github-com-zillode-notify" ,go-github-com-zillode-notify))) + ("go-github-com-zillode-notify" ,go-github-com-zillode-notify) + ;; For tests + ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff))) (synopsis "Decentralized continuous filesystem synchronization") (description "Syncthing is a peer-to-peer file synchronization tool that supports a wide variety of computing platforms. It uses the Block Exchange @@ -358,11 +358,11 @@ structs in the Go programming language.") (license (package-license go-github-com-gogo-protobuf)))) (define-public go-github-com-gogo-protobuf - (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63") - (revision "0")) + (let ((commit "35b81a066e522fb86ece043a8ef1dbfa10b4fed1") + (revision "1")) (package (name "go-github-com-gogo-protobuf") - (version (git-version "0.2" revision commit)) + (version (git-version "0.5" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -371,7 +371,7 @@ structs in the Go programming language.") (file-name (git-file-name name version)) (sha256 (base32 - "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw")))) + "194k6cls2g654df54x5rzrn5nqrfk8yz1jymm667ajjvzcplidja")))) (build-system go-build-system) (arguments `(#:import-path "github.com/gogo/protobuf/proto" @@ -427,8 +427,8 @@ generation features. This code generation is used to achieve: (license bsd-3)))) (define-public go-github-com-golang-groupcache-lru - (let ((commit "72d04f9fcdec7d3821820cc4a6f150eae553639a") - (revision "0")) + (let ((commit "84a468cf14b4376def5d68c722b139b881c450a4") + (revision "1")) (package (name "go-github-com-golang-groupcache-lru") (version (git-version "0.0.0" revision commit)) @@ -440,7 +440,7 @@ generation features. This code generation is used to achieve: (file-name (git-file-name name version)) (sha256 (base32 - "1l3ryh7bq1f2mhr3sd3x1wav99pd27r8l3ydgqh375wn4x7v5qd6")))) + "1ky1r9qh54yi9zp2769qrjngzndgd8fn7mja2qfac285n06chmcn")))) (build-system go-build-system) (arguments `(#:import-path "github.com/golang/groupcache/lru" @@ -502,8 +502,8 @@ address of the default LAN gateway.") (license bsd-3)))) (define-public go-github-com-kardianos-osext - (let ((commit "9d302b58e975387d0b4d9be876622c86cefe64be") - (revision "0")) + (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14") + (revision "1")) (package (name "go-github-com-kardianos-osext") (version (git-version "0.0.0" revision commit)) @@ -515,7 +515,7 @@ address of the default LAN gateway.") (file-name (git-file-name name version)) (sha256 (base32 - "0r6f727s16g4f66k8c2z1xh8ga1p53hg9g2v95pmhd1i60fhy47a")))) + "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz")))) (build-system go-build-system) (arguments `(#:import-path "github.com/kardianos/osext")) @@ -527,8 +527,8 @@ finding resources located relative to the executable file.") (license bsd-3)))) (define-public go-github-com-lib-pq - (let ((commit "2704adc878c21e1329f46f6e56a1c387d788ff94") - (revision "0")) + (let ((commit "83612a56d3dd153a94a629cd64925371c9adad78") + (revision "1")) (package (name "go-github-com-lib-pq") (version (git-version "0.0.0" revision commit)) @@ -540,7 +540,7 @@ finding resources located relative to the executable file.") (file-name (git-file-name name version)) (sha256 (base32 - "160fmvi7bczxw3i3h5s821hv029ph5ld8x3c36b4cz2sr30wp110")))) + "12334yigh284k5cdvb9pgxaq6n78205jcbp75ajz44vvfd4wi6qc")))) (build-system go-build-system) (arguments `(#:import-path "github.com/lib/pq" @@ -554,8 +554,8 @@ database/sql package.") (license expat)))) (define-public go-github-com-minio-sha256-simd - (let ((commit "6124d070eb4e7001c244b6ccc282620a5dce44a0") - (revision "0")) + (let ((commit "ad98a36ba0da87206e3378c556abbfeaeaa98668") + (revision "1")) (package (name "go-github-com-minio-sha256-simd") (version (git-version "0.0.0" revision commit)) @@ -567,7 +567,7 @@ database/sql package.") (file-name (git-file-name name version)) (sha256 (base32 - "1azrdp7x7vl9ngkxs890blspz0345xhadvssdlb0435hdqa0gkll")))) + "0yfnqn3kqdnlfm54yvc4fr5vpdmwdi2kw571nlkbpmy8ldhsqqfi")))) (build-system go-build-system) (arguments `(#:import-path "github.com/minio/sha256-simd")) @@ -579,40 +579,38 @@ architectures.") (license asl2.0)))) (define-public go-github-com-oschwald-geoip2-golang - (let ((commit "0fd242da7906550802871efe101abfdb1cc550a8") - (revision "0")) - (package - (name "go-github-com-oschwald-geoip2-golang") - (version (git-version "0.1.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/oschwald/geoip2-golang") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0kglnix0r5sjkk346ip30l7dwq1gv2g4wjy2cjmgjvb8x778hnww")))) - (build-system go-build-system) - (propagated-inputs - `(("go-github-com-oschwald-maxminddb-golang" - ,go-github-com-oschwald-maxminddb-golang) - ("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) - (arguments - `(#:import-path "github.com/oschwald/geoip2-golang" - #:tests? #f)) ; Requires some unpackaged software and test data - (synopsis "MaxMind GeoIP2 reader") - (description "This packages provides a library for reading MaxMind + (package + (name "go-github-com-oschwald-geoip2-golang") + (version "1.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oschwald/geoip2-golang") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0v698bzs8lb59cqpsa9cf4sl8rdsvnnmaravhbfn6g6i511ppclr")))) + (build-system go-build-system) + (propagated-inputs + `(("go-github-com-oschwald-maxminddb-golang" + ,go-github-com-oschwald-maxminddb-golang) + ("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) + (arguments + `(#:import-path "github.com/oschwald/geoip2-golang" + #:tests? #f)) ; Requires some unpackaged software and test data + (synopsis "MaxMind GeoIP2 reader") + (description "This packages provides a library for reading MaxMind GeoLite2 and GeoIP2 databases in Go.") - (home-page "https://github.com/oschwald/geoip2-golang") - (license isc)))) + (home-page "https://github.com/oschwald/geoip2-golang") + (license isc))) (define-public go-github-com-oschwald-maxminddb-golang - (let ((commit "697da8075d2061aa8ed639346443f5d3e8c80b30") + (let ((commit "26fe5ace1c706491c2936119e1dc69c1a9c04d7f") (revision "0")) (package (name "go-github-com-oschwald-maxminddb-golang") - (version (git-version "0.2.0" revision commit)) + (version (git-version "1.2.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -621,7 +619,7 @@ GeoLite2 and GeoIP2 databases in Go.") (file-name (git-file-name name version)) (sha256 (base32 - "00kkxzlvra0kcbkl56wp0dp1yw3cmfjqqlwbqy7bq5r34s7iavq0")))) + "1i6d935f3cv9djpjvc2ibh8aps8jqvg454b9pkwg2h98al759ggk")))) (build-system go-build-system) (propagated-inputs `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) @@ -659,8 +657,8 @@ higher-level API for doing so.") (license expat)))) (define-public go-github-com-rcrowley-go-metrics - (let ((commit "1f30fe9094a513ce4c700b9a54458bbb0c96996c") - (revision "0")) + (let ((commit "e181e095bae94582363434144c61a9653aff6e50") + (revision "1")) (package (name "go-github-com-rcrowley-go-metrics") (version (git-version "0.0.0" revision commit)) @@ -672,7 +670,7 @@ higher-level API for doing so.") (file-name (git-file-name name version)) (sha256 (base32 - "1hvbiaq4b6dqgjz6jkkxglfh9gf71zin6qsg508sh0r0ixfavrzj")))) + "1pwkyw801hy7n94skzk6h177zqcil6ayrmb5gs3jdpsfayh8ia5w")))) (build-system go-build-system) (arguments `(#:import-path "github.com/rcrowley/go-metrics")) @@ -685,8 +683,8 @@ Metrics library.") (license bsd-2)))) (define-public go-github-com-sasha-s-go-deadlock - (let ((commit "341000892f3dd25f440e6231e8533eb3688ed7ec") - (revision "0")) + (let ((commit "03d40e5dbd5488667a13b3c2600b2f7c2886f02f") + (revision "1")) (package (name "go-github-com-sasha-s-go-deadlock") (version (git-version "0.1.0" revision commit)) @@ -698,7 +696,7 @@ Metrics library.") (file-name (git-file-name name version)) (sha256 (base32 - "1bcdyxwm5qpqynxahwaahbqi7ghgdajmg7b4276pdalkxkxkhsv8")))) + "13p7b7pakd9k1c2k0fs1hfim3c8mivz679977ai6zb01s4aw7gyg")))) (build-system go-build-system) (arguments `(#:import-path "github.com/sasha-s/go-deadlock")) @@ -711,8 +709,8 @@ run-time in Go.") (license asl2.0)))) (define-public go-github-com-syndtr-goleveldb - (let ((commit "549b6d6b1c0419617182954dd77770f2e2685ed5") - (revision "1")) + (let ((commit "34011bf325bce385408353a30b101fe5e923eb6e") + (revision "2")) (package (name "go-github-com-syndtr-goleveldb") (version (git-version "0.0.0" revision commit)) @@ -724,7 +722,7 @@ run-time in Go.") (file-name (git-file-name name version)) (sha256 (base32 - "1hs8bsxyjfq9d7000i1jk8bq7p2ab8snz23air13aw5ra2ri36bq")))) + "097ja0vyj6p27zrxha9nhk09fj977xsvhmd3bk2hbyvnbw4znnhd")))) (build-system go-build-system) (propagated-inputs `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy))) @@ -739,11 +737,11 @@ database in Go.") (license bsd-2)))) (define-public go-github-com-thejerf-suture - (let ((commit "0ac47afae95ad5bc5184ed346bc945168e883f5d") + (let ((commit "87e298c9891673c9ae76e10c2c9be589127e5f49") (revision "0")) (package (name "go-github-com-thejerf-suture") - (version (git-version "0.0.0" revision commit)) + (version (git-version "2.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -752,7 +750,7 @@ database in Go.") (file-name (git-file-name name version)) (sha256 (base32 - "0f860fkaibnnkmh4q6q9yn3r26sraaj8wx9irwm76cmsp48zcxfy")))) + "0srw0g94z6jplvlsjqsr6wf7885alnbb6h4fhvbg2i7q1ia5ldy2")))) (build-system go-build-system) (arguments `(#:import-path "github.com/thejerf/suture")) @@ -921,8 +919,8 @@ libraries are in the same directory.") (license (package-license go-golang-org-x-crypto-bcrypt)))) (define-public go-golang-org-x-crypto-bcrypt - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-bcrypt") (version (git-version "0.0.0" revision commit)) @@ -935,7 +933,7 @@ libraries are in the same directory.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/bcrypt" @@ -958,8 +956,8 @@ password hashing function.") (license bsd-3)))) (define-public go-golang-org-x-crypto-blowfish - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-blowfish") (version (git-version "0.0.0" revision commit)) @@ -972,7 +970,7 @@ password hashing function.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/blowfish" @@ -995,8 +993,8 @@ symmetric-key block cipher.") (license bsd-3)))) (define-public go-golang-org-x-crypto-pbkdf2 - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-pbkdf2") (version (git-version "0.0.0" revision commit)) @@ -1009,7 +1007,7 @@ symmetric-key block cipher.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/pbkdf2" @@ -1032,8 +1030,8 @@ derivation function.") (license bsd-3)))) (define-public go-golang-org-x-crypto-tea - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-tea") (version (git-version "0.0.0" revision commit)) @@ -1046,7 +1044,7 @@ derivation function.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/tea" @@ -1069,8 +1067,8 @@ Algorithm (TEA) block cipher.") (license bsd-3)))) (define-public go-golang-org-x-crypto-salsa20 - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-salsa20") (version (git-version "0.0.0" revision commit)) @@ -1083,7 +1081,7 @@ Algorithm (TEA) block cipher.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/salsa20" @@ -1106,8 +1104,8 @@ stream cipher.") (license bsd-3)))) (define-public go-golang-org-x-crypto-cast5 - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-cast5") (version (git-version "0.0.0" revision commit)) @@ -1120,7 +1118,7 @@ stream cipher.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/cast5" @@ -1143,8 +1141,8 @@ symmetric-key block cipher.") (license bsd-3)))) (define-public go-golang-org-x-crypto-twofish - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-twofish") (version (git-version "0.0.0" revision commit)) @@ -1157,7 +1155,7 @@ symmetric-key block cipher.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/twofish" @@ -1180,8 +1178,8 @@ symmetric-key block cipher.") (license bsd-3)))) (define-public go-golang-org-x-crypto-xtea - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-xtea") (version (git-version "0.0.0" revision commit)) @@ -1194,7 +1192,7 @@ symmetric-key block cipher.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/xtea" @@ -1246,8 +1244,8 @@ Tiny Encryption Algorithm (XTEA) block cipher.") (license (package-license go-golang-org-x-net-ipv4)))) (define-public go-golang-org-x-net-ipv4 - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-ipv4") (version (git-version "0.0.0" revision commit)) @@ -1259,7 +1257,7 @@ Tiny Encryption Algorithm (XTEA) block cipher.") (file-name (git-file-name name version)) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/ipv4" @@ -1271,8 +1269,8 @@ socket options for the Internet Protocol version 4.") (license bsd-3)))) (define-public go-golang-org-x-net-bpf - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-bpf") (version (git-version "0.0.0" revision commit)) @@ -1285,7 +1283,7 @@ socket options for the Internet Protocol version 4.") version "-checkout")) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/bpf" @@ -1297,8 +1295,8 @@ Packet Filter (BPF) virtual machine.") (license bsd-3)))) (define-public go-golang-org-x-net-context - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-context") (version (git-version "0.0.0" revision commit)) @@ -1311,7 +1309,7 @@ Packet Filter (BPF) virtual machine.") version "-checkout")) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/context" @@ -1324,8 +1322,8 @@ request-scoped values across API boundaries and between processes.") (license bsd-3)))) (define-public go-golang-org-x-net-internal-iana - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-internal-iana") (version (git-version "0.0.0" revision commit)) @@ -1338,7 +1336,7 @@ request-scoped values across API boundaries and between processes.") version "-checkout")) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/internal/iana" @@ -1350,8 +1348,8 @@ number resources managed by the Internet Assigned Numbers Authority (IANA).") (license bsd-3)))) (define-public go-golang-org-x-net-ipv6 - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-ipv6") (version (git-version "0.0.0" revision commit)) @@ -1364,7 +1362,7 @@ number resources managed by the Internet Assigned Numbers Authority (IANA).") version "-checkout")) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/ipv6" @@ -1376,8 +1374,8 @@ IP-level socket options for the Internet Protocol version 6.") (license bsd-3)))) (define-public go-golang-org-x-net-proxy - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-proxy") (version (git-version "0.0.0" revision commit)) @@ -1390,7 +1388,7 @@ IP-level socket options for the Internet Protocol version 6.") version "-checkout")) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/proxy" @@ -1402,8 +1400,8 @@ for a variety of protocols to proxy network data.") (license bsd-3)))) (define-public go-golang-org-x-sys-unix - (let ((commit "f3918c30c5c2cb527c0b071a27c35120a6c0719a") - (revision "0")) + (let ((commit "83801418e1b59fb1880e363299581ee543af32ca") + (revision "1")) (package (name "go-golang-org-x-sys-unix") (version (git-version "0.0.0" revision commit)) @@ -1415,11 +1413,19 @@ for a variety of protocols to proxy network data.") (file-name (git-file-name name version)) (sha256 (base32 - "02967mw0nq7hp39bcf8rdbid4jgz2fn6hd1x03mmavvca03scxbh")))) + "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/sys/unix" - #:unpack-path "golang.org/x/sys")) + #:unpack-path "golang.org/x/sys" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + (pk (getcwd)) + (substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go" + (("/usr/bin") "/tmp")) + #t))))) (synopsis "Go support for low-level system interaction") (description "This package provides @code{unix}, which offers Go support for low-level interaction with the operating system.") @@ -1452,8 +1458,8 @@ for low-level interaction with the operating system.") (license (package-license go-golang-org-x-text-transform)))) (define-public go-golang-org-x-text-transform - (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8") - (revision "0")) + (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3") + (revision "1")) (package (name "go-golang-org-x-text-transform") (version (git-version "0.0.0" revision commit)) @@ -1466,7 +1472,7 @@ for low-level interaction with the operating system.") version "-checkout")) (sha256 (base32 - "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d")))) + "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/text/transform" @@ -1480,8 +1486,8 @@ between character sets.") (license bsd-3)))) (define-public go-golang-org-x-text-unicode-norm - (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8") - (revision "0")) + (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3") + (revision "1")) (package (name "go-golang-org-x-text-unicode-norm") (version (git-version "0.0.0" revision commit)) @@ -1494,7 +1500,7 @@ between character sets.") version "-checkout")) (sha256 (base32 - "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d")))) + "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/text/unicode/norm" @@ -1556,8 +1562,8 @@ and RFC 5389).") (license asl2.0)))) (define-public go-github-com-chmduquesne-rollinghash-adler32 - (let ((commit "043b8fdecc9816f0011a056f6d92f9a091ab63dd") - (revision "0")) + (let ((commit "3dc7875a1f890f9bcf0619adb5571fc6f7d516bb") + (revision "1")) (package (name "go-github-com-chmduquesne-rollinghash-adler32") (version (git-version "0.0.0" revision commit)) @@ -1570,7 +1576,7 @@ and RFC 5389).") (file-name (git-file-name name version)) (sha256 (base32 - "0pc87laxgydqv03bdirfv32y9k0bdk2cwjxn28yh42nvay9p6y0k")))) + "0frl021qdqcdyk9fccw6x1v2byvh0hls4rsrdjih5jgqpc18kx6y")))) (build-system go-build-system) (arguments '(#:import-path "github.com/chmduquesne/rollinghash/adler32" @@ -1581,33 +1587,34 @@ rolling hash.") (home-page "https://github.com/chmduquesne/rollinghash") (license expat)))) -(define-public go-github-com-audriusbutkevicius-kcp-go - (let ((commit "8ae5f528469c6ab76110f41eb7a51341b7efb946") - (revision "1")) +(define-public go-github-com-xtaci-kcp-go + (let ((commit "86eebd5cadb519b7c9306082c7eb3bcee2c49a7b") + (revision "0")) (package - (name "go-github-com-audriusbutkevicius-kcp-go") + (name "go-github-com-xtaci-kcp-go") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/AudriusButkevicius/kcp-go") + (url "https://github.com/xtaci/kcp-go") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "1bhg7bfc0r4a7i516xasq3i5ln15lsalm7i53b4nchba6db7mq14")))) + "1mdfsya4y04nycfgsk9ghm67zpim5pw78si3f1566xgrv4ghl0ni")))) (build-system go-build-system) (propagated-inputs `(("go-golang-org-x-net-ipv4" ,go-golang-org-x-net-ipv4) - ("go-github-com-templexxx-reedsolomon" - ,go-github-com-templexxx-reedsolomon) + ("go-github-com-klauspost-reedsolomon" + ,go-github-com-klauspost-reedsolomon) ("go-github-com-tjfoc-gmsm-sm4" ,go-github-com-tjfoc-gmsm-sm4) ("go-github-com-pkg-errors" ,go-github-com-pkg-errors) ("go-golang-org-x-crypto" ,(go-golang-org-x-crypto-union)) ("go-github-com-templexxx-xor" ,go-github-com-templexxx-xor))) (arguments - '(#:import-path "github.com/AudriusButkevicius/kcp-go" + '(#:import-path "github.com/xtaci/kcp-go" + ;; XXX update comment ;; 'TestListenerClose' is known to fail. It seems that the test suite ;; is not being used upstream: ;; https://github.com/AudriusButkevicius/kcp-go/pull/1 @@ -1620,35 +1627,35 @@ over UDP packets.") (license expat)))) (define-public go-github-com-templexxx-xor - (let ((commit "42f9c041c330b560afb991153bf183c25444bcdc") - (revision "0")) - (package - (name "go-github-com-templexxx-xor") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/templexxx/xor.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0ixzk64nyyzas4lyqxdih824xg5f5vph18vyiibmnflwd61m0i78")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/templexxx/xor")) - (synopsis "XOR in Go") - (description "This packages provides a Go implementation of XOR.") - (home-page "https://github.com/templexxx/xor") - (license expat)))) + (package + (name "go-github-com-templexxx-xor") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/templexxx/xor.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0v1maiii0sggmxk9bgpy6pypb40j3hy2328pc4kd5bldkpdb67d5")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/templexxx/xor")) + (propagated-inputs + `(("go-github-com-templexxx-cpufeat" ,go-github-com-templexxx-cpufeat))) + (synopsis "XOR in Go") + (description "This packages provides a Go implementation of XOR.") + (home-page "https://github.com/templexxx/xor") + (license expat))) (define-public go-github-com-xtaci-smux - (let ((commit "0f6b9aaecaaf354357adc7def9239011ad276776") + (let ((commit "c3e18246ff2252a6e9d6b529fcbf22ae5c74c007") (revision "0")) (package (name "go-github-com-xtaci-smux") - (version (git-version "0.0.0" revision commit)) + (version (git-version "1.0.6" revision commit)) (source (origin (method git-fetch) @@ -1658,7 +1665,7 @@ over UDP packets.") (file-name (git-file-name name version)) (sha256 (base32 - "0wx9j0id2f5iqvyalhm4i80fr9k25klr7qqj8sd9acwp5vfl5fas")))) + "1dfmxd9g31idldhq6n7r998gi4jw51ji3xvkjrzypsw2ypbjx1dz")))) (build-system go-build-system) (propagated-inputs `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors))) @@ -1672,8 +1679,8 @@ ordering, such as TCP or KCP, and provides stream-oriented multiplexing.") (license expat)))) (define-public go-github-com-pkg-errors - (let ((commit "ff09b135c25aae272398c51a07235b90a75aa4f0") - (revision "0")) + (let ((commit "e881fd58d78e04cf6d0de1217f8707c8cc2249bc") + (revision "1")) (package (name "go-github-com-pkg-errors") (version (git-version "0.0.0" revision commit)) @@ -1685,7 +1692,7 @@ ordering, such as TCP or KCP, and provides stream-oriented multiplexing.") (file-name (git-file-name name version)) (sha256 (base32 - "0pwl6v3hmc22zp32gkyqykl4kg69xk1mlp0vmhgd1f44difd5fvz")))) + "0vfhj598jp6dzy4pbyjdrqxzb5kppw8ggvfh78g80nz11r34xnzs")))) (build-system go-build-system) (arguments `(#:import-path "github.com/pkg/errors")) @@ -1696,8 +1703,8 @@ error handling primitives in Go.") (license bsd-2)))) (define-public go-golang-org-x-time-rate - (let ((commit "f51c12702a4d776e4c1fa9b0fabab841babae631") - (revision "0")) + (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7") + (revision "1")) (package (name "go-golang-org-x-time-rate") (version (git-version "0.0.0" revision commit)) @@ -1709,7 +1716,7 @@ error handling primitives in Go.") (file-name (git-file-name name version)) (sha256 (base32 - "07wc6g2fvafkr6djsscm0jpbpl4135khhb6kpyx1953hi5d1jvyy")))) + "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/time/rate" @@ -1795,30 +1802,6 @@ using sh's word-splitting rules.") (home-page "https://github.com/kballard/go-shellquote") (license expat)))) -(define-public go-github-com-templexxx-reedsolomon - (package - (name "go-github-com-templexxx-reedsolomon") - (version "0.1.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/templexxx/reedsolomon.git") - (commit version))) - (sha256 - (base32 - "05yfi6dq2mwaw6jf9vq2qhpw8vb9y94b3zi6mpfcpma262rxdkg4")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/templexxx/reedsolomon")) - (propagated-inputs - `(("go-github-com-templexxx-cpufeat" - ,go-github-com-templexxx-cpufeat))) - (synopsis "Reed-Solomon Erasure Coding in Go") - (description "This package provides and implemenation of Reed-Solomon -Erasure Coding in Go.") - (home-page "https://github.com/templexxx/reedsolomon") - (license expat))) - (define-public go-github-com-templexxx-cpufeat (let ((commit "3794dfbfb04749f896b521032f69383f24c3687e") (revision "0")) @@ -1844,8 +1827,8 @@ processor feature detection used by the Go standard libary.") (license bsd-3)))) (define-public go-github-com-tjfoc-gmsm-sm4 - (let ((commit "0f4904804c0f24f1784e10195a4144fcffa86a85") - (revision "0")) + (let ((commit "98aa888b79d8de04afe0fccf45ed10594efc858b") + (revision "1")) (package (name "go-github-com-tjfoc-gmsm-sm4") (version (git-version "0.0.0" revision commit)) @@ -1857,7 +1840,7 @@ processor feature detection used by the Go standard libary.") (file-name (git-file-name name version)) (sha256 (base32 - "1k56gx2ky0c5kf4icafd7zr809lliqzx2mn88lb6d52ljfpf77q5")))) + "1ii4imnz3ims2s23pdv0l4ijzxjsvl82h4yzgfqm5y809ph6pjq9")))) (build-system go-build-system) (arguments '(#:import-path "github.com/tjfoc/gmsm/sm4" @@ -1870,8 +1853,8 @@ Authentication and Privacy Infrastructure).") (license asl2.0)))) (define-public go-github-com-zillode-notify - (let ((commit "54e3093eb7377fd139c4605f475cc78e83610b9d") - (revision "0")) + (let ((commit "8fff849a2026ce7a59f67ed9747dd9c7adc8bd0b") + (revision "1")) (package (name "go-github-com-zillode-notify") (version (git-version "0.0.0" revision commit)) @@ -1883,7 +1866,7 @@ Authentication and Privacy Infrastructure).") (file-name (git-file-name name version)) (sha256 (base32 - "0xmj0bh15hqbzq5qsbi2nb2lihl1pqdh1vwalwmxywnda3w68xj6")))) + "1aazci21y85k1c02dlvdfx926vxb3j4i96fn27s7zxmqjlk7l3ga")))) (build-system go-build-system) (arguments '(#:import-path "github.com/zillode/notify")) @@ -1894,3 +1877,53 @@ Authentication and Privacy Infrastructure).") notification library in Go.") (home-page "https://github.com/zillode/notify") (license expat)))) + +(define-public go-github-com-klauspost-cpuid + (let ((commit "eae9b3e628d72774e13bdf024e78c0802f85a5b9") + (revision "0")) + (package + (name "go-github-com-klauspost-cpuid") + (version (git-version "1.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/klauspost/cpuid.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dgxlsxdfhfapmz1qlvc919m3kcbmfqcfpxk78zl9am5zc3zr689")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/klauspost/cpuid")) + (synopsis "CPU feature identification library") + (description "This package provides @code{cpuid}, a Go library that provides information about the CPU running the current program") + (home-page "https://github.com/klauspost/cpuid") + (license expat)))) + +(define-public go-github-com-klauspost-reedsolomon + (let ((commit "0b30fa71cc8e4e9010c9aba6d0320e2e5b163b29") + (revision "0")) + (package + (name "go-github-com-klauspost-reedsolomon") + (version (git-version "1.6" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/klauspost/reedsolomon.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04jvf65ybsa7w4d7s2n0s174p0q2fl0dqd5hhn2krw66z9i3rc6d")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/klauspost/reedsolomon")) + (propagated-inputs + `(("go-github-com-klauspost-cpuid" + ,go-github-com-klauspost-cpuid))) + (synopsis "Reed-Solomon Erasure Coding in Go") + (description "This package provides and implemenation of Reed-Solomon +Erasure Coding in Go.") + (home-page "https://github.com/klauspost/reedsolomon") + (license expat)))) diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm index 086b132b79..3e0cbe832a 100644 --- a/gnu/packages/syndication.scm +++ b/gnu/packages/syndication.scm @@ -25,59 +25,9 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages gettext) #:use-module (gnu packages ncurses) - #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages ruby) - #:use-module (gnu packages xml) - #:use-module (gnu packages web)) - -(define-public newsbeuter - (package - (name "newsbeuter") - (version "2.9") - (source - (origin - (method url-fetch) - (uri (string-append "https://newsbeuter.org/downloads/newsbeuter-" - version ".tar.gz")) - (patches (search-patches "newsbeuter-CVE-2017-12904.patch" - "newsbeuter-CVE-2017-14500.patch")) - (sha256 - (base32 - "1j1x0hgwxz11dckk81ncalgylj5y5fgw5bcmp9qb5hq9kc0vza3l")))) - (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'configure - (lambda _ - (substitute* "config.sh" - ;; try to remove this at the next release - (("ncursesw5") "ncursesw6")) - #t))) - #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) - #:test-target "test")) - (native-inputs - `(("gettext" ,gettext-minimal) - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("ruby" ,ruby))) ; for tests - (inputs - `(("curl" ,curl) - ("json-c" ,json-c-0.12) ; check whether json-c-0.12 can be removed - ("ncurses" ,ncurses) - ("stfl" ,stfl) - ("sqlite" ,sqlite) - ("libxml2" ,libxml2))) - (home-page "https://newsbeuter.org/") - (synopsis "Text mode rss feed reader with podcast support") - (description "Newsbeuter is an innovative RSS feed reader for the text -console. It supports OPML import/exports, HTML rendering, podcast (podbeuter), -offline reading, searching and storing articles to your filesystem, and many -more features. Its user interface is coherent, easy to use, and might look -common to users of @command{mutt} and @command{slrn}.") - (license (list license:gpl2+ ; filter/* - license:expat)))) ; everything else + #:use-module (gnu packages web) + #:use-module (gnu packages xml)) (define-public newsboat (package @@ -128,3 +78,7 @@ file system, and many more features. It started life as a fork of the currently unmaintained Newsbeuter.") (license (list license:gpl2+ ; filter/* license:expat)))) ; everything else + +(define-public newsbeuter + ;; Newsbeuter is unmaintained with multiple CVEs, and was forked as Newsboat. + (deprecated-package "newsbeuter" newsboat)) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index cf1ab93c39..53bc9f950b 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Francesco Frassinelli <fraph24@gmail.com> ;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -209,17 +210,17 @@ internet.") (define-public libsrtp (package (name "libsrtp") - (version "1.5.4") + (version "1.6.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/cisco/libsrtp/archive/v" + (method url-fetch) + (uri (string-append "https://github.com/cisco/libsrtp/archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1w2g623qkd7gdyydglx2hr4s2y237lg0nszjmy7z8d2iq8hvb9sn")))) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1ppdqsrx5ni54vmd4kdzzmvgmf5ixb04w0jw7idy8mad6l27jghs")))) (native-inputs - `(("psmisc" ,psmisc) ;some tests require 'killall' + `(("psmisc" ,psmisc) ;some tests require 'killall' ("procps" ,procps))) (build-system gnu-build-system) (arguments @@ -234,7 +235,7 @@ internet.") (("mips\\)") "mips_est)")) #t)) (add-after 'unpack 'patch-dictionary-location - ;; With the above changes, the rtpw_test.sh test finally runs, and fails + ;; With the above changes, the rtpw_test.sh test finally runs, and fails. (lambda _ (substitute* "test/rtpw.c" (("/usr/share/dict/words") @@ -243,9 +244,10 @@ internet.") (("words.txt") "FAQ")) #t))))) (synopsis "Secure RTP (SRTP) Reference Implementation") - (description "This package provides an implementation of the Secure -Real-time Transport Protocol (SRTP), the Universal Security Transform (UST), -and a supporting cryptographic kernel.") + (description + "This package provides an implementation of the Secure Real-time Transport +Protocol (@dfn{SRTP}), the Universal Security Transform (@dfn{UST}), and a +supporting cryptographic kernel.") (home-page "https://github.com/cisco/libsrtp") (license license:bsd-3))) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 2fb1d1495e..1f5fe6aba2 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +38,6 @@ #:use-module (guix build-system ant) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) - #:use-module (guix build-system trivial) #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages autotools) @@ -452,36 +452,29 @@ spreadsheets and outputs it in comma-separated-value format, and (define-public utfcpp (package (name "utfcpp") - (version "2.3.4") + (version "2.3.5") (source (origin (method url-fetch) (uri - (string-append - "mirror://sourceforge/utfcpp/utf8cpp_2x/Release%20" - version "/utf8_v" - (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) - ".zip")) - (file-name (string-append name "-" version ".zip")) + (string-append "https://github.com/nemtrif/utfcpp/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1vqhs0aipcvvdrwcs7h3jsryg6mgbmc4s34n5cm6d36q4nxwwwrk")))) - (build-system trivial-build-system) + "0gcqcfw19kfim8xw29xdp91l310yfjyrqdj2zsx8xx02dkpy1zzk")))) + (build-system cmake-build-system) (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let ((source (assoc-ref %build-inputs "source")) - (out (assoc-ref %outputs "out")) - (unzip (string-append (assoc-ref %build-inputs "unzip") - "/bin/unzip"))) - (mkdir-p out) - (with-directory-excursion out - (system* unzip source) - (mkdir-p "share/doc") - (rename-file "doc" "share/doc/utfcpp") - (rename-file "source" "include")))))) - (native-inputs `(("unzip" ,unzip))) + `(#:out-of-source? #f + #:phases + (modify-phases %standard-phases + (replace 'install ; no install target + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (include (string-append out "/include")) + (doc (string-append out "/share/doc/" ,name))) + (copy-recursively "source" include) + (install-file "README.md" doc) + #t)))))) (home-page "https://github.com/nemtrif/utfcpp") (synopsis "Portable C++ library for handling UTF-8") (description "UTF8-CPP is a C++ library for handling UTF-8 encoded text diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 055916a9a0..4a39100511 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; @@ -47,14 +47,14 @@ (define-public tor (package (name "tor") - (version "0.3.1.9") + (version "0.3.2.9") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "09ixizsr635qyshvrn1m5asjkaz4fm8dx80lc3ajyy0fi7vh86vf")))) + "03qn55c969zynnx71r82iaqnadpzq0qclq0zmjhb3n4qma8pnnj3")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-gcc-hardening" diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index e06aae15de..aadcfb7fbc 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> -;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> +;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> @@ -1547,14 +1547,14 @@ a built-in wiki, built-in file browsing, built-in tickets system, etc.") (define-public stagit (package (name "stagit") - (version "0.5") + (version "0.7.2") (source (origin (method url-fetch) (uri (string-append "https://dl.2f30.org/releases/" name "-" version ".tar.gz")) (sha256 (base32 - "0ym1dwzn2z23hcg53qh1m1g5pfibrfnnlp3sm3z1v4mhz0pgaj56")))) + "1m3s9g1z9szbjrhm8sic91xh6f2bfpi56rskdkqd5wc4wdycpyi5")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No tests diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 22fcdc0564..df9f047b0f 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017 Feng Shu <tumashu@163.com> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com> @@ -1150,7 +1150,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.12.31") + (version "2018.01.07") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1158,7 +1158,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "0cq10ii96lpq3z7l1js0s59sqb4h4yqwdqinl2yf7cdjynvj62xi")))) + "1dp1yk93mngih50p1zjbh8bi5pqh10wicjcmmrdp73cpcp2i2398")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index e2d753aa3d..7acc018632 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,7 +61,8 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1f1j0r996l20cgkvbwpizn7d4yp58cy334b1pvn4kfb5c2dbpdl7")))) + "1f1j0r996l20cgkvbwpizn7d4yp58cy334b1pvn4kfb5c2dbpdl7")) + (patches (search-patches "webkitgtk-mitigate-spectre.patch")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no tests diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index da7620cd3d..655367ac33 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; @@ -155,11 +155,10 @@ simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop.") - (license license:lgpl2.1+) - - ;; It really only supports IA32, but building on x86_64 will have the same - ;; effect as building on i686 anyway. - (supported-systems (delete "mips64el-linux" %supported-systems)))) + ;; Any platform should be able to build wine, but based on '#:system' these + ;; are thr ones we currently support. + (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux")) + (license license:lgpl2.1+))) (define-public wine64 (package diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index dafbdea09e..8c9ef7adfa 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -987,7 +987,7 @@ color temperature should be set to match the lamps in your room.") (define-public xscreensaver (package (name "xscreensaver") - (version "5.37") + (version "5.38") (source (origin (method url-fetch) @@ -996,7 +996,7 @@ color temperature should be set to match the lamps in your room.") version ".tar.gz")) (sha256 (base32 - "1ng5ddzb4k2h1w54pvk9hzxvnxxmc54bc4a2ibk974nzjjjaxivs")))) + "1f58h5rgjbxr4hh40m6zkpkzbzg68l7nqzjwal0b17yysafbmsf6")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 9277f57ad4..e9ab06de42 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -79,6 +79,7 @@ periodic timestamps for seeking.") (define libvorbis (package (name "libvorbis") + (replacement libvorbis/fixed) (version "1.3.5") (source (origin (method url-fetch) @@ -102,6 +103,14 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to "See COPYING in the distribution.")) (home-page "http://xiph.org/vorbis/"))) +(define libvorbis/fixed + (package + (inherit libvorbis) + (source (origin + (inherit (package-source libvorbis)) + (patches (search-patches "libvorbis-CVE-2017-14633.patch" + "libvorbis-CVE-2017-14632.patch")))))) + (define libtheora (package (name "libtheora") diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 6fce328565..c516f3986f 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 Petter <petter@mykolab.ch> +;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1081,6 +1082,61 @@ match and extract data, and elements can be added, deleted or modified using XSLT and EXSLT.") (license license:x11))) +(define-public html-xml-utils + (package + (name "html-xml-utils") + (version "7.4") + (source + (origin + (method url-fetch) + (uri (string-append + "https://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-" + version ".tar.gz")) + (sha256 + (base32 + "04pgrahsfawnzd9pilvirs05pfdgsd7qwvw4dvkb42rgybhw6h95")))) + (build-system gnu-build-system) + (home-page "https://www.w3.org/Tools/HTML-XML-utils/") + (synopsis "Command line utilities to manipulate HTML and XML files") + (description "HTML-XML-utils provides a number of simple utilities for +manipulating and converting HTML and XML files in various ways. The suite +consists of the following tools: + +@itemize + @item @command{asc2xml} convert from @code{UTF-8} to @code{&#nnn;} entities + @item @command{xml2asc} convert from @code{&#nnn;} entities to @code{UTF-8} + @item @command{hxaddid} add IDs to selected elements + @item @command{hxcite} replace bibliographic references by hyperlinks + @item @command{hxcite} mkbib - expand references and create bibliography + @item @command{hxclean} apply heuristics to correct an HTML file + @item @command{hxcopy} copy an HTML file while preserving relative links + @item @command{hxcount} count elements and attributes in HTML or XML files + @item @command{hxextract} extract selected elements + @item @command{hxincl} expand included HTML or XML files + @item @command{hxindex} create an alphabetically sorted index + @item @command{hxmkbib} create bibliography from a template + @item @command{hxmultitoc} create a table of contents for a set of HTML files + @item @command{hxname2id} move some @code{ID=} or @code{NAME=} from A +elements to their parents + @item @command{hxnormalize} pretty-print an HTML file + @item @command{hxnsxml} convert output of hxxmlns back to normal XML + @item @command{hxnum} number section headings in an HTML file + @item @command{hxpipe} convert XML to a format easier to parse with Perl or AWK + @item @command{hxprintlinks} number links and add table of URLs at end of an HTML file + @item @command{hxprune} remove marked elements from an HTML file + @item @command{hxref} generate cross-references + @item @command{hxselect} extract elements that match a (CSS) selector + @item @command{hxtoc} insert a table of contents in an HTML file + @item @command{hxuncdata} replace CDATA sections by character entities + @item @command{hxunent} replace HTML predefined character entities to @code{UTF-8} + @item @command{hxunpipe} convert output of pipe back to XML format + @item @command{hxunxmlns} replace \"global names\" by XML Namespace prefixes + @item @command{hxwls} list links in an HTML file + @item @command{hxxmlns} replace XML Namespace prefixes by \"global names\" +@end itemize +") + (license license:expat))) + (define-public xlsx2csv (package (name "xlsx2csv") diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 210a6871d1..25eefe6f21 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -5748,20 +5749,22 @@ to answer a question. Xmessage can also exit after a specified time.") (define-public xterm (package (name "xterm") - (version "330") + (version "331") (source (origin (method url-fetch) - (uri (string-append "ftp://ftp.invisible-island.net/xterm/" - "xterm-" version ".tgz")) + (uri (list + (string-append "http://invisible-mirror.net/archives/xterm/" + name "-" version ".tgz") + (string-append "ftp://ftp.invisible-island.net/xterm/" + name "-" version ".tgz"))) (sha256 (base32 - "1psnfmqd23v9gxj8a98nzrgvymrk0p1whwqi92gy15bbkzrgkvks")))) + "047gk58hvj64974sg259ss5gixj7pac6halmjfz4cc6r1yimds4s")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--enable-wide-chars" "--enable-256-color" - "--enable-load-vt-fonts" "--enable-i18n" - "--enable-doublechars" "--enable-luit" - "--enable-mini-luit") + '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts" + "--enable-i18n" "--enable-doublechars" + "--enable-luit" "--enable-mini-luit") #:tests? #f)) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index f4681c804d..8e30bcd341 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> @@ -1434,10 +1434,14 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (default #t)) (substitute-urls guix-configuration-substitute-urls ;list of strings (default %default-substitute-urls)) + (chroot-directories guix-configuration-chroot-directories ;list of file-like/strings + (default '())) (max-silent-time guix-configuration-max-silent-time ;integer (default 0)) (timeout guix-configuration-timeout ;integer (default 0)) + (log-compression guix-configuration-log-compression + (default 'bzip2)) (extra-options guix-configuration-extra-options ;list of strings (default '())) (log-file guix-configuration-log-file ;string @@ -1452,39 +1456,49 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (define (guix-shepherd-service config) "Return a <shepherd-service> for the Guix daemon service with CONFIG." - (match config - (($ <guix-configuration> guix build-group build-accounts - authorize-key? keys - use-substitutes? substitute-urls - max-silent-time timeout - extra-options - log-file http-proxy tmpdir) - (list (shepherd-service - (documentation "Run the Guix daemon.") - (provision '(guix-daemon)) - (requirement '(user-processes)) - (start - #~(make-forkexec-constructor - (list #$(file-append guix "/bin/guix-daemon") + (match-record config <guix-configuration> + (guix build-group build-accounts authorize-key? authorized-keys + use-substitutes? substitute-urls max-silent-time timeout + log-compression extra-options log-file http-proxy tmpdir + chroot-directories) + (list (shepherd-service + (documentation "Run the Guix daemon.") + (provision '(guix-daemon)) + (requirement '(user-processes)) + (modules '((srfi srfi-1))) + (start + #~(make-forkexec-constructor + (cons* #$(file-append guix "/bin/guix-daemon") "--build-users-group" #$build-group "--max-silent-time" #$(number->string max-silent-time) "--timeout" #$(number->string timeout) + "--log-compression" #$(symbol->string log-compression) #$@(if use-substitutes? '() '("--no-substitutes")) "--substitute-urls" #$(string-join substitute-urls) - #$@extra-options) - - #:environment-variables - (list #$@(if http-proxy - (list (string-append "http_proxy=" http-proxy)) - '()) - #$@(if tmpdir - (list (string-append "TMPDIR=" tmpdir)) - '())) - - #:log-file #$log-file)) - (stop #~(make-kill-destructor))))))) + #$@extra-options + + ;; Add CHROOT-DIRECTORIES and all their dependencies (if + ;; these are store items) to the chroot. + (append-map (lambda (file) + (append-map (lambda (directory) + (list "--chroot-directory" + directory)) + (call-with-input-file file + read))) + '#$(map references-file chroot-directories))) + + #:environment-variables + (list #$@(if http-proxy + (list (string-append "http_proxy=" http-proxy)) + '()) + #$@(if tmpdir + (list (string-append "TMPDIR=" tmpdir)) + '())) + + #:log-file #$log-file)) + (stop #~(make-kill-destructor)))))) (define (guix-accounts config) "Return the user accounts and user groups for CONFIG." @@ -1514,6 +1528,24 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) #$@(map (cut hydra-key-authorization <> guix) keys)) #~#f)))) +(define* (references-file item #:optional (name "references")) + "Return a file that contains the list of references of ITEM." + (if (struct? item) ;lowerable object + (computed-file name + (with-imported-modules (source-module-closure + '((guix build store-copy))) + #~(begin + (use-modules (guix build store-copy)) + + (call-with-output-file #$output + (lambda (port) + (write (call-with-input-file "graph" + read-reference-graph) + port))))) + #:options `(#:local-build? #f + #:references-graphs (("graph" ,item)))) + (plain-file name "()"))) + (define guix-service-type (service-type (name 'guix) @@ -1523,6 +1555,16 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (service-extension activation-service-type guix-activation) (service-extension profile-service-type (compose list guix-configuration-guix)))) + + ;; Extensions can specify extra directories to add to the build chroot. + (compose concatenate) + (extend (lambda (config directories) + (guix-configuration + (inherit config) + (chroot-directories + (append (guix-configuration-chroot-directories config) + directories))))) + (default-value (guix-configuration)) (description "Run the build daemon of GNU@tie{}Guix, aka. @command{guix-daemon}."))) diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm new file mode 100644 index 0000000000..49a65db4b5 --- /dev/null +++ b/gnu/services/monitoring.scm @@ -0,0 +1,91 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services monitoring) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (gnu packages admin) + #:use-module (gnu packages monitoring) + #:use-module (gnu system shadow) + #:use-module (guix gexp) + #:use-module (guix records) + #:use-module (ice-9 match) + #:export (darkstat-configuration + darkstat-service-type)) + + +;;; +;;; darkstat +;;; + +(define-record-type* <darkstat-configuration> + darkstat-configuration make-darkstat-configuration darkstat-configuration? + (package darkstat-configuration-package + (default darkstat)) + (interface darkstat-configuration-interface) + (port darkstat-configuration-port + (default "667")) + (bind-address darkstat-configuration-bind-address + (default "127.0.0.1")) + (base darkstat-configuration-base + (default "/"))) + +(define %darkstat-accounts + (list (user-account + (name "darkstat") + (group "darkstat") + (system? #t) + (comment "darkstat daemon user") + (home-directory "/var/lib/darkstat") + (shell (file-append shadow "/sbin/nologin"))) + (user-group + (name "darkstat") + (system? #t)))) + +(define darkstat-shepherd-service + (match-lambda + (($ <darkstat-configuration> + package interface port bind-address base) + (shepherd-service + (documentation "Network statistics gatherer.") + (provision '(darkstat)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list #$(file-append package "/sbin/darkstat") + "-i" #$interface + "-p" #$port + "-b" #$bind-address + "--base" #$base + "--syslog" "--no-daemon" + "--chroot" "/var/lib/darkstat" + "--user" "darkstat" + "--import" "darkstat.db" + "--export" "darkstat.db"))) + (stop #~(make-kill-destructor)))))) + +(define darkstat-service-type + (service-type + (name 'darkstat) + (description + "Run @command{darkstat} to serve network traffic statictics reports over +HTTP.") + (extensions + (list (service-extension account-service-type + (const %darkstat-accounts)) + (service-extension shepherd-root-service-type + (compose list darkstat-shepherd-service)))))) diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index 845cdb07ba..bf71e7f26a 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ryan Moe <ryan.moe@gmail.com> +;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,16 +24,29 @@ #:use-module (gnu services dbus) #:use-module (gnu services shepherd) #:use-module (gnu system shadow) + #:use-module (gnu system file-systems) #:use-module (gnu packages admin) #:use-module (gnu packages virtualization) #:use-module (guix records) #:use-module (guix gexp) #:use-module (guix packages) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-26) + #:use-module (rnrs bytevectors) #:use-module (ice-9 match) #:export (libvirt-configuration libvirt-service-type - virtlog-service-type)) + virtlog-service-type + + %qemu-platforms + lookup-qemu-platforms + qemu-platform? + qemu-platform-name + + qemu-binfmt-configuration + qemu-binfmt-configuration? + qemu-binfmt-service-type)) (define (uglify-field-name field-name) (let ((str (symbol->string field-name))) @@ -490,3 +504,254 @@ potential infinite waits blocking libvirt.")) (generate-documentation `((libvirt-configuration ,libvirt-configuration-fields)) 'libvirt-configuration)) + + +;;; +;;; Transparent QEMU emulation via binfmt_misc. +;;; + +;; Platforms that QEMU can emulate. +(define-record-type <qemu-platform> + (qemu-platform name family magic mask) + qemu-platform? + (name qemu-platform-name) ;string + (family qemu-platform-family) ;string + (magic qemu-platform-magic) ;bytevector + (mask qemu-platform-mask)) ;bytevector + +(define-syntax bv + (lambda (s) + "Expand the given string into a bytevector." + (syntax-case s () + ((_ str) + (string? (syntax->datum #'str)) + (let ((bv (u8-list->bytevector + (map char->integer + (string->list (syntax->datum #'str)))))) + bv))))) + +;;; The platform descriptions below are taken from +;;; 'scripts/qemu-binfmt-conf.sh' in QEMU. + +(define %i386 + (qemu-platform "i386" "i386" + (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00") + (bv "\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) + +(define %i486 + (qemu-platform "i486" "i386" + (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00") + (bv "\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) + +(define %alpha + (qemu-platform "alpha" "alpha" + (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90") + (bv "\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) + +(define %arm + (qemu-platform "arm" "arm" + (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) + +(define %armeb + (qemu-platform "armeb" "arm" + (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +(define %sparc + (qemu-platform "sparc" "sparc" + (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02") + (bv "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +(define %sparc32plus + (qemu-platform "sparc32plus" "sparc" + (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x12") + (bv "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +(define %ppc + (qemu-platform "ppc" "ppc" + (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +(define %ppc64 + (qemu-platform "ppc64" "ppc" + (bv "\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +(define %ppc64le + (qemu-platform "ppc64le" "ppcle" + (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15\x00") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\x00"))) + +(define %m68k + (qemu-platform "m68k" "m68k" + (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04") + (bv "\xff\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +;; XXX: We could use the other endianness on a MIPS host. +(define %mips + (qemu-platform "mips" "mips" + (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +(define %mipsel + (qemu-platform "mipsel" "mips" + (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) + +(define %mipsn32 + (qemu-platform "mipsn32" "mips" + (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +(define %mipsn32el + (qemu-platform "mipsn32el" "mips" + (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) + +(define %mips64 + (qemu-platform "mips64" "mips" + (bv "\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +(define %mips64el + (qemu-platform "mips64el" "mips" + (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) + +(define %sh4 + (qemu-platform "sh4" "sh4" + (bv "\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00") + (bv "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) + +(define %sh4eb + (qemu-platform "sh4eb" "sh4" + (bv "\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a") + (bv "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +(define %s390x + (qemu-platform "s390x" "s390x" + (bv "\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16") + (bv "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +(define %aarch64 + (qemu-platform "aarch64" "arm" + (bv "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff"))) + +(define %hppa + (qemu-platform "hppa" "hppa" + (bv "\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x0f") + (bv "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"))) + +(define %qemu-platforms + (list %i386 %i486 %alpha %arm %sparc32plus %ppc %ppc64 %ppc64le %m68k + %mips %mipsel %mipsn32 %mipsn32el %mips64 %mips64el + %sh4 %sh4eb %s390x %aarch64 %hppa)) + +(define (lookup-qemu-platforms . names) + "Return the list of QEMU platforms that match NAMES--a list of names such as +\"arm\", \"hppa\", etc." + (filter (lambda (platform) + (member (qemu-platform-name platform) names)) + %qemu-platforms)) + +(define-record-type* <qemu-binfmt-configuration> + qemu-binfmt-configuration make-qemu-binfmt-configuration + qemu-binfmt-configuration? + (qemu qemu-binfmt-configuration-qemu + (default qemu)) + (platforms qemu-binfmt-configuration-platforms + (default '())) ;safest default + (guix-support? qemu-binfmt-configuration-guix-support? + (default #f))) + +(define (qemu-platform->binfmt qemu platform) + "Return a gexp that evaluates to a binfmt string for PLATFORM, using the +given QEMU package." + (define (bytevector->binfmt-string bv) + ;; Return a binfmt-friendly string representing BV. Hex-encode every + ;; character, in particular because the doc notes "that you must escape + ;; any NUL bytes; parsing halts at the first one". + (string-concatenate + (map (lambda (n) + (string-append "\\x" + (string-pad (number->string n 16) 2 #\0))) + (bytevector->u8-list bv)))) + + (match platform + (($ <qemu-platform> name family magic mask) + ;; See 'Documentation/binfmt_misc.txt' in the kernel. + #~(string-append ":qemu-" #$name ":M::" + #$(bytevector->binfmt-string magic) + ":" #$(bytevector->binfmt-string mask) + ":" #$(file-append qemu "/bin/qemu-" name) + ":" ;FLAGS go here + )))) + +(define %binfmt-mount-point + (file-system-mount-point %binary-format-file-system)) + +(define %binfmt-register-file + (string-append %binfmt-mount-point "/register")) + +(define qemu-binfmt-shepherd-services + (match-lambda + (($ <qemu-binfmt-configuration> qemu platforms) + (list (shepherd-service + (provision '(qemu-binfmt)) + (documentation "Install binfmt_misc handlers for QEMU.") + (requirement '(file-system-/proc/sys/fs/binfmt_misc)) + (start #~(lambda () + ;; Register the handlers for all of PLATFORMS. + (for-each (lambda (str) + (call-with-output-file + #$%binfmt-register-file + (lambda (port) + (display str port)))) + (list + #$@(map (cut qemu-platform->binfmt qemu + <>) + platforms))) + #t)) + (stop #~(lambda (_) + ;; Unregister the handlers. + (for-each (lambda (name) + (let ((file (string-append + #$%binfmt-mount-point + "/qemu-" name))) + (call-with-output-file file + (lambda (port) + (display "-1" port))))) + '#$(map qemu-platform-name platforms)) + #f))))))) + +(define qemu-binfmt-guix-chroot + (match-lambda + ;; Add QEMU and its dependencies to the guix-daemon chroot so that our + ;; binfmt_misc handlers work in the chroot (otherwise 'execve' would fail + ;; with ENOENT.) + ;; + ;; The 'F' flag of binfmt_misc is meant to address this problem by loading + ;; the interpreter upfront rather than lazily, but apparently that is + ;; insufficient (perhaps it loads the 'qemu-ARCH' binary upfront but looks + ;; up its dependencies lazily?). + (($ <qemu-binfmt-configuration> qemu platforms guix?) + (if guix? (list qemu) '())))) + +(define qemu-binfmt-service-type + ;; TODO: Make a separate binfmt_misc service out of this? + (service-type (name 'qemu-binfmt) + (extensions + (list (service-extension file-system-service-type + (const + (list %binary-format-file-system))) + (service-extension shepherd-root-service-type + qemu-binfmt-shepherd-services) + (service-extension guix-service-type + qemu-binfmt-guix-chroot))) + (default-value (qemu-binfmt-configuration)) + (description + "This service supports transparent emulation of binaries +compiled for other architectures using QEMU and the @code{binfmt_misc} +functionality of the kernel Linux."))) diff --git a/gnu/system.scm b/gnu/system.scm index d1c1b9e88c..680a2f64f5 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -90,6 +90,7 @@ operating-system-activation-script operating-system-user-accounts operating-system-shepherd-service-names + operating-system-user-kernel-arguments operating-system-derivation operating-system-profile diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index b592defa45..0f7f4721dd 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> @@ -155,7 +155,8 @@ MODULES and taken from LINUX." (mapped-devices '()) (helper-packages '()) qemu-networking? - volatile-root?) + volatile-root? + (on-error 'debug)) "Return a monadic derivation that builds a raw initrd, with kernel modules taken from LINUX. FILE-SYSTEMS is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified @@ -167,8 +168,12 @@ e2fsck/static or other packages needed by the initrd to check root partition. When QEMU-NETWORKING? is true, set up networking with the standard QEMU parameters. + When VOLATILE-ROOT? is true, the root file system is writable but any changes -to it are lost." +to it are lost. + +ON-ERROR is passed to 'call-with-error-handling'; it determines what happens +upon error." (define device-mapping-commands ;; List of gexps to open the mapped devices. (map (lambda (md) @@ -216,7 +221,8 @@ to it are lost." #:linux-modules '#$linux-modules #:linux-module-directory '#$kodir #:qemu-guest-networking? #$qemu-networking? - #:volatile-root? '#$volatile-root?))) + #:volatile-root? '#$volatile-root? + #:on-error '#$on-error))) #:name "raw-initrd")) (define* (file-system-packages file-systems #:key (volatile-root? #f)) @@ -243,7 +249,8 @@ FILE-SYSTEMS." qemu-networking? volatile-root? (virtio? #t) - (extra-modules '())) + (extra-modules '()) + (on-error 'debug)) "Return a monadic derivation that builds a generic initrd, with kernel modules taken from LINUX. FILE-SYSTEMS is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified @@ -318,6 +325,7 @@ loaded at boot time in the order in which they appear." #:mapped-devices mapped-devices #:helper-packages helper-packages #:qemu-networking? qemu-networking? - #:volatile-root? volatile-root?)) + #:volatile-root? volatile-root? + #:on-error on-error)) ;;; linux-initrd.scm ends here diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index 938de8dd41..119f7e4d0b 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; ;;; This file is part of GNU Guix. @@ -187,7 +187,11 @@ XTerm*utf8: always XTerm*metaSendsEscape: true\n")) (gdbinit (plain-file "gdbinit" "\ # Tell GDB where to look for separate debugging files. -set debug-file-directory ~/.guix-profile/lib/debug\n"))) +set debug-file-directory ~/.guix-profile/lib/debug + +# Authorize extensions found in the store, such as the +# pretty-printers of libstdc++. +set auto-load safe-path /gnu/store/*/lib\n"))) `((".bash_profile" ,profile) (".bashrc" ,bashrc) (".zlogin" ,zlogin) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 53629daa90..496f2ac4e1 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> @@ -503,6 +503,14 @@ of the GNU system as described by OS." (string-prefix? "/dev/" source)))) (operating-system-file-systems os))) + (define root-uuid + ;; UUID of the root file system. + (operating-system-uuid os + (if (string=? file-system-type "iso9660") + 'iso9660 + 'dce))) + + (let ((os (operating-system (inherit os) ;; Use an initrd with the whole QEMU shebang. (initrd (lambda (file-systems . rest) @@ -511,10 +519,13 @@ of the GNU system as described by OS." #:virtio? #t rest))) - ;; Force our own root file system. + ;; Force our own root file system. Refer to it by UUID so that + ;; it works regardless of how the image is used ("qemu -hda", + ;; Xen, etc.). (file-systems (cons (file-system (mount-point "/") - (device "/dev/sda1") + (device root-uuid) + (title 'uuid) (type file-system-type)) file-systems-to-keep))))) (mlet* %store-monad @@ -526,6 +537,7 @@ of the GNU system as described by OS." (operating-system-bootloader os)) #:disk-image-size disk-image-size #:file-system-type file-system-type + #:file-system-uuid root-uuid #:inputs `(("system" ,os-drv) ("bootcfg" ,bootcfg)) #:copy-inputs? #t)))) diff --git a/gnu/tests.scm b/gnu/tests.scm index 0caa922fdf..3e4c3d4e3a 100644 --- a/gnu/tests.scm +++ b/gnu/tests.scm @@ -172,6 +172,14 @@ marionette service in the guest is started after the Shepherd services listed in REQUIREMENTS." (operating-system (inherit os) + ;; Make sure the guest dies on error. + (kernel-arguments (cons "panic=1" + (operating-system-user-kernel-arguments os))) + ;; Make sure the guest doesn't hang in the REPL on error. + (initrd (lambda (fs . rest) + (apply (operating-system-initrd os) fs + #:on-error 'backtrace + rest))) (services (cons (service marionette-service-type (marionette-configuration (requirements requirements) diff --git a/guix/derivations.scm b/guix/derivations.scm index 97f96d99c1..da686e89e2 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -230,7 +230,7 @@ Nix itself keeps only one of them." CUT? is a predicate that is passed a derivation-input and returns true to eliminate the given input and its dependencies from the search. An example of -search a predicate is 'valid-derivation-input?'; when it is used as CUT?, the +such a predicate is 'valid-derivation-input?'; when it is used as CUT?, the result is the set of prerequisites of DRV not already in valid." (let loop ((drv drv) (result '()) diff --git a/guix/import/crate.scm b/guix/import/crate.scm index 233a20e983..a7485bb4d0 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm @@ -59,7 +59,9 @@ (repository (assoc-ref crate "repository")) (synopsis (assoc-ref crate "description")) (description (assoc-ref crate "description")) - (license (string->license (assoc-ref crate "license"))) + (license (or (and=> (assoc-ref crate "license") + string->license) + '())) ;missing license info (path (string-append "/" version "/dependencies")) (deps-json (json-fetch (string-append crate-url name path))) (deps (assoc-ref deps-json "dependencies")) diff --git a/guix/import/gem.scm b/guix/import/gem.scm index 3ad7facc7f..6e914d6290 100644 --- a/guix/import/gem.scm +++ b/guix/import/gem.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> -;;; Copryight © 2016 Ben Woodcroft <donttrustben@gmail.com> +;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index 2c9df073d3..4fb00af404 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> -;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is> +;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index dd54f03996..1673fb9f33 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> -;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -326,7 +326,7 @@ advertise it as the maximum validity period (in seconds) via the appropriate duration. NAR-PATH specifies the prefix for nar URLs." (let ((store-path (hash-part->path store hash))) (if (string-null? store-path) - (not-found request) + (not-found request #:phrase "") (values `((content-type . (application/x-nix-narinfo)) ,@(if ttl `((cache-control (max-age . ,ttl))) @@ -461,7 +461,7 @@ requested using POOL." #:phrase "We're baking it" #:ttl 300)) ;should be available within 5m (else - (not-found request))))) + (not-found request #:phrase ""))))) (define* (bake-narinfo+nar cache item #:key ttl (compression %no-compression) @@ -505,10 +505,10 @@ requested using POOL." stat:size)) port)))))) -;; XXX: Declare the 'Guix-Compression' HTTP header, which is in fact for +;; XXX: Declare the 'X-Nar-Compression' HTTP header, which is in fact for ;; internal consumption: it allows us to pass the compression info to ;; 'http-write', as part of the workaround to <http://bugs.gnu.org/21093>. -(declare-header! "Guix-Nar-Compression" +(declare-header! "X-Nar-Compression" (lambda (str) (match (call-with-input-string str read) (('compression type level) @@ -529,7 +529,7 @@ requested using POOL." (if (valid-path? store store-path) (values `((content-type . (application/x-nix-archive (charset . "ISO-8859-1"))) - (guix-nar-compression . ,compression)) + (x-nar-compression . ,compression)) ;; XXX: We're not returning the actual contents, deferring ;; instead to 'http-write'. This is a hack to work around ;; <http://bugs.gnu.org/21093>. @@ -544,11 +544,12 @@ return it; otherwise, return 404." #:compression compression))) (if (file-exists? cached) (values `((content-type . (application/octet-stream - (charset . "ISO-8859-1")))) - ;; XXX: We're not returning the actual contents, deferring - ;; instead to 'http-write'. This is a hack to work around - ;; <http://bugs.gnu.org/21093>. - cached) + (charset . "ISO-8859-1"))) + ;; XXX: We're not returning the actual contents, deferring + ;; instead to 'http-write'. This is a hack to work around + ;; <http://bugs.gnu.org/21093>. + (x-raw-file . ,cached)) + #f) (not-found request)))) (define (render-content-addressed-file store request @@ -562,14 +563,40 @@ has the given HASH of type ALGO." #:recursive? #f))) (if (valid-path? store item) (values `((content-type . (application/octet-stream - (charset . "ISO-8859-1")))) - ;; XXX: We're not returning the actual contents, deferring - ;; instead to 'http-write'. This is a hack to work around - ;; <http://bugs.gnu.org/21093>. - item) + (charset . "ISO-8859-1"))) + ;; XXX: We're not returning the actual contents, + ;; deferring instead to 'http-write'. This is a hack to + ;; work around <http://bugs.gnu.org/21093>. + (x-raw-file . ,item)) + #f) (not-found request))) (not-found request))) +(define (render-log-file store request name) + "Render the log file for NAME, the base name of a store item. Don't attempt +to compress or decompress the log file; just return it as-is." + (define (response-headers file) + ;; XXX: We're not returning the actual contents, deferring instead to + ;; 'http-write'. This is a hack to work around + ;; <http://bugs.gnu.org/21093>. + (cond ((string-suffix? ".gz" file) + `((content-type . (text/plain (charset . "UTF-8"))) + (content-encoding . (gzip)) + (x-raw-file . ,file))) + ((string-suffix? ".bz2" file) + `((content-type . (application/x-bzip2 + (charset . "ISO-8859-1"))) + (x-raw-file . ,file))) + (else ;uncompressed + `((content-type . (text/plain (charset . "UTF-8"))) + (x-raw-file . ,file))))) + + (let ((log (log-file store + (string-append (%store-prefix) "/" name)))) + (if log + (values (response-headers log) log) + (not-found request)))) + (define (render-home-page request) "Render the home page." (values `((content-type . (text/html (charset . "UTF-8")))) @@ -611,20 +638,22 @@ example: \"/foo/bar\" yields '(\"foo\" \"bar\")." (define %http-write (@@ (web server http) http-write)) +(define (strip-headers response) + "Return RESPONSE's headers minus 'Content-Length' and our internal headers." + (fold alist-delete + (response-headers response) + '(content-length x-raw-file x-nar-compression))) + (define (sans-content-length response) "Return RESPONSE without its 'content-length' header." (set-field response (response-headers) - (alist-delete 'content-length - (response-headers response) - eq?))) + (strip-headers response))) (define (with-content-length response length) "Return RESPONSE with a 'content-length' header set to LENGTH." (set-field response (response-headers) (alist-cons 'content-length length - (alist-delete 'content-length - (response-headers response) - eq?)))) + (strip-headers response)))) (define-syntax-rule (swallow-EPIPE exp ...) "Swallow EPIPE errors raised by EXP..." @@ -646,7 +675,7 @@ example: \"/foo/bar\" yields '(\"foo\" \"bar\")." (define (nar-response-port response) "Return a port on which to write the body of RESPONSE, the response of a /nar request, according to COMPRESSION." - (match (assoc-ref (response-headers response) 'guix-nar-compression) + (match (assoc-ref (response-headers response) 'x-nar-compression) (($ <compression> 'gzip level) ;; Note: We cannot used chunked encoding here because ;; 'make-gzip-output-port' wants a file port. @@ -685,35 +714,37 @@ blocking." (swallow-zlib-error (close-port port)) (values))))) - (('application/octet-stream . _) - ;; Send a raw file in a separate thread. - (call-with-new-thread - (lambda () - (set-thread-name "publish file") - (catch 'system-error - (lambda () - (call-with-input-file (utf8->string body) - (lambda (input) - (let* ((size (stat:size (stat input))) - (response (write-response (with-content-length response - size) - client)) - (output (response-port response))) - (if (file-port? output) - (sendfile output input size) - (dump-port input output)) - (close-port output) - (values))))) - (lambda args - ;; If the file was GC'd behind our back, that's fine. Likewise if - ;; the client closes the connection. - (unless (memv (system-error-errno args) - (list ENOENT EPIPE ECONNRESET)) - (apply throw args)) - (values)))))) (_ - ;; Handle other responses sequentially. - (%http-write server client response body)))) + (match (assoc-ref (response-headers response) 'x-raw-file) + ((? string? file) + ;; Send a raw file in a separate thread. + (call-with-new-thread + (lambda () + (set-thread-name "publish file") + (catch 'system-error + (lambda () + (call-with-input-file file + (lambda (input) + (let* ((size (stat:size (stat input))) + (response (write-response (with-content-length response + size) + client)) + (output (response-port response))) + (if (file-port? output) + (sendfile output input size) + (dump-port input output)) + (close-port output) + (values))))) + (lambda args + ;; If the file was GC'd behind our back, that's fine. Likewise if + ;; the client closes the connection. + (unless (memv (system-error-errno args) + (list ENOENT EPIPE ECONNRESET)) + (apply throw args)) + (values)))))) + (#f + ;; Handle other responses sequentially. + (%http-write server client response body)))))) (define-server-impl concurrent-http-server ;; A variant of Guile's built-in HTTP server that offloads possibly long @@ -768,6 +799,10 @@ blocking." (render-content-addressed-file store request name 'sha256 hash)))) + ;; /log/OUTPUT + (("log" name) + (render-log-file store request name)) + ;; Use different URLs depending on the compression type. This ;; guarantees that /nar URLs remain valid even when 'guix publish' ;; is restarted with different compression parameters. diff --git a/guix/serialization.scm b/guix/serialization.scm index e6ae2fc307..b41a0a09d1 100644 --- a/guix/serialization.scm +++ b/guix/serialization.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -102,9 +102,9 @@ (or (zero? m) (put-bytevector p zero 0 (- 8 m))))))) -(define (write-bytevector s p) - (let* ((l (bytevector-length s)) - (m (modulo l 8)) +(define* (write-bytevector s p + #:optional (l (bytevector-length s))) + (let* ((m (modulo l 8)) (b (make-bytevector (+ 8 l (if (zero? m) 0 (- 8 m)))))) (bytevector-u32-set! b 0 l (endianness little)) (bytevector-copy! s 0 b 8 l) diff --git a/guix/ssh.scm b/guix/ssh.scm index 7b33ef5a3b..cb560c0e9c 100644 --- a/guix/ssh.scm +++ b/guix/ssh.scm @@ -19,6 +19,7 @@ (define-module (guix ssh) #:use-module (guix store) #:use-module (guix i18n) + #:use-module ((guix utils) #:select (&fix-hint)) #:use-module (ssh session) #:use-module (ssh auth) #:use-module (ssh key) @@ -100,30 +101,43 @@ Throw an error on failure." ;; Unix-domain sockets but libssh doesn't have an API for that, hence this ;; hack. `(begin - (use-modules (ice-9 match) (rnrs io ports)) + (use-modules (ice-9 match) (rnrs io ports) + (rnrs bytevectors) (system foreign)) + + (define read! + ;; XXX: We would use 'get-bytevector-some' but it always returns a + ;; single byte in Guile <= 2.2.3---see <https://bugs.gnu.org/30066>. + ;; This procedure works around it. + (let ((proc (pointer->procedure int + (dynamic-func "read" (dynamic-link)) + (list int '* size_t)))) + (lambda (port bv) + (proc (fileno port) (bytevector->pointer bv) + (bytevector-length bv))))) (let ((sock (socket AF_UNIX SOCK_STREAM 0)) (stdin (current-input-port)) - (stdout (current-output-port))) + (stdout (current-output-port)) + (buffer (make-bytevector 65536))) (setvbuf stdin _IONBF) (setvbuf stdout _IONBF) (connect sock AF_UNIX ,socket-name) (let loop () - (match (select (list stdin sock) '() (list stdin stdout sock)) - ((reads writes ()) + (match (select (list stdin sock) '() '()) + ((reads () ()) (when (memq stdin reads) - (match (get-bytevector-some stdin) - ((? eof-object?) + (match (read! stdin buffer) + ((? zero?) ;EOF (primitive-exit 0)) - (bv - (put-bytevector sock bv)))) + (count + (put-bytevector sock buffer 0 count)))) (when (memq sock reads) - (match (get-bytevector-some sock) - ((? eof-object?) + (match (read! sock buffer) + ((? zero?) ;EOF (primitive-exit 0)) - (bv - (put-bytevector stdout bv)))) + (count + (put-bytevector stdout buffer 0 count)))) (loop)) (_ (primitive-exit 1))))))) @@ -197,15 +211,36 @@ be read. When RECURSIVE? is true, the closure of FILES is exported." ;; remote store. (define export `(begin - (use-modules (guix)) - - (with-store store - (setvbuf (current-output-port) _IONBF) - - ;; FIXME: Exceptions are silently swallowed. We should report them - ;; somehow. - (export-paths store ',files (current-output-port) - #:recursive? ,recursive?)))) + (eval-when (load expand eval) + (unless (resolve-module '(guix) #:ensure #f) + (write `(module-error)) + (exit 7))) + + (use-modules (guix) (srfi srfi-1) + (srfi srfi-26) (srfi srfi-34)) + + (guard (c ((nix-connection-error? c) + (write `(connection-error ,(nix-connection-error-file c) + ,(nix-connection-error-code c)))) + ((nix-protocol-error? c) + (write `(protocol-error ,(nix-protocol-error-status c) + ,(nix-protocol-error-message c)))) + (else + (write `(exception)))) + (with-store store + (let* ((files ',files) + (invalid (remove (cut valid-path? store <>) + files))) + (unless (null? invalid) + (write `(invalid-items ,invalid)) + (exit 1)) + + (write '(exporting)) ;we're ready + (force-output) + + (setvbuf (current-output-port) _IONBF) + (export-paths store files (current-output-port) + #:recursive? ,recursive?)))))) (open-remote-input-pipe session (string-join @@ -291,6 +326,19 @@ to the length of FILES.)" #:recursive? recursive?) (length files))) ;XXX: inaccurate when RECURSIVE? is true +(define-syntax raise-error + (syntax-rules (=>) + ((_ fmt args ... (=> hint-fmt hint-args ...)) + (raise (condition + (&message + (message (format #f fmt args ...))) + (&fix-hint + (hint (format #f hint-fmt hint-args ...)))))) + ((_ fmt args ...) + (raise (condition + (&message + (message (format #f fmt args ...)))))))) + (define* (retrieve-files local files remote #:key recursive? (log-port (current-error-port))) "Retrieve FILES from REMOTE and import them using the 'import-paths' RPC on @@ -298,22 +346,44 @@ LOCAL. When RECURSIVE? is true, retrieve the closure of FILES." (let-values (((port count) (file-retrieval-port files remote #:recursive? recursive?))) - (format #t (N_ "retrieving ~a store item from '~a'...~%" - "retrieving ~a store items from '~a'...~%" count) - count (remote-store-host remote)) - (when (eof-object? (lookahead-u8 port)) - ;; The failure could be because one of the requested store items is not - ;; valid on REMOTE, or because Guile or Guix is improperly installed. - ;; TODO: Improve error reporting. - (raise (condition - (&message - (message - (format #f - (G_ "failed to retrieve store items from '~a'") - (remote-store-host remote))))))) - - (let ((result (import-paths local port))) - (close-port port) - result))) + (match (read port) ;read the initial status + (('exporting) + (format #t (N_ "retrieving ~a store item from '~a'...~%" + "retrieving ~a store items from '~a'...~%" count) + count (remote-store-host remote)) + + (let ((result (import-paths local port))) + (close-port port) + result)) + ((? eof-object?) + (raise-error (G_ "failed to start Guile on remote host '~A': exit code ~A") + (remote-store-host remote) + (channel-get-exit-status port) + (=> (G_ "Make sure @command{guile} can be found in +@code{$PATH} on the remote host. Run @command{ssh ~A guile --version} to +check.") + (remote-store-host remote)))) + (('module-error . _) + ;; TRANSLATORS: Leave "Guile" untranslated. + (raise-error (G_ "Guile modules not found on remote host '~A'") + (remote-store-host remote) + (=> (G_ "Make sure @code{GUILE_LOAD_PATH} includes Guix' +own module directory. Run @command{ssh ~A env | grep GUILE_LOAD_PATH} to +check.") + (remote-store-host remote)))) + (('connection-error file code . _) + (raise-error (G_ "failed to connect to '~A' on remote host '~A': ~a") + file (remote-store-host remote) (strerror code))) + (('invalid-items items . _) + (raise-error (N_ "no such item on remote host '~A':~{ ~a~}" + "no such items on remote host '~A':~{ ~a~}" + (length items)) + (remote-store-host remote) items)) + (('protocol-error status message . _) + (raise-error (G_ "protocol error on remote host '~A': ~a") + (remote-store-host remote) message)) + (_ + (raise-error (G_ "failed to retrieve store items from '~a'") + (remote-store-host remote)))))) ;;; ssh.scm ends here diff --git a/guix/store.scm b/guix/store.scm index e6e45ba89c..6742611c6f 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -609,7 +609,7 @@ encoding conversion errors." (let* ((max-len (read-int p)) (data (make-bytevector max-len)) (len (get-bytevector-n! user-port data 0 max-len))) - (write-bytevector data p) + (write-bytevector data p len) #f)) ((= k %stderr-next) ;; Log a string. Build logs are usually UTF-8-encoded, but they @@ -1567,8 +1567,10 @@ must be an absolute store file name, or a derivation file name." "/log/guix/drvs/" (string-take base 2) "/" (string-drop base 2))) + (log.gz (string-append log ".gz")) (log.bz2 (string-append log ".bz2"))) - (cond ((file-exists? log.bz2) log.bz2) + (cond ((file-exists? log.gz) log.gz) + ((file-exists? log.bz2) log.bz2) ((file-exists? log) log) (else #f)))) (else diff --git a/guix/ui.scm b/guix/ui.scm index 6e08a611cd..895179744b 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -623,6 +623,12 @@ directories:~{ ~a~}~%") (location->string (error-location c)) (gettext (condition-message c) %gettext-domain)) (exit 1)) + ((and (message-condition? c) (fix-hint? c)) + (format (current-error-port) "~a: error: ~a~%" + (program-name) + (gettext (condition-message c) %gettext-domain)) + (display-hint (condition-fix-hint c)) + (exit 1)) ((message-condition? c) ;; Normally '&message' error conditions have an i18n'd message. (leave (G_ "~a~%") diff --git a/m4/guix.m4 b/m4/guix.m4 index add57f5262..721285b014 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -1,5 +1,5 @@ dnl GNU Guix --- Functional package management for GNU -dnl Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +dnl Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org> dnl Copyright © 2014 Mark H Weaver <mhw@netris.org> dnl Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> dnl @@ -153,6 +153,26 @@ AC_DEFUN([GUIX_CHECK_UNBUFFERED_CBIP], [ fi]) ]) +dnl GUIX_ASSERT_SYNTAX_OBJECT_EQUAL +dnl +dnl Guile 2.2.1 was a brown-paper-bag release where 'equal?' wouldn't work +dnl for syntax objects, which broke gexps. Unfortunately Fedora 25 provides it. +dnl Reject it. +AC_DEFUN([GUIX_ASSERT_SYNTAX_OBJECT_EQUAL], [ + AC_CACHE_CHECK([whether 'equal?' works for syntax objects], + [ac_cv_guix_syntax_object_equal], + [if "$GUILE" -c '(exit (equal? (syntax x) (syntax x)))' + then + ac_cv_guix_syntax_object_equal=yes + else + ac_cv_guix_syntax_object_equal=no + fi]) + if test "x$ac_cv_guix_syntax_object_equal" != xyes; then + # This bug was present in Guile 2.2.1 only. + AC_MSG_ERROR(['equal?' does not work for syntax object; upgrade to Guile 2.2.2 or later.]) + fi +]) + dnl GUIX_CHECK_GUILE_SSH dnl dnl Check whether a recent-enough Guile-SSH is available. diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index d68e8b2bc0..34647e6774 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -31,7 +31,11 @@ #include <pwd.h> #include <grp.h> -#include <bzlib.h> +#include <zlib.h> + +#if HAVE_BZLIB_H +# include <bzlib.h> +#endif /* Includes required for chroot support. */ #if HAVE_SYS_PARAM_H @@ -744,7 +748,10 @@ private: /* File descriptor for the log file. */ FILE * fLogFile; + gzFile gzLogFile; +#if HAVE_BZLIB_H BZFILE * bzLogFile; +#endif AutoCloseFD fdLogFile; /* Number of bytes received from the builder's stdout/stderr. */ @@ -892,7 +899,10 @@ DerivationGoal::DerivationGoal(const Path & drvPath, const StringSet & wantedOut , needRestart(false) , retrySubstitution(false) , fLogFile(0) + , gzLogFile(0) +#if HAVE_BZLIB_H , bzLogFile(0) +#endif , useChroot(false) , buildMode(buildMode) { @@ -1672,15 +1682,6 @@ void DerivationGoal::startBuilder() f.exceptions(boost::io::all_error_bits ^ boost::io::too_many_args_bit); startNest(nest, lvlInfo, f % showPaths(missingPaths) % curRound % nrRounds); - /* Right platform? */ - if (!canBuildLocally(drv.platform)) { - if (settings.printBuildTrace) - printMsg(lvlError, format("@ unsupported-platform %1% %2%") % drvPath % drv.platform); - throw Error( - format("a `%1%' is required to build `%3%', but I am a `%2%'") - % drv.platform % settings.thisSystem % drvPath); - } - /* Note: built-in builders are *not* running in a chroot environment so that we can easily implement them in Guile without having it as a derivation input (they are running under a separate build user, @@ -2301,6 +2302,20 @@ void DerivationGoal::runChild() execve(drv.builder.c_str(), stringsToCharPtrs(args).data(), stringsToCharPtrs(envStrs).data()); + int error = errno; + + /* Right platform? Check this after we've tried 'execve' to allow for + transparent emulation of different platforms with binfmt_misc + handlers that invoke QEMU. */ + if (error == ENOEXEC && !canBuildLocally(drv.platform)) { + if (settings.printBuildTrace) + printMsg(lvlError, format("@ unsupported-platform %1% %2%") % drvPath % drv.platform); + throw Error( + format("a `%1%' is required to build `%3%', but I am a `%2%'") + % drv.platform % settings.thisSystem % drvPath); + } + + errno = error; throw SysError(format("executing `%1%'") % drv.builder); } catch (std::exception & e) { @@ -2599,8 +2614,26 @@ Path DerivationGoal::openLogFile() Path dir = (format("%1%/%2%/%3%/") % settings.nixLogDir % drvsLogDir % string(baseName, 0, 2)).str(); createDirs(dir); - if (settings.compressLog) { + switch (settings.logCompression) + { + case COMPRESSION_GZIP: { + Path logFileName = (format("%1%/%2%.gz") % dir % string(baseName, 2)).str(); + AutoCloseFD fd = open(logFileName.c_str(), O_CREAT | O_WRONLY | O_TRUNC, 0666); + if (fd == -1) throw SysError(format("creating log file `%1%'") % logFileName); + closeOnExec(fd); + + /* Note: FD will be closed by 'gzclose'. */ + if (!(gzLogFile = gzdopen(fd.borrow(), "w"))) + throw Error(format("cannot open compressed log file `%1%'") % logFileName); + + gzbuffer(gzLogFile, 32768); + gzsetparams(gzLogFile, Z_BEST_COMPRESSION, Z_DEFAULT_STRATEGY); + return logFileName; + } + +#if HAVE_BZLIB_H + case COMPRESSION_BZIP2: { Path logFileName = (format("%1%/%2%.bz2") % dir % string(baseName, 2)).str(); AutoCloseFD fd = open(logFileName.c_str(), O_CREAT | O_WRONLY | O_TRUNC, 0666); if (fd == -1) throw SysError(format("creating log file `%1%'") % logFileName); @@ -2614,25 +2647,38 @@ Path DerivationGoal::openLogFile() throw Error(format("cannot open compressed log file `%1%'") % logFileName); return logFileName; + } +#endif - } else { + case COMPRESSION_NONE: { Path logFileName = (format("%1%/%2%") % dir % string(baseName, 2)).str(); fdLogFile = open(logFileName.c_str(), O_CREAT | O_WRONLY | O_TRUNC, 0666); if (fdLogFile == -1) throw SysError(format("creating log file `%1%'") % logFileName); closeOnExec(fdLogFile); return logFileName; + } } + + abort(); } void DerivationGoal::closeLogFile() { - if (bzLogFile) { + if (gzLogFile) { + int err; + err = gzclose(gzLogFile); + gzLogFile = NULL; + if (err != Z_OK) throw Error(format("cannot close compressed log file (gzip error = %1%)") % err); + } +#if HAVE_BZLIB_H + else if (bzLogFile) { int err; BZ2_bzWriteClose(&err, bzLogFile, 0, 0, 0); bzLogFile = 0; if (err != BZ_OK) throw Error(format("cannot close compressed log file (BZip2 error = %1%)") % err); } +#endif if (fLogFile) { fclose(fLogFile); @@ -2695,10 +2741,19 @@ void DerivationGoal::handleChildOutput(int fd, const string & data) } if (verbosity >= settings.buildVerbosity) writeToStderr(data); - if (bzLogFile) { + + if (gzLogFile) { + if (data.size() > 0) { + int count, err; + count = gzwrite(gzLogFile, data.data(), data.size()); + if (count == 0) throw Error(format("cannot write to compressed log file (gzip error = %1%)") % gzerror(gzLogFile, &err)); + } +#if HAVE_BZLIB_H + } else if (bzLogFile) { int err; BZ2_bzWrite(&err, bzLogFile, (unsigned char *) data.data(), data.size()); if (err != BZ_OK) throw Error(format("cannot write to compressed log file (BZip2 error = %1%)") % err); +#endif } else if (fdLogFile != -1) writeFull(fdLogFile, data); } diff --git a/nix/libstore/globals.cc b/nix/libstore/globals.cc index 65dad24d91..4ab6c3a0f9 100644 --- a/nix/libstore/globals.cc +++ b/nix/libstore/globals.cc @@ -45,7 +45,11 @@ Settings::Settings() useSshSubstituter = false; impersonateLinux26 = false; keepLog = true; - compressLog = true; +#if HAVE_BZLIB_H + logCompression = COMPRESSION_BZIP2; +#else + logCompression = COMPRESSION_GZIP; +#endif maxLogSize = 0; cacheFailure = false; pollInterval = 5; @@ -162,7 +166,7 @@ void Settings::update() _get(useChroot, "build-use-chroot"); _get(impersonateLinux26, "build-impersonate-linux-26"); _get(keepLog, "build-keep-log"); - _get(compressLog, "build-compress-log"); + // _get(logCompression, "build-log-compression"); _get(maxLogSize, "build-max-log-size"); _get(cacheFailure, "build-cache-failure"); _get(pollInterval, "build-poll-interval"); diff --git a/nix/libstore/globals.hh b/nix/libstore/globals.hh index 7beb1a55ca..2439936959 100644 --- a/nix/libstore/globals.hh +++ b/nix/libstore/globals.hh @@ -1,5 +1,6 @@ #pragma once +#include "config.h" #include "types.hh" #include <map> @@ -8,6 +9,14 @@ namespace nix { +enum CompressionType +{ + COMPRESSION_NONE = 0, + COMPRESSION_GZIP = 1 +#if HAVE_BZLIB_H + , COMPRESSION_BZIP2 = 2 +#endif +}; struct Settings { @@ -169,7 +178,7 @@ struct Settings { bool keepLog; /* Whether to compress logs. */ - bool compressLog; + enum CompressionType logCompression; /* Maximum number of bytes a builder can write to stdout/stderr before being killed (0 means no limit). */ diff --git a/nix/local.mk b/nix/local.mk index 9e0c457bec..4452301c63 100644 --- a/nix/local.mk +++ b/nix/local.mk @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org> # Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> # # This file is part of GNU Guix. @@ -132,7 +132,7 @@ guix_daemon_CPPFLAGS = \ -I$(top_srcdir)/%D%/libstore guix_daemon_LDADD = \ - libstore.a libutil.a libformat.a -lbz2 \ + libstore.a libutil.a libformat.a -lz \ $(SQLITE3_LIBS) $(LIBGCRYPT_LIBS) guix_daemon_headers = \ @@ -149,9 +149,15 @@ guix_register_CPPFLAGS = \ # XXX: Should we start using shared libs? guix_register_LDADD = \ - libstore.a libutil.a libformat.a -lbz2 \ + libstore.a libutil.a libformat.a -lz \ $(SQLITE3_LIBS) $(LIBGCRYPT_LIBS) +if HAVE_LIBBZ2 + +guix_daemon_LDADD += -lbz2 +guix_register_LDADD += -lbz2 + +endif HAVE_LIBBZ2 noinst_HEADERS = \ $(libformat_headers) $(libutil_headers) $(libstore_headers) \ diff --git a/nix/nix-daemon/guix-daemon.cc b/nix/nix-daemon/guix-daemon.cc index 7963358202..b71b100f6c 100644 --- a/nix/nix-daemon/guix-daemon.cc +++ b/nix/nix-daemon/guix-daemon.cc @@ -1,5 +1,5 @@ /* GNU Guix --- Functional package management for GNU - Copyright (C) 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> + Copyright (C) 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> Copyright (C) 2006, 2010, 2012, 2014 Eelco Dolstra <e.dolstra@tudelft.nl> This file is part of GNU Guix. @@ -88,6 +88,7 @@ builds derivations on behalf of its clients."); #define GUIX_OPT_BUILD_ROUNDS 17 #define GUIX_OPT_TIMEOUT 18 #define GUIX_OPT_MAX_SILENT_TIME 19 +#define GUIX_OPT_LOG_COMPRESSION 20 static const struct argp_option options[] = { @@ -120,8 +121,11 @@ static const struct argp_option options[] = n_("build each derivation N times in a row") }, { "lose-logs", GUIX_OPT_LOSE_LOGS, 0, 0, n_("do not keep build logs") }, - { "disable-log-compression", GUIX_OPT_DISABLE_LOG_COMPRESSION, 0, 0, + { "disable-log-compression", GUIX_OPT_DISABLE_LOG_COMPRESSION, 0, + OPTION_HIDDEN, // deprecated n_("disable compression of the build logs") }, + { "log-compression", GUIX_OPT_LOG_COMPRESSION, "TYPE", 0, + n_("use the specified compression type for build logs") }, /* '--disable-deduplication' was known as '--disable-store-optimization' up to Guix 0.7 included, so keep the alias around. */ @@ -197,8 +201,23 @@ parse_opt (int key, char *arg, struct argp_state *state) settings.set("build-extra-chroot-dirs", chroot_dirs); break; } + case GUIX_OPT_LOG_COMPRESSION: + if (strcmp (arg, "none") == 0) + settings.logCompression = COMPRESSION_NONE; + else if (strcmp (arg, "gzip") == 0) + settings.logCompression = COMPRESSION_GZIP; +#if HAVE_BZLIB_H + else if (strcmp (arg, "bzip2") == 0) + settings.logCompression = COMPRESSION_BZIP2; +#endif + else + { + fprintf (stderr, _("error: %s: unknown compression type\n"), arg); + exit (EXIT_FAILURE); + } + break; case GUIX_OPT_DISABLE_LOG_COMPRESSION: - settings.compressLog = false; + settings.logCompression = COMPRESSION_NONE; break; case GUIX_OPT_BUILD_USERS_GROUP: settings.buildUsersGroup = arg; @@ -487,6 +506,8 @@ main (int argc, char *argv[]) /* Effect all the changes made via 'settings.set'. */ settings.update (); + printMsg(lvlDebug, + format ("build log compression: %1%") % settings.logCompression); if (settings.useSubstitutes) { diff --git a/tests/guix-daemon.sh b/tests/guix-daemon.sh index 7212e3eb68..6f91eb58bf 100644 --- a/tests/guix-daemon.sh +++ b/tests/guix-daemon.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2012, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -193,3 +193,39 @@ do GUIX_DAEMON_SOCKET="$socket" guile -c "$client_code" kill "$daemon_pid" done + +# Log compression. + +guix-daemon --listen="$socket" --disable-chroot --debug --log-compression=gzip & +daemon_pid=$! + +stamp="compressed-build-log-test-$$-`date +%H%M%S`" +client_code=" + (use-modules (guix) (gnu packages bootstrap)) + + (with-store store + (run-with-store store + (mlet %store-monad ((drv (lower-object + (computed-file \"compressed-log-test\" + #~(begin + (display \"$stamp\") + (newline) + (mkdir #\$output)) + #:guile %bootstrap-guile)))) + (display (derivation-file-name drv)) + (newline) + (return #t)))) +" + +GUIX_DAEMON_SOCKET="$socket" +export GUIX_DAEMON_SOCKET + +drv=`guile -c "$client_code"` +guix build "$drv" + +log=`guix build "$drv" --log-file` +test -f "$log" +case "$log" in + *.gz) test "`gunzip -c < "$log"`" = "$stamp" ;; + *) false ;; +esac diff --git a/tests/publish.scm b/tests/publish.scm index 352caf5325..bd1a75cf00 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> +;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -439,4 +440,31 @@ FileSize: ~a~%" (assoc-ref narinfo "FileSize")) (response-code compressed)))))))))) +(test-equal "/log/NAME" + `(200 #t application/x-bzip2) + (let ((drv (run-with-store %store + (gexp->derivation "with-log" + #~(call-with-output-file #$output + (lambda (port) + (display "Hello, build log!" + (current-error-port)) + (display "" port))))))) + (build-derivations %store (list drv)) + (let* ((response (http-get + (publish-uri (string-append "/log/" + (basename (derivation->output-path drv)))) + #:decode-body? #f)) + (base (basename (derivation-file-name drv))) + (log (string-append (dirname %state-directory) + "/log/guix/drvs/" (string-take base 2) + "/" (string-drop base 2) ".bz2"))) + (list (response-code response) + (= (response-content-length response) (stat:size (stat log))) + (first (response-content-type response)))))) + +(test-equal "/log/NAME not found" + 404 + (let ((uri (publish-uri "/log/does-not-exist"))) + (response-code (http-get uri)))) + (test-end "publish") |