mbakke pushed a commit to branch core-updates in repository guix. commit 8c14f7f8a7ab0722bf4c9f92fd28ae85514d564f Merge: 2f33a73 3374e92 Author: Marius Bakke <mba...@fastmail.com> Date: Sat Mar 23 23:16:55 2019 +0100
Merge branch 'staging' into core-updates .mailmap | 28 +- Makefile.am | 6 +- doc/guix.de.texi | 2 +- doc/guix.fr.texi | 2 +- doc/guix.texi | 664 +++++++++++++++- etc/completion/fish/guix.fish | 2 +- gnu/bootloader/extlinux.scm | 8 +- gnu/bootloader/grub.scm | 16 +- gnu/build/bootloader.scm | 63 +- gnu/local.mk | 19 +- gnu/packages/accessibility.scm | 2 +- gnu/packages/admin.scm | 10 +- gnu/packages/algebra.scm | 38 +- gnu/packages/animation.scm | 6 +- gnu/packages/arcan.scm | 105 +++ gnu/packages/audio.scm | 19 +- gnu/packages/autotools.scm | 2 +- gnu/packages/aux-files/run-in-namespace.c | 47 +- gnu/packages/backup.scm | 4 +- gnu/packages/benchmark.scm | 4 +- gnu/packages/bioconductor.scm | 42 +- gnu/packages/bioinformatics.scm | 459 ++++++++++- gnu/packages/build-tools.scm | 4 +- gnu/packages/cdrom.scm | 2 +- gnu/packages/certs.scm | 4 +- gnu/packages/check.scm | 44 +- gnu/packages/cinnamon.scm | 2 +- gnu/packages/compression.scm | 20 +- gnu/packages/coq.scm | 9 +- gnu/packages/cran.scm | 316 +++++--- gnu/packages/crypto.scm | 6 +- gnu/packages/cups.scm | 48 +- gnu/packages/curl.scm | 26 +- gnu/packages/databases.scm | 32 +- gnu/packages/debug.scm | 29 +- gnu/packages/django.scm | 11 +- gnu/packages/dns.scm | 18 +- gnu/packages/docker.scm | 18 +- gnu/packages/easyrpg.scm | 9 +- gnu/packages/education.scm | 68 +- gnu/packages/electronics.scm | 6 +- gnu/packages/elixir.scm | 9 +- gnu/packages/emacs-xyz.scm | 816 +++++++++++++------ gnu/packages/emacs.scm | 2 +- gnu/packages/engineering.scm | 36 +- gnu/packages/enlightenment.scm | 2 +- gnu/packages/erlang.scm | 2 +- gnu/packages/fonts.scm | 42 +- gnu/packages/fontutils.scm | 59 +- gnu/packages/forth.scm | 2 +- gnu/packages/freedesktop.scm | 10 +- gnu/packages/fvwm.scm | 2 +- gnu/packages/game-development.scm | 20 +- gnu/packages/games.scm | 199 ++++- gnu/packages/gd.scm | 12 +- gnu/packages/genimage.scm | 4 +- gnu/packages/geo.scm | 29 +- gnu/packages/gl.scm | 54 +- gnu/packages/glib.scm | 6 +- gnu/packages/gnome.scm | 164 +++- gnu/packages/gnunet.scm | 8 +- gnu/packages/gnupg.scm | 6 +- gnu/packages/gnuzilla.scm | 24 +- gnu/packages/gobby.scm | 8 +- gnu/packages/golang.scm | 884 ++++++++++----------- gnu/packages/gpodder.scm | 79 ++ gnu/packages/graphics.scm | 93 ++- gnu/packages/gstreamer.scm | 1 + gnu/packages/gtk.scm | 49 +- gnu/packages/guile-wm.scm | 71 +- gnu/packages/guile-xyz.scm | 2 +- gnu/packages/haskell-check.scm | 2 +- gnu/packages/haskell-crypto.scm | 21 +- gnu/packages/haskell.scm | 7 +- gnu/packages/hyperledger.scm | 8 +- gnu/packages/image-processing.scm | 66 +- gnu/packages/image-viewers.scm | 15 +- gnu/packages/image.scm | 2 +- gnu/packages/imagemagick.scm | 32 +- gnu/packages/ipfs.scm | 21 +- gnu/packages/irc.scm | 2 +- gnu/packages/language.scm | 6 +- gnu/packages/libcanberra.scm | 2 +- gnu/packages/libevent.scm | 4 +- gnu/packages/libreoffice.scm | 34 +- gnu/packages/libusb.scm | 20 +- gnu/packages/license.scm | 4 +- gnu/packages/linux.scm | 103 ++- gnu/packages/lisp.scm | 2 +- gnu/packages/llvm.scm | 2 +- gnu/packages/lolcode.scm | 2 +- gnu/packages/lua.scm | 8 +- gnu/packages/lxde.scm | 21 +- gnu/packages/lxqt.scm | 313 +++++--- gnu/packages/machine-learning.scm | 224 +++++- gnu/packages/mail.scm | 151 ++-- gnu/packages/markup.scm | 2 +- gnu/packages/mate.scm | 2 +- gnu/packages/maths.scm | 27 +- gnu/packages/mc.scm | 2 +- gnu/packages/messaging.scm | 32 +- gnu/packages/mpd.scm | 4 +- gnu/packages/mpi.scm | 46 ++ gnu/packages/multiprecision.scm | 19 + gnu/packages/music.scm | 67 +- gnu/packages/ncurses.scm | 2 +- gnu/packages/networking.scm | 108 +-- gnu/packages/nickle.scm | 2 +- gnu/packages/ntp.scm | 7 +- gnu/packages/ocaml.scm | 16 +- gnu/packages/openbox.scm | 2 +- gnu/packages/openldap.scm | 40 +- gnu/packages/parallel.scm | 5 +- gnu/packages/password-utils.scm | 22 +- .../patches/at-spi2-core-meson-compat.patch | 18 + .../patches/blender-2.79-newer-ffmpeg.patch | 80 ++ .../patches/blender-2.79-python-3.7-fix.patch | 43 + gnu/packages/patches/cracklib-CVE-2016-6318.patch | 95 --- .../patches/cracklib-fix-buffer-overflow.patch | 39 - gnu/packages/patches/dropbear-CVE-2018-15599.patch | 240 ------ gnu/packages/patches/elixir-path-length.patch | 15 + .../patches/knot-include-system-lmdb-header.patch | 34 + .../patches/libextractor-CVE-2018-20430.patch | 60 -- .../patches/libextractor-CVE-2018-20431.patch | 53 -- gnu/packages/patches/libgit2-avoid-python.patch | 322 ++++++++ gnu/packages/patches/libgit2-oom-test.patch | 62 -- gnu/packages/patches/python-flint-includes.patch | 131 +++ gnu/packages/patches/totem-meson-compat.patch | 14 + gnu/packages/pdf.scm | 2 +- gnu/packages/perl-check.scm | 69 +- gnu/packages/perl-web.scm | 4 +- gnu/packages/perl.scm | 488 ++++++------ gnu/packages/perl6.scm | 787 ++++++++++++++++++ gnu/packages/photo.scm | 23 +- gnu/packages/pretty-print.scm | 12 +- gnu/packages/protobuf.scm | 25 + gnu/packages/python-check.scm | 48 ++ gnu/packages/python-compression.scm | 2 +- gnu/packages/python-crypto.scm | 2 +- gnu/packages/python-web.scm | 65 +- gnu/packages/python-xyz.scm | 208 ++++- gnu/packages/python.scm | 2 +- gnu/packages/qt.scm | 6 +- gnu/packages/rails.scm | 206 ++++- gnu/packages/ruby.scm | 197 ++++- gnu/packages/rust.scm | 10 +- gnu/packages/samba.scm | 19 +- gnu/packages/scanner.scm | 12 +- gnu/packages/scheme.scm | 2 +- gnu/packages/sdl.scm | 7 +- gnu/packages/serialization.scm | 2 +- gnu/packages/shells.scm | 2 +- gnu/packages/shellutils.scm | 6 +- gnu/packages/ssh.scm | 31 +- gnu/packages/statistics.scm | 84 +- gnu/packages/storage.scm | 15 +- gnu/packages/suckless.scm | 17 +- gnu/packages/syncthing.scm | 655 ++++++++------- gnu/packages/syndication.scm | 51 +- gnu/packages/tbb.scm | 17 +- gnu/packages/telephony.scm | 2 +- gnu/packages/terminals.scm | 1 - gnu/packages/terraform.scm | 6 +- gnu/packages/text-editors.scm | 66 +- gnu/packages/textutils.scm | 24 +- gnu/packages/time.scm | 2 +- gnu/packages/tls.scm | 7 +- gnu/packages/tor.scm | 2 +- gnu/packages/uml.scm | 4 +- gnu/packages/version-control.scm | 17 +- gnu/packages/video.scm | 139 +++- gnu/packages/vim.scm | 56 +- gnu/packages/virtualization.scm | 1 + gnu/packages/vpn.scm | 35 +- gnu/packages/vulkan.scm | 21 +- gnu/packages/web.scm | 160 ++-- gnu/packages/wine.scm | 6 +- gnu/packages/wm.scm | 36 +- gnu/packages/xdisorg.scm | 36 +- gnu/packages/xfce.scm | 154 ++-- gnu/packages/xml.scm | 26 +- gnu/packages/xorg.scm | 84 +- gnu/services/audio.scm | 9 + gnu/services/authentication.scm | 511 +++++++++++- gnu/services/certbot.scm | 2 +- gnu/services/desktop.scm | 48 +- gnu/services/version-control.scm | 2 +- gnu/services/web.scm | 2 +- gnu/system.scm | 4 +- gnu/system/vm.scm | 10 +- gnu/tests/ldap.scm | 160 ++++ guix/build-system/glib-or-gtk.scm | 9 +- guix/build-system/go.scm | 2 + guix/build-system/meson.scm | 30 +- guix/build-system/rakudo.scm | 155 ++++ guix/build/go-build-system.scm | 139 ++-- guix/build/rakudo-build-system.scm | 145 ++++ guix/describe.scm | 25 +- guix/download.scm | 6 +- guix/import/hackage.scm | 2 +- guix/import/launchpad.scm | 124 +++ guix/import/opam.scm | 2 +- guix/licenses.scm | 2 +- guix/packages.scm | 38 + guix/scripts.scm | 50 +- guix/scripts/build.scm | 146 ++-- guix/scripts/describe.scm | 6 +- guix/scripts/graph.scm | 31 +- guix/scripts/pack.scm | 76 +- guix/scripts/package.scm | 9 +- guix/scripts/system.scm | 13 +- guix/tests.scm | 15 + po/guix/POTFILES.in | 2 + tests/build-utils.scm | 52 +- tests/graph.scm | 28 +- tests/guix-pack-relocatable.sh | 21 +- tests/packages.scm | 51 ++ tests/scripts-build.scm | 109 ++- tests/scripts.scm | 15 +- 219 files changed, 9838 insertions(+), 3772 deletions(-) diff --cc gnu/local.mk index ea5ac20,ec82877..e936343 --- a/gnu/local.mk +++ b/gnu/local.mk @@@ -650,7 -655,7 +653,8 @@@ dist_patch_DATA = %D%/packages/patches/apr-skip-getservbyname-test.patch \ %D%/packages/patches/aria2-CVE-2019-3500.patch \ %D%/packages/patches/aspell-default-dict-dir.patch \ + %D%/packages/patches/aspell-gcc-compat.patch \ + %D%/packages/patches/at-spi2-core-meson-compat.patch \ %D%/packages/patches/ath9k-htc-firmware-binutils.patch \ %D%/packages/patches/ath9k-htc-firmware-gcc.patch \ %D%/packages/patches/ath9k-htc-firmware-objcopy.patch \ @@@ -668,9 -673,10 +672,11 @@@ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/beets-python-3.7-fix.patch \ %D%/packages/patches/beignet-correct-file-names.patch \ + %D%/packages/patches/binutils-boot-2.20.1a.patch \ %D%/packages/patches/biber-fix-encoding-write.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ + %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ + %D%/packages/patches/blender-2.79-python-3.7-fix.patch \ %D%/packages/patches/boost-fix-icu-build.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ @@@ -968,10 -970,9 +973,8 @@@ %D%/packages/patches/libevent-2.1-skip-failing-test.patch \ %D%/packages/patches/libexif-CVE-2016-6328.patch \ %D%/packages/patches/libexif-CVE-2017-7544.patch \ - %D%/packages/patches/libextractor-CVE-2018-20430.patch \ - %D%/packages/patches/libextractor-CVE-2018-20431.patch \ - %D%/packages/patches/libgcrypt-make-yat2m-reproducible.patch \ + %D%/packages/patches/libgit2-avoid-python.patch \ %D%/packages/patches/libgit2-mtime-0.patch \ - %D%/packages/patches/libgit2-oom-test.patch \ %D%/packages/patches/libgdata-fix-tests.patch \ %D%/packages/patches/libgdata-glib-duplicate-tests.patch \ %D%/packages/patches/libgnome-encoding.patch \ diff --cc gnu/packages/games.scm index 1cd3faa,e750d06..eac0ae3 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@@ -2611,27 -2609,33 +2609,29 @@@ Transport Tycoon Deluxe." (arguments `(#:configure-flags (list "-DDOWNLOAD_OBJECTS=OFF" "-DDOWNLOAD_TITLE_SEQUENCES=OFF") - #:tests? #f ; Tests require network. + #:tests? #f ; tests require network access #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-usr-share-paths&add-data - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((titles (assoc-ref inputs "openrct2-title-sequences")) - (objects (assoc-ref inputs "openrct2-objects"))) - ;; Fix some references to /usr/share. - (substitute* "src/openrct2/platform/Platform.Linux.cpp" - (("/usr/share") - (string-append (assoc-ref %outputs "out") "/share"))) - (copy-recursively (string-append titles - "/share/openrct2/title-sequences") "data/title") - (copy-recursively (string-append objects - "/share/openrct2/objects") "data/object")))) - (add-before 'configure 'get-rid-of-errors - (lambda _ - ;; Don't treat warnings as errors. - (substitute* "CMakeLists.txt" - (("-Werror") "")) - #t))))) + (modify-phases %standard-phases + (add-after 'unpack 'fix-usr-share-paths&add-data + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((titles (assoc-ref inputs "openrct2-title-sequences")) + (objects (assoc-ref inputs "openrct2-objects"))) + ;; Fix some references to /usr/share. + (substitute* "src/openrct2/platform/Platform.Linux.cpp" + (("/usr/share") + (string-append (assoc-ref %outputs "out") "/share"))) + (copy-recursively + (string-append titles "/share/openrct2/title-sequences") + "data/title") + (copy-recursively + (string-append objects "/share/openrct2/objects") + "data/object")))) - (add-before 'configure 'fixgcc7 - (lambda _ - (unsetenv "C_INCLUDE_PATH") - (unsetenv "CPLUS_INCLUDE_PATH") - #t)) - (add-after 'fixgcc7 'get-rid-of-errors ++ (add-before 'configure 'get-rid-of-errors + (lambda _ + ;; Don't treat warnings as errors. + (substitute* "CMakeLists.txt" - (("-Werror") ""))))))) ++ (("-Werror") "")) ++ #t))))) (inputs `(("curl" ,curl) ("fontconfig" ,fontconfig) ("freetype" ,freetype) diff --cc gnu/packages/glib.scm index f3cae2f,98b227c..3689c31 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@@ -7,9 -7,8 +7,9 @@@ ;;; Copyright © 2016 Lukas Gradl <lgr...@openmailbox.org> ;;; Copyright © 2017, 2018 Ricardo Wurmus <rek...@elephly.net> ;;; Copyright © 2017 Petter <pet...@mykolab.ch> - ;;; Copyright © 2018 Tobias Geerinckx-Rice <m...@tobias.gr> + ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <m...@tobias.gr> ;;; Copyright © 2018 Alex Vong <alexvong1...@gmail.com> +;;; Copyright © 2019 Maxim Cournoyer <maxim.courno...@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; diff --cc gnu/packages/machine-learning.scm index 4067b4b,28bb44a..20b8bfa --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@@ -1027,3 -1047,205 +1047,205 @@@ association studies (GWAS) on extremel (description "Kaldi is an extensible toolkit for speech recognition written in C++.") (license license:asl2.0)))) + + (define-public gst-kaldi-nnet2-online + (let ((commit "617e43e73c7cc45eb9119028c02bd4178f738c4a") + (revision "1")) + (package + (name "gst-kaldi-nnet2-online") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alumae/gst-kaldi-nnet2-online.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xh3w67b69818s6ib02ara4lw7wamjdmh4jznvkpzrs4skbs9jx9")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; there are none + #:make-flags + (list (string-append "SHELL=" + (assoc-ref %build-inputs "bash") "/bin/bash") + (string-append "KALDI_ROOT=" + (assoc-ref %build-inputs "kaldi-src")) + (string-append "KALDILIBDIR=" + (assoc-ref %build-inputs "kaldi") "/lib") + "KALDI_FLAVOR=dynamic") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "src") #t)) + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((glib (assoc-ref inputs "glib"))) + (setenv "CXXFLAGS" "-std=c++11 -fPIC") + (setenv "CPLUS_INCLUDE_PATH" + (string-append glib "/include/glib-2.0:" + glib "/lib/glib-2.0/include:" + (assoc-ref inputs "gstreamer") + "/include/gstreamer-1.0:" + (getenv "CPLUS_INCLUDE_PATH")))) + (substitute* "Makefile" + (("include \\$\\(KALDI_ROOT\\)/src/kaldi.mk") "") + (("\\$\\(error Cannot find") "#")))) + (add-before 'build 'build-depend + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "depend" make-flags))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib/gstreamer-1.0"))) + (install-file "libgstkaldinnet2onlinedecoder.so" lib) + #t)))))) + (inputs + `(("glib" ,glib) + ("gstreamer" ,gstreamer) + ("jansson" ,jansson) + ("openfst" ,openfst) + ("kaldi" ,kaldi))) + (native-inputs + `(("bash" ,bash) + ("glib:bin" ,glib "bin") ; glib-genmarshal + ("kaldi-src" ,(package-source kaldi)) + ("pkg-config" ,pkg-config))) + (home-page "https://kaldi-asr.org/") + (synopsis "Gstreamer plugin for decoding speech") + (description "This package provides a GStreamer plugin that wraps + Kaldi's @code{SingleUtteranceNnet2Decoder}. It requires iVector-adapted DNN + acoustic models. The iVectors are adapted to the current audio stream + automatically.") + (license license:asl2.0)))) + + (define-public kaldi-gstreamer-server + (let ((commit "1735ba49c5dc0ebfc184e45105fc600cd9f1f508") + (revision "1")) + (package + (name "kaldi-gstreamer-server") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alumae/kaldi-gstreamer-server.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0j701m7lbwmzqxsfanj882v7881hrbmpqybbczbxqpcbg8q34w0k")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; there are no tests that can be run automatically + #:modules ((guix build utils) + (guix build gnu-build-system) + (srfi srfi-26)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + ;; Disable hash randomization to ensure the generated .pycs + ;; are reproducible. + (setenv "PYTHONHASHSEED" "0") + (with-directory-excursion "kaldigstserver" + (for-each (lambda (file) + (apply invoke + `("python" + "-m" "compileall" + "-f" ; force rebuild + ,file))) + (find-files "." "\\.py$"))) + #t)) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (share (string-append out "/share/kaldi-gstreamer-server/"))) + ;; Install Python files + (with-directory-excursion "kaldigstserver" + (for-each (cut install-file <> share) + (find-files "." ".*"))) + + ;; Install sample configuration files + (for-each (cut install-file <> share) + (find-files "." "\\.yaml")) + + ;; Install executables + (mkdir-p bin) + (let* ((server (string-append bin "/kaldi-gst-server")) + (client (string-append bin "/kaldi-gst-client")) + (worker (string-append bin "/kaldi-gst-worker")) + (PYTHONPATH (getenv "PYTHONPATH")) + (GST_PLUGIN_PATH (string-append + (assoc-ref inputs "gst-kaldi-nnet2-online") + "/lib/gstreamer-1.0:${GST_PLUGIN_PATH}")) + (wrap (lambda (wrapper what) + (with-output-to-file wrapper + (lambda _ + (format #t + "#!~a + export PYTHONPATH=~a + export GST_PLUGIN_PATH=~a + exec ~a ~a/~a \"$@\"~%" + (which "bash") PYTHONPATH GST_PLUGIN_PATH + (which "python") share what))) + (chmod wrapper #o555)))) + (for-each wrap + (list server client worker) + (list "master_server.py" + "client.py" + "worker.py"))) + #t)))))) + (inputs + `(("gst-kaldi-nnet2-online" ,gst-kaldi-nnet2-online) + ("python2" ,python-2) + ("python2-futures" ,python2-futures) + ("python2-pygobject" ,python2-pygobject) + ("python2-pyyaml" ,python2-pyyaml) + ("python2-tornado" ,python2-tornado) + ("python2-ws4py" ,python2-ws4py-for-kaldi-gstreamer-server))) + (home-page "https://github.com/alumae/kaldi-gstreamer-server") + (synopsis "Real-time full-duplex speech recognition server") + (description "This is a real-time full-duplex speech recognition server, + based on the Kaldi toolkit and the GStreamer framework and implemented in + Python.") + (license license:bsd-2)))) + + (define-public grpc + (package + (name "grpc") + (version "1.16.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/grpc/grpc.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jimqz3115f9pli5w6ik9wi7mjc7ix6y7yrq4a1ab9fc3dalj7p2")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; no test target + #:configure-flags + (list "-DgRPC_ZLIB_PROVIDER=package" + "-DgRPC_CARES_PROVIDER=package" + "-DgRPC_SSL_PROVIDER=package" + "-DgRPC_PROTOBUF_PROVIDER=package"))) + (inputs - `(("c-ares" ,c-ares-next) ++ `(("c-ares" ,c-ares) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (native-inputs + `(("protobuf" ,protobuf-next) + ("python" ,python-wrapper))) + (home-page "https://grpc.io") + (synopsis "High performance universal RPC framework") + (description "gRPC is a modern open source high performance @dfn{Remote + Procedure Call} (RPC) framework that can run in any environment. It can + efficiently connect services in and across data centers with pluggable support + for load balancing, tracing, health checking and authentication. It is also + applicable in last mile of distributed computing to connect devices, mobile + applications and browsers to backend services.") + (license license:asl2.0))) diff --cc gnu/packages/mpd.scm index 3b21378,4114802..5a9c438 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@@ -100,10 -100,20 +100,10 @@@ interfacing MPD in the C, C++ & Objecti "/mpd-" version ".tar.xz")) (sha256 (base32 - "1y8fbch4xp96i4mz6czivnwvaf7g8pnfix5d0pbybnkv7bmz1a9f")))) + "17z580gqwsr4xp3x124aapw96pl8hk91c43ld2x75606rim12kcd")))) (build-system meson-build-system) (arguments - `(#:configure-flags '("-Ddocumentation=true") ; The default is 'false'... - #:phases - (modify-phases %standard-phases - (add-before 'configure 'expand-C++-include-path - ;; Make <gcc>/include/c++/ext/string_conversions.h find <stdlib.h>. - (lambda* (#:key inputs #:allow-other-keys) - (let* ((path "CPLUS_INCLUDE_PATH") - (gcc (assoc-ref inputs "gcc")) - (c++ (string-append gcc "/include/c++"))) - (setenv path (string-append c++ ":" (getenv path))) - #t)))))) + `(#:configure-flags '("-Ddocumentation=true"))) ;the default is 'false'... (inputs `(("ao" ,ao) ("alsa-lib" ,alsa-lib) ("avahi" ,avahi) diff --cc gnu/packages/python-xyz.scm index a995618,1968c98..db31794 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@@ -23,10 -23,10 +23,10 @@@ ;;; Copyright © 2016 Daniel Pimentel <d...@d4n1.org> ;;; Copyright © 2016 Sou Bunnbu <iyzs...@gmail.com> ;;; Copyright © 2016, 2017 Troy Sankey <sankey...@gmail.com> - ;;; Copyright © 2016, 2017 Nils Gillmann <n...@n0.is> + ;;; Copyright © 2016, 2017 ng0 <n...@n0.is> ;;; Copyright © 2016 Dylan Jeffers <sapientech@sapient...@openmailbox.org> ;;; Copyright © 2016 David Craven <da...@craven.ch> -;;; Copyright © 2016, 2017, 2018 Marius Bakke <mba...@fastmail.com> +;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mba...@fastmail.com> ;;; Copyright © 2016, 2017 Stefan Reichör <ste...@xsteve.at> ;;; Copyright © 2016 Dylan Jeffers <sapientech@sapient...@openmailbox.org> ;;; Copyright © 2016, 2017 Alex Vong <alexvong1...@gmail.com> diff --cc gnu/packages/tls.scm index 1882303,9e3020b..263ca9b --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@@ -6,10 -6,10 +6,10 @@@ ;;; Copyright © 2015 David Thompson <da...@gnu.org> ;;; Copyright © 2015, 2016, 2017, 2018 Leo Famulari <l...@famulari.name> ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efr...@flashner.co.il> - ;;; Copyright © 2016, 2017, 2018 Nils Gillmann <n...@n0.is> + ;;; Copyright © 2016, 2017, 2018 ng0 <n...@n0.is> ;;; Copyright © 2016 Hartmut Goebel <h.goe...@crazy-compilers.com> ;;; Copyright © 2017 Ricardo Wurmus <rek...@elephly.net> -;;; Copyright © 2017, 2018 Marius Bakke <mba...@fastmail.com> +;;; Copyright © 2017, 2018, 2019 Marius Bakke <mba...@fastmail.com> ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <m...@tobias.gr> ;;; Copyright © 2017 Rutger Helling <rhell...@mykolab.com> ;;; Copyright © 2018 Clément Lassieur <clem...@lassieur.org> diff --cc tests/build-utils.scm index 1c90845,46fe8ea..5678bb6 --- a/tests/build-utils.scm +++ b/tests/build-utils.scm @@@ -1,6 -1,5 +1,6 @@@ ;;; GNU Guix --- Functional package management for GNU - ;;; Copyright © 2012, 2015, 2016 Ludovic Courtès <l...@gnu.org> + ;;; Copyright © 2012, 2015, 2016, 2019 Ludovic Courtès <l...@gnu.org> +;;; Copyright © 2019 Ricardo Wurmus <rek...@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@@ -108,120 -110,38 +111,139 @@@ ;; it can't know about the bootstrap bash in the store, since it's not ;; named "bash". Help it out a bit by providing a symlink it this ;; package's output. - (setenv "PATH" (dirname bash)) - (wrap-program foo `("GUIX_FOO" prefix ("hello"))) - (wrap-program foo `("GUIX_BAR" prefix ("world"))) - - ;; The bootstrap Bash is linked against an old libc and would abort with - ;; an assertion failure when trying to load incompatible locale data. - (unsetenv "LOCPATH") - - (let* ((pipe (open-input-pipe foo)) - (str (get-string-all pipe))) - (with-directory-excursion directory - (for-each delete-file '("foo" ".foo-real"))) - (and (zero? (close-pipe pipe)) - str)))))) + (with-environment-variable "PATH" (dirname bash) + (wrap-program foo `("GUIX_FOO" prefix ("hello"))) + (wrap-program foo `("GUIX_BAR" prefix ("world"))) + + ;; The bootstrap Bash is linked against an old libc and would abort + ;; with an assertion failure when trying to load incompatible locale + ;; data. + (unsetenv "LOCPATH") + + (let* ((pipe (open-input-pipe foo)) + (str (get-string-all pipe))) + (with-directory-excursion directory + (for-each delete-file '("foo" ".foo-real"))) + (and (zero? (close-pipe pipe)) + str))))))) + + (test-assert "invoke/quiet, success" + (begin + (invoke/quiet "true") + #t)) + + (test-assert "invoke/quiet, failure" + (guard (c ((message-condition? c) + (string-contains (condition-message c) "This is an error."))) + (invoke/quiet "sh" "-c" "echo This is an error. ; false") + #f)) + + (test-assert "invoke/quiet, failure, message on stderr" + (guard (c ((message-condition? c) + (string-contains (condition-message c) + "This is another error."))) + (invoke/quiet "sh" "-c" "echo This is another error. >&2 ; false") + #f)) +(let ((script-contents "\ +#!/anything/cabbage-bash-1.2.3/bin/sh + +echo hello world")) + + (test-equal "wrap-script, simple case" + (string-append + (format #f "\ +#!GUILE --no-auto-compile +#!#; Guix wrapper +#\\-~s +#\\-~s +" + '(begin (let ((current (getenv "GUIX_FOO"))) + (setenv "GUIX_FOO" + (if current + (string-append "/some/path:/some/other/path" + ":" current) + "/some/path:/some/other/path")))) + '(let ((cl (command-line))) + (apply execl "/anything/cabbage-bash-1.2.3/bin/sh" + (car cl) + (cons (car cl) + (append '("") cl))))) + script-contents) + (call-with-temporary-directory + (lambda (directory) + (let ((script-file-name (string-append directory "/foo"))) + (call-with-output-file script-file-name + (lambda (port) + (format port script-contents))) + (chmod script-file-name #o777) + + (mock ((guix build utils) which (const "GUILE")) + (wrap-script script-file-name + `("GUIX_FOO" prefix ("/some/path" + "/some/other/path")))) + (let ((str (call-with-input-file script-file-name get-string-all))) + (with-directory-excursion directory + (delete-file "foo")) + str)))))) + +(let ((script-contents "\ +#!/anything/cabbage-bash-1.2.3/bin/python3 -and -args +# vim:fileencoding=utf-8 +print('hello world')")) + + (test-equal "wrap-script, with encoding declaration" + (string-append + (format #f "\ +#!MYGUILE --no-auto-compile +#!#; # vim:fileencoding=utf-8 +#\\-~s +#\\-~s +" + '(begin (let ((current (getenv "GUIX_FOO"))) + (setenv "GUIX_FOO" + (if current + (string-append "/some/path:/some/other/path" + ":" current) + "/some/path:/some/other/path")))) + `(let ((cl (command-line))) + (apply execl "/anything/cabbage-bash-1.2.3/bin/python3" + (car cl) + (cons (car cl) + (append '("" "-and" "-args") cl))))) + script-contents) + (call-with-temporary-directory + (lambda (directory) + (let ((script-file-name (string-append directory "/foo"))) + (call-with-output-file script-file-name + (lambda (port) + (format port script-contents))) + (chmod script-file-name #o777) + + (wrap-script script-file-name + #:guile "MYGUILE" + `("GUIX_FOO" prefix ("/some/path" + "/some/other/path"))) + (let ((str (call-with-input-file script-file-name get-string-all))) + (with-directory-excursion directory + (delete-file "foo")) + str)))))) + +(test-assert "wrap-script, raises condition" + (call-with-temporary-directory + (lambda (directory) + (let ((script-file-name (string-append directory "/foo"))) + (call-with-output-file script-file-name + (lambda (port) + (format port "This is not a script"))) + (chmod script-file-name #o777) + (catch 'srfi-34 + (lambda () + (wrap-script script-file-name + #:guile "MYGUILE" + `("GUIX_FOO" prefix ("/some/path" + "/some/other/path")))) + (lambda (type obj) + (wrap-error? obj))))))) + (test-end)