From 61f961eed3250db4d7d3c1d52d0aae51d5bd7b9f Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 8 Jul 2018 20:42:11 -0400 Subject: [PATCH 001/374] gnu: linux-libre@4.14: Update to 4.14.54. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.54. (%linux-libre-4.14-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 3351195c0c..46a0c8c713 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -411,8 +411,8 @@ It has been modified to remove all non-free binary blobs.") %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.53") -(define %linux-libre-4.14-hash "1bl20q85vnhbkmjj6gvqhgp379hk26rrivwmc5g5wqz46xyavk2a") +(define %linux-libre-4.14-version "4.14.54") +(define %linux-libre-4.14-hash "027138z7p5ld1zyrxq1xjc7x3b7wbgikh7gn2xfvwm9gn8qpazki") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version From 80b66eb9494fd6a7df1794e4ce7acd5f7d319c8b Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 8 Jul 2018 20:43:19 -0400 Subject: [PATCH 002/374] gnu: linux-libre: Update to 4.17.5. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.17.5. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 46a0c8c713..cd3924ccee 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -402,8 +402,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.17.4") -(define %linux-libre-hash "1qdywncwwaxghjidihyzvdjq7pffzlswlspjyy420ny967n818jd") +(define %linux-libre-version "4.17.5") +(define %linux-libre-hash "0pldqw7f4nhziw3r73l339d79aijxhy6anf1ryiy3makip6gkib1") (define-public linux-libre (make-linux-libre %linux-libre-version From a33652ee336ae9a5d2ab5fd54bf2397caec42a0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= Date: Mon, 18 Jun 2018 12:43:42 +0200 Subject: [PATCH 003/374] services: Add prometheus-node-exporter-service-type. * gnu/services/monitoring.scm (prometheus-node-exporter-service-type): New variable. (): New record type. (prometheus-node-exporter-shepherd-service): New procedure. * gnu/doc/guix.texi (Monitoring Services): Document it. * gnu/tests/monitoring.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add test module. --- doc/guix.texi | 36 +++++++++++++- gnu/local.mk | 3 +- gnu/packages/monitoring.scm | 1 + gnu/services/monitoring.scm | 38 ++++++++++++++- gnu/tests/monitoring.scm | 97 +++++++++++++++++++++++++++++++++++++ 5 files changed, 172 insertions(+), 3 deletions(-) create mode 100644 gnu/tests/monitoring.scm diff --git a/doc/guix.texi b/doc/guix.texi index a458c7c8dd..3f0eedd0d9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -48,7 +48,8 @@ Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* -Copyright @copyright{} 2018 Pierre-Antoine Rouby +Copyright @copyright{} 2018 Pierre-Antoine Rouby@* +Copyright @copyright{} 2018 Gábor Boskovits@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -15649,6 +15650,39 @@ Specify the path of the base URL. This can be useful if @end table @end deftp +@subsubheading Prometheus Node Exporter Service + +@cindex prometheus-node-exporter +The Prometheus ``node exporter'' makes hardware and operating system statistics +provided by the Linux kernel available for the Prometheus monitoring system. +This service should be deployed on all physical nodes and virtual machines, +where monitoring these statistics is desirable. + +@defvr {Scheme variable} prometheus-node-exporter-service-type +This is the service type for the +@uref{https://github.com/prometheus/node_exporter/, prometheus-node-exporter} +service, its value must be a @code{prometheus-node-exporter-configuration} +record as in this example: + +@example +(service prometheus-node-exporter-service-type + (prometheus-node-exporter-configuration + (web-listen-address ":9100"))) +@end example +@end defvar + +@deftp {Data Type} prometheus-node-exporter-configuration +Data type representing the configuration of @command{node_exporter}. + +@table @asis +@item @code{package} (default: @code{go-github-com-prometheus-node-exporter}) +The prometheus-node-exporter package to use. + +@item @code{web-listen-address} (default: @code{":9100"}) +Bind the web interface to the specified address. + +@end table +@end deftp @node Kerberos Services @subsubsection Kerberos Services diff --git a/gnu/local.mk b/gnu/local.mk index dad664ca15..eb245e3268 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -15,7 +15,7 @@ # Copyright © 2017 Tobias Geerinckx-Rice # Copyright © 2017, 2018 Clément Lassieur # Copyright © 2017 Mathieu Othacehe -# Copyright © 2017 Gábor Boskovits +# Copyright © 2017, 2018 Gábor Boskovits # Copyright © 2018 Amirouche Boubekki # Copyright © 2018 Oleg Pykhalov # @@ -530,6 +530,7 @@ GNU_SYSTEM_MODULES = \ %D%/tests/databases.scm \ %D%/tests/desktop.scm \ %D%/tests/dict.scm \ + %D%/tests/monitoring.scm \ %D%/tests/nfs.scm \ %D%/tests/install.scm \ %D%/tests/mail.scm \ diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index db6c22a69c..fae62d5493 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2018 Sou Bunnbu ;;; Copyright © 2017, 2018 Ricardo Wurmus ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Gábor Boskovits ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm index 49a65db4b5..aa3b63a0e4 100644 --- a/gnu/services/monitoring.scm +++ b/gnu/services/monitoring.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Sou Bunnbu +;;; Copyright © 2018 Gábor Boskovits ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,7 +27,9 @@ #:use-module (guix records) #:use-module (ice-9 match) #:export (darkstat-configuration - darkstat-service-type)) + prometheus-node-exporter-configuration + darkstat-service-type + prometheus-node-exporter-service-type)) ;;; @@ -89,3 +92,36 @@ HTTP.") (const %darkstat-accounts)) (service-extension shepherd-root-service-type (compose list darkstat-shepherd-service)))))) + +(define-record-type* + prometheus-node-exporter-configuration + make-prometheus-node-exporter-configuration + prometheus-node-exporter-configuration? + (package prometheus-node-exporter-configuration-package + (default go-github-com-prometheus-node-exporter)) + (web-listen-address prometheus-node-exporter-web-listen-address + (default ":9100"))) + +(define prometheus-node-exporter-shepherd-service + (match-lambda + (( $ + package web-listen-address) + (shepherd-service + (documentation "Prometheus node exporter.") + (provision '(prometheus-node-exporter)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list #$(file-append package "/bin/node_exporter") + "--web.listen-address" #$web-listen-address))) + (stop #~(make-kill-destructor)))))) + +(define prometheus-node-exporter-service-type + (service-type + (name 'prometheus-node-exporter) + (description + "Run @command{node_exporter} to serve hardware and OS metrics to +prometheus.") + (extensions + (list (service-extension + shepherd-root-service-type + (compose list prometheus-node-exporter-shepherd-service)))))) diff --git a/gnu/tests/monitoring.scm b/gnu/tests/monitoring.scm new file mode 100644 index 0000000000..67899987ce --- /dev/null +++ b/gnu/tests/monitoring.scm @@ -0,0 +1,97 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Gábor Boskovits +;;; +;;; 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 . + +(define-module (gnu tests monitoring) + #:use-module (gnu services) + #:use-module (gnu services monitoring) + #:use-module (gnu services networking) + #:use-module (gnu system vm) + #:use-module (gnu tests) + #:use-module (guix gexp) + #:export (%test-prometheus-node-exporter)) + + +;;; +;;; Prometheus Node Exporter +;;; + +(define* (run-prometheus-node-exporter-server-test name test-os) + "Run tests in %PROMETHEUS-NODE-EXPORTER-OS, which has prometheus-node-exporter running." + (define os + (marionette-operating-system + test-os + #:imported-modules '((gnu services herd)))) + + (define vm + (virtual-machine + (operating-system os) + (port-forwardings '((8080 . 9100))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-11) + (srfi srfi-64) + (gnu build marionette) + (web client) + (web response)) + + (define marionette + (make-marionette (list #$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin #$name) + + (test-assert "prometheus-node-exporter running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (match (start-service 'prometheus-node-exporter) + (#f #f) + (('service response-parts ...) + (match (assq-ref response-parts 'running) + ((pid) (number? pid)))))) + marionette)) + + (test-equal "http-get" + 200 + (begin + (wait-for-tcp-port 9100 marionette) + (let-values (((response text) + (http-get "http://localhost:8080"))) + (response-code response)))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation (string-append name "-test") test)) + +(define %prometheus-node-exporter-os + (simple-operating-system + (dhcp-client-service) + (service prometheus-node-exporter-service-type + (prometheus-node-exporter-configuration)))) + +(define %test-prometheus-node-exporter + (system-test + (name "prometheus-node-exporter") + (description "Connect to a running prometheus-node-exporter server.") + (value (run-prometheus-node-exporter-server-test + name %prometheus-node-exporter-os)))) From ffe8d2149087ea02784b6078a46ddf8e315d73d3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 6 Jul 2018 14:23:22 +0200 Subject: [PATCH 004/374] gnu: macs: Update to 2.1.1.20160309. * gnu/packages/bioinformatics.scm (macs): Update to 2.1.1.20160309. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 9bf629947b..245e7dd564 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3760,13 +3760,13 @@ experiments.") (define-public macs (package (name "macs") - (version "2.1.0.20151222") + (version "2.1.1.20160309") (source (origin (method url-fetch) (uri (pypi-uri "MACS2" version)) (sha256 (base32 - "1r2hcz6irhcq7lwbafjks98jbn34hv05avgbdjnp6w6mlfjkf8x5")))) + "09ixspd1vcqmz1c81ih70xs4m7qml2iy5vyx1y74zww3iy1vl210")))) (build-system python-build-system) (arguments `(#:python ,python-2 ; only compatible with Python 2.7 From 9c2427abe7ffb23813802501941bea6b01c81dd3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 9 Jul 2018 13:30:32 +0200 Subject: [PATCH 005/374] doc: Fix syntax error and remove trailing whitespace. This is a follow-up to commit a33652ee336ae9a5d2ab5fd54bf2397caec42a0e. * doc/guix.texi (Prometheus Node Exporter Service): Remove trailing whitespace and change "defvr" to "defvar". --- doc/guix.texi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 3f0eedd0d9..5ab609c730 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -15654,11 +15654,11 @@ Specify the path of the base URL. This can be useful if @cindex prometheus-node-exporter The Prometheus ``node exporter'' makes hardware and operating system statistics -provided by the Linux kernel available for the Prometheus monitoring system. +provided by the Linux kernel available for the Prometheus monitoring system. This service should be deployed on all physical nodes and virtual machines, -where monitoring these statistics is desirable. +where monitoring these statistics is desirable. -@defvr {Scheme variable} prometheus-node-exporter-service-type +@defvar {Scheme variable} prometheus-node-exporter-service-type This is the service type for the @uref{https://github.com/prometheus/node_exporter/, prometheus-node-exporter} service, its value must be a @code{prometheus-node-exporter-configuration} From cf0d926202e4f099520bf75adabd66f0886383f2 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Sun, 8 Jul 2018 01:34:28 -0300 Subject: [PATCH 006/374] doc: Fix FTP link in documentation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The current incorrect link at: https://www.gnu.org/software/guix/manual/en/guix.html#Running-GuixSD-in-a-VM. I looked for other instances of this mistake in the docs, but I could't find any. * doc/guix.texi: fix link to GuixSD VM image in FTP server. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 5ab609c730..ffcf1651c8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -21357,7 +21357,7 @@ example graph. @cindex virtual machine To run GuixSD in a virtual machine (VM), one can either use the pre-built GuixSD VM image distributed at -@indicateurl{ftp://alpha.gnu.org/guix/guixsd-vm-image-@value{VERSION}.@var{system}.tar.xz} +@indicateurl{ftp://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.@var{system}.xz} , or build their own virtual machine image using @command{guix system vm-image} (@pxref{Invoking guix system}). The returned image is in qcow2 format, which the @uref{http://qemu.org/, QEMU emulator} can From af7914a1f135c3286b51fa6214a59b5b0329cbec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 9 Jul 2018 16:48:27 +0200 Subject: [PATCH 007/374] doc: Use https://alpha.gnu.org instead of FTP. * doc/guix.texi (Binary Installation) (USB Stick and DVD Installation, Running GuixSD in a VM): Use "https://alpha.gnu.org" instead of the now deprecated FTP URLs. --- doc/guix.texi | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index ffcf1651c8..7ce364b0af 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -430,7 +430,7 @@ Installing goes along these lines: @item @cindex downloading Guix binary Download the binary tarball from -@indicateurl{ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz}, +@indicateurl{https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz}, where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine already running the kernel Linux, and so on. @@ -439,7 +439,7 @@ Make sure to download the associated @file{.sig} file and to verify the authenticity of the tarball against it, along these lines: @example -$ wget ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig +$ wget https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig $ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig @end example @@ -8393,7 +8393,7 @@ about their support in GNU/Linux. An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from -@indicateurl{ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz}, +@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is one of: @table @code @@ -8409,7 +8409,7 @@ Make sure to download the associated @file{.sig} file and to verify the authenticity of the image against it, along these lines: @example -$ wget ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig +$ wget https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig $ gpg --verify guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig @end example @@ -21357,7 +21357,7 @@ example graph. @cindex virtual machine To run GuixSD in a virtual machine (VM), one can either use the pre-built GuixSD VM image distributed at -@indicateurl{ftp://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.@var{system}.xz} +@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.@var{system}.xz} , or build their own virtual machine image using @command{guix system vm-image} (@pxref{Invoking guix system}). The returned image is in qcow2 format, which the @uref{http://qemu.org/, QEMU emulator} can From 6c123c2666f423433a256ccdd954fb3470c29a84 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sun, 8 Jul 2018 18:56:10 +0200 Subject: [PATCH 008/374] gnu: Add emacs-nodejs-repl. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packges/emacs.scm (emacs-nodejs-repl): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9f055cfc51..9bd4114559 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4182,6 +4182,32 @@ errors and strict-mode warnings, smart line-wrapping within comments and strings, and code folding.") (license license:gpl3+))) +(define-public emacs-nodejs-repl + (package + (name "emacs-nodejs-repl") + (version "0.1.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/abicky/nodejs-repl.el" + "/archive/" version ".tar.gz")) + (sha256 + (base32 + "0sphg1jxi3a5l0gqdp27d0qgyjaiq2p293av9zm8ksm0vwqp3fr9")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system emacs-build-system) + (home-page "https://github.com/abicky/nodejs-repl.el") + (synopsis "Node.js REPL inside Emacs") + (description + "This program is derived from comint-mode and provides the following +features: + +@itemize +@item TAB completion same as Node.js REPL +@item file name completion in string +@item incremental history search +@end itemize") + (license license:gpl3+))) + (define-public emacs-markdown-mode (package (name "emacs-markdown-mode") From 0bb78bf9502489b7dfd6a5f91f0d18bf64f7274e Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sun, 8 Jul 2018 18:56:11 +0200 Subject: [PATCH 009/374] gnu: Add emacs-typescript-mode. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packges/emacs.scm (emacs-typescript-mode): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9bd4114559..b195b2ccf9 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4208,6 +4208,33 @@ features: @end itemize") (license license:gpl3+))) +(define-public emacs-typescript-mode + (package + (name "emacs-typescript-mode") + (version "0.3") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/ananthakumaran/typescript.el" + "/archive/v" version ".tar.gz")) + (sha256 + (base32 + "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system emacs-build-system) + (home-page "https://github.com/ananthakumaran/typescript.el") + (synopsis "Emacs major mode for editing Typescript code") + (description + "This is based on Karl Landstrom's barebones @code{typescript-mode}. +This is much more robust and works with @code{cc-mode}'s comment +filling (mostly). The modifications to the original @code{javascript.el} mode +mainly consisted in replacing \"javascript\" with \"typescript\" + +The main features of this Typescript mode are syntactic highlighting (enabled +with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic +indentation and filling of comments and C preprocessor fontification.") + (license license:gpl3+))) + (define-public emacs-markdown-mode (package (name "emacs-markdown-mode") From 19db14caf710b3e497bdca4361cff829d34722ae Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sun, 8 Jul 2018 18:56:12 +0200 Subject: [PATCH 010/374] gnu: Add emacs-tide. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packges/emacs.scm (emacs-tide): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index b195b2ccf9..c6c7a1df4b 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4235,6 +4235,46 @@ with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic indentation and filling of comments and C preprocessor fontification.") (license license:gpl3+))) +(define-public emacs-tide + (package + (name "emacs-tide") + (version "2.8.3.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ananthakumaran/tide" + "/archive/v" version ".tar.gz")) + (sha256 + (base32 + "1k0kzqiv1hfs0kqm37947snzhrsmand3i9chvm6a2r5lb8v9q47y")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s) + ("emacs-flycheck" ,flycheck) + ("emacs-typescript-mode" ,emacs-typescript-mode))) + (home-page "https://github.com/ananthakumaran/tide") + (synopsis "Typescript IDE for Emacs") + (description + "Tide is an Interactive Development Environment (IDE) for Emacs which +provides the following features: + +@itemize +@item ElDoc +@item Auto complete +@item Flycheck +@item Jump to definition, Jump to type definition +@item Find occurrences +@item Rename symbol +@item Imenu +@item Compile On Save +@item Highlight Identifiers +@item Code Fixes +@item Code Refactor +@item Organize Imports +@end itemize") + (license license:gpl3+))) + (define-public emacs-markdown-mode (package (name "emacs-markdown-mode") From e311ef4f87f7ad8db2114e5f89961eea0240893b Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 5 Jul 2018 13:58:37 +0300 Subject: [PATCH 011/374] gnu: dunst: Add svg support. * gnu/packages/dunst.scm (dunst)[inputs]: Use 'gdk-pixbuf+svg' instead of 'gdk-pixbuf'. --- gnu/packages/dunst.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm index eaad227747..7328e442cf 100644 --- a/gnu/packages/dunst.scm +++ b/gnu/packages/dunst.scm @@ -60,7 +60,7 @@ ("which" ,which))) (inputs `(("dbus" ,dbus) - ("gdk-pixbuf" ,gdk-pixbuf) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ; for svg support ("glib" ,glib) ("cairo" ,cairo) ("pango" ,pango) From fc4f13bde8483ae0542902633a6fea659e04e2ff Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 5 Jul 2018 14:18:42 +0300 Subject: [PATCH 012/374] gnu: openscenegraph: Update to 3.6.2. * gnu/packages/graphics.scm (openscenegraph): Update to 3.6.2. [source]: Use the new url and 'git-fetch' method. [properties]: Add 'upstream-name'. [native-inputs]: Add 'pkg-config'. [inputs]: Add 'libxrandr'. * gnu/packages/patches/openscenegraph-ffmpeg3.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/graphics.scm | 21 ++- .../patches/openscenegraph-ffmpeg3.patch | 156 ------------------ 3 files changed, 13 insertions(+), 165 deletions(-) delete mode 100644 gnu/packages/patches/openscenegraph-ffmpeg3.patch diff --git a/gnu/local.mk b/gnu/local.mk index eb245e3268..f7a00eab2e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -986,7 +986,6 @@ dist_patch_DATA = \ %D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \ %D%/packages/patches/openocd-nrf52.patch \ - %D%/packages/patches/openscenegraph-ffmpeg3.patch \ %D%/packages/patches/opensmtpd-fix-crash.patch \ %D%/packages/patches/openssl-runpath.patch \ %D%/packages/patches/openssl-1.0.2-CVE-2018-0495.patch \ diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index fffe972659..65f023a488 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017, 2018 Ben Woodcroft ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Mathieu Othacehe +;;; Copyright © 2018 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -408,17 +409,19 @@ visual effects work for film.") (define-public openscenegraph (package (name "openscenegraph") - (version "3.4.0") + (version "3.6.2") (source (origin - (method url-fetch) - (uri (string-append "http://trac.openscenegraph.org/downloads/developer_releases/" - "OpenSceneGraph-" version ".zip")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/openscenegraph/OpenSceneGraph") + (commit (string-append "OpenSceneGraph-" version)))) (sha256 (base32 - "03h4wfqqk7rf3mpz0sa99gy715cwpala7964z2npd8jxfn27swjw")) - (patches (search-patches "openscenegraph-ffmpeg3.patch")) - (file-name (string-append name "-" version ".zip")))) + "03jk6lclyd4biniaw04w7j0z1spkm69f1c19i37b8v9x3zv1p1id")) + (file-name (string-append name "-" version "-checkout")))) + (properties + `((upstream-name . "OpenSceneGraph"))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no test target available @@ -430,11 +433,13 @@ visual effects work for film.") (assoc-ref %outputs "out") "/lib:" (assoc-ref %outputs "out") "/lib64")))) (native-inputs - `(("unzip" ,unzip))) + `(("pkg-config" ,pkg-config) + ("unzip" ,unzip))) (inputs `(("giflib" ,giflib) ("jasper" ,jasper) ("librsvg" ,librsvg) + ("libxrandr" ,libxrandr) ("pth" ,pth) ("qtbase" ,qtbase) ("ffmpeg" ,ffmpeg) diff --git a/gnu/packages/patches/openscenegraph-ffmpeg3.patch b/gnu/packages/patches/openscenegraph-ffmpeg3.patch deleted file mode 100644 index 02c04a5583..0000000000 --- a/gnu/packages/patches/openscenegraph-ffmpeg3.patch +++ /dev/null @@ -1,156 +0,0 @@ -Description: Replace deprecated FFmpeg API -Author: Andreas Cadhalpun -See . ---- a/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp -+++ b/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp -@@ -71,7 +71,7 @@ void FFmpegDecoderVideo::open(AVStream * - findAspectRatio(); - - // Find out whether we support Alpha channel -- m_alpha_channel = (m_context->pix_fmt == PIX_FMT_YUVA420P); -+ m_alpha_channel = (m_context->pix_fmt == AV_PIX_FMT_YUVA420P); - - // Find out the framerate - m_frame_rate = av_q2d(stream->avg_frame_rate); -@@ -91,20 +91,19 @@ void FFmpegDecoderVideo::open(AVStream * - throw std::runtime_error("avcodec_open() failed"); - - // Allocate video frame -- m_frame.reset(avcodec_alloc_frame()); -+ m_frame.reset(av_frame_alloc()); - - // Allocate converted RGB frame -- m_frame_rgba.reset(avcodec_alloc_frame()); -- m_buffer_rgba[0].resize(avpicture_get_size(PIX_FMT_RGB24, width(), height())); -+ m_frame_rgba.reset(av_frame_alloc()); -+ m_buffer_rgba[0].resize(avpicture_get_size(AV_PIX_FMT_RGB24, width(), height())); - m_buffer_rgba[1].resize(m_buffer_rgba[0].size()); - - // Assign appropriate parts of the buffer to image planes in m_frame_rgba -- avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[0])[0], PIX_FMT_RGB24, width(), height()); -+ avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[0])[0], AV_PIX_FMT_RGB24, width(), height()); - - // Override get_buffer()/release_buffer() from codec context in order to retrieve the PTS of each frame. - m_context->opaque = this; -- m_context->get_buffer = getBuffer; -- m_context->release_buffer = releaseBuffer; -+ m_context->get_buffer2 = getBuffer; - } - - -@@ -263,8 +262,8 @@ int FFmpegDecoderVideo::convert(AVPictur - #ifdef USE_SWSCALE - if (m_swscale_ctx==0) - { -- m_swscale_ctx = sws_getContext(src_width, src_height, (PixelFormat) src_pix_fmt, -- src_width, src_height, (PixelFormat) dst_pix_fmt, -+ m_swscale_ctx = sws_getContext(src_width, src_height, (AVPixelFormat) src_pix_fmt, -+ src_width, src_height, (AVPixelFormat) dst_pix_fmt, - /*SWS_BILINEAR*/ SWS_BICUBIC, NULL, NULL, NULL); - } - -@@ -311,14 +310,14 @@ void FFmpegDecoderVideo::publishFrame(co - AVPicture * const dst = (AVPicture *) m_frame_rgba.get(); - - // Assign appropriate parts of the buffer to image planes in m_frame_rgba -- avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[m_writeBuffer])[0], PIX_FMT_RGB24, width(), height()); -+ avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[m_writeBuffer])[0], AV_PIX_FMT_RGB24, width(), height()); - - // Convert YUVA420p (i.e. YUV420p plus alpha channel) using our own routine - -- if (m_context->pix_fmt == PIX_FMT_YUVA420P) -+ if (m_context->pix_fmt == AV_PIX_FMT_YUVA420P) - yuva420pToRgba(dst, src, width(), height()); - else -- convert(dst, PIX_FMT_RGB24, src, m_context->pix_fmt, width(), height()); -+ convert(dst, AV_PIX_FMT_RGB24, src, m_context->pix_fmt, width(), height()); - - // Wait 'delay' seconds before publishing the picture. - int i_delay = static_cast(delay * 1000000 + 0.5); -@@ -345,7 +344,7 @@ void FFmpegDecoderVideo::publishFrame(co - - void FFmpegDecoderVideo::yuva420pToRgba(AVPicture * const dst, AVPicture * const src, int width, int height) - { -- convert(dst, PIX_FMT_RGB24, src, m_context->pix_fmt, width, height); -+ convert(dst, AV_PIX_FMT_RGB24, src, m_context->pix_fmt, width, height); - - const size_t bpp = 4; - -@@ -363,31 +362,28 @@ void FFmpegDecoderVideo::yuva420pToRgba( - } - } - -- -- --int FFmpegDecoderVideo::getBuffer(AVCodecContext * const context, AVFrame * const picture) -+int FFmpegDecoderVideo::getBuffer(AVCodecContext * const context, AVFrame * const picture, int flags) - { -+ AVBufferRef *ref; - const FFmpegDecoderVideo * const this_ = reinterpret_cast(context->opaque); - -- const int result = avcodec_default_get_buffer(context, picture); -+ const int result = avcodec_default_get_buffer2(context, picture, flags); - int64_t * p_pts = reinterpret_cast( av_malloc(sizeof(int64_t)) ); - - *p_pts = this_->m_packet_pts; - picture->opaque = p_pts; - -+ ref = av_buffer_create((uint8_t *)picture->opaque, sizeof(int64_t), FFmpegDecoderVideo::freeBuffer, picture->buf[0], flags); -+ picture->buf[0] = ref; -+ - return result; - } - -- -- --void FFmpegDecoderVideo::releaseBuffer(AVCodecContext * const context, AVFrame * const picture) -+void FFmpegDecoderVideo::freeBuffer(void *opaque, uint8_t *data) - { -- if (picture != 0) -- av_freep(&picture->opaque); -- -- avcodec_default_release_buffer(context, picture); -+ AVBufferRef *ref = (AVBufferRef *)opaque; -+ av_buffer_unref(&ref); -+ av_free(data); - } - -- -- - } // namespace osgFFmpeg ---- a/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp -+++ b/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp -@@ -94,8 +94,8 @@ private: - int src_pix_fmt, int src_width, int src_height); - - -- static int getBuffer(AVCodecContext * context, AVFrame * picture); -- static void releaseBuffer(AVCodecContext * context, AVFrame * picture); -+ static int getBuffer(AVCodecContext * context, AVFrame * picture, int flags); -+ static void freeBuffer(void * opaque, uint8_t *data); - - PacketQueue & m_packets; - FFmpegClocks & m_clocks; ---- a/src/osgPlugins/ffmpeg/FFmpegParameters.cpp -+++ b/src/osgPlugins/ffmpeg/FFmpegParameters.cpp -@@ -19,7 +19,7 @@ extern "C" - #include - } - --inline PixelFormat osg_av_get_pix_fmt(const char *name) { return av_get_pix_fmt(name); } -+inline AVPixelFormat osg_av_get_pix_fmt(const char *name) { return av_get_pix_fmt(name); } - - - namespace osgFFmpeg { ---- a/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp 2016-02-18 21:25:39.627923629 +0000 -+++ b/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp 2016-02-18 21:26:17.071140100 +0000 -@@ -227,8 +227,7 @@ - if (avcodec_open2(m_context, p_codec, NULL) < 0) - throw std::runtime_error("avcodec_open() failed"); - -- m_context->get_buffer = avcodec_default_get_buffer; -- m_context->release_buffer = avcodec_default_release_buffer; -+ m_context->get_buffer2 = avcodec_default_get_buffer2; - - } - From a6dec13b5de7d8411755df0eb304381726371d6a Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 5 Jul 2018 21:47:24 +0300 Subject: [PATCH 013/374] gnu: openmw: Update to a checkout version. * gnu/packages/game-development.scm (openmw): Update to the latest commit to fix the build. --- gnu/packages/game-development.scm | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 96b15b5652..4131c130ff 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014 Tomáš Čech ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015, 2018 Ludovic Courtès -;;; Copyright © 2015 Alex Kost +;;; Copyright © 2015, 2018 Alex Kost ;;; Copyright © 2015, 2016, 2017 David Thompson ;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016, 2017 Kei Kebreau @@ -1019,18 +1019,23 @@ of use.") (license license:expat))) (define-public openmw + ;; XXX The current version does not support qt 5.11, but the upcoming + ;; version (0.44) will do. + (let ((commit "5bc073603e8c7887e015a0ef41b4cefd6e688aaf") + (revision "1")) (package (name "openmw") - (version "0.43.0") + (version (git-version "0.43" revision commit)) (source (origin - (method url-fetch) - (uri - (string-append "https://github.com/OpenMW/openmw/archive/" - name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/OpenMW/openmw.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "11phjx7b3mv4n295xgq25lkcwq0mgr35i5k05hf1h77y6n6jbw64")))) + "1sp4n3f1syvv0iz7n72wh226fyc0jh98cg8bvs574jvvqx6qn851")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; No test target @@ -1057,7 +1062,7 @@ the 2002 open-world RPG Morrowind. The engine comes with its own editor, called OpenMW-CS which allows the user to edit or create their own original games.") (home-page "https://openmw.org") - (license license:gpl3))) + (license license:gpl3)))) (define-public godot (package From 269a86bd7ce196e15d72b356bf80cf3a29d40fed Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 9 Jul 2018 23:20:08 +0200 Subject: [PATCH 014/374] gnu: libgit2: Update to 0.26.5 [fixes CVE-2018-10887 and CVE-2018-10888]. * gnu/packages/version-control.scm (libgit2): Update to 0.26.5. --- gnu/packages/version-control.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 2bd59ae95f..6cb3354204 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -419,7 +419,7 @@ everything from small to very large projects with speed and efficiency.") (define-public libgit2 (package (name "libgit2") - (version "0.26.4") + (version "0.26.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/libgit2/libgit2/" @@ -427,7 +427,7 @@ everything from small to very large projects with speed and efficiency.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "15ybzypyggx64ba7i0zxnnbvzh7z34fcrkwk2xj54kmv1dha4br9")) + "1adhq7pk9zdj85i5j4xzimq39qy6wpsi4h9fb8vc8jsncr8qmqjj")) (patches (search-patches "libgit2-mtime-0.patch")) ;; Remove bundled software. From e1d887fbb9ef985778d56712d7837961d26bd305 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 9 Jul 2018 23:23:40 +0200 Subject: [PATCH 015/374] gnu: vte-ng: Use "invoke". * gnu/packages/gnome.scm (vte-ng)[arguments]: Call INVOKE instead of SYSTEM*. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b00076f630..cb560616b3 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2132,7 +2132,7 @@ editors, IDEs, etc.") (replace 'bootstrap (lambda _ (setenv "NOCONFIGURE" "true") - (zero? (system* "sh" "autogen.sh"))))))) + (invoke "sh" "autogen.sh")))))) (synopsis "Enhanced VTE terminal widget") (description "VTE is a library (libvte) implementing a terminal emulator widget for From 76c6bdc0fadc6f4342c3e91c75fa1438ad19091d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 9 Jul 2018 23:26:53 +0200 Subject: [PATCH 016/374] gnu: vte-ng: Update to 0.52.2.a. * gnu/packages/gnome.scm (vte-ng): Update to 0.52.2.a. [arguments]: Remove #:configure-flags. --- gnu/packages/gnome.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index cb560616b3..19a216aa2a 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2110,7 +2110,7 @@ editors, IDEs, etc.") (package (inherit vte) (name "vte-ng") - (version "0.50.2.a") + (version "0.52.2.a") (native-inputs `(("gtk-doc" ,gtk-doc) ("gperf" ,gperf) @@ -2125,11 +2125,10 @@ editors, IDEs, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0sv666ilid916ja6gw2d376nyyy66gvhsds8ans02x4b7gagj5sx")))) + "1fd65mk7c87k03vhnb2ixkjvv9nja04mfq813iyjji1b11f2sh7v")))) (arguments - `(#:configure-flags '("CXXFLAGS=-Wformat=0") - #:phases (modify-phases %standard-phases - (replace 'bootstrap + `(#:phases (modify-phases %standard-phases + (replace 'bootstrap (lambda _ (setenv "NOCONFIGURE" "true") (invoke "sh" "autogen.sh")))))) From cd4ed46376d60a1510beedd96e39e6620936e656 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 10 Jul 2018 08:08:36 +0200 Subject: [PATCH 017/374] gnu: wine-staging-patchset-data: Update to 3.12. * gnu/packages/wine.scm (wine-staging-patchset-data): Update to 3.12. --- gnu/packages/wine.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 91b37556a0..115060cfb6 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -223,7 +223,7 @@ integrate Windows applications into your desktop.") (define-public wine-staging-patchset-data (package (name "wine-staging-patchset-data") - (version "3.11") + (version "3.12") (source (origin (method url-fetch) @@ -232,7 +232,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".zip")) (sha256 (base32 - "1sd9chv919y0wfqcshasl82899isvq9rik4h8d44g2cf4m9zzhvi")))) + "1hjs36jw8k1d22c713wzwvyhfrb8mi85dpk9wpsggnnw2x57hzs0")))) (build-system trivial-build-system) (native-inputs `(("bash" ,bash) From 4f6afde9b4ac014fbcb75b9611a5a14ae096e422 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 10 Jul 2018 08:09:27 +0200 Subject: [PATCH 018/374] gnu: wine-staging: Update to 3.12. * gnu/packages/wine.scm (wine-staging): Update to 3.12. --- gnu/packages/wine.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 115060cfb6..2de4ff5d94 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -279,7 +279,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "0zlhkz6aybkr9jg8za9x56fp92q10df0abadn9bsa8ryparr5d15")))) + "0zvqmd0018wvlxz4xbm5sbv7770j3l14q0ilpgs0jy49srcw116v")))) (inputs `(("autoconf" ,autoconf) ; for autoreconf ("gtk+" ,gtk+) ("libva" ,libva) From b24443bff9f9f3f36353eea2ef35e6dc3745a417 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 6 Jun 2018 19:14:39 +0200 Subject: [PATCH 019/374] guix: Add opam importer. * guix/scripts/import.scm (importers): Add opam. * guix/scripts/import/opam.scm: New file. * guix/import/opam.scm: New file. * tests/opam.scm: New file. * Makefile.am: Add them. * doc/guix.texi (Invoking guix import): Document it. --- Makefile.am | 3 + doc/guix.texi | 6 ++ guix/import/opam.scm | 193 +++++++++++++++++++++++++++++++++++ guix/scripts/import.scm | 2 +- guix/scripts/import/opam.scm | 92 +++++++++++++++++ tests/opam.scm | 118 +++++++++++++++++++++ 6 files changed, 413 insertions(+), 1 deletion(-) create mode 100644 guix/import/opam.scm create mode 100644 guix/scripts/import/opam.scm create mode 100644 tests/opam.scm diff --git a/Makefile.am b/Makefile.am index 5dc04de35c..618d1653e4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -231,11 +231,13 @@ MODULES += \ guix/import/github.scm \ guix/import/gnome.scm \ guix/import/json.scm \ + guix/import/opam.scm \ guix/import/pypi.scm \ guix/import/stackage.scm \ guix/scripts/import/crate.scm \ guix/scripts/import/gem.scm \ guix/scripts/import/json.scm \ + guix/scripts/import/opam.scm \ guix/scripts/import/pypi.scm \ guix/scripts/import/stackage.scm \ guix/scripts/weather.scm @@ -382,6 +384,7 @@ if HAVE_GUILE_JSON SCM_TESTS += \ tests/pypi.scm \ + tests/opam.scm \ tests/cpan.scm \ tests/gem.scm \ tests/crate.scm diff --git a/doc/guix.texi b/doc/guix.texi index 7ce364b0af..a8e53a5308 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6661,6 +6661,12 @@ in Guix. @cindex crate Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}. + +@item opam +@cindex OPAM +@cindex OCaml +Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package +repository used by the OCaml community. @end table The structure of the @command{guix import} code is modular. It would be diff --git a/guix/import/opam.scm b/guix/import/opam.scm new file mode 100644 index 0000000000..f252bdc31a --- /dev/null +++ b/guix/import/opam.scm @@ -0,0 +1,193 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Julien Lepiller +;;; +;;; 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 . + +(define-module (guix import opam) + #:use-module (ice-9 match) + #:use-module (ice-9 vlist) + #:use-module ((ice-9 rdelim) #:select (read-line)) + #:use-module (srfi srfi-1) + #:use-module (web uri) + #:use-module (guix http-client) + #:use-module (guix utils) + #:use-module (guix import utils) + #:use-module ((guix licenses) #:prefix license:) + #:export (opam->guix-package)) + +(define (opam-urls) + "Fetch the urls.txt file from the opam repository and returns the list of +URLs it contains." + (let ((port (http-fetch/cached (string->uri "https://opam.ocaml.org/urls.txt")))) + (let loop ((result '())) + (let ((line (read-line port))) + (if (eof-object? line) + (begin + (close port) + result) + (loop (cons line result))))))) + +(define (vhash-ref hashtable key default) + (match (vhash-assoc key hashtable) + (#f default) + ((_ . x) x))) + +(define (hashtable-update hashtable line) + "Parse @var{line} to get the name and version of the package and adds them +to the hashtable." + (let* ((line (string-split line #\ ))) + (match line + ((url foo ...) + (if (equal? url "repo") + hashtable + (match (string-split url #\/) + ((type name1 versionstr foo ...) + (if (equal? type "packages") + (match (string-split versionstr #\.) + ((name2 versions ...) + (let ((version (string-join versions "."))) + (if (equal? name1 name2) + (let ((curr (vhash-ref hashtable name1 '()))) + (vhash-cons name1 (cons version curr) hashtable)) + hashtable))) + (_ hashtable)) + hashtable)) + (_ hashtable)))) + (_ hashtable)))) + +(define (urls->hashtable urls) + "Transform urls.txt in a hashtable whose keys are package names and values +the list of available versions." + (let ((hashtable vlist-null)) + (let loop ((urls urls) (hashtable hashtable)) + (match urls + (() hashtable) + ((url rest ...) (loop rest (hashtable-update hashtable url))))))) + +(define (latest-version versions) + "Find the most recent version from a list of versions." + (match versions + ((first rest ...) + (let loop ((versions rest) (m first)) + (match versions + (() m) + ((first rest ...) + (loop rest (if (version>? m first) m first)))))))) + +(define (fetch-package-url uri) + "Fetch and parse the url file. Return the URL the package can be downloaded +from." + (let ((port (http-fetch uri))) + (let loop ((result #f)) + (let ((line (read-line port))) + (if (eof-object? line) + (begin + (close port) + result) + (let* ((line (string-split line #\ ))) + (match line + ((key value rest ...) + (if (member key '("archive:" "http:")) + (loop (string-trim-both value #\")) + (loop result)))))))))) + +(define (fetch-package-metadata uri) + "Fetch and parse the opam file. Return an association list containing the +homepage, the license and the list of inputs." + (let ((port (http-fetch uri))) + (let loop ((result '()) (dependencies? #f)) + (let ((line (read-line port))) + (if (eof-object? line) + (begin + (close port) + result) + (let* ((line (string-split line #\ ))) + (match line + ((key value ...) + (let ((dependencies? + (if dependencies? + (not (equal? key "]")) + (equal? key "depends:"))) + (val (string-trim-both (string-join value "") #\"))) + (cond + ((equal? key "homepage:") + (loop (cons `("homepage" . ,val) result) dependencies?)) + ((equal? key "license:") + (loop (cons `("license" . ,val) result) dependencies?)) + ((and dependencies? (not (equal? val "["))) + (match (string-split val #\{) + ((val rest ...) + (let ((curr (assoc-ref result "inputs")) + (new (string-trim-both + val (list->char-set '(#\] #\[ #\"))))) + (loop (cons `("inputs" . ,(cons new (if curr curr '()))) result) + (if (string-contains val "]") #f dependencies?)))))) + (else (loop result dependencies?)))))))))))) + +(define (string->license str) + (cond + ((equal? str "MIT") '(license:expat)) + ((equal? str "GPL2") '(license:gpl2)) + ((equal? str "LGPLv2") '(license:lgpl2)) + (else `()))) + +(define (ocaml-name->guix-name name) + (cond + ((equal? name "ocamlfind") "ocaml-findlib") + ((string-prefix? "ocaml" name) name) + ((string-prefix? "conf-" name) (substring name 5)) + (else (string-append "ocaml-" name)))) + +(define (dependencies->inputs dependencies) + "Transform the list of dependencies in a list of inputs." + (if (not dependencies) + '() + (map (lambda (input) + (list input (list 'unquote (string->symbol input)))) + (map ocaml-name->guix-name dependencies)))) + +(define (opam->guix-package name) + (let* ((hashtable (urls->hashtable (opam-urls))) + (versions (vhash-ref hashtable name #f))) + (unless (eq? versions #f) + (let* ((version (latest-version versions)) + (package-url (string-append "https://opam.ocaml.org/packages/" name + "/" name "." version "/")) + (url-url (string-append package-url "url")) + (opam-url (string-append package-url "opam")) + (source-url (fetch-package-url url-url)) + (metadata (fetch-package-metadata opam-url)) + (dependencies (assoc-ref metadata "inputs")) + (inputs (dependencies->inputs dependencies))) + (call-with-temporary-output-file + (lambda (temp port) + (and (url-fetch source-url temp) + `(package + (name ,(ocaml-name->guix-name name)) + (version ,version) + (source + (origin + (method url-fetch) + (uri ,source-url) + (sha256 (base32 ,(guix-hash-url temp))))) + (build-system ocaml-build-system) + ,@(if (null? inputs) + '() + `((inputs ,(list 'quasiquote inputs)))) + (home-page ,(assoc-ref metadata "homepage")) + (synopsis "") + (description "") + (license ,@(string->license (assoc-ref metadata "license"))))))))))) diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index f8cb85700d..0b326e1049 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -75,7 +75,7 @@ rather than \\n." ;;; (define importers '("gnu" "nix" "pypi" "cpan" "hackage" "stackage" "elpa" "gem" - "cran" "crate" "texlive" "json")) + "cran" "crate" "texlive" "json" "opam")) (define (resolve-importer name) (let ((module (resolve-interface diff --git a/guix/scripts/import/opam.scm b/guix/scripts/import/opam.scm new file mode 100644 index 0000000000..b549878742 --- /dev/null +++ b/guix/scripts/import/opam.scm @@ -0,0 +1,92 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Julien Lepiller +;;; +;;; 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 . + +(define-module (guix scripts import opam) + #:use-module (guix ui) + #:use-module (guix utils) + #:use-module (guix scripts) + #:use-module (guix import opam) + #:use-module (guix scripts import) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-37) + #:use-module (ice-9 match) + #:use-module (ice-9 format) + #:export (guix-import-opam)) + + +;;; +;;; Command-line options. +;;; + +(define %default-options + '()) + +(define (show-help) + (display (G_ "Usage: guix import opam PACKAGE-NAME +Import and convert the opam package for PACKAGE-NAME.\n")) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define %options + ;; Specification of the command-line options. + (cons* (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix import opam"))) + %standard-import-options)) + + +;;; +;;; Entry point. +;;; + +(define (guix-import-opam . args) + (define (parse-options) + ;; Return the alist of option values. + (args-fold* args %options + (lambda (opt name arg result) + (leave (G_ "~A: unrecognized option~%") name)) + (lambda (arg result) + (alist-cons 'argument arg result)) + %default-options)) + + (let* ((opts (parse-options)) + (args (filter-map (match-lambda + (('argument . value) + value) + (_ #f)) + (reverse opts)))) + (match args + ((package-name) + (let ((sexp (opam->guix-package package-name))) + (unless sexp + (leave (G_ "failed to download meta-data for package '~a'~%") + package-name)) + sexp)) + (() + (leave (G_ "too few arguments~%"))) + ((many ...) + (leave (G_ "too many arguments~%")))))) diff --git a/tests/opam.scm b/tests/opam.scm new file mode 100644 index 0000000000..26832174a8 --- /dev/null +++ b/tests/opam.scm @@ -0,0 +1,118 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Julien Lepiller +;;; +;;; 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 . + +(define-module (test-opam) + #:use-module (guix import opam) + #:use-module (guix base32) + #:use-module (guix hash) + #:use-module (guix tests) + #:use-module ((guix build utils) #:select (delete-file-recursively mkdir-p which)) + #:use-module (srfi srfi-64) + #:use-module (web uri) + #:use-module (ice-9 match)) + +(define test-url-file + "http: \"https://example.org/foo-1.0.0.tar.gz\" +checksum: \"ac8920f39a8100b94820659bc2c20817\"") + +(define test-source-hash + "") + +(define test-urls + "repo ac8920f39a8100b94820659bc2c20817 0o644 +packages/foo/foo.1.0.0/url ac8920f39a8100b94820659bc2c20817 0o644 +packages/foo/foo.1.0.0/opam ac8920f39a8100b94820659bc2c20817 0o644 +packages/foo/foo.1.0.0/descr ac8920f39a8100b94820659bc2c20817 0o644") + +(define test-opam-file +"opam-version: 1.2 +maintainer: \"Alice Doe\" +authors: \"Alice Doe, John Doe\" +homepage: \"https://example.org/\" +bug-reports: \"https://example.org/bugs\" +license: \"MIT\" +dev-repo: \"https://example.org/git\" +build: [ + \"ocaml\" \"pkg/pkg.ml\" \"build\" \"--pinned\" \"%{pinned}%\" +] +build-test: [ + \"ocaml\" \"pkg/pkg.ml\" \"build\" \"--pinned\" \"%{pinned}%\" \"--tests\" \"true\" +] +depends: [ + \"alcotest\" {test & >= \"0.7.2\"} + \"ocamlbuild\" {build & >= \"0.9.2\"} +]") + +(test-begin "opam") + +(test-assert "opam->guix-package" + ;; Replace network resources with sample data. + (mock ((guix import utils) url-fetch + (lambda (url file-name) + (match url + ("https://example.org/foo-1.0.0.tar.gz" + (begin + (mkdir-p "foo-1.0.0") + (system* "tar" "czvf" file-name "foo-1.0.0/") + (delete-file-recursively "foo-1.0.0") + (set! test-source-hash + (call-with-input-file file-name port-sha256)))) + (_ (error "Unexpected URL: " url))))) + (mock ((guix http-client) http-fetch/cached + (lambda (url . rest) + (match (uri->string url) + ("https://opam.ocaml.org/urls.txt" + (values (open-input-string test-urls) + (string-length test-urls))) + (_ (error "Unexpected URL: " url))))) + (mock ((guix http-client) http-fetch + (lambda (url . rest) + (match url + ("https://opam.ocaml.org/packages/foo/foo.1.0.0/url" + (values (open-input-string test-url-file) + (string-length test-url-file))) + ("https://opam.ocaml.org/packages/foo/foo.1.0.0/opam" + (values (open-input-string test-opam-file) + (string-length test-opam-file))) + (_ (error "Unexpected URL: " url))))) + (match (opam->guix-package "foo") + (('package + ('name "ocaml-foo") + ('version "1.0.0") + ('source ('origin + ('method 'url-fetch) + ('uri "https://example.org/foo-1.0.0.tar.gz") + ('sha256 + ('base32 + (? string? hash))))) + ('build-system 'ocaml-build-system) + ('inputs + ('quasiquote + (("ocamlbuild" ('unquote 'ocamlbuild)) + ("ocaml-alcotest" ('unquote 'ocaml-alcotest))))) + ('home-page "https://example.org/") + ('synopsis "") + ('description "") + ('license 'license:expat)) + (string=? (bytevector->nix-base32-string + test-source-hash) + hash)) + (x + (pk 'fail x #f))))))) + +(test-end "opam") From 6094a65e272c1d001dbadecfc945f9d30f2a04bb Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 10 Jul 2018 14:13:40 +0200 Subject: [PATCH 020/374] gnu: lua: Update to 5.3.5. * gnu/packages/lua.scm (lua): Update to 5.3.5. --- gnu/packages/lua.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 82ea6e02de..be77ac4a63 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -48,13 +48,13 @@ (define-public lua (package (name "lua") - (version "5.3.4") + (version "5.3.5") (source (origin (method url-fetch) (uri (string-append "https://www.lua.org/ftp/lua-" version ".tar.gz")) (sha256 - (base32 "0320a8dg3aci4hxla380dx1ifkw8gj4gbw5c4dz41g1kh98sm0gn")) + (base32 "1b2qn2rv96nmbm6zab4l877bd4zq7wpwm8drwjiy2ih4jqzysbhc")) (patches (search-patches "lua-pkgconfig.patch" "lua-liblua-so.patch")))) (build-system gnu-build-system) From b47b2d32084ae689ff73ebb6403f1cc145131ea3 Mon Sep 17 00:00:00 2001 From: Nikolai Merinov Date: Wed, 4 Jul 2018 16:27:11 +0200 Subject: [PATCH 021/374] gnu: rust: Support build with glibc-2.27; update to 1.26.2. * gnu/packages/rust.scm (rust-source): Add "patches" argument. (rust-bootstrapped-package): Add "patches" argument. (rust-1.19)[arguments]<#:phases>[patch-tests]: Modify. [arguments]<#:phases>[patch-aarch64-test]: New phase. [arguments]<#:phases>[use-readelf-for-tests]: New phase. [arguments]<#:phases>[remove-unsupported-tests]: New phase. (rust-1.23): Disable "run-pass/out-of-stack.rs" test. (rust-1.24)[arguments]<#:phases>[patch-aarch64-test]: Replace. (rust-1.25)[inputs]: Switch to LLVM 6.0. (rust-1.25)[arguments]<#:phases>[enable-codegen-tests]: New variable. (rust): New variable. * gnu/packages/patches/rust-coresimd-doctest.patch: New file. --- .../patches/rust-coresimd-doctest.patch | 21 +++ gnu/packages/rust.scm | 168 ++++++++++++------ 2 files changed, 130 insertions(+), 59 deletions(-) create mode 100644 gnu/packages/patches/rust-coresimd-doctest.patch diff --git a/gnu/packages/patches/rust-coresimd-doctest.patch b/gnu/packages/patches/rust-coresimd-doctest.patch new file mode 100644 index 0000000000..bfa0ab224b --- /dev/null +++ b/gnu/packages/patches/rust-coresimd-doctest.patch @@ -0,0 +1,21 @@ +Doctest coresimd::x86::__m256 failed on processors withouth "avx" feature. +Backported patch with changes from https://github.com/rust-lang-nursery/stdsimd/issues/481 + +--- rustc-1.26.2-src-orig/src/stdsimd/coresimd/x86/mod.rs 1970-01-01 05:00:00.000000000 +0500 ++++ rustc-1.26.2-src/src/stdsimd/coresimd/x86/mod.rs 2018-06-22 00:01:55.142026720 +0500 +@@ -293,13 +293,13 @@ + /// use std::arch::x86_64::*; + /// + /// # fn main() { +- /// # #[target_feature(enable = "sse")] ++ /// # #[target_feature(enable = "avx")] + /// # unsafe fn foo() { + /// let eight_zeros = _mm256_setzero_ps(); + /// let eight_ones = _mm256_set1_ps(1.0); + /// let eight_floats = _mm256_set_ps(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0); + /// # } +- /// # if is_x86_feature_detected!("sse") { unsafe { foo() } } ++ /// # if is_x86_feature_detected!("avx") { unsafe { foo() } } + /// # } + /// ``` + pub struct __m256(f32, f32, f32, f32, f32, f32, f32, f32); diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 7fcc795b6f..6d3554a3a7 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -157,14 +157,15 @@ in turn be used to build the final Rust.") (license license:asl2.0))) -(define (rust-source version hash) +(define* (rust-source version hash #:key (patches '())) (origin (method url-fetch) (uri (string-append "https://static.rust-lang.org/dist/" "rustc-" version "-src.tar.gz")) (sha256 (base32 hash)) (modules '((guix build utils))) - (snippet '(begin (delete-file-recursively "src/llvm") #t)))) + (snippet '(begin (delete-file-recursively "src/llvm") #t)) + (patches (map search-patch patches)))) (define-public rust-1.19 (package @@ -203,20 +204,29 @@ in turn be used to build the final Rust.") (("fn test_process_mask") "#[allow(unused_attributes)] #[ignore] fn test_process_mask")) - ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH. - ;; - (delete-file-recursively "src/test/run-make/linker-output-non-utf8") - (substitute* "src/librustc_back/dynamic_lib.rs" - ;; This test is known to fail on aarch64 and powerpc64le: - ;; https://github.com/rust-lang/rust/issues/45410 - (("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine")) - ;; nm doesn't recognize the file format because of the - ;; nonstandard sections used by the Rust compiler, but readelf - ;; ignores them. - (substitute* "src/test/run-make/atomic-lock-free/Makefile" - (("\tnm ") - "\treadelf -c ")) #t))) + (add-after 'patch-tests 'patch-aarch64-test + (lambda* _ + (substitute* "src/librustc_back/dynamic_lib.rs" + ;; This test is known to fail on aarch64 and powerpc64le: + ;; https://github.com/rust-lang/rust/issues/45410 + (("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine")) + #t)) + (add-after 'patch-tests 'use-readelf-for-tests + (lambda* _ + ;; nm doesn't recognize the file format because of the + ;; nonstandard sections used by the Rust compiler, but readelf + ;; ignores them. + (substitute* "src/test/run-make/atomic-lock-free/Makefile" + (("\tnm ") + "\treadelf -c ")) + #t)) + (add-after 'patch-tests 'remove-unsupported-tests + (lambda* _ + ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH. + ;; + (delete-file-recursively "src/test/run-make/linker-output-non-utf8") + #t)) (add-after 'patch-source-shebangs 'patch-cargo-checksums (lambda* _ (substitute* "src/Cargo.lock" @@ -279,13 +289,14 @@ safety and thread safety guarantees.") ;; Dual licensed. (license (list license:asl2.0 license:expat)))) -(define (rust-bootstrapped-package base-rust version checksum) - "Bootstrap rust VERSION with source checksum CHECKSUM using BASE-RUST." +(define* (rust-bootstrapped-package base-rust version checksum + #:key (patches '())) + "Bootstrap rust VERSION with source checksum CHECKSUM patched with PATCHES using BASE-RUST." (package (inherit base-rust) (version version) (source - (rust-source version checksum)) + (rust-source version checksum #:patches patches)) (native-inputs (alist-replace "cargo-bootstrap" (list base-rust "cargo") (alist-replace "rustc-bootstrap" (list base-rust) @@ -410,7 +421,12 @@ safety and thread safety guarantees.") (substitute* "src/tools/cargo/tests/test.rs" (("fn cargo_test_env") "#[ignore]\nfn cargo_test_env")) #t)) - (add-after 'patch-cargo-tests 'fix-mtime-bug + (add-after 'patch-cargo-tests 'ignore-glibc-2.27-incompatible-test + ;; https://github.com/rust-lang/rust/issues/47863 + (lambda _ + (substitute* "src/test/run-pass/out-of-stack.rs" + (("// ignore-android") "// ignore-test\n// ignore-android")))) + (add-after 'ignore-glibc-2.27-incompatible-test 'fix-mtime-bug (lambda* _ (substitute* "src/build_helper/lib.rs" ;; Bug in Rust code. @@ -452,10 +468,10 @@ localstatedir = \"var/lib\" default-linker = \"" gcc "/bin/gcc" "\" channel = \"stable\" rpath = true -# There is 2 failed codegen tests: -# codegen/mainsubprogram.rs and codegen/mainsubprogramstart.rs -# This tests required patched LLVM -codegen-tests = false +" ;; There are 2 failed codegen tests: + ;; codegen/mainsubprogram.rs and codegen/mainsubprogramstart.rs + ;; These tests require a patched LLVM +"codegen-tests = false [target." ,(nix-system->gnu-triplet-for-rust) "] llvm-config = \"" llvm "/bin/llvm-config" "\" cc = \"" gcc "/bin/gcc" "\" @@ -513,45 +529,26 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" (substitute-keyword-arguments (package-arguments base-rust) ((#:phases phases) `(modify-phases ,phases - (replace 'patch-tests - (lambda* (#:key inputs #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) - (substitute* "src/libstd/process.rs" - ;; The newline is intentional. - ;; There's a line length "tidy" check in Rust which would - ;; fail otherwise. - (("\"/bin/sh\"") (string-append "\n\"" bash "/bin/sh\""))) - (substitute* "src/libstd/net/tcp.rs" - ;; There is no network in build environment - (("fn connect_timeout_unroutable") - "#[ignore]\nfn connect_timeout_unroutable")) - ;; - (substitute* "src/libstd/sys/unix/process/process_common.rs" - (("fn test_process_mask") "#[allow(unused_attributes)] - #[ignore] - fn test_process_mask")) - ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH. - ;; - (delete-file-recursively "src/test/run-make/linker-output-non-utf8") - (substitute* "src/librustc_metadata/dynamic_lib.rs" - ;; This test is known to fail on aarch64 and powerpc64le: - ;; https://github.com/rust-lang/rust/issues/45410 - (("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine")) - #t))) + (delete 'use-readelf-for-tests) + (replace 'patch-aarch64-test + (lambda* _ + (substitute* "src/librustc_metadata/dynamic_lib.rs" + ;; This test is known to fail on aarch64 and powerpc64le: + ;; https://github.com/rust-lang/rust/issues/45410 + (("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine")) + #t)) (delete 'fix-mtime-bug)))))))) -(define-public rust - (let ((base-rust rust-1.24)) +(define-public rust-1.25 + (let ((base-rust + (rust-bootstrapped-package rust-1.24 "1.25.0" + "0baxjr99311lvwdq0s38bipbnj72pn6fgbk6lcq7j555xq53mxpf"))) (package (inherit base-rust) - (version "1.25.0") - (source - (rust-source version - "0baxjr99311lvwdq0s38bipbnj72pn6fgbk6lcq7j555xq53mxpf")) - (native-inputs - (alist-replace "cargo-bootstrap" (list base-rust "cargo") - (alist-replace "rustc-bootstrap" (list base-rust) - (package-native-inputs base-rust)))) + (inputs + ;; Use LLVM 6.0 + (alist-replace "llvm" (list llvm) + (package-inputs base-rust))) (arguments (substitute-keyword-arguments (package-arguments base-rust) ((#:phases phases) @@ -560,4 +557,57 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" (lambda* _ (substitute* "src/tools/cargo/tests/generate-lockfile.rs" ;; This test wants to update the crate index. - (("fn no_index_update") "#[ignore]\nfn no_index_update"))))))))))) + (("fn no_index_update") "#[ignore]\nfn no_index_update")))) + (add-after 'configure 'enable-codegen-tests + (lambda* _ + (substitute* "config.toml" + (("codegen-tests = false") "")))) + (delete 'ignore-glibc-2.27-incompatible-test)))))))) + +(define-public rust + (let ((base-rust + (rust-bootstrapped-package rust-1.25 "1.26.2" + "0047ais0fvmqvngqkdsxgrzhb0kljg8wy85b01kbbjc88hqcz7pv" + #:patches '("rust-coresimd-doctest.patch")))) + (package + (inherit base-rust) + (arguments + (substitute-keyword-arguments (package-arguments base-rust) + ((#:phases phases) + `(modify-phases ,phases + ;; binaryen was replaced with LLD project from LLVM + (delete 'dont-build-native) + (replace 'remove-unsupported-tests + (lambda* _ + ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH. + ;; + (delete-file-recursively "src/test/run-make-fulldeps/linker-output-non-utf8") + #t)) + (replace 'patch-cargo-tests + (lambda* _ + (substitute* "src/tools/cargo/tests/testsuite/build.rs" + (("/usr/bin/env") (which "env")) + ;; Guix llvm is compiled without asmjs-unknown-emscripten. + (("fn wasm32_final_outputs") "#[ignore]\nfn wasm32_final_outputs")) + (substitute* "src/tools/cargo/tests/testsuite/death.rs" + ;; This is stuck when built in container. + (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_everyone")) + ;; Prints test output in the wrong order when built on + ;; i686-linux. + (substitute* "src/tools/cargo/tests/testsuite/test.rs" + (("fn cargo_test_env") "#[ignore]\nfn cargo_test_env")) + #t)) + (add-after 'patch-cargo-tests 'disable-cargo-test-for-nightly-channel + (lambda* _ + ;; This test failed to work on "nightly" channel builds + ;; https://github.com/rust-lang/cargo/issues/5648 + (substitute* "src/tools/cargo/tests/testsuite/resolve.rs" + (("fn test_resolving_minimum_version_with_transitive_deps") + "#[ignore]\nfn test_resolving_minimum_version_with_transitive_deps")) + #t)) + (replace 'patch-cargo-index-update + (lambda* _ + (substitute* "src/tools/cargo/tests/testsuite/generate_lockfile.rs" + ;; This test wants to update the crate index. + (("fn no_index_update") "#[ignore]\nfn no_index_update")) + #t))))))))) From f510a2b93b75ee02e4a17816d2808a37c7b84c3a Mon Sep 17 00:00:00 2001 From: Nikolai Merinov Date: Sat, 30 Jun 2018 14:34:49 +0500 Subject: [PATCH 022/374] gnu: rust: Update to 1.27.0. * gnu/packages/rust.scm (rust): Rename to... (rust-1.26): ...this. (rust): New variable. * gnu/packages/patches/rust-bootstrap-stage0-test.patch: New file. --- .../patches/rust-bootstrap-stage0-test.patch | 55 +++++++++++++++++++ gnu/packages/rust.scm | 23 +++++++- 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/rust-bootstrap-stage0-test.patch diff --git a/gnu/packages/patches/rust-bootstrap-stage0-test.patch b/gnu/packages/patches/rust-bootstrap-stage0-test.patch new file mode 100644 index 0000000000..e8484903e5 --- /dev/null +++ b/gnu/packages/patches/rust-bootstrap-stage0-test.patch @@ -0,0 +1,55 @@ +Bootstrap tests failed with local stage0 cargo and rustc +Backported changes from https://github.com/rust-lang/rust/pull/51977 + +From 0834d9d771e912f51deca6c25699e44734624546 Mon Sep 17 00:00:00 2001 +From: Nikolai Merinov +Date: Mon, 2 Jul 2018 01:45:35 +0500 +Subject: [PATCH] bootstrap: tests should use rustc from config.toml + +Tests should always use "rustc" and "cargo" from config.toml instead +of assuming that stage0 binaries was downloaded to build directory. +--- + src/bootstrap/bootstrap.py | 2 ++ + src/bootstrap/config.rs | 6 ++---- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py +index 487440becf..1701f7b83a 100644 +--- a/src/bootstrap/bootstrap.py ++++ b/src/bootstrap/bootstrap.py +@@ -788,6 +788,8 @@ def bootstrap(help_triggered): + env["BOOTSTRAP_PARENT_ID"] = str(os.getpid()) + env["BOOTSTRAP_PYTHON"] = sys.executable + env["BUILD_DIR"] = build.build_dir ++ env["CARGO"] = build.cargo() ++ env["RUSTC"] = build.rustc() + run(args, env=env, verbose=build.verbose) + + +diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs +index 6dd6291be2..d1a0deb583 100644 +--- a/src/bootstrap/config.rs ++++ b/src/bootstrap/config.rs +@@ -23,7 +23,6 @@ use std::cmp; + + use num_cpus; + use toml; +-use util::exe; + use cache::{INTERNER, Interned}; + use flags::Flags; + pub use flags::Subcommand; +@@ -362,9 +361,8 @@ impl Config { + config.src = Config::path_from_python("SRC"); + config.out = Config::path_from_python("BUILD_DIR"); + +- let stage0_root = config.out.join(&config.build).join("stage0/bin"); +- config.initial_rustc = stage0_root.join(exe("rustc", &config.build)); +- config.initial_cargo = stage0_root.join(exe("cargo", &config.build)); ++ config.initial_rustc = Config::path_from_python("RUSTC"); ++ config.initial_cargo = Config::path_from_python("CARGO"); + + config + } +-- +2.17.1 + diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 6d3554a3a7..bb6fea99a0 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -564,7 +564,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" (("codegen-tests = false") "")))) (delete 'ignore-glibc-2.27-incompatible-test)))))))) -(define-public rust +(define-public rust-1.26 (let ((base-rust (rust-bootstrapped-package rust-1.25 "1.26.2" "0047ais0fvmqvngqkdsxgrzhb0kljg8wy85b01kbbjc88hqcz7pv" @@ -611,3 +611,24 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" ;; This test wants to update the crate index. (("fn no_index_update") "#[ignore]\nfn no_index_update")) #t))))))))) + +(define-public rust + (let ((base-rust + (rust-bootstrapped-package rust-1.26 "1.27.0" + "089d7rhw55zpvnw71dj8vil6qrylvl4xjr4m8bywjj83d4zq1f9c" + #:patches + '("rust-coresimd-doctest.patch" + "rust-bootstrap-stage0-test.patch")))) + (package + (inherit base-rust) + (arguments + (substitute-keyword-arguments (package-arguments base-rust) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'install 'mkdir-prefix-paths + (lambda* (#:key outputs #:allow-other-keys) + ;; As result of https://github.com/rust-lang/rust/issues/36989 + ;; `prefix' directory should exist before `install' call + (mkdir-p (assoc-ref outputs "out")) + (mkdir-p (assoc-ref outputs "cargo")) + #t))))))))) From 336c4a4baadb2211157a819991bdce16c14595f9 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 9 Jul 2018 17:26:54 -0700 Subject: [PATCH 023/374] gnu: u-boot: Update to 2018.07. --=-=-= Content-Type: text/plain The attached patch updates u-boot to 2018.07, which required adding native-inputs of "bison" and "flex". live well, vagrant From 74a9561ac07592a5ae15b723d0f2ac7fc05c463c Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Tue, 10 Jul 2018 00:12:05 +0000 Subject: [PATCH] gnu: u-boot: Update to 2018.07. * gnu/packages/bootloaders.scm (u-boot): Update to 2018.07. (u-boot)[native-inputs]: Add "bison" and "flex". --- gnu/packages/bootloaders.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 6e4e021180..73130b7312 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -357,7 +357,7 @@ tree binary files. These are board description files used by Linux and BSD.") (define u-boot (package (name "u-boot") - (version "2018.05") + (version "2018.07") (source (origin (method url-fetch) (uri (string-append @@ -365,10 +365,12 @@ tree binary files. These are board description files used by Linux and BSD.") "u-boot-" version ".tar.bz2")) (sha256 (base32 - "0j60p4iskzb4hamxgykc6gd7xchxfka1zwh8hv08r9rrc4m3r8ad")))) + "1m7nw64mxflpc6sqvnz2kb5fxfkb4mrpy8b1wi15dcwipj4dy44z")))) (native-inputs `(("bc" ,bc) + ("bison" ,bison) ("dtc" ,dtc) + ("flex" ,flex) ("openssl" ,openssl) ("python-2" ,python-2) ("python2-coverage" ,python2-coverage) From 532126e92e3c46581d588654bd83a8f0c1491f60 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 10 Jul 2018 22:16:14 +0300 Subject: [PATCH 024/374] gnu: libyajl: Actually run test suite. * gnu/packages/web.scm (libyajl)[arguments]: Patch shebang in test suite. --- gnu/packages/web.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 3d83a2185e..06d0fec0b0 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2015 Eric Dvorsak ;;; Copyright © 2016 Sou Bunnbu ;;; Copyright © 2016 Jelle Licht -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Rene Saavedra ;;; Copyright © 2016 Ben Woodcroft ;;; Copyright © 2016 Clément Lassieur @@ -752,6 +752,14 @@ style API.") (base32 "0nmcqpaiq4pv7dymyg3n3jsd57yhp5npxl26a1hzw3m3lmj37drz")))) (build-system cmake-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'patch-source-shebangs 'patch-tests + (lambda _ + (substitute* "test/parsing/run_tests.sh" + (("`which echo`") (which "echo"))) + #t))))) (home-page "https://lloyd.github.io/yajl/") (synopsis "C library for parsing JSON") (description From 75767dab997bbe08125552d01e431d3cf2630f3a Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 10 Jul 2018 18:00:19 +0200 Subject: [PATCH 025/374] gnu: Add patches. * gnu/local.mk (dist_patch_DATA): Add 'rust-bootstrap-stage0-test.patch', 'rust-coresimd-doctest.patch'. --- gnu/local.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/local.mk b/gnu/local.mk index f7a00eab2e..6bfde27d68 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1113,6 +1113,8 @@ dist_patch_DATA = \ %D%/packages/patches/ruby-concurrent-test-arm.patch \ %D%/packages/patches/ruby-rack-ignore-failing-test.patch \ %D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\ + %D%/packages/patches/rust-bootstrap-stage0-test.patch \ + %D%/packages/patches/rust-coresimd-doctest.patch \ %D%/packages/patches/rxvt-unicode-escape-sequences.patch \ %D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scotch-test-threading.patch \ From 469cc535f4b07e861a0873ac8f4c63242466a41f Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 10 Jul 2018 20:41:26 +0200 Subject: [PATCH 026/374] gnu: fc-host-tools: Update description. * gnu/packages/embedded.scm (fc-host-tools)[description]: Modify. --- gnu/packages/embedded.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 4caf29437f..ecd94473ff 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -1092,6 +1092,10 @@ feeding melodies to be played to it. that can be issued through the RVTMUX (debug trace) serial channel. This program is our test mode shell for sending Test Mode commands to targets and displaying decoded target responses. +@item fcup-smsend Send a short message via SMS +@item fcup-smsendmult Send multiple short messages via SMS in one go +@item fcup-smsendpdu Send multiple short messages given in PDU format via SMS +@item sms-pdu-decode Decode PDU format messages @end enumerate") (home-page "https://www.freecalypso.org/") (license license:public-domain))) From 1dec269176fd809483a751da174c2d5ea66ed58a Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 10 Jul 2018 20:47:47 +0200 Subject: [PATCH 027/374] gnu: fc-host-tools: Fix internal invocations. * gnu/packages/embedded.scm (fc-host-tools)[arguments]<#:phases> [patch-installation-paths]: Modify. --- gnu/packages/embedded.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index ecd94473ff..0174224616 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -1008,7 +1008,12 @@ SPI, I2C, JTAG.") "loadtools/defpath.c" "loadtools/Makefile" "miscutil/c139explore" - "miscutil/pirexplore") + "miscutil/pirexplore" + "ffstools/tiffs-wrappers/installpath.c" + "rvinterf/rvtat/launchrvif.c" + "rvinterf/etmsync/launchrvif.c" + "rvinterf/libasync/launchrvif.c" + "uptools/atcmd/atinterf.c") (("/opt/freecalypso/loadtools") (string-append (assoc-ref outputs "out") "/lib/freecalypso/loadtools")) (("/opt/freecalypso") From f03df3ee75d1209fb9782999bd04378c58e9f0f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 9 Jul 2018 10:44:36 +0200 Subject: [PATCH 028/374] profiles: Factorize 'manifest-search-paths'. * guix/profiles.scm (manifest-search-paths): New procedure. (profile-derivation)[builder]: Use it. * guix/build/profiles.scm (build-etc/profile): Remove $PATH. --- guix/build/profiles.scm | 2 +- guix/profiles.scm | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/guix/build/profiles.scm b/guix/build/profiles.scm index 819688a913..df785c85a7 100644 --- a/guix/build/profiles.scm +++ b/guix/build/profiles.scm @@ -89,7 +89,7 @@ definitions for all the SEARCH-PATHS." # When GUIX_PROFILE is undefined, the various environment variables refer # to this specific profile generation. \n" port) - (let ((variables (evaluate-search-paths (cons $PATH search-paths) + (let ((variables (evaluate-search-paths search-paths (list output)))) (for-each (write-environment-variable-definition port) (map (abstract-profile output) variables)))))) diff --git a/guix/profiles.scm b/guix/profiles.scm index e6b77e8d38..88228f1558 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -91,6 +91,7 @@ manifest-lookup manifest-installed? manifest-matching-entries + manifest-search-paths manifest-transaction manifest-transaction? @@ -545,6 +546,14 @@ no match.." (filter matches? (manifest-entries manifest))) +(define (manifest-search-paths manifest) + "Return the list of search path specifications that apply to MANIFEST, +including the search path specification for $PATH." + (delete-duplicates + (cons $PATH + (append-map manifest-entry-search-paths + (manifest-entries manifest))))) + ;;; ;;; Manifest transactions. @@ -1367,8 +1376,7 @@ are cross-built for TARGET." (map sexp->search-path-specification (delete-duplicates '#$(map search-path-specification->sexp - (append-map manifest-entry-search-paths - (manifest-entries manifest)))))) + (manifest-search-paths manifest))))) (build-profile #$output '#$inputs #:symlink #$(if relative-symlinks? From 10f0a40c16bb572ab7b45f32e39b7761e519ba32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 9 Jul 2018 13:00:46 +0200 Subject: [PATCH 029/374] environment: Simplify code by using manifests internally. * guix/scripts/environment.scm (strip-input-name) (package+propagated-inputs, package-or-package+output?) (compact): Remove. (inputs->profile-derivation): Rename to... (manifest->derivation): ... this. Replace 'inputs' parameter with 'manifest'. (input->manifest-entry): New procedure. (package-environment-inputs): Rewrite to return a list of manifest entries. (options/resolve-packages): Rewrite to return a manifest. (guix-environment): Remove 'inputs'. Define 'paths' in terms of 'manifest-search-paths'. --- guix/scripts/environment.scm | 156 ++++++++++++++--------------------- 1 file changed, 61 insertions(+), 95 deletions(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index f8a9702b30..9a69e3b269 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2018 David Thompson -;;; Copyright © 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2018 Mike Gerwitz ;;; ;;; This file is part of GNU Guix. @@ -102,35 +102,23 @@ existing environment variables with additional search paths." (newline))) (evaluate-profile-search-paths profile search-paths))) -(define (strip-input-name input) - "Remove the name element from the tuple INPUT." +(define (input->manifest-entry input) + "Return a manifest entry for INPUT, or #f if INPUT does not correspond to a +package." (match input - ((_ package) package) - ((_ package output) - (list package output)))) - -(define (package+propagated-inputs package output) - "Return the union of PACKAGE's OUTPUT and its transitive propagated inputs." - (cons (list package output) - (map strip-input-name - (package-transitive-propagated-inputs package)))) - -(define (package-or-package+output? expr) - "Return #t if EXPR is a package or a 2 element list consisting of a package -and an output string." - (match expr - ((or (? package?) ; bare package object - ((? package?) (? string?))) ; package+output tuple - #t) - (_ #f))) + ((_ (? package? package)) + (package->manifest-entry package)) + ((_ (? package? package) output) + (package->manifest-entry package output)) + (_ + #f))) (define (package-environment-inputs package) - "Return a list of the transitive input packages for PACKAGE." + "Return a list of manifest entries corresponding to the transitive input +packages for PACKAGE." ;; Remove non-package inputs such as origin records. - (filter package-or-package+output? - (map strip-input-name - (bag-transitive-inputs - (package->bag package))))) + (filter-map input->manifest-entry + (bag-transitive-inputs (package->bag package)))) (define (show-help) (display (G_ "Usage: guix environment [OPTION]... PACKAGE... [-- COMMAND...] @@ -287,55 +275,50 @@ COMMAND or an interactive shell in that environment.\n")) (_ memo))) '() alist)) -(define (compact lst) - "Remove all #f elements from LST." - (filter identity lst)) - (define (options/resolve-packages opts) - "Return OPTS with package specification strings replaced by actual -packages." - (define (package->output package mode) - (match package - ((? package?) - (list mode package "out")) - (((? package? package) (? string? output)) - (list mode package output)))) + "Return OPTS with package specification strings replaced by manifest entries +for the corresponding packages." + (define (manifest-entry=? e1 e2) + (and (eq? (manifest-entry-item e1) (manifest-entry-item e2)) + (string=? (manifest-entry-output e1) + (manifest-entry-output e2)))) (define (packages->outputs packages mode) (match packages - ((? package-or-package+output? package) ; single package - (list (package->output package mode))) - (((? package-or-package+output?) ...) ; many packages - (map (cut package->output <> mode) packages)))) + ((? package? package) + (if (eq? mode 'ad-hoc-package) + (list (package->manifest-entry package)) + (package-environment-inputs package))) + (((? package? package) (? string? output)) + (if (eq? mode 'ad-hoc-package) + (list (package->manifest-entry package output)) + (package-environment-inputs package))) + ((lst ...) + (append-map (cut packages->outputs <> mode) lst)))) - (define (manifest->outputs manifest) - (map (lambda (entry) - (cons 'ad-hoc-package ; manifests are implicitly ad-hoc - (if (package? (manifest-entry-item entry)) - (list (manifest-entry-item entry) - (manifest-entry-output entry)) - ;; Direct store paths have no output. - (list (manifest-entry-item entry))))) - (manifest-entries manifest))) - - (compact - (append-map (match-lambda - (('package mode (? string? spec)) - (let-values (((package output) - (specification->package+output spec))) - (list (list mode package output)))) - (('expression mode str) - ;; Add all the outputs of the package STR evaluates to. - (packages->outputs (read/eval str) mode)) - (('load mode file) - ;; Add all the outputs of the package defined in FILE. - (let ((module (make-user-module '()))) - (packages->outputs (load* file module) mode))) - (('manifest . file) - (let ((module (make-user-module '((guix profiles) (gnu))))) - (manifest->outputs (load* file module)))) - (_ '(#f))) - opts))) + (manifest + (delete-duplicates + (append-map (match-lambda + (('package 'ad-hoc-package (? string? spec)) + (let-values (((package output) + (specification->package+output spec))) + (list (package->manifest-entry package output)))) + (('package 'package (? string? spec)) + (package-environment-inputs + (specification->package+output spec))) + (('expression mode str) + ;; Add all the outputs of the package STR evaluates to. + (packages->outputs (read/eval str) mode)) + (('load mode file) + ;; Add all the outputs of the package defined in FILE. + (let ((module (make-user-module '()))) + (packages->outputs (load* file module) mode))) + (('manifest . file) + (let ((module (make-user-module '((guix profiles) (gnu))))) + (manifest-entries (load* file module)))) + (_ '())) + opts) + manifest-entry=?))) (define* (build-environment derivations opts) "Build the DERIVATIONS required by the environment using the build options @@ -350,11 +333,10 @@ in OPTS." (return #f) (built-derivations derivations))))) -(define (inputs->profile-derivation inputs system bootstrap?) - "Return the derivation for a profile consisting of INPUTS for SYSTEM. -BOOTSTRAP? specifies whether to use the bootstrap Guile to build the -profile." - (profile-derivation (packages->manifest inputs) +(define (manifest->derivation manifest system bootstrap?) + "Return the derivation for a profile of MANIFEST. +BOOTSTRAP? specifies whether to use the bootstrap Guile to build the profile." + (profile-derivation manifest #:system system ;; Packages can have conflicting inputs, or explicit @@ -671,25 +653,9 @@ message if any test fails." ;; within the container. '("/bin/sh") (list %default-shell)))) - (packages (options/resolve-packages opts)) + (manifest (options/resolve-packages opts)) (mappings (pick-all opts 'file-system-mapping)) - (inputs (delete-duplicates - (append-map (match-lambda - (('ad-hoc-package package output) - (package+propagated-inputs package - output)) - (('package package _) - (package-environment-inputs package))) - packages))) - (paths (delete-duplicates - (cons $PATH - (append-map (match-lambda - ((or ((? package? p) _ ...) - (? package? p)) - (package-native-search-paths p)) - (_ '())) - inputs)) - eq?))) + (paths (manifest-search-paths manifest))) (when container? (assert-container-features)) @@ -714,8 +680,8 @@ message if any test fails." (mlet* %store-monad ((bash (environment-bash container? bootstrap? system)) - (prof-drv (inputs->profile-derivation - inputs system bootstrap?)) + (prof-drv (manifest->derivation + manifest system bootstrap?)) (profile -> (derivation->output-path prof-drv)) (gc-root -> (assoc-ref opts 'gc-root))) From 78d55b703d155d36520e1c93dc08a6502c56bd55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 9 Jul 2018 13:22:29 +0200 Subject: [PATCH 030/374] profiles: Introduce 'profile-search-paths' and use it. * guix/profiles.scm (profile-search-paths): New procedure. * guix/scripts/environment.scm (evaluate-search-paths): Remove. (create-environment): Replace 'paths' with 'manifest'. Use 'profile-search-paths' instead of 'evaluate-search-paths'. (show-search-paths): Likewise. (launch-environment): Replace 'paths' with 'manifest'. Make 'pure?' a keyword parameter. (launch-environment/fork, launch-environment/container): Likewise. (guix-environment): Remove 'paths' variable. Adjust callers of the above procedures accordingly. --- guix/profiles.scm | 14 ++++++++++ guix/scripts/environment.scm | 54 +++++++++++++++++------------------- 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 88228f1558..d2a794b187 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -110,6 +110,7 @@ ca-certificate-bundle %default-profile-hooks profile-derivation + profile-search-paths generation-number generation-numbers @@ -1400,6 +1401,19 @@ are cross-built for TARGET." ;; to have no substitute to offer. #:substitutable? #f))) +(define* (profile-search-paths profile + #:optional (manifest (profile-manifest profile)) + #:key (getenv (const #f))) + "Read the manifest of PROFILE and evaluate the values of search path +environment variables required by PROFILE; return a list of +specification/value pairs. If MANIFEST is not #f, it is assumed to be the +manifest of PROFILE, which avoids rereading it. + +Use GETENV to determine the current settings and report only settings not +already effective." + (evaluate-search-paths (manifest-search-paths manifest) + (list profile) getenv)) + (define (profile-regexp profile) "Return a regular expression that matches PROFILE's name and number." (make-regexp (string-append "^" (regexp-quote (basename profile)) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 9a69e3b269..1c04800e42 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -49,11 +49,6 @@ #:use-module (srfi srfi-98) #:export (guix-environment)) -(define (evaluate-profile-search-paths profile search-paths) - "Evaluate SEARCH-PATHS, a list of search-path specifications, for the -directories in PROFILE, the store path of a profile." - (evaluate-search-paths search-paths (list profile))) - ;; Protect some env vars from purification. Borrowed from nix-shell. (define %precious-variables '("HOME" "USER" "LOGNAME" "DISPLAY" "TERM" "TZ" "PAGER")) @@ -70,8 +65,8 @@ as 'HOME' and 'USER' are left untouched." (((names . _) ...) names))))) -(define (create-environment profile paths pure?) - "Set the environment variables specified by PATHS for PROFILE. When PURE? +(define* (create-environment profile manifest #:key pure?) + "Set the environment variables specified by MANIFEST for PROFILE. When PURE? is #t, unset the variables in the current environment. Otherwise, augment existing environment variables with additional search paths." (when pure? (purify-environment)) @@ -84,23 +79,23 @@ existing environment variables with additional search paths." (string-append value separator current) value) value))))) - (evaluate-profile-search-paths profile paths)) + (profile-search-paths profile manifest)) ;; Give users a way to know that they're in 'guix environment', so they can ;; adjust 'PS1' accordingly, for instance. Set it to PROFILE so users can ;; conveniently access its contents. (setenv "GUIX_ENVIRONMENT" profile)) -(define (show-search-paths profile search-paths pure?) - "Display SEARCH-PATHS applied to PROFILE. When PURE? is #t, do not augment -existing environment variables with additional search paths." +(define* (show-search-paths profile manifest #:key pure?) + "Display the search paths of MANIFEST applied to PROFILE. When PURE? is #t, +do not augment existing environment variables with additional search paths." (for-each (match-lambda ((search-path . value) (display (search-path-definition search-path value #:kind (if pure? 'exact 'prefix))) (newline))) - (evaluate-profile-search-paths profile search-paths))) + (profile-search-paths profile manifest))) (define (input->manifest-entry input) "Return a manifest entry for INPUT, or #f if INPUT does not correspond to a @@ -379,32 +374,34 @@ and suitable for 'exit'." (define exit/status (compose exit status->exit-code)) (define primitive-exit/status (compose primitive-exit status->exit-code)) -(define (launch-environment command inputs paths pure?) +(define* (launch-environment command profile manifest + #:key pure?) "Run COMMAND in a new environment containing INPUTS, using the native search paths defined by the list PATHS. When PURE?, pre-existing environment variables are cleared before setting the new ones." ;; Properly handle SIGINT, so pressing C-c in an interactive terminal ;; application works. (sigaction SIGINT SIG_DFL) - (create-environment inputs paths pure?) + (create-environment profile manifest #:pure? pure?) (match command ((program . args) (apply execlp program program args)))) -(define (launch-environment/fork command inputs paths pure?) - "Run COMMAND in a new process with an environment containing INPUTS, using -the native search paths defined by the list PATHS. When PURE?, pre-existing -environment variables are cleared before setting the new ones." +(define* (launch-environment/fork command profile manifest #:key pure?) + "Run COMMAND in a new process with an environment containing PROFILE, with +the search paths specified by MANIFEST. When PURE?, pre-existing environment +variables are cleared before setting the new ones." (match (primitive-fork) - (0 (launch-environment command inputs paths pure?)) + (0 (launch-environment command profile manifest + #:pure? pure?)) (pid (match (waitpid pid) ((_ . status) status))))) (define* (launch-environment/container #:key command bash user user-mappings - profile paths link-profile? network?) + profile manifest link-profile? network?) "Run COMMAND within a container that features the software in PROFILE. -Environment variables are set according to PATHS, a list of native search -paths. The global shell is BASH, a file name for a GNU Bash binary in the +Environment variables are set according to the search paths of MANIFEST. +The global shell is BASH, a file name for a GNU Bash binary in the store. When NETWORK?, access to the host system network is permitted. USER-MAPPINGS, a list of file system mappings, contains the user-specified host file systems to mount inside the container. If USER is not #f, each @@ -496,7 +493,7 @@ will be used for the passwd entry. LINK-PROFILE? creates a symbolic link from (primitive-exit/status ;; A container's environment is already purified, so no need to ;; request it be purified again. - (launch-environment command profile paths #f))) + (launch-environment command profile manifest #:pure? #f))) #:namespaces (if network? (delq 'net %namespaces) ; share host network %namespaces))))))) @@ -654,8 +651,7 @@ message if any test fails." '("/bin/sh") (list %default-shell)))) (manifest (options/resolve-packages opts)) - (mappings (pick-all opts 'file-system-mapping)) - (paths (manifest-search-paths manifest))) + (mappings (pick-all opts 'file-system-mapping))) (when container? (assert-container-features)) @@ -700,7 +696,7 @@ message if any test fails." ((assoc-ref opts 'dry-run?) (return #t)) ((assoc-ref opts 'search-paths) - (show-search-paths profile paths pure?) + (show-search-paths profile manifest #:pure? pure?) (return #t)) (container? (let ((bash-binary @@ -713,11 +709,11 @@ message if any test fails." #:user user #:user-mappings mappings #:profile profile - #:paths paths + #:manifest manifest #:link-profile? link-prof? #:network? network?))) (else (return (exit/status - (launch-environment/fork command profile - paths pure?))))))))))))) + (launch-environment/fork command profile manifest + #:pure? pure?))))))))))))) From dc013aff819ad2a95c50f3ba7d66c1297a7b1585 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 00:53:04 +0200 Subject: [PATCH 031/374] ui: Fix typo. * guix/ui.scm (display-profile-content-diff): Fix typo in docstring. --- guix/ui.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/ui.scm b/guix/ui.scm index 6a5feaa953..29c0b2b9ce 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1428,7 +1428,7 @@ DURATION-RELATION with the current time." (format #t "~a~%" header))))) (define (display-profile-content-diff profile gen1 gen2) - "Display the changed packages in PROFILE GEN2 compared to generation GEN2." + "Display the changed packages in PROFILE GEN2 compared to generation GEN1." (define (equal-entry? first second) (string= (manifest-entry-item first) (manifest-entry-item second))) From 57ac5261fec345b16cf80f87aa03212abc2c5a11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 00:59:14 +0200 Subject: [PATCH 032/374] build: Add missing patches to the distribution. Reported by jonsger. * gnu/local.mk (dist_patch_DATA): Add perl-text-markdown-discount-unbundle.patch and racket-fix-xform-issue.patch. --- gnu/local.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/local.mk b/gnu/local.mk index 6bfde27d68..8ec1f161ed 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1016,6 +1016,7 @@ dist_patch_DATA = \ %D%/packages/patches/perl-net-amazon-s3-moose-warning.patch \ %D%/packages/patches/perl-net-dns-resolver-programmable-fix.patch \ %D%/packages/patches/perl-no-sys-dirs.patch \ + %D%/packages/patches/perl-text-markdown-discount-unbundle.patch \ %D%/packages/patches/perl-module-pluggable-search.patch \ %D%/packages/patches/perl-reproducible-build-date.patch \ %D%/packages/patches/perl-www-curl-remove-symbol.patch \ @@ -1108,6 +1109,7 @@ dist_patch_DATA = \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rsem-makefile.patch \ %D%/packages/patches/rtags-separate-rct.patch \ + %D%/packages/patches/racket-fix-xform-issue.patch \ %D%/packages/patches/ruby-rubygems-276-for-ruby24.patch \ %D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \ %D%/packages/patches/ruby-concurrent-test-arm.patch \ From a59b0fa2d7af644482a015cebfe1487e3736c223 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 02:32:58 +0200 Subject: [PATCH 033/374] build-system/haskell: Make phases fail on error. * guix/build/haskell-build-system.scm (configure): Make it fail on error. (run-setuphs): Make it fail on error. --- guix/build/haskell-build-system.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm index 268d59c1be..26519ce5a6 100644 --- a/guix/build/haskell-build-system.scm +++ b/guix/build/haskell-build-system.scm @@ -66,7 +66,7 @@ (format #t "running \"runhaskell Setup.hs\" with command ~s \ and parameters ~s~%" command params) - (zero? (apply system* "runhaskell" setup-file command params))) + (apply invoke "runhaskell" setup-file command params)) (error "no Setup.hs nor Setup.lhs found")))) (define* (configure #:key outputs inputs tests? (configure-flags '()) @@ -114,7 +114,8 @@ and parameters ~s~%" (setenv "CONFIG_SHELL" "sh")) (run-setuphs "configure" params) - (setenv "GHC_PACKAGE_PATH" ghc-path))) + (setenv "GHC_PACKAGE_PATH" ghc-path) + #t)) (define* (build #:rest empty) "Build a given Haskell package." From 88388766f778d344699e7a8a0a4d970c403007e3 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Tue, 3 Jul 2018 23:28:42 +0300 Subject: [PATCH 034/374] import: gem: Add recursive import. * doc/guix.texi (Invoking guix import): Document gem recursive import. * guix/import/gem.scm (gem->guix-package): Return package and dependencies values. (gem-recursive-import): New procedure. * guix/scripts/import/gem.scm (show-help, %options): Add recursive option. (guix-import-gem): Use 'gem-recursive-import'. * tests/gem.scm (test-json): Rename to 'test-foo-json'. ("gem->guix-package"): Use 'test-foo-json'. (test-bar-json, test-bundler-json): New variables. ("gem-recursive-import"): New test. --- doc/guix.texi | 8 +++ guix/import/gem.scm | 48 +++++++++------- guix/scripts/import/gem.scm | 27 +++++++-- tests/gem.scm | 108 +++++++++++++++++++++++++++++++++++- 4 files changed, 163 insertions(+), 28 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a8e53a5308..8026bea356 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6380,6 +6380,14 @@ The command below imports metadata for the @code{rails} Ruby package: guix import gem rails @end example +@table @code +@item --recursive +@itemx -r +Traverse the dependency graph of the given upstream package recursively +and generate package expressions for all those packages that are not yet +in Guix. +@end table + @item cpan @cindex CPAN Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}@footnote{This diff --git a/guix/import/gem.scm b/guix/import/gem.scm index 646163fb7b..ea576b5e4a 100644 --- a/guix/import/gem.scm +++ b/guix/import/gem.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson ;;; Copyright © 2016 Ben Woodcroft +;;; Copyright © 2018 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,7 +34,8 @@ #:use-module (guix base32) #:use-module (guix build-system ruby) #:export (gem->guix-package - %gem-updater)) + %gem-updater + gem-recursive-import)) (define (rubygems-fetch name) "Return an alist representation of the RubyGems metadata for the package NAME, @@ -115,29 +117,30 @@ VERSION, HASH, HOME-PAGE, DESCRIPTION, DEPENDENCIES, and LICENSES." ((license) (license->symbol license)) (_ `(list ,@(map license->symbol licenses))))))) -(define* (gem->guix-package package-name #:optional version) +(define* (gem->guix-package package-name #:optional (repo 'rubygems) version) "Fetch the metadata for PACKAGE-NAME from rubygems.org, and return the `package' s-expression corresponding to that package, or #f on failure." (let ((package (rubygems-fetch package-name))) (and package - (let ((name (assoc-ref package "name")) - (version (assoc-ref package "version")) - (hash (assoc-ref package "sha")) - (synopsis (assoc-ref package "info")) ; nothing better to use - (description (beautify-description - (assoc-ref package "info"))) - (home-page (assoc-ref package "homepage_uri")) - (dependencies (map (lambda (dep) - (let ((name (assoc-ref dep "name"))) - (if (string=? name "bundler") - "bundler" ; special case, no prefix - (ruby-package-name name)))) - (assoc-ref* package "dependencies" - "runtime"))) - (licenses (map string->license - (assoc-ref package "licenses")))) - (make-gem-sexp name version hash home-page synopsis - description dependencies licenses))))) + (let* ((name (assoc-ref package "name")) + (version (assoc-ref package "version")) + (hash (assoc-ref package "sha")) + (synopsis (assoc-ref package "info")) ; nothing better to use + (description (beautify-description + (assoc-ref package "info"))) + (home-page (assoc-ref package "homepage_uri")) + (dependencies-names (map (lambda (dep) (assoc-ref dep "name")) + (assoc-ref* package "dependencies" "runtime"))) + (dependencies (map (lambda (dep) + (if (string=? dep "bundler") + "bundler" ; special case, no prefix + (ruby-package-name dep))) + dependencies-names)) + (licenses (map string->license + (assoc-ref package "licenses")))) + (values (make-gem-sexp name version hash home-page synopsis + description dependencies licenses) + dependencies-names))))) (define (guix-package->gem-name package) "Given a PACKAGE built from rubygems.org, return the name of the @@ -192,3 +195,8 @@ package on RubyGems." (description "Updater for RubyGem packages") (pred gem-package?) (latest latest-release))) + +(define* (gem-recursive-import package-name #:optional version) + (recursive-import package-name '() + #:repo->guix-package gem->guix-package + #:guix-name ruby-package-name)) diff --git a/guix/scripts/import/gem.scm b/guix/scripts/import/gem.scm index 349a0a072a..b6d9ccaae4 100644 --- a/guix/scripts/import/gem.scm +++ b/guix/scripts/import/gem.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson +;;; Copyright © 2018 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-37) + #:use-module (srfi srfi-41) #:use-module (ice-9 match) #:use-module (ice-9 format) #:export (guix-import-gem)) @@ -44,6 +46,9 @@ Import and convert the RubyGems package for PACKAGE-NAME.\n")) -h, --help display this help and exit")) (display (G_ " -V, --version display version information and exit")) + (display (G_ " + -r, --recursive generate package expressions for all Gem packages\ + that are not yet in Guix")) (newline) (show-bug-report-information)) @@ -56,6 +61,9 @@ Import and convert the RubyGems package for PACKAGE-NAME.\n")) (option '(#\V "version") #f #f (lambda args (show-version-and-exit "guix import pypi"))) + (option '(#\r "recursive") #f #f + (lambda (opt name arg result) + (alist-cons 'recursive #t result))) %standard-import-options)) @@ -81,11 +89,20 @@ Import and convert the RubyGems package for PACKAGE-NAME.\n")) (reverse opts)))) (match args ((package-name) - (let ((sexp (gem->guix-package package-name))) - (unless sexp - (leave (G_ "failed to download meta-data for package '~a'~%") - package-name)) - sexp)) + (if (assoc-ref opts 'recursive) + (map (match-lambda + ((and ('package ('name name) . rest) pkg) + `(define-public ,(string->symbol name) + ,pkg)) + (_ #f)) + (reverse + (stream->list + (gem-recursive-import package-name 'rubygems)))) + (let ((sexp (gem->guix-package package-name))) + (unless sexp + (leave (G_ "failed to download meta-data for package '~a'~%") + package-name)) + sexp))) (() (leave (G_ "too few arguments~%"))) ((many ...) diff --git a/tests/gem.scm b/tests/gem.scm index a39e8ba514..4220170ff0 100644 --- a/tests/gem.scm +++ b/tests/gem.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2018 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,10 +24,11 @@ #:use-module (guix hash) #:use-module (guix tests) #:use-module ((guix build utils) #:select (delete-file-recursively)) + #:use-module (srfi srfi-41) #:use-module (srfi srfi-64) #:use-module (ice-9 match)) -(define test-json +(define test-foo-json "{ \"name\": \"foo\", \"version\": \"1.0.0\", @@ -42,6 +44,34 @@ \"licenses\": [\"MIT\", \"Apache 2.0\"] }") +(define test-bar-json + "{ + \"name\": \"bar\", + \"version\": \"1.0.0\", + \"sha\": \"f3676eafca9987cb5fe263df1edf2538bf6dafc712b30e17be3543a9680547a8\", + \"info\": \"Another cool gem\", + \"homepage_uri\": \"https://example.com\", + \"dependencies\": { + \"runtime\": [ + { \"name\": \"bundler\" }, + ] + }, + \"licenses\": [\"MIT\", \"Apache 2.0\"] +}") + +(define test-bundler-json + "{ + \"name\": \"bundler\", + \"version\": \"1.14.2\", + \"sha\": \"3bb53e03db0a8008161eb4c816ccd317120d3c415ba6fee6f90bbc7f7eec8690\", + \"info\": \"Ruby gem bundler\", + \"homepage_uri\": \"https://bundler.io/\", + \"dependencies\": { + \"runtime\": [] + }, + \"licenses\": [\"MIT\"] +}") + (test-begin "gem") (test-assert "gem->guix-package" @@ -50,8 +80,8 @@ (lambda (url . rest) (match url ("https://rubygems.org/api/v1/gems/foo.json" - (values (open-input-string test-json) - (string-length test-json))) + (values (open-input-string test-foo-json) + (string-length test-foo-json))) (_ (error "Unexpected URL: " url))))) (match (gem->guix-package "foo") (('package @@ -76,4 +106,76 @@ (x (pk 'fail x #f))))) +(test-assert "gem-recursive-import" + ;; Replace network resources with sample data. + (mock ((guix http-client) http-fetch + (lambda (url . rest) + (match url + ("https://rubygems.org/api/v1/gems/foo.json" + (values (open-input-string test-foo-json) + (string-length test-foo-json))) + ("https://rubygems.org/api/v1/gems/bar.json" + (values (open-input-string test-bar-json) + (string-length test-bar-json))) + ("https://rubygems.org/api/v1/gems/bundler.json" + (values (open-input-string test-bundler-json) + (string-length test-bundler-json))) + (_ (error "Unexpected URL: " url))))) + (match (stream->list (gem-recursive-import "foo")) + ((('package + ('name "ruby-foo") + ('version "1.0.0") + ('source + ('origin + ('method 'url-fetch) + ('uri ('rubygems-uri "foo" 'version)) + ('sha256 + ('base32 + "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk")))) + ('build-system 'ruby-build-system) + ('propagated-inputs + ('quasiquote + (("bundler" ('unquote 'bundler)) + ("ruby-bar" ('unquote 'ruby-bar))))) + ('synopsis "A cool gem") + ('description "This package provides a cool gem") + ('home-page "https://example.com") + ('license ('list 'license:expat 'license:asl2.0))) + ('package + ('name "ruby-bundler") + ('version "1.14.2") + ('source + ('origin + ('method 'url-fetch) + ('uri ('rubygems-uri "bundler" 'version)) + ('sha256 + ('base32 + "1446xiz7zg0bz7kgx9jv84y0s4hpsg61dj5l3qb0i00avc1kxd9v")))) + ('build-system 'ruby-build-system) + ('synopsis "Ruby gem bundler") + ('description "Ruby gem bundler") + ('home-page "https://bundler.io/") + ('license 'license:expat)) + ('package + ('name "ruby-bar") + ('version "1.0.0") + ('source + ('origin + ('method 'url-fetch) + ('uri ('rubygems-uri "bar" 'version)) + ('sha256 + ('base32 + "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk")))) + ('build-system 'ruby-build-system) + ('propagated-inputs + ('quasiquote + (('"bundler" ('unquote 'bundler))))) + ('synopsis "Another cool gem") + ('description "Another cool gem") + ('home-page "https://example.com") + ('license ('list 'license:expat 'license:asl2.0)))) + #t) + (x + (pk 'fail x #f))))) + (test-end "gem") From e718ce1460c6486e81eb010672506161103f5688 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 3 Jul 2018 10:45:53 +0300 Subject: [PATCH 035/374] gnu: owncloud-client: Update to 2.4.1. * gnu/packages/sync.scm (owncloud-client): Update to 2.4.1. [phases]: Remove custom 'change-rpath-dirs phase. [arguments]: Disable building with qtwebkit. [inputs]: Remove inotify-tools, openssl, qtwebkit. --- gnu/packages/sync.scm | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 6e57aaba1b..e0b0af3d96 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Ludovic Courtès @@ -45,24 +45,22 @@ (define-public owncloud-client (package (name "owncloud-client") - (version "2.3.4") + (version "2.4.1") (source (origin (method url-fetch) (uri (string-append "https://download.owncloud.com/desktop/stable/" "owncloudclient-" version ".tar.xz")) (sha256 - (base32 "1fpi1mlp2b8sx2993b4mava5c6qw794dmlayih430299z1l9wh49")) + (base32 "08xayz0alvypwa1bjmw1rmh4m3sclld4yq7kcbf264983icawqj4")) (patches (search-patches "owncloud-disable-updatecheck.patch")) (modules '((guix build utils))) (snippet '(begin - ;; only allows bundled libcrashreporter-qt + ;; libcrashreporter-qt has its own bundled dependencies (delete-file-recursively "src/3rdparty/libcrashreporter-qt") - ;; we already package qtkeychain and sqlite - (delete-file-recursively "src/3rdparty/qtkeychain") (delete-file-recursively "src/3rdparty/sqlite3") - ;; qjson is packaged, qprogessindicator, qlockedfile, qtokenizer and + ;; qprogessindicator, qlockedfile, qtokenizer and ;; qtsingleapplication have not yet been packaged, but all are ;; explicitly used from the 3rdparty folder during build. ;; We can also remove the macgoodies folder @@ -72,20 +70,6 @@ (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'change-rpath-dirs - (lambda _ - (substitute* '("src/libsync/CMakeLists.txt" - "csync/src/CMakeLists.txt") - ;; We store the libs in out/lib and not /usr/lib/appname, so we - ;; need the executable to point to the libraries in /lib and not - ;; in /lib/appname. - (("\\/\\$\\{APPLICATION_EXECUTABLE\\}") "")) - (substitute* '("src/cmd/CMakeLists.txt" - "src/crashreporter/CMakeLists.txt" - "src/gui/CMakeLists.txt") - ;; This has the same issue as the substitution above. - (("\\/\\$\\{APPLICATION_EXECUTABLE\\}\\\"") "\"")) - #t)) (add-after 'unpack 'delete-failing-tests ;; "Could not create autostart folder" (lambda _ @@ -93,18 +77,18 @@ (("owncloud_add_test\\(Utility \"\"\\)" test) (string-append "#" test))) #t))) - #:configure-flags '("-DUNIT_TESTING=ON"))) + #:configure-flags '("-DUNIT_TESTING=ON" + ;; build without qtwebkit, which causes the + ;; package to FTBFS while looking for QWebView. + "-DNO_SHIBBOLETH=1"))) (native-inputs `(("cmocka" ,cmocka) ("perl" ,perl) ("pkg-config" ,pkg-config) ("qtlinguist" ,qttools))) (inputs - `(("inotify-tools" ,inotify-tools) - ("openssl" ,openssl) - ("qtbase" ,qtbase) + `(("qtbase" ,qtbase) ("qtkeychain" ,qtkeychain) - ("qtwebkit" ,qtwebkit) ("sqlite" ,sqlite) ("zlib" ,zlib))) (home-page "https://owncloud.org") From b6476ecc8be6fc4b37a7bfc32dee96c9a2eff237 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Jul 2018 11:10:25 +0300 Subject: [PATCH 036/374] gnu: qt: Update to 5.11.1. * gnu/packages/qt.scm (qtbase, qtsvg, qtimageformats, qtx11extras, qtxmlpatterns, qtdeclarative, qtconnectivity, qtwebsockets, qtsensors, qtmultimedia, qtwayland, qtserialport, qtserialbus, qtwebchannel, qtwebglplugin, qtwebview, qtlocation, qttools, qtscript, qtquickcontrols, qtquickcontrols2, qtgrapgicaleffects, qtgamepad, qtscxml, qtpurchasing, qtcanvas3d, qtcharts, qtdatavis3d, qtnetworkauth, qtremoteobjects, qtspeech): Update to 5.11.1. (qtwebglplugin)[arguments]: Add custom phase to disable network tests. [inputs]: Add qtdeclarative. (qtremoteobjects)[arguments]: Add another test to the skip list. (qtspeech)[arguments]: Disable tests. --- gnu/packages/qt.scm | 139 ++++++++++++++++++++++++-------------------- 1 file changed, 76 insertions(+), 63 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index a15d6453c9..943ca6640e 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -373,7 +373,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtbase (package (name "qtbase") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -382,7 +382,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0rny87ypnkkvyp9p76nim77v6np0cdf1dbjfmcilklzphkdlcvpd")) + "0ipv18ypbgpxhh49rfplqmflskmnhhwj1bjr5hrwi0jpvar4gl50")) ;; Use TZDIR to avoid depending on package "tzdata". (patches (search-patches "qtbase-use-TZDIR.patch")) (modules '((guix build utils))) @@ -616,7 +616,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtsvg (package (inherit qtbase) (name "qtsvg") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -625,7 +625,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0m0zglp0m5gv75ivma6l3hm8brb0cf44dhbc6lqwfdwacxhgx3jb")))) + "0drhig0jcss3cf01aqfmafajf8gzf6bh468g1ikyrkh46czgyshx")))) (propagated-inputs `()) (native-inputs `(("perl" ,perl))) (inputs @@ -691,7 +691,7 @@ HostData=lib/qt5 (define-public qtimageformats (package (inherit qtsvg) (name "qtimageformats") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -700,7 +700,7 @@ HostData=lib/qt5 version ".tar.xz")) (sha256 (base32 - "0w0yy7zzln3v7dm7ksjxkzhq8r0a9nwk823wv4f1x7vsa3pnyh2q")) + "05jnyrq7klr3mdiz0r9c151vl829yc8y9cxfbw5dwbp1rkndwl7b")) (modules '((guix build utils))) (snippet '(begin @@ -722,7 +722,7 @@ support for MNG, TGA, TIFF and WBMP image formats."))) (define-public qtx11extras (package (inherit qtsvg) (name "qtx11extras") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -731,7 +731,7 @@ support for MNG, TGA, TIFF and WBMP image formats."))) version ".tar.xz")) (sha256 (base32 - "13vbx61wcd8pnpgk3j5r665pm03s7jp2s98apvc6fhp1njlr0rhi")))) + "0rccpmhz48kq4xs441lj9mnwpbi6kxwl8y7dj7w7g5zvpv41kwmw")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -746,7 +746,7 @@ from within Qt 5."))) (define-public qtxmlpatterns (package (inherit qtsvg) (name "qtxmlpatterns") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -755,7 +755,7 @@ from within Qt 5."))) version ".tar.xz")) (sha256 (base32 - "13nj2pa706sy874bqbv7y94ypicr4k09x6n2jyxkw93flb5pi8qr")))) + "0n5gacpni019i2872m4b1p5qaqibhszsdl3xhw3xsckvr0hf25v1")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -775,7 +775,7 @@ xmlpatternsvalidator."))) (define-public qtdeclarative (package (inherit qtsvg) (name "qtdeclarative") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -784,7 +784,7 @@ xmlpatternsvalidator."))) version ".tar.xz")) (sha256 (base32 - "1h2pbyr7dnak4q96373xpa6gk6rl528rnqima8xnvhdi2y5kgagf")))) + "0fjg9ii64mhx2ww70rj44cy65rwwkwyjxcm435kwp3v1pzv5xkwy")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -807,7 +807,7 @@ with JavaScript and C++."))) (define-public qtconnectivity (package (inherit qtsvg) (name "qtconnectivity") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -816,7 +816,7 @@ with JavaScript and C++."))) version ".tar.xz")) (sha256 (base32 - "0wqq5q5saf007aphvpn5pvj6l0qp0z7wxvfba6v9iq5ylyqm6bnd")))) + "0mz6mbf069yqdvi6mcvp6izskcn9wzig4s3dzmygwd430pmx93kk")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) @@ -831,7 +831,7 @@ with Bluetooth and NFC."))) (define-public qtwebsockets (package (inherit qtsvg) (name "qtwebsockets") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -840,7 +840,7 @@ with Bluetooth and NFC."))) version ".tar.xz")) (sha256 (base32 - "1drr6nxxbkwpmz39bhyfmmsqjhy11bj3w1nc3q9dwhpcbf04an3x")))) + "1bj82y3f1nd2adnj3ljfr4vlx4bkgdlm3zvhlsas2lz837vi5aks")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -858,7 +858,7 @@ consume data received from the server, or both."))) (define-public qtsensors (package (inherit qtsvg) (name "qtsensors") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -867,7 +867,7 @@ consume data received from the server, or both."))) version ".tar.xz")) (sha256 (base32 - "1az22rdkpc1m44qb3dyh7cpiprplkvynzjr629ai05i8ngbfdi0g")))) + "1yn065l6kzs3fn74950pkxxglqi55lzk7alf15klsd1wnxc0zsfb")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:parallel-tests? _ #f) #f) ; can lead to race condition @@ -891,7 +891,7 @@ recognition API for devices."))) (define-public qtmultimedia (package (inherit qtsvg) (name "qtmultimedia") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -900,7 +900,7 @@ recognition API for devices."))) version ".tar.xz")) (sha256 (base32 - "0g4x1w251imq58zp1px6yschwj6icsxzwl3fy7pjfbgd27qjhlzg")) + "0369b0mh7sr718l119b07grb1v8xqlq6l4damyd6lrmlj1wbb2zj")) (modules '((guix build utils))) (snippet '(begin @@ -942,7 +942,7 @@ set of plugins for interacting with pulseaudio and GStreamer."))) (define-public qtwayland (package (inherit qtsvg) (name "qtwayland") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -951,7 +951,7 @@ set of plugins for interacting with pulseaudio and GStreamer."))) version ".tar.xz")) (sha256 (base32 - "09s1ckqj0cgjmmi7jylsf039vgzlq7i9rr4swb590fkz427lx0b8")) + "1sj4lsza48xji1qhmi1wqpx07jgm1mpa95gmd2w1kxw240hbr6p0")) (modules '((guix build utils))) (snippet ;; The examples try to build and cause the build to fail @@ -994,7 +994,7 @@ compositor libraries."))) (define-public qtserialport (package (inherit qtsvg) (name "qtserialport") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1003,7 +1003,7 @@ compositor libraries."))) version ".tar.xz")) (sha256 (base32 - "1cbf1jsginp5p3y17cyb6dfhsafxal0bn9pya6aybz0q799zgvl5")))) + "18v4pbq7bnmrl81m8s11ksbjlvzbb4kw5py6ji2dhmnm44w9k9sn")))) (native-inputs `(("perl" ,perl))) (inputs `(("qtbase" ,qtbase) @@ -1028,7 +1028,7 @@ interacting with serial ports from within Qt."))) (define-public qtserialbus (package (inherit qtsvg) (name "qtserialbus") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1037,7 +1037,7 @@ interacting with serial ports from within Qt."))) version ".tar.xz")) (sha256 (base32 - "0r3crk7gw0xs6wk1gvw2k8r9s9vam3sfwrji1njhswavii9fbp85")))) + "0jjmdd6vkvs5izqazp1rsrad0b1fzk6knrbdjl37lvcsawyfxfyk")))) (inputs `(("qtbase" ,qtbase) ("qtserialport" ,qtserialport))) @@ -1049,7 +1049,7 @@ and others."))) (define-public qtwebchannel (package (inherit qtsvg) (name "qtwebchannel") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1058,7 +1058,7 @@ and others."))) version ".tar.xz")) (sha256 (base32 - "05fa5pwvk24cjp8m6pbw3ma95vnls762crpjdgvygfk0h8xilxmh")))) + "11rfjkb4h8dzxfmk889x7kkc73cbk26smc7h62lnh35f2nppd95r")))) (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative) @@ -1073,7 +1073,7 @@ popular web engines, Qt WebKit 2 and Qt WebEngine."))) (define-public qtwebglplugin (package (inherit qtsvg) (name "qtwebglplugin") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1082,11 +1082,20 @@ popular web engines, Qt WebKit 2 and Qt WebEngine."))) version ".tar.xz")) (sha256 (base32 - "1al7dv7i9rg4z4p8vnipbjbbgc6113lbfjggxxap3sn6hqs986fm")))) + "108yhi3sj6d1ysmlpka69ivb20mx9h6jpra6yq099i3jw4gc753x")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'disable-network-tests + (lambda _ (substitute* "tests/plugins/platforms/platforms.pro" + (("webgl") "# webgl")) + #t)))))) (native-inputs '()) (inputs `(("mesa" ,mesa) ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) ("qtwebsockets" ,qtwebsockets))) (synopsis "QPA plugin for running an application via a browser using streamed WebGL commands") @@ -1099,7 +1108,7 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements"))) (define-public qtwebview (package (inherit qtsvg) (name "qtwebview") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1108,7 +1117,7 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements"))) version ".tar.xz")) (sha256 (base32 - "0a89v8mj5pb7a7whyhasf4ms0n34ghfmv2qp0pyxnq56f2bsjbl4")))) + "18da6a13wpb23vb6mbg9v75gphdf5mjmch7q3v1qjrv2sdwbpjbp")))) (native-inputs `(("perl" ,perl))) (inputs @@ -1122,7 +1131,7 @@ native APIs where it makes sense."))) (define-public qtlocation (package (inherit qtsvg) (name "qtlocation") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1131,7 +1140,7 @@ native APIs where it makes sense."))) version ".tar.xz")) (sha256 (base32 - "074cjqhr14mqlsqj9rzagzdcqnayyichp31lq02k05q07wg93xi8")))) + "03vrbymwbn4nqsypcmr4ccqv20nvwdfs9gb01pi3jxr6x0wrlb0p")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1152,7 +1161,7 @@ positioning and geolocation plugins."))) (define-public qttools (package (inherit qtsvg) (name "qttools") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1161,7 +1170,7 @@ positioning and geolocation plugins."))) version ".tar.xz")) (sha256 (base32 - "1nb77bfs63nyy0wkhsci9qbqmahncy3sdcrwj4qr1prc4y2cm4wx")))) + "1zhl8p29mbabf07rhaks13qcm45zdckzymvz9qn95nxfj9piiyxp")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1179,7 +1188,7 @@ that helps in Qt development."))) (define-public qtscript (package (inherit qtsvg) (name "qtscript") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1188,7 +1197,7 @@ that helps in Qt development."))) version ".tar.xz")) (sha256 (base32 - "1ib8a5gsxarbm2j94j5d097ly3ap4snqkx2imz3sl6xk6gknm4i5")) + "0z6sb4b9ds5lwkr0sxrnx6nim3aq2qx4a8illjy5vclfdv80yhqw")) (patches (search-patches "qtscript-disable-tests.patch")))) (native-inputs `(("perl" ,perl) @@ -1203,7 +1212,7 @@ ECMAScript and Qt."))) (define-public qtquickcontrols (package (inherit qtsvg) (name "qtquickcontrols") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1212,7 +1221,7 @@ ECMAScript and Qt."))) version ".tar.xz")) (sha256 (base32 - "01ziibf4afdhb5b3gfci8maprmviqwhdvma2z1jlq2ck45cpsqi6")))) + "0mn662j0gkpama7zlrsn4h27sjrk49kpbha1h0zxxyiza5cpzsms")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1227,7 +1236,7 @@ can be used to build complete interfaces in Qt Quick."))) (define-public qtquickcontrols2 (package (inherit qtsvg) (name "qtquickcontrols2") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1236,7 +1245,7 @@ can be used to build complete interfaces in Qt Quick."))) version ".tar.xz")) (sha256 (base32 - "1hsa8n4dlqpyz9xq2kq1hsxrxsjc7ywzzfhqijylgzzclvlqgb7y")))) + "0hn4kvrkz5ivwrp9p6yzwlw7cn4j72kcpm2nqyi3dbai1px6dc5x")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1252,7 +1261,7 @@ not available."))) (define-public qtgraphicaleffects (package (inherit qtsvg) (name "qtgraphicaleffects") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1261,7 +1270,7 @@ not available."))) version ".tar.xz")) (sha256 (base32 - "0xzr4421w7idlgndxnd68wwc2asabycjiskkyl1f8nwqv34lcy3j")))) + "1ws8aj7bq3rxpzjs370dcyqk8a5v1y6fwvrdhf70j8b2d4v75lnr")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1307,7 +1316,7 @@ backend for QtQuick scene graph.") (define-public qtgamepad (package (inherit qtsvg) (name "qtgamepad") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1316,7 +1325,7 @@ backend for QtQuick scene graph.") version ".tar.xz")) (sha256 (base32 - "0g52c03gdgz57h7szdxvc5hdy45l7q7m29yfzhwqc57hwdfl98bi")))) + "1n97w9rcbg8mzkvjgn3i8jbfmplp7w0p80ykdchpml47gxk1kwma")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config))) @@ -1337,7 +1346,7 @@ and mobile applications targeting TV-like form factors."))) (define-public qtscxml (package (inherit qtsvg) (name "qtscxml") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1346,7 +1355,7 @@ and mobile applications targeting TV-like form factors."))) version ".tar.xz")) (sha256 (base32 - "00wb89ris8fyivhz9qpqn72mzpkh6mqdjss82j3q10g3c142072k")) + "0f1k4fnk2aydagxqvkb636pcsi17sbq2zj2fn0ad50dvq013yiph")) (modules '((guix build utils))) (snippet '(begin @@ -1368,7 +1377,7 @@ also contains functionality to support data models and executable content."))) (define-public qtpurchasing (package (inherit qtsvg) (name "qtpurchasing") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1377,7 +1386,7 @@ also contains functionality to support data models and executable content."))) version ".tar.xz")) (sha256 (base32 - "1c92yv2yi38sic06nyr9r6zpq3y4sxnasmj14d3jmg50gc1ncqfs")))) + "0crm39fy9aqns10mjlbxvkkna9xklic49zfp3f7v7cwl66wap6dc")))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))) @@ -1388,7 +1397,7 @@ purchasing goods and services."))) (define-public qtcanvas3d (package (inherit qtsvg) (name "qtcanvas3d") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1397,7 +1406,7 @@ purchasing goods and services."))) version ".tar.xz")) (sha256 (base32 - "1kqcaks6lkz8cp9s3pwrvgrr8381rjzf5fbf2bzshdw7psphxiiz")) + "1pif3m1f44jrly2nh0hzid6dmdxqiy5qgx645hz6g5fmpl113d8g")) (modules '((guix build utils))) (snippet '(begin @@ -1427,7 +1436,7 @@ drawing calls from Qt Quick JavaScript."))) (define-public qtcharts (package (inherit qtsvg) (name "qtcharts") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1436,7 +1445,7 @@ drawing calls from Qt Quick JavaScript."))) version ".tar.xz")) (sha256 (base32 - "0lg39vd6i0l76spjz6bhb1kkpbk2mgc0hxccj7733xxbxaz14vn4")))) + "0avscsni84zrzydilkkp456sbaypyzhkn42qygjdq7wcn045zxk2")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1454,7 +1463,7 @@ selecting one of the charts themes.") (define-public qtdatavis3d (package (inherit qtsvg) (name "qtdatavis3d") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1463,7 +1472,7 @@ selecting one of the charts themes.") version ".tar.xz")) (sha256 (base32 - "1s7gmgh6g3aia74yiqahffrc6n8f4491vb7g3i4i10ilandipg34")))) + "0gay0dsz05xfrlx190y95hp9wipzb988h02fqbqvyn00ds3s178w")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1481,7 +1490,7 @@ customized by using themes or by adding custom items and labels to them.") (define-public qtnetworkauth (package (inherit qtsvg) (name "qtnetworkauth") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1490,7 +1499,7 @@ customized by using themes or by adding custom items and labels to them.") version ".tar.xz")) (sha256 (base32 - "1kr8hwjsb8a5cypvqj48vrnkcvm2rcni102dh6i909i70a7hcsym")))) + "05p4pvfp3k5612d54anvpj39bgc7v572x6kgk3fy69xgn7lhbd02")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1510,7 +1519,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt."))) (define-public qtremoteobjects (package (inherit qtsvg) (name "qtremoteobjects") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1519,7 +1528,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt."))) version ".tar.xz")) (sha256 (base32 - "1chn1xxhapfwvhrlv4chwfgf2dw8x8kn1lssdmpmg5s420z3pbq9")))) + "1yv9f2329nv4viiyqmq7ciz51574wd11grj8s88qm0ndcb36jbgb")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1528,7 +1537,8 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt."))) (lambda _ ;; This test can't find its imports. (substitute* "tests/auto/qml/qml.pro" - (("integration") "# integration")) + (("integration") "# integration") + (("usertypes") "# usertypes")) #t)))))) (inputs `(("qtbase" ,qtbase) @@ -1542,7 +1552,7 @@ processes or computers."))) (define-public qtspeech (package (inherit qtsvg) (name "qtspeech") - (version "5.11.0") + (version "5.11.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1551,7 +1561,10 @@ processes or computers."))) version ".tar.xz")) (sha256 (base32 - "1bgfg0akqf1nfzm28n8dhvhj0p1niwxrfs763gj7m0g6vpwjbhd1")))) + "1nwvbaijg35i98yaiqgnyn5vv0cn4v3wrxhwi1s0hfv9sv3q5iyw")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:tests? _ #f) #f))) ; TODO: Enable the tests (inputs `(("qtbase" ,qtbase))) (native-inputs From 64a64fa72a2f9858bc149e1a00ba9f89e8f58086 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Jul 2018 12:27:53 +0300 Subject: [PATCH 037/374] gnu: python-pyqt: Remove qt-5.11 compat phase. * gnu/packages/qt.scm (python-pyqt)[arguments]: Remove custom phase to fix compatibility with qt-5.11. --- gnu/packages/qt.scm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 943ca6640e..0f01df226b 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1685,12 +1685,6 @@ module provides support functions to the automatically generated code.") ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-build-with-qt-5.11 - ;; See: https://bugs.gentoo.org/654742 - (lambda _ - (substitute* "sip/QtTest/qtestmouse.sip" - (("void waitForEvents\\(\\) /ReleaseGIL/;") "")) - #t)) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) From f79c7e9747d941a5baa7ef3d881ad1a48eca6c1a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Jul 2018 16:03:28 +0300 Subject: [PATCH 038/374] gnu: qt: Update to 5.11.1. * gnu/packages/qt.scm (qt): Update to 5.11.1. [source]: Update snippet. [inputs]: Remove sqlite. [arguments]: Don't use system sqlite. --- gnu/packages/qt.scm | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 0f01df226b..000c5fb02f 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -105,7 +105,7 @@ system, and the core design of Django is reused in Grantlee.") (define-public qt (package (name "qt") - (version "5.9.4") + (version "5.11.1") (outputs '("out" "examples")) (source (origin (method url-fetch) @@ -114,11 +114,11 @@ system, and the core design of Django is reused in Grantlee.") "http://download.qt.io/official_releases/qt/" (version-major+minor version) "/" version - "/single/qt-everywhere-opensource-src-" + "/single/qt-everywhere-src-" version ".tar.xz")) (sha256 (base32 - "1mblh8k04l13nk9fhhrr43h5bcph1gbz94j5y7csx8zvxb5xkb73")) + "0azva1wx298jh0xskymz8jic83yhxs1xfxf321wqd5lwiyq2qq1r")) (modules '((guix build utils))) (snippet '(begin @@ -135,7 +135,7 @@ system, and the core design of Django is reused in Grantlee.") (lambda (dir) (delete-file-recursively (string-append "qtbase/src/3rdparty/" dir))) (list "double-conversion" "freetype" "harfbuzz-ng" - "libpng" "libjpeg" "pcre2" "sqlite" "xcb" + "libpng" "libjpeg" "pcre2" "xcb" "xkbcommon" "zlib")) (for-each (lambda (dir) @@ -143,10 +143,23 @@ system, and the core design of Django is reused in Grantlee.") (list "qtimageformats/src/3rdparty" "qtmultimedia/examples/multimedia/spectrum/3rdparty" "qtwayland/examples" + "qtscxml/tests/3rdparty" "qtcanvas3d/examples/canvas3d/3rdparty")) ;; Tests depend on this example, which depends on the 3rd party code. (substitute* "qtmultimedia/examples/multimedia/multimedia.pro" (("spectrum") "#")) + (substitute* "qtxmlpatterns/tests/auto/auto.pro" + (("qxmlquery") "# qxmlquery") + (("xmlpatterns ") "# xmlpatterns")) + (substitute* "qtwebglplugin/tests/plugins/platforms/platforms.pro" + (("webgl") "# webgl")) + (substitute* "qtscxml/tests/auto/auto.pro" + (("scion") "#")) + (substitute* "qtnetworkauth/tests/auto/auto.pro" + (("oauth1 ") "# oauth1 ")) + (substitute* "qtremoteobjects/tests/auto/qml/qml.pro" + (("integration") "# integration") + (("usertypes") "# usertypes")) #t)))) (build-system gnu-build-system) (propagated-inputs @@ -193,7 +206,7 @@ system, and the core design of Django is reused in Grantlee.") ("postgresql" ,postgresql) ("pulseaudio" ,pulseaudio) ("pcre2" ,pcre2) - ("sqlite" ,sqlite) + ;("sqlite" ,sqlite) ("udev" ,eudev) ("unixodbc" ,unixodbc) ("wayland" ,wayland) @@ -244,7 +257,7 @@ system, and the core design of Django is reused in Grantlee.") "-no-compile-examples" ;; Most "-system-..." are automatic, but some use ;; the bundled copy by default. - "-system-sqlite" + ;"-system-sqlite" "-system-harfbuzz" ;; explicitly link with openssl instead of dlopening it "-openssl-linked" From e3232b2627644734deb26f51eaeaee8e185cc919 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Jul 2018 16:04:56 +0300 Subject: [PATCH 039/374] gnu: python-sip: Update to 4.19.11. * gnu/packages/qt.scm (python-sip): Update to 4.19.11. [arguments]: Substitute INVOKE for SYSTEM*. Add flag to build private sip module PyQt5.sip. --- gnu/packages/qt.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 000c5fb02f..47e07912e4 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1597,7 +1597,7 @@ message."))) (define-public python-sip (package (name "python-sip") - (version "4.19.8") + (version "4.19.11") (source (origin (method url-fetch) @@ -1606,7 +1606,7 @@ message."))) "sip-" version "/sip-" version ".tar.gz")) (sha256 (base32 - "1g4pq9vj753r2s061jc4y9ydzgb48ibhc9bdvmb8mlyllwp7mbvy")))) + "1q2rirsh4616r20kw7csagzcnwahiqsr2r9q0ycnd58fa569pm36")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-wrapper))) @@ -1631,11 +1631,11 @@ message."))) (lib (string-append out "/lib/python" python-major+minor "/site-packages"))) - (zero? - (system* "python" "configure.py" - "--bindir" bin - "--destdir" lib - "--incdir" include)))))))) + (invoke "python" "configure.py" + "--sip-module" "PyQt5.sip" ; for python-pyqt + "--bindir" bin + "--destdir" lib + "--incdir" include))))))) (home-page "https://www.riverbankcomputing.com/software/sip/intro") (synopsis "Python binding creator for C and C++ libraries") (description From a01a3763fc20a8c8ae31174fdbf0271bed0bbc5b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 4 Jul 2018 16:06:05 +0300 Subject: [PATCH 040/374] gnu: python-pyqt: Update to 5.11.2. * gnu/packages/qt.scm (python-pyqt): Update to 5.11.2. [arguments]: Substitute INVOKE for SYSTEM*. (python2-pyqt)[inputs]: Add python2-enum34. --- gnu/packages/qt.scm | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 47e07912e4..198d719bc2 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1660,7 +1660,7 @@ module provides support functions to the automatically generated code.") (define-public python-pyqt (package (name "python-pyqt") - (version "5.10.1") + (version "5.11.2") (source (origin (method url-fetch) @@ -1670,7 +1670,7 @@ module provides support functions to the automatically generated code.") version ".tar.gz")) (sha256 (base32 - "1vz9c4v0k8azk2b08swwybrshzw32x8djjpq13mf9v15x1qyjclr")) + "00wn9svgyp0fsrkc4ma15zcxg31pw4gsgaz6nwb3fhy3al8miakw")) (patches (search-patches "pyqt-configure.patch")))) (build-system gnu-build-system) (native-inputs @@ -1717,18 +1717,18 @@ module provides support functions to the automatically generated code.") python-major+minor "/site-packages")) (stubs (string-append lib "/PyQt5"))) - (zero? (system* "python" "configure.py" - "--confirm-license" - "--bindir" bin - "--destdir" lib - "--designer-plugindir" designer - "--qml-plugindir" qml - ; Where to install the PEP 484 Type Hints stub - ; files. Without this the stubs are tried to be - ; installed into the python package's - ; site-package directory, which is read-only. - "--stubsdir" stubs - "--sipdir" sip)))))))) + (invoke "python" "configure.py" + "--confirm-license" + "--bindir" bin + "--destdir" lib + "--designer-plugindir" designer + "--qml-plugindir" qml + ; Where to install the PEP 484 Type Hints stub + ; files. Without this the stubs are tried to be + ; installed into the python package's + ; site-package directory, which is read-only. + "--stubsdir" stubs + "--sipdir" sip))))))) (home-page "https://www.riverbankcomputing.com/software/pyqt/intro") (synopsis "Python bindings for Qt") (description @@ -1745,6 +1745,7 @@ contain over 620 classes.") ("qtbase" ,qtbase))) (inputs `(("python" ,python-2) + ("python2-enum34" ,python2-enum34) ,@(alist-delete "python" (package-inputs python-pyqt)))))) (define-public python-pyqt-4 From 8911d85b9c361c53df9a9b70ae7f8b03fbdb5b49 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 5 Jul 2018 09:02:27 +0300 Subject: [PATCH 041/374] gnu: qsintilla: Update to 2.10.7. * gnu/packages/qt.scm (qscintilla): Update to 2.10.7. --- gnu/packages/qt.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 198d719bc2..cb02fbaa42 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1806,7 +1806,7 @@ contain over 620 classes.") (define-public qscintilla (package (name "qscintilla") - (version "2.10.3") + (version "2.10.7") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pyqt/QScintilla2/" @@ -1814,7 +1814,7 @@ contain over 620 classes.") version ".tar.gz")) (sha256 (base32 - "1rw1nlwnyzj5pb86cc5kk56qhrvwvrjvjzgrkwh3g7b9wxl7lrfj")))) + "06hs6civq13dvzlws0spjb7gwyk6kynpnfwg5plhahnxf7g5h137")))) (build-system gnu-build-system) (arguments `(#:phases From cd6ae1cee95644b9aa712a7192bc9677a04c146b Mon Sep 17 00:00:00 2001 From: Julian Graham Date: Thu, 5 Jul 2018 11:06:02 -0400 Subject: [PATCH 042/374] gnu: gzochi: Update to 0.12. * gnu/packages/game-development.scm (gzochi): Update to 0.12. --- gnu/packages/game-development.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 4131c130ff..afabeb0c62 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2016, 2018 Ricardo Wurmus -;;; Copyright © 2016, 2017 Julian Graham +;;; Copyright © 2016, 2017, 2018 Julian Graham ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis ;;; Copyright © 2017 Peter Mikkelsen @@ -225,14 +225,14 @@ PCM data.") (define-public gzochi (package (name "gzochi") - (version "0.11.1") + (version "0.12") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/gzochi/gzochi-" version ".tar.gz")) (sha256 (base32 - "13j1m92zhxwkaaja3lg5x0h0b28mrrawdzk9d3hd19031akfxwb3")))) + "0h8yvk7154kd8zdfa9nqy73blrjq2x19kv305jcnwlmm09vvss59")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases From daf76c7cd54df428abc28d490747c7f83a844df0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 14:28:23 +0200 Subject: [PATCH 043/374] gnu-maintenance: Get GNU metadata from rec files. Suggested by Mike Gerwitz . * guix/gnu-maintenance.scm (%package-list-url): Use the .rec file. (%package-description-url): Likewise. (official-gnu-packages)[read-records]: Skip record descriptors. Rename fields to use underscores instead of hyphens. --- guix/gnu-maintenance.scm | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index c2a7a33b6a..3634f4bb27 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2012, 2013 Nikita Karetnikov ;;; ;;; This file is part of GNU Guix. @@ -82,13 +82,14 @@ (define %package-list-url (string->uri - (string-append %gnumaint-base-url "gnupackages.txt"))) + (string-append %gnumaint-base-url "rec/gnupackages.rec"))) (define %package-description-url ;; This file contains package descriptions in recutils format. - ;; See . + ;; See + ;; and . (string->uri - (string-append %gnumaint-base-url "pkgblurbs.txt"))) + (string-append %gnumaint-base-url "rec/pkgblurbs.rec"))) (define-record-type* gnu-package-descriptor @@ -121,7 +122,12 @@ to fetch the list of GNU packages over HTTP." (if (null? alist) (reverse result) (loop (recutils->alist port) - (cons alist result))))) + + ;; Ignore things like "%rec" (info "(recutils) Record + ;; Descriptors"). + (if (assoc-ref alist "package") + (cons alist result) + result))))) (define official-description (let ((db (read-records (fetch %package-description-url #:text? #t)))) @@ -148,12 +154,12 @@ to fetch the list of GNU packages over HTTP." (alist->record `(("description" . ,(official-description name)) ,@alist) make-gnu-package-descriptor - (list "package" "mundane-name" "copyright-holder" + (list "package" "mundane_name" "copyright_holder" "savannah" "fsd" "language" "logo" - "doc-category" "doc-summary" "description" - "doc-url" - "download-url") - '("doc-url" "language")))) + "doc_category" "doc_summary" "description" + "doc_url" + "download_url") + '("doc_url" "language")))) (let* ((port (fetch %package-list-url #:text? #t)) (lst (read-records port))) (close-port port) From 36adbc4310b6dba5a3c06c9d51fac99964e07431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 15:51:20 +0200 Subject: [PATCH 044/374] gnu: Add emacs-recent-addresses. * gnu/packages/emacs.scm (emacs-recent-addresses): New variable. --- gnu/packages/emacs.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index c6c7a1df4b..5a3ba14875 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11410,3 +11410,27 @@ siblings and friends. This visual overview can also be used to browse your entries. You can think of entries as nodes in a mind map, or pages in a wiki.") (license license:expat))) + +(define-public emacs-recent-addresses + (let ((commit "d9da58db542089a1ceb5ef29e420dbfbc4a36373") + (revision "0")) + (package + (name "emacs-recent-addresses") + (home-page "http://nschum.de/src/emacs/recent-addresses/") + (version (git-version "0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nschum/recent-addresses.el") + (commit commit))) + (sha256 + (base32 + "175rvcwmkb5z7ss7q2y5178mvdvp5bhn39irz80qinlvaz8fm4nk")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (synopsis "Record recently-used email addressed and auto-complete them") + (description + "@code{recent-addresses} is an Emacs allows you to quickly look up +previously used email addresses. It can be used alongside the Gnus email +client.") + (license license:gpl2+)))) From d1f90b9bfb3ce3777294bd13b0c501d8546e5576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 16:06:31 +0200 Subject: [PATCH 045/374] gnu: Add emacs-fold-dwim. * gnu/packages/emacs.scm (emacs-fold-dwim): New variable. --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 5a3ba14875..6bd67dcef2 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11434,3 +11434,26 @@ wiki.") previously used email addresses. It can be used alongside the Gnus email client.") (license license:gpl2+)))) + +(define-public emacs-fold-dwim + (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b") + (revision "0")) + (package + (name "emacs-fold-dwim") + (version (git-version "1.2" revision commit)) + (home-page "https://github.com/emacsattic/fold-dwim") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (sha256 + (base32 + "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (synopsis "Unified user interface for Emacs folding modes") + (description + "DWIM stands for \"do what I mean\", as in the idea that one keystroke +can do different things depending on the context. In this package, it means +that, if the cursor is in a currently hidden folded construction, we want to +show it; if it's not, we want to hide whatever fold the cursor is in.") + (license license:gpl2+)))) From fc83ca2b2f5cbfddc7d64a69bb13730d63e3e3b7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 11 Jul 2018 22:04:12 +0300 Subject: [PATCH 046/374] gnu: btrfs-progs: Update home-page. * gnu/packages/linux.scm (btrfs-progs)[home-page]: Update to redirected home-page. --- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index cd3924ccee..e9175eb282 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3290,7 +3290,7 @@ and copy/paste text in the console and in xterm.") ("which" ,which) ;; The tests need 'grep' with perl regexp support. ("grep" ,grep))) - (home-page "https://btrfs.wiki.kernel.org/") + (home-page "https://btrfs.wiki.kernel.org/index.php/Main_Page") (synopsis "Create and manage btrfs copy-on-write file systems") (description "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux aimed at implementing advanced features while focusing on fault tolerance, From 1a80f1a9e3b954c7b5a5872bb2b460a98cd9efef Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 11 Jul 2018 22:08:55 +0300 Subject: [PATCH 047/374] gnu: msmtp: Update to 1.6.8. * gnu/packages/mail.scm (msmtp): Update to 1.6.8. [source]: Update to new source location. [home-page]: Update to new home-page. --- gnu/packages/mail.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index bf77b0a7fe..f127e27e3c 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1071,15 +1071,15 @@ which can add many functionalities to the base client.") (define-public msmtp (package (name "msmtp") - (version "1.6.6") + (version "1.6.8") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/msmtp/msmtp/" version + (uri (string-append "https://marlam.de/msmtp/releases/" "/msmtp-" version ".tar.xz")) (sha256 (base32 - "0ppvww0sb09bnsrpqnvlrn8vx231r24xn2iiwpy020mxc8gxn5fs")))) + "1ysrnshvwhzwmvb2walw5i9jdzlvmckj7inr0xnvb26q0jirbzsm")))) (build-system gnu-build-system) (inputs `(("libidn" ,libidn) @@ -1089,7 +1089,7 @@ which can add many functionalities to the base client.") ("gsasl" ,gsasl))) (native-inputs `(("pkg-config" ,pkg-config))) - (home-page "http://msmtp.sourceforge.net/") + (home-page "https://marlam.de/msmtp/") (arguments `(#:configure-flags (list "--with-libgsasl" "--with-libidn" From d1af9a8c224371505258e246b5a95caa0d2f0598 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 15:56:41 +0200 Subject: [PATCH 048/374] gnu: make-u-boot-package: Return #t from "install" phase. * gnu/packages/bootloaders.scm (make-u-boot-package)[arguments]<#:phases> [install]: Return #t. --- gnu/packages/bootloaders.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 73130b7312..17fac73749 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -519,7 +519,8 @@ board-independent tools."))) (let ((target-file (string-append libexec "/" file))) (mkdir-p (dirname target-file)) (copy-file file target-file))) - uboot-files)))))))))) + uboot-files) + #t))))))))) (define-public u-boot-vexpress (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf")) From 10186ee2d33ea54b3d0a9cd1a0275055a3ed2594 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 16:10:36 +0200 Subject: [PATCH 049/374] gnu: u-boot-tools: Install "sunxi-spl-image-builder". * gnu/packages/bootloaders.scm (u-boot-tools)[arguments]<#:phases>[build]: Build sunxi-spl-image-builder. (u-boot-tools)[arguments]<#:phases>[install]: Install sunxi-spl-image-builder. --- gnu/packages/bootloaders.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 17fac73749..6ea0ecba8d 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -426,7 +426,8 @@ def test_ctrl_c")) (replace 'build (lambda* (#:key inputs make-flags #:allow-other-keys) (apply invoke "make" "tools-only" make-flags) - (apply invoke "make" "envtools" make-flags))) + (apply invoke "make" "envtools" make-flags) + (invoke "make" "-C" "tools" "sunxi-spl-image-builder"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -443,7 +444,8 @@ def test_ctrl_c")) "tools/mkimage" "tools/proftool" "tools/fdtgrep" - "tools/env/fw_printenv")) + "tools/env/fw_printenv" + "tools/sunxi-spl-image-builder")) #t))) (delete 'check) (add-after 'install 'check From 9e84a4d6a561bf6516a64392501178be4ba488c9 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 17:05:53 +0200 Subject: [PATCH 050/374] gnu: u-boot-tools: Simplify build. * gnu/packages/bootloaders.scm (u-boot-tools)[arguments]<#:phases>[build]: Modify. --- gnu/packages/bootloaders.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 6ea0ecba8d..7599f4ac25 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -425,9 +425,7 @@ def test_ctrl_c")) (apply invoke "make" "tools_defconfig" make-flags))) (replace 'build (lambda* (#:key inputs make-flags #:allow-other-keys) - (apply invoke "make" "tools-only" make-flags) - (apply invoke "make" "envtools" make-flags) - (invoke "make" "-C" "tools" "sunxi-spl-image-builder"))) + (apply invoke "make" "tools-all" make-flags))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) From e73ed2a1ecd4ad55fe4769bf3ad65d0a161881c6 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 17:03:16 +0200 Subject: [PATCH 051/374] gnu: Add ghc-regex-tdfa-text. * gnu/packages/haskell.scm (ghc-regex-tdfa-text): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2176f07cc4..ab8ed235bc 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2487,6 +2487,31 @@ Haskell library @code{regex-base}.") @code{libtre} (fork by Roman Cheplyaka).") (license license:bsd-3))) +(define-public ghc-regex-tdfa-text + (package + (name "ghc-regex-tdfa-text") + (version "1.0.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/regex-tdfa-text/" + "regex-tdfa-text-" version ".tar.gz")) + (sha256 + (base32 + "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq")))) + (build-system haskell-build-system) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-regex-base" ,ghc-regex-base) + ("ghc-regex-tdfa" ,ghc-regex-tdfa))) + (home-page + "http://hackage.haskell.org/package/regex-tdfa-text") + (synopsis "Text interface for regex-tdfa") + (description + "This provides an extra text interface for regex-tdfa.") + (license license:bsd-3))) + (define-public ghc-parsers (package (name "ghc-parsers") From 66413378e8eb68ebcfeb1e2f4154a4443dfa21ca Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 17:04:56 +0200 Subject: [PATCH 052/374] gnu: Add ghc-xdg-basedir. * gnu/packages/haskell.scm (ghc-xdg-basedir): New variable. --- gnu/packages/haskell.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index ab8ed235bc..8d2dcba208 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9703,4 +9703,23 @@ serialization code.") disk space usage.") (license license:bsd-3))) +(define-public ghc-xdg-basedir + (package + (name "ghc-xdg-basedir") + (version "0.2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/xdg-basedir/" + "xdg-basedir-" version ".tar.gz")) + (sha256 + (base32 + "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4")))) + (build-system haskell-build-system) + (home-page "http://github.com/willdonnelly/xdg-basedir") + (synopsis "XDG Base Directory library for Haskell") + (description "This package provides a library implementing the XDG Base Directory spec.") + (license license:bsd-3))) + ;;; haskell.scm ends here From f3a422511f793fb6c6cfeec2bb8735965a03294a Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 10 Jul 2018 19:00:48 +0200 Subject: [PATCH 053/374] store: Add `binary-file'. * guix/store.scm (binary-file): New function. * doc/guix.texi (The Store Monad): Describe binary-file. --- doc/guix.texi | 8 +++++++- guix/store.scm | 15 ++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 8026bea356..6900717059 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -27,7 +27,7 @@ Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nils Gillmann@* -Copyright @copyright{} 2016, 2017 Jan Nieuwenhuizen@* +Copyright @copyright{} 2016, 2017, 2018 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017, 2018 Clément Lassieur@* @@ -4916,6 +4916,12 @@ containing @var{text}, a string. @var{references} is a list of store items that resulting text file refers to; it defaults to the empty list. @end deffn +@deffn {Monadic Procedure} binary-file @var{name} @var{data} [@var{references}] +Return as a monadic value the absolute file name in the store of the file +containing @var{data}, a bytevector. @var{references} is a list of store +items that the resulting binary file refers to; it defaults to the empty list. +@end deffn + @deffn {Monadic Procedure} interned-file @var{file} [@var{name}] @ [#:recursive? #t] [#:select? (const #t)] Return the name of @var{file} once interned in the store. Use diff --git a/guix/store.scm b/guix/store.scm index bac42f2738..cc5c24a77d 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2018 Jan Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -77,6 +78,7 @@ add-data-to-store add-text-to-store add-to-store + binary-file build-things build query-failed-paths @@ -1362,7 +1364,18 @@ taking the store as its first argument." ;; Store monad operators. ;; -(define* (text-file name text +(define* (binary-file name + data ;bytevector + #:optional (references '())) + "Return as a monadic value the absolute file name in the store of the file +containing DATA, a bytevector. REFERENCES is a list of store items that the +resulting text file refers to; it defaults to the empty list." + (lambda (store) + (values (add-data-to-store store name data references) + store))) + +(define* (text-file name + text ;string #:optional (references '())) "Return as a monadic value the absolute file name in the store of the file containing TEXT, a string. REFERENCES is a list of store items that the From e8e1f295f15fa56660a2c460d422795b1a31bed8 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 10 Jul 2018 19:06:32 +0200 Subject: [PATCH 054/374] gexp: Allow bytevector as content of `plain-file'. This allows for using a package source directly from git, doing something like (define (command->bytevector command) (let ((port (apply open-pipe* OPEN_READ command))) (let ((output (get-bytevector-all port))) (close-port port) output))) (define-public hello-git (package (name "hello") (version "git") (source (let* ((commit "stable-2.0") (content (command->bytevector `("git" "archive" "--format" "tar" "--prefix" ,(string-append commit "/") ,commit))) (file-name (string-append "hello-" commit))) (plain-file file-name content))) ... )) * guix/gexp.scm (): Also allow bytevector content. (plain-file-compiler): Handle bytevector content. * doc/guix.texi (G-Expressions): Describe plain-file now also taking bytevectors. --- doc/guix.texi | 2 +- guix/gexp.scm | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 6900717059..8b286e9d8e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5355,7 +5355,7 @@ procedure (@pxref{The Store Monad, @code{interned-file}}). @deffn {Scheme Procedure} plain-file @var{name} @var{content} Return an object representing a text file called @var{name} with the given -@var{content} (a string) to be added to the store. +@var{content} (a string or a bytevector) to be added to the store. This is the declarative counterpart of @code{text-file}. @end deffn diff --git a/guix/gexp.scm b/guix/gexp.scm index 153b29bd42..cc3613f6f6 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2018 Clément Lassieur +;;; Copyright © 2018 Jan Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,7 @@ #:use-module (guix derivations) #:use-module (guix grafts) #:use-module (guix utils) + #:use-module (rnrs bytevectors) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) @@ -334,7 +336,7 @@ appears." (%plain-file name content references) plain-file? (name plain-file-name) ;string - (content plain-file-content) ;string + (content plain-file-content) ;string or bytevector (references plain-file-references)) ;list (currently unused) (define (plain-file name content) @@ -349,8 +351,10 @@ This is the declarative counterpart of 'text-file'." (define-gexp-compiler (plain-file-compiler (file ) system target) ;; "Compile" FILE by adding it to the store. (match file - (($ name content references) - (text-file name content references)))) + (($ name (and (? string?) content) references) + (text-file name content references)) + (($ name (and (? bytevector?) content) references) + (binary-file name content references)))) (define-record-type (%computed-file name gexp guile options) From 314b63e0b4372681aec165113ae2a0349eaaa357 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 11:02:51 +0200 Subject: [PATCH 055/374] import: hackage: Support "custom-setup" field. Fixes . * guix/import/cabal.scm (make-cabal-parser): Modify. (is-custom-setup): New variable. (lex-custom-setup): New procedure. (is-id): Modify. (lex-version): Modify. (): New record type. (eval-cabal): Modify. (dependencies): Add parameter. --- guix/import/cabal.scm | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm index 09130e4498..1775c38791 100644 --- a/guix/import/cabal.scm +++ b/guix/import/cabal.scm @@ -140,7 +140,7 @@ to the stack." (lalr-parser ;; --- token definitions (CCURLY VCCURLY OPAREN CPAREN TEST ID VERSION RELATION TRUE FALSE - (right: IF FLAG EXEC TEST-SUITE SOURCE-REPO BENCHMARK LIB OCURLY) + (right: IF FLAG EXEC TEST-SUITE CUSTOM-SETUP SOURCE-REPO BENCHMARK LIB OCURLY) (left: OR) (left: PROPERTY AND) (right: ELSE NOT)) @@ -150,6 +150,7 @@ to the stack." (sections source-repo) : (append $1 (list $2)) (sections executables) : (append $1 $2) (sections test-suites) : (append $1 $2) + (sections custom-setup) : (append $1 $2) (sections benchmarks) : (append $1 $2) (sections lib-sec) : (append $1 (list $2)) () : '()) @@ -172,6 +173,7 @@ to the stack." (ts-sec) : (list $1)) (ts-sec (TEST-SUITE OCURLY exprs CCURLY) : `(section test-suite ,$1 ,$3) (TEST-SUITE open exprs close) : `(section test-suite ,$1 ,$3)) + (custom-setup (CUSTOM-SETUP exprs) : (list `(section custom-setup ,$1 ,$2))) (benchmarks (benchmarks bm-sec) : (append $1 (list $2)) (bm-sec) : (list $1)) (bm-sec (BENCHMARK OCURLY exprs CCURLY) : `(section benchmark ,$1 ,$3) @@ -349,6 +351,9 @@ matching a string against the created regexp." (define is-test-suite (make-rx-matcher "^test-suite +([a-z0-9_-]+)" regexp/icase)) +(define is-custom-setup (make-rx-matcher "^(custom-setup)" + regexp/icase)) + (define is-benchmark (make-rx-matcher "^benchmark +([a-z0-9_-]+)" regexp/icase)) @@ -368,7 +373,7 @@ matching a string against the created regexp." (define (is-id s port) (let ((cabal-reserved-words - '("if" "else" "library" "flag" "executable" "test-suite" + '("if" "else" "library" "flag" "executable" "test-suite" "custom-setup" "source-repository" "benchmark")) (spaces (read-while (cut char-set-contains? char-set:blank <>) port)) (c (peek-char port))) @@ -392,8 +397,11 @@ matching a string against the created regexp." (define (lex-version loc port) (make-lexical-token 'VERSION loc - (read-while char-numeric? port - (cut char=? #\. <>) char-numeric?))) + (read-while (lambda (x) + (or (char-numeric? x) + (char=? x #\*) + (char=? x #\.))) + port))) (define* (read-while is? port #:optional (is-if-followed-by? (lambda (c) #f)) @@ -435,6 +443,8 @@ string with the read characters." (define (lex-test-suite ts-rx-res loc) (lex-rx-res ts-rx-res 'TEST-SUITE loc)) +(define (lex-custom-setup ts-rx-res loc) (lex-rx-res ts-rx-res 'CUSTOM-SETUP loc)) + (define (lex-benchmark bm-rx-res loc) (lex-rx-res bm-rx-res 'BENCHMARK loc)) (define (lex-lib loc) (make-lexical-token 'LIB loc #f)) @@ -529,6 +539,7 @@ the current port location." ((is-src-repo s) => (cut lex-src-repo <> loc)) ((is-exec s) => (cut lex-exec <> loc)) ((is-test-suite s) => (cut lex-test-suite <> loc)) + ((is-custom-setup s) => (cut lex-custom-setup <> loc)) ((is-benchmark s) => (cut lex-benchmark <> loc)) ((is-lib s) (lex-lib loc)) ((is-else s) (lex-else loc)) @@ -658,6 +669,12 @@ If #f use the function 'port-filename' to obtain it." (name cabal-test-suite-name) (dependencies cabal-test-suite-dependencies)) ; list of +(define-record-type + (make-cabal-custom-setup name dependencies) + cabal-custom-setup? + (name cabal-custom-setuo-name) + (dependencies cabal-custom-setup-dependencies)) ; list of + (define (cabal-flags->alist flag-list) "Retrun an alist associating the flag name to its default value from a list of objects." @@ -728,7 +745,6 @@ the ordering operation and the version." (let ((value (or (assoc-ref env name) (assoc-ref (cabal-flags->alist (cabal-flags)) name)))) (if (eq? value 'false) #f #t))) - (define (eval sexp) (match sexp (() '()) @@ -755,6 +771,8 @@ the ordering operation and the version." ;; no need to evaluate flag parameters (('section 'flag name parameters) (list 'section 'flag name parameters)) + (('section 'custom-setup parameters) + (list 'section 'custom-setup parameters)) ;; library does not have a name parameter (('section 'library parameters) (list 'section 'library (eval parameters))) @@ -795,12 +813,15 @@ See the manual for limitations."))))))) (define (make-cabal-section sexp section-type) "Given an SEXP as produced by 'read-cabal', produce a list of objects pertaining to SECTION-TYPE sections. SECTION-TYPE must be one of: -'executable, 'flag, 'test-suite, 'source-repository or 'library." +'executable, 'flag, 'test-suite, 'custom-setup, 'source-repository or +'library." (filter-map (cut match <> (('section (? (cut equal? <> section-type)) name parameters) (case section-type ((test-suite) (make-cabal-test-suite name (dependencies parameters))) + ((custom-setup) (make-cabal-custom-setup + name (dependencies parameters "setup-depends"))) ((executable) (make-cabal-executable name (dependencies parameters))) ((source-repository) (make-cabal-source-repository @@ -843,10 +864,10 @@ to be added between the values found in different key/value pairs." (define dependency-name-version-rx (make-regexp "([a-zA-Z0-9_-]+) *(.*)")) -(define (dependencies key-values-list) +(define* (dependencies key-values-list #:optional (key "build-depends")) "Return a list of 'cabal-dependency' objects for the dependencies found in KEY-VALUES-LIST." - (let ((deps (string-tokenize (lookup-join key-values-list "build-depends" ",") + (let ((deps (string-tokenize (lookup-join key-values-list key ",") (char-set-complement (char-set #\,))))) (map (lambda (d) (let ((rx-result (regexp-exec dependency-name-version-rx d))) From ecba50bb79a49b317c4b1e718f4732b36438227f Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 11 Jul 2018 17:07:01 +0200 Subject: [PATCH 056/374] import: hackage: Support "-any" and "-none" version comparison operators. * guix/import/cabal.scm (make-cabal-parser): Modify. (is-any): New variable. (is-none): New variable. (lex-any): New procedure. (lex-none): New procedure. (lex-word): Modify. (eval-cabal): Modify. --- guix/import/cabal.scm | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm index 1775c38791..cd0a2953c6 100644 --- a/guix/import/cabal.scm +++ b/guix/import/cabal.scm @@ -139,7 +139,7 @@ to the stack." "Generate a parser for Cabal files." (lalr-parser ;; --- token definitions - (CCURLY VCCURLY OPAREN CPAREN TEST ID VERSION RELATION TRUE FALSE + (CCURLY VCCURLY OPAREN CPAREN TEST ID VERSION RELATION TRUE FALSE -ANY -NONE (right: IF FLAG EXEC TEST-SUITE CUSTOM-SETUP SOURCE-REPO BENCHMARK LIB OCURLY) (left: OR) (left: PROPERTY AND) @@ -213,6 +213,10 @@ to the stack." (FALSE) : 'false (TEST OPAREN ID RELATION VERSION CPAREN) : `(,$1 ,(string-append $3 " " $4 " " $5)) + (TEST OPAREN ID -ANY CPAREN) + : `(,$1 ,(string-append $3 " -any")) + (TEST OPAREN ID -NONE CPAREN) + : `(,$1 ,(string-append $3 " -none")) (TEST OPAREN ID RELATION VERSION AND RELATION VERSION CPAREN) : `(and (,$1 ,(string-append $3 " " $4 " " $5)) (,$1 ,(string-append $3 " " $7 " " $8))) @@ -367,6 +371,10 @@ matching a string against the created regexp." (define (is-false s) (string-ci=? s "false")) +(define (is-any s) (string-ci=? s "-any")) + +(define (is-none s) (string-ci=? s "-none")) + (define (is-and s) (string=? s "&&")) (define (is-or s) (string=? s "||")) @@ -457,6 +465,10 @@ string with the read characters." (define (lex-false loc) (make-lexical-token 'FALSE loc #f)) +(define (lex-any loc) (make-lexical-token '-ANY loc #f)) + +(define (lex-none loc) (make-lexical-token '-NONE loc #f)) + (define (lex-and loc) (make-lexical-token 'AND loc #f)) (define (lex-or loc) (make-lexical-token 'OR loc #f)) @@ -524,6 +536,8 @@ LOC is the current port location." ((is-test w port) (lex-test w loc)) ((is-true w) (lex-true loc)) ((is-false w) (lex-false loc)) + ((is-any w) (lex-any loc)) + ((is-none w) (lex-none loc)) ((is-and w) (lex-and loc)) ((is-or w) (lex-or loc)) ((is-id w port) (lex-id w loc)) @@ -711,13 +725,20 @@ the ordering operation and the version." (let* ((with-ver-matcher-fn (make-rx-matcher "([a-zA-Z0-9_-]+) *([<>=]+) *([0-9.]+) *")) (without-ver-matcher-fn (make-rx-matcher "([a-zA-Z0-9_-]+)")) + (without-ver-matcher-fn-2 (make-rx-matcher "([a-zA-Z0-9_-]+) (-any|-none)")) (name (or (and=> (with-ver-matcher-fn spec) (cut match:substring <> 1)) + (and=> (without-ver-matcher-fn-2 spec) + (cut match:substring <> 1)) (match:substring (without-ver-matcher-fn spec) 1))) - (operator (and=> (with-ver-matcher-fn spec) - (cut match:substring <> 2))) - (version (and=> (with-ver-matcher-fn spec) - (cut match:substring <> 3)))) + (operator (or (and=> (with-ver-matcher-fn spec) + (cut match:substring <> 2)) + (and=> (without-ver-matcher-fn-2 spec) + (cut match:substring <> 2)))) + (version (or (and=> (with-ver-matcher-fn spec) + (cut match:substring <> 3)) + (and=> (without-ver-matcher-fn-2 spec) + (cut match:substring <> 2))))) (values name operator version))) (define (impl haskell) From 6adc6b091e172b190d263548cc953aec0f1abfab Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 12 Jul 2018 10:55:04 -0400 Subject: [PATCH 057/374] gnu: GnuPG: Update to 2.2.9. * gnu/packages/gnupg.scm (gnupg): Update to 2.2.9. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index da0c33565a..c095a966c2 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -245,14 +245,14 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.2.8") + (version "2.2.9") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "1k8dnnfs9888yp713l7kg2jg110lw47s4krx0njna6fjrsw4qyvp")))) + "0r11mx8nkh7ysrnshs560amha5csx8zcaggb5kxcksx1zymyly32")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) From 9b76037e2c9e2f33985991cce2d0714ee3dfa0da Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 15:37:50 +0200 Subject: [PATCH 058/374] gnu: xapian: Update to 1.4.6 [fixes CVE-2018-0499]. * gnu/packages/search.scm (xapian, python-xapian-bindings): Update to 1.4.6. --- gnu/packages/search.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index e9e74817f2..a728f0a314 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -46,14 +46,14 @@ (define-public xapian (package (name "xapian") - (version "1.4.5") + (version "1.4.6") ;; Note: When updating Xapian, remember to update xapian-bindings below. (source (origin (method url-fetch) (uri (string-append "https://oligarchy.co.uk/xapian/" version "/xapian-core-" version ".tar.xz")) (sha256 - (base32 "0axhqrj202hbll9mcx1qdm8gsqj19216w3z02gyjbycxvr9gkdc5")))) + (base32 "166qpfq7pvyrj2w2x07v31ypvqg6c2xyvds5sms9h4g2sg0z23hy")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib) ("util-linux" ,util-linux))) @@ -91,7 +91,7 @@ rich set of boolean query operators.") "/xapian-bindings-" version ".tar.xz")) (sha256 (base32 - "0cwx39764w24xd25w271had4w78lnw1dgz36yvlw1g3i19rqcy34")))) + "0z5ma66n742241ys037i3k66c6lvsywviqf33vqsf4jb7j03qsbi")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-python3") From 03229b36e025175d0d505538e5c5405fa8e23e8b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 15:42:26 +0200 Subject: [PATCH 059/374] gnu: openh264: Update to 1.8.0. * gnu/packages/video.scm (openh264): Update to 1.8.0. [source](uri): Use release tarball. --- gnu/packages/video.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 737844d8fa..1cc0d5dfde 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -2410,15 +2410,16 @@ of modern, widely supported codecs.") (define-public openh264 (package (name "openh264") - (version "1.7.0") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/cisco/" - name "/archive/v" version ".tar.gz")) + name "/releases/download/v" + version "/Source.Code.tar.gz.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0gv571bqkxk7ic64dmavs1q8nr7p59mcf4ibqp4lc070gn6w61ww")))) + "0niha3wnn1jsndvz9vfwy2wyql8mp9j6v75vjsipy0idwan5yzgf")))) (build-system gnu-build-system) (native-inputs `(("nasm" ,nasm) From 69b8820e7b3567e057e9f2f6956653b0e1ad5a99 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 15:45:14 +0200 Subject: [PATCH 060/374] gnu: rng-tools: Update to 6.3. * gnu/packages/linux.scm (rng-tools): Update to 6.3. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e9175eb282..bcd752dc2a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3595,7 +3595,7 @@ The following service daemons are also provided: (define-public rng-tools (package (name "rng-tools") - (version "6.2") + (version "6.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/nhorman/rng-tools/" @@ -3603,7 +3603,7 @@ The following service daemons are also provided: (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0xy4qmfhvkr5z4jr9j55dn5gnajr2jccdp6n0xsxkipjcgag342j")))) + "1lc2kqw3idwmjyjnf16sqz0f4r1w7c638n4la1j1n5c3188q26bv")))) (build-system gnu-build-system) (arguments `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB. From 804863196c9f29b80e294057217f6e6a12941c8d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 15:52:19 +0200 Subject: [PATCH 061/374] gnu: libzip: Update to 1.5.1. * gnu/packages/compression.scm (libzip): Update to 1.5.1. [build-system]: Switch to CMAKE-BUILD-SYSTEM. --- gnu/packages/compression.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 2ca431b2c1..0d73886109 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1889,19 +1889,19 @@ create, manipulate, read, and write Zip archive files.") (define-public libzip (package (name "libzip") - (version "1.3.2") + (version "1.5.1") (source (origin (method url-fetch) (uri (string-append "https://libzip.org/download/" name "-" version ".tar.xz")) (sha256 (base32 - "11g1hvm2bxa2v5plakfzcwyk5hb5fz4kgrkp38l0xhnv21888xv2")))) + "0wnkkvkq90wyawj9221i77sf3nix1vj3ygzdy59k8yvcjnv3bsh4")))) (native-inputs `(("perl" ,perl))) (inputs `(("zlib" ,zlib))) - (build-system gnu-build-system) + (build-system cmake-build-system) (home-page "https://libzip.org") (synopsis "C library for reading, creating, and modifying zip archives") (description "Libzip is a C library for reading, creating, and modifying From 316ece170c8e72bb21ba17c5910f02815d04bc2f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:02:59 +0200 Subject: [PATCH 062/374] gnu: appstream-glib: Update to 0.7.10. * gnu/packages/glib.scm (appstream-glib): Update to 0.7.10. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 7ea22fe88f..95d7976bf8 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -787,7 +787,7 @@ programming langauage. It also contains the utility (define-public appstream-glib (package (name "appstream-glib") - (version "0.7.5") + (version "0.7.10") (source (origin (method url-fetch) (uri (string-append "https://people.freedesktop.org/~hughsient/" @@ -795,7 +795,7 @@ programming langauage. It also contains the utility "appstream-glib-" version ".tar.xz")) (sha256 (base32 - "0ps80cbqnf3q86rvz3ajqjssdgkjc9kmynqf0wxqfir7ayc9y9ag")))) + "08bs0hnkvdzqv9pakv1y4c4ph77rmzjq22g760w20sv7vs63nia3")))) (build-system meson-build-system) (native-inputs `(("gettext" ,gettext-minimal) From 250276a20272dcbf609bb8761b6ef213a2e9f863 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:06:28 +0200 Subject: [PATCH 063/374] gnu: python-pyyaml: Update to 3.13. * gnu/packages/python.scm (python-pyyaml): Update to 3.13. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c9b22e87ee..057a14c501 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2218,14 +2218,14 @@ environments and back.") (define-public python-pyyaml (package (name "python-pyyaml") - (version "3.12") + (version "3.13") (source (origin (method url-fetch) (uri (pypi-uri "PyYAML" version)) (sha256 (base32 - "1aqjl8dk9amd4zr99n8v2qxzgmr2hdvqfma4zh7a41rj6336c9sr")))) + "1gx603g484z46cb74j9rzr6sjlh2vndxayicvlyhxdz98lhhkwry")))) (build-system python-build-system) (inputs `(("libyaml" ,libyaml))) From f9e1cdb87a44d6196d6af6a634a87608b4ae54ca Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:15:29 +0200 Subject: [PATCH 064/374] gnu: talloc: Update to 2.1.14. * gnu/packages/samba.scm (talloc): Update to 2.1.14. --- gnu/packages/samba.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 0ce46056f5..41e37050a5 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -236,14 +236,14 @@ Desktops into Active Directory environments using the winbind daemon.") (define-public talloc (package (name "talloc") - (version "2.1.13") + (version "2.1.14") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/talloc/talloc-" version ".tar.gz")) (sha256 (base32 - "0iv09iv385x69gfzvassq6m3y0rd8ncylls95dm015xdy3drkww4")))) + "1kk76dyav41ip7ddbbf04yfydb4jvywzi2ps0z2vla56aqkn11di")))) (build-system gnu-build-system) (arguments '(#:phases From e4bdd199c072654b33bf60ba3c65be70472a7143 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:15:49 +0200 Subject: [PATCH 065/374] gnu: tevent: Update to 0.9.37. * gnu/packages/samba.scm (tevent): Update to 0.9.37. --- gnu/packages/samba.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 41e37050a5..f81c586186 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -306,14 +306,14 @@ destructors. It is the core memory allocator used in Samba.") (define-public tevent (package (name "tevent") - (version "0.9.36") + (version "0.9.37") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/tevent/tevent-" version ".tar.gz")) (sha256 (base32 - "0k1v4vnlzpf7h3p4khaw8a7damrc68g136bf2xzys08nzpinnaxx")))) + "1q77vbjic2bb79li2a54ffscnrnwwww55fbpry2kgh7acpnlb0qn")))) (build-system gnu-build-system) (arguments '(#:phases From b7a2d2d9a91f6f1a680ef5dbcab4268102d1e1c7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:18:44 +0200 Subject: [PATCH 066/374] gnu: tdb: Update to 1.3.16. * gnu/packages/databases.scm (tdb): Update to 1.3.16. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 0f1e47f485..2a40dc4d23 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1070,14 +1070,14 @@ is in the public domain.") (define-public tdb (package (name "tdb") - (version "1.3.15") + (version "1.3.16") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/tdb/tdb-" version ".tar.gz")) (sha256 (base32 - "0a37jhpij8wr4f4pjqdlwnffy2l6a2vkqdpz1bqxj6v06cwbz8dl")))) + "1ibcz466xwk1x6xvzlgzd5va4lyrjzm3rnjak29kkwk7cmhw4gva")))) (build-system gnu-build-system) (arguments '(#:phases From 041f84edf3a91834026d85f4a3829fdeaa6c7311 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:29:33 +0200 Subject: [PATCH 067/374] gnu: ldb: Downgrade to 1.3.3. LDB 1.4 and above does not support Samba < 4.9; see . * gnu/packages/samba.scm (ldb): Downgrade to 1.3.3. [inputs]: Remove LMDB. [arguments]: Remove #:tests. --- gnu/packages/samba.scm | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index f81c586186..64017224a7 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -341,14 +341,14 @@ many event types, including timers, signals, and the classic file descriptor eve (define-public ldb (package (name "ldb") - (version "1.4.0") + (version "1.3.3") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/ldb/ldb-" version ".tar.gz")) (sha256 (base32 - "1d591ny4j4s409s2afjv4fn7inqlclr0zlyclw3619rkbaixlzm8")) + "14gsrm7dvyjpbpnc60z75j6fz2p187abm2h353lq95kx2bv70c1b")) (modules '((guix build utils))) (snippet '(begin @@ -361,10 +361,7 @@ many event types, including timers, signals, and the classic file descriptor eve #t)))) (build-system gnu-build-system) (arguments - '(;; LMDB is only supported on 64-bit systems, yet the test suite - ;; requires it. - #:tests? (assoc-ref %build-inputs "lmdb") - #:phases + '(#:phases (modify-phases %standard-phases (replace 'configure ;; ldb use a custom configuration script that runs waf. @@ -384,10 +381,7 @@ many event types, including timers, signals, and the classic file descriptor eve `(("talloc" ,talloc) ("tdb" ,tdb))) (inputs - `(,@(if (target-64bit?) - `(("lmdb" ,lmdb)) - '()) - ("popt" ,popt) + `(("popt" ,popt) ("tevent" ,tevent))) (synopsis "LDAP-like embedded database") (home-page "https://ldb.samba.org/") From 2c3434150baf75ca71410c1968852d63b13c527a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:33:00 +0200 Subject: [PATCH 068/374] gnu: xf86-input-libinput: Update to 0.28.0. * gnu/packages/xorg.scm (xf86-input-libinput): Update to 0.28.0. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 895db8ea13..9448fe958b 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2447,7 +2447,7 @@ including most mice, keyboards, tablets and touchscreens.") (define-public xf86-input-libinput (package (name "xf86-input-libinput") - (version "0.27.1") + (version "0.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2455,7 +2455,7 @@ including most mice, keyboards, tablets and touchscreens.") name "-" version ".tar.bz2")) (sha256 (base32 - "1riflw6dc8fp5d74i7zfgsss0zz3z3lsj6zn2lzjm5kgmp2qvbfl")))) + "189h8vl0005yizwrs4d0sng6j8lwkd3xi1zwqg8qavn2bw34v691")))) (build-system gnu-build-system) (arguments '(#:configure-flags From b9ffa82b968830e4da5f6c55f3cfd6591bbf6349 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:36:07 +0200 Subject: [PATCH 069/374] gnu: lsof: Update to 4.91. * gnu/packages/lsof.scm (lsof): Update to 4.91. --- gnu/packages/lsof.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm index 098242dc7a..d3f1321e06 100644 --- a/gnu/packages/lsof.scm +++ b/gnu/packages/lsof.scm @@ -28,7 +28,7 @@ (define-public lsof (package (name "lsof") - (version "4.89") + (version "4.91") (source (origin (method url-fetch) @@ -53,7 +53,7 @@ (string-append "ftp://ftp.mirrorservice.org/sites/" "lsof.itap.purdue.edu/pub/tools/unix/lsof"))))) (sha256 - (base32 "061p18v0mhzq517791xkjs8a5dfynq1418a1mwxpji69zp2jzb41")))) + (base32 "18sh4hbl9jw2szkf0gvgan8g13f3g4c6s2q9h3zq5gsza9m99nn9")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (arguments From 6f6f9ef0ce6c452d7a976e78281e9d25f8dcfb54 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:38:20 +0200 Subject: [PATCH 070/374] gnu: lsof: Return #t from all phases. * gnu/packages/lsof.scm (lsof)[arguments]: Return #t from phases. --- gnu/packages/lsof.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm index d3f1321e06..8b3ebe2945 100644 --- a/gnu/packages/lsof.scm +++ b/gnu/packages/lsof.scm @@ -73,14 +73,16 @@ (add-after 'configure 'patch-timestamps (lambda _ (substitute* "Makefile" - (("`date`") "`date --date=@1`")))) + (("`date`") "`date --date=@1`")) + #t)) (add-before 'check 'disable-failing-tests (lambda _ (substitute* "tests/Makefile" ;; Fails with ‘ERROR!!! client gethostbyaddr() failure’. (("(STDTST=.*) LTsock" _ prefix) prefix) ;; Fails without access to a remote NFS server. - (("(OPTTST=.*) LTnfs" _ prefix) prefix)))) + (("(OPTTST=.*) LTnfs" _ prefix) prefix)) + #t)) (replace 'check (lambda _ (with-directory-excursion "tests" From 483374378bcc6cd0a55f1947547e65206bcbc573 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:48:55 +0200 Subject: [PATCH 071/374] gnu: oniguruma: Update to 6.8.2. * gnu/packages/textutils.scm (oniguruma): Update to 6.8.2. --- gnu/packages/textutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 5dec41428b..9cf324ba15 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -338,7 +338,7 @@ as existing hashing techniques, with provably negligible risk of collisions.") (define-public oniguruma (package (name "oniguruma") - (version "5.9.6") + (version "6.8.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/kkos/" @@ -346,7 +346,7 @@ as existing hashing techniques, with provably negligible risk of collisions.") "/onig-" version ".tar.gz")) (sha256 (base32 - "19s79vsclqn170mw0ajwv7j37qsbn4f1yjz3yavnhvva6c820r6m")))) + "00s9gjgb3srn5sbmx4x9bssn52mi04d868ghizssdhjlddgxmsmd")))) (build-system gnu-build-system) (home-page "https://github.com/kkos/oniguruma") (synopsis "Regular expression library") From fa25b268dc63d5da457da79169054f287e65e710 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:53:20 +0200 Subject: [PATCH 072/374] gnu: iso-codes: Update home page. * gnu/packages/iso-codes.scm (iso-codes)[home-page]: Change to salsa.debian.org. --- gnu/packages/iso-codes.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/iso-codes.scm b/gnu/packages/iso-codes.scm index 9f67cf2868..67c6dc73e5 100644 --- a/gnu/packages/iso-codes.scm +++ b/gnu/packages/iso-codes.scm @@ -45,7 +45,7 @@ `(("gettext" ,gettext-minimal) ("perl" ,perl) ("python" ,python-wrapper))) - (home-page "https://pkg-isocodes.alioth.debian.org/") + (home-page "https://salsa.debian.org/iso-codes-team/iso-codes") (synopsis "Various ISO standards") (description "This package provides lists of various ISO standards (e.g. country, From d5019f9ca750aa2bd49048c5462d9eac220b0644 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 16:59:56 +0200 Subject: [PATCH 073/374] gnu: php: Build with an older oniguruma. * gnu/packages/textutils.scm (oniguruma-5): New public variable. * gnu/packages/php.scm (php)[inputs]: Change ONIGURUMA to ONIGURUMA-5. --- gnu/packages/php.scm | 2 +- gnu/packages/textutils.scm | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index 90e6ab1c1c..1acab0de71 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -318,7 +318,7 @@ ("libxpm" ,libxpm) ("libxslt" ,libxslt) ("libx11" ,libx11) - ("oniguruma" ,oniguruma) + ("oniguruma" ,oniguruma-5) ("openldap" ,openldap) ("openssl" ,openssl) ("pcre" ,pcre) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 9cf324ba15..355683df8a 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -355,6 +355,20 @@ characteristic of this library is that different character encoding for every regular expression object can be specified.") (license license:bsd-2))) +;; PHP < 7.3.0 requires this old version. Remove once no longer needed. +(define-public oniguruma-5 + (package + (inherit oniguruma) + (version "5.9.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/kkos/" + "oniguruma/releases/download/v" version + "/onig-" version ".tar.gz")) + (sha256 + (base32 + "19s79vsclqn170mw0ajwv7j37qsbn4f1yjz3yavnhvva6c820r6m")))))) + (define-public antiword (package (name "antiword") From 8801d7fc72995e20a9767a3c9e6b1466907ad0d0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 17:05:16 +0200 Subject: [PATCH 074/374] gnu: unbound: Update to 1.7.3. * gnu/packages/dns.scm (unbound): Update to 1.7.3. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 78479b2d32..9d728c3464 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -288,7 +288,7 @@ asynchronous fashion.") (define-public unbound (package (name "unbound") - (version "1.6.8") + (version "1.7.3") (source (origin (method url-fetch) @@ -296,7 +296,7 @@ asynchronous fashion.") version ".tar.gz")) (sha256 (base32 - "0jfxhh4gc5amhndikskz1s7da27ycn442j3l20bm992n7zijid73")))) + "0bb0p8nbda77ghx20yfl7hqxm9x709223q35465v99i8v4ay27f1")))) (build-system gnu-build-system) (outputs '("out" "python")) (native-inputs From f42846b2eae3da11ceae2ceae6a1bcee463e43ed Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 17:12:01 +0200 Subject: [PATCH 075/374] gnu: psmisc: Update to 23.1. * gnu/packages/linux.scm (psmisc): Update to 23.1. [source](uri): Use XZ-compressed tarball. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index bcd752dc2a..bd65317a98 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -537,15 +537,15 @@ at login. Local and dynamic reconfiguration are its key features.") (define-public psmisc (package (name "psmisc") - (version "22.21") + (version "23.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "0nhlm1vrrwn4a845p6y4nnnb4liq70n74zbdd5dq844jc6nkqclp")))) + "0c5s94hqpwfmyswx2f96gifa6wdbpxxpkyxcrlzbxpvmrxsd911f")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) (home-page "https://gitlab.com/psmisc/psmisc") From 9a3da9859be2c7b89c344c7aea5b682093932530 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 4 Jul 2018 22:54:09 +0530 Subject: [PATCH 076/374] gnu: Add libqmatrixclient. * gnu/packages/messaging.scm (libqmatrixclient): New variable. --- gnu/packages/messaging.scm | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index cdcd1225f2..69ed7ee88c 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2016, 2017, 2018 Clément Lassieur ;;; Copyright © 2017 Mekeor Melire -;;; Copyright © 2017 Arun Isaac +;;; Copyright © 2017, 2018 Arun Isaac ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Theodoros Foradis ;;; Copyright © 2017 Rutger Helling @@ -1644,4 +1644,30 @@ c-toxcore and ncurses. It provides audio calls, sound and desktop notifications, and Python scripting support.") (license license:gpl3+))) +(define-public libqmatrixclient + (package + (name "libqmatrixclient") + (version "0.3.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/QMatrixClient/libqmatrixclient/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0yl7lw0s2z98xkxbklkb3i8xcd9af9qayl1zxl070d8ykl6ayqy3")))) + (build-system cmake-build-system) + (inputs + `(("qt" ,qt))) + (arguments + `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON") + #:tests? #f)) ; No tests + (home-page "https://matrix.org/docs/projects/sdk/libqmatrixclient.html") + (synopsis "Qt5 client library for the Matrix instant messaging protocol") + (description "libqmatrixclient is a Qt5 library to write clients for the +Matrix instant messaging protocol. Quaternion is the reference client +implementation. Quaternion and libqmatrixclient together form the +QMatrixClient project.") + (license license:lgpl2.1+))) ;;; messaging.scm ends here From e81c952a4da21c7772f8104f4fcc44af3f403daf Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 4 Jul 2018 22:54:55 +0530 Subject: [PATCH 077/374] gnu: Add quaternion. * gnu/packages/messaging.scm (quaternion): New variable. --- gnu/packages/messaging.scm | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 69ed7ee88c..1212a06eeb 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1670,4 +1670,51 @@ Matrix instant messaging protocol. Quaternion is the reference client implementation. Quaternion and libqmatrixclient together form the QMatrixClient project.") (license license:lgpl2.1+))) + +(define-public quaternion + (package + (name "quaternion") + (version "0.0.9.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/QMatrixClient/Quaternion/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0s2mpw11s2n21ds1spf94j1p2lj2px2bv5zxldlcx81ch0rb4ng8")))) + (build-system cmake-build-system) + (inputs + `(("libqmatrixclient" ,libqmatrixclient) + ("qt" ,qt))) + (arguments + `(#:tests? #f ; No tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-libqmatrixclient-dynamic-linking + ;; Upstream recommends statically linking with + ;; libqmatrixclient. Patch the source so that we can dynamically + ;; link instead. In a future release, when upstream moves to + ;; dynamic linking, remove this phase. + (lambda _ + (substitute* "CMakeLists.txt" + (("^add_subdirectory\\(lib\\)" all) + (string-append "#" all))) + (for-each + (lambda (file) + (substitute* file + (("#include \"lib/([^\"]*)\"" all header) + (string-append "#include <" header ">")))) + (find-files "client" "\\.(cpp|h)$")) + #t))))) + (home-page "https://matrix.org/docs/projects/client/quaternion.html") + (synopsis "Graphical client for the Matrix instant messaging protocol") + (description "Quaternion is a Qt5 desktop client for the Matrix instant +messaging protocol. It uses libqmatrixclient and is its reference client +implementation. Quaternion and libqmatriclient together form the +QMatrixClient project.") + (license (list license:gpl3+ ; all source code + license:lgpl3+)))) ; icons/breeze + ;;; messaging.scm ends here From fd115bee31d04f1277560b82bb982e6aa19fc977 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 12 Jul 2018 11:23:24 -0400 Subject: [PATCH 078/374] gnu: Syncthing: Fix a crash bug. * gnu/packages/patches/syncthing-fix-crash.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/syncthing.scm (syncthing)[source]: Use it. --- gnu/local.mk | 1 + .../patches/syncthing-fix-crash.patch | 72 +++++++++++++++++++ gnu/packages/syncthing.scm | 2 + 3 files changed, 75 insertions(+) create mode 100644 gnu/packages/patches/syncthing-fix-crash.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8ec1f161ed..72a489210b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1138,6 +1138,7 @@ dist_patch_DATA = \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-format-security.patch \ + %D%/packages/patches/syncthing-fix-crash.patch \ %D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch \ %D%/packages/patches/t1lib-CVE-2010-2642.patch \ %D%/packages/patches/t1lib-CVE-2011-0764.patch \ diff --git a/gnu/packages/patches/syncthing-fix-crash.patch b/gnu/packages/patches/syncthing-fix-crash.patch new file mode 100644 index 0000000000..d27e543982 --- /dev/null +++ b/gnu/packages/patches/syncthing-fix-crash.patch @@ -0,0 +1,72 @@ +Avoid a crash: + +https://github.com/syncthing/syncthing/issues/5002 + +Patch copied from upstream source repository: + +https://github.com/syncthing/syncthing/commit/35a75a95dc6383b2d73ab645f1407f7907ec1a2c + +From 35a75a95dc6383b2d73ab645f1407f7907ec1a2c Mon Sep 17 00:00:00 2001 +From: Jakob Borg +Date: Wed, 13 Jun 2018 19:07:52 +0200 +Subject: [PATCH] lib/model: Don't panic when rechecking file (fixes #5002) + (#5003) + +--- + lib/model/model.go | 2 +- + lib/model/model_test.go | 26 ++++++++++++++++++++++++++ + 2 files changed, 27 insertions(+), 1 deletion(-) + +diff --git a/lib/model/model.go b/lib/model/model.go +index 5a9146e0..302f06c5 100644 +--- a/lib/model/model.go ++++ b/lib/model/model.go +@@ -1373,7 +1373,7 @@ func (m *Model) recheckFile(deviceID protocol.DeviceID, folderFs fs.Filesystem, + return + } + +- if blockIndex > len(cf.Blocks) { ++ if blockIndex >= len(cf.Blocks) { + l.Debugf("%v recheckFile: %s: %q / %q i=%d: block index too far", m, deviceID, folder, name, blockIndex) + return + } +diff --git a/lib/model/model_test.go b/lib/model/model_test.go +index 295eafc1..456bbc4a 100644 +--- a/lib/model/model_test.go ++++ b/lib/model/model_test.go +@@ -3608,6 +3608,32 @@ func TestIssue4903(t *testing.T) { + } + } + ++func TestIssue5002(t *testing.T) { ++ // recheckFile should not panic when given an index equal to the number of blocks ++ ++ db := db.OpenMemory() ++ m := NewModel(defaultCfgWrapper, protocol.LocalDeviceID, "syncthing", "dev", db, nil) ++ m.AddFolder(defaultFolderConfig) ++ m.StartFolder("default") ++ ++ m.ServeBackground() ++ defer m.Stop() ++ ++ if err := m.ScanFolder("default"); err != nil { ++ t.Error(err) ++ } ++ ++ file, ok := m.CurrentFolderFile("default", "foo") ++ if !ok { ++ t.Fatal("test file should exist") ++ } ++ nBlocks := len(file.Blocks) ++ ++ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks-1, []byte{1, 2, 3, 4}) ++ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks, []byte{1, 2, 3, 4}) // panic ++ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks+1, []byte{1, 2, 3, 4}) ++} ++ + func addFakeConn(m *Model, dev protocol.DeviceID) *fakeConnection { + fc := &fakeConnection{id: dev, model: m} + m.AddConnection(fc, protocol.HelloResult{}) +-- +2.18.0 + diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 14e83b5861..4c0bceedf6 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -24,6 +24,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix licenses) + #:use-module (gnu packages) #:use-module (gnu packages golang)) (define-public syncthing @@ -35,6 +36,7 @@ (uri (string-append "https://github.com/syncthing/syncthing" "/releases/download/v" version "/syncthing-source-v" version ".tar.gz")) + (patches (search-patches "syncthing-fix-crash.patch")) (sha256 (base32 "0bxkm5jlj6l4gai23bg0y31brr80r9qllh1rdg29pahjn0c2b4ml")) From e39a44f34010e4439fc3fc4925b3f26b7ca6d719 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 12 Jul 2018 14:17:08 +0200 Subject: [PATCH 079/374] import: hackage: Evaluate "-any" and "-none" version comparison operators. * guix/import/cabal.scm (eval-cabal): Modify. * tests/hackage.scm (test-cabal-4): New variable and test. (test-cabal-5): New variable and test. (test-cabal-6): New variable and test. --- guix/import/cabal.scm | 2 ++ tests/hackage.scm | 71 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm index cd0a2953c6..4cd09cac29 100644 --- a/guix/import/cabal.scm +++ b/guix/import/cabal.scm @@ -754,6 +754,8 @@ the ordering operation and the version." ((string= spec-op ">") (version>? comp-ver spec-ver)) ((string= spec-op "<=") (not (version>? comp-ver spec-ver))) ((string= spec-op "<") (not (version>=? comp-ver spec-ver))) + ((string= spec-op "-any") #t) + ((string= spec-op "-none") #f) (else (raise (condition (&message (message "Failed to evaluate 'impl' test.")))))) diff --git a/tests/hackage.scm b/tests/hackage.scm index a4de8be91e..e17851a213 100644 --- a/tests/hackage.scm +++ b/tests/hackage.scm @@ -69,6 +69,65 @@ library mtl >= 2.0 && < 3 ") +;; Check "-any", "-none" when name is different. +(define test-cabal-4 + "name: foo +version: 1.0.0 +homepage: http://test.org +synopsis: synopsis +description: description +license: BSD3 +library + if impl(ghcjs -any) + Build-depends: ghc-a + if impl(ghc>=7.2&&<7.6) + Build-depends: ghc-b + if impl(ghc == 7.8) + Build-depends: + HTTP >= 4000.2.5 && < 4000.3, + mtl >= 2.0 && < 3 +") + +;; Check "-any", "-none". +(define test-cabal-5 + "name: foo +version: 1.0.0 +homepage: http://test.org +synopsis: synopsis +description: description +license: BSD3 +library + if impl(ghc == 7.8) + Build-depends: + HTTP >= 4000.2.5 && < 4000.3, + if impl(ghc -any) + Build-depends: mtl >= 2.0 && < 3 + if impl(ghc>=7.2&&<7.6) + Build-depends: ghc-b +") + +;; Check "custom-setup". +(define test-cabal-6 + "name: foo +build-type: Custom +version: 1.0.0 +homepage: http://test.org +synopsis: synopsis +description: description +license: BSD3 +custom-setup + setup-depends: base >= 4.7 && < 5, + Cabal >= 1.24, + haskell-gi == 0.21.* +library + if impl(ghc>=7.2&&<7.6) + Build-depends: ghc-b + if impl(ghc == 7.8) + Build-depends: + HTTP >= 4000.2.5 && < 4000.3, + mtl >= 2.0 && < 3 +") + ;; A fragment of a real Cabal file with minor modification to check precedence ;; of 'and' over 'or', missing final newline, spaces between keywords and ;; parentheses and between key and column. @@ -139,6 +198,18 @@ library (eval-test-with-cabal test-cabal-3 #:cabal-environment '(("impl" . "ghc-7.8")))) +(test-assert "hackage->guix-package test 4" + (eval-test-with-cabal test-cabal-4 + #:cabal-environment '(("impl" . "ghc-7.8")))) + +(test-assert "hackage->guix-package test 5" + (eval-test-with-cabal test-cabal-5 + #:cabal-environment '(("impl" . "ghc-7.8")))) + +(test-assert "hackage->guix-package test 6" + (eval-test-with-cabal test-cabal-6 + #:cabal-environment '(("impl" . "ghc-7.8")))) + (test-assert "read-cabal test 1" (match (call-with-input-string test-read-cabal-1 read-cabal) ((("name" ("test-me")) From 161fbe4a3d2cbd056d745a075d014bdb8d7579b8 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Sun, 6 May 2018 15:27:07 +0200 Subject: [PATCH 080/374] gnu: emacs-biblio: Add emacs-dash to inputs. * gnu/packages/emacs.scm (emacs-biblio)[inputs]: Add emacs-dash. --- gnu/packages/emacs.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 6bd67dcef2..6394ab8cb8 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -8516,6 +8516,7 @@ outline-mode), so there is no such thing like an outshine mode, only (base32 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf")))) (build-system emacs-build-system) + (inputs `(("emacs-dash" ,emacs-dash))) (home-page "https://github.com/cpitclaudel/biblio.el") (synopsis "Browse and import bibliographic references") (description "This package provides an extensible Emacs package for From 814bb8166804cc3c1f0dd1f1347786a1f07bd22b Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Thu, 12 Jul 2018 20:39:41 +0200 Subject: [PATCH 081/374] gnu: emacs-helm-bibtex: Add emacs-ivy to inputs. * gnu/packages/emacs.scm (emacs-helm-bibtex)[inputs]: Add emacs-ivy. --- gnu/packages/emacs.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 6394ab8cb8..9238151cff 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -8551,7 +8551,8 @@ automatically fetched from well-curated sources, and formatted as BibTeX.") ("emacs-s" ,emacs-s) ("emacs-dash" ,emacs-dash) ("emacs-f" ,emacs-f) - ("emacs-biblio" ,emacs-biblio))) + ("emacs-biblio" ,emacs-biblio) + ("emacs-ivy" ,emacs-ivy))) (home-page "https://github.com/tmalsburg/helm-bibtex") (synopsis "Bibliography manager based on Helm") (description "This package provides bibliography manager for Emacs, From 701383081a9814d21823d42978ae23ee654e0427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 23:17:37 +0200 Subject: [PATCH 082/374] services: shepherd: Support custom actions. * gnu/services/shepherd.scm ()[actions]: New field. (): New record type. (shepherd-service-file): Pass #:actions to 'make'. * doc/guix.texi (Shepherd Services): Document custom actions. --- doc/guix.texi | 59 +++++++++++++++++++++++++++++++++++++++ gnu/services/shepherd.scm | 23 ++++++++++++++- 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 8b286e9d8e..34012a357b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -21969,6 +21969,17 @@ Constructors,,, shepherd, The GNU Shepherd Manual}). They are given as G-expressions that get expanded in the Shepherd configuration file (@pxref{G-Expressions}). +@item @code{actions} (default: @code{'()}) +@cindex actions, of Shepherd services +This is a list of @code{shepherd-action} objects (see below) defining +@dfn{actions} supported by the service, in addition to the standard +@code{start} and @code{stop} actions. Actions listed here become available as +@command{herd} sub-commands: + +@example +herd @var{action} @var{service} [@var{arguments}@dots{}] +@end example + @item @code{documentation} A documentation string, as shown when running: @@ -21986,6 +21997,54 @@ This is the list of modules that must be in scope when @code{start} and @end table @end deftp +@deftp {Data Type} shepherd-action +This is the data type that defines additional actions implemented by a +Shepherd service (see above). + +@table @code +@item name +Symbol naming the action. + +@item documentation +This is a documentation string for the action. It can be viewed by running: + +@example +herd doc @var{service} action @var{action} +@end example + +@item procedure +This should be a gexp that evaluates to a procedure of at least one argument, +which is the ``running value'' of the service (@pxref{Slots of services,,, +shepherd, The GNU Shepherd Manual}). +@end table + +The following example defines an action called @code{say-hello} that kindly +greets the user: + +@example +(shepherd-action + (name 'say-hello) + (documentation "Say hi!") + (procedure #~(lambda (running . args) + (format #t "Hello, friend! arguments: ~s\n" + args) + #t))) +@end example + +Assuming this action is added to the @code{example} service, then you can do: + +@example +# herd say-hello example +Hello, friend! arguments: () +# herd say-hello example a b c +Hello, friend! arguments: ("a" "b" "c") +@end example + +This, as you can see, is a fairly sophisticated way to say hello. +@xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, for more +info on actions. +@end deftp + @defvr {Scheme Variable} shepherd-root-service-type The service type for the Shepherd ``root service''---i.e., PID@tie{}1. diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index 6ca53faa3d..4cd2249841 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -49,6 +49,12 @@ shepherd-service-auto-start? shepherd-service-modules + shepherd-action + shepherd-action? + shepherd-action-name + shepherd-action-documentation + shepherd-action-procedure + %default-modules shepherd-service-file @@ -146,11 +152,20 @@ DEFAULT is given, use it as the service's default value." (start shepherd-service-start) ;g-expression (procedure) (stop shepherd-service-stop ;g-expression (procedure) (default #~(const #f))) + (actions shepherd-service-actions ;list of + (default '())) (auto-start? shepherd-service-auto-start? ;Boolean (default #t)) (modules shepherd-service-modules ;list of module names (default %default-modules))) +(define-record-type* + shepherd-action make-shepherd-action + shepherd-action? + (name shepherd-action-name) ;symbol + (procedure shepherd-action-procedure) ;gexp + (documentation shepherd-action-documentation)) ;string + (define (shepherd-service-canonical-name service) "Return the 'canonical name' of SERVICE." (first (shepherd-service-provision service))) @@ -223,7 +238,13 @@ stored." #:requires '#$(shepherd-service-requirement service) #:respawn? '#$(shepherd-service-respawn? service) #:start #$(shepherd-service-start service) - #:stop #$(shepherd-service-stop service)))))) + #:stop #$(shepherd-service-stop service) + #:actions + (make-actions + #$@(map (match-lambda + (($ name proc doc) + #~(#$name #$doc #$proc))) + (shepherd-service-actions service)))))))) (define (shepherd-configuration-file services) "Return the shepherd configuration file for SERVICES." From 147c5aa5d4e3bd21ee4c4cae70dff8da0bcf94b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2018 23:40:57 +0200 Subject: [PATCH 083/374] services: mcron: Add 'schedule' action. Inspired by . * gnu/services/mcron.scm (shepherd-schedule-action): New procedure. (mcron-shepherd-services): Add 'actions' field. * gnu/tests/base.scm (run-mcron-test)["schedule action"]: New test. * doc/guix.texi (Scheduled Job Execution): Mention 'herd schedule'. --- doc/guix.texi | 15 +++++++++ gnu/services/herd.scm | 3 ++ gnu/services/mcron.scm | 76 ++++++++++++++++++++++++++++++++---------- gnu/tests/base.scm | 7 ++++ 4 files changed, 84 insertions(+), 17 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 34012a357b..eaec4c422b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10850,6 +10850,21 @@ gexps to introduce job definitions that are passed to mcron for more information on mcron job specifications. Below is the reference of the mcron service. +On a running system, you can use the @code{schedule} action of the service to +visualize the mcron jobs that will be executed next: + +@example +# herd schedule mcron +@end example + +@noindent +The example above lists the next five tasks that will be executed, but you can +also specify the number of tasks to display: + +@example +# herd schedule mcron 10 +@end example + @deffn {Scheme Procedure} mcron-service @var{jobs} [#:mcron @var{mcron}] Return an mcron service running @var{mcron} that schedules @var{jobs}, a list of gexps denoting mcron job specifications. diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm index d882c232cf..8c96b70731 100644 --- a/gnu/services/herd.scm +++ b/gnu/services/herd.scm @@ -45,6 +45,7 @@ live-service-requirement live-service-running + with-shepherd-action current-services unload-services unload-service @@ -168,6 +169,8 @@ return #f." (define-syntax-rule (with-shepherd-action service (action args ...) result body ...) + "Invoke ACTION on SERVICE with the given ARGS, and evaluate BODY with RESULT +bound to the action's result." (invoke-action service action (list args ...) (lambda (result) body ...))) diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm index 5bee02a587..5757bf8cf6 100644 --- a/gnu/services/mcron.scm +++ b/gnu/services/mcron.scm @@ -60,29 +60,71 @@ (define (job-file job) (scheme-file "mcron-job" job)) +(define (shepherd-schedule-action mcron files) + "Return a Shepherd action that runs MCRON with '--schedule' for the given +files." + (shepherd-action + (name 'schedule) + (documentation + "Display jobs that are going to be scheduled.") + (procedure + #~(lambda* (_ #:optional (n "5")) + ;; XXX: This is a global side effect. + (setenv "GUILE_AUTO_COMPILE" "0") + + ;; Run 'mcron' in a pipe so we can explicitly redirect its output to + ;; 'current-output-port', which at this stage is bound to the client + ;; connection. + (let ((pipe (open-pipe* OPEN_READ + #$(file-append mcron "/bin/mcron") + (string-append "--schedule=" n) + #$@files))) + (let loop () + (match (read-line pipe 'concat) + ((? eof-object?) + (catch 'system-error + (lambda () + (zero? (close-pipe pipe))) + (lambda args + ;; There's with race between the SIGCHLD handler, which + ;; could call 'waitpid' before 'close-pipe' above does. If + ;; we get ECHILD, that means we lost the race, but that's + ;; fine. + (or (= ECHILD (system-error-errno args)) + (apply throw args))))) + (line + (display line) + (loop))))))))) + (define mcron-shepherd-services (match-lambda (($ mcron ()) ;nothing to do! '()) (($ mcron jobs) - (list (shepherd-service - (provision '(mcron)) - (requirement '(user-processes)) - (modules `((srfi srfi-1) - (srfi srfi-26) - ,@%default-modules)) - (start #~(make-forkexec-constructor - (list (string-append #$mcron "/bin/mcron") - #$@(map job-file jobs)) + (let ((files (map job-file jobs))) + (list (shepherd-service + (provision '(mcron)) + (requirement '(user-processes)) + (modules `((srfi srfi-1) + (srfi srfi-26) + (ice-9 popen) ;for the 'schedule' action + (ice-9 rdelim) + (ice-9 match) + ,@%default-modules)) + (start #~(make-forkexec-constructor + (list (string-append #$mcron "/bin/mcron") #$@files) - ;; Disable auto-compilation of the job files and set a - ;; sane value for 'PATH'. - #:environment-variables - (cons* "GUILE_AUTO_COMPILE=0" - "PATH=/run/current-system/profile/bin" - (remove (cut string-prefix? "PATH=" <>) - (environ))))) - (stop #~(make-kill-destructor))))))) + ;; Disable auto-compilation of the job files and set a + ;; sane value for 'PATH'. + #:environment-variables + (cons* "GUILE_AUTO_COMPILE=0" + "PATH=/run/current-system/profile/bin" + (remove (cut string-prefix? "PATH=" <>) + (environ))))) + (stop #~(make-kill-destructor)) + + (actions + (list (shepherd-schedule-action mcron files))))))))) (define mcron-service-type (service-type (name 'mcron) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 0efb4a6e55..f27064af85 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -632,6 +632,13 @@ non-ASCII names from /tmp.") (wait-for-file "/root/witness-touch" marionette #:read '(@ (ice-9 rdelim) read-string))) + ;; Make sure the 'schedule' action is accepted. + (test-equal "schedule action" + '(#t) ;one value, #t + (marionette-eval '(with-shepherd-action 'mcron ('schedule) result + result) + marionette)) + (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) From 01bcc94c2f752be165bfe5b8b157cee6889a5bf8 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 10 Jul 2018 18:02:28 +0200 Subject: [PATCH 084/374] gnu: Add go-github-com-docker-go-connections. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm (go-github-com-docker-go-connections): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 21783f2ee6..d3694876e2 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1840,3 +1840,30 @@ deliver content") store, and deliver content. It's containe Docker Registry 2.0 and libraries to interacting with distribution components.") (license license:asl2.0)))) + +(define-public go-github-com-docker-go-connections + (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d") + (revision "0")) + (package + (name "go-github-com-docker-go-connections") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/docker/go-connections.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/docker/go-connections")) + (home-page "https://github.com/docker/go-connections") + (synopsis "Networking library for Go") + (description + "This packages provides a library to work with network connections in +the Go language. In particular it provides tools to deal with network address +translation (NAT), proxies, sockets, and transport layer security (TLS).") + (license license:asl2.0)))) From af132bcc001e3715e42fd63eb68fbefce487a170 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 10 Jul 2018 18:06:06 +0200 Subject: [PATCH 085/374] gnu: Add go-github-com-docker-machine. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm (go-github-com-docker-machine): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d3694876e2..a5e61b4365 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1867,3 +1867,30 @@ to interacting with distribution components.") the Go language. In particular it provides tools to deal with network address translation (NAT), proxies, sockets, and transport layer security (TLS).") (license license:asl2.0)))) + +(define-public go-github-com-docker-machine + (let ((commit "7b7a141da84480342357c51838be142bf183b095") + (revision "0")) + (package + (name "go-github-com-docker-machine") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/docker/machine.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/docker/machine")) + (home-page "https://github.com/docker/machine") + (synopsis "Machine management for a container-centric world") + (description + "@dfn{Machine} lets you create Docker hosts on your computer, on +hosting providers, and inside your data center. It creates servers, installs +Docker on them, then configures the Docker client to talk to them.") + (license license:asl2.0)))) From d850e7a0b7c0f35dc3ef39187e9f15c51723bd31 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 10 Jul 2018 18:06:07 +0200 Subject: [PATCH 086/374] gnu: Add go-github-com-gorhill-cronexpr. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm (go-github-com-gorhill-cronexpr): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a5e61b4365..bcd524dd2a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1894,3 +1894,31 @@ translation (NAT), proxies, sockets, and transport layer security (TLS).") hosting providers, and inside your data center. It creates servers, installs Docker on them, then configures the Docker client to talk to them.") (license license:asl2.0)))) + +(define-public go-github-com-gorhill-cronexpr + (let ((commit "f0984319b44273e83de132089ae42b1810f4933b") + (revision "0")) + (package + (name "go-github-com-gorhill-cronexpr") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gorhill/cronexpr.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/gorhill/cronexpr")) + (home-page "https://github.com/gorhill/cronexpr") + (synopsis "Cron expression parser in the Go language") + (description + "This package provides a cron expression parser in the Go language. +Given a cron expression and a time stamp, you can get the next time stamp +which satisfies the cron expression.") + (license (list license:gpl3+ + license:asl2.0))))) From abd47216b70d6590322a75e6d6f7e85639c82077 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 10 Jul 2018 18:06:08 +0200 Subject: [PATCH 087/374] gnu: Add go-gopkg-in-check-v1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm (go-gopkg-in-check-v1): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index bcd524dd2a..9393d39d51 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1922,3 +1922,28 @@ Given a cron expression and a time stamp, you can get the next time stamp which satisfies the cron expression.") (license (list license:gpl3+ license:asl2.0))))) + +(define-public go-gopkg-in-check-v1 + (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec") + (revision "0")) + (package + (name "go-gopkg-in-check-v1") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-check/check") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np")))) + (build-system go-build-system) + (arguments + '(#:import-path "gopkg.in/check.v1")) + (home-page "https://gopkg.in/check.v1") + (synopsis "Test framework for the Go language") + (description + "This package provides a test library for the Go language.") + (license license:asl2.0)))) From d2c5e91278f2589e13390ee29630e593fbf41d22 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 10 Jul 2018 18:06:09 +0200 Subject: [PATCH 088/374] gnu: Add go-gopkg-in-yaml-v2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm (go-gopkg-in-yaml-v2): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9393d39d51..92ce504c52 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1947,3 +1947,31 @@ which satisfies the cron expression.") (description "This package provides a test library for the Go language.") (license license:asl2.0)))) + +(define-public go-gopkg-in-yaml-v2 + (let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2") + (revision "0")) + (package + (name "go-gopkg-in-yaml-v2") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gopkg.in/yaml.v2.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah")))) + (build-system go-build-system) + (arguments + '(#:import-path "gopkg.in/yaml.v2")) + (native-inputs + `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1))) + (home-page "https://gopkg.in/yaml.v2") + (synopsis "YAML reader and writer for the Go language") + (description + "This package provides a Go library for encode and decode YAML +values.") + (license license:asl2.0)))) From 105a3625789a697409917141337ebb38173e3d15 Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Wed, 11 Jul 2018 01:34:41 +0200 Subject: [PATCH 089/374] gnu: moka-icon-theme: Update to 5.4.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnome.scm (moka-icon-theme): Update to 5.4.0. Signed-off-by: Ludovic Courtès --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 19a216aa2a..04c25a2eed 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6508,7 +6508,7 @@ Moka") (package (inherit faba-icon-theme) (name "moka-icon-theme") - (version "5.3.6") + (version "5.4.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/moka-project" @@ -6517,7 +6517,7 @@ Moka") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "04axinv79qnngsxkwqzi5j9lc3hn24rjqps5ai8d42pdnfaf0x37")))) + "1nbwdjj268hxv9lfagd9aylily9f0hhallp841v0i3imljp84bmk")))) (propagated-inputs ;; Moka is based on Faba by using it as a fallback icon set instead of ;; bundling it, so we need to add it as a propagated input. From 2eee7ee3ec6ca1c7d5bae0e288ae51f27ef7cc7e Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Wed, 11 Jul 2018 01:26:26 +0200 Subject: [PATCH 090/374] gnu: faba-icon-theme: Update to 4.3. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnome.scm (faba-icon-theme) Update to 4.3. Signed-off-by: Ludovic Courtès --- gnu/packages/gnome.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 04c25a2eed..90270146fd 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -30,6 +30,7 @@ ;;; Copyright © 2017 Brendan Tildesley ;;; Copyright © 2017, 2018 Rutger Helling ;;; Copyright © 2018 Jovany Leandro G.C +;;; Copyright © 2018 Vasile Dumitrascu ;;; ;;; This file is part of GNU Guix. ;;; @@ -6467,7 +6468,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (define-public faba-icon-theme (package (name "faba-icon-theme") - (version "4.1.2") + (version "4.3") (source (origin (method url-fetch) @@ -6476,7 +6477,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0hi2dl627ayfnihn3v6x9xzid668m4hp098hb7hrkxvahh4h9by7")))) + "18ln06xl60qzvzz61zq9q72hdbfgjsza3flph8i2asyzx3dffz68")))) (build-system gnu-build-system) (arguments '(#:phases From f6a9b345a739e7512b218bd5c7783779d9c66dd2 Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Wed, 11 Jul 2018 01:27:32 +0200 Subject: [PATCH 091/374] gnu: faba-icon-theme: Switch to meson-build-system. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnome.scm (faba-icon-theme): [build-system]: Switch to meson-build-system. Signed-off-by: Ludovic Courtès --- gnu/packages/gnome.scm | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 90270146fd..206b52a5c0 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6478,22 +6478,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (sha256 (base32 "18ln06xl60qzvzz61zq9q72hdbfgjsza3flph8i2asyzx3dffz68")))) - (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-makefile.am - (lambda _ - (substitute* '("Makefile.am") - (("\\$\\(DESTDIR\\)/usr/share") - "$(datadir)")) - #t)) - (add-after 'unpack 'disable-configure-during-bootstrap - (lambda _ - ;; Do not run configure as part of autogen.sh because references - ;; to /bin are not fixed yet. - (setenv "NOCONFIGURE" "y") - #t))))) + (build-system meson-build-system) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) From 9866825961cbffa6a05f685d9cc71388d21a0a68 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen Date: Thu, 12 Jul 2018 17:08:48 +0200 Subject: [PATCH 092/374] gnu: emacs-biblio: Add missing dependencies. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-biblio)[propagated-inputs]: Add emacs-seq, emacs-dash and emacs-let-alist. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9238151cff..11cd244deb 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -35,6 +35,7 @@ ;;; Copyright © 2018 Sohom Bhattacharjee ;;; Copyright © 2018 Mathieu Lirzin ;;; Copyright © 2018 Pierre Neidhardt +;;; Copyright © 2018 Tim Gesthuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -8516,7 +8517,10 @@ outline-mode), so there is no such thing like an outshine mode, only (base32 "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf")))) (build-system emacs-build-system) - (inputs `(("emacs-dash" ,emacs-dash))) + (propagated-inputs + `(("emacs-seq" ,emacs-seq) + ("emacs-dash" ,emacs-dash) + ("emacs-let-alist" ,emacs-let-alist))) (home-page "https://github.com/cpitclaudel/biblio.el") (synopsis "Browse and import bibliographic references") (description "This package provides an extensible Emacs package for From 7519dc95c7628ceeb5ed616604e8c432723a0a50 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 12 Jul 2018 19:54:48 +0200 Subject: [PATCH 093/374] gnu: xapian: Fix notmuch test failure. * gnu/packages/patches/xapian-revert-5489fb2f8.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/search.scm (xapian)[source](patches): Use it. --- gnu/local.mk | 1 + .../patches/xapian-revert-5489fb2f8.patch | 23 +++++++++++++++++++ gnu/packages/search.scm | 1 + 3 files changed, 25 insertions(+) create mode 100644 gnu/packages/patches/xapian-revert-5489fb2f8.patch diff --git a/gnu/local.mk b/gnu/local.mk index 72a489210b..c33bf38494 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1214,6 +1214,7 @@ dist_patch_DATA = \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \ %D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \ %D%/packages/patches/x265-fix-ppc64le-build.patch \ + %D%/packages/patches/xapian-revert-5489fb2f8.patch \ %D%/packages/patches/xboing-CVE-2004-0149.patch \ %D%/packages/patches/xdotool-fix-makefile.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ diff --git a/gnu/packages/patches/xapian-revert-5489fb2f8.patch b/gnu/packages/patches/xapian-revert-5489fb2f8.patch new file mode 100644 index 0000000000..7b78e2abb5 --- /dev/null +++ b/gnu/packages/patches/xapian-revert-5489fb2f8.patch @@ -0,0 +1,23 @@ +Revert this upstream commit which breaks a test case in "notmuch": + +https://git.xapian.org/?p=xapian;a=commitdiff;h=5489fb2f838c0f0b0a593b4c17df282a93a1fe5a + +See the notmuch FAQ entry: + +https://notmuchmail.org/faq/#index12h2 + +This should be fixed for later releases. + +diff --git a/backends/glass/glass_postlist.cc b/xapian-core/backends/glass/glass_postlist.cc +index 80e578b85..a47f14a68 100644 +--- a/backends/glass/glass_postlist.cc ++++ b/backends/glass/glass_postlist.cc +@@ -759,7 +759,7 @@ GlassPostList::open_nearby_postlist(const std::string & term_, + (void)need_pos; + if (term_.empty()) + RETURN(NULL); +- if (!this_db.get() || this_db->postlist_table.is_modified()) ++ if (!this_db.get() || this_db->postlist_table.is_writable()) + RETURN(NULL); + RETURN(new GlassPostList(this_db, term_, cursor->clone())); + } diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index a728f0a314..386092b358 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -52,6 +52,7 @@ (method url-fetch) (uri (string-append "https://oligarchy.co.uk/xapian/" version "/xapian-core-" version ".tar.xz")) + (patches (search-patches "xapian-revert-5489fb2f8.patch")) (sha256 (base32 "166qpfq7pvyrj2w2x07v31ypvqg6c2xyvds5sms9h4g2sg0z23hy")))) (build-system gnu-build-system) From b11844034d772f3eba71664f77aebbb69a353790 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 12 Jul 2018 10:33:21 -0400 Subject: [PATCH 094/374] gnu: curl: Update replacement to 7.61.0 [fixes CVE-2018-0500]. * gnu/packages/curl.scm (curl)[replacement]: Update to 7.61.0. (curl-7.60.0): Replace with ... (curl-7.61.0): ... new variable. --- gnu/packages/curl.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 65bc698389..e724fd147b 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -51,7 +51,7 @@ (package (name "curl") (version "7.59.0") - (replacement curl-7.60.0) + (replacement curl-7.61.0) (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" @@ -141,10 +141,10 @@ tunneling, and so on.") "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) -(define-public curl-7.60.0 +(define-public curl-7.61.0 (package (inherit curl) - (version "7.60.0") + (version "7.61.0") (source (origin (method url-fetch) @@ -152,7 +152,7 @@ tunneling, and so on.") version ".tar.xz")) (sha256 (base32 - "1876ck0smbqz3xakm7s6q6gh4zarh9pv3izf4vlzgpc9xn6zydl7")))))) + "080p9r2kln8cbfj0rqfn6wqp5kdn9k5wp720nirkcw845lcmavpg")))))) (define-public kurly (package From 202befb4ae775cfdab1566f4a69ec184406a56be Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 4 Jul 2018 23:35:39 +0530 Subject: [PATCH 095/374] etc: snippets: Add new build systems to package snippet. * etc/snippets/scheme-mode/guix-package: Add android-ndk-build-system and scons-build-system as possibilities for the build-system field. --- etc/snippets/scheme-mode/guix-package | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/etc/snippets/scheme-mode/guix-package b/etc/snippets/scheme-mode/guix-package index d392e82093..48b87e3599 100644 --- a/etc/snippets/scheme-mode/guix-package +++ b/etc/snippets/scheme-mode/guix-package @@ -7,7 +7,8 @@ (name "$1") (version "$2") (source origin...$0) - (build-system ${3:$$(yas-choose-value "ant-build-system" + (build-system ${3:$$(yas-choose-value "android-ndk-build-system" + "ant-build-system" "asdf-build-system" "cargo-build-system" "cmake-build-system" @@ -25,6 +26,7 @@ "python-build-system" "r-build-system" "ruby-build-system" + "scons-build-system" "texlive-build-system" "trivial-build-system" "waf-build-system")}) From 9286c2950494b110e12d58d4ebd693d614120afe Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 5 Jul 2018 17:12:43 +0530 Subject: [PATCH 096/374] etc: snippets: Add guix-commit-message-use-https-home-page. * etc/snippets/text-mode/guix-commit-message-use-https-home-page: New file. * doc/contributing.texi (The Perfect Setup): Document new snippet. --- doc/contributing.texi | 3 ++- .../text-mode/guix-commit-message-use-https-home-page | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 etc/snippets/text-mode/guix-commit-message-use-https-home-page diff --git a/doc/contributing.texi b/doc/contributing.texi index 8feb519b0a..68d8e7e2fb 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -212,7 +212,8 @@ The commit message snippets depend on @url{https://magit.vc/, Magit} to display staged files. When editing a commit message type @code{add} followed by @kbd{TAB} to insert a commit message template for adding a package; type @code{update} followed by @kbd{TAB} to insert a template -for updating a package. +for updating a package; type @code{https} followed by @kbd{TAB} to +insert a template for changing the home page URI of a package to HTTPS. The main snippet for @code{scheme-mode} is triggered by typing @code{package...} followed by @kbd{TAB}. This snippet also inserts the diff --git a/etc/snippets/text-mode/guix-commit-message-use-https-home-page b/etc/snippets/text-mode/guix-commit-message-use-https-home-page new file mode 100644 index 0000000000..df20d31a80 --- /dev/null +++ b/etc/snippets/text-mode/guix-commit-message-use-https-home-page @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: guix-commit-message-use-https-home-page +# key: https +# condition: git-commit-mode +# -- +gnu: $1: Use HTTPS home page URI. + +* `(car (magit-staged-files))` ($1)[home-page]: Use HTTPS URI. +`(mapconcat (lambda (file) (concat "* " file)) (cdr (magit-staged-files)) "\n")` \ No newline at end of file From d4b8fa5d3a81238f7d484a3685258d6b234d169a Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 13 Jul 2018 14:13:59 +0200 Subject: [PATCH 097/374] gnu: hunspell-dict-fr: Update to 6.2. * gnu/packages/libreoffice.scm (dicollecte-french-dictionary): Update to 6.2. --- gnu/packages/libreoffice.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 33ecdc47f0..dc13be19d2 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -754,7 +754,7 @@ word compounding or character encoding.") (name (match variant ("classique" "hunspell-dict-fr") (_ (string-append "hunspell-dict-fr-" variant)))) - (version "6.1") + (version "6.2") (source (origin (uri (string-append "http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v" @@ -762,7 +762,7 @@ word compounding or character encoding.") (method url-fetch) (sha256 (base32 - "0w2hzh36wj3lsj2yd4mh7z7547dg452sywj79vnzx27csclwqshc")))) + "139hfrn5p87sl8hqmgkf6sgvnxrk2mm8vd8xsm8sm98qjnwlg0f9")))) (build-system trivial-build-system) (native-inputs `(("unzip" ,unzip))) (arguments From e3ebfe6ca0dbf7b82169c9333dc31935e8c36226 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 13 Jul 2018 14:59:54 +0200 Subject: [PATCH 098/374] gnu: bind: Update to 9.12.2. * gnu/packages/dns.scm (bind): Update to 9.12.2. * gnu/packages/patches/bind-CVE-2018-5738.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/dns.scm | 5 +- gnu/packages/patches/bind-CVE-2018-5738.patch | 100 ------------------ 3 files changed, 2 insertions(+), 104 deletions(-) delete mode 100644 gnu/packages/patches/bind-CVE-2018-5738.patch diff --git a/gnu/local.mk b/gnu/local.mk index 979c3b4b93..9e875263ac 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -584,7 +584,6 @@ dist_patch_DATA = \ %D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/beignet-correct-file-names.patch \ - %D%/packages/patches/bind-CVE-2018-5738.patch \ %D%/packages/patches/binutils-aarch64-symbol-relocation.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/blast+-fix-makefile.patch \ diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 9d728c3464..086012e88e 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -99,16 +99,15 @@ and BOOTP/TFTP for network booting of diskless machines.") (define-public isc-bind (package (name "bind") - (version "9.12.1-P2") + (version "9.12.2") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.isc.org/isc/bind9/" version "/" name "-" version ".tar.gz")) - (patches (search-patches "bind-CVE-2018-5738.patch")) (sha256 (base32 - "0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd")))) + "0ll46igs9xfq2qclc5wzqsnj3zv7ssga0544gm24s1m7765lqslz")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs diff --git a/gnu/packages/patches/bind-CVE-2018-5738.patch b/gnu/packages/patches/bind-CVE-2018-5738.patch deleted file mode 100644 index ddef014651..0000000000 --- a/gnu/packages/patches/bind-CVE-2018-5738.patch +++ /dev/null @@ -1,100 +0,0 @@ -Fix CVE-2018-5738: - -https://kb.isc.org/article/AA-01616/0/CVE-2018-5738 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5738 - -diff --git a/bin/named/server.c b/bin/named/server.c -index f63554e..847c4ff 100644 ---- a/bin/named/server.c -+++ b/bin/named/server.c -@@ -3725,10 +3725,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, - CHECKM(named_config_getport(config, &port), "port"); - dns_view_setdstport(view, port); - -- CHECK(configure_view_acl(vconfig, config, named_g_config, -- "allow-query", NULL, actx, -- named_g_mctx, &view->queryacl)); -- - /* - * Make the list of response policy zone names for a view that - * is used for real lookups and so cares about hints. -@@ -4692,21 +4688,35 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, - "allow-query-cache-on", NULL, actx, - named_g_mctx, &view->cacheonacl)); - /* -- * Set "allow-query-cache", "allow-recursion", and -- * "allow-recursion-on" acls if configured in named.conf. -- * (Ignore the global defaults for now, because these ACLs -- * can inherit from each other when only some of them set at -- * the options/view level.) -+ * Set the "allow-query", "allow-query-cache", "allow-recursion", -+ * and "allow-recursion-on" ACLs if configured in named.conf, but -+ * NOT from the global defaults. This is done by leaving the third -+ * argument to configure_view_acl() NULL. -+ * -+ * We ignore the global defaults here because these ACLs -+ * can inherit from each other. If any are still unset after -+ * applying the inheritance rules, we'll look up the defaults at -+ * that time. - */ -- CHECK(configure_view_acl(vconfig, config, NULL, "allow-query-cache", -- NULL, actx, named_g_mctx, &view->cacheacl)); -+ -+ /* named.conf only */ -+ CHECK(configure_view_acl(vconfig, config, NULL, -+ "allow-query", NULL, actx, -+ named_g_mctx, &view->queryacl)); -+ -+ /* named.conf only */ -+ CHECK(configure_view_acl(vconfig, config, NULL, -+ "allow-query-cache", NULL, actx, -+ named_g_mctx, &view->cacheacl)); - - if (strcmp(view->name, "_bind") != 0 && - view->rdclass != dns_rdataclass_chaos) - { -+ /* named.conf only */ - CHECK(configure_view_acl(vconfig, config, NULL, - "allow-recursion", NULL, actx, - named_g_mctx, &view->recursionacl)); -+ /* named.conf only */ - CHECK(configure_view_acl(vconfig, config, NULL, - "allow-recursion-on", NULL, actx, - named_g_mctx, &view->recursiononacl)); -@@ -4744,18 +4754,21 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, - * the global config. - */ - if (view->recursionacl == NULL) { -+ /* global default only */ - CHECK(configure_view_acl(NULL, NULL, named_g_config, - "allow-recursion", NULL, - actx, named_g_mctx, - &view->recursionacl)); - } - if (view->recursiononacl == NULL) { -+ /* global default only */ - CHECK(configure_view_acl(NULL, NULL, named_g_config, - "allow-recursion-on", NULL, - actx, named_g_mctx, - &view->recursiononacl)); - } - if (view->cacheacl == NULL) { -+ /* global default only */ - CHECK(configure_view_acl(NULL, NULL, named_g_config, - "allow-query-cache", NULL, - actx, named_g_mctx, -@@ -4769,6 +4782,14 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, - CHECK(dns_acl_none(mctx, &view->cacheacl)); - } - -+ if (view->queryacl == NULL) { -+ /* global default only */ -+ CHECK(configure_view_acl(NULL, NULL, named_g_config, -+ "allow-query", NULL, -+ actx, named_g_mctx, -+ &view->queryacl)); -+ } -+ - /* - * Ignore case when compressing responses to the specified - * clients. This causes case not always to be preserved, From e29067d22e89743b9d2c7a68987d7b892a3d304a Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 13 Jul 2018 14:24:27 +0200 Subject: [PATCH 099/374] import: hackage: Fix typo. * guix/import/cabal.scm (cabal-custom-setuo-name): Rename to... (cabal-custom-setup-name): ...this. --- guix/import/cabal.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm index 4cd09cac29..4b2bfd4a25 100644 --- a/guix/import/cabal.scm +++ b/guix/import/cabal.scm @@ -686,7 +686,7 @@ If #f use the function 'port-filename' to obtain it." (define-record-type (make-cabal-custom-setup name dependencies) cabal-custom-setup? - (name cabal-custom-setuo-name) + (name cabal-custom-setup-name) (dependencies cabal-custom-setup-dependencies)) ; list of (define (cabal-flags->alist flag-list) From ffc3fcade3f7d2c7d26b2fe5245902e6407f9c93 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sun, 8 Jul 2018 13:15:41 +0300 Subject: [PATCH 100/374] git: Call 'url-cache-directory' outside 'update-cached-checkout'. * guix/git.scm (update-cached-checkout): Call 'url-cache-directory' in 'cache-directory' key argument. (latest-repository-commit): Call 'url-cache-directory'. --- guix/git.scm | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/guix/git.scm b/guix/git.scm index 9e89cc0062..193e2df111 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -114,7 +114,8 @@ OID (roughly the commit hash) corresponding to REF." #:key (ref '(branch . "origin/master")) (cache-directory - (%repository-cache-directory))) + (url-cache-directory + url (%repository-cache-directory)))) "Update the cached checkout of URL to REF in CACHE-DIRECTORY. Return two values: the cache directory name, and the SHA1 commit (a string) corresponding to REF. @@ -122,11 +123,10 @@ to REF. REF is pair whose key is [branch | commit | tag] and value the associated data, respectively [ | | ]." (with-libgit2 - (let* ((cache-dir (url-cache-directory url cache-directory)) - (cache-exists? (openable-repository? cache-dir)) + (let* ((cache-exists? (openable-repository? cache-directory)) (repository (if cache-exists? - (repository-open cache-dir) - (clone* url cache-dir)))) + (repository-open cache-directory) + (clone* url cache-directory)))) ;; Only fetch remote if it has not been cloned just before. (when cache-exists? (remote-fetch (remote-lookup repository "origin"))) @@ -138,7 +138,7 @@ data, respectively [ | | ]." 'repository-close!) (repository-close! repository)) - (values cache-dir (oid->string oid)))))) + (values cache-directory (oid->string oid)))))) (define* (latest-repository-commit store url #:key @@ -157,12 +157,14 @@ Git repositories are kept in the cache directory specified by (and (string=? (basename file) ".git") (eq? 'directory (stat:type stat)))) - (let*-values (((checkout commit) - (update-cached-checkout url - #:ref ref - #:cache-directory cache-directory)) - ((name) - (url+commit->name url commit))) + (let*-values + (((checkout commit) + (update-cached-checkout url + #:ref ref + #:cache-directory + (url-cache-directory url cache-directory))) + ((name) + (url+commit->name url commit))) (values (add-to-store store name #t "sha256" checkout #:select? (negate dot-git?)) commit))) From 0bc2d3e42b8800e875f24973f999739297f1f502 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Tue, 10 Jul 2018 17:53:02 +0300 Subject: [PATCH 101/374] gnu: Add ddclient. * gnu/packages/dns.scm (ddclient): New variable. --- gnu/packages/dns.scm | 92 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 91 insertions(+), 1 deletion(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 086012e88e..ffa442f4d6 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 Vasile Dumitrascu ;;; Copyright © 2017 Gregor Giesen +;;; Copyright © 2018 Oleg Pykhalov ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,7 +30,9 @@ #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages databases) + #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages datastructures) #:use-module (gnu packages flex) @@ -55,7 +58,8 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial)) (define-public dnsmasq (package @@ -575,3 +579,89 @@ synthesis, and on-the-fly re-configuration.") license:lgpl2.0+ ; parts of scr/contrib/ucw license:public-domain ; src/contrib/fnv and possibly murmurhash3 license:gpl3+)))) ; everything else + +(define-public ddclient + (package + (name "ddclient") + (version "3.8.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/ddclient/ddclient/ddclient-" + version "/ddclient-" version ".tar.gz")) + (sha256 + (base32 + "1j8zdn7fy7i0bjk3jf0hxnbnshc2yf054vxq64imxdpfd7n5zgfy")))) + (build-system trivial-build-system) ; no Makefile.PL + (native-inputs + `(("bash" ,bash) + ("gzip" ,gzip) + ("perl" ,perl) + ("tar" ,tar))) + (inputs + `(("net-tools" ,net-tools) + ("inetutils" ,inetutils) ;logger + ("perl-io-socket-ssl" ,perl-io-socket-ssl) + ("perl-digest-sha1" ,perl-digest-sha1))) + (arguments + `(#:modules ((guix build utils) + (ice-9 match) + (srfi srfi-26)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match) + (srfi srfi-26)) + ;; bootstrap + (setenv "PATH" (string-append + (assoc-ref %build-inputs "bash") "/bin" ":" + (assoc-ref %build-inputs "tar") "/bin" ":" + (assoc-ref %build-inputs "gzip") "/bin" ":" + (assoc-ref %build-inputs "perl") "/bin")) + ;; extract source + (invoke "tar" "xvf" (assoc-ref %build-inputs "source")) + ;; package + (with-directory-excursion (string-append ,name "-" ,version) + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/bin"))) + (let ((file "ddclient")) + (substitute* file + (("/usr/bin/perl") (which "perl")) + ;; Strictly use ‘/etc/ddclient/ddclient.conf’. + (("\\$\\{program\\}\\.conf") "/etc/ddclient/ddclient.conf") + (("\\$etc\\$program.conf") "/etc/ddclient/ddclient.conf") + ;; Strictly use ‘/var/cache/ddclient/ddclient.cache’ + (("\\$cachedir\\$program\\.cache") + "/var/cache/ddclient/ddclient.cache")) + (install-file file bin) + (wrap-program (string-append bin "/" file) + `("PATH" ":" = + ("$PATH" + ,@(map (lambda (input) + (match input + ((name . store) + (string-append store "/bin")))) + %build-inputs))) + `("PERL5LIB" ":" = + ,(delete + "" + (map (match-lambda + (((? (cut string-prefix? "perl-" <>) name) . dir) + (string-append dir "/lib/perl5/site_perl")) + (_ "")) + %build-inputs))))) + (for-each (cut install-file <> (string-append out + "/share/ddclient")) + (find-files "." "sample.*$"))))))) + (home-page "https://sourceforge.net/projects/ddclient/") + (synopsis "Address updating utility for dynamic DNS services") + (description "This package provides a client to update dynamic IP +addresses with several dynamic DNS service providers, such as +@uref{https://www.dyndns.com/account/login.html,DynDNS.com}. + +This makes it possible to use a fixed hostname (such as myhost.dyndns.org) to +access a machine with a dynamic IP address. + +The client supports both dynamic and (near) static services, as well as MX +record and alternative name management. It caches the address, and only +attempts the update when it has changed.") + (license license:gpl2+))) From bc6e291ef0b3c71c07e50d88d7764e5dd334e8b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 13 Jul 2018 14:33:11 +0200 Subject: [PATCH 102/374] guix package: Use relative symlinks to generations. Reported by Roel Janssen at . * guix/profiles.scm (switch-to-generation): Use (basename generation) as the symlink target. * guix/scripts/package.scm (build-and-use-profile): Likewise, use (basename name) as the symlink target. * tests/guix-package.sh: Adjust --roll-back test accordingly. Add explicitly test with '-p foo/prof'. --- guix/profiles.scm | 2 +- guix/scripts/package.scm | 2 +- tests/guix-package.sh | 12 +++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index d2a794b187..f34f4fcff6 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1521,7 +1521,7 @@ the generation that was current before switching." (profile profile) (generation number))))) (else - (switch-symlinks profile generation) + (switch-symlinks profile (basename generation)) current)))) (define (switch-to-previous-generation profile) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 29829f52c8..b38a55d01c 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -190,7 +190,7 @@ do not treat collisions in MANIFEST as an error." (let* ((entries (manifest-entries manifest)) (count (length entries))) (switch-symlinks name prof) - (switch-symlinks profile name) + (switch-symlinks profile (basename name)) (unless (string=? profile %current-profile) (register-gc-root store name)) (format #t (N_ "~a package in profile~%" diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 3b3fa35cd8..cef3b3452e 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -185,6 +185,16 @@ grep -E 'emacs[[:blank:]]+42\.5\.9rc7[[:blank:]]+.*-emacs-42.5.9rc7' \ rm "$emacs_tarball" "$tmpfile" rmdir "$module_dir" +# Profiles with a relative file name. Make sure we don't create dangling +# symlinks--see bug report at +# . +mkdir -p "$module_dir/foo" +( cd "$module_dir" ; \ + guix package --bootstrap -i guile-bootstrap -p foo/prof ) +test -f "$module_dir/foo/prof/bin/guile" +rm "$module_dir/foo"/* +rmdir "$module_dir/foo" +rmdir "$module_dir" # # Try with the default profile. @@ -215,7 +225,7 @@ do guix package --bootstrap --roll-back ! test -f "$HOME/.guix-profile/bin" ! test -f "$HOME/.guix-profile/lib" - test "`readlink "$default_profile"`" = "$default_profile-0-link" + test "`readlink "$default_profile"`" = "`basename $default_profile-0-link`" done # Check whether '-p ~/.guix-profile' makes any difference. From 2ca299caf64489f4e1e665ec1158fb0309b0b565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 10 Jul 2018 14:18:36 +0200 Subject: [PATCH 103/374] Add (guix inferior) and (guix scripts repl). * guix/inferior.scm, guix/scripts/repl.scm, tests/inferior.scm: New files. * Makefile.am (MODULES): Add 'guix/scripts/repl.scm' and 'guix/inferior.scm'. (SCM_TESTS): Add 'tests/inferior.scm'. * doc/guix.texi (Invoking guix repl): New node. --- Makefile.am | 3 + doc/guix.texi | 53 +++++++++++ guix/inferior.scm | 197 +++++++++++++++++++++++++++++++++++++++++ guix/scripts/repl.scm | 199 ++++++++++++++++++++++++++++++++++++++++++ tests/inferior.scm | 69 +++++++++++++++ 5 files changed, 521 insertions(+) create mode 100644 guix/inferior.scm create mode 100644 guix/scripts/repl.scm create mode 100644 tests/inferior.scm diff --git a/Makefile.am b/Makefile.am index 618d1653e4..134ab0f142 100644 --- a/Makefile.am +++ b/Makefile.am @@ -85,6 +85,7 @@ MODULES = \ guix/nar.scm \ guix/derivations.scm \ guix/grafts.scm \ + guix/inferior.scm \ guix/gnu-maintenance.scm \ guix/self.scm \ guix/upstream.scm \ @@ -200,6 +201,7 @@ MODULES = \ guix/scripts/substitute.scm \ guix/scripts/authenticate.scm \ guix/scripts/refresh.scm \ + guix/scripts/repl.scm \ guix/scripts/system.scm \ guix/scripts/system/search.scm \ guix/scripts/lint.scm \ @@ -357,6 +359,7 @@ SCM_TESTS = \ tests/profiles.scm \ tests/search-paths.scm \ tests/syscalls.scm \ + tests/inferior.scm \ tests/gremlin.scm \ tests/bournish.scm \ tests/lint.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index eaec4c422b..7a5ddefd4e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -166,6 +166,7 @@ Programming Interface * Derivations:: Low-level interface to package derivations. * The Store Monad:: Purely functional interface to the store. * G-Expressions:: Manipulating build expressions. +* Invoking guix repl:: Fiddling with Guix interactively. Defining Packages @@ -3267,6 +3268,7 @@ package definitions. * Derivations:: Low-level interface to package derivations. * The Store Monad:: Purely functional interface to the store. * G-Expressions:: Manipulating build expressions. +* Invoking guix repl:: Fiddling with Guix interactively. @end menu @node Defining Packages @@ -5544,6 +5546,57 @@ corresponding to @var{obj} for @var{system}, cross-compiling for has an associated gexp compiler, such as a @code{}. @end deffn +@node Invoking guix repl +@section Invoking @command{guix repl} + +@cindex REPL, read-eval-print loop +The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop} +(REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, +GNU Guile Reference Manual}). Compared to just launching the @command{guile} +command, @command{guix repl} guarantees that all the Guix modules and all its +dependencies are available in the search path. You can use it this way: + +@example +$ guix repl +scheme@@(guile-user)> ,use (gnu packages base) +scheme@@(guile-user)> coreutils +$1 = # +@end example + +@cindex inferiors +In addition, @command{guix repl} implements a simple machine-readable REPL +protocol for use by @code{(guix inferior)}, a facility to interact with +@dfn{inferiors}, separate processes running a potentially different revision +of Guix. + +The available options are as follows: + +@table @code +@item --type=@var{type} +@itemx -t @var{type} +Start a REPL of the given @var{TYPE}, which can be one of the following: + +@table @code +@item guile +This is default, and it spawns a standard full-featured Guile REPL. +@item machine +Spawn a REPL that uses the machine-readable protocol. This is the protocol +that the @code{(guix inferior)} module speaks. +@end table + +@item --listen=@var{endpoint} +By default, @command{guix repl} reads from standard input and writes to +standard output. When this option is passed, it will instead listen for +connections on @var{endpoint}. Here are examples of valid options: + +@table @code +@item --listen=tcp:37146 +Accept connections on localhost on port 37146. + +@item --listen=unix:/tmp/socket +Accept connections on the Unix-domain socket @file{/tmp/socket}. +@end table +@end table @c ********************************************************************* @node Utilities diff --git a/guix/inferior.scm b/guix/inferior.scm new file mode 100644 index 0000000000..629c2c4313 --- /dev/null +++ b/guix/inferior.scm @@ -0,0 +1,197 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; 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 . + +(define-module (guix inferior) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-9 gnu) + #:use-module (ice-9 match) + #:use-module (ice-9 popen) + #:export (inferior? + open-inferior + close-inferior + inferior-eval + inferior-object? + + inferior-package? + inferior-package-name + inferior-package-version + + inferior-packages + inferior-package-synopsis + inferior-package-description)) + +;;; Commentary: +;;; +;;; This module provides a way to spawn Guix "inferior" processes and to talk +;;; to them. It allows us, from one instance of Guix, to interact with +;;; another instance of Guix coming from a different commit. +;;; +;;; Code: + +;; Inferior Guix process. +(define-record-type + (inferior pid socket version) + inferior? + (pid inferior-pid) + (socket inferior-socket) + (version inferior-version)) ;REPL protocol version + +(define (inferior-pipe directory command) + "Return an input/output pipe on the Guix instance in DIRECTORY. This runs +'DIRECTORY/COMMAND repl' if it exists, or falls back to some other method if +it's an old Guix." + (let ((pipe (with-error-to-port (%make-void-port "w") + (lambda () + (open-pipe* OPEN_BOTH + (string-append directory "/" command) + "repl" "-t" "machine"))))) + (if (eof-object? (peek-char pipe)) + (begin + (close-pipe pipe) + + ;; Older versions of Guix didn't have a 'guix repl' command, so + ;; emulate it. + (open-pipe* OPEN_BOTH "guile" + "-L" (string-append directory "/share/guile/site/" + (effective-version)) + "-C" (string-append directory "/share/guile/site/" + (effective-version)) + "-C" (string-append directory "/lib/guile/" + (effective-version) "/site-ccache") + "-c" + (object->string + `(begin + (primitive-load ,(search-path %load-path + "guix/scripts/repl.scm")) + ((@ (guix scripts repl) machine-repl)))))) + pipe))) + +(define* (open-inferior directory #:key (command "bin/guix")) + "Open the inferior Guix in DIRECTORY, running 'DIRECTORY/COMMAND repl' or +equivalent. Return #f if the inferior could not be launched." + (define pipe + (inferior-pipe directory command)) + + (setvbuf pipe _IOLBF) + (match (read pipe) + (('repl-version 0 rest ...) + (let ((result (inferior 'pipe pipe (cons 0 rest)))) + (inferior-eval '(use-modules (guix)) result) + (inferior-eval '(use-modules (gnu)) result) + (inferior-eval '(define %package-table (make-hash-table)) + result) + result)) + (_ + #f))) + +(define (close-inferior inferior) + "Close INFERIOR." + (close-pipe (inferior-socket inferior))) + +;; Non-self-quoting object of the inferior. +(define-record-type + (inferior-object address appearance) + inferior-object? + (address inferior-object-address) + (appearance inferior-object-appearance)) + +(define (write-inferior-object object port) + (match object + (($ _ appearance) + (format port "#" appearance)))) + +(set-record-type-printer! write-inferior-object) + +(define (inferior-eval exp inferior) + "Evaluate EXP in INFERIOR." + (define sexp->object + (match-lambda + (('value value) + value) + (('non-self-quoting address string) + (inferior-object address string)))) + + (write exp (inferior-socket inferior)) + (newline (inferior-socket inferior)) + (match (read (inferior-socket inferior)) + (('values objects ...) + (apply values (map sexp->object objects))) + (('exception key objects ...) + (apply throw key (map sexp->object objects))))) + + +;;; +;;; Inferior packages. +;;; + +(define-record-type + (inferior-package inferior name version id) + inferior-package? + (inferior inferior-package-inferior) + (name inferior-package-name) + (version inferior-package-version) + (id inferior-package-id)) + +(define (write-inferior-package package port) + (match package + (($ _ name version) + (format port "#" + name version + (number->string (object-address package) 16))))) + +(set-record-type-printer! write-inferior-package) + +(define (inferior-packages inferior) + "Return the list of packages known to INFERIOR." + (let ((result (inferior-eval + '(fold-packages (lambda (package result) + (let ((id (object-address package))) + (hashv-set! %package-table id package) + (cons (list (package-name package) + (package-version package) + id) + result))) + '()) + inferior))) + (map (match-lambda + ((name version id) + (inferior-package inferior name version id))) + result))) + +(define (inferior-package-field package getter) + "Return the field of PACKAGE, an inferior package, accessed with GETTER." + (let ((inferior (inferior-package-inferior package)) + (id (inferior-package-id package))) + (inferior-eval `(,getter (hashv-ref %package-table ,id)) + inferior))) + +(define* (inferior-package-synopsis package #:key (translate? #t)) + "Return the Texinfo synopsis of PACKAGE, an inferior package. When +TRANSLATE? is true, translate it to the current locale's language." + (inferior-package-field package + (if translate? + '(compose (@ (guix ui) P_) package-synopsis) + 'package-synopsis))) + +(define* (inferior-package-description package #:key (translate? #t)) + "Return the Texinfo description of PACKAGE, an inferior package. When +TRANSLATE? is true, translate it to the current locale's language." + (inferior-package-field package + (if translate? + '(compose (@ (guix ui) P_) package-description) + 'package-description))) diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm new file mode 100644 index 0000000000..b157833a49 --- /dev/null +++ b/guix/scripts/repl.scm @@ -0,0 +1,199 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; 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 . + +(define-module (guix scripts repl) + #:use-module (guix ui) + #:use-module (guix scripts) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-37) + #:use-module (ice-9 match) + #:use-module (rnrs bytevectors) + #:autoload (system repl repl) (start-repl) + #:autoload (system repl server) + (make-tcp-server-socket make-unix-domain-server-socket) + #:export (machine-repl + guix-repl)) + +;;; Commentary: +;;; +;;; This command provides a Guile REPL + +(define %default-options + `((type . guile))) + +(define %options + (list (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix repl"))) + (option '(#\t "type") #t #f + (lambda (opt name arg result) + (alist-cons 'type (string->symbol arg) result))) + (option '("listen") #t #f + (lambda (opt name arg result) + (alist-cons 'listen arg result))))) + + +(define (show-help) + (display (G_ "Usage: guix repl [OPTIONS...] +Start a Guile REPL in the Guix execution environment.\n")) + (display (G_ " + -t, --type=TYPE start a REPL of the given TYPE")) + (newline) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define (self-quoting? x) + "Return #t if X is self-quoting." + (letrec-syntax ((one-of (syntax-rules () + ((_) #f) + ((_ pred rest ...) + (or (pred x) + (one-of rest ...)))))) + (one-of symbol? string? pair? null? vector? + bytevector? number? boolean?))) + +(define user-module + ;; Module where we execute user code. + (let ((module (resolve-module '(guix-user) #f #f #:ensure #t))) + (beautify-user-module! module) + module)) + +(define* (machine-repl #:optional + (input (current-input-port)) + (output (current-output-port))) + "Run a machine-usable REPL over ports INPUT and OUTPUT. + +The protocol of this REPL is meant to be machine-readable and provides proper +support to represent multiple-value returns, exceptions, objects that lack a +read syntax, and so on. As such it is more convenient and robust than parsing +Guile's REPL prompt." + (define (value->sexp value) + (if (self-quoting? value) + `(value ,value) + `(non-self-quoting ,(object-address value) + ,(object->string value)))) + + (write `(repl-version 0 0) output) + (newline output) + (force-output output) + + (let loop () + (match (read input) + ((? eof-object?) #t) + (exp + (catch #t + (lambda () + (let ((results (call-with-values + (lambda () + + (primitive-eval exp)) + list))) + (write `(values ,@(map value->sexp results)) + output) + (newline output) + (force-output output))) + (lambda (key . args) + (write `(exception ,key ,@(map value->sexp args))) + (newline output) + (force-output output))) + (loop))))) + +(define (call-with-connection spec thunk) + "Dynamically-bind the current input and output ports according to SPEC and +call THUNK." + (if (not spec) + (thunk) + + ;; Note: the "PROTO:" prefix in SPEC is here so that we can eventually + ;; parse things like "fd:123" in a non-ambiguous way. + (match (string-index spec #\:) + (#f + (leave (G_ "~A: invalid listen specification~%") spec)) + (index + (let ((protocol (string-take spec index)) + (address (string-drop spec (+ index 1)))) + (define socket + (match protocol + ("tcp" + (make-tcp-server-socket #:port (string->number address))) + ("unix" + (make-unix-domain-server-socket #:path address)) + (_ + (leave (G_ "~A: unsupported protocol family~%") + protocol)))) + + (listen socket 10) + (let loop () + (match (accept socket) + ((connection . address) + (if (= AF_UNIX (sockaddr:fam address)) + (info (G_ "accepted connection~%")) + (info (G_ "accepted connection from ~a~%") + (inet-ntop (sockaddr:fam address) + (sockaddr:addr address)))) + (dynamic-wind + (const #t) + (lambda () + (parameterize ((current-input-port connection) + (current-output-port connection)) + (thunk))) + (lambda () + (false-if-exception (close-port connection)) + (info (G_ "connection closed~%")))))) + (loop))))))) + + +(define (guix-repl . args) + (define opts + ;; Return the list of package names. + (args-fold* args %options + (lambda (opt name arg result) + (leave (G_ "~A: unrecognized option~%") name)) + (lambda (arg result) + (leave (G_ "~A: extraneous argument~%") arg)) + %default-options)) + + (with-error-handling + (let ((type (assoc-ref opts 'type))) + (call-with-connection (assoc-ref opts 'listen) + (lambda () + (case type + ((guile) + (save-module-excursion + (lambda () + (set-current-module user-module) + (start-repl)))) + ((machine) + (machine-repl)) + (else + (leave (G_ "~a: unknown type of REPL~%") type)))))))) + +;; Local Variables: +;; eval: (put 'call-with-connection 'scheme-indent-function 1) +;; End: diff --git a/tests/inferior.scm b/tests/inferior.scm new file mode 100644 index 0000000000..5e0f8ae66e --- /dev/null +++ b/tests/inferior.scm @@ -0,0 +1,69 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; 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 . + +(define-module (test-inferior) + #:use-module (guix inferior) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-64)) + +(define %top-srcdir + (dirname (search-path %load-path "guix.scm"))) + +(define %top-builddir + (dirname (search-path %load-compiled-path "guix.go"))) + + +(test-begin "inferior") + +(test-equal "open-inferior" + '(42 #t) + (let ((inferior (open-inferior %top-builddir + #:command "scripts/guix"))) + (and (inferior? inferior) + (let ((a (inferior-eval '(apply * '(6 7)) inferior)) + (b (inferior-eval '(@ (gnu packages base) coreutils) + inferior))) + (close-inferior inferior) + (list a (inferior-object? b)))))) + +(test-equal "inferior-packages" + (take (sort (fold-packages (lambda (package lst) + (alist-cons (package-name package) + (package-version package) + lst)) + '()) + (lambda (x y) + (string Date: Tue, 10 Jul 2018 16:06:32 +0200 Subject: [PATCH 104/374] pull: Use (guix inferior) to display new and upgraded packages. * guix/scripts/pull.scm (display-profile-content): Call 'display-generation'. (display-new/upgraded-packages, display-profile-content-diff): New procedures. (process-query)[list-generation]: Remove. [list-generations]: New procedure. Adjust accordingly. * doc/guix.texi (Invoking guix pull): Update example of '-l'. --- doc/guix.texi | 6 +++ guix/scripts/pull.scm | 109 +++++++++++++++++++++++++++++++++++++----- 2 files changed, 104 insertions(+), 11 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7a5ddefd4e..c759ccb119 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2786,12 +2786,18 @@ Generation 2 Jun 11 2018 11:02:49 repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d + 2 new packages: keepalived, libnfnetlink + 6 packages upgraded: emacs-nix-mode@@2.0.4, + guile2.0-guix@@0.14.0-12.77a1aac, guix@@0.14.0-12.77a1aac, + heimdal@@7.5.0, milkytracker@@1.02.00, nix@@2.0.4 Generation 3 Jun 13 2018 23:31:07 (current) guix 844cc1c repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: 844cc1c8f394f03b404c5bb3aee086922373490c + 28 new packages: emacs-helm-ls-git, emacs-helm-mu, @dots{} + 69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{} @end example This @code{~/.config/guix/current} profile works like any other profile diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 7202e3cc16..aa77434334 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -28,7 +28,9 @@ #:use-module (guix profiles) #:use-module (guix gexp) #:use-module (guix grafts) + #:use-module (guix memoization) #:use-module (guix monads) + #:autoload (guix inferior) (open-inferior) #:use-module (guix scripts build) #:autoload (guix self) (whole-package) #:autoload (gnu packages ssh) (guile-ssh) @@ -45,9 +47,11 @@ #:use-module ((gnu packages certs) #:select (le-certs)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-35) #:use-module (srfi srfi-37) #:use-module (ice-9 match) + #:use-module (ice-9 vlist) #:export (guix-pull)) (module-autoload! (resolve-module '(guix scripts pull)) @@ -289,6 +293,7 @@ certificates~%")) (define (display-profile-content profile number) "Display the packages in PROFILE, generation NUMBER, in a human-readable way and displaying details about the channel's source code." + (display-generation profile number) (for-each (lambda (entry) (format #t " ~a ~a~%" (manifest-entry-name entry) @@ -310,6 +315,85 @@ way and displaying details about the channel's source code." (manifest-entries (profile-manifest (generation-file-name profile number)))))) +(define (indented-string str indent) + "Return STR with each newline preceded by IDENT spaces." + (define indent-string + (make-list indent #\space)) + + (list->string + (string-fold-right (lambda (chr result) + (if (eqv? chr #\newline) + (cons chr (append indent-string result)) + (cons chr result))) + '() + str))) + +(define profile-package-alist + (mlambda (profile) + "Return a name/version alist representing the packages in PROFILE." + (fold (lambda (package lst) + (alist-cons (inferior-package-name package) + (inferior-package-version package) + lst)) + '() + (let* ((inferior (open-inferior profile)) + (packages (inferior-packages inferior))) + (close-inferior inferior) + packages)))) + +(define (display-new/upgraded-packages alist1 alist2) + "Given the two package name/version alists ALIST1 and ALIST2, display the +list of new and upgraded packages going from ALIST1 to ALIST2." + (let* ((old (fold (match-lambda* + (((name . version) table) + (vhash-cons name version table))) + vlist-null + alist1)) + (new (remove (match-lambda + ((name . _) + (vhash-assoc name old))) + alist2)) + (upgraded (filter-map (match-lambda + ((name . new-version) + (match (vhash-fold* cons '() name old) + (() #f) + ((= (cut sort <> version>?) old-versions) + (and (version>? new-version + (first old-versions)) + (string-append name "@" + new-version)))))) + alist2))) + (match (length new) + (0 #t) + (count + (format #t (N_ " ~h new package: ~a~%" + " ~h new packages: ~a~%" count) + count + (indented-string + (fill-paragraph (string-join (sort (map first new) string (match-lambda (() (exit 1)) ((numbers ...) - (for-each (lambda (generation) - (list-generation display-profile-content generation)) - numbers))))))))) + (list-generations profile numbers))))))))) (define (guix-pull . args) From bca302c67af6969584e60bd1604ea196ecc48c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 13 Jul 2018 16:59:15 +0200 Subject: [PATCH 105/374] pull: Display new/upgraded packages upon completion. * guix/scripts/pull.scm (display-profile-news): New procedure. (build-and-install): Call it. (display-new/upgraded-packages): Add #:heading and honor it. --- guix/scripts/pull.scm | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index aa77434334..433502b5de 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -33,6 +33,7 @@ #:autoload (guix inferior) (open-inferior) #:use-module (guix scripts build) #:autoload (guix self) (whole-package) + #:use-module (gnu packages) #:autoload (gnu packages ssh) (guile-ssh) #:autoload (gnu packages tls) (gnutls) #:use-module ((guix scripts package) #:select (build-and-use-profile)) @@ -234,12 +235,32 @@ URL, BRANCH, and COMMIT as a property in the manifest entry." (branch ,branch) (commit ,commit)))))))))) +(define (display-profile-news profile) + "Display what's up in PROFILE--new packages, and all that." + (match (memv (generation-number profile) + (reverse (profile-generations profile))) + ((current previous _ ...) + (newline) + (let ((old (fold-packages (lambda (package result) + (alist-cons (package-name package) + (package-version package) + result)) + '())) + (new (profile-package-alist + (generation-file-name profile current)))) + (display-new/upgraded-packages old new + #:heading (G_ "New in this revision:\n")))) + (_ #t))) + (define* (build-and-install source config-dir #:key verbose? url branch commit) "Build the tool from SOURCE, and install it in CONFIG-DIR." (define update-profile (store-lift build-and-use-profile)) + (define profile + (string-append config-dir "/current")) + (mlet* %store-monad ((drv (build-from-source source #:commit commit #:verbose? verbose?)) @@ -247,8 +268,9 @@ URL, BRANCH, and COMMIT as a property in the manifest entry." #:url url #:branch branch #:commit commit))) - (update-profile (string-append config-dir "/current") - (manifest (list entry))))) + (mbegin %store-monad + (update-profile profile (manifest (list entry))) + (return (display-profile-news profile))))) (define (honor-lets-encrypt-certificates! store) "Tell Guile-Git to use the Let's Encrypt certificates." @@ -341,9 +363,11 @@ way and displaying details about the channel's source code." (close-inferior inferior) packages)))) -(define (display-new/upgraded-packages alist1 alist2) +(define* (display-new/upgraded-packages alist1 alist2 + #:key (heading "")) "Given the two package name/version alists ALIST1 and ALIST2, display the -list of new and upgraded packages going from ALIST1 to ALIST2." +list of new and upgraded packages going from ALIST1 to ALIST2. When ALIST1 +and ALIST2 differ, display HEADING upfront." (let* ((old (fold (match-lambda* (((name . version) table) (vhash-cons name version table))) @@ -363,6 +387,9 @@ list of new and upgraded packages going from ALIST1 to ALIST2." (string-append name "@" new-version)))))) alist2))) + (unless (and (null? new) (null? upgraded)) + (display heading)) + (match (length new) (0 #t) (count From f6c8771463de215dedae268a45d2faa64f222a59 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Sun, 8 Jul 2018 20:39:24 +0300 Subject: [PATCH 106/374] gnu: Add cppzmq. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/networking.scm (cppzmq): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/networking.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index b72a4734d7..ebf0e86f12 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -22,6 +22,7 @@ ;;; Copyright © 2018 Fis Trivial ;;; Copyright © 2018 Tonton ;;; Copyright © 2018 Clément Lassieur +;;; Copyright © 2018 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; @@ -315,6 +316,35 @@ more.") between different versions of ØMQ.") (license license:mpl2.0))) +(define-public cppzmq + (let ((revision "0") + (commit "d9f0f016c07046742738c65e1eb84722ae32d7d4")) + (package + (name "cppzmq") + (version (string-append "4.2.2-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zeromq/cppzmq") + (commit commit))) + (sha256 + (base32 + "1gmqlm00y6xpa5m6d4ajq3ww63n2w7h4sy997wj81vcqmqx45b1f")) + (file-name (string-append name "-" version "-checkout")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ; No tests. + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("zeromq" ,zeromq))) + (home-page "http://zeromq.org") + (synopsis "C++ bindings for the ØMQ messaging library") + (description + "This package provides header-only C++ bindings for ØMQ. The header +files contain direct mappings of the abstractions provided by the ØMQ C API.") + (license license:expat)))) + (define-public librdkafka (package (name "librdkafka") From a811bca28908a42b65cf5af0dd3a0801effaa620 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Sun, 8 Jul 2018 20:39:25 +0300 Subject: [PATCH 107/374] gnu: Add miniupnpc-monero. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/upnp.scm (monero-miniupnpc): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/upnp.scm | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index 475e1750a8..24b17111e9 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014 Sree Harsha Totakura ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,7 +23,9 @@ #:use-module (gnu packages) #:use-module (gnu packages python) #:use-module (guix build-system gnu) + #:use-module (guix utils) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix licenses) #:use-module (guix packages)) @@ -76,6 +79,49 @@ over IRC, instant messaging, network games, and most server software.") (license (x11-style "file://LICENSE" "See 'LICENSE' file in the distribution")))) +(define-public monero-miniupnpc + ;; This package is the bundled version of miniupnpc used with monero. + ;; Monero-project has been maintaining its own version of the package since + ;; release 0.12.2.0. It includes security fixes not included in upstream + ;; releases. + (let ((revision "0") + (commit "6a63f9954959119568fbc4af57d7b491b9428d87")) + (package + (inherit miniupnpc) + (name "miniupnpc-monero") + (version (string-append "2.1-monero-0.12.3.0-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/monero-project/miniupnp/") + (commit commit))) + (sha256 + (base32 + "0s67zcz978iapjlq30yy9dl8qda9xhrl3jdi5f99cnbglh5gy16a")) + (file-name (string-append name "-" version "-checkout")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete miniupnp subprojects except for miniupnpc. + (for-each + delete-file-recursively + '("minissdpd" "miniupnpc-async" "miniupnpc-libevent" + "miniupnpd" )) + #t)))) + (arguments + (substitute-keyword-arguments (package-arguments miniupnpc) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'build 'change-directory + (lambda _ + (chdir "miniupnpc") + #t)) + (add-after 'change-directory 'chmod-header-file + (lambda _ + (chmod "miniupnpc.h" #o644) + #t))))))))) + (define-public libupnp (package (name "libupnp") From 34aff57c8223d5ff07d4cf74dbcaccebaab439a7 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 13 Jul 2018 18:36:57 +0200 Subject: [PATCH 108/374] gnu: antlr3: Fix compilation. * gnu/packages/java.scm (antlr3)[arguments]: Fix 'generate-grammar' phase. --- gnu/packages/java.scm | 2 -- 1 file changed, 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 8d4a29267a..a7d5c9f445 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6164,8 +6164,6 @@ StringTemplate also powers ANTLR.") (substitute* "ANTLRv3Parser.java" (("public Object getTree") "public CommonTree getTree")) (chdir "../../../../../java") - (invoke "antlr" "-o" "org/antlr/tool" - "org/antlr/tool/serialize.g") (substitute* "org/antlr/tool/LeftRecursiveRuleAnalyzer.java" (("import org.antlr.grammar.v3.\\*;") "import org.antlr.grammar.v3.*; import org.antlr.grammar.v3.ANTLRTreePrinter;")) From 00c86a888488b16ce30634d3a3a9d871ed6734a2 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Fri, 13 Jul 2018 19:42:33 +0200 Subject: [PATCH 109/374] gnu: mes: Update to 0.16.1. * gnu/packages/mes.scm (mes): Update to 0.16.1. --- gnu/packages/mes.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 52464e28d4..8bde7b1525 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -25,8 +25,10 @@ #:use-module (gnu packages cross-base) #:use-module (gnu packages gcc) #:use-module (gnu packages guile) + #:use-module (gnu packages man) #:use-module (gnu packages package-management) #:use-module (gnu packages perl) + #:use-module (gnu packages texinfo) #:use-module (guix build-system gnu) #:use-module (guix download) #:use-module (guix git-download) @@ -73,7 +75,7 @@ extensive examples, including parsers for the Javascript and C99 languages.") (let ((triplet "i686-unknown-linux-gnu")) (package (name "mes") - (version "0.16") + (version "0.16.1") (source (origin (method url-fetch) (uri (string-append "https://gitlab.com/janneke/mes" @@ -81,7 +83,7 @@ extensive examples, including parsers for the Javascript and C99 languages.") "/mes-" version ".tar.gz")) (sha256 (base32 - "0c4vz1qw767af5h615055hh8zjwwmwf5mwkb64l0l921zaa9hg2n")))) + "0qghlbx2qn674q8vckxpzsd0p845kclg457bw6r25jpmslgm0bz2")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (propagated-inputs @@ -96,7 +98,9 @@ extensive examples, including parsers for the Javascript and C99 languages.") `(("i686-linux-binutils" ,(cross-binutils triplet)) ("i686-linux-gcc" ,(cross-gcc triplet))) '()) - ("perl" ,perl))) ;build-aux/gitlog-to-changelog + ("help2man" ,help2man) + ("perl" ,perl) ;build-aux/gitlog-to-changelog + ("texinfo" ,texinfo))) (arguments `(#:phases (modify-phases %standard-phases From 82da291abe3ce898d42abb199160d0a40c297a37 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 13 Jul 2018 19:49:53 +0200 Subject: [PATCH 110/374] gnu: faba-icon-theme: Fix build. * gnu/packages/gnome.scm (faba-icon-theme)[arguments]: Disable running gtk-update-icon-cache after installation. --- gnu/packages/gnome.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index dffebe92eb..a571d922cb 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6488,6 +6488,13 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (base32 "18ln06xl60qzvzz61zq9q72hdbfgjsza3flph8i2asyzx3dffz68")))) (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'disable-post-install + (lambda _ + (substitute* "meson.build" + (("meson.add_install_script.*") ""))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) From 92bcccc51fd52571fb62166e787109a07185e329 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 13 Jul 2018 15:53:25 -0400 Subject: [PATCH 111/374] tests: Don't rely on temporary directories being permanent. * tests/gexp.scm ("gexp->script #:module-path", "program-file #:module-path"): Use run-with-store. --- tests/gexp.scm | 56 ++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/tests/gexp.scm b/tests/gexp.scm index 83fe811546..391a0f8be5 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -948,7 +948,7 @@ (return (and (zero? (close-pipe pipe)) (= (expt n 2) (string->number str))))))) -(test-assertm "gexp->script #:module-path" +(test-assert "gexp->script #:module-path" (call-with-temporary-directory (lambda (directory) (define str @@ -961,23 +961,24 @@ (define-public %fake! ,str)) port))) - (mlet* %store-monad ((exp -> (with-imported-modules '((guix base32)) - (gexp (begin - (use-modules (guix base32)) - (write (list %load-path - %fake!)))))) - (drv (gexp->script "guile-thing" exp - #:guile %bootstrap-guile - #:module-path (list directory))) - (out -> (derivation->output-path drv)) - (done (built-derivations (list drv)))) - (let* ((pipe (open-input-pipe out)) - (data (read pipe))) - (return (and (zero? (close-pipe pipe)) - (match data - ((load-path str*) - (and (string=? str* str) - (not (member directory load-path)))))))))))) + (run-with-store %store + (mlet* %store-monad ((exp -> (with-imported-modules '((guix base32)) + (gexp (begin + (use-modules (guix base32)) + (write (list %load-path + %fake!)))))) + (drv (gexp->script "guile-thing" exp + #:guile %bootstrap-guile + #:module-path (list directory))) + (out -> (derivation->output-path drv)) + (done (built-derivations (list drv)))) + (let* ((pipe (open-input-pipe out)) + (data (read pipe))) + (return (and (zero? (close-pipe pipe)) + (match data + ((load-path str*) + (and (string=? str* str) + (not (member directory load-path))))))))))))) (test-assertm "program-file" (let* ((n (random (expt 2 50))) @@ -996,7 +997,7 @@ (return (and (zero? (close-pipe pipe)) (= n (string->number str))))))))) -(test-assertm "program-file #:module-path" +(test-assert "program-file #:module-path" (call-with-temporary-directory (lambda (directory) (define text (random-text)) @@ -1014,14 +1015,15 @@ (file (program-file "program" exp #:guile %bootstrap-guile #:module-path (list directory)))) - (mlet* %store-monad ((drv (lower-object file)) - (out -> (derivation->output-path drv))) - (mbegin %store-monad - (built-derivations (list drv)) - (let* ((pipe (open-input-pipe out)) - (str (get-string-all pipe))) - (return (and (zero? (close-pipe pipe)) - (string=? text str)))))))))) + (run-with-store %store + (mlet* %store-monad ((drv (lower-object file)) + (out -> (derivation->output-path drv))) + (mbegin %store-monad + (built-derivations (list drv)) + (let* ((pipe (open-input-pipe out)) + (str (get-string-all pipe))) + (return (and (zero? (close-pipe pipe)) + (string=? text str))))))))))) (test-assertm "program-file & with-extensions" (let* ((exp (with-extensions (list %extension-package) From 27f7cbc91d1963118e44b14d04fcc669c9618176 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 11 Jul 2018 20:24:29 -0400 Subject: [PATCH 112/374] utils: Really clean up temporary directories. Fixes . * guix/utils.scm (call-with-temporary-directory): Use DELETE-FILE-RECURSIVELY instead of RMDIR. --- guix/utils.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/guix/utils.scm b/guix/utils.scm index f934b6ed13..200bb69e03 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -33,10 +33,11 @@ #:use-module (srfi srfi-35) #:use-module (srfi srfi-39) #:use-module (ice-9 binary-ports) + #:use-module (ice-9 ftw) #:autoload (rnrs io ports) (make-custom-binary-input-port) #:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!)) #:use-module (guix memoization) - #:use-module ((guix build utils) #:select (dump-port mkdir-p)) + #:use-module ((guix build utils) #:select (dump-port mkdir-p delete-file-recursively)) #:use-module ((guix build syscalls) #:select (mkdtemp! fdatasync)) #:use-module (ice-9 format) #:autoload (ice-9 popen) (open-pipe*) @@ -631,7 +632,7 @@ delete it when leaving the dynamic extent of this call." (lambda () (proc tmp-dir)) (lambda () - (false-if-exception (rmdir tmp-dir)))))) + (false-if-exception (delete-file-recursively tmp-dir)))))) (define (with-atomic-file-output file proc) "Call PROC with an output port for the file that is going to replace FILE. From a49eb85c34116dcc776a5b37ad890f0845e7f6ba Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 13 Jul 2018 09:35:27 -0400 Subject: [PATCH 113/374] gnu: Add inchi. * gnu/packages/chemistry.scm (inchi): New variable. --- gnu/packages/chemistry.scm | 81 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index f1359b2cf6..1a5086d622 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Konrad Hinsen +;;; Copyright © 2018 Kei Kebreau ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,9 +21,11 @@ #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) + #:use-module (gnu packages compression) #:use-module (gnu packages gv) #:use-module (gnu packages maths) #:use-module (gnu packages python) + #:use-module (guix build-system gnu) #:use-module (guix build-system python)) (define-public domainfinder @@ -54,6 +57,84 @@ single structure. The software is currently not actively maintained and works only with Python 2 and NumPy < 1.9.") (license license:cecill-c))) +(define-public inchi + (package + (name "inchi") + (version "1.05") + (source (origin + (method url-fetch) + (uri (string-append "http://www.inchi-trust.org/download/" + (string-join (string-split version #\.) "") + "/INCHI-1-SRC.zip")) + (sha256 + (base32 + "081pcjx1z5jm23fs1pl2r3bccia0ww8wfkzcjpb7byhn7b513hsa")) + (file-name (string-append name "-" version ".zip")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-before 'build 'chdir-to-build-directory + (lambda _ (chdir "INCHI_EXE/inchi-1/gcc") #t)) + (add-after 'build 'build-library + (lambda _ + (chdir "../../../INCHI_API/libinchi/gcc") + (invoke "make"))) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (doc (string-append out "/share/doc/inchi")) + (include-dir (string-append out "/include/inchi")) + (lib (string-append out "/lib/inchi")) + (inchi-doc (assoc-ref inputs "inchi-doc")) + (unzip (string-append (assoc-ref inputs "unzip") + "/bin/unzip"))) + (chdir "../../..") + ;; Install binary. + (with-directory-excursion "INCHI_EXE/bin/Linux" + (rename-file "inchi-1" "inchi") + (install-file "inchi" bin)) + ;; Install libraries. + (with-directory-excursion "INCHI_API/bin/Linux" + (for-each (lambda (file) + (install-file file lib)) + (find-files "." "libinchi\\.so\\.1\\.*"))) + ;; Install header files. + (with-directory-excursion "INCHI_BASE/src" + (for-each (lambda (file) + (install-file file include-dir)) + (find-files "." "\\.h$"))) + ;; Install documentation. + (mkdir-p doc) + (invoke unzip "-j" "-d" doc inchi-doc) + #t)))))) + (native-inputs + `(("unzip" ,unzip) + ("inchi-doc" + ,(origin + (method url-fetch) + (uri (string-append "http://www.inchi-trust.org/download/" + (string-join (string-split version #\.) "") + "/INCHI-1-DOC.zip")) + (sha256 + (base32 + "1id1qb2y4lwsiw91qr2yqpn6kxbwjwhjk0hb2rwk4fxhdqib6da6")) + (file-name (string-append name "-" version ".zip")))))) + (home-page "https://www.inchi-trust.org") + (synopsis "Utility for manipulating machine-readable chemical structures") + (description + "The @dfn{InChI} (IUPAC International Chemical Identifier) algorithm turns +chemical structures into machine-readable strings of information. InChIs are +unique to the compound they describe and can encode absolute stereochemistry +making chemicals and chemistry machine-readable and discoverable. A simple +analogy is that InChI is the bar-code for chemistry and chemical structures.") + (license (license:non-copyleft + "file://LICENCE" + "See LICENCE in the distribution.")))) + (define with-numpy-1.8 (package-input-rewriting `((,python2-numpy . ,python2-numpy-1.8)))) From df74221a22e90f9a69fb5e3c289865de99b91332 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 14 Jul 2018 01:42:20 -0400 Subject: [PATCH 114/374] gnu: linux-libre@4.4: Update to 4.4.140. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.140. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index f0dc71a283..68de4a4fd8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -427,8 +427,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.139" - "0x58ykgx7vbv23q763ydifi548mz39nal7wbvrrl4i9ndk7pzfzz" + (make-linux-libre "4.4.140" + "10h4k2c2ncnc1h61kikqb618dh9lp8fmzagz2ydykrdbb5jjiy82" %intel-compatible-systems #:configuration-file kernel-config)) From 16e2bb5cd5bc705d2bffd68d11cc46e6e9238759 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 14 Jul 2018 01:43:11 -0400 Subject: [PATCH 115/374] gnu: linux-libre@4.9: Update to 4.9.112. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.112. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 68de4a4fd8..ca3a66ac98 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -421,8 +421,8 @@ 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.111" - "0ld57627k6mjp14x5bvndakj6lc4l31zp2yq74h7ski2g3k7ppk2" + (make-linux-libre "4.9.112" + "1zrnbvzr7z5ky79r6hpjvn15bxmwcyi8lr7yq2nx1r8ladl8lnb0" %intel-compatible-systems #:configuration-file kernel-config)) From be9bab86547f101af2aace62e133db43d70c907d Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 14 Jul 2018 01:44:01 -0400 Subject: [PATCH 116/374] gnu: linux-libre@4.14: Update to 4.14.55. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.55. (%linux-libre-4.14-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index ca3a66ac98..26a3dbeeab 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -411,8 +411,8 @@ It has been modified to remove all non-free binary blobs.") %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.54") -(define %linux-libre-4.14-hash "027138z7p5ld1zyrxq1xjc7x3b7wbgikh7gn2xfvwm9gn8qpazki") +(define %linux-libre-4.14-version "4.14.55") +(define %linux-libre-4.14-hash "1rlapfwkjfmyk4ahvqwqap4w9flbw2zag0r04fwrmyqz1y5ijayf") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version From f3c9a5d2d452cdc7a035149cda1edf9bae7fee94 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 14 Jul 2018 01:44:54 -0400 Subject: [PATCH 117/374] gnu: linux-libre: Update to 4.17.6. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.17.6. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 26a3dbeeab..2ce0f56b84 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -402,8 +402,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.17.5") -(define %linux-libre-hash "0pldqw7f4nhziw3r73l339d79aijxhy6anf1ryiy3makip6gkib1") +(define %linux-libre-version "4.17.6") +(define %linux-libre-hash "0d48r5jpj71ikdalz5z756snwq54cpnwnba8bbhg8r2ri3770wcm") (define-public linux-libre (make-linux-libre %linux-libre-version From daf823ad27d2db8a392c269cfe7940ad8cb1f4c1 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 14 Jul 2018 13:18:24 +0200 Subject: [PATCH 118/374] gnu: services: Export virtlog-configuration. * gnu/services/virtualization.scm (virtlog-configuration): Export. --- gnu/services/virtualization.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index bf71e7f26a..705ed84d06 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm @@ -37,6 +37,7 @@ #:export (libvirt-configuration libvirt-service-type + virtlog-configuration virtlog-service-type %qemu-platforms From 5908818e309280b124b64f5320e4b98210093061 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sun, 15 Jul 2018 00:43:57 +1000 Subject: [PATCH 119/374] gnu: python-h5py: Update to 2.8.0. * gnu/packages/python.scm (python-h5py): Update to 2.8.0. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0fdc53bdca..d350990c67 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -782,14 +782,14 @@ NetCDF files can also be read and modified. Python-HDF4 is a fork of (define-public python-h5py (package (name "python-h5py") - (version "2.7.0") + (version "2.8.0") (source (origin (method url-fetch) (uri (pypi-uri "h5py" version)) (sha256 (base32 - "0433sdv6xc9p7v1xs1gvbxp7p152ywi3nplgjb258q9fvw9469br")))) + "0mdr6wrq02ac93m1aqx9kad0ppfzmm4imlxqgyy1x4l7hmdcc9p6")))) (build-system python-build-system) (arguments `(#:tests? #f ; no test target From f52ddd6236d5a7a7373eee2e4d764172cac9877d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 14 Jul 2018 22:09:56 +0300 Subject: [PATCH 120/374] gnu: gnu-pw-mgr: Update to 2.3.3. * gnu/packages/gnu-pw-mgr.scm (gnu-pw-mgr): Update to 2.3.3. --- gnu/packages/gnu-pw-mgr.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnu-pw-mgr.scm b/gnu/packages/gnu-pw-mgr.scm index 0d16bf5f0b..38f9e8187a 100644 --- a/gnu/packages/gnu-pw-mgr.scm +++ b/gnu/packages/gnu-pw-mgr.scm @@ -30,7 +30,7 @@ (define-public gnu-pw-mgr (package (name "gnu-pw-mgr") - (version "2.3.2") + (version "2.3.3") (source (origin (method url-fetch) @@ -38,7 +38,7 @@ version ".tar.xz")) (sha256 (base32 - "0x60g0syqpd107l8w4bl213imy2lspm4kz1j18yr1sh10rdxlgxd")))) + "04xh38j7l0sfnb01kp05xc908pvqfc0lph94k7n9bi46zy3qy7ma")))) (build-system gnu-build-system) (arguments '(#:phases From 5743ba497922d8278929f1accf8e8aff5cc9ea28 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 14 Jul 2018 22:51:14 +0300 Subject: [PATCH 121/374] gnu: debootstrap: Update to 1.0.106. * gnu/packages/debian.scm (debootstrap): Update to 1.0.106. [source]: Download from git repository. [home-page]: Update to new home-page. --- gnu/packages/debian.scm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index e1dd9d1485..1974672fb6 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -17,6 +17,7 @@ (define-module (gnu packages debian) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) @@ -112,15 +113,17 @@ contains the archive keys used for that.") (define-public debootstrap (package (name "debootstrap") - (version "1.0.101") + (version "1.0.106") (source (origin - (method url-fetch) - (uri (string-append "mirror://debian/pool/main/d/" name "/" - name "_" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://salsa.debian.org/installer-team/debootstrap.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1p1a81s8hq73byd7256iljdls389x2q7w6srgrgfmx5bl1csnzp3")))) + "1fm5bgllcwgwizrqi4sn8p4fpbzhbzgwprrfppfq9hqdzbmlfmnv")))) (build-system gnu-build-system) (arguments `(#:phases @@ -165,7 +168,7 @@ contains the archive keys used for that.") `(("binutils" ,binutils) ("gnupg" ,gnupg) ("perl" ,perl))) - (home-page "https://anonscm.debian.org/cgit/d-i/debootstrap.git") + (home-page "https://tracker.debian.org/pkg/debootstrap") (synopsis "Bootstrap a basic Debian system") (description "Debootstrap is used to create a Debian base system from scratch, without requiring the availability of @code{dpkg} or @code{apt}. From 6c10675928a4485fd4ed83f4a067f22ae06779cc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 14 Jul 2018 23:19:26 +0300 Subject: [PATCH 122/374] gnu: python-xenon: Update to 0.5.4. * gnu/packages/python.scm (python-xenon): Update to 0.5.4. [arguments]: Remove part of custom 'patch-test-requirements phase. --- gnu/packages/python.scm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d350990c67..38c48288a9 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2015, 2016, 2017 Leo Famulari ;;; Copyright © 2015, 2017 Ben Woodcroft ;;; Copyright © 2015, 2016 Erik Edrosa -;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2015, 2017 Kyle Meyer ;;; Copyright © 2015, 2016 Chris Marusich ;;; Copyright © 2016 Danny Milosavljevic @@ -12242,14 +12242,14 @@ pure Python module.") (define-public python-xenon (package (name "python-xenon") - (version "0.5.1") + (version "0.5.4") (source (origin (method url-fetch) (uri (pypi-uri "xenon" version)) (sha256 (base32 - "14kby2y48vp3sgwxqlm5d5789yibqwb1qli5fwcmdqg3iayrbklc")))) + "029cbhysg2vr5n4jz8gpg2793f8wkwnqpr1qgv6c1dn685vy31mc")))) (build-system python-build-system) (native-inputs `(("python-pyyaml" ,python-pyyaml) @@ -12261,12 +12261,7 @@ pure Python module.") `(#:phases (modify-phases %standard-phases (add-before 'build 'patch-test-requirements - (lambda* (#:key inputs #:allow-other-keys) - ;; Update requirements from dependency==version to - ;; dependency>=version. - (substitute* "requirements.txt" - (("==") ">=") - ((",<1.5.0") "")) + (lambda _ ;; Remove httpretty dependency for tests. (substitute* "setup.py" (("httpretty") "")) From 2c6f0438d8c967dcfc0a2ccaa1a6a3ea1e1bcc00 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 21:16:26 +0300 Subject: [PATCH 123/374] gnu: tor: Update to 0.3.3.9. * gnu/packages/tor.scm (tor): Update to 0.3.3.9. --- gnu/packages/tor.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 054d1e4029..e727033fc9 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2016, 2017 Efraim Flashner -;;; Copyright © 2016, 2017 Nils Gillmann +;;; Copyright © 2016, 2017, 2018 Nils Gillmann ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2017 Rutger Helling @@ -47,14 +47,14 @@ (define-public tor (package (name "tor") - (version "0.3.3.7") + (version "0.3.3.9") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "036ybfvldj7yfci9ipjki8smpzyxdg8c5r12bghc9yxdqh9basza")))) + "0vyf5z0dn5jghp2qjp076aq62lsz9g32qv9jiqf08skf096nnd45")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-gcc-hardening" From 71e304ed28990091d50a5517bca1a60925fa5548 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 21:33:49 +0300 Subject: [PATCH 124/374] gnu: emacs: Build with libjpeg@9. * gnu/packages/emacs.scm (emacs)[inputs]: Replace libjpeg@8 with libjpeg. --- gnu/packages/emacs.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 11cd244deb..64064ec513 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -199,7 +199,7 @@ ("libxft" ,libxft) ("libtiff" ,libtiff) ("giflib" ,giflib) - ("libjpeg" ,libjpeg-8) + ("libjpeg" ,libjpeg) ("imagemagick" ,imagemagick) ("acl" ,acl) From 97dd1b154be5f92a0ea68b31586e997c46be0eb4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 21:46:16 +0300 Subject: [PATCH 125/374] gnu: postgresql@9.6: Update to 9.6.9. * gnu/packages/databases.scm (postgresql@9.6): Update to 9.6.9. --- gnu/packages/databases.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 55979834c9..382c74cfd9 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -702,6 +702,7 @@ Language.") as a drop-in replacement of MySQL.") (license license:gpl2))) +;; Don't forget to update the other postgresql packages when upgrading this one. (define-public postgresql (package (name "postgresql") @@ -750,14 +751,14 @@ pictures, sounds, or video.") (package (inherit postgresql) (name "postgresql") - (version "9.6.8") + (version "9.6.9") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "0w7bwf19wbdd3jjbjv03cnx56qka4801srcbsayk9v792awv7zga")))))) + "0biy8j69dbvdmrag55pdszpc0702agzqhhcwdx21xp02mzim4ydr")))))) (define-public qdbm (package From 4f963b6f29b850b1dcb1270cca3075417dc4962f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 21:47:30 +0300 Subject: [PATCH 126/374] gnu: rust@1.19: Don't make public. * gnu/packages/rust.scm (rust@1.19): Don't make it a public variable. --- gnu/packages/rust.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index bb6fea99a0..761f3966c9 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -167,7 +167,7 @@ in turn be used to build the final Rust.") (snippet '(begin (delete-file-recursively "src/llvm") #t)) (patches (map search-patch patches)))) -(define-public rust-1.19 +(define rust-1.19 (package (name "rust") (version "1.19.0") From 080e11b48e6af05f6d051bfab6b4bd7830ef664c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 21:49:21 +0300 Subject: [PATCH 127/374] gnu: rust@1.25: Fix build on aarch64-linux. * gnu/packages/rust.scm (rust@1.25)[arguments]: Replace inherited custom 'patch-aarch64-test phase. Make sure all phases return #t. --- gnu/packages/rust.scm | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 761f3966c9..28bffb44bb 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -554,14 +554,28 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" ((#:phases phases) `(modify-phases ,phases (add-after 'patch-cargo-tests 'patch-cargo-index-update - (lambda* _ + (lambda _ (substitute* "src/tools/cargo/tests/generate-lockfile.rs" ;; This test wants to update the crate index. - (("fn no_index_update") "#[ignore]\nfn no_index_update")))) + (("fn no_index_update") "#[ignore]\nfn no_index_update")) + #t)) (add-after 'configure 'enable-codegen-tests - (lambda* _ + (lambda _ (substitute* "config.toml" - (("codegen-tests = false") "")))) + (("codegen-tests = false") "")) + #t)) + (replace 'patch-aarch64-test + (lambda _ + (substitute* "src/librustc_metadata/dynamic_lib.rs" + ;; This test is known to fail on aarch64 and powerpc64le: + ;; https://github.com/rust-lang/rust/issues/45410 + (("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine")) + ;; This test fails on aarch64 with llvm@6.0: + ;; https://github.com/rust-lang/rust/issues/49807 + ;; other possible solution: + ;; https://github.com/rust-lang/rust/pull/47688 + (delete-file "src/test/debuginfo/by-value-self-argument-in-trait-impl.rs") + #t)) (delete 'ignore-glibc-2.27-incompatible-test)))))))) (define-public rust-1.26 From cb570156b662ffe8a432208bcb51ee302e6b08f9 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 22:01:53 +0300 Subject: [PATCH 128/374] gnu: gegl: Use libjpeg@9. * gnu/packages/gimp.scm (gegl)[inputs]: Replace libjpeg@8 with libjpeg. --- gnu/packages/gimp.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index ec3a634844..55fb38ed90 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2016, 2018 Ricardo Wurmus -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Leo Famulari ;;; @@ -100,7 +100,7 @@ provided, as well as a framework to add new color models and data types.") `(("cairo" ,cairo) ("pango" ,pango) ("libpng" ,libpng) - ("libjpeg" ,libjpeg-8))) + ("libjpeg" ,libjpeg))) (native-inputs `(("pkg-config" ,pkg-config) ("glib" ,glib "bin") ; for gtester From 74f99ee42aee76415c15e0bb4d1cb5baa78d95e0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 22:02:34 +0300 Subject: [PATCH 129/374] gnu: gimp: Use libjpeg@9. * gnu/packages/gimp.scm (gimp)[inputs]: Replace libjpeg@8 with libjpeg. --- gnu/packages/gimp.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 55fb38ed90..feb67318df 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -154,7 +154,7 @@ buffers.") ("glib" ,glib) ("glib-networking" ,glib-networking) ("libtiff" ,libtiff) - ("libjpeg" ,libjpeg-8) + ("libjpeg" ,libjpeg) ("atk" ,atk) ("gexiv2" ,gexiv2) ("gtk+" ,gtk+-2) From 22f003880cccc73903b63bbb0f6a74cc4907dce6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 22:16:16 +0300 Subject: [PATCH 130/374] gnu: podofo: Update to 0.9.6. * gnu/packages/pdf.scm (podofo): Update to 0.9.6. [native-inputs]: Add cppunit, pkg-config. [inputs]: Replace libjpeg@8 with libjpeg. Order alphabetically. --- gnu/packages/pdf.scm | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 66fbb20038..6b77e8e4d5 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -585,23 +585,26 @@ interaction.") (define-public podofo (package (name "podofo") - (version "0.9.5") + (version "0.9.6") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/podofo/podofo/" version "/podofo-" version ".tar.gz")) (sha256 (base32 - "012kgfx5j5n6w4zkc1d290d2cwjk60jhzsjlr2x19g3yi75q2jc5")))) + "0wj0y4zcmj4q79wrn3vv3xq4bb0vhhxs8yifafwy9f2sjm83c5p9")))) (build-system cmake-build-system) - (inputs ; TODO: Add cppunit for tests - `(("lua" ,lua-5.1) - ("libpng" ,libpng) - ("openssl" ,openssl) - ("fontconfig" ,fontconfig) + (native-inputs + `(("cppunit" ,cppunit) + ("pkg-config" ,pkg-config))) + (inputs + `(("libjpeg" ,libjpeg) ("libtiff" ,libtiff) - ("libjpeg" ,libjpeg-8) + ("fontconfig" ,fontconfig) ("freetype" ,freetype) + ("libpng" ,libpng) + ("lua" ,lua-5.1) + ("openssl" ,openssl) ("zlib" ,zlib))) (arguments `(#:configure-flags '("-DPODOFO_BUILD_SHARED=ON" From 1cd968e8549ab13a716e8b0c4a946276a2239eaa Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 22:39:39 +0300 Subject: [PATCH 131/374] gnu: openimageio: Don't use unstable tarball. * gnu/packages/graphics.scm (openimageio)[source]: Download the source from a git repository. --- gnu/packages/graphics.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 65f023a488..1b59ff3fc3 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Tomáš Čech ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016, 2017 Ricardo Wurmus -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2018 Efraim Flashner ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis ;;; Copyright © 2017, 2018 Ben Woodcroft @@ -373,13 +373,14 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.") (name "openimageio") (version "1.7.19") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/OpenImageIO/oiio/" - "archive/Release-" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/OpenImageIO/oiio.git") + (commit (string-append "Release-" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1qlmfhvl2wva4aifyiq7c4sdy61ddl7wykwvlpfys9p701xghvj7")))) + "0yxxy43l3lllw7maqg42dlkgqms2d4772sxzxk7kmxg4lnhsvndc")))) (build-system cmake-build-system) ;; FIXME: To run all tests successfully, test image sets from multiple ;; third party sources have to be present. For details see From 0998278519d6960261b006dd0cbf05ce25fec354 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 22:40:24 +0300 Subject: [PATCH 132/374] gnu: openimageio: Use libjpeg@9. * gnu/packages/graphics.scm (openimageio)[inputs]: Replace libjpeg@8 with libjpeg. --- gnu/packages/graphics.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 1b59ff3fc3..243814c14d 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -391,7 +391,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.") (inputs `(("boost" ,boost) ("libpng" ,libpng) - ("libjpeg" ,libjpeg-8) + ("libjpeg" ,libjpeg) ("libtiff" ,libtiff) ("giflib" ,giflib) ("openexr" ,openexr) From 5041d03a414e397602099e0db7d7074eeb6674e7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 22:58:41 +0300 Subject: [PATCH 133/374] gnu: libraw: Use libjpeg@9. * gnu/packages/photo.scm (libraw)[inputs]: Replace libjpeg@8 with libjpeg. --- gnu/packages/photo.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 7bf1d60f7c..88fa1aba68 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014, 2015, 2017 Ludovic Courtès ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015, 2017 Andreas Enge -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2017 Roel Janssen ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Leo Famulari @@ -81,7 +81,7 @@ (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("libjpeg" ,libjpeg-8))) ;for lossy DNGs and old Kodak cameras + `(("libjpeg" ,libjpeg))) ;for lossy DNGs and old Kodak cameras (propagated-inputs `(("lcms" ,lcms))) ;for color profiles (home-page "https://www.libraw.org") From ae608622f39c5585acfda29454c1ed2c0f10d5d0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 23:13:28 +0300 Subject: [PATCH 134/374] gnu: tor.scm: Fix copyright line. This is a follow-up to 2c6f0438d8c967dcfc0a2ccaa1a6a3ea1e1bcc00. --- gnu/packages/tor.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index e727033fc9..e897dff639 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -1,8 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver -;;; Copyright © 2016, 2017 Efraim Flashner -;;; Copyright © 2016, 2017, 2018 Nils Gillmann +;;; Copyright © 2016, 2017, 2018 Efraim Flashner +;;; Copyright © 2016, 2017 Nils Gillmann ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2017 Rutger Helling From 0d354666d35ea54b024f45a6b3d835e8879a5df5 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 14 Jul 2018 11:52:14 +0100 Subject: [PATCH 135/374] ruby-build-system: Error or return #t from all phases. Previously, if the tests didn't pass, the check phase would evaluate to #f, but the package would be built sucessfully. This changes all the phases to raise exceptions if errors are encountered, and return #t otherwise. This involves using invoke rather than system*, so that exceptions are raised if the program exits with a status other than 0, and also returning #t at the end of functions. * gnu/build/ruby-build-system.scm (unpack): Use invoke rather than system*, and return #t at the end. (build, check): Use invoke rather than system*. (install): Remove the use of "and", and rewrite the error handling to raise an exception. (wrap): Return #t. --- guix/build/ruby-build-system.scm | 108 ++++++++++++++++--------------- 1 file changed, 55 insertions(+), 53 deletions(-) diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm index abef6937bc..a346e9fb8e 100644 --- a/guix/build/ruby-build-system.scm +++ b/guix/build/ruby-build-system.scm @@ -52,18 +52,19 @@ directory." (define* (unpack #:key source #:allow-other-keys) "Unpack the gem SOURCE and enter the resulting directory." (if (gem-archive? source) - (and (zero? (system* "gem" "unpack" source)) - ;; The unpacked gem directory is named the same as the archive, - ;; sans the ".gem" extension. It is renamed to simply "gem" in an - ;; effort to keep file names shorter to avoid UNIX-domain socket - ;; file names and shebangs that exceed the system's fixed maximum - ;; length when running test suites. - (let ((dir (match:substring (string-match "^(.*)\\.gem$" - (basename source)) - 1))) - (rename-file dir "gem") - (chdir "gem") - #t)) + (begin + (invoke "gem" "unpack" source) + ;; The unpacked gem directory is named the same as the archive, + ;; sans the ".gem" extension. It is renamed to simply "gem" in an + ;; effort to keep file names shorter to avoid UNIX-domain socket + ;; file names and shebangs that exceed the system's fixed maximum + ;; length when running test suites. + (let ((dir (match:substring (string-match "^(.*)\\.gem$" + (basename source)) + 1))) + (rename-file dir "gem") + (chdir "gem")) + #t) ;; Use GNU unpack strategy for things that aren't gem archives. (gnu:unpack #:source source))) @@ -104,7 +105,8 @@ generate the files list." (write-char (read-char pipe) out)))) #t) (lambda () - (close-pipe pipe))))))) + (close-pipe pipe))))) + #t)) (define* (build #:key source #:allow-other-keys) "Build a new gem using the gemspec from the SOURCE gem." @@ -112,13 +114,13 @@ generate the files list." ;; Build a new gem from the current working directory. This also allows any ;; dynamic patching done in previous phases to be present in the installed ;; gem. - (zero? (system* "gem" "build" (first-gemspec)))) + (invoke "gem" "build" (first-gemspec))) (define* (check #:key tests? test-target #:allow-other-keys) "Run the gem's test suite rake task TEST-TARGET. Skip the tests if TESTS? is #f." (if tests? - (zero? (system* "rake" test-target)) + (invoke "rake" test-target) #t)) (define* (install #:key inputs outputs (gem-flags '()) @@ -137,43 +139,42 @@ GEM-FLAGS are passed to the 'gem' invokation, if present." 0 (- (string-length gem-file-basename) 4)))) (setenv "GEM_VENDOR" vendor-dir) - (and (let ((install-succeeded? - (zero? - (apply system* "gem" "install" gem-file - "--local" "--ignore-dependencies" "--vendor" - ;; Executables should go into /bin, not - ;; /lib/ruby/gems. - "--bindir" (string-append out "/bin") - gem-flags)))) - (or install-succeeded? - (begin - (simple-format #t "installation failed\n") - (let ((failed-output-dir (string-append (getcwd) "/out"))) - (mkdir failed-output-dir) - (copy-recursively out failed-output-dir)) - #f))) - (begin - ;; Remove the cached gem file as this is unnecessary and contains - ;; timestamped files rendering builds not reproducible. - (let ((cached-gem (string-append vendor-dir "/cache/" gem-file))) - (log-file-deletion cached-gem) - (delete-file cached-gem)) - ;; For gems with native extensions, several Makefile-related files - ;; are created that contain timestamps or other elements making - ;; them not reproducible. They are unnecessary so we remove them. - (if (file-exists? (string-append vendor-dir "/ext")) - (begin - (for-each (lambda (file) - (log-file-deletion file) - (delete-file file)) - (append - (find-files (string-append vendor-dir "/doc") - "page-Makefile.ri") - (find-files (string-append vendor-dir "/extensions") - "gem_make.out") - (find-files (string-append vendor-dir "/ext") - "Makefile"))))) - #t)))) + + (or (zero? + (apply system* "gem" "install" gem-file + "--local" "--ignore-dependencies" "--vendor" + ;; Executables should go into /bin, not + ;; /lib/ruby/gems. + "--bindir" (string-append out "/bin") + gem-flags)) + (begin + (let ((failed-output-dir (string-append (getcwd) "/out"))) + (mkdir failed-output-dir) + (copy-recursively out failed-output-dir)) + (error "installation failed"))) + + ;; Remove the cached gem file as this is unnecessary and contains + ;; timestamped files rendering builds not reproducible. + (let ((cached-gem (string-append vendor-dir "/cache/" gem-file))) + (log-file-deletion cached-gem) + (delete-file cached-gem)) + + ;; For gems with native extensions, several Makefile-related files + ;; are created that contain timestamps or other elements making + ;; them not reproducible. They are unnecessary so we remove them. + (when (file-exists? (string-append vendor-dir "/ext")) + (for-each (lambda (file) + (log-file-deletion file) + (delete-file file)) + (append + (find-files (string-append vendor-dir "/doc") + "page-Makefile.ri") + (find-files (string-append vendor-dir "/extensions") + "gem_make.out") + (find-files (string-append vendor-dir "/ext") + "Makefile")))) + + #t)) (define* (wrap-ruby-program prog #:key (gem-clear-paths #t) #:rest vars) "Make a wrapper for PROG. VARS should look like this: @@ -301,7 +302,8 @@ extended with definitions for VARS." (let ((files (list-of-files dir))) (for-each (cut wrap-ruby-program <> var) files))) - bindirs))) + bindirs)) + #t) (define (log-file-deletion file) (display (string-append "deleting '" file "' for reproducibility\n"))) From fe27238cea9fd85e0cd42ea1ad9fdc3a73b9758d Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 14 Jul 2018 11:57:38 +0100 Subject: [PATCH 136/374] gnu: ruby-options: Return #t from set-LIB phase. * gnu/packages/ruby.scm (ruby-options)[arguments]: Return #t from the set-LIB phase. --- gnu/packages/ruby.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 1602fd5d5e..9a74f16c01 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -883,7 +883,8 @@ complexity.") (lambda _ ;; This is used in the Rakefile, and setting it avoids an issue ;; with running the tests. - (setenv "LIB" "options")))))) + (setenv "LIB" "options") + #t))))) (synopsis "Ruby library to parse options from *args cleanly") (description "The @code{options} library helps with parsing keyword options in Ruby From cfe255684cc4deb164d0eaaa2e1ed9804b5ff651 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 16 Jul 2018 01:40:15 -0400 Subject: [PATCH 137/374] gnu: botan: Update to 2.7.0 [fixes CVE-2018-12435]. * gnu/packages/crypto.scm (botan): Update to 2.7.0. --- gnu/packages/crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index dd86843938..4629bcd895 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -755,14 +755,14 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R (define-public botan (package (name "botan") - (version "2.6.0") + (version "2.7.0") (source (origin (method url-fetch) (uri (string-append "https://botan.randombit.net/releases/" "Botan-" version ".tgz")) (sha256 (base32 - "1iawmymmnp5j2mcjj70slivn6bgg8gbpppldc1rjqw5sbdan3wn1")))) + "142aqabwc266jxn8wrp0f1ffrmcvdxwvyh8frb38hx9iaqazjbg4")))) (build-system gnu-build-system) (arguments '(#:phases From 0728f60074e407a014d028d36d7cb891a35c597f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Jul 2018 11:04:10 +0300 Subject: [PATCH 138/374] gnu: fltk: Update to 1.3.4-2. * gnu/packages/fltk.scm (fltk): Update to 1.3.4-2. [source]: Remove patches. [inputs]: Switch from libjpeg-8 to libjpeg. * gnu/packages/patches/fltk-shared-lib-defines.patch, gnu/packages/patches/fltk-xfont-on-demand.patch: Remove files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 2 - gnu/packages/fltk.scm | 26 +++++----- .../patches/fltk-shared-lib-defines.patch | 51 ------------------- .../patches/fltk-xfont-on-demand.patch | 45 ---------------- 4 files changed, 13 insertions(+), 111 deletions(-) delete mode 100644 gnu/packages/patches/fltk-shared-lib-defines.patch delete mode 100644 gnu/packages/patches/fltk-xfont-on-demand.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9e875263ac..f349eded50 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -676,8 +676,6 @@ dist_patch_DATA = \ %D%/packages/patches/findutils-test-xargs.patch \ %D%/packages/patches/flann-cmake-3.11.patch \ %D%/packages/patches/flint-ldconfig.patch \ - %D%/packages/patches/fltk-shared-lib-defines.patch \ - %D%/packages/patches/fltk-xfont-on-demand.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ %D%/packages/patches/freeimage-CVE-2015-0852.patch \ diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm index e4eb2fcad0..a3c088c2e8 100644 --- a/gnu/packages/fltk.scm +++ b/gnu/packages/fltk.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015, 2018 Ricardo Wurmus ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2018 Mark H Weaver +;;; Copyright © 2018 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,27 +35,27 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) - #:use-module (guix build-system waf)) + #:use-module (guix build-system waf) + #:use-module (srfi srfi-1)) (define-public fltk (package (name "fltk") - (version "1.3.3") + (version "1.3.4-2") (source (origin (method url-fetch) - (uri (string-append "http://fltk.org/pub/fltk/" version + (uri (string-append "http://fltk.org/pub/fltk/" + (first (string-split version #\-)) "/fltk-" version "-source.tar.gz")) (sha256 (base32 - "15qd7lkz5d5ynz70xhxhigpz3wns39v9xcf7ggkl0792syc8sfgq")) - (patches (search-patches "fltk-shared-lib-defines.patch" - "fltk-xfont-on-demand.patch")))) + "0459rm1gl5x3famiqma7ja7k6hvan8p5l8lgshvqfl4rik0lklr5")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9 + `(("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libx11" ,libx11) ("libxft" ,libxft) @@ -76,12 +77,11 @@ ;; Provide -L flags for image libraries when querying fltk-config to ;; avoid propagating inputs. (lambda* (#:key inputs outputs #:allow-other-keys) - (use-modules (srfi srfi-26)) - (let* ((conf (string-append (assoc-ref outputs "out") - "/bin/fltk-config")) - (jpeg (assoc-ref inputs "libjpeg")) - (png (assoc-ref inputs "libpng")) - (zlib (assoc-ref inputs "zlib"))) + (let ((conf (string-append (assoc-ref outputs "out") + "/bin/fltk-config")) + (jpeg (assoc-ref inputs "libjpeg")) + (png (assoc-ref inputs "libpng")) + (zlib (assoc-ref inputs "zlib"))) (substitute* conf (("-ljpeg") (string-append "-L" jpeg "/lib -ljpeg")) (("-lpng") (string-append "-L" png "/lib -lpng")) diff --git a/gnu/packages/patches/fltk-shared-lib-defines.patch b/gnu/packages/patches/fltk-shared-lib-defines.patch deleted file mode 100644 index d36a50ff5e..0000000000 --- a/gnu/packages/patches/fltk-shared-lib-defines.patch +++ /dev/null @@ -1,51 +0,0 @@ -This patch from upstream revision 10588. - ---- fltk-1.3.3/src/Xutf8.h -+++ fltk-1.3.3/src/Xutf8.h -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - typedef struct { - int nb_font; -@@ -98,8 +99,8 @@ - XUtf8FontStruct *font_set, - unsigned int ucs); - --int --XGetUtf8FontAndGlyph( -+FL_EXPORT int -+fl_XGetUtf8FontAndGlyph( - XUtf8FontStruct *font_set, - unsigned int ucs, - XFontStruct **fnt, ---- fltk-1.3.3/src/gl_draw.cxx -+++ fltk-1.3.3/src/gl_draw.cxx -@@ -114,7 +114,7 @@ - for (int i = 0; i < 0x400; i++) { - XFontStruct *font = NULL; - unsigned short id; -- XGetUtf8FontAndGlyph(gl_fontsize->font, ii, &font, &id); -+ fl_XGetUtf8FontAndGlyph(gl_fontsize->font, ii, &font, &id); - if (font) glXUseXFont(font->fid, id, 1, gl_fontsize->listbase+ii); - ii++; - } ---- fltk-1.3.3/src/xutf8/utf8Wrap.c -+++ fltk-1.3.3/src/xutf8/utf8Wrap.c -@@ -816,10 +816,10 @@ - /** get the X font and glyph ID of a UCS char **/ - /*****************************************************************************/ - int --XGetUtf8FontAndGlyph(XUtf8FontStruct *font_set, -- unsigned int ucs, -- XFontStruct **fnt, -- unsigned short *id) { -+fl_XGetUtf8FontAndGlyph(XUtf8FontStruct *font_set, -+ unsigned int ucs, -+ XFontStruct **fnt, -+ unsigned short *id) { - - /* int x; */ - int *encodings; /* encodings array */ diff --git a/gnu/packages/patches/fltk-xfont-on-demand.patch b/gnu/packages/patches/fltk-xfont-on-demand.patch deleted file mode 100644 index cdcdd9af05..0000000000 --- a/gnu/packages/patches/fltk-xfont-on-demand.patch +++ /dev/null @@ -1,45 +0,0 @@ -Fixes undefined reference to `Fl_XFont_On_Demand::value()'. -From . - -Index: src/fl_font.cxx -=================================================================== ---- fltk-1.3.3/src/fl_font.cxx (revision 10503) -+++ fltk-1.3.3/src/fl_font.cxx (revision 10504) -@@ -55,6 +55,12 @@ - # include "fl_font_x.cxx" - #endif // WIN32 - -+#if ! (defined(WIN32) || defined(__APPLE__)) -+XFontStruct *fl_X_core_font() -+{ -+ return fl_xfont.value(); -+} -+#endif - - double fl_width(const char* c) { - if (c) return fl_width(c, (int) strlen(c)); -Index: src/gl_draw.cxx -=================================================================== ---- fltk-1.3.3/src/gl_draw.cxx (revision 10503) -+++ fltk-1.3.3/src/gl_draw.cxx (revision 10504) -@@ -81,7 +81,7 @@ - * then sorting through them at draw time (for normal X rendering) to find which one can - * render the current glyph... But for now, just use the first font in the list for GL... - */ -- XFontStruct *font = fl_xfont; -+ XFontStruct *font = fl_X_core_font(); - int base = font->min_char_or_byte2; - int count = font->max_char_or_byte2-base+1; - fl_fontsize->listbase = glGenLists(256); -Index: FL/x.H -=================================================================== ---- fltk-1.3.3/FL/x.H (revision 10503) -+++ fltk-1.3.3/FL/x.H (revision 10504) -@@ -132,6 +132,7 @@ - XFontStruct *ptr; - }; - extern FL_EXPORT Fl_XFont_On_Demand fl_xfont; -+extern FL_EXPORT XFontStruct* fl_X_core_font(); - - // this object contains all X-specific stuff about a window: - // Warning: this object is highly subject to change! From 248a9e163b8c09036d7bfe4c5dc35b0eebf64318 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 16 Jul 2018 02:37:57 -0400 Subject: [PATCH 139/374] gnu: java-bouncycastle: Update to 1.60 [fixes CVE-2018-1000180]. * gnu/packages/java.scm (java-bouncycastle): Update to 1.60. --- gnu/packages/java.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a7d5c9f445..bc28428935 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -8425,15 +8425,15 @@ algorithms and xxHash hashing algorithm.") (define-public java-bouncycastle (package (name "java-bouncycastle") - (version "1.59") + (version "1.60") (source (origin (method url-fetch) (uri (string-append "https://github.com/bcgit/bc-java/archive/r" - (substring version 0 1) "rv" + (substring version 0 1) "v" (substring version 2 4) ".tar.gz")) (sha256 (base32 - "1bwl499whlbq896w18idqw2dkp8v0wp0npv9g71i5fgf8xjh0k3q")) + "0v434513y708qc87k4xz13p2kzydc736lk3ks67df9mg11s7hchv")) (modules '((guix build utils))) (snippet '(begin From 66b9c643d5146f193182cd9ec5cf414aa6874b8c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 16 Jul 2018 11:01:24 +0300 Subject: [PATCH 140/374] gnu: kodi: Build with mariadb. * gnu/packages/kodi.scm (kodi)[inputs]: Replace mysql with mariadb. --- gnu/packages/kodi.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index 6f8571d22a..62a971a0a8 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -395,7 +395,7 @@ generator library for C++.") ("libxrender" ,libxrender) ("libxslt" ,libxslt) ("lzo" ,lzo) - ("mysql" ,mysql) + ("mariadb" ,mariadb) ("openssl" ,openssl) ("pcre" ,pcre) ("pulseaudio" ,pulseaudio) From a0bb021785e56a6cd20f7e0d69470665939fbd8b Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Fri, 13 Jul 2018 22:39:16 +0000 Subject: [PATCH 141/374] gnu: Add electron-cash. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/finance.scm (electron-cash): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/finance.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 1d3e6a7a6a..29bf3040ed 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -329,6 +329,37 @@ generation from a seed. Your secret keys are encrypted and are never sent to other machines/servers. Electrum does not download the Bitcoin blockchain.") (license license:expat))) +(define-public electron-cash + (package + (inherit electrum) + (name "electron-cash") + (version "3.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://electroncash.org/downloads/" + version + "/win-linux/ElectronCash-" + version + ".tar.gz")) + (sha256 + (base32 + "1x487hyacdm1qhik1mhfimr4jwcwz7sgsbkh11awrb6j19sxdxym")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete the bundled dependencies. + (delete-file-recursively "packages") + #t)))) + (home-page "https://electroncash.org/") + (synopsis "Bitcoin Cash wallet") + (description + "Electroncash is a lightweight Bitcoin Cash client, based on a client-server +protocol. It supports Simple Payment Verification (SPV) and deterministic key +generation from a seed. Your secret keys are encrypted and are never sent to +other machines/servers. Electroncash does not download the Bitcoin Cash blockchain.") + (license license:expat))) + (define-public monero ;; This package bundles easylogging++ and lmdb. ;; The bundled easylogging++ is modified, and the changes will not be upstreamed. From 0a551443aeb2563f894494477ad809555244de68 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Sun, 8 Jul 2018 20:39:26 +0300 Subject: [PATCH 142/374] gnu: monero: Update to 0.12.3.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/monero-use-system-miniupnpc.patch: New file. * gnu/local.mk: Add it. * gnu/packages/finance.scm (monero): Update to 0.12.3.0. [source]: Add patch. Remove snippet because miniupnpc, rapidjson and unbound are no longer bundled in-tree. [inputs]: Add zeromq, cppzmq, libsodium. Use monero-miniupnpc. [arguments]: Change build-type to "release". Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/finance.scm | 29 +++-- .../patches/monero-use-system-miniupnpc.patch | 111 ++++++++++++++++++ 3 files changed, 126 insertions(+), 15 deletions(-) create mode 100644 gnu/packages/patches/monero-use-system-miniupnpc.patch diff --git a/gnu/local.mk b/gnu/local.mk index f349eded50..d273b1c743 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -940,6 +940,7 @@ dist_patch_DATA = \ %D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \ %D%/packages/patches/mpc123-initialize-ao.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \ + %D%/packages/patches/monero-use-system-miniupnpc.patch \ %D%/packages/patches/mongodb-support-unknown-linux-distributions.patch \ %D%/packages/patches/mozjs17-aarch64-support.patch \ %D%/packages/patches/mozjs24-aarch64-support.patch \ diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 29bf3040ed..333fe6531a 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages check) + #:use-module (gnu packages crypto) #:use-module (gnu packages databases) #:use-module (gnu packages documentation) #:use-module (gnu packages dns) @@ -51,6 +52,7 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) + #:use-module (gnu packages networking) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) @@ -367,25 +369,18 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch ;; the system's dynamically linked library. (package (name "monero") - (version "0.11.1.0") + (version "0.12.3.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/monero-project/monero/archive/v" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/monero-project/monero") + (commit (string-append "v" version)))) (file-name (string-append name "-" version ".tar.gz")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Delete bundled dependencies. - (for-each - delete-file-recursively - '("external/miniupnpc" "external/rapidjson" - "external/unbound")) - #t)) + (patches (search-patches "monero-use-system-miniupnpc.patch")) (sha256 (base32 - "16shd834025jyzy68h3gag1sz8vbk875hy4j97hrki8pacz8vd5m")))) + "14db9kgjm2ha93c2x5fjdw01xaqshn756qr3x2cnzyyjh7caz5qd")))) (build-system cmake-build-system) (native-inputs `(("doxygen" ,doxygen) @@ -395,15 +390,19 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch (inputs `(("bind" ,isc-bind) ("boost" ,boost) + ("zeromq" ,zeromq) + ("cppzmq" ,cppzmq) ("expat" ,expat) + ("libsodium" ,libsodium) ("libunwind" ,libunwind) ("lmdb" ,lmdb) - ("miniupnpc" ,miniupnpc) + ("miniupnpc" ,monero-miniupnpc) ("openssl" ,openssl) ("rapidjson" ,rapidjson) ("unbound" ,unbound))) (arguments `(#:out-of-source? #t + #:build-type "release" #:configure-flags '("-DBUILD_TESTS=ON" ,@(if (string=? "aarch64-linux" (%current-system)) '("-DARCH=armv8-a") diff --git a/gnu/packages/patches/monero-use-system-miniupnpc.patch b/gnu/packages/patches/monero-use-system-miniupnpc.patch new file mode 100644 index 0000000000..6bc825d121 --- /dev/null +++ b/gnu/packages/patches/monero-use-system-miniupnpc.patch @@ -0,0 +1,111 @@ +This reverts commit 1e20d705e7c64d2b17c031f345057d1e8850fafa, so that it's possible to use our own +miniupnpc, instead of a git submodule. +--- + CMakeLists.txt | 8 ++++++++ + external/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++---------- + src/p2p/net_node.inl | 13 ++++++++++--- + 3 files changed, 49 insertions(+), 13 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3b93988e..ef948885 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -430,6 +430,14 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations") + + add_subdirectory(external) + ++# Final setup for miniupnpc ++if(UPNP_STATIC OR IOS) ++ add_definitions("-DUPNP_STATIC") ++else() ++ add_definitions("-DUPNP_DYNAMIC") ++ include_directories(${UPNP_INCLUDE}) ++endif() ++ + # Final setup for libunbound + include_directories(${UNBOUND_INCLUDE}) + link_directories(${UNBOUND_LIBRARY_DIRS}) +diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt +index 1fc4d64c..b4f712ee 100644 +--- a/external/CMakeLists.txt ++++ b/external/CMakeLists.txt +@@ -34,21 +34,42 @@ + # We always compile if we are building statically to reduce static dependency issues... + # ...except for FreeBSD, because FreeBSD is a special case that doesn't play well with + # others. ++if(NOT IOS) ++ find_package(Miniupnpc QUIET) ++endif() + +-find_package(Miniupnpc REQUIRED) ++# If we have the correct shared version and we're not building static, use it ++if(STATIC OR IOS) ++ set(USE_SHARED_MINIUPNPC false) ++elseif(MINIUPNP_FOUND AND MINIUPNPC_VERSION_1_7_OR_HIGHER) ++ set(USE_SHARED_MINIUPNPC true) ++endif() + +-message(STATUS "Using in-tree miniupnpc") ++if(USE_SHARED_MINIUPNPC) ++ message(STATUS "Using shared miniupnpc found at ${MINIUPNP_INCLUDE_DIR}") + +-add_subdirectory(miniupnp/miniupnpc) ++ set(UPNP_STATIC false PARENT_SCOPE) ++ set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE) ++ set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE) ++else() ++ if(STATIC) ++ message(STATUS "Using miniupnpc from local source tree for static build") ++ else() ++ message(STATUS "Using miniupnpc from local source tree (/external/miniupnp/miniupnpc)") ++ endif() + +-set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external") +-if(MSVC) +- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267") +-elseif(NOT MSVC) +- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value") +-endif() ++ add_subdirectory(miniupnp/miniupnpc) ++ ++ set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external") ++ if(MSVC) ++ set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267") ++ elseif(NOT MSVC) ++ set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value") ++ endif() + +-set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE) ++ set(UPNP_STATIC true PARENT_SCOPE) ++ set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE) ++endif() + + find_package(Unbound) + +diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl +index 9b21705e..76340a22 100644 +--- a/src/p2p/net_node.inl ++++ b/src/p2p/net_node.inl +@@ -49,9 +49,16 @@ + #include "storages/levin_abstract_invoke2.h" + #include "cryptonote_core/cryptonote_core.h" + +-#include +-#include +-#include ++// We have to look for miniupnpc headers in different places, dependent on if its compiled or external ++#ifdef UPNP_STATIC ++ #include ++ #include ++ #include ++#else ++ #include "miniupnpc.h" ++ #include "upnpcommands.h" ++ #include "upnperrors.h" ++#endif + + #undef MONERO_DEFAULT_LOG_CATEGORY + #define MONERO_DEFAULT_LOG_CATEGORY "net.p2p" +-- +2.16.2 + From 797445be47af389610541f9eb969537845d301d9 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Sun, 8 Jul 2018 20:39:27 +0300 Subject: [PATCH 143/374] gnu: monero: Return #t from phases. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/finance.scm (monero)[arguments]: Substitute invoke for system*. Signed-off-by: Ludovic Courtès --- gnu/packages/finance.scm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 333fe6531a..ccfb98c68d 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -430,9 +430,8 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch #t)) (replace 'check (lambda _ - (zero? - (system* "make" "ARGS=-E 'unit_tests|libwallet_api_tests'" - "test")))) + (invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'" + "test"))) ;; The excluded unit tests need network access (add-after 'check 'unit-tests (lambda _ @@ -445,10 +444,9 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch "DNSResolver.DNSSECFailure" "DNSResolver.GetTXTRecord") ":"))) - (zero? - (system* "tests/unit_tests/unit_tests" - (string-append "--gtest_filter=-" - excluded-unit-tests)))))) + (invoke "tests/unit_tests/unit_tests" + (string-append "--gtest_filter=-" + excluded-unit-tests))))) (add-after 'install 'install-blockchain-import-export (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) From 3902bc5c230b44e8899e1342a20615d6f751ad96 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Sun, 8 Jul 2018 20:39:28 +0300 Subject: [PATCH 144/374] gnu: monero-core: Update to 0.12.2.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/finance.scm (monero-core): Update to 0.12.2.0. [source]: Use 'git-fetch'. Signed-off-by: Ludovic Courtès --- gnu/packages/finance.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index ccfb98c68d..c912cc5c56 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -463,16 +463,17 @@ Monero command line client and daemon.") (define-public monero-core (package (name "monero-core") - (version "0.11.1.0") + (version "0.12.2.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/monero-project/monero-core/archive/v" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/monero-project/monero-core") + (commit (string-append "v" version)))) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1q7a9kpcjgp74fbplzs2iszdld6gwbfrydyd9in9izhwp100p1rr")))) + "1cnrkwh7kp64lnzz1xfmkf1mhsgm5gls292gpqai3jr8jydpkahl")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) From 88d5ee44ed6aae7015691a2a3255132c263b5fa9 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Sun, 8 Jul 2018 20:39:29 +0300 Subject: [PATCH 145/374] gnu: monero-core: Return #t from phases. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/engineering.scm (monero)[arguments]: Substitute invoke for system*. Signed-off-by: Ludovic Courtès --- gnu/packages/finance.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index c912cc5c56..e1623020a3 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -520,7 +520,7 @@ Monero command line client and daemon.") #t)) (replace 'build (lambda _ - (zero? (system* "./build.sh")))) + (invoke "./build.sh"))) (add-after 'build 'fix-install-path (lambda* (#:key outputs #:allow-other-keys) (substitute* "build/Makefile" From f7e248396ba698b7de99414039d9db02050bc7d3 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Sun, 8 Jul 2018 20:39:32 +0300 Subject: [PATCH 146/374] gnu: monero-core: Rename package to "monero-gui". MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/finance.scm (monero-core): Define in terms of 'deprecated-package'. (monero-gui): New variable, formerly known as "monero-core". Co-authored-by: Ludovic Courtès --- gnu/packages/finance.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index e1623020a3..7b3706d30c 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -460,15 +460,15 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch Monero command line client and daemon.") (license license:bsd-3))) -(define-public monero-core +(define-public monero-gui (package - (name "monero-core") + (name "monero-gui") (version "0.12.2.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/monero-project/monero-core") + (url "https://github.com/monero-project/monero-gui") (commit (string-append "v" version)))) (file-name (string-append name "-" version ".tar.gz")) (sha256 @@ -537,6 +537,9 @@ Monero command line client and daemon.") Monero GUI client.") (license license:bsd-3))) +(define-public monero-core + (deprecated-package "monero-core" monero-gui)) + (define-public python-trezor-agent (package (name "python-trezor-agent") From 17a21bcf316d11bdf54ec2483abe15f60dbd7cb0 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Sun, 15 Jul 2018 17:58:41 +1000 Subject: [PATCH 147/374] gnu: ecryptfs-utils: Patch hardcoded-paths. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/linux.scm: (ecryptfs-utils): Patch hardcoded-paths. [arguments]: Add the phase patch-hardcoded-paths to replace various hardcoded references to /bin, /sbin, ... with direct references to the store. [inputs]: Add missing inputs util-linux, cryptsetup, and lvm2 so that the correct paths can be found and the resulting code works. Signed-off-by: Ludovic Courtès --- gnu/packages/linux.scm | 43 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 2ce0f56b84..277c2465bb 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -28,6 +28,7 @@ ;;; Copyright © 2017 nee ;;; Copyright © 2017 Dave Love ;;; Copyright © 2018 Pierre-Antoine Rouby +;;; Copyright © 2018 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -59,6 +60,7 @@ #:use-module (gnu packages calendar) #:use-module (gnu packages check) #:use-module (gnu packages crypto) + #:use-module (gnu packages cryptsetup) #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages datastructures) @@ -3699,7 +3701,43 @@ as used on certified hardware security devices.") "0zwq19siiwf09h7lwa7n7mgmrr8cxifp45lmwgcfr8c1gviv6b0i")))) (build-system gnu-build-system) (arguments - `(#:configure-flags (list "--disable-pywrap"))) + `(#:configure-flags (list "--disable-pywrap") + #:phases + (modify-phases %standard-phases + (add-after 'patch-source-shebangs 'patch-hardcoded-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (utils-linux (assoc-ref inputs "utils-linux")) + (cryptsetup (assoc-ref inputs "cryptsetup")) + (linux-pam (assoc-ref inputs "linux-pam")) + (lvm2 (assoc-ref inputs "lvm2"))) + (substitute* '("src/utils/ecryptfs-mount-private" + "src/utils/ecryptfs-umount-private" + "src/utils/ecryptfs-setup-private" + "src/utils/mount.ecryptfs.c" + "src/pam_ecryptfs/pam_ecryptfs.c" + "src/desktop/ecryptfs-mount-private.desktop.in" + "src/utils/ecryptfs-setup-swap") + (("/bin/mount") + (string-append utils-linux "/bin/mount")) + (("/bin/umount") + (string-append utils-linux "/bin/umount")) + (("/sbin/mount.ecryptfs_private") + (string-append out "/sbin/mount.ecryptfs_private")) + (("/sbin/umount.ecryptfs_private") + (string-append out "/sbin/umount.ecryptfs_private")) + (("/usr/bin/ecryptfs-mount-private") + (string-append out "/bin/ecryptfs-mount-private")) + (("/usr/bin/ecryptfs-rewrite-file") + (string-append out "/bin/ecryptfs-rewrite-file")) + (("/usr/bin/ecryptfs-setup-private") + (string-append out "/bin/ecryptfs-setup-private")) + (("/sbin/cryptsetup") + (string-append cryptsetup "/sbin/cryptsetup")) + (("/sbin/unix_chkpwd") + (string-append linux-pam "/sbin/unix_chkpwd")) + (("/sbin/dmsetup") + (string-append lvm2 "/sbin/dmsetup"))))))))) (native-inputs `(("intltool" ,intltool) ("perl" ,perl) ; for pod2man @@ -3707,6 +3745,9 @@ as used on certified hardware security devices.") (inputs `(("keyutils" ,keyutils) ("linux-pam" ,linux-pam) + ("utils-linux" ,util-linux) + ("cryptsetup" ,cryptsetup) + ("lvm2" ,lvm2) ("nss" ,nss))) (home-page "http://ecryptfs.org/") (synopsis "eCryptfs cryptographic file system utilities") From 33f4d14ab17096984404fc404b4539d784ecbf32 Mon Sep 17 00:00:00 2001 From: Nils Gillmann Date: Mon, 16 Jul 2018 09:53:40 +0000 Subject: [PATCH 148/374] mailmap: Add another line for myself. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Nils Gillmann Signed-off-by: Ludovic Courtès --- .mailmap | 1 + 1 file changed, 1 insertion(+) diff --git a/.mailmap b/.mailmap index 4f672f3278..74434a39e8 100644 --- a/.mailmap +++ b/.mailmap @@ -43,6 +43,7 @@ Mathieu Lirzin Mathieu Othacehe Nikita Karetnikov Nils Gillmann ng0 +Nils Gillmann Nils Gillmann Nils Gillmann ng0 Nils Gillmann ng0 Nils Gillmann From a14a80da2e5c4daf88870518f1cb9e7d14cb338a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 Jul 2018 17:07:00 +0200 Subject: [PATCH 149/374] gnu: emacs-pulseaudio-control: Record the file name of 'pactl'. * gnu/packages/emacs.scm (emacs-pulseaudio-control)[arguments, inputs]: New fields. --- gnu/packages/emacs.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 64064ec513..a57f246547 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -107,6 +107,7 @@ #:use-module (gnu packages gd) #:use-module (gnu packages fontutils) #:use-module (gnu packages password-utils) + #:use-module (gnu packages pulseaudio) #:use-module (gnu packages xdisorg) #:use-module (gnu packages shells) #:use-module (gnu packages gnupg) @@ -8836,6 +8837,17 @@ navigate and display hierarchy structures.") (base32 "10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv")))) (build-system emacs-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-file-name + (lambda* (#:key inputs #:allow-other-keys) + (let ((pulseaudio (assoc-ref inputs "pulseaudio"))) + (chmod "pulseaudio-control.el" #o600) + (emacs-substitute-variables "pulseaudio-control.el" + ("pulseaudio-control-pactl-path" + (string-append pulseaudio "/bin/pactl"))) + #t)))))) + (inputs `(("pulseaudio" ,pulseaudio))) (home-page "https://github.com/flexibeast/pulseaudio-control") (synopsis "Control @code{pulseaudio} from Emacs") (description From d3095f34a3bf7242c01c1f17b14a7230c0ebe0ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 Jul 2018 17:08:28 +0200 Subject: [PATCH 150/374] gnu: emacs-bash-completion: Fix spelling of "Bash". * gnu/packages/emacs.scm (emacs-bash-completion)[synopsis, description]: Fix spelling of "Bash". --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index a57f246547..20d5597f5f 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -7357,10 +7357,10 @@ messaging service.") ("bash-completion-prog" (string-append bash "/bin/bash")))) #t))))) (home-page "https://github.com/szermatt/emacs-bash-completion") - (synopsis "BASH completion for the shell buffer") + (synopsis "Bash completion for the shell buffer") (description "@code{bash-completion} defines dynamic completion hooks for shell-mode -and shell-command prompts that are based on bash completion.") +and shell-command prompts that are based on Bash completion.") (license license:gpl2+))) (define-public emacs-easy-kill From 8bbb79cf95a07a40950448a8a09d888254404ed4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 Jul 2018 17:12:49 +0200 Subject: [PATCH 151/374] mailmap: Add a line for Pierre-Antoine. * .mailmap: Add entry for Pierre-Antoine. --- .mailmap | 1 + 1 file changed, 1 insertion(+) diff --git a/.mailmap b/.mailmap index 74434a39e8..6188162c62 100644 --- a/.mailmap +++ b/.mailmap @@ -56,6 +56,7 @@ Nils Gillmann Nils Gillmann Nils Gillmann Nils Gillmann +Pierre-Antoine Rouby Pjotr Prins Pjotr Prins Pjotr Prins From 36bbac734f2b7adda39bbda4ff8f5498347adfd3 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 16 Jul 2018 14:24:59 -0400 Subject: [PATCH 152/374] gnu: Remove leftover patch. * gnu/packages/patches/file-CVE-2017-1000249.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it.patch'. --- gnu/local.mk | 1 - .../patches/file-CVE-2017-1000249.patch | 27 ------------------- 2 files changed, 28 deletions(-) delete mode 100644 gnu/packages/patches/file-CVE-2017-1000249.patch diff --git a/gnu/local.mk b/gnu/local.mk index d273b1c743..64e71a84f8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -671,7 +671,6 @@ dist_patch_DATA = \ %D%/packages/patches/fcgi-2.4.0-poll.patch \ %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \ %D%/packages/patches/fifo-map-remove-catch.hpp.patch \ - %D%/packages/patches/file-CVE-2017-1000249.patch \ %D%/packages/patches/findutils-localstatedir.patch \ %D%/packages/patches/findutils-test-xargs.patch \ %D%/packages/patches/flann-cmake-3.11.patch \ diff --git a/gnu/packages/patches/file-CVE-2017-1000249.patch b/gnu/packages/patches/file-CVE-2017-1000249.patch deleted file mode 100644 index 505acf1592..0000000000 --- a/gnu/packages/patches/file-CVE-2017-1000249.patch +++ /dev/null @@ -1,27 +0,0 @@ -https://github.com/file/file/commit/35c94dc6acc418f1ad7f6241a6680e5327495793.patch -http://openwall.com/lists/oss-security/2017/09/05/3 - -The patch is minorly modified to apply to file-5.30 - -From 35c94dc6acc418f1ad7f6241a6680e5327495793 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Sun, 27 Aug 2017 07:55:02 +0000 -Subject: [PATCH] Fix always true condition (Thomas Jarosch) - ---- - src/readelf.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/readelf.c b/src/readelf.c -index 81451827..5f425c97 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -511,7 +511,7 @@ do_bid_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, - size_t noff, size_t doff, int *flags) - { - if (namesz == 4 && strcmp((char *)&nbuf[noff], "GNU") == 0 && -- type == NT_GNU_BUILD_ID && (descsz >= 4 || descsz <= 20)) { -+ type == NT_GNU_BUILD_ID && (descsz >= 4 && descsz <= 20)) { - uint8_t desc[20]; - const char *btype; - uint32_t i; From 68a653ab6493a5e9ea45145985a3e62d14bbcd5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Tue, 19 Jun 2018 16:39:15 +0200 Subject: [PATCH 153/374] gnu: cuirass: Update to 7b2f9e0. * gnu/packages/ci.scm (cuirass): Update to 7b2f9e0. --- gnu/packages/ci.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index ba95dc174b..85dbefae7a 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016, 2017 Mathieu Lirzin ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2018 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -184,8 +185,8 @@ their dependencies.") (license l:gpl3+)))) (define-public cuirass - (let ((commit "238f856e48ee333ed3e19fa32ce5e1742c650c67") - (revision "16")) + (let ((commit "7b2f9e0de1ad2d320973b7aea132a8afcad8bece") + (revision "17")) (package (name "cuirass") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -197,7 +198,7 @@ their dependencies.") (file-name (string-append name "-" version)) (sha256 (base32 - "15iwdgy561gnsr224rs5z8qn7nrsh1wdlsxr8gwxyk0v4zp6yvbf")))) + "0knww99adgjh8s6f38z3hpwi9hxhmnvqj5g35pcj80xv8j4xj3y3")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) From cd62e5d36835a7ec7b003500f1d1ad58b09738e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Sun, 15 Jul 2018 13:18:00 +0200 Subject: [PATCH 154/374] services: cuirass: Remove the LOAD-PATH option. * gnu/services/cuirass.scm (, cuirass-shepherd-service): Remove the LOAD-PATH option. --- gnu/services/cuirass.scm | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm index 4664a36dcf..9c62080629 100644 --- a/gnu/services/cuirass.scm +++ b/gnu/services/cuirass.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Jan Nieuwenhuizen ;;; Copyright © 2018 Ricardo Wurmus +;;; Copyright © 2018 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -72,9 +73,7 @@ (one-shot? cuirass-configuration-one-shot? ;boolean (default #f)) (fallback? cuirass-configuration-fallback? ;boolean - (default #f)) - (load-path cuirass-configuration-load-path - (default '()))) + (default #f))) (define (cuirass-shepherd-service config) "Return a for the Cuirass service with CONFIG." @@ -92,8 +91,7 @@ (specs (cuirass-configuration-specifications config)) (use-substitutes? (cuirass-configuration-use-substitutes? config)) (one-shot? (cuirass-configuration-one-shot? config)) - (fallback? (cuirass-configuration-fallback? config)) - (load-path (cuirass-configuration-load-path config))) + (fallback? (cuirass-configuration-fallback? config))) (list (shepherd-service (documentation "Run Cuirass.") (provision '(cuirass)) @@ -109,9 +107,7 @@ "--interval" #$(number->string interval) #$@(if use-substitutes? '("--use-substitutes") '()) #$@(if one-shot? '("--one-shot") '()) - #$@(if fallback? '("--fallback") '()) - #$@(if (null? load-path) '() - `("--load-path" ,(string-join load-path ":")))) + #$@(if fallback? '("--fallback") '())) #:environment-variables (list "GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt" From 90f38fb66109e7da897fa9e6d56a10079d05c4bf Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 16 Jul 2018 16:44:59 -0400 Subject: [PATCH 155/374] gnu: python-pyasn1: Update to 0.4.3. * gnu/packages/python.scm (python-pyasn1, python2-pyasn1): Update to 0.4.3. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 38c48288a9..7e2e194816 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6284,14 +6284,14 @@ designed to efficiently cope with extremely large amounts of data.") (define-public python-pyasn1 (package (name "python-pyasn1") - (version "0.4.2") + (version "0.4.3") (source (origin (method url-fetch) (uri (pypi-uri "pyasn1" version)) (sha256 (base32 - "05bxnr4wmrg62m4qr1pg1p3z7bhwrv74jll3k42pgxwl36kv0n6j")))) + "1z5h38anjzzrxpraa9iq9llffyx2zs8gx0q6dc1g029miwnn50gv")))) (build-system python-build-system) (home-page "http://pyasn1.sourceforge.net/") (synopsis "ASN.1 types and codecs") From 8e632a6435bb8ea408127833030f7764b78768a9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 16 Jul 2018 16:45:37 -0400 Subject: [PATCH 156/374] gnu: python-pyasn1-modules: Update to 0.2.2. * gnu/packages/python.scm (python-pyasn1-modules, python2-pyasn1-modules): Update to 0.2.2. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7e2e194816..ebf02af22e 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6306,14 +6306,14 @@ suitable for a wide range of protocols based on the ASN.1 specification.") (define-public python-pyasn1-modules (package (name "python-pyasn1-modules") - (version "0.0.8") + (version "0.2.2") (source (origin (method url-fetch) (uri (pypi-uri "pyasn1-modules" version)) (sha256 (base32 - "0drqgw81xd3fxdlg89kgd79zzrabvfncvkbybi2wr6w2y4s1jmhh")))) + "0ivm850yi7ajjbi8j115qpsj95bgxdsx48nbjzg0zip788c3xkx0")))) (build-system python-build-system) (propagated-inputs `(("python-pyasn1" ,python-pyasn1))) From a545090ce5e6b9da1f473f558dabda69f317e461 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 16 Jul 2018 23:48:24 +0200 Subject: [PATCH 157/374] gnu: python-cairocffi: Fix loading of shared libraries. Fixes . * gnu/packages/patches/python-cairocffi-dlopen-path.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/python.scm (python-cairocffi)[inputs]: Add glib, gtk+, pango. [native-inputs]: Add python-pytest. [arguments]: Enable tests. [arguments]<#:phases>[patch-paths]: New phase. --- gnu/local.mk | 1 + .../python-cairocffi-dlopen-path.patch | 10 +++++ gnu/packages/python.scm | 38 +++++++++++++++++-- 3 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/python-cairocffi-dlopen-path.patch diff --git a/gnu/local.mk b/gnu/local.mk index 64e71a84f8..d40b1963db 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1057,6 +1057,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-3-search-paths.patch \ %D%/packages/patches/python-3-fix-tests.patch \ %D%/packages/patches/python-axolotl-AES-fix.patch \ + %D%/packages/patches/python-cairocffi-dlopen-path.patch \ %D%/packages/patches/python-dendropy-fix-tests.patch \ %D%/packages/patches/python-fix-tests.patch \ %D%/packages/patches/python-genshi-add-support-for-python-3.4-AST.patch \ diff --git a/gnu/packages/patches/python-cairocffi-dlopen-path.patch b/gnu/packages/patches/python-cairocffi-dlopen-path.patch new file mode 100644 index 0000000000..e7a7fe3737 --- /dev/null +++ b/gnu/packages/patches/python-cairocffi-dlopen-path.patch @@ -0,0 +1,10 @@ +--- cairocffi-0.8.0/cairocffi/__init__.py.orig 2018-07-16 11:00:59.075664158 +0200 ++++ cairocffi-0.8.0/cairocffi/__init__.py 2018-07-16 17:09:42.471958015 +0200 +@@ -35,6 +35,7 @@ + return lib + except OSError: + pass ++ return ffi.dlopen(name) + raise OSError("dlopen() failed to load a library: %s" % ' / '.join(names)) + + diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ebf02af22e..fc1ef3eb2a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4210,23 +4210,53 @@ support for Python 3 and PyPy. It is based on cffi.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1rk2dvy3fxrga6bvvxc2fi5lbaynm5h4a0w0aaxyn3bc77rszjg9")))) + "1rk2dvy3fxrga6bvvxc2fi5lbaynm5h4a0w0aaxyn3bc77rszjg9")) + (patches (search-patches "python-cairocffi-dlopen-path.patch")))) (build-system python-build-system) (outputs '("out" "doc")) (inputs - `(("gdk-pixbuf" ,gdk-pixbuf) - ("cairo" ,cairo))) + `(("glib" ,glib) + ("gtk+" ,gtk+) + ("gdk-pixbuf" ,gdk-pixbuf) + ("cairo" ,cairo) + ("pango" ,pango))) (native-inputs `(("pkg-config" ,pkg-config) + ("python-pytest" ,python-pytest) ("python-sphinx" ,python-sphinx) ("python-docutils" ,python-docutils))) (propagated-inputs `(("python-xcffib" ,python-xcffib))) ; used at run time (arguments `(;; FIXME: Tests cannot find 'libcairo.so.2'. - #:tests? #f + #:tests? #t #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* (find-files "." "\\.py$") + (("dlopen\\(ffi, 'cairo'") + (string-append "dlopen(ffi, '" (assoc-ref inputs "cairo") + "/lib/libcairo.so.2'")) + (("dlopen\\(ffi, 'gdk-3'") + (string-append "dlopen(ffi, '" (assoc-ref inputs "gtk+") + "/lib/libgtk-3.so.0'")) + (("dlopen\\(ffi, 'gdk_pixbuf-2.0'") + (string-append "dlopen(ffi, '" (assoc-ref inputs "gdk-pixbuf") + "/lib/libgdk_pixbuf-2.0.so.0'")) + (("dlopen\\(ffi, 'glib-2.0'") + (string-append "dlopen(ffi, '" (assoc-ref inputs "glib") + "/lib/libglib-2.0.so.0'")) + (("dlopen\\(ffi, 'gobject-2.0'") + (string-append "dlopen(ffi, '" (assoc-ref inputs "glib") + "/lib/libgobject-2.0.so.0'")) + (("dlopen\\(ffi, 'pangocairo-1.0'") + (string-append "dlopen(ffi, '" (assoc-ref inputs "pango") + "/lib/libpangocairo-1.0.so.0'")) + (("dlopen\\(ffi, 'pango-1.0'") + (string-append "dlopen(ffi, '" (assoc-ref inputs "pango") + "/lib/libpango-1.0.so.0'"))) + #t)) (add-after 'install 'install-doc (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((data (string-append (assoc-ref outputs "doc") "/share")) From 701cbfd15d7077ad51326a636b0b48658da21cc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Mon, 16 Jul 2018 23:55:44 +0200 Subject: [PATCH 158/374] doc: Remove the documentation about Cuirass' load-path. * doc/guix.texi (Continuous Integration): Remove the load-path field. --- doc/guix.texi | 4 ---- 1 file changed, 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index c759ccb119..84347d156b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -17742,10 +17742,6 @@ Only evaluate specifications and build derivations once. When substituting a pre-built binary fails, fall back to building packages locally. -@item @code{load-path} (default: @code{'()}) -This allows users to define their own packages and make them visible to -cuirass as in @command{guix build} command. - @item @code{cuirass} (default: @code{cuirass}) The Cuirass package to use. @end table From e967f72648958713d1fd904f2ece2b817edf1b05 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 16 Jul 2018 16:51:47 -0400 Subject: [PATCH 159/374] gnu: libtorrent-rasterbar: Update to 1.1.8. * gnu/packages/bittorrent.scm (libtorrent-rasterbar): Update to 1.1.8. --- gnu/packages/bittorrent.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index a9d62a5664..ce1e93ef00 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -373,7 +373,7 @@ and will take advantage of multiple processor cores where possible.") (define-public libtorrent-rasterbar (package (name "libtorrent-rasterbar") - (version "1.1.7") + (version "1.1.8") (source (origin (method url-fetch) (uri @@ -383,7 +383,7 @@ and will take advantage of multiple processor cores where possible.") "/libtorrent-rasterbar-" version ".tar.gz")) (sha256 (base32 - "1agkcyjs7xscx4sgkg2ri4nm4v736xsg3br2v8jcrph86dlbycw1")))) + "0pcdy26l5ivcs78y2bqh2qca83ikzjfchw5815xh69qf8g88zgvb")))) (build-system gnu-build-system) (arguments `(#:configure-flags From ce91d95f0d3e1d8a28888f4c44048bb04b3b5d8d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 16 Jul 2018 22:22:22 -0400 Subject: [PATCH 160/374] gnu: mutt: Update to 1.10.1. * gnu/packages/mail.scm (mutt): Update to 1.10.1. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index f127e27e3c..3d7b0e4632 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -261,14 +261,14 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "1.10.0") + (version "1.10.1") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/" "mutt-" version ".tar.gz")) (sha256 (base32 - "0nskymwr2cdapxlfv0ysz3bjwhb4kcvl5a3c39237k7r1vwva582")) + "182lkbkpd3q3l1x6bvyds90ycp38gyyxhf35ry0d3hwf2n1khjkk")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs From c5b63846b8c9467c403345f89cb16cfea9832555 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Jul 2018 10:03:16 +0300 Subject: [PATCH 161/374] gnu: vdirsyncer: Update home-page. * gnu/packages/dav.scm (vdirsyncer)[home-page]: Update to new upstream home-page. --- gnu/packages/dav.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 9d0479b1e1..2b1d55c8a5 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -105,5 +105,5 @@ between two storage locations. The most popular purpose is to synchronize a CalDAV or CardDAV server with a local folder or file. The local data can then be accessed via a variety of programs, none of which have to know or worry about syncing to a server.") - (home-page "https://github.com/untitaker/vdirsyncer") + (home-page "https://github.com/pimutils/vdirsyncer") (license bsd-3))) From 9af7469c5b6bfb3423529deefc2bdc1dadf4091e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Jul 2018 10:08:01 +0300 Subject: [PATCH 162/374] gnu: vdirsyncer: Return #t from all phases. * gnu/packages/dav.scm (vdirsyncer)[arguments]: Substitute invoke for system*. --- gnu/packages/dav.scm | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 2b1d55c8a5..9aebc5568d 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016, 2017 Leo Famulari +;;; Copyright © 2018 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,22 +67,23 @@ clients.") "07iqq5c53cfrb5xnmam1rsl683hc3rykmdak896n2gm81r361c66")))) (build-system python-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (replace 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (setenv "DETERMINISTIC_TESTS" "true") - (setenv "DAV_SERVER" "radicale") - (setenv "REMOTESTORAGE_SERVER" "skip") - (zero? (system* "make" "test")))) - (add-after 'install 'manpage - (lambda* (#:key inputs outputs #:allow-other-keys) - (zero? (system* "make" "--directory=docs/" "man")) - (install-file - "docs/_build/man/vdirsyncer.1" - (string-append - (assoc-ref outputs "out") - "/share/man/man1"))))))) + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (setenv "DETERMINISTIC_TESTS" "true") + (setenv "DAV_SERVER" "radicale") + (setenv "REMOTESTORAGE_SERVER" "skip") + (invoke "make" "test"))) + (add-after 'install 'manpage + (lambda* (#:key inputs outputs #:allow-other-keys) + (invoke "make" "--directory=docs/" "man") + (install-file + "docs/_build/man/vdirsyncer.1" + (string-append + (assoc-ref outputs "out") + "/share/man/man1")) + #t))))) (native-inputs `(("python-setuptools-scm" ,python-setuptools-scm) ("python-sphinx" ,python-sphinx) From 3bb3d7f371d6552db57d0401b375c415f21c9591 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Jul 2018 10:19:00 +0300 Subject: [PATCH 163/374] gnu: aspell-dict-en: Update to 2018.04.16-0. * gnu/packages/aspell.scm (aspell-dict-en): Update to 2018.04.16-0. --- gnu/packages/aspell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index 1e2149cd2c..82136a28e8 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -141,10 +141,10 @@ dictionaries, including personal ones.") (define-public aspell-dict-en (aspell-dictionary "en" "English" - #:version "2017.08.24-0" + #:version "2018.04.16-0" #:sha256 (base32 - "0z2vvm1by485cm0sna21cmw6zb771c2l2lnn676zmrwm46q65d89"))) + "0bxxdzkk9g27plg22y9qzsx9cfjw3aa29w5bmzs561qc9gkp247i"))) (define-public aspell-dict-eo (aspell-dictionary "eo" "Esperanto" From 2d4514e92c346820219e5c03e9e455e9f0f74e35 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Jul 2018 10:32:00 +0300 Subject: [PATCH 164/374] gnu: assimp: Update to 4.1.0. * gnu/packages/graphics.scm (assimp): Update to 4.1.0. [source]: Don't use unstable tarball. [home-page]: Update home-page. --- gnu/packages/graphics.scm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 243814c14d..ad5ff8ed1e 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -161,19 +161,20 @@ application can be customized via its API for Python scripting.") (define-public assimp (package (name "assimp") - (version "3.3.1") + (version "4.1.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/assimp/assimp/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/assimp/assimp.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1gy7zlgkf4nmyv8n674p3f30asis0gjz8icyy11i693n13ww71fk")))) + "1rhyqfhzifdj7yibyanph3rh13ykw3i98dnn8mz65j780472hw28")))) (build-system cmake-build-system) (inputs `(("zlib" ,zlib))) - (home-page "http://assimp.org/") + (home-page "http://www.assimp.org/") (synopsis "Asset import library") (description "The Open Asset Import Library loads more than 40 3D file formats into From 9a0d324a1629145a64c6f28082843564d66c6bcc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Jul 2018 10:49:09 +0300 Subject: [PATCH 165/374] gnu: angband: Update to 4.1.2. * gnu/packages/games.scm (angband): Update to 4.1.2. [source]: Parameterize source uri. [arguments]: Use custom 'autogen.sh phase to replace 'bootstrap phase. --- gnu/packages/games.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 4af0b52e82..a3c770a0ba 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -955,15 +955,16 @@ that beneath its ruins lay buried an ancient evil.") (define-public angband (package (name "angband") - (version "4.0.5") + (version "4.1.2") (source (origin (method url-fetch) - (uri (string-append "http://rephial.org/downloads/4.0/" - "angband-" version ".tar.gz")) + (uri (string-append "http://rephial.org/downloads/" + (version-major+minor version) + "/angband-" version ".tar.gz")) (sha256 (base32 - "0lpq2kms7hp421vrasx2bkkn9w08kr581ldwik3v0hlq6h7rlxhd")) + "0ahfzb66ihxvkxcbhcib816x40sdsp26b3ravr1xqp44w1whkg1h")) (modules '((guix build utils))) (snippet ;; So, some of the sounds/graphics/tilesets are under different @@ -987,11 +988,11 @@ that beneath its ruins lay buried an ancient evil.") #:configure-flags (list (string-append "--bindir=" %output "/bin")) #:phases (modify-phases %standard-phases - (add-after 'unpack 'autogen.sh + (replace 'bootstrap (lambda _ (substitute* "acinclude.m4" (("ncursesw5-config") "ncursesw6-config")) - (zero? (system* "sh" "autogen.sh"))))))) + (invoke "sh" "autogen.sh")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) From 4e80516c0cd07c55184057b14930b09441cb33ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 17 Jul 2018 12:17:46 +0200 Subject: [PATCH 166/374] gnu: guix: Build with Guile 2.2.4. * gnu/packages/package-management.scm (guix)[inputs]: Switch to GUILE-2.2.4. --- gnu/packages/package-management.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 61e203c611..acf6d4fdb9 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -263,7 +263,10 @@ ("sqlite" ,sqlite) ("libgcrypt" ,libgcrypt) - ("guile" ,guile-2.2) + + ;; Use 2.2.4 to avoid various thread-safety issues while building + ;; code in parallel. + ("guile" ,guile-2.2.4) ;; Many tests rely on the 'guile-bootstrap' package, which is why we ;; have it here. From 86da991f41b808f1af0443f99b719bb5b8e202e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 17 Jul 2018 12:18:08 +0200 Subject: [PATCH 167/374] gnu: guix: Update to 8bbb79c. * gnu/packages/package-management.scm (guix): Update to 8bbb79c. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index acf6d4fdb9..639d81bcc1 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -101,8 +101,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.15.0") - (commit "4876bc8234095e2af191b0c6470455ce67d9f5f7") - (revision 1)) + (commit "8bbb79cf95a07a40950448a8a09d888254404ed4") + (revision 2)) (package (name "guix") @@ -118,7 +118,7 @@ (commit commit))) (sha256 (base32 - "0qw0ffrxzxfk76pp38kx222ndpsv9mbhlmfycagyipgypgjdd9lq")) + "0h83l91v2cg9bb78c7vqx9wj71ckz22jbjmm2fy4vqs9216jnvc0")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments From 39eec9881d965060039a2b6bfbf545f06253161c Mon Sep 17 00:00:00 2001 From: Nils Gillmann Date: Mon, 16 Jul 2018 09:58:02 +0000 Subject: [PATCH 168/374] gnu: erlang: Update to 21.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/erlang.scm (erlang): Update to 21.0. Signed-off-by: Nils Gillmann Signed-off-by: Ludovic Courtès --- gnu/packages/erlang.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 1c18efe9da..f0b2f350c2 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2016, 2017 Pjotr Prins ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright (C) 2018 Nils Gillmann ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +38,7 @@ (define-public erlang (package (name "erlang") - (version "20.2.3") + (version "21.0") (source (origin (method url-fetch) ;; The tarball from http://erlang.org/download contains many @@ -48,7 +49,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0s9g4ijdbqq21k4cqggz074d3fiimah942qisv2kgizhlivpw2nm")) + "0gv43lra4870xns8b0yjzbq78afzvz9gk6y3q3fa4y4sqcrqwbas")) (patches (search-patches "erlang-man-path.patch")))) (build-system gnu-build-system) (native-inputs @@ -64,7 +65,7 @@ (version-major+minor version) ".tar.gz")) (sha256 (base32 - "1pyb8wbk7znsyni8d1k4dj1m01lr191dcrrzisli1z27ks7hh3lm")))))) + "0cgv23q0215f6lvmhj4w9skx5m29khjs9mb890635s3yp520xgqh")))))) (inputs `(("ncurses" ,ncurses) ("openssl" ,openssl) From e345274adbcfe99ddaa630f5f2dcc115d6fc7b5d Mon Sep 17 00:00:00 2001 From: Nils Gillmann Date: Mon, 16 Jul 2018 09:59:32 +0000 Subject: [PATCH 169/374] gnu: elixir: Update to 1.6.6. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elixir.scm (elixir): Update to 1.6.6. Signed-off-by: Nils Gillmann Signed-off-by: Ludovic Courtès --- gnu/packages/elixir.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index ed6bd00236..26120327f4 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2017 nee ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright (C) 2018 Nils Gillmann ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,7 +33,7 @@ (define-public elixir (package (name "elixir") - (version "1.5.3") + (version "1.6.6") (source (origin (method url-fetch) (uri (string-append "https://github.com/elixir-lang/elixir" @@ -40,10 +41,11 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0acnxfwvkx1m1d0h5z051mz95n35zm468hcvc3wpmn17c15h5ihg")))) + "0c9qz5hasa59a9x1iwpcqpqj6wdbzpijfxqfmzimwj5z8q37nl3l")))) (build-system gnu-build-system) (arguments `(#:test-target "test" + #:parallel-tests? #f ;see #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases From 4fa335949a7d8b45dc4e8906166de0bd6e41d808 Mon Sep 17 00:00:00 2001 From: "Jovany Leandro G.C" Date: Fri, 13 Jul 2018 10:27:52 -0500 Subject: [PATCH 170/374] gnu: twinkle: Add missing headers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/twinkle-include-qregexpvalidator-explicity.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/telephony.scm (twinkle)[source]: Use it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + .../twinkle-include-qregexpvalidator.patch | 123 ++++++++++++++++++ gnu/packages/telephony.scm | 2 + 3 files changed, 126 insertions(+) create mode 100755 gnu/packages/patches/twinkle-include-qregexpvalidator.patch diff --git a/gnu/local.mk b/gnu/local.mk index d40b1963db..be435c5288 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1162,6 +1162,7 @@ dist_patch_DATA = \ %D%/packages/patches/tophat-build-with-later-seqan.patch \ %D%/packages/patches/totem-meson-easy-codec.patch \ %D%/packages/patches/tuxpaint-stamps-path.patch \ + %D%/packages/patches/twinkle-include-qregexpvalidator.patch \ %D%/packages/patches/unrtf-CVE-2016-10091.patch \ %D%/packages/patches/unzip-CVE-2014-8139.patch \ %D%/packages/patches/unzip-CVE-2014-8140.patch \ diff --git a/gnu/packages/patches/twinkle-include-qregexpvalidator.patch b/gnu/packages/patches/twinkle-include-qregexpvalidator.patch new file mode 100755 index 0000000000..4096cc8712 --- /dev/null +++ b/gnu/packages/patches/twinkle-include-qregexpvalidator.patch @@ -0,0 +1,123 @@ +Copied from upstream: + +https://github.com/LubosD/twinkle/commit/4b42755619011c117a76bdf98e417ebedc47e319 + +From 4b42755619011c117a76bdf98e417ebedc47e319 Mon Sep 17 00:00:00 2001 +From: Michal Kubecek +Date: Wed, 6 Jun 2018 10:07:21 +0200 +Subject: [PATCH] Include explicitly + +Since Qt 5.11, generated ui_getprofilename.h no longer includes QHeaderView +which breaks the chain that included qvalidator.h in getprofilename.cpp. +As it feels rather fragile to rely on such indirect includes, let's include + explicitly in each file using QRegExpValidator class. +--- + src/gui/diamondcardprofileform.cpp | 1 + + src/gui/getprofilenameform.cpp | 2 +- + src/gui/inviteform.cpp | 1 + + src/gui/mphoneform.cpp | 1 + + src/gui/numberconversionform.cpp | 1 + + src/gui/syssettingsform.cpp | 1 + + src/gui/userprofileform.cpp | 1 + + src/gui/wizardform.cpp | 1 + + 8 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/gui/diamondcardprofileform.cpp b/src/gui/diamondcardprofileform.cpp +index 6656909..517180b 100644 +--- a/src/gui/diamondcardprofileform.cpp ++++ b/src/gui/diamondcardprofileform.cpp +@@ -21,6 +21,7 @@ + + #include + #include ++#include + #include "gui.h" + #include "diamondcard.h" + #include "getprofilenameform.h" +diff --git a/src/gui/getprofilenameform.cpp b/src/gui/getprofilenameform.cpp +index 1319e1d..89c715e 100644 +--- a/src/gui/getprofilenameform.cpp ++++ b/src/gui/getprofilenameform.cpp +@@ -1,7 +1,7 @@ + #include "getprofilenameform.h" +- + #include + #include ++#include + #include "user.h" + #include "protocol.h" + +diff --git a/src/gui/inviteform.cpp b/src/gui/inviteform.cpp +index 433fb22..2a5b68d 100644 +--- a/src/gui/inviteform.cpp ++++ b/src/gui/inviteform.cpp +@@ -7,6 +7,7 @@ + #include "sys_settings.h" + #include + #include ++#include + + /* + Copyright (C) 2005-2009 Michel de Boer +diff --git a/src/gui/mphoneform.cpp b/src/gui/mphoneform.cpp +index 260fda7..c4e3c1d 100644 +--- a/src/gui/mphoneform.cpp ++++ b/src/gui/mphoneform.cpp +@@ -54,6 +54,7 @@ + #include + #include + #include ++#include + #include "buddyform.h" + #include "diamondcardprofileform.h" + #include "osd.h" +diff --git a/src/gui/numberconversionform.cpp b/src/gui/numberconversionform.cpp +index f8ae64c..8481a9b 100644 +--- a/src/gui/numberconversionform.cpp ++++ b/src/gui/numberconversionform.cpp +@@ -1,5 +1,6 @@ + #include "numberconversionform.h" + ++#include + #include "gui.h" + + /* +diff --git a/src/gui/syssettingsform.cpp b/src/gui/syssettingsform.cpp +index 216af54..355df59 100644 +--- a/src/gui/syssettingsform.cpp ++++ b/src/gui/syssettingsform.cpp +@@ -28,6 +28,7 @@ + #include "twinkle_config.h" + #include + #include ++#include + #include "syssettingsform.h" + /* + * Constructs a SysSettingsForm as a child of 'parent', with the +diff --git a/src/gui/userprofileform.cpp b/src/gui/userprofileform.cpp +index 28700a6..9ed9209 100644 +--- a/src/gui/userprofileform.cpp ++++ b/src/gui/userprofileform.cpp +@@ -31,6 +31,7 @@ + #include + #include "twinkle_config.h" + #include ++#include + #include "numberconversionform.h" + #include "util.h" + #include "userprofileform.h" +diff --git a/src/gui/wizardform.cpp b/src/gui/wizardform.cpp +index 777aa12..f925875 100644 +--- a/src/gui/wizardform.cpp ++++ b/src/gui/wizardform.cpp +@@ -23,6 +23,7 @@ + #include + #include "gui.h" + #include ++#include + #include "wizardform.h" + + #define PROV_NONE QT_TRANSLATE_NOOP("WizardForm", "None (direct IP to IP calls)") +-- +2.17.0 + diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 246d85901c..2055034117 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -485,6 +485,8 @@ Mumble consists of two applications for separate usage: (uri (git-reference (url "https://github.com/LubosD/twinkle") (commit commit))) + (patches + (search-patches "twinkle-include-qregexpvalidator.patch")) (file-name (git-file-name name version)) (sha256 (base32 From 700987f72c870b9a8e3ed6cd538064e2c2b8f3ce Mon Sep 17 00:00:00 2001 From: 43317 <43317@etu.he2b.be> Date: Fri, 13 Jul 2018 15:28:41 +0200 Subject: [PATCH 171/374] gnu: Add luakit. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/web-browsers.scm (luakit): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/web-browsers.scm | 68 +++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index e36677282a..56bfa6ab28 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -27,12 +27,16 @@ #:use-module (guix packages) #:use-module (gnu packages) #:use-module (gnu packages compression) + #:use-module (gnu packages databases) #:use-module (gnu packages documentation) #:use-module (gnu packages fltk) #:use-module (gnu packages fontutils) + #:use-module (gnu packages gtk) #:use-module (gnu packages gnupg) #:use-module (gnu packages libevent) #:use-module (gnu packages libidn) + #:use-module (gnu packages lua) + #:use-module (gnu packages gnome) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -41,9 +45,11 @@ #:use-module (gnu packages qt) #:use-module (gnu packages image) #:use-module (gnu packages tls) + #:use-module (gnu packages webkit) #:use-module (gnu packages xorg) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system python)) (define-public dillo @@ -128,6 +134,68 @@ features including, tables, builtin image display, bookmarks, SSL and more.") ;; linking of the program with openssl. (license license:gpl1+))) +(define-public luakit + (package + (name "luakit") + (version "2017.08.10") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/luakit/luakit/archive/" version + ".tar.gz")) + (sha256 + (base32 + "0dwxhnq90whakgdg21lzcf03n2g1c7hqgliwhav8av5na5mqpn93")) + (file-name (string-append name "-" version ".tar.gz")))) + (inputs + `(("lua-5.1", lua-5.1) + ("gtk+" ,gtk+) + ("gsettings-desktop-schemas", gsettings-desktop-schemas) + ("glib-networking", glib-networking) + ("lua5.1-filesystem", lua5.1-filesystem) + ("luajit", luajit) + ("webkitgtk", webkitgtk) + ("sqlite", sqlite))) + (native-inputs + `(("pkg-config", pkg-config))) + (build-system glib-or-gtk-build-system) + (arguments + '(#:make-flags + (let ((out (assoc-ref %outputs "out"))) + (list + "CC=gcc" + "LUA_BIN_NAME=lua" + "DEVELOPMENT_PATHS=0" + (string-append "PREFIX=" out) + (string-append "XDGPREFIX=" out "/etc/xdg"))) + #:phases + (modify-phases %standard-phases + (add-before 'build 'lfs-workaround + (lambda _ + (setenv "LUA_CPATH" + (string-append + (assoc-ref %build-inputs "lua5.1-filesystem") + "/lib/lua/5.1/?.so;;")) + #t)) + (delete 'configure) + (delete 'check) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((luakit (assoc-ref outputs "out")) + (lua5.1-filesystem (assoc-ref inputs "lua5.1-filesystem") ) + (gtk (assoc-ref inputs "gtk+")) + (gtk-share (string-append gtk "/share"))) + (wrap-program (string-append luakit "/bin/luakit") + `("LUA_CPATH" prefix + (,(string-append lua5.1-filesystem + "/lib/lua/5.1/?.so;;")))) + #t)))))) + (synopsis "Fast, lightweight, and simple browser based on WebKit") + (description "Luakit is a fast, lightweight, and simple to use +micro-browser framework extensible by Lua using the WebKit web content engine +and the GTK+ toolkit.") + (home-page "https://luakit.github.io/") + (license license:gpl3+))) + (define-public lynx (package (name "lynx") From d65f0661f363e524cef85ef4878897b50d7619fb Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Tue, 17 Jul 2018 12:49:20 -0400 Subject: [PATCH 172/374] gnu: Add qhull. * gnu/packages/maths.scm (qhull): New variable. --- gnu/packages/maths.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 1e0e1998db..66350d1933 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -207,6 +207,37 @@ programming languages.") (home-page "https://stcorp.nl/coda") (license license:gpl2+))) +(define-public qhull + (package + (name "qhull") + (version "2015.2") + (source (origin + (method url-fetch) + (uri (string-append "http://www.qhull.org/download/qhull-" + (car (string-split version #\.)) + "-src-7.2.0.tgz")) + (sha256 + (base32 + "0dm4b2xr3asy6w74khq2zg4gf26zsy3qf9sq7pf7lmrvbj911c3q")))) + (build-system cmake-build-system) + (synopsis "Calculate convex hulls and related structures") + (description + "@code{Qhull} computes the convex hull, Delaunay triangulation, Voronoi +diagram, halfspace intersection about a point, furthest-site Delaunay +triangulation, and furthest-site Voronoi diagram. The source code runs in 2-d, +3-d, 4-d, and higher dimensions. @code{Qhull} implements the Quickhull +algorithm for computing the convex hull. It handles roundoff errors from +floating point arithmetic. It computes volumes, surface areas, and +approximations to the convex hull. + +@code{Qhull} does not support triangulation of non-convex surfaces, mesh +generation of non-convex objects, medium-sized inputs in 9-D and higher, alpha +shapes, weighted Voronoi diagrams, Voronoi volumes, or constrained Delaunay +triangulations.") + (home-page "http://qhull.org") + (license (license:non-copyleft "file://COPYING.txt" + "See COPYING in the distribution.")))) + (define-public units (package (name "units") From c215fa2135fb1ceea08da5b1219aaa54338b13ec Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Tue, 17 Jul 2018 15:29:05 -0400 Subject: [PATCH 173/374] gnu: octave: Add qhull support. * gnu/packages/maths.scm (octave)[inputs]: Add qhull. --- gnu/packages/maths.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 66350d1933..fd3626a595 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1367,6 +1367,7 @@ can solve two kinds of problems: (build-system gnu-build-system) (inputs `(("lapack" ,lapack) + ("qhull" ,qhull) ("readline" ,readline) ("gl2ps" ,gl2ps) ("glpk" ,glpk) From 21e6428dc7851bf06a68beef6e4125553aef8d88 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Tue, 17 Jul 2018 21:53:03 +0200 Subject: [PATCH 174/374] gnu: mplayer: Compile with ffmpeg-3.4. * gnu/packages/video.scm (mplayer)[inputs]: Replace ffmpeg by ffmpeg-3.4. --- gnu/packages/video.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 1cc0d5dfde..daf188d810 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -998,7 +998,7 @@ treaming protocols.") (inputs `(("alsa-lib" ,alsa-lib) ("cdparanoia" ,cdparanoia) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-3.4) ("fontconfig" ,fontconfig) ("freetype" ,freetype) ;; ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5 From 3078002716aaf5166d430d0311190eaf5ffe64c7 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Tue, 17 Jul 2018 22:42:25 +0200 Subject: [PATCH 175/374] gnu: handbrake: Compile with ffmpeg-3.4. * gnu/packages/video.scm (handbrake)[inputs]: Replace ffmpeg by ffmpeg-3.4. --- gnu/packages/video.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index daf188d810..8baba655e8 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -2336,7 +2336,7 @@ supported players in addition to this package.") (inputs `(("bzip2" ,bzip2) ("dbus-glib" ,dbus-glib) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-3.4) ;compilation errors with ffmpeg-4 ("fontconfig" ,fontconfig) ("freetype" ,freetype) ("glib" ,glib) From 16dc5ed0396a2edfb4e7f729ec43392c74ebdc7a Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 17 Jul 2018 23:25:00 +0200 Subject: [PATCH 176/374] gnu: php: Update to 7.2.7. * gnu/packages/php.scm (php): Update to 7.2.7. --- gnu/packages/php.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index 1acab0de71..36e29bdcc2 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -62,7 +62,7 @@ (define-public php (package (name "php") - (version "7.2.4") + (version "7.2.7") (home-page "https://secure.php.net/") (source (origin (method url-fetch) @@ -70,7 +70,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "123s0lbyz4fxr3kk91r4v658mk899dym36lggxnx9pwd2jyv25kr")) + "1w1iix3hkwlgkr83zpr2wbnjzd8lwhy02i5hp1j1zbrv7caw00gb")) (modules '((guix build utils))) (snippet '(with-directory-excursion "ext" @@ -248,6 +248,9 @@ ;; iconv breaks the loop after the first error with Termsig=11. "ext/iconv/tests/iconv_strpos_variation4.phpt" "ext/iconv/tests/iconv_strrpos_variation3.phpt" + ;; Expects "invalid multibyte sequence" but got + ;; "unknown error". + "ext/iconv/tests/bug76249.phpt" ;; XXX: These test failures appear legitimate, needs investigation. ;; open_basedir() restriction failure. @@ -288,7 +291,10 @@ "ext/mbstring/tests/mb_ereg_variation3.phpt" "ext/mbstring/tests/mb_ereg_replace_variation1.phpt" "ext/mbstring/tests/bug72994.phpt" - "ext/ldap/tests/ldap_set_option_error.phpt")) + "ext/ldap/tests/ldap_set_option_error.phpt" + + ;; Sometimes cannot start the LDAP server. + "ext/ldap/tests/bug76248.phpt")) ;; Skip tests requiring network access. (setenv "SKIP_ONLINE_TESTS" "1") From 5691898f28cd2e24c14de28c45f25bf3b03b1c41 Mon Sep 17 00:00:00 2001 From: Jack Hill Date: Mon, 16 Jul 2018 13:22:28 -0400 Subject: [PATCH 177/374] gnu: Add emacs-markup-faces * gnu/packages/emacs.scm (emacs-markup-faces): New variable. Signed-off-by: Leo Famulari --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 20d5597f5f..726792155d 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -36,6 +36,7 @@ ;;; Copyright © 2018 Mathieu Lirzin ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2018 Tim Gesthuizen +;;; Copyright © 2018 Jack Hill ;;; ;;; This file is part of GNU Guix. ;;; @@ -11475,3 +11476,25 @@ can do different things depending on the context. In this package, it means that, if the cursor is in a currently hidden folded construction, we want to show it; if it's not, we want to hide whatever fold the cursor is in.") (license license:gpl2+)))) + +(define-public emacs-markup-faces + (package + (name "emacs-markup-faces") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://stable.melpa.org/packages/markup-faces-" + version ".el")) + (sha256 + (base32 + "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32")))) + (build-system emacs-build-system) + (home-page "https://github.com/sensorflo/markup-faces") + (synopsis "Collection of Emacs faces for markup language modes") + (description "emacs-markup-faces is like font-lock-faces, but tailored for +markup languages instead programming languages. The sub group markup-faces-text +is also intended for 'text viewing modes' such as info or (wo)man. This gives a +common look and feel, or let's say theme, across different markup language modes +and 'text viewing modes' respectively.") + (license license:gpl3+))) From 36a71ce04d357a594f4b9c17712e9a2330a6fbab Mon Sep 17 00:00:00 2001 From: Jack Hill Date: Mon, 16 Jul 2018 13:24:05 -0400 Subject: [PATCH 178/374] gnu: Add emacs-adoc-mode * gnu/packages/emacs.scm (emacs-adoc-mode): New variable. Signed-off-by: Leo Famulari --- gnu/packages/emacs.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 726792155d..aae6341465 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11498,3 +11498,24 @@ is also intended for 'text viewing modes' such as info or (wo)man. This gives a common look and feel, or let's say theme, across different markup language modes and 'text viewing modes' respectively.") (license license:gpl3+))) + +(define-public emacs-adoc-mode + (package + (name "emacs-adoc-mode") + (version "0.6.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://stable.melpa.org/packages/adoc-mode-" + version ".el")) + (sha256 + (base32 + "1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-markup-faces" ,emacs-markup-faces))) + (home-page "https://github.com/sensorflo/adoc-mode/wiki") + (synopsis "AsciiDoc mode for Emacs") + (description "This package provides an Emacs major mode for editing AsciiDoc +files. It focuses on highlighting the document to improve readability.") + (license license:gpl2+))) From 02d7e9417d6b09994fbdf5eda96f0ff82b1c5dad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 17 Jul 2018 15:36:00 +0200 Subject: [PATCH 179/374] build: Remove copy of (srfi srfi-64). SRFI-64 was added in Guile 2.0.10 and we require 2.0.13 or newer. * Makefile.am (EXTRA_DIST): Remove srfi/*. * srfi: Remove directory. --- Makefile.am | 2 - srfi/srfi-64.scm | 41 -- srfi/srfi-64.upstream.scm | 1040 ------------------------------------- 3 files changed, 1083 deletions(-) delete mode 100644 srfi/srfi-64.scm delete mode 100644 srfi/srfi-64.upstream.scm diff --git a/Makefile.am b/Makefile.am index 134ab0f142..6733f4f894 100644 --- a/Makefile.am +++ b/Makefile.am @@ -498,8 +498,6 @@ EXTRA_DIST += \ build-aux/run-system-tests.scm \ d3.v3.js \ graph.js \ - srfi/srfi-64.scm \ - srfi/srfi-64.upstream.scm \ tests/test.drv \ tests/signing-key.pub \ tests/signing-key.sec \ diff --git a/srfi/srfi-64.scm b/srfi/srfi-64.scm deleted file mode 100644 index f053443b39..0000000000 --- a/srfi/srfi-64.scm +++ /dev/null @@ -1,41 +0,0 @@ -(define-module (srfi srfi-64) - #:export (test-begin ;; must be listed first, since in Kawa (at least) it is "magic". - test-end test-assert test-eqv test-eq test-equal - test-approximate test-assert test-error test-apply test-with-runner - test-match-nth test-match-all test-match-any test-match-name - test-skip test-expect-fail test-read-eval-string - test-runner-group-path test-group test-group-with-cleanup - test-result-ref test-result-set! test-result-clear test-result-remove - test-result-kind test-passed? - test-log-to-file - ; Misc test-runner functions - test-runner? test-runner-reset test-runner-null - test-runner-simple test-runner-current test-runner-factory test-runner-get - test-runner-create test-runner-test-name - ;; test-runner field setter and getter functions - see %test-record-define: - test-runner-pass-count test-runner-pass-count! - test-runner-fail-count test-runner-fail-count! - test-runner-xpass-count test-runner-xpass-count! - test-runner-xfail-count test-runner-xfail-count! - test-runner-skip-count test-runner-skip-count! - test-runner-group-stack test-runner-group-stack! - test-runner-on-test-begin test-runner-on-test-begin! - test-runner-on-test-end test-runner-on-test-end! - test-runner-on-group-begin test-runner-on-group-begin! - test-runner-on-group-end test-runner-on-group-end! - test-runner-on-final test-runner-on-final! - test-runner-on-bad-count test-runner-on-bad-count! - test-runner-on-bad-end-name test-runner-on-bad-end-name! - test-result-alist test-result-alist! - test-runner-aux-value test-runner-aux-value! - ;; default/simple call-back functions, used in default test-runner, - ;; but can be called to construct more complex ones. - test-on-group-begin-simple test-on-group-end-simple - test-on-bad-count-simple test-on-bad-end-name-simple - test-on-final-simple test-on-test-end-simple - test-on-final-simple)) - -(cond-expand-provide (current-module) '(srfi-64)) - -;; Load Per Bothner's original SRFI-64 implementation. -(load-from-path "srfi/srfi-64.upstream.scm") diff --git a/srfi/srfi-64.upstream.scm b/srfi/srfi-64.upstream.scm deleted file mode 100644 index d686662bfd..0000000000 --- a/srfi/srfi-64.upstream.scm +++ /dev/null @@ -1,1040 +0,0 @@ -;; Copyright (c) 2005, 2006, 2007, 2012, 2013 Per Bothner -;; Added "full" support for Chicken, Gauche, Guile and SISC. -;; Alex Shinn, Copyright (c) 2005. -;; Modified for Scheme Spheres by Álvaro Castro-Castilla, Copyright (c) 2012. -;; Support for Guile 2 by Mark H Weaver , Copyright (c) 2014. -;; -;; Permission is hereby granted, free of charge, to any person -;; obtaining a copy of this software and associated documentation -;; files (the "Software"), to deal in the Software without -;; restriction, including without limitation the rights to use, copy, -;; modify, merge, publish, distribute, sublicense, and/or sell copies -;; of the Software, and to permit persons to whom the Software is -;; furnished to do so, subject to the following conditions: -;; -;; The above copyright notice and this permission notice shall be -;; included in all copies or substantial portions of the Software. -;; -;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -;; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -;; SOFTWARE. - -(cond-expand - (chicken - (require-extension syntax-case)) - (guile-2 - (use-modules (srfi srfi-9) - ;; In 2.0.9, srfi-34 and srfi-35 are not well integrated - ;; with either Guile's native exceptions or R6RS exceptions. - ;;(srfi srfi-34) (srfi srfi-35) - (srfi srfi-39))) - (guile - (use-modules (ice-9 syncase) (srfi srfi-9) - ;;(srfi srfi-34) (srfi srfi-35) - not in Guile 1.6.7 - (srfi srfi-39))) - (sisc - (require-extension (srfi 9 34 35 39))) - (kawa - (module-compile-options warn-undefined-variable: #t - warn-invoke-unknown-method: #t) - (provide 'srfi-64) - (provide 'testing) - (require 'srfi-34) - (require 'srfi-35)) - (else () - )) - -(cond-expand - (kawa - (define-syntax %test-export - (syntax-rules () - ((%test-export test-begin . other-names) - (module-export %test-begin . other-names))))) - (else - (define-syntax %test-export - (syntax-rules () - ((%test-export . names) (if #f #f)))))) - -;; List of exported names -(%test-export - test-begin ;; must be listed first, since in Kawa (at least) it is "magic". - test-end test-assert test-eqv test-eq test-equal - test-approximate test-assert test-error test-apply test-with-runner - test-match-nth test-match-all test-match-any test-match-name - test-skip test-expect-fail test-read-eval-string - test-runner-group-path test-group test-group-with-cleanup - test-result-ref test-result-set! test-result-clear test-result-remove - test-result-kind test-passed? - test-log-to-file - ; Misc test-runner functions - test-runner? test-runner-reset test-runner-null - test-runner-simple test-runner-current test-runner-factory test-runner-get - test-runner-create test-runner-test-name - ;; test-runner field setter and getter functions - see %test-record-define: - test-runner-pass-count test-runner-pass-count! - test-runner-fail-count test-runner-fail-count! - test-runner-xpass-count test-runner-xpass-count! - test-runner-xfail-count test-runner-xfail-count! - test-runner-skip-count test-runner-skip-count! - test-runner-group-stack test-runner-group-stack! - test-runner-on-test-begin test-runner-on-test-begin! - test-runner-on-test-end test-runner-on-test-end! - test-runner-on-group-begin test-runner-on-group-begin! - test-runner-on-group-end test-runner-on-group-end! - test-runner-on-final test-runner-on-final! - test-runner-on-bad-count test-runner-on-bad-count! - test-runner-on-bad-end-name test-runner-on-bad-end-name! - test-result-alist test-result-alist! - test-runner-aux-value test-runner-aux-value! - ;; default/simple call-back functions, used in default test-runner, - ;; but can be called to construct more complex ones. - test-on-group-begin-simple test-on-group-end-simple - test-on-bad-count-simple test-on-bad-end-name-simple - test-on-final-simple test-on-test-end-simple - test-on-final-simple) - -(cond-expand - (srfi-9 - (define-syntax %test-record-define - (syntax-rules () - ((%test-record-define alloc runner? (name index setter getter) ...) - (define-record-type test-runner - (alloc) - runner? - (name setter getter) ...))))) - (else - (define %test-runner-cookie (list "test-runner")) - (define-syntax %test-record-define - (syntax-rules () - ((%test-record-define alloc runner? (name index getter setter) ...) - (begin - (define (runner? obj) - (and (vector? obj) - (> (vector-length obj) 1) - (eq (vector-ref obj 0) %test-runner-cookie))) - (define (alloc) - (let ((runner (make-vector 23))) - (vector-set! runner 0 %test-runner-cookie) - runner)) - (begin - (define (getter runner) - (vector-ref runner index)) ...) - (begin - (define (setter runner value) - (vector-set! runner index value)) ...))))))) - -(%test-record-define - %test-runner-alloc test-runner? - ;; Cumulate count of all tests that have passed and were expected to. - (pass-count 1 test-runner-pass-count test-runner-pass-count!) - (fail-count 2 test-runner-fail-count test-runner-fail-count!) - (xpass-count 3 test-runner-xpass-count test-runner-xpass-count!) - (xfail-count 4 test-runner-xfail-count test-runner-xfail-count!) - (skip-count 5 test-runner-skip-count test-runner-skip-count!) - (skip-list 6 %test-runner-skip-list %test-runner-skip-list!) - (fail-list 7 %test-runner-fail-list %test-runner-fail-list!) - ;; Normally #t, except when in a test-apply. - (run-list 8 %test-runner-run-list %test-runner-run-list!) - (skip-save 9 %test-runner-skip-save %test-runner-skip-save!) - (fail-save 10 %test-runner-fail-save %test-runner-fail-save!) - (group-stack 11 test-runner-group-stack test-runner-group-stack!) - (on-test-begin 12 test-runner-on-test-begin test-runner-on-test-begin!) - (on-test-end 13 test-runner-on-test-end test-runner-on-test-end!) - ;; Call-back when entering a group. Takes (runner suite-name count). - (on-group-begin 14 test-runner-on-group-begin test-runner-on-group-begin!) - ;; Call-back when leaving a group. - (on-group-end 15 test-runner-on-group-end test-runner-on-group-end!) - ;; Call-back when leaving the outermost group. - (on-final 16 test-runner-on-final test-runner-on-final!) - ;; Call-back when expected number of tests was wrong. - (on-bad-count 17 test-runner-on-bad-count test-runner-on-bad-count!) - ;; Call-back when name in test=end doesn't match test-begin. - (on-bad-end-name 18 test-runner-on-bad-end-name test-runner-on-bad-end-name!) - ;; Cumulate count of all tests that have been done. - (total-count 19 %test-runner-total-count %test-runner-total-count!) - ;; Stack (list) of (count-at-start . expected-count): - (count-list 20 %test-runner-count-list %test-runner-count-list!) - (result-alist 21 test-result-alist test-result-alist!) - ;; Field can be used by test-runner for any purpose. - ;; test-runner-simple uses it for a log file. - (aux-value 22 test-runner-aux-value test-runner-aux-value!) -) - -(define (test-runner-reset runner) - (test-result-alist! runner '()) - (test-runner-pass-count! runner 0) - (test-runner-fail-count! runner 0) - (test-runner-xpass-count! runner 0) - (test-runner-xfail-count! runner 0) - (test-runner-skip-count! runner 0) - (%test-runner-total-count! runner 0) - (%test-runner-count-list! runner '()) - (%test-runner-run-list! runner #t) - (%test-runner-skip-list! runner '()) - (%test-runner-fail-list! runner '()) - (%test-runner-skip-save! runner '()) - (%test-runner-fail-save! runner '()) - (test-runner-group-stack! runner '())) - -(define (test-runner-group-path runner) - (reverse (test-runner-group-stack runner))) - -(define (%test-null-callback runner) #f) - -(define (test-runner-null) - (let ((runner (%test-runner-alloc))) - (test-runner-reset runner) - (test-runner-on-group-begin! runner (lambda (runner name count) #f)) - (test-runner-on-group-end! runner %test-null-callback) - (test-runner-on-final! runner %test-null-callback) - (test-runner-on-test-begin! runner %test-null-callback) - (test-runner-on-test-end! runner %test-null-callback) - (test-runner-on-bad-count! runner (lambda (runner count expected) #f)) - (test-runner-on-bad-end-name! runner (lambda (runner begin end) #f)) - runner)) - -;; Not part of the specification. FIXME -;; Controls whether a log file is generated. -(define test-log-to-file #t) - -(define (test-runner-simple) - (let ((runner (%test-runner-alloc))) - (test-runner-reset runner) - (test-runner-on-group-begin! runner test-on-group-begin-simple) - (test-runner-on-group-end! runner test-on-group-end-simple) - (test-runner-on-final! runner test-on-final-simple) - (test-runner-on-test-begin! runner test-on-test-begin-simple) - (test-runner-on-test-end! runner test-on-test-end-simple) - (test-runner-on-bad-count! runner test-on-bad-count-simple) - (test-runner-on-bad-end-name! runner test-on-bad-end-name-simple) - runner)) - -(cond-expand - (srfi-39 - (define test-runner-current (make-parameter #f)) - (define test-runner-factory (make-parameter test-runner-simple))) - (else - (define %test-runner-current #f) - (define-syntax test-runner-current - (syntax-rules () - ((test-runner-current) - %test-runner-current) - ((test-runner-current runner) - (set! %test-runner-current runner)))) - (define %test-runner-factory test-runner-simple) - (define-syntax test-runner-factory - (syntax-rules () - ((test-runner-factory) - %test-runner-factory) - ((test-runner-factory runner) - (set! %test-runner-factory runner)))))) - -;; A safer wrapper to test-runner-current. -(define (test-runner-get) - (let ((r (test-runner-current))) - (if (not r) - (cond-expand - (srfi-23 (error "test-runner not initialized - test-begin missing?")) - (else #t))) - r)) - -(define (%test-specifier-matches spec runner) - (spec runner)) - -(define (test-runner-create) - ((test-runner-factory))) - -(define (%test-any-specifier-matches list runner) - (let ((result #f)) - (let loop ((l list)) - (cond ((null? l) result) - (else - (if (%test-specifier-matches (car l) runner) - (set! result #t)) - (loop (cdr l))))))) - -;; Returns #f, #t, or 'xfail. -(define (%test-should-execute runner) - (let ((run (%test-runner-run-list runner))) - (cond ((or - (not (or (eqv? run #t) - (%test-any-specifier-matches run runner))) - (%test-any-specifier-matches - (%test-runner-skip-list runner) - runner)) - (test-result-set! runner 'result-kind 'skip) - #f) - ((%test-any-specifier-matches - (%test-runner-fail-list runner) - runner) - (test-result-set! runner 'result-kind 'xfail) - 'xfail) - (else #t)))) - -(define (%test-begin suite-name count) - (if (not (test-runner-current)) - (test-runner-current (test-runner-create))) - (let ((runner (test-runner-current))) - ((test-runner-on-group-begin runner) runner suite-name count) - (%test-runner-skip-save! runner - (cons (%test-runner-skip-list runner) - (%test-runner-skip-save runner))) - (%test-runner-fail-save! runner - (cons (%test-runner-fail-list runner) - (%test-runner-fail-save runner))) - (%test-runner-count-list! runner - (cons (cons (%test-runner-total-count runner) - count) - (%test-runner-count-list runner))) - (test-runner-group-stack! runner (cons suite-name - (test-runner-group-stack runner))))) -(cond-expand - (kawa - ;; Kawa has test-begin built in, implemented as: - ;; (begin - ;; (cond-expand (srfi-64 #!void) (else (require 'srfi-64))) - ;; (%test-begin suite-name [count])) - ;; This puts test-begin but only test-begin in the default environment., - ;; which makes normal test suites loadable without non-portable commands. - ) - (else - (define-syntax test-begin - (syntax-rules () - ((test-begin suite-name) - (%test-begin suite-name #f)) - ((test-begin suite-name count) - (%test-begin suite-name count)))))) - -(define (test-on-group-begin-simple runner suite-name count) - (if (null? (test-runner-group-stack runner)) - (begin - (display "%%%% Starting test ") - (display suite-name) - (if test-log-to-file - (let* ((log-file-name - (if (string? test-log-to-file) test-log-to-file - (string-append suite-name ".log"))) - (log-file - (cond-expand (mzscheme - (open-output-file log-file-name 'truncate/replace)) - (else (open-output-file log-file-name))))) - (display "%%%% Starting test " log-file) - (display suite-name log-file) - (newline log-file) - (test-runner-aux-value! runner log-file) - (display " (Writing full log to \"") - (display log-file-name) - (display "\")"))) - (newline))) - (let ((log (test-runner-aux-value runner))) - (if (output-port? log) - (begin - (display "Group begin: " log) - (display suite-name log) - (newline log)))) - #f) - -(define (test-on-group-end-simple runner) - (let ((log (test-runner-aux-value runner))) - (if (output-port? log) - (begin - (display "Group end: " log) - (display (car (test-runner-group-stack runner)) log) - (newline log)))) - #f) - -(define (%test-on-bad-count-write runner count expected-count port) - (display "*** Total number of tests was " port) - (display count port) - (display " but should be " port) - (display expected-count port) - (display ". ***" port) - (newline port) - (display "*** Discrepancy indicates testsuite error or exceptions. ***" port) - (newline port)) - -(define (test-on-bad-count-simple runner count expected-count) - (%test-on-bad-count-write runner count expected-count (current-output-port)) - (let ((log (test-runner-aux-value runner))) - (if (output-port? log) - (%test-on-bad-count-write runner count expected-count log)))) - -(define (test-on-bad-end-name-simple runner begin-name end-name) - (let ((msg (string-append (%test-format-line runner) "test-end " begin-name - " does not match test-begin " end-name))) - (cond-expand - (srfi-23 (error msg)) - (else (display msg) (newline))))) - - -(define (%test-final-report1 value label port) - (if (> value 0) - (begin - (display label port) - (display value port) - (newline port)))) - -(define (%test-final-report-simple runner port) - (%test-final-report1 (test-runner-pass-count runner) - "# of expected passes " port) - (%test-final-report1 (test-runner-xfail-count runner) - "# of expected failures " port) - (%test-final-report1 (test-runner-xpass-count runner) - "# of unexpected successes " port) - (%test-final-report1 (test-runner-fail-count runner) - "# of unexpected failures " port) - (%test-final-report1 (test-runner-skip-count runner) - "# of skipped tests " port)) - -(define (test-on-final-simple runner) - (%test-final-report-simple runner (current-output-port)) - (let ((log (test-runner-aux-value runner))) - (if (output-port? log) - (%test-final-report-simple runner log)))) - -(define (%test-format-line runner) - (let* ((line-info (test-result-alist runner)) - (source-file (assq 'source-file line-info)) - (source-line (assq 'source-line line-info)) - (file (if source-file (cdr source-file) ""))) - (if source-line - (string-append file ":" - (number->string (cdr source-line)) ": ") - ""))) - -(define (%test-end suite-name line-info) - (let* ((r (test-runner-get)) - (groups (test-runner-group-stack r)) - (line (%test-format-line r))) - (test-result-alist! r line-info) - (if (null? groups) - (let ((msg (string-append line "test-end not in a group"))) - (cond-expand - (srfi-23 (error msg)) - (else (display msg) (newline))))) - (if (and suite-name (not (equal? suite-name (car groups)))) - ((test-runner-on-bad-end-name r) r suite-name (car groups))) - (let* ((count-list (%test-runner-count-list r)) - (expected-count (cdar count-list)) - (saved-count (caar count-list)) - (group-count (- (%test-runner-total-count r) saved-count))) - (if (and expected-count - (not (= expected-count group-count))) - ((test-runner-on-bad-count r) r group-count expected-count)) - ((test-runner-on-group-end r) r) - (test-runner-group-stack! r (cdr (test-runner-group-stack r))) - (%test-runner-skip-list! r (car (%test-runner-skip-save r))) - (%test-runner-skip-save! r (cdr (%test-runner-skip-save r))) - (%test-runner-fail-list! r (car (%test-runner-fail-save r))) - (%test-runner-fail-save! r (cdr (%test-runner-fail-save r))) - (%test-runner-count-list! r (cdr count-list)) - (if (null? (test-runner-group-stack r)) - ((test-runner-on-final r) r))))) - -(define-syntax test-group - (syntax-rules () - ((test-group suite-name . body) - (let ((r (test-runner-current))) - ;; Ideally should also set line-number, if available. - (test-result-alist! r (list (cons 'test-name suite-name))) - (if (%test-should-execute r) - (dynamic-wind - (lambda () (test-begin suite-name)) - (lambda () . body) - (lambda () (test-end suite-name)))))))) - -(define-syntax test-group-with-cleanup - (syntax-rules () - ((test-group-with-cleanup suite-name form cleanup-form) - (test-group suite-name - (dynamic-wind - (lambda () #f) - (lambda () form) - (lambda () cleanup-form)))) - ((test-group-with-cleanup suite-name cleanup-form) - (test-group-with-cleanup suite-name #f cleanup-form)) - ((test-group-with-cleanup suite-name form1 form2 form3 . rest) - (test-group-with-cleanup suite-name (begin form1 form2) form3 . rest)))) - -(define (test-on-test-begin-simple runner) - (let ((log (test-runner-aux-value runner))) - (if (output-port? log) - (let* ((results (test-result-alist runner)) - (source-file (assq 'source-file results)) - (source-line (assq 'source-line results)) - (source-form (assq 'source-form results)) - (test-name (assq 'test-name results))) - (display "Test begin:" log) - (newline log) - (if test-name (%test-write-result1 test-name log)) - (if source-file (%test-write-result1 source-file log)) - (if source-line (%test-write-result1 source-line log)) - (if source-form (%test-write-result1 source-form log)))))) - -(define-syntax test-result-ref - (syntax-rules () - ((test-result-ref runner pname) - (test-result-ref runner pname #f)) - ((test-result-ref runner pname default) - (let ((p (assq pname (test-result-alist runner)))) - (if p (cdr p) default))))) - -(define (test-on-test-end-simple runner) - (let ((log (test-runner-aux-value runner)) - (kind (test-result-ref runner 'result-kind))) - (if (memq kind '(fail xpass)) - (let* ((results (test-result-alist runner)) - (source-file (assq 'source-file results)) - (source-line (assq 'source-line results)) - (test-name (assq 'test-name results))) - (if (or source-file source-line) - (begin - (if source-file (display (cdr source-file))) - (display ":") - (if source-line (display (cdr source-line))) - (display ": "))) - (display (if (eq? kind 'xpass) "XPASS" "FAIL")) - (if test-name - (begin - (display " ") - (display (cdr test-name)))) - (newline))) - (if (output-port? log) - (begin - (display "Test end:" log) - (newline log) - (let loop ((list (test-result-alist runner))) - (if (pair? list) - (let ((pair (car list))) - ;; Write out properties not written out by on-test-begin. - (if (not (memq (car pair) - '(test-name source-file source-line source-form))) - (%test-write-result1 pair log)) - (loop (cdr list))))))))) - -(define (%test-write-result1 pair port) - (display " " port) - (display (car pair) port) - (display ": " port) - (write (cdr pair) port) - (newline port)) - -(define (test-result-set! runner pname value) - (let* ((alist (test-result-alist runner)) - (p (assq pname alist))) - (if p - (set-cdr! p value) - (test-result-alist! runner (cons (cons pname value) alist))))) - -(define (test-result-clear runner) - (test-result-alist! runner '())) - -(define (test-result-remove runner pname) - (let* ((alist (test-result-alist runner)) - (p (assq pname alist))) - (if p - (test-result-alist! runner - (let loop ((r alist)) - (if (eq? r p) (cdr r) - (cons (car r) (loop (cdr r))))))))) - -(define (test-result-kind . rest) - (let ((runner (if (pair? rest) (car rest) (test-runner-current)))) - (test-result-ref runner 'result-kind))) - -(define (test-passed? . rest) - (let ((runner (if (pair? rest) (car rest) (test-runner-get)))) - (memq (test-result-ref runner 'result-kind) '(pass xpass)))) - -(define (%test-report-result) - (let* ((r (test-runner-get)) - (result-kind (test-result-kind r))) - (case result-kind - ((pass) - (test-runner-pass-count! r (+ 1 (test-runner-pass-count r)))) - ((fail) - (test-runner-fail-count! r (+ 1 (test-runner-fail-count r)))) - ((xpass) - (test-runner-xpass-count! r (+ 1 (test-runner-xpass-count r)))) - ((xfail) - (test-runner-xfail-count! r (+ 1 (test-runner-xfail-count r)))) - (else - (test-runner-skip-count! r (+ 1 (test-runner-skip-count r))))) - (%test-runner-total-count! r (+ 1 (%test-runner-total-count r))) - ((test-runner-on-test-end r) r))) - -(cond-expand - (guile - (define-syntax %test-evaluate-with-catch - (syntax-rules () - ((%test-evaluate-with-catch test-expression) - (catch #t - (lambda () test-expression) - (lambda (key . args) - (test-result-set! (test-runner-current) 'actual-error - (cons key args)) - #f)))))) - (kawa - (define-syntax %test-evaluate-with-catch - (syntax-rules () - ((%test-evaluate-with-catch test-expression) - (try-catch test-expression - (ex - (test-result-set! (test-runner-current) 'actual-error ex) - #f)))))) - (srfi-34 - (define-syntax %test-evaluate-with-catch - (syntax-rules () - ((%test-evaluate-with-catch test-expression) - (guard (err (else #f)) test-expression))))) - (chicken - (define-syntax %test-evaluate-with-catch - (syntax-rules () - ((%test-evaluate-with-catch test-expression) - (condition-case test-expression (ex () #f)))))) - (else - (define-syntax %test-evaluate-with-catch - (syntax-rules () - ((%test-evaluate-with-catch test-expression) - test-expression))))) - -(cond-expand - ((or kawa mzscheme) - (cond-expand - (mzscheme - (define-for-syntax (%test-syntax-file form) - (let ((source (syntax-source form))) - (cond ((string? source) file) - ((path? source) (path->string source)) - (else #f))))) - (kawa - (define (%test-syntax-file form) - (syntax-source form)))) - (define (%test-source-line2 form) - (let* ((line (syntax-line form)) - (file (%test-syntax-file form)) - (line-pair (if line (list (cons 'source-line line)) '()))) - (cons (cons 'source-form (syntax-object->datum form)) - (if file (cons (cons 'source-file file) line-pair) line-pair))))) - (guile-2 - (define (%test-source-line2 form) - (let* ((src-props (syntax-source form)) - (file (and src-props (assq-ref src-props 'filename))) - (line (and src-props (assq-ref src-props 'line))) - (file-alist (if file - `((source-file . ,file)) - '())) - (line-alist (if line - `((source-line . ,(+ line 1))) - '()))) - (datum->syntax (syntax here) - `((source-form . ,(syntax->datum form)) - ,@file-alist - ,@line-alist))))) - (else - (define (%test-source-line2 form) - '()))) - -(define (%test-on-test-begin r) - (%test-should-execute r) - ((test-runner-on-test-begin r) r) - (not (eq? 'skip (test-result-ref r 'result-kind)))) - -(define (%test-on-test-end r result) - (test-result-set! r 'result-kind - (if (eq? (test-result-ref r 'result-kind) 'xfail) - (if result 'xpass 'xfail) - (if result 'pass 'fail)))) - -(define (test-runner-test-name runner) - (test-result-ref runner 'test-name "")) - -(define-syntax %test-comp2body - (syntax-rules () - ((%test-comp2body r comp expected expr) - (let () - (if (%test-on-test-begin r) - (let ((exp expected)) - (test-result-set! r 'expected-value exp) - (let ((res (%test-evaluate-with-catch expr))) - (test-result-set! r 'actual-value res) - (%test-on-test-end r (comp exp res))))) - (%test-report-result))))) - -(define (%test-approximate= error) - (lambda (value expected) - (let ((rval (real-part value)) - (ival (imag-part value)) - (rexp (real-part expected)) - (iexp (imag-part expected))) - (and (>= rval (- rexp error)) - (>= ival (- iexp error)) - (<= rval (+ rexp error)) - (<= ival (+ iexp error)))))) - -(define-syntax %test-comp1body - (syntax-rules () - ((%test-comp1body r expr) - (let () - (if (%test-on-test-begin r) - (let () - (let ((res (%test-evaluate-with-catch expr))) - (test-result-set! r 'actual-value res) - (%test-on-test-end r res)))) - (%test-report-result))))) - -(cond-expand - ((or kawa mzscheme guile-2) - ;; Should be made to work for any Scheme with syntax-case - ;; However, I haven't gotten the quoting working. FIXME. - (define-syntax test-end - (lambda (x) - (syntax-case (list x (list (syntax quote) (%test-source-line2 x))) () - (((mac suite-name) line) - (syntax - (%test-end suite-name line))) - (((mac) line) - (syntax - (%test-end #f line)))))) - (define-syntax test-assert - (lambda (x) - (syntax-case (list x (list (syntax quote) (%test-source-line2 x))) () - (((mac tname expr) line) - (syntax - (let* ((r (test-runner-get)) - (name tname)) - (test-result-alist! r (cons (cons 'test-name tname) line)) - (%test-comp1body r expr)))) - (((mac expr) line) - (syntax - (let* ((r (test-runner-get))) - (test-result-alist! r line) - (%test-comp1body r expr))))))) - (define (%test-comp2 comp x) - (syntax-case (list x (list (syntax quote) (%test-source-line2 x)) comp) () - (((mac tname expected expr) line comp) - (syntax - (let* ((r (test-runner-get)) - (name tname)) - (test-result-alist! r (cons (cons 'test-name tname) line)) - (%test-comp2body r comp expected expr)))) - (((mac expected expr) line comp) - (syntax - (let* ((r (test-runner-get))) - (test-result-alist! r line) - (%test-comp2body r comp expected expr)))))) - (define-syntax test-eqv - (lambda (x) (%test-comp2 (syntax eqv?) x))) - (define-syntax test-eq - (lambda (x) (%test-comp2 (syntax eq?) x))) - (define-syntax test-equal - (lambda (x) (%test-comp2 (syntax equal?) x))) - (define-syntax test-approximate ;; FIXME - needed for non-Kawa - (lambda (x) - (syntax-case (list x (list (syntax quote) (%test-source-line2 x))) () - (((mac tname expected expr error) line) - (syntax - (let* ((r (test-runner-get)) - (name tname)) - (test-result-alist! r (cons (cons 'test-name tname) line)) - (%test-comp2body r (%test-approximate= error) expected expr)))) - (((mac expected expr error) line) - (syntax - (let* ((r (test-runner-get))) - (test-result-alist! r line) - (%test-comp2body r (%test-approximate= error) expected expr)))))))) - (else - (define-syntax test-end - (syntax-rules () - ((test-end) - (%test-end #f '())) - ((test-end suite-name) - (%test-end suite-name '())))) - (define-syntax test-assert - (syntax-rules () - ((test-assert tname test-expression) - (let* ((r (test-runner-get)) - (name tname)) - (test-result-alist! r '((test-name . tname))) - (%test-comp1body r test-expression))) - ((test-assert test-expression) - (let* ((r (test-runner-get))) - (test-result-alist! r '()) - (%test-comp1body r test-expression))))) - (define-syntax %test-comp2 - (syntax-rules () - ((%test-comp2 comp tname expected expr) - (let* ((r (test-runner-get)) - (name tname)) - (test-result-alist! r (list (cons 'test-name tname))) - (%test-comp2body r comp expected expr))) - ((%test-comp2 comp expected expr) - (let* ((r (test-runner-get))) - (test-result-alist! r '()) - (%test-comp2body r comp expected expr))))) - (define-syntax test-equal - (syntax-rules () - ((test-equal . rest) - (%test-comp2 equal? . rest)))) - (define-syntax test-eqv - (syntax-rules () - ((test-eqv . rest) - (%test-comp2 eqv? . rest)))) - (define-syntax test-eq - (syntax-rules () - ((test-eq . rest) - (%test-comp2 eq? . rest)))) - (define-syntax test-approximate - (syntax-rules () - ((test-approximate tname expected expr error) - (%test-comp2 (%test-approximate= error) tname expected expr)) - ((test-approximate expected expr error) - (%test-comp2 (%test-approximate= error) expected expr)))))) - -(cond-expand - (guile - (define-syntax %test-error - (syntax-rules () - ((%test-error r etype expr) - (cond ((%test-on-test-begin r) - (let ((et etype)) - (test-result-set! r 'expected-error et) - (%test-on-test-end r - (catch #t - (lambda () - (test-result-set! r 'actual-value expr) - #f) - (lambda (key . args) - ;; TODO: decide how to specify expected - ;; error types for Guile. - (test-result-set! r 'actual-error - (cons key args)) - #t))) - (%test-report-result)))))))) - (mzscheme - (define-syntax %test-error - (syntax-rules () - ((%test-error r etype expr) - (%test-comp1body r (with-handlers (((lambda (h) #t) (lambda (h) #t))) - (let () - (test-result-set! r 'actual-value expr) - #f))))))) - (chicken - (define-syntax %test-error - (syntax-rules () - ((%test-error r etype expr) - (%test-comp1body r (condition-case expr (ex () #t))))))) - (kawa - (define-syntax %test-error - (syntax-rules () - ((%test-error r #t expr) - (cond ((%test-on-test-begin r) - (test-result-set! r 'expected-error #t) - (%test-on-test-end r - (try-catch - (let () - (test-result-set! r 'actual-value expr) - #f) - (ex - (test-result-set! r 'actual-error ex) - #t))) - (%test-report-result)))) - ((%test-error r etype expr) - (if (%test-on-test-begin r) - (let ((et etype)) - (test-result-set! r 'expected-error et) - (%test-on-test-end r - (try-catch - (let () - (test-result-set! r 'actual-value expr) - #f) - (ex - (test-result-set! r 'actual-error ex) - (cond ((and (instance? et ) - (gnu.bytecode.ClassType:isSubclass et )) - (instance? ex et)) - (else #t))))) - (%test-report-result))))))) - ((and srfi-34 srfi-35) - (define-syntax %test-error - (syntax-rules () - ((%test-error r etype expr) - (%test-comp1body r (guard (ex ((condition-type? etype) - (and (condition? ex) (condition-has-type? ex etype))) - ((procedure? etype) - (etype ex)) - ((equal? etype #t) - #t) - (else #t)) - expr #f)))))) - (srfi-34 - (define-syntax %test-error - (syntax-rules () - ((%test-error r etype expr) - (%test-comp1body r (guard (ex (else #t)) expr #f)))))) - (else - (define-syntax %test-error - (syntax-rules () - ((%test-error r etype expr) - (begin - ((test-runner-on-test-begin r) r) - (test-result-set! r 'result-kind 'skip) - (%test-report-result))))))) - -(cond-expand - ((or kawa mzscheme guile-2) - - (define-syntax test-error - (lambda (x) - (syntax-case (list x (list (syntax quote) (%test-source-line2 x))) () - (((mac tname etype expr) line) - (syntax - (let* ((r (test-runner-get)) - (name tname)) - (test-result-alist! r (cons (cons 'test-name tname) line)) - (%test-error r etype expr)))) - (((mac etype expr) line) - (syntax - (let* ((r (test-runner-get))) - (test-result-alist! r line) - (%test-error r etype expr)))) - (((mac expr) line) - (syntax - (let* ((r (test-runner-get))) - (test-result-alist! r line) - (%test-error r #t expr)))))))) - (else - (define-syntax test-error - (syntax-rules () - ((test-error name etype expr) - (let ((r (test-runner-get))) - (test-result-alist! r `((test-name . ,name))) - (%test-error r etype expr))) - ((test-error etype expr) - (let ((r (test-runner-get))) - (test-result-alist! r '()) - (%test-error r etype expr))) - ((test-error expr) - (let ((r (test-runner-get))) - (test-result-alist! r '()) - (%test-error r #t expr))))))) - -(define (test-apply first . rest) - (if (test-runner? first) - (test-with-runner first (apply test-apply rest)) - (let ((r (test-runner-current))) - (if r - (let ((run-list (%test-runner-run-list r))) - (cond ((null? rest) - (%test-runner-run-list! r (reverse run-list)) - (first)) ;; actually apply procedure thunk - (else - (%test-runner-run-list! - r - (if (eq? run-list #t) (list first) (cons first run-list))) - (apply test-apply rest) - (%test-runner-run-list! r run-list)))) - (let ((r (test-runner-create))) - (test-with-runner r (apply test-apply first rest)) - ((test-runner-on-final r) r)))))) - -(define-syntax test-with-runner - (syntax-rules () - ((test-with-runner runner form ...) - (let ((saved-runner (test-runner-current))) - (dynamic-wind - (lambda () (test-runner-current runner)) - (lambda () form ...) - (lambda () (test-runner-current saved-runner))))))) - -;;; Predicates - -(define (%test-match-nth n count) - (let ((i 0)) - (lambda (runner) - (set! i (+ i 1)) - (and (>= i n) (< i (+ n count)))))) - -(define-syntax test-match-nth - (syntax-rules () - ((test-match-nth n) - (test-match-nth n 1)) - ((test-match-nth n count) - (%test-match-nth n count)))) - -(define (%test-match-all . pred-list) - (lambda (runner) - (let ((result #t)) - (let loop ((l pred-list)) - (if (null? l) - result - (begin - (if (not ((car l) runner)) - (set! result #f)) - (loop (cdr l)))))))) - -(define-syntax test-match-all - (syntax-rules () - ((test-match-all pred ...) - (%test-match-all (%test-as-specifier pred) ...)))) - -(define (%test-match-any . pred-list) - (lambda (runner) - (let ((result #f)) - (let loop ((l pred-list)) - (if (null? l) - result - (begin - (if ((car l) runner) - (set! result #t)) - (loop (cdr l)))))))) - -(define-syntax test-match-any - (syntax-rules () - ((test-match-any pred ...) - (%test-match-any (%test-as-specifier pred) ...)))) - -;; Coerce to a predicate function: -(define (%test-as-specifier specifier) - (cond ((procedure? specifier) specifier) - ((integer? specifier) (test-match-nth 1 specifier)) - ((string? specifier) (test-match-name specifier)) - (else - (error "not a valid test specifier")))) - -(define-syntax test-skip - (syntax-rules () - ((test-skip pred ...) - (let ((runner (test-runner-get))) - (%test-runner-skip-list! runner - (cons (test-match-all (%test-as-specifier pred) ...) - (%test-runner-skip-list runner))))))) - -(define-syntax test-expect-fail - (syntax-rules () - ((test-expect-fail pred ...) - (let ((runner (test-runner-get))) - (%test-runner-fail-list! runner - (cons (test-match-all (%test-as-specifier pred) ...) - (%test-runner-fail-list runner))))))) - -(define (test-match-name name) - (lambda (runner) - (equal? name (test-runner-test-name runner)))) - -(define (test-read-eval-string string) - (let* ((port (open-input-string string)) - (form (read port))) - (if (eof-object? (read-char port)) - (cond-expand - (guile (eval form (current-module))) - (else (eval form))) - (cond-expand - (srfi-23 (error "(not at eof)")) - (else "error"))))) - From 3bd0d1866159fa208e640d2ae2c0dffecfc76dd1 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Tue, 17 Jul 2018 11:07:58 -0700 Subject: [PATCH 180/374] gnu: Add nethack. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/games.scm (nethack): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/games.scm | 119 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index a3c770a0ba..dc07f8da3c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -87,6 +87,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages imagemagick) + #:use-module (gnu packages less) #:use-module (gnu packages libcanberra) #:use-module (gnu packages libedit) #:use-module (gnu packages libunwind) @@ -665,6 +666,124 @@ removed lines to all opponents. There is also a Demo mode in which you can watch your CPU playing while enjoying a cup of tea!") (license license:gpl2+))) +(define-public nethack + (package + (name "nethack") + (version "3.6.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://www.nethack.org/download/" + version "/" name "-361-src.tgz")) + (sha256 + (base32 "1dha0ijvxhx7c9hr0452h93x81iiqsll8bc9msdnp7xdqcfbz32b")))) + (inputs + `(("ncurses" ,ncurses) + ("bison" ,bison) + ("flex" ,flex) + ("less" ,less))) + (build-system gnu-build-system) + (arguments + '(#:make-flags + `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-paths + (lambda _ + (substitute* "sys/unix/nethack.sh" + (("^ *cd .*$") "")) + (substitute* "sys/unix/Makefile.utl" + (("^YACC *=.*$") "YACC = bison -y\n") + (("^LEX *=.*$") "LEX = flex\n") + (("^# CC = gcc") "CC = gcc")) + (substitute* "sys/unix/hints/linux" + (("/bin/gzip") (string-append + (assoc-ref %build-inputs "gzip") + "/bin/gzip")) + (("^WINTTYLIB=.*") "WINTTYLIB=-lncurses")) + (substitute* "include/config.h" + (("^.*define CHDIR.*$") "")) + (substitute* "sys/unix/Makefile.src" + (("^# CC = gcc") "CC = gcc")) + #t)) + (replace 'configure + (lambda _ + (let ((bash (string-append + (assoc-ref %build-inputs "bash") + "/bin/bash"))) + (with-directory-excursion "sys/unix" + (substitute* "setup.sh" (("/bin/sh") bash)) + (invoke bash "setup.sh" "hints/linux")) + #t))) + (add-after 'install 'fixup-paths + (lambda _ + (let* ((output (assoc-ref %outputs "out")) + (nethack-script (string-append output "/bin/nethack"))) + (mkdir-p (string-append output "/games/lib/nethackuserdir")) + (for-each + (lambda (file) + (rename-file + (string-append output "/games/lib/nethackdir/" file) + (string-append output "/games/lib/nethackuserdir/" + file))) + '("xlogfile" "logfile" "perm" "record" "save")) + (mkdir-p (string-append output "/bin")) + (call-with-output-file nethack-script + (lambda (port) + (format port "#!~a/bin/sh +PATH=~a:$PATH +if [ ! -d ~~/.config/nethack ]; then + mkdir -p ~~/.config/nethack + cp -r ~a/games/lib/nethackuserdir/* ~~/.config/nethack + chmod -R +w ~~/.config/nethack +fi + +RUNDIR=$(mktemp -d) + +cleanup() { + rm -rf $RUNDIR +} +trap cleanup EXIT + +cd $RUNDIR +for i in ~~/.config/nethack/*; do + ln -s $i $(basename $i) +done +for i in ~a/games/lib/nethackdir/*; do + ln -s $i $(basename $i) +done +~a/games/nethack" + (assoc-ref %build-inputs "bash") + (list->search-path-as-string + (list + (string-append + (assoc-ref %build-inputs "coreutils") "/bin") + (string-append + (assoc-ref %build-inputs "less") "/bin")) + ":") + output + output + output))) + (chmod nethack-script #o555) + #t))) + (delete 'check)))) + (home-page "https://nethack.org") + (synopsis "Classic dungeon crawl game") + (description "NetHack is a single player dungeon exploration game that runs +on a wide variety of computer systems, with a variety of graphical and text +interfaces all using the same game engine. Unlike many other Dungeons & +Dragons-inspired games, the emphasis in NetHack is on discovering the detail of +the dungeon and not simply killing everything in sight - in fact, killing +everything in sight is a good way to die quickly. Each game presents a +different landscape - the random number generator provides an essentially +unlimited number of variations of the dungeon and its denizens to be discovered +by the player in one of a number of characters: you can pick your race, your +role, and your gender.") + (license + (license:fsdg-compatible + "https://nethack.org/common/license.html")))) + (define-public prboom-plus (package (name "prboom-plus") From df35e7154236e0aff1ff2720a5b12d7c4df72ad1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Jul 2018 00:12:13 +0200 Subject: [PATCH 181/374] gnu: nethack: Make builds bit-reproducible. * gnu/packages/games.scm (nethack)[arguments]: In 'patch-paths' phase, define REPRODUCIBLE_BUILD in config.h and set SOURCE_DATE_EPOCH. --- gnu/packages/games.scm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index dc07f8da3c..ca86703a83 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -673,9 +673,8 @@ watch your CPU playing while enjoying a cup of tea!") (source (origin (method url-fetch) - (uri (string-append - "https://www.nethack.org/download/" - version "/" name "-361-src.tgz")) + (uri (string-append "https://www.nethack.org/download/" + version "/" name "-361-src.tgz")) (sha256 (base32 "1dha0ijvxhx7c9hr0452h93x81iiqsll8bc9msdnp7xdqcfbz32b")))) (inputs @@ -703,7 +702,15 @@ watch your CPU playing while enjoying a cup of tea!") "/bin/gzip")) (("^WINTTYLIB=.*") "WINTTYLIB=-lncurses")) (substitute* "include/config.h" - (("^.*define CHDIR.*$") "")) + (("^.*define CHDIR.*$") "") + (("^/\\* *#*define *REPRODUCIBLE_BUILD *\\*/") + ;; Honor SOURCE_DATE_EPOCH. + "#define REPRODUCIBLE_BUILD")) + + ;; Note: 'makedefs' rejects and ignores dates that are too old + ;; or too new, so we must choose something reasonable here. + (setenv "SOURCE_DATE_EPOCH" "1531865062") + (substitute* "sys/unix/Makefile.src" (("^# CC = gcc") "CC = gcc")) #t)) From 799dc53e9bfe605613cd2e7cb2c584282847fa84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Jul 2018 00:25:06 +0200 Subject: [PATCH 182/374] gnu: guix-daemon: Fix file name of 'guix' command. Fixes . Reported by Pjotr Prins . * gnu/packages/package-management.scm (guix-daemon)[arguments]: In 'install' phase, fix file name of 'guix' command. --- gnu/packages/package-management.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 639d81bcc1..b7e3b320f6 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -348,7 +348,7 @@ the Nix package manager.") (let ((out (assoc-ref outputs "out"))) (substitute* (find-files (string-append out "/libexec")) (("exec \".*/bin/guix\"") - "exec ~root/.config/current/bin/guix")) + "exec ~root/.config/guix/current/bin/guix")) #t))) (delete 'wrap-program))))))) From f8ac2039288539988bbdefb768a8a069fd4d4d84 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 13 Jul 2018 02:57:07 +0200 Subject: [PATCH 183/374] gnu: libusb: Update home page. * gnu/packages/libusb.scm (libusb, libusb-compat)[home-page]: Use HTTPS. --- gnu/packages/libusb.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index e4b8bbbbed..73788ea80f 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -65,7 +65,7 @@ (arguments `(#:configure-flags '("--disable-udev"))) ;; (inputs `(("eudev" ,eudev))) - (home-page "http://libusb.info") + (home-page "https://libusb.info") (synopsis "User-space USB library") (description "Libusb is a library that gives applications easy access to USB @@ -91,7 +91,7 @@ devices on various operating systems.") `(("pkg-config" ,pkg-config))) (inputs `(("libusb" ,libusb))) - (home-page "http://libusb.info") + (home-page "https://libusb.info") (synopsis "Compatibility shim for libusb") (description "Libusb-compat provides a shim allowing applications based on older From 5939188e7257e522f7eb1e7eef78399a25afd599 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 13 Jul 2018 18:14:01 +0200 Subject: [PATCH 184/374] gnu: rapidjson: Remove non-free code. * gnu/packages/web.scm (rapidjson)[source](snippet, modules): New fields. --- gnu/packages/web.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 06d0fec0b0..7e6b65d550 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -719,7 +719,14 @@ current version of any major web browser.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "13nrpvw8f1wx0ga7svbzld7pgrv8l172nangpipnj7jaf0lysz5z")))) + "13nrpvw8f1wx0ga7svbzld7pgrv8l172nangpipnj7jaf0lysz5z")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove code using the problematic JSON license (see + ;; ). + (delete-file-recursively "bin/jsonchecker") + #t)))) (build-system cmake-build-system) (arguments `(,@(if (string-prefix? "aarch64" (or (%current-target-system) From e9997e471d71415790f57dd1337a1586d62f53aa Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 11:14:22 +0200 Subject: [PATCH 185/374] gnu: libb2: Update to 0.98. * gnu/packages/crypto.scm (libb2): Update to 0.98. [source]: Use URL-FETCH. [native-inputs]: Remove. --- gnu/packages/crypto.scm | 61 ++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 34 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 4629bcd895..3cdee2e07e 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -668,39 +668,32 @@ data on your platform, so the seed itself will be as random as possible. (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 - (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 + (package + (name "libb2") + (version "0.98") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/BLAKE2/libb2/releases/download/v" + version "/libb2-" version ".tar.gz")) + (sha256 + (base32 + "0vq39cvwy05754l565xl11rqr2jvjb6ykjzca886vi9vm71y0sg8")))) + (build-system gnu-build-system) + (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 + (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. @@ -709,7 +702,7 @@ implementation for the processor it is run on. 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)))) + (license license:public-domain))) (define-public rhash (package From 05fcb98d1089b449d3a7a344f109ff891ccbb65c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 11:22:53 +0200 Subject: [PATCH 186/374] gnu: libcue: Update to 2.2.1. * gnu/packages/cdrom.scm (libcue): Update to 2.2.1. [arguments]: Add #:configure-flags for building shared library, since the package defaults to static since this version. --- gnu/packages/cdrom.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 027a333d67..384fc57317 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -418,7 +418,7 @@ graphical interface.") (define-public libcue (package (name "libcue") - (version "2.2.0") + (version "2.2.1") (source (origin (method url-fetch) (uri (string-append @@ -427,8 +427,10 @@ graphical interface.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0y9808vbly1w6i3diaad9csjmmw6iaw572wjjr68ssqamsw193rj")))) + "000j5xqp7cc7njwlixr9byahz9kn8pcfdgm76afwv4p8nbmw6yzj")))) (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) (native-inputs `(("bison" ,bison) ("flex" ,flex))) From 67c18a03d4155939dc279c2ae4ae1f8df93ae34a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 11:27:38 +0200 Subject: [PATCH 187/374] gnu: libextractor: Update to 1.7. * gnu/packages/gnunet.scm (libextractor): Update to 1.7. --- gnu/packages/gnunet.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 7335742e20..7a4660cc8d 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -67,14 +67,14 @@ (define-public libextractor (package (name "libextractor") - (version "1.6") + (version "1.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libextractor/libextractor-" version ".tar.gz")) (sha256 (base32 - "17gnpgspdhfgcr27j8sn9105vb4lw22yqdrhic62l79q5v5avm16")))) + "13wf6vj7mkv6gw8h183cnk7m24ir0gyf198pyb2148ng4klgv9p0")))) (build-system gnu-build-system) ;; WARNING: Checks require /dev/shm to be in the build chroot, especially ;; not to be a symbolic link to /run/shm. From fa3b93d6a7530a0f84a20ad8b96e0efe601da2d1 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 11:37:58 +0200 Subject: [PATCH 188/374] gnu: libmikmod: Update to 3.3.11.1. * gnu/packages/sdl.scm (libmikmod): Update to 3.3.11.1. --- gnu/packages/sdl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 3e21cde83c..202716365b 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -132,7 +132,7 @@ joystick, and graphics hardware.") (define-public libmikmod (package (name "libmikmod") - (version "3.3.10") + (version "3.3.11.1") (source (origin (method url-fetch) (uri (list @@ -144,7 +144,7 @@ joystick, and graphics hardware.") version "/libmikmod-" version ".tar.gz"))) (sha256 (base32 - "0j7g4jpa2zgzw7x6s3rldypa7zlwjvn97rwx0sylx1iihhlzbcq0")))) + "06bdnhb0l81srdzg6gn2v2ydhhaazza7rshrcj3q8dpqr3gn97dd")))) (build-system gnu-build-system) (arguments ;; By default, libmikmod tries to dlopen libasound etc., which won't work From 06446a7d037e69cade2088a416f178bd114ff216 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 11:42:56 +0200 Subject: [PATCH 189/374] gnu: libmodplug: Update to 0.8.9.0. * gnu/packages/audio.scm (libmodplug): Update to 0.8.9.0. --- gnu/packages/audio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 98f66aae88..58d67f2ebb 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2505,7 +2505,7 @@ encode and decode wavpack files.") (define-public libmodplug (package (name "libmodplug") - (version "0.8.8.5") + (version "0.8.9.0") (source (origin (method url-fetch) (uri (string-append @@ -2513,7 +2513,7 @@ encode and decode wavpack files.") name "/" version "/" name "-" version ".tar.gz")) (sha256 (base32 - "1bfsladg7h6vnii47dd66f5vh1ir7qv12mfb8n36qiwrxq92sikp")))) + "1pnri98a603xk47smnxr551svbmgbzcw018mq1k6srbrq6kaaz25")))) (build-system gnu-build-system) (home-page "http://modplug-xmms.sourceforge.net/") (synopsis "Mod file playing library") From 2495012709f7c23deb9dd88d8c5ed10f9bf3d42e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 11:54:16 +0200 Subject: [PATCH 190/374] gnu: libspiro: Update to 0.5.20150702. * gnu/packages/fontutils.scm (libspiro): Update to 0.5.20150702. [source]: Change URI to maintained repository. [arguments]: Remove. --- gnu/packages/fontutils.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 85febd73f4..725387ce8e 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -455,17 +455,16 @@ using the above tables.") (define-public libspiro (package (name "libspiro") - (version "20071029") + (version "0.5.20150702") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/libspiro/libspiro/" - version "/libspiro_src-" version ".tar.bz2")) + (uri (string-append "https://github.com/fontforge/libspiro/releases" + "/download/" version "/libspiro-dist-" version ".tar.gz")) (sha256 (base32 - "1kylz8pvwnb85yya150r9i6mhbpzx38f32qy523qg3ylgd9b3zhy")))) + "153ckwj6h3wwlsgcppzqj8cymv1927hi8ar8fzpchq5q89cj2kai")))) (build-system gnu-build-system) - (arguments `(#:tests? #f)) ;no tests (synopsis "Clothoid to bezier conversion library") (description "Raph Levien's Spiro package as a library. A mechanism for drawing From 08e977d291a5426be15f0ddb204a3a7004bd9e92 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 12:47:32 +0200 Subject: [PATCH 191/374] gnu: physfs: Update to 3.0.1. * gnu/packages/game-development.scm (physfs): Update to 3.0.1. [arguments]: Add phase to ensure RUNPATH is set. --- gnu/packages/game-development.scm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index afabeb0c62..fde139c0b7 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -518,7 +518,7 @@ sounds from presets such as \"explosion\" or \"powerup\".") (define-public physfs (package (name "physfs") - (version "2.0.3") + (version "3.0.1") (source (origin (method url-fetch) (uri (string-append @@ -527,10 +527,18 @@ sounds from presets such as \"explosion\" or \"powerup\".") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0sbbyqzqhyf0g68fcvvv20n3928j0x6ik1njmhn1yigvq2bj11na")))) + "1wgj2zqpnfbnyyi1i7bq5pshcc9n5cvwlpzp8im67nb8662ryyxp")))) (build-system cmake-build-system) (arguments - '(#:tests? #f)) ; no check target + '(#:tests? #f ; no check target + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-CMakeLists.txt + (lambda _ + (substitute* "CMakeLists.txt" + ;; XXX: For some reason CMakeLists.txt disables + ;; RUNPATH manipulation when the compiler is GCC. + (("CMAKE_COMPILER_IS_GNUCC") "FALSE")) + #t))))) (inputs `(("zlib" ,zlib))) (native-inputs From 0bc272480019a5c2ff34dd13bd4c8f3450970f8d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 15:08:12 +0200 Subject: [PATCH 192/374] gnu: sfml: Update to 2.5.0. * gnu/packages/game-development.scm (sfml): Update to 2.5.0. [arguments]: Specify pkg-config dir in #:configure-flags. [native-inputs]: Add PKG-CONFIG. [inputs]: Move FLAC, FREETYPE, LIBVORBIS and OPENAL ... [propagated-inputs]: ... here. New field. --- gnu/packages/game-development.scm | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index fde139c0b7..4610e389bd 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -440,7 +440,7 @@ clone.") (define-public sfml (package (name "sfml") - (version "2.3.2") + (version "2.5.0") (source (origin (method url-fetch) ;; Do not fetch the archives from @@ -451,24 +451,29 @@ clone.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0k2fl5xk3ni2q8bsxl0551inx26ww3w6cp6hssvww0wfjdjcirsm")))) + "1x3yvhdrln5b6h4g5r4mds76gq8zsxw6icxqpwqkmxsqcq5yviab")))) (build-system cmake-build-system) (arguments '(#:configure-flags - (list "-DSFML_INSTALL_PKGCONFIG_FILES=TRUE") + (list "-DSFML_INSTALL_PKGCONFIG_FILES=TRUE" + "-DSFML_OS_PKGCONFIG_DIR=lib/pkgconfig") #:tests? #f)) ; no tests + (native-inputs + `(("pkg-config" ,pkg-config))) (inputs `(("mesa" ,mesa) ("glew" ,glew) - ("flac" ,flac) - ("libvorbis" ,libvorbis) ("libx11" ,libx11) ("xcb-util-image" ,xcb-util-image) ("libxrandr" ,libxrandr) ("eudev" ,eudev) - ("freetype" ,freetype) ("libjpeg" ,libjpeg) - ("libsndfile" ,libsndfile) + ("libsndfile" ,libsndfile))) + (propagated-inputs + ;; In Requires.private of pkg-config files. + `(("flac" ,flac) + ("freetype" ,freetype) + ("libvorbis" ,libvorbis) ("openal" ,openal))) (home-page "https://www.sfml-dev.org") (synopsis "Simple and Fast Multimedia Library") From cada868c2a7186f55ca2d99ed52bb15295b4f736 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 15:54:10 +0200 Subject: [PATCH 193/374] gnu: Add stb-image. * gnu/packages/stb.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Register it. --- gnu/local.mk | 1 + gnu/packages/stb.scm | 97 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 gnu/packages/stb.scm diff --git a/gnu/local.mk b/gnu/local.mk index be435c5288..6a731ea0e9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -403,6 +403,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/sssd.scm \ %D%/packages/stalonetray.scm \ %D%/packages/statistics.scm \ + %D%/packages/stb.scm \ %D%/packages/storage.scm \ %D%/packages/suckless.scm \ %D%/packages/swig.scm \ diff --git a/gnu/packages/stb.scm b/gnu/packages/stb.scm new file mode 100644 index 0000000000..dcb210f7db --- /dev/null +++ b/gnu/packages/stb.scm @@ -0,0 +1,97 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Marius Bakke +;;; +;;; 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 . + +(define-module (gnu packages stb) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) + #:use-module ((guix licenses) #:select (expat public-domain))) + +(define stb + ;; stb is a collection of libraries developed within the same repository. + ;; When updating this, remember to change versions below as appropriate. + (let ((commit "e6afb9cbae4064da8c3e69af3ff5c4629579c1d2") + (revision "0")) + (package + (name "stb") + (home-page "https://github.com/nothings/stb") + (version (git-version "0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (sha256 + (base32 + "079nsn9bnb8c0vfq26g5l53q6gzx19a5x9q2nb55mpcljxsgxnmf")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + `(#:modules ((ice-9 ftw) + (ice-9 regex) + (srfi srfi-26) + ,@%gnu-build-system-modules) + #:phases (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'check + (lambda _ + (invoke "make" "-C" "tests" "CC=gcc"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (files (make-regexp "\\.(c|h|md)$"))) + (for-each (lambda (file) + (install-file file out)) + (scandir "." (cut regexp-exec files <>))) + #t)))))) + (synopsis "Single file libraries for C/C++") + (description + "This package contains a variety of small independent libraries for +the C programming language.") + ;; The user can choose either license. + (license (list expat public-domain))))) + +(define (make-stb-header-package name version description) + (package + (inherit stb) + (name name) + (version version) + (source #f) + (inputs `(("stb" ,stb))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils)) + (let ((stb (assoc-ref %build-inputs "stb")) + (lib (string-join (string-split ,name #\-) "_")) + (out (assoc-ref %outputs "out"))) + (install-file (string-append stb "/" lib ".h") + (string-append out "/include")) + #t)))) + (description description))) + +;; TODO: These descriptions are not translatable! They should be +;; converted to macros as outlined in . +(define-public stb-image + (make-stb-header-package + "stb-image" "2.19" + "stb-image is a small and self-contained library for image loading or +decoding from file or memory. A variety of formats are supported.")) From ecb1194bbc6cf76544730d46813a8b341e3d7b2a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 15:54:23 +0200 Subject: [PATCH 194/374] gnu: Add stb-image-write. * gnu/packages/stb.scm (stb-image-write): New public variable. --- gnu/packages/stb.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/stb.scm b/gnu/packages/stb.scm index dcb210f7db..df31bd0f86 100644 --- a/gnu/packages/stb.scm +++ b/gnu/packages/stb.scm @@ -95,3 +95,9 @@ the C programming language.") "stb-image" "2.19" "stb-image is a small and self-contained library for image loading or decoding from file or memory. A variety of formats are supported.")) + +(define-public stb-image-write + (make-stb-header-package + "stb-image-write" "1.09" + "stb-image-write is a small library for writing image files to the +C@tie{}@code{stdio} interface.")) From 67c127c9cbef57d43f1aa73c50a87f0b1a1e17de Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 15:19:07 +0200 Subject: [PATCH 195/374] gnu: sfml: Remove all bundled dependencies. * gnu/packages/game-development.scm (sfml)[source](snippet): New field. [inputs]: Add STB-IMAGE and STB-IMAGE-WRITE. --- gnu/packages/game-development.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 4610e389bd..33e2b4a16c 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -74,6 +74,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages sdl) + #:use-module (gnu packages stb) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages video) @@ -451,7 +452,13 @@ clone.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1x3yvhdrln5b6h4g5r4mds76gq8zsxw6icxqpwqkmxsqcq5yviab")))) + "1x3yvhdrln5b6h4g5r4mds76gq8zsxw6icxqpwqkmxsqcq5yviab")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Ensure system libraries are used. + (delete-file-recursively "extlibs") + #t)))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -468,7 +475,9 @@ clone.") ("libxrandr" ,libxrandr) ("eudev" ,eudev) ("libjpeg" ,libjpeg) - ("libsndfile" ,libsndfile))) + ("libsndfile" ,libsndfile) + ("stb-image" ,stb-image) + ("stb-image-write" ,stb-image-write))) (propagated-inputs ;; In Requires.private of pkg-config files. `(("flac" ,flac) From ac83cf22c27aff19d4137ce14058bd7a3f407516 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Jul 2018 19:03:27 +0200 Subject: [PATCH 196/374] gnu: Add bsdiff. * gnu/packages/compression.scm (bsdiff): New public variable. --- gnu/packages/compression.scm | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 0d73886109..2e62cd76ea 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -981,6 +981,43 @@ provides encoder and a decoder libraries: libbrotlienc and libbrotlidec, respectively, based on the reference implementation from Google.") (license license:expat)))) +(define-public bsdiff + (package + (name "bsdiff") + (version "4.3") + (home-page "https://www.daemonology.net/bsdiff/") + (source (origin + (method url-fetch) + (uri (string-append home-page name "-" version ".tar.gz")) + (sha256 + (base32 + "0j2zm3z271x5aw63mwhr3vymzn45p2vvrlrpm9cz2nywna41b0hq")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list "INSTALL=install" "CC=gcc" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'fix-Makefile + (lambda _ + (substitute* "Makefile" + ;; Adjust syntax to make it compatible with GNU Make. + (("^\\.") "") + ;; Help install(1) create the target directory. + (("\\$\\{PREFIX\\}") "-D -t ${PREFIX}")) + #t))) + #:tests? #f)) ;no tests + (inputs + `(("bzip2" ,bzip2))) + (synopsis "Patch binary files") + (description + "@command{bsdiff} and @command{bspatch} are tools for building and +applying patches to binary files. By using suffix sorting (specifically +Larsson and Sadakane's @code{qsufsort}) and taking advantage of how +executable files change, bsdiff routinely produces binary patches 50-80% +smaller than those produced by @code{Xdelta}.") + (license license:bsd-2))) + (define-public cabextract (package (name "cabextract") From 7c9e27e8b66cd1239c5aabd9c24d237710654a27 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 17 Jul 2018 15:11:04 +0200 Subject: [PATCH 197/374] gnu: ffmpeg@2.8: Update to 2.8.15. * gnu/packages/video.scm (ffmpeg-2.8): Update to 2.8.15. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 8baba655e8..749d7e6588 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -800,14 +800,14 @@ audio/video codec library.") (define-public ffmpeg-2.8 (package (inherit ffmpeg) - (version "2.8.14") + (version "2.8.15") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "05m1272r5qa2r0ym5vq4figdfnpvcys1fgb1026n5s6xdjd1s1pg")))) + "065xbvnfmxfbfrc14cavpqyd2slil99vcjksw4ndb7w8zdh0wp3v")))) (arguments (substitute-keyword-arguments (package-arguments ffmpeg) ((#:configure-flags flags) From 1a149de74816cf025c08d4b3d22cfa39ed0577ee Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 17 Jul 2018 15:11:30 +0200 Subject: [PATCH 198/374] gnu: rng-tools: Update to 6.3.1. * gnu/packages/linux.scm (rng-tools): Update to 6.3.1. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 277c2465bb..d9c0985697 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3590,7 +3590,7 @@ The following service daemons are also provided: (define-public rng-tools (package (name "rng-tools") - (version "6.3") + (version "6.3.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/nhorman/rng-tools/" @@ -3598,7 +3598,7 @@ The following service daemons are also provided: (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1lc2kqw3idwmjyjnf16sqz0f4r1w7c638n4la1j1n5c3188q26bv")))) + "04p7wvcm389s21y9mq8ss6z2szxi4nfrfixzwqjkq2qciz705i4s")))) (build-system gnu-build-system) (arguments `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB. From b8b15ea0e903af359b22dd4e2b991445e1a127bc Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 17 Jul 2018 15:13:39 +0200 Subject: [PATCH 199/374] gnu: whois: Update to 5.3.2. * gnu/packages/networking.scm (whois): Update to 5.3.2. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index ebf0e86f12..90967b9b1f 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -534,7 +534,7 @@ and up to 1 Mbit/s downstream.") (define-public whois (package (name "whois") - (version "5.3.1") + (version "5.3.2") (source (origin (method url-fetch) @@ -542,7 +542,7 @@ and up to 1 Mbit/s downstream.") name "_" version ".tar.xz")) (sha256 (base32 - "0gl98l26dcgmlap0pxllbv4b9n2fr5b7zml3ijf8sf3a60qsskpg")))) + "0m3352d5b0ragygbqjbaimghrbx4va2rixa34j5a1g3jj6l4nwbr")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite From d212b9d4d0c42643d4e11965b8bf5649dcb24175 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 16 Jul 2018 14:56:39 -0400 Subject: [PATCH 200/374] gnu: CUPS: Update to 2.2.8 [fixes CVE-2018-{4180,4181}]. * gnu/packages/cups.scm (cups-minimal)[replacement]: New field. (cups-minimal-2.2.8): New variable. (cups): Use package/inherit. --- gnu/packages/cups.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index d365587022..bfc587a6fb 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -174,6 +174,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.") (define-public cups-minimal (package (name "cups-minimal") + (replacement cups-minimal-2.2.8) (version "2.2.6") (source (origin @@ -234,8 +235,21 @@ describe printer capabilities and features, and a wide variety of generic and device-specific programs to convert and print many types of files.") (license license:gpl2))) +(define-public cups-minimal-2.2.8 + (package + (inherit cups-minimal) + (version "2.2.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/apple/cups/releases/download/v" + version "/cups-" version "-source.tar.gz")) + (sha256 + (base32 + "1r7r7b3nqpzc1a9dczqpj2mr8rkcwf01676v11sp4j7w4qfzqs1r")))))) + (define-public cups - (package (inherit cups-minimal) + (package/inherit cups-minimal (name "cups") (arguments `(;; Three tests fail: From 276598b69b2003a1b153aaffba5200139f97a66e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 17 Jul 2018 19:29:24 -0400 Subject: [PATCH 201/374] gnu: certbot, python-acme: Update to 0.26.1. * gnu/packages/tls.scm (certbot, python-acme): Update to 0.26.1. --- gnu/packages/tls.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index e89dc85d18..f1dca66552 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -520,13 +520,13 @@ netcat implementation that supports TLS.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.25.1") + (version "0.26.1") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) (sha256 (base32 - "0d177dhy8a7472pz9v4blrlk02d8fp6s52li7z8v3dv97pvz7da7")))) + "1glhwqj6yyb11820lspgd0gl5dqdfljn43kcy4ar5caccpsbbrw6")))) (build-system python-build-system) (arguments `(#:phases @@ -577,7 +577,7 @@ netcat implementation that supports TLS.") (uri (pypi-uri name version)) (sha256 (base32 - "0kp56gwn1bnlrag9qidhm1i5ifdp5z6y1ravh3yimfrkc4cfa8sw")))) + "0rnayqhdabm0rljxh76blqd11h51dqnwlwvql0j6xwzpccym30s9")))) (build-system python-build-system) (arguments `(,@(substitute-keyword-arguments (package-arguments python-acme) From a1e3da63cb4b9a9151849d1d4360c2a8415becb5 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 16 Jul 2018 23:09:37 -0400 Subject: [PATCH 202/374] gnu: ghostscript: Fix CVE-2018-10194. * gnu/packages/ghostscript.scm (ghostscript)[replacement]: New field. (ghostscript/fixed): New variable. * gnu/packages/patches/ghostscript-CVE-2018-10194.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/ghostscript.scm | 11 ++++ .../patches/ghostscript-CVE-2018-10194.patch | 52 +++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 gnu/packages/patches/ghostscript-CVE-2018-10194.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6a731ea0e9..e55c2bf3ba 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -714,6 +714,7 @@ dist_patch_DATA = \ %D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \ + %D%/packages/patches/ghostscript-CVE-2018-10194.patch \ %D%/packages/patches/ghostscript-no-header-id.patch \ %D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 0a6043ba65..1240b1dc16 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -132,6 +132,7 @@ printing, and psresize, for adjusting page sizes.") (define-public ghostscript (package (name "ghostscript") + (replacement ghostscript/fixed) (version "9.23") (source (origin @@ -250,6 +251,16 @@ output file formats and printers.") (home-page "https://www.ghostscript.com/") (license license:agpl3+))) +(define-public ghostscript/fixed + (hidden-package + (package + (inherit ghostscript) + (source + (origin + (inherit (package-source ghostscript)) + (patches (append (origin-patches (package-source ghostscript)) + (search-patches "ghostscript-CVE-2018-10194.patch")))))))) + (define-public ghostscript/x (package/inherit ghostscript (name (string-append (package-name ghostscript) "-with-x")) diff --git a/gnu/packages/patches/ghostscript-CVE-2018-10194.patch b/gnu/packages/patches/ghostscript-CVE-2018-10194.patch new file mode 100644 index 0000000000..242e57c27c --- /dev/null +++ b/gnu/packages/patches/ghostscript-CVE-2018-10194.patch @@ -0,0 +1,52 @@ +Fix CVE-2018-10194: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10194 +https://bugs.ghostscript.com/show_bug.cgi?id=699255 + +Patch copied from upstream source repository: + +https://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=39b1e54b2968620723bf32e96764c88797714879 + +From 39b1e54b2968620723bf32e96764c88797714879 Mon Sep 17 00:00:00 2001 +From: Ken Sharp +Date: Wed, 18 Apr 2018 15:46:32 +0100 +Subject: [PATCH] pdfwrite - Guard against trying to output an infinite number + +Bug #699255 " Buffer overflow on pprintg1 due to mishandle postscript file data to pdf" + +The file uses an enormous parameter to xyxhow, causing an overflow in +the calculation of text positioning (value > 1e39). + +Since this is basically a nonsense value, and PostScript only supports +real values up to 1e38, this patch follows the same approach as for +a degenerate CTM, and treats it as 0. + +Adobe Acrobat Distiller throws a limitcheck error, so we could do that +instead if this approach proves to be a problem. +--- + devices/vector/gdevpdts.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/devices/vector/gdevpdts.c b/devices/vector/gdevpdts.c +index 848ad781f..172fe6bc3 100644 +--- a/devices/vector/gdevpdts.c ++++ b/devices/vector/gdevpdts.c +@@ -103,9 +103,14 @@ append_text_move(pdf_text_state_t *pts, double dw) + static int + set_text_distance(gs_point *pdist, double dx, double dy, const gs_matrix *pmat) + { +- int code = gs_distance_transform_inverse(dx, dy, pmat, pdist); ++ int code; + double rounded; + ++ if (dx > 1e38 || dy > 1e38) ++ code = gs_error_undefinedresult; ++ else ++ code = gs_distance_transform_inverse(dx, dy, pmat, pdist); ++ + if (code == gs_error_undefinedresult) { + /* The CTM is degenerate. + Can't know the distance in user space. +-- +2.18.0 + From 348edd91eff2c10448c4c5fc883e0cad3594adeb Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 13 Jul 2018 22:44:54 -0400 Subject: [PATCH 203/374] gnu: Add openbabel. * gnu/packages/chemistry.scm (openbabel): New variable. --- gnu/packages/chemistry.scm | 41 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index 1a5086d622..a81c14b43c 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -21,10 +21,14 @@ #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) + #:use-module (gnu packages algebra) #:use-module (gnu packages compression) #:use-module (gnu packages gv) #:use-module (gnu packages maths) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages xml) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system python)) @@ -198,3 +202,40 @@ 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))) + +(define-public openbabel + (package + (name "openbabel") + (version "2.4.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/" name "/" name "/" + version "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1z3d6xm70dpfikhwdnbzc66j2l49vq105ch041wivrfz5ic3ch90")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DOPENBABEL_USE_SYSTEM_INCHI=ON" + (string-append "-DINCHI_LIBRARY=" + (assoc-ref %build-inputs "inchi") + "/lib/inchi/libinchi.so.1") + (string-append "-DINCHI_INCLUDE_DIR=" + (assoc-ref %build-inputs "inchi") "/include/inchi")) + #:test-target "test")) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("eigen" ,eigen) + ("inchi" ,inchi) + ("libxml2" ,libxml2) + ("zlib" ,zlib))) + (home-page "http://openbabel.org/wiki/Main_Page") + (synopsis "Chemistry data manipulation toolbox") + (description + "Open Babel is a chemical toolbox designed to speak the many languages of +chemical data. It's a collaborative project allowing anyone to search, convert, +analyze, or store data from molecular modeling, chemistry, solid-state +materials, biochemistry, or related areas.") + (license license:gpl2))) From 06f06142a31cf017398a532544f3141b6ab970f5 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 18 Jul 2018 00:22:24 -0400 Subject: [PATCH 204/374] gnu: linux-libre@4.4: Update to 4.4.141. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.141. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d9c0985697..138e8da7cc 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -429,8 +429,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.140" - "10h4k2c2ncnc1h61kikqb618dh9lp8fmzagz2ydykrdbb5jjiy82" + (make-linux-libre "4.4.141" + "0lzl0zz12r1s2r1x4bmyfhcj1mq14rm1c6npyvsj79fzz0z4z2pc" %intel-compatible-systems #:configuration-file kernel-config)) From 431936f22a50ae024a8eede8bab968809ea08b11 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 18 Jul 2018 00:23:16 -0400 Subject: [PATCH 205/374] gnu: linux-libre@4.9: Update to 4.9.113. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.113. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 138e8da7cc..f2af34c268 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -423,8 +423,8 @@ 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.112" - "1zrnbvzr7z5ky79r6hpjvn15bxmwcyi8lr7yq2nx1r8ladl8lnb0" + (make-linux-libre "4.9.113" + "12xj0ymwb0rdxnkl18xg40hiqcr5ad636xsjqz6aag2wxj8ld2xr" %intel-compatible-systems #:configuration-file kernel-config)) From 208df8ba8ab1999525310e8f2bf82b03350523c2 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 18 Jul 2018 00:24:01 -0400 Subject: [PATCH 206/374] gnu: linux-libre@4.14: Update to 4.14.56. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.56. (%linux-libre-4.14-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index f2af34c268..c70d4c46d5 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -413,8 +413,8 @@ It has been modified to remove all non-free binary blobs.") %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.55") -(define %linux-libre-4.14-hash "1rlapfwkjfmyk4ahvqwqap4w9flbw2zag0r04fwrmyqz1y5ijayf") +(define %linux-libre-4.14-version "4.14.56") +(define %linux-libre-4.14-hash "15a4gsi1nsjab16qwfizc0bdn0h27w54qy2a50847i0ln4akdrzl") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version From 661e8a62f700f9bead5f40fd6e45bdf5091a462d Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Wed, 18 Jul 2018 11:39:33 +0200 Subject: [PATCH 207/374] gnu: Add emacs-rust-mode. * gnu/packages/emacs.scm (emacs-rust-mode): New variable. Signed-off-by: Kei Kebreau --- gnu/packages/emacs.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index aae6341465..fa790dba8a 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -37,6 +37,7 @@ ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2018 Tim Gesthuizen ;;; Copyright © 2018 Jack Hill +;;; Copyright © 2018 Pierre-Antoine Rouby ;;; ;;; This file is part of GNU Guix. ;;; @@ -11519,3 +11520,36 @@ and 'text viewing modes' respectively.") (description "This package provides an Emacs major mode for editing AsciiDoc files. It focuses on highlighting the document to improve readability.") (license license:gpl2+))) + +(define-public emacs-rust-mode + (let ((commit + ;; Last release is old (2016), use more recent commit to get bug + ;; fixes. + "64b4a2450e4d4c47f6307851c9b2598cd2254d68") + (revision "0")) + (package + (name "emacs-rust-mode") + (version (git-version "0.3.0" revision commit)) + (source (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rust-lang/rust-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "sh" "run_rust_emacs_tests.sh")))))) + (home-page "https://github.com/rust-lang/rust-mode") + (synopsis "Major Emacs mode for editing Rust source code") + (description "This package provides a major Emacs mode for editing Rust +source code.") + (license (list license:expat + license:asl2.0))))) From 770d1f24642d9a4dff753a1e8a48e958733854e4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 18 Jul 2018 13:30:33 -0400 Subject: [PATCH 208/374] gnu: znc: Update to 1.7.1 [fixes CVE-2018-{14055,14056}]. * gnu/packages/messaging.scm (znc): Update to 1.7.1. --- gnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 1212a06eeb..503826381a 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -487,14 +487,14 @@ compromised.") (define-public znc (package (name "znc") - (version "1.7.0") + (version "1.7.1") (source (origin (method url-fetch) (uri (string-append "http://znc.in/releases/archive/znc-" version ".tar.gz")) (sha256 (base32 - "0vxra50418bsjfdpf8vl70fijv8syvasjqdxfyjliff6k91k2zn0")))) + "1i1r1lh9q2mr1bg520zrvrlwhrhy6wibrin78wjxq1gab1qymks4")))) ;; TODO: autotools support has been deprecated, and new features like i18n ;; are only supported when building with cmake. (build-system gnu-build-system) From 16c09025878b9148fc091b828d1f016d0e1f46bf Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 18 Jul 2018 13:33:18 -0400 Subject: [PATCH 209/374] gnu: httpd: Update to 2.4.34 [fixes CVE-2018-{1333,8011}]. * gnu/packages/web.scm (httpd): Update to 2.4.34. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 7e6b65d550..b76f111954 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -122,14 +122,14 @@ (define-public httpd (package (name "httpd") - (version "2.4.33") + (version "2.4.34") (source (origin (method url-fetch) (uri (string-append "mirror://apache/httpd/httpd-" version ".tar.bz2")) (sha256 (base32 - "01bghiq4pbgjbgd6gic0nb8bbk6mfpwx3gcsbf21f3dhb4c520ny")))) + "1w1q2smdgf6ln0x741lk5pv5r0gzrxj2iza1vslhifzy65bcjlzs")))) (build-system gnu-build-system) (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config' (inputs `(("apr" ,apr) From 46978ff64f55ae09b578b73c52c789eabb3fe5c1 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 18 Jul 2018 13:39:03 -0400 Subject: [PATCH 210/374] gnu: linux-libre: Update to 4.17.7. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.17.7. (%linux-libre-hash): Update hash. (linux-libre)[source]: Add upstream patch to fix i686. --- gnu/packages/linux.scm | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c70d4c46d5..dc6c6b1239 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -404,14 +404,25 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.17.6") -(define %linux-libre-hash "0d48r5jpj71ikdalz5z756snwq54cpnwnba8bbhg8r2ri3770wcm") +(define %linux-libre-version "4.17.7") +(define %linux-libre-hash "1815h0kf6c07zp9782v9n9a21x8wzdr4ws190nqp7z2xyip6xfjj") (define-public linux-libre (make-linux-libre %linux-libre-version %linux-libre-hash %linux-compatible-systems - #:configuration-file kernel-config)) + #:configuration-file kernel-config + #:patches + (list + (origin + (method url-fetch) + (uri "https://git.kernel.org/pub/scm/linux/kernel/git/\ +stable/linux.git/patch/?id=27d8b7daf73827e8263ab0b740da6ebdda9f9d56") + (file-name "linux-libre-4.17.7-fix-i686.patch") + (sha256 + (base32 + "0xbv04vwhyk3wvia13ca6kbysjqwsywcj6501i2wpddawm4q23sc"))) + %boot-logo-patch))) (define %linux-libre-4.14-version "4.14.56") (define %linux-libre-4.14-hash "15a4gsi1nsjab16qwfizc0bdn0h27w54qy2a50847i0ln4akdrzl") From 363c946b36a77aa6f0e60b8c93a171d2e649164f Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 18 Jul 2018 21:15:18 +0200 Subject: [PATCH 211/374] gnu: services: Fix openssh service start error. * gnu/services/ssh.scm (openssh-shepherd-service): Require loopback. --- gnu/services/ssh.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index f1d2be3f6b..f158fdf01f 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -455,7 +455,7 @@ of user-name/file-like tuples." (list (shepherd-service (documentation "OpenSSH server.") - (requirement '(syslogd)) + (requirement '(syslogd loopback)) (provision '(ssh-daemon)) (start #~(make-forkexec-constructor #$openssh-command #:pid-file #$pid-file)) From 324c049ff68997415785719fd3216cc98b6a8551 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 18 Jul 2018 19:38:49 -0400 Subject: [PATCH 212/374] gnu: VLC: Update to 3.0.3-1 [fixes CVE-2018-11529]. * gnu/packages/video.scm (vlc): Update to 3.0.3-1. --- gnu/packages/video.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 749d7e6588..820a7fc4ce 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -820,15 +820,16 @@ audio/video codec library.") (define-public vlc (package (name "vlc") - (version "3.0.3") + (version "3.0.3-1") (source (origin (method url-fetch) (uri (string-append "https://download.videolan.org/pub/videolan/vlc/" - version "/vlc-" version ".tar.xz")) + (car (string-split version #\-)) + "/vlc-" version ".tar.xz")) (sha256 (base32 - "0lavzly8l0ll1d9iris9cnirgcs77g48lxj14058dxqkvd5v1a4v")))) + "1p7qvdvg9w4lz8vckzhn6bswfkq3qw7fqkgvwjcskdgc266xx7dw")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) From 7da1db5b5799a8e18eeaf1a391d567e48028d87e Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 18 Jul 2018 22:12:57 -0400 Subject: [PATCH 213/374] gnu: linux-libre: Update to 4.17.8. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.17.8. (%linux-libre-hash): Update hash. (linux-libre): Remove patch. --- gnu/packages/linux.scm | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index dc6c6b1239..ad2ce2588d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -404,25 +404,14 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.17.7") -(define %linux-libre-hash "1815h0kf6c07zp9782v9n9a21x8wzdr4ws190nqp7z2xyip6xfjj") +(define %linux-libre-version "4.17.8") +(define %linux-libre-hash "0anq35i9x0kslz42g73vq8wbg56rmrcb38j8mgnhc5c99037gkwr") (define-public linux-libre (make-linux-libre %linux-libre-version %linux-libre-hash %linux-compatible-systems - #:configuration-file kernel-config - #:patches - (list - (origin - (method url-fetch) - (uri "https://git.kernel.org/pub/scm/linux/kernel/git/\ -stable/linux.git/patch/?id=27d8b7daf73827e8263ab0b740da6ebdda9f9d56") - (file-name "linux-libre-4.17.7-fix-i686.patch") - (sha256 - (base32 - "0xbv04vwhyk3wvia13ca6kbysjqwsywcj6501i2wpddawm4q23sc"))) - %boot-logo-patch))) + #:configuration-file kernel-config)) (define %linux-libre-4.14-version "4.14.56") (define %linux-libre-4.14-hash "15a4gsi1nsjab16qwfizc0bdn0h27w54qy2a50847i0ln4akdrzl") From d4c06f32800adc7ea51fa53327e3aeb18a2016a6 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 17 Jul 2018 13:22:42 +0200 Subject: [PATCH 214/374] gnu: julia: Fix 'llvm' version. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes a build failure with LLVM 6.0.x. * gnu/packages/julia.scm (julia)[inputs]: Use LLVM-3.9.1 instead of LLVM. Signed-off-by: Ludovic Courtès --- gnu/packages/julia.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index 6fb1eee6cc..39e2322739 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -314,7 +314,7 @@ "USE_SYSTEM_LIBGIT2=1" "USE_SYSTEM_OPENSPECFUN=1"))) (inputs - `(("llvm" ,llvm) + `(("llvm" ,llvm-3.9.1) ;; The bundled version is 3.3.0 so stick to that version. With other ;; versions, we get test failures in 'linalg/arnoldi' as described in From ec83abad858a68561959a82aa0daa41c66da31d3 Mon Sep 17 00:00:00 2001 From: Eric Brown Date: Wed, 18 Jul 2018 14:29:10 -0500 Subject: [PATCH 215/374] gnu: Add r-txtplot. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/statistics.scm (r-txtplot): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/statistics.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 8be3ce1a80..d8c1e6df33 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -5642,6 +5642,26 @@ table made by the command @code{show256Colors()}. You can also set the colors to any arbitrary string. In this case, it is up to you to set valid values.") (license license:gpl3+))) +(define-public r-txtplot + (package + (name "r-txtplot") + (version "1.0-3") + (source + (origin + (method url-fetch) + (uri (cran-uri "txtplot" version)) + (sha256 + (base32 + "1949ab1bzvysdb79g8x1gaknj0ih3d6g63pv9512h5m5l3a6c31h")))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/web/packages/txtplot/") + (synopsis "Text-based plotting") + (description "This package provides functions to produce rudimentary ASCII +graphics directly in the terminal window. This package provides a basic +plotting function (and equivalents of curve, density, acf and barplot) as well +as a boxplot function.") + (license license:lgpl3+))) + (define-public java-jdistlib (package (name "java-jdistlib") From b94b698d4ed4bc478c56e507d53e5284d4f63073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 14 Jul 2018 19:28:07 +0200 Subject: [PATCH 216/374] serialization: Add 'write-file-tree'. * guix/serialization.scm (write-contents-from-port): New procedure. (write-contents): Write in terms of 'write-contents-from-port'. (filter/sort-directory-entries, write-file-tree): New procedures. (write-file): Rewrite in terms of 'write-file-tree'. * tests/nar.scm ("write-file-tree + restore-file"): New test. --- guix/serialization.scm | 140 +++++++++++++++++++++++++++++++---------- tests/nar.scm | 62 +++++++++++++++++- 2 files changed, 169 insertions(+), 33 deletions(-) diff --git a/guix/serialization.scm b/guix/serialization.scm index b41a0a09d1..129374f541 100644 --- a/guix/serialization.scm +++ b/guix/serialization.scm @@ -47,6 +47,7 @@ nar-read-error-token write-file + write-file-tree restore-file)) ;;; Comment: @@ -211,14 +212,19 @@ substitute invalid byte sequences with question marks. This is a (lambda () (close-port port)))))) - (write-string "contents" p) - (write-long-long size p) (call-with-binary-input-file file - ;; Use 'sendfile' when P is a file port. - (if (file-port? p) - (cut sendfile p <> size 0) - (cut dump <> p size))) - (write-padding size p)) + (lambda (input) + (write-contents-from-port input p size)))) + +(define (write-contents-from-port input output size) + "Write SIZE bytes from port INPUT to port OUTPUT." + (write-string "contents" output) + (write-long-long size output) + ;; Use 'sendfile' when both OUTPUT and INPUT are file ports. + (if (and (file-port? output) (file-port? input)) + (sendfile output input size 0) + (dump input output size)) + (write-padding size output)) (define (read-contents in out) "Read the contents of a file from the Nar at IN, write it to OUT, and return @@ -263,47 +269,113 @@ the size in bytes." sub-directories of FILE as needed. For each directory entry, call (SELECT? FILE STAT), where FILE is the entry's absolute file name and STAT is the result of 'lstat'; exclude entries for which SELECT? does not return true." + (write-file-tree file port + #:file-type+size + (lambda (file) + (let* ((stat (lstat file)) + (size (stat:size stat))) + (case (stat:type stat) + ((directory) + (values 'directory size)) + ((regular) + (values (if (zero? (logand (stat:mode stat) + #o100)) + 'regular + 'executable) + size)) + (else + (values (stat:type stat) size))))) ;bah! + #:file-port (cut open-file <> "r0b") + #:symlink-target readlink + + #:directory-entries + (lambda (directory) + ;; 'scandir' defaults to 'string-locale '("." ".."))) + string '("." "..")) lst) + string '("." ".."))) string +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -152,6 +152,66 @@ (test-begin "nar") +(test-assert "write-file-tree + restore-file" + (let* ((file1 (search-path %load-path "guix.scm")) + (file2 (search-path %load-path "guix/base32.scm")) + (file3 "#!/bin/something") + (output (string-append %test-dir "/output"))) + (dynamic-wind + (lambda () #t) + (lambda () + (define-values (port get-bytevector) + (open-bytevector-output-port)) + (write-file-tree "root" port + #:file-type+size + (match-lambda + ("root" + (values 'directory 0)) + ("root/foo" + (values 'regular (stat:size (stat file1)))) + ("root/lnk" + (values 'symlink 0)) + ("root/dir" + (values 'directory 0)) + ("root/dir/bar" + (values 'regular (stat:size (stat file2)))) + ("root/dir/exe" + (values 'executable (string-length file3)))) + #:file-port + (match-lambda + ("root/foo" (open-input-file file1)) + ("root/dir/bar" (open-input-file file2)) + ("root/dir/exe" (open-input-string file3))) + #:symlink-target + (match-lambda + ("root/lnk" "foo")) + #:directory-entries + (match-lambda + ("root" '("foo" "dir" "lnk")) + ("root/dir" '("bar" "exe")))) + (close-port port) + + (rm-rf %test-dir) + (mkdir %test-dir) + (restore-file (open-bytevector-input-port (get-bytevector)) + output) + (and (file=? (string-append output "/foo") file1) + (string=? (readlink (string-append output "/lnk")) + "foo") + (file=? (string-append output "/dir/bar") file2) + (string=? (call-with-input-file (string-append output "/dir/exe") + get-string-all) + file3) + (> (logand (stat:mode (lstat (string-append output "/dir/exe"))) + #o100) + 0) + (equal? '("." ".." "bar" "exe") + (scandir (string-append output "/dir"))) + (equal? '("." ".." "dir" "foo" "lnk") + (scandir output)))) + (lambda () + (false-if-exception (rm-rf %test-dir)))))) + (test-assert "write-file supports non-file output ports" (let ((input (string-append (dirname (search-path %load-path "guix.scm")) "/guix")) From 7f11efbac7a13898bd925d2ef1e9d26cb0e22ade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 Jul 2018 09:55:49 +0200 Subject: [PATCH 217/374] store: Add 'add-file-tree-to-store'. * guix/store.scm (%not-slash): New variable. (add-file-tree-to-store, interned-file-tree): New procedures. * tests/store.scm ("add-file-tree-to-store"): New test. --- guix/store.scm | 100 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/store.scm | 46 ++++++++++++++++++++++ 2 files changed, 146 insertions(+) diff --git a/guix/store.scm b/guix/store.scm index cc5c24a77d..f41a1e2690 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -78,6 +78,7 @@ add-data-to-store add-text-to-store add-to-store + add-file-tree-to-store binary-file build-things build @@ -137,6 +138,7 @@ set-current-system text-file interned-file + interned-file-tree %store-prefix store-path @@ -951,6 +953,101 @@ where FILE is the entry's absolute file name and STAT is the result of (hash-set! cache args path) path)))))) +(define %not-slash + (char-set-complement (char-set #\/))) + +(define* (add-file-tree-to-store server tree + #:key + (hash-algo "sha256") + (recursive? #t)) + "Add the given TREE to the store on SERVER. TREE must be an entry such as: + + (\"my-tree\" directory + (\"a\" regular (data \"hello\")) + (\"b\" symlink \"a\") + (\"c\" directory + (\"d\" executable (file \"/bin/sh\")))) + +This is a generalized version of 'add-to-store'. It allows you to reproduce +an arbitrary directory layout in the store without creating a derivation." + + ;; Note: The format of TREE was chosen to allow trees to be compared with + ;; 'equal?', which in turn allows us to memoize things. + + (define root + ;; TREE is a single entry. + (list tree)) + + (define basename + (match tree + ((name . _) name))) + + (define (lookup file) + (let loop ((components (string-tokenize file %not-slash)) + (tree root)) + (match components + ((basename) + (assoc basename tree)) + ((head . rest) + (loop rest + (match (assoc-ref tree head) + (('directory . entries) entries))))))) + + (define (file-type+size file) + (match (lookup file) + ((_ (and type (or 'directory 'symlink)) . _) + (values type 0)) + ((_ type ('file file)) + (values type (stat:size (stat file)))) + ((_ type ('data (? string? data))) + (values type (string-length data))) + ((_ type ('data (? bytevector? data))) + (values type (bytevector-length data))))) + + (define (file-port file) + (match (lookup file) + ((_ (or 'regular 'executable) content) + (match content + (('file (? string? file)) + (open-file file "r0b")) + (('data (? string? str)) + (open-input-string str)) + (('data (? bytevector? bv)) + (open-bytevector-input-port bv)))))) + + (define (symlink-target file) + (match (lookup file) + ((_ 'symlink target) target))) + + (define (directory-entries directory) + (match (lookup directory) + ((_ 'directory (names . _) ...) names))) + + (define cache + (nix-server-add-to-store-cache server)) + + (or (hash-ref cache tree) + (begin + ;; We don't use the 'operation' macro so we can use 'write-file-tree' + ;; instead of 'write-file'. + (record-operation 'add-to-store/tree) + (let ((port (nix-server-socket server))) + (write-int (operation-id add-to-store) port) + (write-string basename port) + (write-int 1 port) ;obsolete, must be #t + (write-int (if recursive? 1 0) port) + (write-string hash-algo port) + (write-file-tree basename port + #:file-type+size file-type+size + #:file-port file-port + #:symlink-target symlink-target + #:directory-entries directory-entries) + (let loop ((done? (process-stderr server))) + (or done? (loop (process-stderr server)))) + (let ((result (read-store-path port))) + (hash-set! cache tree result) + result))))) + (define build-things (let ((build (operation (build-things (string-list things) (integer mode)) @@ -1402,6 +1499,9 @@ where FILE is the entry's absolute file name and STAT is the result of #:select? select?) store))) +(define interned-file-tree + (store-lift add-file-tree-to-store)) + (define build ;; Monadic variant of 'build-things'. (store-lift build-things)) diff --git a/tests/store.scm b/tests/store.scm index afecec940a..47fab0df18 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -210,6 +210,52 @@ (valid-path? store path) (file-exists? path))))) +(test-equal "add-file-tree-to-store" + `(42 + ("." directory #t) + ("./bar" directory #t) + ("./foo" directory #t) + ("./foo/a" regular "file a") + ("./foo/b" symlink "a") + ("./foo/c" directory #t) + ("./foo/c/p" regular "file p") + ("./foo/c/q" directory #t) + ("./foo/c/q/x" regular "#!/bin/sh\nexit 42") + ("./foo/c/q/y" symlink "..") + ("./foo/c/q/z" directory #t)) + (let* ((tree `("file-tree" directory + ("foo" directory + ("a" regular (data "file a")) + ("b" symlink "a") + ("c" directory + ("p" regular (data ,(string->utf8 "file p"))) + ("q" directory + ("x" executable + (data "#!/bin/sh\nexit 42")) + ("y" symlink "..") + ("z" directory)))) + ("bar" directory))) + (result (add-file-tree-to-store %store tree))) + (cons (status:exit-val (system* (string-append result "/foo/c/q/x"))) + (with-directory-excursion result + (map (lambda (file) + (let ((type (stat:type (lstat file)))) + `(,file ,type + ,(match type + ((or 'regular 'executable) + (call-with-input-file file + get-string-all)) + ('symlink (readlink file)) + ('directory #t))))) + (find-files "." #:directories? #t)))))) + +(test-equal "add-file-tree-to-store, flat" + "Hello, world!" + (let* ((tree `("flat-file" regular (data "Hello, world!"))) + (result (add-file-tree-to-store %store tree))) + (and (file-exists? result) + (call-with-input-file result get-string-all)))) + (test-assert "references" (let* ((t1 (add-text-to-store %store "random1" (random-text))) From 4d20d87b53930c68bab1b6d8865402260c351145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 Jul 2018 10:14:00 +0200 Subject: [PATCH 218/374] gexp: Remove unnecessary 'mlet'. * guix/gexp.scm (imported-modules): Use 'let' instead of 'mlet'. --- guix/gexp.scm | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index cc3613f6f6..3414b81dc6 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1098,18 +1098,14 @@ by an arrow followed by a file-like object. For example: In this example, the first two modules are taken from MODULE-PATH, and the last one is created from the given object." - (mlet %store-monad ((files - (mapm %store-monad - (match-lambda - (((module ...) '=> file) - (return - (cons (module->source-file-name module) - file))) - ((module ...) - (let ((f (module->source-file-name module))) - (return - (cons f (search-path* module-path f)))))) - modules))) + (let ((files (map (match-lambda + (((module ...) '=> file) + (cons (module->source-file-name module) + file)) + ((module ...) + (let ((f (module->source-file-name module))) + (cons f (search-path* module-path f))))) + modules))) (imported-files files #:name name #:system system #:guile guile #:deprecation-warnings deprecation-warnings))) From 8df2eca6b0915942ea087d7c5981514c532d47a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 Jul 2018 11:17:55 +0200 Subject: [PATCH 219/374] gexp: 'imported-files' no longer creates a derivation by default. * guix/gexp.scm (gexp->derivation): Add #:import-creates-derivation?. Pass #:derivation? to 'imported-modules' and 'compiled-modules'. In -L argument, check whether MODULES is a derivation. (%not-slash): New variable. (file-mapping->tree): New procedure. (imported-files): Rename to... (imported-files/derivation): ... this. (imported-files): New procedure. Rewrite in terms of 'interned-file-tree' when possible; add #:derivation? parameter. (imported-modules, compiled-modules): Add #:derivation? parameter and pass it to 'imported-files'. * guix/packages.scm (patch-and-repack): Pass #:import-creates-derivation? to 'gexp->derivation'. * tests/gexp.scm ("imported-files"): Adjust to no longer expect a derivation. --- guix/gexp.scm | 115 ++++++++++++++++++++++++++++++++++++++++------ guix/packages.scm | 3 ++ tests/gexp.scm | 20 ++++---- 3 files changed, 114 insertions(+), 24 deletions(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index 3414b81dc6..19d90f5eee 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -601,6 +601,12 @@ names and file names suitable for the #:allowed-references argument to allowed-references disallowed-references leaked-env-vars local-build? (substitutable? #t) + + ;; TODO: This parameter is transitional; it's here + ;; to avoid a full rebuild. Remove it on the next + ;; rebuild cycle. + import-creates-derivation? + deprecation-warnings (script-name (string-append name "-builder"))) "Return a derivation NAME that runs EXP (a gexp) with GUILE-FOR-BUILD (a @@ -695,6 +701,8 @@ The other arguments are as for 'derivation'." extensions)) (modules (if (pair? %modules) (imported-modules %modules + #:derivation? + import-creates-derivation? #:system system #:module-path module-path #:guile guile-for-build @@ -703,6 +711,8 @@ The other arguments are as for 'derivation'." (return #f))) (compiled (if (pair? %modules) (compiled-modules %modules + #:derivation? + import-creates-derivation? #:system system #:module-path module-path #:extensions extensions @@ -735,7 +745,9 @@ The other arguments are as for 'derivation'." "/bin/guile") `("--no-auto-compile" ,@(if (pair? %modules) - `("-L" ,(derivation->output-path modules) + `("-L" ,(if (derivation? modules) + (derivation->output-path modules) + modules) "-C" ,(derivation->output-path compiled)) '()) ,@(append-map extension-flags exts) @@ -1013,6 +1025,49 @@ execution environment." ;;; Module handling. ;;; +(define %not-slash + (char-set-complement (char-set #\/))) + +(define (file-mapping->tree mapping) + "Convert MAPPING, an alist like: + + ((\"guix/build/utils.scm\" . \"…/utils.scm\")) + +to a tree suitable for 'interned-file-tree'." + (let ((mapping (map (match-lambda + ((destination . source) + (cons (string-tokenize destination + %not-slash) + source))) + mapping))) + (fold (lambda (pair result) + (match pair + ((destination . source) + (let loop ((destination destination) + (result result)) + (match destination + ((file) + (let* ((mode (stat:mode (stat source))) + (type (if (zero? (logand mode #o100)) + 'regular + 'executable))) + (alist-cons file + `(,type (file ,source)) + result))) + ((file rest ...) + (let ((directory (assoc-ref result file))) + (alist-cons file + `(directory + ,@(loop rest + (match directory + (('directory . entries) entries) + (#f '())))) + (if directory + (alist-delete file result) + result))))))))) + '() + mapping))) + (define %utils-module ;; This file provides 'mkdir-p', needed to implement 'imported-files' and ;; other primitives below. Note: We give the file name relative to this @@ -1021,18 +1076,18 @@ execution environment." (local-file "build/utils.scm" "build-utils.scm")) -(define* (imported-files files - #:key (name "file-import") - (system (%current-system)) - (guile (%guile-for-build)) +(define* (imported-files/derivation files + #:key (name "file-import") + (system (%current-system)) + (guile (%guile-for-build)) - ;; XXX: The only reason we have - ;; #:deprecation-warnings is because (guix build - ;; utils), which we use here, relies on _IO*, which - ;; is deprecated in 2.2. On the next full-rebuild - ;; cycle, we should disable such warnings - ;; unconditionally. - (deprecation-warnings #f)) + ;; XXX: The only reason we have + ;; #:deprecation-warnings is because (guix + ;; build utils), which we use here, relies + ;; on _IO*, which is deprecated in 2.2. On + ;; the next full-rebuild cycle, we should + ;; disable such warnings unconditionally. + (deprecation-warnings #f)) "Return a derivation that imports FILES into STORE. FILES must be a list of (FINAL-PATH . FILE) pairs. Each FILE is mapped to FINAL-PATH in the resulting store path. FILE can be either a file name, or a file-like object, @@ -1081,8 +1136,38 @@ as returned by 'local-file' for example." (else '()))))) +(define* (imported-files files + #:key (name "file-import") + + ;; TODO: Remove this parameter on the next rebuild + ;; cycle. + (derivation? #f) + + ;; The following parameters make sense when creating + ;; an actual derivation. + (system (%current-system)) + (guile (%guile-for-build)) + (deprecation-warnings #f)) + "Import FILES into the store and return the resulting derivation or store +file name (a derivation is created if and only if some elements of FILES are +file-like objects and not local file names.) FILES must be a list +of (FINAL-PATH . FILE) pairs. Each FILE is mapped to FINAL-PATH in the +resulting store path. FILE can be either a file name, or a file-like object, +as returned by 'local-file' for example." + (if (or derivation? + (any (match-lambda + ((_ . (? struct? source)) #t) + (_ #f)) + files)) + (imported-files/derivation files #:name name + #:system system #:guile guile + #:deprecation-warnings deprecation-warnings) + (interned-file-tree `(,name directory + ,@(file-mapping->tree files))))) + (define* (imported-modules modules #:key (name "module-import") + (derivation? #f) ;TODO: remove on next rebuild (system (%current-system)) (guile (%guile-for-build)) (module-path %load-path) @@ -1106,12 +1191,15 @@ last one is created from the given object." (let ((f (module->source-file-name module))) (cons f (search-path* module-path f))))) modules))) - (imported-files files #:name name #:system system + (imported-files files #:name name + #:derivation? derivation? + #:system system #:guile guile #:deprecation-warnings deprecation-warnings))) (define* (compiled-modules modules #:key (name "module-import-compiled") + (derivation? #f) ;TODO: remove on next rebuild (system (%current-system)) (guile (%guile-for-build)) (module-path %load-path) @@ -1131,6 +1219,7 @@ they can refer to each other." (not (equal? module-path %load-path)))) (mlet %store-monad ((modules (imported-modules modules + #:derivation? derivation? #:system system #:guile guile #:module-path diff --git a/guix/packages.scm b/guix/packages.scm index c762fa7c39..a220b9c476 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -646,6 +646,9 @@ specifies modules in scope when evaluating SNIPPET." (let ((name (tarxz-name original-file-name))) (gexp->derivation name build + ;; TODO: Remove this on the next rebuild cycle. + #:import-creates-derivation? #t + #:graft? #f #:system system #:deprecation-warnings #t ;to avoid a rebuild diff --git a/tests/gexp.scm b/tests/gexp.scm index 391a0f8be5..c89d0c4855 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -635,18 +635,16 @@ "guix/derivations.scm")) ("p/q" . ,(search-path %load-path "guix.scm")) ("p/z" . ,(search-path %load-path "guix/store.scm")))) - (drv (imported-files files))) + (dir (imported-files files))) (mbegin %store-monad - (built-derivations (list drv)) - (let ((dir (derivation->output-path drv))) - (return - (every (match-lambda - ((path . source) - (equal? (call-with-input-file (string-append dir "/" path) - get-bytevector-all) - (call-with-input-file source - get-bytevector-all)))) - files)))))) + (return + (every (match-lambda + ((path . source) + (equal? (call-with-input-file (string-append dir "/" path) + get-bytevector-all) + (call-with-input-file source + get-bytevector-all)))) + files))))) (test-assertm "imported-files with file-like objects" (mlet* %store-monad ((plain -> (plain-file "foo" "bar!")) From e529d46828c359b449fc570bdc293fc12534647c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 Jul 2018 11:40:34 +0200 Subject: [PATCH 220/374] gexp: 'imported-files/derivation' can copy files instead of symlinking. * guix/gexp.scm (imported-files/derivation): Add #:symlink? and honor it. (imported-files): Pass #:symlink? to 'imported-files/derivation'. * tests/gexp.scm ("imported-files with file-like objects"): Add 'file=?' and use it instead of calling 'readlink'. --- guix/gexp.scm | 8 ++++++-- tests/gexp.scm | 11 +++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index 19d90f5eee..ffc976d61b 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1078,6 +1078,7 @@ to a tree suitable for 'interned-file-tree'." (define* (imported-files/derivation files #:key (name "file-import") + (symlink? #f) (system (%current-system)) (guile (%guile-for-build)) @@ -1091,7 +1092,8 @@ to a tree suitable for 'interned-file-tree'." "Return a derivation that imports FILES into STORE. FILES must be a list of (FINAL-PATH . FILE) pairs. Each FILE is mapped to FINAL-PATH in the resulting store path. FILE can be either a file name, or a file-like object, -as returned by 'local-file' for example." +as returned by 'local-file' for example. If SYMLINK? is true, create symlinks +to the source files instead of copying them." (define file-pair (match-lambda ((final-path . (? string? file-name)) @@ -1114,7 +1116,8 @@ as returned by 'local-file' for example." (for-each (match-lambda ((final-path store-path) (mkdir-p (dirname final-path)) - (symlink store-path final-path))) + ((ungexp (if symlink? 'symlink 'copy-file)) + store-path final-path))) '(ungexp files))))) ;; TODO: Pass FILES as an environment variable so that BUILD remains @@ -1160,6 +1163,7 @@ as returned by 'local-file' for example." (_ #f)) files)) (imported-files/derivation files #:name name + #:symlink? derivation? #:system system #:guile guile #:deprecation-warnings deprecation-warnings) (interned-file-tree `(,name directory diff --git a/tests/gexp.scm b/tests/gexp.scm index c89d0c4855..b22e635805 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -652,16 +652,19 @@ (files -> `(("a/b/c" . ,q-scm) ("p/q" . ,plain))) (drv (imported-files files))) + (define (file=? file1 file2) + ;; Assume deduplication is in place. + (= (stat:ino (lstat file1)) + (stat:ino (lstat file2)))) + (mbegin %store-monad (built-derivations (list drv)) (mlet %store-monad ((dir -> (derivation->output-path drv)) (plain* (text-file "foo" "bar!")) (q-scm* (interned-file q-scm "c"))) (return - (and (string=? (readlink (string-append dir "/a/b/c")) - q-scm*) - (string=? (readlink (string-append dir "/p/q")) - plain*))))))) + (and (file=? (string-append dir "/a/b/c") q-scm*) + (file=? (string-append dir "/p/q") plain*))))))) (test-equal "gexp-modules & ungexp" '((bar) (foo)) From f5db54eaa51f4fdd9cec14254e413e17bfca4cca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 16 Jul 2018 14:45:20 +0200 Subject: [PATCH 221/374] self: Use the new 'imported-files'. That way, the source of most nodes is now a content-addressed store item instead of a derivation. * guix/self.scm (): New record type. (file-mapping-compiler): New procedure. (scheme-node): Use 'file-mapping' instead of 'imported-files'. (imported-files): Remove. --- guix/self.scm | 57 +++++++++++++++++++++------------------------------ 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/guix/self.scm b/guix/self.scm index c9c7138e65..5ad644b1df 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -112,6 +112,27 @@ GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches." (dependencies node-dependencies) ;list of nodes (compiled node-compiled)) ;node -> lowerable object +;; File mappings are essentially an alist as passed to 'imported-files'. +(define-record-type + (file-mapping name alist) + file-mapping? + (name file-mapping-name) + (alist file-mapping-alist)) + +(define-gexp-compiler (file-mapping-compiler (mapping ) + system target) + ;; Here we use 'imported-files', which can arrange to directly import all + ;; the files instead of creating a derivation, when possible. + (imported-files (map (match-lambda + ((destination (? local-file? file)) + (cons destination + (local-file-absolute-file-name file))) + ((destination source) + (cons destination source))) ;silliness + (file-mapping-alist mapping)) + #:name (file-mapping-name mapping) + #:system system)) + (define (node-fold proc init nodes) (let loop ((nodes nodes) (visited (setq)) @@ -166,8 +187,8 @@ must be present in the search path." (closure modules (node-modules/recursive dependencies)))) (module-files (map module->import modules)) - (source (imported-files (string-append name "-source") - (append module-files extra-files)))) + (source (file-mapping (string-append name "-source") + (append module-files extra-files)))) (node name modules source dependencies (compiled-modules name source (map car module-files) @@ -766,38 +787,6 @@ assumed to be part of MODULES." ;;; Building. ;;; -(define (imported-files name files) - ;; This is a non-monadic, simplified version of 'imported-files' from (guix - ;; gexp). - (define same-target? - (match-lambda* - (((file1 . _) (file2 . _)) - (string=? file1 file2)))) - - (define build - (with-imported-modules (source-module-closure - '((guix build utils))) - #~(begin - (use-modules (ice-9 match) - (guix build utils)) - - (mkdir (ungexp output)) (chdir (ungexp output)) - (for-each (match-lambda - ((final-path store-path) - (mkdir-p (dirname final-path)) - - ;; Note: We need regular files to be regular files, not - ;; symlinks, as this makes a difference for - ;; 'add-to-store'. - (copy-file store-path final-path))) - '#$(delete-duplicates files same-target?))))) - - ;; We're just copying files around, no need to substitute or offload it. - (computed-file name build - #:options '(#:local-build? #t - #:substitutable? #f - #:env-vars (("COLUMNS" . "200"))))) - (define* (compiled-modules name module-tree module-files #:optional (dependencies '()) From c71cd4a61fc8085ccb17169aad826d6f9ee1718b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 19 Jul 2018 17:08:53 +0200 Subject: [PATCH 222/374] hash: sha256 port now implements 'port-position'. * guix/hash.scm (open-sha256-port)[position]: New variable. [get-position]: New procedure. Pass it to 'make-custom-binary-output-port'. * tests/hash.scm ("open-sha256-port, hello"): Test 'port-position'. --- guix/hash.scm | 7 ++++++- tests/hash.scm | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/guix/hash.scm b/guix/hash.scm index 39834043e1..8d7ba21425 100644 --- a/guix/hash.scm +++ b/guix/hash.scm @@ -101,6 +101,7 @@ output port." (open-sha256-md)) (define digest #f) + (define position 0) (define (finalize!) (let ((ptr (md-read sha256-md 0))) @@ -114,14 +115,18 @@ output port." 0) (let ((ptr (bytevector->pointer bv offset))) (md-write sha256-md ptr len) + (set! position (+ position len)) len))) + (define (get-position) + position) + (define (close) (unless digest (finalize!))) (values (make-custom-binary-output-port "sha256" - write! #f #f + write! get-position #f close) (lambda () (unless digest diff --git a/tests/hash.scm b/tests/hash.scm index da87616eec..47dff3915b 100644 --- a/tests/hash.scm +++ b/tests/hash.scm @@ -64,12 +64,12 @@ (get))) (test-equal "open-sha256-port, hello" - %hello-sha256 + (list %hello-sha256 (string-length "hello world")) (let-values (((port get) (open-sha256-port))) (put-bytevector port (string->utf8 "hello world")) (force-output port) - (get))) + (list (get) (port-position port)))) (test-assert "port-sha256" (let* ((file (search-path %load-path "ice-9/psyntax.scm")) From 83099892e0cf0d9c59f5e1a0774331026e48baa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 19 Jul 2018 17:12:48 +0200 Subject: [PATCH 223/374] deduplication: Remove 'counting-wrapper-port'. * guix/store/deduplication.scm (counting-wrapper-port): Remove. (nar-sha256): Call 'port-position' directly on PORT. --- guix/store/deduplication.scm | 34 ++++++---------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) diff --git a/guix/store/deduplication.scm b/guix/store/deduplication.scm index 6ff4a50de5..8234819f14 100644 --- a/guix/store/deduplication.scm +++ b/guix/store/deduplication.scm @@ -31,37 +31,15 @@ #:export (nar-sha256 deduplicate)) -;; Would it be better to just make WRITE-FILE give size as well? I question -;; the general utility of this approach. -(define (counting-wrapper-port output-port) - "Some custom ports don't implement GET-POSITION at all. But if we want to -figure out how many bytes are being written, we will want to use that. So this -makes a wrapper around a port which implements GET-POSITION." - (let ((byte-count 0)) - (make-custom-binary-output-port "counting-wrapper" - (lambda (bytes offset count) - (set! byte-count - (+ byte-count count)) - (put-bytevector output-port bytes - offset count) - count) - (lambda () - byte-count) - #f - (lambda () - (close-port output-port))))) - (define (nar-sha256 file) "Gives the sha256 hash of a file and the size of the file in nar form." (let-values (((port get-hash) (open-sha256-port))) - (let ((wrapper (counting-wrapper-port port))) - (write-file file wrapper) - (force-output wrapper) - (force-output port) - (let ((hash (get-hash)) - (size (port-position wrapper))) - (close-port wrapper) - (values hash size))))) + (write-file file port) + (force-output port) + (let ((hash (get-hash)) + (size (port-position port))) + (close-port port) + (values hash size)))) (define (tempname-in directory) "Gives an unused temporary name under DIRECTORY. Not guaranteed to still be From e9ab4b40a8bf6ddf7242bc0d67b61148a4078419 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 19 Jul 2018 21:27:46 +0300 Subject: [PATCH 224/374] gnu: busybox: Update to 1.29.1. * gnu/packages/busybox.scm (busybox): Update to 1.29.1. [arguments]: Add custom phase to change the default value of TASKSET. --- gnu/packages/busybox.scm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 4cdea3a294..480b777574 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. @@ -31,7 +31,7 @@ (define-public busybox (package (name "busybox") - (version "1.26.2") + (version "1.29.1") (source (origin (method url-fetch) (uri (string-append @@ -39,11 +39,18 @@ version ".tar.bz2")) (sha256 (base32 - "05mg6rh5smkzfwqfcazkpwy6h6555llsazikqnvwkaf17y8l8gns")))) + "1hqlr5b3bsyb6avadz1z4za6pyl32r1krnpcpwwqilhnx8q0f9gw")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases + (add-before 'configure 'disable-taskset + ;; This feature fails its tests in the build environment, + ;; was default 'n' until after 1.26.2. + (lambda _ + (substitute* "util-linux/taskset.c" + (("default y") "default n")) + #t)) (replace 'configure (lambda _ (invoke "make" "defconfig"))) (replace 'check From fbf9274b940e6eeafa44cbf3a1b9f0c596c3b51c Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Thu, 19 Jul 2018 21:29:12 +0200 Subject: [PATCH 225/374] gnu: php: Update to 7.2.8. * gnu/packages/php.scm (php): Update to 7.2.8. --- gnu/packages/php.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index 36e29bdcc2..121ffab767 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -62,7 +62,7 @@ (define-public php (package (name "php") - (version "7.2.7") + (version "7.2.8") (home-page "https://secure.php.net/") (source (origin (method url-fetch) @@ -70,7 +70,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1w1iix3hkwlgkr83zpr2wbnjzd8lwhy02i5hp1j1zbrv7caw00gb")) + "03zv1y8ygzsir60617hinpji3f4irk79zbp3ar1b8zcapq40gfjk")) (modules '((guix build utils))) (snippet '(with-directory-excursion "ext" From 6f88285ab1b3a3df8fe8247db5fd92801ec477cf Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Thu, 19 Jul 2018 23:21:51 +0200 Subject: [PATCH 226/374] gnu: bitcoin-core: Update to 0.16.1. * gnu/packages/finance.scm (bitcoin-core): Update to 0.16.1. --- gnu/packages/finance.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 7b3706d30c..3ddaa76a4e 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -71,7 +71,7 @@ (define-public bitcoin-core (package (name "bitcoin-core") - (version "0.15.1") + (version "0.16.1") (source (origin (method url-fetch) (uri @@ -79,7 +79,7 @@ version "/bitcoin-" version ".tar.gz")) (sha256 (base32 - "1d22fgwdcn343kd95lh389hj417zwbmnhi29cij8n7wc0nz2vpil")))) + "1zkqp93yircd3pbxczxfnibkpq0sgcv5r7wg6d196b9pwgr9zd39")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From 82549f2328c59525584b92565846217c288d8e85 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 11 Jul 2018 21:08:27 -0400 Subject: [PATCH 227/374] build-system/go: Use invoke instead of system*. * guix/build/go-build-system.scm (unpack, build): Use invoke. (install-source): Unconditionally return #t. (check): Use invoke and unconditionally return #t. --- guix/build/go-build-system.scm | 38 ++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm index 7c833a616f..6be0167063 100644 --- a/guix/build/go-build-system.scm +++ b/guix/build/go-build-system.scm @@ -125,17 +125,17 @@ unset. When SOURCE is a directory, copy it instead of unpacking." (copy-recursively source dest #:keep-mtime? #t) #t) (if (string-suffix? ".zip" source) - (zero? (system* "unzip" "-d" dest source)) - (zero? (system* "tar" "-C" dest "-xvf" source)))))) + (invoke "unzip" "-d" dest source) + (invoke "tar" "-C" dest "-xvf" source))))) (define* (install-source #:key install-source? outputs #:allow-other-keys) "Install the source code to the output directory." (let* ((out (assoc-ref outputs "out")) (source "src") (dest (string-append out "/" source))) - (if install-source? - (copy-recursively source dest #:keep-mtime? #t) - #t))) + (when install-source? + (copy-recursively source dest #:keep-mtime? #t)) + #t)) (define (go-package? name) (string-prefix? "go-" name)) @@ -178,24 +178,26 @@ respectively." (define* (build #:key import-path #:allow-other-keys) "Build the package named by IMPORT-PATH." - (or - (zero? (system* "go" "install" - "-v" ; print the name of packages as they are compiled - "-x" ; print each command as it is invoked - ;; Respectively, strip the symbol table and debug - ;; information, and the DWARF symbol table. - "-ldflags=-s -w" - import-path)) - (begin + (with-throw-handler + #t + (lambda _ + (invoke "go" "install" + "-v" ; print the name of packages as they are compiled + "-x" ; print each command as it is invoked + ;; Respectively, strip the symbol table and debug + ;; information, and the DWARF symbol table. + "-ldflags=-s -w" + import-path)) + (lambda (key . args) (display (string-append "Building '" import-path "' failed.\n" "Here are the results of `go env`:\n")) - (system* "go" "env") - #f))) + (invoke "go" "env")))) (define* (check #:key tests? import-path #:allow-other-keys) "Run the tests for the package named by IMPORT-PATH." - (if tests? - (zero? (system* "go" "test" import-path)))) + (when tests? + (invoke "go" "test" import-path)) + #t) (define* (install #:key outputs #:allow-other-keys) "Install the compiled libraries. `go install` installs these files to From 03d5f73e96e3b33d269bfb845bef77f517e8a16c Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Fri, 20 Jul 2018 10:44:21 +0200 Subject: [PATCH 228/374] gnu: pari-gp: Update to 2.11.0. * gnu/packages/algebra.scm (pari-gp): Update to 2.11.0. --- gnu/packages/algebra.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index d03b675f3a..f0abe4ebb5 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -139,7 +139,7 @@ solve the shortest vector problem.") (define-public pari-gp (package (name "pari-gp") - (version "2.9.4") + (version "2.11.0") (source (origin (method url-fetch) (uri (string-append @@ -147,7 +147,7 @@ solve the shortest vector problem.") version ".tar.gz")) (sha256 (base32 - "0ir6m3a8r46md5x6zk4xf159qra7aqparby9zk03k81hjrrxr72g")))) + "18f9yj8ffn3dxignbxj1x36771zbxy4js0r18mv6831ymb6cld9q")))) (build-system gnu-build-system) (native-inputs `(("texlive" ,texlive-tiny))) (inputs `(("gmp" ,gmp) From a2662bfe9ccedc9d791696424988dcadff9247b0 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Fri, 20 Jul 2018 10:45:54 +0200 Subject: [PATCH 229/374] gnu: gp2c: Update to 0.0.11. * gnu/packages/algebra.scm (gp2c): Update to 0.0.11. --- gnu/packages/algebra.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index f0abe4ebb5..2a17ea59b6 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -179,7 +179,7 @@ PARI is also available as a C library to allow for faster computations.") (define-public gp2c (package (name "gp2c") - (version "0.0.10") + (version "0.0.11") (source (origin (method url-fetch) (uri (string-append @@ -187,7 +187,7 @@ PARI is also available as a C library to allow for faster computations.") version ".tar.gz")) (sha256 (base32 - "1xhpz5p81iw261ay1kip283ggr0ir8ydz8qx3v24z8jfms1r3y70")))) + "1z69xj2dpd8yyi8108rz26c50xpv0k2j8qnk0bzy1c5lw3pd1adm")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (inputs `(("pari-gp" ,pari-gp))) From 4f89a8eec69491b925f084381ea4de37527c9310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 20 Jul 2018 13:49:50 +0200 Subject: [PATCH 230/374] deduplication: Work around Guile bug in 'seek'. Fixes . Reported by Ricardo Wurmus . This mostly reverts 83099892e0cf0d9c59f5e1a0774331026e48baa8. * guix/store/deduplication.scm (counting-wrapper-port): New procedure. (nar-sha256): Use it. --- guix/store/deduplication.scm | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/guix/store/deduplication.scm b/guix/store/deduplication.scm index 8234819f14..8c19d7309e 100644 --- a/guix/store/deduplication.scm +++ b/guix/store/deduplication.scm @@ -31,14 +31,38 @@ #:export (nar-sha256 deduplicate)) +;; XXX: This port is used as a workaround on Guile <= 2.2.4 where +;; 'port-position' throws to 'out-of-range' when the offset is great than or +;; equal to 2^32: . +(define (counting-wrapper-port output-port) + "Return two values: an output port that wraps OUTPUT-PORT, and a thunk to +retrieve the number of bytes written to OUTPUT-PORT." + (let ((byte-count 0)) + (values (make-custom-binary-output-port "counting-wrapper" + (lambda (bytes offset count) + (put-bytevector output-port bytes + offset count) + (set! byte-count + (+ byte-count count)) + count) + (lambda () + byte-count) + #f + (lambda () + (close-port output-port))) + (lambda () + byte-count)))) + (define (nar-sha256 file) "Gives the sha256 hash of a file and the size of the file in nar form." - (let-values (((port get-hash) (open-sha256-port))) - (write-file file port) + (let*-values (((port get-hash) (open-sha256-port)) + ((wrapper get-size) (counting-wrapper-port port))) + (write-file file wrapper) + (force-output wrapper) (force-output port) (let ((hash (get-hash)) - (size (port-position port))) - (close-port port) + (size (get-size))) + (close-port wrapper) (values hash size)))) (define (tempname-in directory) From e4752118691e41ae8307649d1abfd4739b3e4bfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 20 Jul 2018 14:49:34 +0200 Subject: [PATCH 231/374] database: Reset timestamps to one second after the Epoch. Previously, store items registered in the database by this code (for instance, store items retrieved by 'guix offload' and passed to 'restore-file-set') would have an mtime of 0 instead of 1. This would cause problems for things like .go files: Guile would consider them to be older than the corresponding .scm file, and consequently it would ignore them and possibly use another (incorrect) .go file. Reported by Ricardo Wurmus. * guix/store/database.scm (reset-timestamps): Pass 1, not 0, to 'utime'. * tests/store-database.scm ("register-path"): Check the mtime of FILE and REF. --- guix/store/database.scm | 8 +++++--- tests/store-database.scm | 7 +++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/guix/store/database.scm b/guix/store/database.scm index 8f35b63e37..0879a95d0b 100644 --- a/guix/store/database.scm +++ b/guix/store/database.scm @@ -190,12 +190,14 @@ Every store item in REFERENCES must already be registered." (define (reset-timestamps file) "Reset the modification time on FILE and on all the files it contains, if it's a directory. While at it, canonicalize file permissions." + ;; Note: We're resetting to one second after the Epoch like 'guix-daemon' + ;; has always done. (let loop ((file file) (type (stat:type (lstat file)))) (case type ((directory) (chmod file #o555) - (utime file 0 0 0 0) + (utime file 1 1 0 0) (let ((parent file)) (for-each (match-lambda (("." . _) #f) @@ -209,10 +211,10 @@ it's a directory. While at it, canonicalize file permissions." (type type)))))) (scandir* parent)))) ((symlink) - (utime file 0 0 0 0 AT_SYMLINK_NOFOLLOW)) + (utime file 1 1 0 0 AT_SYMLINK_NOFOLLOW)) (else (chmod file (if (executable-file? file) #o555 #o444)) - (utime file 0 0 0 0))))) + (utime file 1 1 0 0))))) (define* (register-path path #:key (references '()) deriver prefix diff --git a/tests/store-database.scm b/tests/store-database.scm index fcae66e2de..4d91884250 100644 --- a/tests/store-database.scm +++ b/tests/store-database.scm @@ -32,7 +32,8 @@ (test-begin "store-database") -(test-assert "register-path" +(test-equal "register-path" + '(1 1) (let ((file (string-append (%store-prefix) "/" (make-string 32 #\f) "-fake"))) (when (valid-path? %store file) @@ -50,7 +51,9 @@ (and (valid-path? %store file) (equal? (references %store file) (list ref)) (null? (valid-derivers %store file)) - (null? (referrers %store file)))))) + (null? (referrers %store file)) + (list (stat:mtime (lstat file)) + (stat:mtime (lstat ref))))))) (test-equal "new database" (list 1 2) From 134189e26fa3a63d3d2ba01b5c484d2937d490b4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 19 Jul 2018 13:47:58 +0200 Subject: [PATCH 232/374] gnu: feh: Update to 2.27.1. * gnu/packages/image-viewers.scm (feh): Update to 2.27.1. --- gnu/packages/image-viewers.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index b2e67e52f9..3410880a67 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -60,7 +60,7 @@ (define-public feh (package (name "feh") - (version "2.27") + (version "2.27.1") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -68,7 +68,7 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "0kn6cka9m76697i495npd60ad64jnfnzv5z6znzyr0vlxx2nhcmg")))) + "10zk76l491s22qrv86rax6cvpgwyl3qq0izl2pbk0k1z1kw3ihvf")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) From 0a08ea2a50ba5180f6cc73a2290f30cacca50630 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 19 Jul 2018 13:53:01 +0200 Subject: [PATCH 233/374] gnu: ffmpeg@3.4: Update to 3.4.4. * gnu/packages/video.scm (ffmpeg-3.4): Update to 3.4.4. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 820a7fc4ce..a6db26593a 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -788,14 +788,14 @@ audio/video codec library.") (define-public ffmpeg-3.4 (package (inherit ffmpeg) - (version "3.4.3") + (version "3.4.4") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "0p45s3h7mg7v0jm77bymw2617i08f086dlcdmaylnk7795yind3b")))))) + "1iizgnhjbhar9y1ykqlj1czqanlv24knkfq5vvfnppv5x00pcvrq")))))) (define-public ffmpeg-2.8 (package From eb9c0d20f9d7d8c0366c9362cef27ac2d2191041 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 19 Jul 2018 13:53:21 +0200 Subject: [PATCH 234/374] gnu: ffmpeg: Update to 4.0.2. * gnu/packages/video.scm (ffmpeg): Update to 4.0.2. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index a6db26593a..9419ef86c0 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -612,14 +612,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (define-public ffmpeg (package (name "ffmpeg") - (version "4.0.1") + (version "4.0.2") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "1vn04n0n46zdxq14cma3w8ml2ckh5jxwlybsc4xmvcqdqq0mqpv0")))) + "15rgzcmdccy4flajs63gkz4n3k24wkkg50r13l1r83lrxg4hqp59")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) From 264967c883d32606c18b378f717c303e7490c942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 20 Jul 2018 17:57:36 +0200 Subject: [PATCH 235/374] install: Add service for the loopback device. Lack of a loopback device prevented the system from building starting from commit 363c946b36a77aa6f0e60b8c93a171d2e649164f. * gnu/system/install.scm (%installation-services): Add 'static-networking-service-type' instance for 'lo'. --- gnu/system/install.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 6a3ae1947b..95661dc973 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -298,6 +298,13 @@ You have been warned. Thanks for being so brave.\x1b[0m `(("/bin/sh" ,(file-append (canonical-package bash) "/bin/sh")))) + ;; Loopback device, needed by OpenSSH notably. + (service static-networking-service-type + (list (static-networking (interface "lo") + (ip "127.0.0.1") + (requirement '()) + (provision '(loopback))))) + ;; Keep a reference to BARE-BONES-OS to make sure it can be ;; installed without downloading/building anything. Also keep the ;; things needed by 'profile-derivation' to minimize the amount of From 5dc53092c6e761a416989e8fc78dabc44c72d6a0 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 20 Jul 2018 15:30:05 -0400 Subject: [PATCH 236/374] gnu: vdirsyncer: Update to 0.16.7. * gnu/packages/dav.scm (vdirsyncer): Update to 0.16.7. --- gnu/packages/dav.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 9aebc5568d..1a154ea351 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -58,13 +58,13 @@ clients.") (define-public vdirsyncer (package (name "vdirsyncer") - (version "0.16.6") + (version "0.16.7") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "07iqq5c53cfrb5xnmam1rsl683hc3rykmdak896n2gm81r361c66")))) + "1vqjhn2bffy2bx45a1r14crsyn2cylf5by567g44c4mhpjwwz6vc")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases From 56e533929f459b04be3db420288c3863559883be Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Fri, 20 Jul 2018 23:38:09 +1000 Subject: [PATCH 237/374] gnu: libgaiagraphics: Fix typo. * gnu/packages/geo.scm: (libgaiagraphics)[inputs]: Fix typo. Signed-off-by: Leo Famulari --- gnu/packages/geo.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 85bb0ccf9b..ae6ba024e0 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -180,7 +180,7 @@ and driving.") (inputs `(("cairo" ,cairo) ("libpng" ,libpng) - ("libjepeg-turbo" ,libjpeg-turbo) + ("libjpeg-turbo" ,libjpeg-turbo) ("libtiff" ,libtiff) ("libgeotiff" ,libgeotiff) ("proj.4" ,proj.4) From e4351015ec5c4f74a66aed2e16931cf74c4d5830 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Sat, 21 Jul 2018 19:24:14 +0200 Subject: [PATCH 238/374] gnu: calibre: Update to 3.28.0. * gnu/packages/ebook.scm (calibre): Update to 3.28.0. --- gnu/packages/ebook.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index bf4b6a750e..a78e3e871f 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -75,7 +75,7 @@ (define-public calibre (package (name "calibre") - (version "3.17.0") + (version "3.28.0") (source (origin (method url-fetch) @@ -84,7 +84,7 @@ version ".tar.xz")) (sha256 (base32 - "1w6hw1s0d4daa4q2ykzhxdndiq61l8z7ls7rxh7k7p62ia0i5sxp")) + "0b3vv03c6m6972sk8zj3zc5sq6b9837irnfgjlqhv9z5i75m0414")) ;; Remove non-free or doubtful code, see ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html (modules '((guix build utils))) From 889e7fab3c04be98a59b880bf44fbdaa6ddf0a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Sat, 21 Jul 2018 10:34:09 +0200 Subject: [PATCH 239/374] gnu: youtube-dl: Update to 2018.07.10. * gnu/packages/video.scm (youtube-dl): Update to 2018.07.10. Signed-off-by: Leo Famulari --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 9419ef86c0..7bf4e43791 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1225,7 +1225,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2018.06.19") + (version "2018.07.10") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1233,7 +1233,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "0ys2mc84r7mjpn7rykb57sn3ii1kp3divjdn2ivwqknj8jrzg3z6")))) + "1rigah941k2drzx5qz937lk68gw9jrizj5lgd9f9znp0bgi2d0xd")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion From eb5ece73a84439d21219a802c0dcb88d54046371 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sat, 21 Jul 2018 12:47:34 -0400 Subject: [PATCH 240/374] gnu: openbabel: Fix crash when opening NWChem output files. * gnu/packages/patches/openbabel-fix-crash-on-nwchem-output.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/chemistry.scm (openbabel)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/chemistry.scm | 4 ++- ...openbabel-fix-crash-on-nwchem-output.patch | 34 +++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/openbabel-fix-crash-on-nwchem-output.patch diff --git a/gnu/local.mk b/gnu/local.mk index e55c2bf3ba..8ad81e6935 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -979,6 +979,7 @@ dist_patch_DATA = \ %D%/packages/patches/ocaml-graph-honor-source-date-epoch.patch \ %D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/ola-readdir-r.patch \ + %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \ %D%/packages/patches/openblas-fix-tests-i686.patch \ %D%/packages/patches/openexr-missing-samples.patch \ diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index a81c14b43c..418b4be2f4 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -213,7 +213,9 @@ NumPy < 1.9.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "1z3d6xm70dpfikhwdnbzc66j2l49vq105ch041wivrfz5ic3ch90")))) + "1z3d6xm70dpfikhwdnbzc66j2l49vq105ch041wivrfz5ic3ch90")) + (patches + (search-patches "openbabel-fix-crash-on-nwchem-output.patch")))) (build-system cmake-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/patches/openbabel-fix-crash-on-nwchem-output.patch b/gnu/packages/patches/openbabel-fix-crash-on-nwchem-output.patch new file mode 100644 index 0000000000..879df026a1 --- /dev/null +++ b/gnu/packages/patches/openbabel-fix-crash-on-nwchem-output.patch @@ -0,0 +1,34 @@ +From 52cea818bf68f8a2d3c48d55d00c2f8b7da25e4c Mon Sep 17 00:00:00 2001 +From: Daniel Hogan +Date: Tue, 28 Mar 2017 22:21:18 -0600 +Subject: [PATCH] Remove delete statement. + +When from_scratch is true, coordinates is not allocated. A separate if +statement was added to handle the case when from_scratch is true that +does not try to free coordinates. +--- + src/formats/nwchemformat.cpp | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/src/formats/nwchemformat.cpp b/src/formats/nwchemformat.cpp +index 6f625ad5b..79298555f 100644 +--- a/src/formats/nwchemformat.cpp ++++ b/src/formats/nwchemformat.cpp +@@ -232,11 +232,14 @@ static const char* OPTIMIZATION_END_PATTERN = " Optimization converged"; + break; + tokenize(vs,buffer); + } +- if ((from_scratch)||(i != natoms)) +- { ++ if (from_scratch) ++ { ++ return; ++ } ++ if (i != natoms) { + delete[] coordinates; + return; +- } ++ } + molecule->AddConformer(coordinates); + } + From 8eb49ec52754ac7ab0a67588d79dfd99817cd135 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sat, 21 Jul 2018 23:00:57 -0400 Subject: [PATCH 241/374] gnu: minetest: Update to 0.4.17. * gnu/packages/games.scm (minetest-data, minetest): Update to 0.4.17. --- gnu/packages/games.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index ca86703a83..ab1e3fde4c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1575,7 +1575,7 @@ match, cannon keep, and grave-itation pit.") (define minetest-data (package (name "minetest-data") - (version "0.4.16") + (version "0.4.17") (source (origin (method url-fetch) (uri (string-append @@ -1584,7 +1584,7 @@ match, cannon keep, and grave-itation pit.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0nibpm600rbv9dg1zgcsl5grlbqx0b5l6cg1lp6sqkwvjialb4ga")))) + "0pa9skjwbq27aky6dgr7g3mb0a7c5rpa6xmz2qh0nm618z5hgazh")))) (build-system trivial-build-system) (native-inputs `(("source" ,source) @@ -1617,7 +1617,7 @@ match, cannon keep, and grave-itation pit.") (define-public minetest (package (name "minetest") - (version "0.4.16") + (version "0.4.17") (source (origin (method url-fetch) (uri (string-append @@ -1626,7 +1626,7 @@ match, cannon keep, and grave-itation pit.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0mbnf1ma4gsw9ah68ply04059xkfx5psdxwalxp78sgmx4ypkwqf")))) + "0wpbad5bssbbgspgdcq3hhq4bhckrj53nhymsz34d8g01j0csr46")))) (build-system cmake-build-system) (arguments '(#:configure-flags From a7d5ce94baec36e5fb3e1478784acf672f466363 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 22 Jul 2018 09:50:28 +0200 Subject: [PATCH 242/374] =?UTF-8?q?gnu:=C2=A0Add=20u-boot-cubietruck.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/bootloaders.scm (u-boot-cubietruck): New variable. --- gnu/packages/bootloaders.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 7599f4ac25..792fc4ae2f 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -580,6 +580,9 @@ board-independent tools."))) (define-public u-boot-cubieboard (make-u-boot-package "Cubieboard" "arm-linux-gnueabihf")) +(define-public u-boot-cubietruck + (make-u-boot-package "Cubietruck" "arm-linux-gnueabihf")) + (define-public u-boot-puma-rk3399 (let ((base (make-u-boot-package "puma-rk3399" "aarch64-linux-gnu"))) (package From 0c468cb52d9d79884c0f3c92c74a0ea8ad11a946 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 22 Jul 2018 16:19:22 +0200 Subject: [PATCH 243/374] gnu: chemistry.scm: Add missing import. This is a follow-up to commit eb5ece73a84439d21219a802c0dcb88d54046371. * gnu/packages/chemistry.scm: Import (gnu packages). --- gnu/packages/chemistry.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index 418b4be2f4..2d7cb7aad1 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -21,6 +21,7 @@ #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) + #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages compression) #:use-module (gnu packages gv) From 706a6ff1544f2fc4baa1d4d2e1cd093a41411906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Stefanovi=C4=87?= Date: Sat, 21 Jul 2018 18:52:33 +0200 Subject: [PATCH 244/374] gnu: sddm: Update to 0.18.0. * gnu/packages/display-managers.scm (sddm): Update to 0.18.0. * gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. Signed-off-by: Marius Bakke --- gnu/local.mk | 2 +- gnu/packages/display-managers.scm | 5 ++-- .../sddm-fix-build-with-qt-5.11-1024.patch | 28 ------------------- 3 files changed, 3 insertions(+), 32 deletions(-) delete mode 100644 gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8ad81e6935..16521e8e0d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -18,6 +18,7 @@ # Copyright © 2017, 2018 Gábor Boskovits # Copyright © 2018 Amirouche Boubekki # Copyright © 2018 Oleg Pykhalov +# Copyright © 2018 Stefan Stefanović # # This file is part of GNU Guix. # @@ -1124,7 +1125,6 @@ dist_patch_DATA = \ %D%/packages/patches/scotch-build-parallelism.patch \ %D%/packages/patches/scotch-graph-diam-64.patch \ %D%/packages/patches/scotch-graph-induce-type-64.patch \ - %D%/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/seq24-rename-mutex.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \ diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index b0ad3df788..a4ed601ec8 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -135,7 +135,7 @@ Qt-style API for Wayland clients.") (define-public sddm (package (name "sddm") - (version "0.17.0") + (version "0.18.0") (source (origin (method url-fetch) (uri (string-append @@ -144,8 +144,7 @@ Qt-style API for Wayland clients.") "sddm-" version ".tar.xz")) (sha256 (base32 - "0ch6rdppgy2vbzw0c2x9a4c6ry46vx7p6b76d8xbh2nvxh23xv0k")) - (patches (search-patches "sddm-fix-build-with-qt-5.11-1024.patch")))) + "0icyi9nqgbp2v6dwh3n3jzff9jv2xy8d4rbsz89hd65x7c3hrv87")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) diff --git a/gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch b/gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch deleted file mode 100644 index 53c184230a..0000000000 --- a/gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 2efc649..8903b52 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -93,7 +95,7 @@ - find_package(XKB REQUIRED) - - # Qt 5 --find_package(Qt5 5.6.0 CONFIG REQUIRED Core DBus Gui Qml Quick LinguistTools) -+find_package(Qt5 5.8.0 CONFIG REQUIRED Core DBus Gui Qml Quick LinguistTools Test) - - # find qt5 imports dir - get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION) -diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt -index c9d935a..bb85ddd 100644 ---- a/test/CMakeLists.txt -+++ b/test/CMakeLists.txt -@@ -2,9 +2,8 @@ - - include_directories(../src/common) - -- - set(ConfigurationTest_SRCS ConfigurationTest.cpp ../src/common/ConfigReader.cpp) - add_executable(ConfigurationTest ${ConfigurationTest_SRCS}) - add_test(NAME Configuration COMMAND ConfigurationTest) - --qt5_use_modules(ConfigurationTest Test) -+target_link_libraries(ConfigurationTest Qt5::Core Qt5::Test) From 4febfdd0f33d1511bede56791f1362e04708aad9 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Fri, 20 Jul 2018 23:33:35 +1000 Subject: [PATCH 245/374] gnu: ffmpegthumbnailer: New variable. * gnu/packages/video.scm (ffmpegthumbnailer): New variable. Signed-off-by: Marius Bakke --- gnu/packages/video.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 7bf4e43791..8f4c60c424 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -26,6 +26,7 @@ ;;; Copyright © 2018 Marius Bakke ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2018 Leo Famulari +;;; Copyright © 2018 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -817,6 +818,35 @@ audio/video codec library.") flag)) ,flags)))))) +(define-public ffmpegthumbnailer + (package + (name "ffmpegthumbnailer") + (version "2.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/dirkvdb/" + name "/archive/" version ".tar.gz")) + (sha256 + (base32 + "13qs4iwd4l3iiim30s5051n80z0vgsnikym8vsn321cnm9algiwb")))) + (build-system cmake-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("ffmpeg" ,ffmpeg) + ("libjpeg-turbo" ,libjpeg-turbo) + ("libpng" ,libpng) + ("gvfs" ,gvfs))) + (arguments + `(#:configure-flags (list "-DENABLE_GIO=ON" "-DENABLE_THUMBNAILER=ON"))) + (home-page "https://github.com/dirkvdb/ffmpegthumbnailer") + (synopsis "Create thumbnails from video files") + (description "FFmpegthumbnailer is a lightweight video thumbnailer that +can be used by file managers to create thumbnails for your video files. The +thumbnailer uses ffmpeg to decode frames from the video files, so supported +videoformats depend on the configuration flags of ffmpeg.") + (license license:gpl2+))) + (define-public vlc (package (name "vlc") From 5285192150c83db12136af6a123e03bb9b9dbe5f Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sat, 21 Jul 2018 22:32:24 +0200 Subject: [PATCH 246/374] doc: Fix typo (missing period) * HACKING (Commit Access): Fix typo. --- HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HACKING b/HACKING index d1a26d2d64..f68753fee9 100644 --- a/HACKING +++ b/HACKING @@ -27,7 +27,7 @@ mailing list. When you get commit access, please make sure to follow the policy below (discussions of the policy can take place on guix-devel@gnu.org.) Non-trivial patches should always be posted to guix-patches@gnu.org (trivial -patches include fixing typos, etc.) This mailing list fills the +patches include fixing typos, etc.). This mailing list fills the patch-tracking database at [[https://bugs.gnu.org/guix-patches]]; see "Contributing" in the manual for details. From e9be2c5409f37173d70b202aa06752e3814ccdc2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 22 Jul 2018 18:01:35 +0200 Subject: [PATCH 247/374] Revert "guix: Compress and decompress xz archives in parallel." Threaded compression makes archives non-deterministic: the result depends on the number of threads used for compressing. See . This reverts commit 63102406f22412bb922de5549deb89d3594a38c0. --- guix/scripts/pack.scm | 5 ++--- guix/utils.scm | 7 +++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 6d5d745bc8..729850839b 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -1,6 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2017, 2018 Ludovic Courtès -;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2017, 2018 Ricardo Wurmus ;;; Copyright © 2018 Konrad Hinsen ;;; Copyright © 2018 Chris Marusich @@ -69,7 +68,7 @@ (compressor "lzip" ".lz" #~(#+(file-append lzip "/bin/lzip") "-9")) (compressor "xz" ".xz" - #~(#+(file-append xz "/bin/xz") "-e -T0")) + #~(#+(file-append xz "/bin/xz") "-e")) (compressor "bzip2" ".bz2" #~(#+(file-append bzip2 "/bin/bzip2") "-9")) (compressor "none" "" #f))) @@ -77,7 +76,7 @@ ;; This one is only for use in this module, so don't put it in %compressors. (define bootstrap-xz (compressor "bootstrap-xz" ".xz" - #~(#+(file-append %bootstrap-coreutils&co "/bin/xz") "-e -T0"))) + #~(#+(file-append %bootstrap-coreutils&co "/bin/xz") "-e"))) (define (lookup-compressor name) "Return the compressor object called NAME. Error out if it could not be diff --git a/guix/utils.scm b/guix/utils.scm index 200bb69e03..9bad06d52f 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -5,7 +5,6 @@ ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2016 Mathieu Lirzin ;;; Copyright © 2015 David Thompson -;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2018 Marius Bakke ;;; @@ -176,7 +175,7 @@ a symbol such as 'xz." (match compression ((or #f 'none) (values input '())) ('bzip2 (filtered-port `(,%bzip2 "-dc") input)) - ('xz (filtered-port `(,%xz "-dc" "-T0") input)) + ('xz (filtered-port `(,%xz "-dc") input)) ('gzip (filtered-port `(,%gzip "-dc") input)) (else (error "unsupported compression scheme" compression)))) @@ -186,7 +185,7 @@ a symbol such as 'xz." (match compression ((or #f 'none) (values input '())) ('bzip2 (filtered-port `(,%bzip2 "-c") input)) - ('xz (filtered-port `(,%xz "-c" "-T0") input)) + ('xz (filtered-port `(,%xz "-c") input)) ('gzip (filtered-port `(,%gzip "-c") input)) (else (error "unsupported compression scheme" compression)))) @@ -243,7 +242,7 @@ program--e.g., '(\"--fast\")." (match compression ((or #f 'none) (values output '())) ('bzip2 (filtered-output-port `(,%bzip2 "-c" ,@options) output)) - ('xz (filtered-output-port `(,%xz "-c" "-T0" ,@options) output)) + ('xz (filtered-output-port `(,%xz "-c" ,@options) output)) ('gzip (filtered-output-port `(,%gzip "-c" ,@options) output)) (else (error "unsupported compression scheme" compression)))) From df3f99af76c356859a8f7161f1f598dd2e177365 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 22 Jul 2018 18:14:34 +0200 Subject: [PATCH 248/374] gnu: xf86-video-r128: Update to 6.11.0. * gnu/packages/xorg.scm (xf86-video-r128): Update to 6.11.0. [source]: Use URL-FETCH. [arguments]: Remove. [native-inputs]: Remove AUTOCONF, AUTOMAKE and LIBTOOL. --- gnu/packages/xorg.scm | 60 +++++++++++++++---------------------------- 1 file changed, 21 insertions(+), 39 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 3e8f9fe4a7..7a604ff074 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3177,46 +3177,28 @@ This driver is intended for the spice qxl virtio device.") (license license:x11))) (define-public xf86-video-r128 - ;; We need a newer version than 6.10.2 to build against the latest xorg-server. - ;; Remove this binding and the bootstrap inputs when >6.10.2 is released. - (let ((commit "c4c878d2ccb75fa75afe46e0e50ee9975c5c57fc") - (revision "0")) - (package - (name "xf86-video-r128") - (version (git-version "6.10.2" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url (string-append "https://anongit.freedesktop.org/git/xorg" - "/driver/" name ".git")) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "01pff30zz4zxjhw28h8bn9x2kq7c6iswgn19b72wnfgl0arxb63j")))) - (build-system gnu-build-system) - (arguments - `(#:phases (modify-phases %standard-phases - (add-before 'bootstrap 'prevent-configure - (lambda _ - ;; Prevent autogen from calling "./configure" as part of - ;; the bootstrap step, which fails due to wrong shebang. - (setenv "NOCONFIGURE" "1") - #t))))) - (inputs `(("mesa" ,mesa) - ("xorgproto" ,xorgproto) - ("xorg-server" ,xorg-server))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool))) - (home-page "https://www.x.org/wiki/") - (synopsis "ATI Rage 128 video driver for X server") - (description - "xf86-video-r128 is a video driver for the Xorg X server. + (package + (name "xf86-video-r128") + (version "6.11.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://xorg/individual/driver/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "0snvwmrh8dqyyaq7ggicym6yrsg4brygkx9156r0m095m7fp3rav")))) + (build-system gnu-build-system) + (inputs `(("mesa" ,mesa) + ("xorgproto" ,xorgproto) + ("xorg-server" ,xorg-server))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.x.org/wiki/") + (synopsis "ATI Rage 128 video driver for X server") + (description + "xf86-video-r128 is a video driver for the Xorg X server. This driver is intended for ATI Rage 128 based cards.") - (license license:x11)))) + (license license:x11))) (define-public xf86-video-savage (package From 0cfc168b37576eecf9aba9d57926a38096b89885 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 19:17:23 +0200 Subject: [PATCH 249/374] gnu: Add ccrypt. * gnu/packages/crypto.scm (ccrypt): New variable. --- gnu/packages/crypto.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 3cdee2e07e..730895efd9 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -790,3 +790,26 @@ specifically designed to be easy to call from other languages. A Python binding using ctypes is included, and several other language bindings are available.") (home-page "https://botan.randombit.net") (license license:bsd-2))) + +(define-public ccrypt + (package + (name "ccrypt") + (version "1.10") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/ccrypt/ccrypt/" + version "/ccrypt-" version ".tar.gz")) + (sha256 + (base32 + "184v9676hx2w875cz04rd3a20wrcms33a1zwybvapb0g2yi6vml7")))) + (build-system gnu-build-system) + (home-page "http://ccrypt.sourceforge.net") + (synopsis "Command-line utility for encrypting and decrypting files and streams") + (description "@command{ccrypt} is a utility for encrypting and decrypting +files and streams. It was designed as a replacement for the standard unix +@command{crypt} utility, which is notorious for using a very weak encryption +algorithm. @command{ccrypt} is based on the Rijndael block cipher, a version of +which is also used in the Advanced Encryption Standard (AES, see +@url{http://www.nist.gov/aes}). This cipher is believed to provide very strong +security.") + (license license:gpl2))) From 812929a42cc7b5be25221c0592fdd677f257132b Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 19:30:25 +0200 Subject: [PATCH 250/374] gnu: emacs-xelb: Update to 0.15. * gnu/packages/emacs.scm (emacs-xelb): Update to 0.15. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index fa790dba8a..3f6e5177f8 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -6232,14 +6232,14 @@ which code derived from Kelvin H's org-page.") (define-public emacs-xelb (package (name "emacs-xelb") - (version "0.14") + (version "0.15") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/xelb-" version ".tar")) (sha256 (base32 - "09flnbjy9ck784kprz036rwg9qk45hpv0w5hz3pz3zhwyk57fv74")))) + "031rvgprsqhf344p9wsczr50vj2qcpwdmhxi80jdbrsm7wyxf3qz")))) (build-system emacs-build-system) ;; The following functions and variables needed by emacs-xelb are ;; not included in emacs-minimal: From b9231c5c0ce8bd23b73a51552d7163558329ebf6 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 19:30:45 +0200 Subject: [PATCH 251/374] gnu: emacs-exwm: Update to 0.19. * gnu/packages/emacs.scm (emacs-exwm): Update to 0.19. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 3f6e5177f8..04562e3c19 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -6271,7 +6271,7 @@ It should enable you to implement low-level X11 applications.") (define-public emacs-exwm (package (name "emacs-exwm") - (version "0.18") + (version "0.19") (synopsis "Emacs X window manager") (source (origin (method url-fetch) @@ -6279,7 +6279,7 @@ It should enable you to implement low-level X11 applications.") version ".tar")) (sha256 (base32 - "1shz5bf4v4gg3arjaaldics5qkg3aiiaf3ngys8lb6qyxhcpvh6q")))) + "11xd2w4h3zdwkdxypvmcz8s7q72cn76lfr9js77jbizyj6b04lr0")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-xelb" ,emacs-xelb))) From db4c03e24906b0d1b2ea817fbabace0b8c48bd92 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 19:41:59 +0200 Subject: [PATCH 252/374] gnu: emacs-helm-eww: Update to 20180511. * gnu/packages/emacs.scm (emacs-helm-eww): Update to 20180511. --- gnu/packages/emacs.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 04562e3c19..ff8cc3b069 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -10232,10 +10232,10 @@ keep Parens and Indentation inline with one another.") (license license:gpl3+))) (define-public emacs-helm-eww - (let ((commit "5d6c2c66d4694415ef8a16a6d38a37aeae76c5ac")) + (let ((commit "1a09f11b2376dec8237df40140f056be8a256ef0")) (package (name "emacs-helm-eww") - (version (git-version "0.1" "1" commit)) + (version (git-version "0.1" "2" commit)) (source (origin (method git-fetch) (uri (git-reference @@ -10244,7 +10244,7 @@ keep Parens and Indentation inline with one another.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1x442ylrr7cx587s4rvfh187h3qbkr79qp95qr57a4igxkkw6183")))) + "1kqdjhz2xiqw3bxjhfl9namhqrkbc2x70gcv6ljljya5hbkm62sm")))) (propagated-inputs `(("emacs-helm" ,emacs-helm))) (build-system emacs-build-system) From e1846928eeb763c724f18e1dc081dacb37c155b4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 22 Jul 2018 10:37:24 +0300 Subject: [PATCH 253/374] gnu: python-poppler-qt4: Remove variable. * gnu/packages/pdf.scm (python-poppler-qt4): Remove variable. --- gnu/packages/pdf.scm | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 66fbb20038..6ac4e76db8 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -169,43 +169,6 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.") ,@(package-inputs poppler))) (synopsis "Qt5 frontend for the Poppler PDF rendering library"))) -(define-public python-poppler-qt4 - (package - (name "python-poppler-qt4") - (version "0.24.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/p" - "/python-poppler-qt4/python-poppler-qt4-" - version ".tar.gz")) - (sha256 - (base32 - "0x63niylkk4q3h3ay8zrk3m1xiik0x3hlr4gvj7kswx48qi1vb99")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after - 'unpack 'patch-poppler-include-paths - (lambda _ - (substitute* (find-files "." "poppler-.*\\.sip") - (("qt4/poppler-.*\\.h" header) - (string-append "poppler/" header))) - #t))))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("python-sip" ,python-sip) - ("python-pyqt-4" ,python-pyqt-4) - ("poppler-qt4" ,poppler-qt4))) - (home-page "https://pypi.python.org/pypi/python-poppler-qt4") - (synopsis "Python bindings for Poppler-Qt4") - (description - "This package provides Python bindings for the Qt4 interface of the -Poppler PDF rendering library.") - (license license:lgpl2.1+))) - (define-public python-poppler-qt5 (package (name "python-poppler-qt5") From bba6069708fa5acc5c05922a14bfcd9472c0b945 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 22 Jul 2018 11:36:59 +0300 Subject: [PATCH 254/374] gnu: python-pyqt-4: Remove variable. * gnu/packages/qt.scm (python-pyqt-4): Remove variable. (python2-pyqt-4): Don't inherit from python-pyqt-4. --- gnu/packages/qt.scm | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index cb02fbaa42..d01277bc9b 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1748,9 +1748,9 @@ contain over 620 classes.") ("python2-enum34" ,python2-enum34) ,@(alist-delete "python" (package-inputs python-pyqt)))))) -(define-public python-pyqt-4 +(define-public python2-pyqt-4 (package (inherit python-pyqt) - (name "python-pyqt") + (name "python2-pyqt") (version "4.12") (source (origin @@ -1763,9 +1763,9 @@ contain over 620 classes.") (base32 "1nw8r88a5g2d550yvklawlvns8gd5slw53yy688kxnsa65aln79w")))) (native-inputs - `(("python-sip" ,python-sip) + `(("python-sip" ,python2-sip) ("qt" ,qt-4))) - (inputs `(("python" ,python-wrapper))) + (inputs `(("python" ,python-2))) (arguments `(#:tests? #f ; no check target #:modules ((srfi srfi-1) @@ -1794,15 +1794,6 @@ contain over 620 classes.") "--sipdir" sip)))))))) (license (list license:gpl2 license:gpl3)))) ; choice of either license -(define-public python2-pyqt-4 - (package (inherit python-pyqt-4) - (name "python2-pyqt") - (native-inputs - `(("python-sip" ,python2-sip) - ("qt" ,qt-4))) - (inputs - `(("python" ,python-2))))) - (define-public qscintilla (package (name "qscintilla") From fac1447bf377240c7672de48729aa669bf074e19 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 22 Jul 2018 12:02:02 +0300 Subject: [PATCH 255/374] gnu: python-sip: Update to 4.19.12. * gnu/packages/qt.scm (python-sip): Update to 4.19.12. --- gnu/packages/qt.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index d01277bc9b..9e02cdccf5 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1597,7 +1597,7 @@ message."))) (define-public python-sip (package (name "python-sip") - (version "4.19.11") + (version "4.19.12") (source (origin (method url-fetch) @@ -1606,7 +1606,7 @@ message."))) "sip-" version "/sip-" version ".tar.gz")) (sha256 (base32 - "1q2rirsh4616r20kw7csagzcnwahiqsr2r9q0ycnd58fa569pm36")))) + "08iqj9qyanc6a4bllbd87gv8pd1gkplw1jhfa1sz0gcq3g1pyq94")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-wrapper))) From 2338755afae1b54504f4cc410a41c1ccc8493fdf Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 22 Jul 2018 14:40:29 +0300 Subject: [PATCH 256/374] gnu: python-pyqt: Don't use private sip file. * gnu/packages/qt.scm (python-sip)[arguments]: Don't use '--sip-module' flag in custom 'configure phase. (python-pyqt)[sources]: Add patch. * gnu/packages/patches/pyqt-public-sip.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/patches/pyqt-public-sip.patch | 55 ++++++++++++++++++++++ gnu/packages/qt.scm | 4 +- 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/pyqt-public-sip.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9e875263ac..5ae074dad2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1050,6 +1050,7 @@ dist_patch_DATA = \ %D%/packages/patches/pybugz-stty.patch \ %D%/packages/patches/pygpgme-disable-problematic-tests.patch \ %D%/packages/patches/pyqt-configure.patch \ + %D%/packages/patches/pyqt-public-sip.patch \ %D%/packages/patches/python-2-deterministic-build-info.patch \ %D%/packages/patches/python-2.7-adjust-tests.patch \ %D%/packages/patches/python-2.7-search-paths.patch \ diff --git a/gnu/packages/patches/pyqt-public-sip.patch b/gnu/packages/patches/pyqt-public-sip.patch new file mode 100644 index 0000000000..5ec45f032b --- /dev/null +++ b/gnu/packages/patches/pyqt-public-sip.patch @@ -0,0 +1,55 @@ +https://sources.debian.org/data/main/p/pyqt5/5.11.2+dfsg-1/debian/patches/public_sip.diff + +From: Dmitry Shachnev +Date: Tue, 3 Jul 2018 09:46:42 +0300 +Subject: Use the public version of sip module + +Per https://www.debian.org/doc/debian-policy/#convenience-copies-of-code. +--- + configure.py | 19 +------------------ + 1 file changed, 1 insertion(+), 18 deletions(-) + +diff --git a/configure.py b/configure.py +index 7c48136..ca23f93 100644 +--- a/configure.py ++++ b/configure.py +@@ -642,15 +642,6 @@ class TargetConfiguration: + "Unable to import enum. Please install the enum34 " + "package from PyPI.") + +- # Check there is a private copy of the sip module already installed. +- try: +- from PyQt5 import sip +- except ImportError: +- error( +- "Unable to import PyQt5.sip. Make sure you have " +- "configured SIP to create a private copy of the sip " +- "module.") +- + # Get the details of the Python interpreter library. + py_major = self.py_version >> 16 + py_minor = (self.py_version >> 8) & 0x0ff +@@ -2438,7 +2429,7 @@ def get_sip_flags(target_config): + the target configuration. + """ + +- sip_flags = ['-n', 'PyQt5.sip'] ++ sip_flags = ['-n', 'sip'] + + # If we don't check for signed interpreters, we exclude the 'VendorID' + # feature +@@ -2914,14 +2905,6 @@ def check_sip(target_config): + target_config is the target configuration. + """ + +- # Check there is a private copy of the sip module already installed. +- try: +- from PyQt5 import sip +- except ImportError: +- error( +- "Unable to import PyQt5.sip. Make sure you have configured " +- "SIP to create a private copy of the sip module.") +- + if target_config.sip is None: + error( + "Make sure you have a working sip on your PATH or use the " diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 9e02cdccf5..20543fe837 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1632,7 +1632,6 @@ message."))) python-major+minor "/site-packages"))) (invoke "python" "configure.py" - "--sip-module" "PyQt5.sip" ; for python-pyqt "--bindir" bin "--destdir" lib "--incdir" include))))))) @@ -1671,7 +1670,8 @@ module provides support functions to the automatically generated code.") (sha256 (base32 "00wn9svgyp0fsrkc4ma15zcxg31pw4gsgaz6nwb3fhy3al8miakw")) - (patches (search-patches "pyqt-configure.patch")))) + (patches (search-patches "pyqt-configure.patch" + "pyqt-public-sip.patch")))) (build-system gnu-build-system) (native-inputs `(("qtbase" ,qtbase))) ; for qmake From 3ad4443f68fe4afc0ff3415e7143872c6ad2cdb3 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 19:55:06 +0200 Subject: [PATCH 257/374] gnu: emacs-wgrep: Update to 20180711. * gnu/packages/emacs.scm (emacs-wgrep): Update to 20180711. --- gnu/packages/emacs.scm | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index ff8cc3b069..083d9eab5b 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4576,25 +4576,28 @@ Dust.js, React/JSX, Angularjs, ejs, etc.") (license license:gpl3+))) (define-public emacs-wgrep - (package - (name "emacs-wgrep") - (version "2.1.10") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mhayashi1120/Emacs-wgrep/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1")))) - (build-system emacs-build-system) - (home-page "https://github.com/mhayashi1120/Emacs-wgrep") - (synopsis "Edit a grep buffer and apply those changes to the files") - (description - "Emacs wgrep allows you to edit a grep buffer and apply those changes to -the file buffer.") - (license license:gpl3+))) + (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c")) + ;; Late commit fixes compatibility issue with Emacs 26+. + (package + (name "emacs-wgrep") + (version (git-version "2.1.10" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mhayashi1120/Emacs-wgrep") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9")))) + (build-system emacs-build-system) + (home-page "https://github.com/mhayashi1120/Emacs-wgrep") + (synopsis "Edit a grep buffer and apply those changes to the files") + (description + "Emacs wgrep allows you to edit a grep buffer and apply those changes +to the file buffer. Several backends are supported beside the classic grep: +ack, ag, helm and pt.") + (license license:gpl3+)))) (define-public emacs-helm (package From 1ce4f555728ad17b8f10a50dc7d3e9a86c3510c1 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 19:58:10 +0200 Subject: [PATCH 258/374] gnu: emacs-wgrep-helm: Deprecate in favor of emacs-wgrep. * gnu/packages/emacs.scm (emacs-wgrep-helm): Deprecate. --- gnu/packages/emacs.scm | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 083d9eab5b..b2e41baa1c 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11321,31 +11321,8 @@ file.") (license license:gpl3+)))) (define-public emacs-wgrep-helm - (let ((commit "1cdd7c136f1e7565bb13d2df69be3dc77b83698d")) - (package - (name "emacs-wgrep-helm") - (version (git-version "2.1.10" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mhayashi1120/Emacs-wgrep") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "057p99hq0r6z1k8sl15w3sxrqvlv0g9wp39zy1pqhccv2mn3g2d6")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-wgrep" ,emacs-wgrep))) - (home-page - "https://github.com/mhayashi1120/Emacs-wgrep") - (synopsis - "Writable helm-grep-mode buffer and apply the changes to files") - (description - "@code{wgrep-helm} allows you to edit a @code{helm-grep-mode} buffer and -apply those changes to the file buffer.") - (license license:gpl3+)))) + ;; `emacs-wgrep-helm' was mistakenly added. + (deprecated-package "emacs-wgrep-helm" emacs-wgrep)) (define-public emacs-mu4e-conversation (let ((commit "b60d6bd27d7220c3dd041ff2a090e29f2166a319")) From 22c0bef67c295951a451da601124e2e6ffea9674 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 20:04:54 +0200 Subject: [PATCH 259/374] gnu: emacs-helm-exwm: Update to 20180703. * gnu/packages/emacs.scm (emacs-helm-exwm): Update to 20180703. --- gnu/packages/emacs.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index b2e41baa1c..c82af4da6a 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11100,10 +11100,10 @@ from @code{emms-source-file-default-directory}.") (license license:gpl3+)))) (define-public emacs-helm-exwm - (let ((commit "82a856c80c8d295e3be522a01c5a15af50d08990")) + (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5")) (package (name "emacs-helm-exwm") - (version (git-version "20180523" "1" commit)) + (version (git-version "20180703" "2" commit)) (source (origin (method url-fetch) @@ -11113,7 +11113,7 @@ from @code{emms-source-file-default-directory}.") ".tar.gz")) (sha256 (base32 - "1xsg2lar1vh7jmj5lnnyi14vssxkgy95sv9r8pbfhbnkjkbjm9pb")))) + "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-helm" ,emacs-helm) From d7d0c98977c2466180b639c125793616cb58dccf Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 20:09:44 +0200 Subject: [PATCH 260/374] gnu: emacs-mu4e-conversation: Update to 20180722. * gnu/packages/emacs.scm (emacs-mu4e-conversation): Update to 20180722. --- gnu/packages/emacs.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index c82af4da6a..c5cc9d69ef 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11325,10 +11325,10 @@ file.") (deprecated-package "emacs-wgrep-helm" emacs-wgrep)) (define-public emacs-mu4e-conversation - (let ((commit "b60d6bd27d7220c3dd041ff2a090e29f2166a319")) + (let ((commit "223cc66e99c7665326e3d991d6d383cb0d7512bb")) (package (name "emacs-mu4e-conversation") - (version (git-version "20180615" "1" commit)) + (version (git-version "20180722" "2" commit)) (source (origin (method url-fetch) @@ -11339,7 +11339,7 @@ file.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0x8kmi0rmbaaxn5zicm1f9yb8ynxi8074hi2n0rvymlfpxbpn0ma")))) + "1ivy7pihhma465hi25p1y45dyi8h52nsm2m0cvizj5sw36jw0n81")))) (build-system emacs-build-system) (propagated-inputs `(("mu" ,mu))) From cb19df37f3d4e482d27d3fc3711d66d84c770a67 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 20:24:35 +0200 Subject: [PATCH 261/374] gnu: emacs-evil-collection: Update to 20180721. * gnu/packages/emacs.scm (emacs-evil-collection): Update to 20180721. --- gnu/packages/emacs.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index c5cc9d69ef..3233d66f62 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4861,11 +4861,11 @@ extensions.") (license license:gpl3+)))) (define-public emacs-evil-collection - (let ((commit "ac21b8957cfc22485cdaa316384edf9cb220d837") - (revision "1")) + (let ((commit "5d739f58118a5a316c4fe25adb4e13ccea3fdc10") + (revision "2")) (package (name "emacs-evil-collection") - (version (git-version "20180617" revision commit)) + (version (git-version "20180721" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -4874,7 +4874,7 @@ extensions.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "082a3c5c2ls9ryqrl5kzb4z6bcprhqx8pypnlj1razbld3lny934")))) + "05p612qncd0cp5q61hq2ag1k558vhb10049xrc88n9l6qwz9bpk3")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil))) From a86866f4b5e6ddaecc5484ac35f0f9b9752cf630 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 20:35:12 +0200 Subject: [PATCH 262/374] gnu: Add emacs-ztree. * gnu/packages/emacs.scm (emacs-ztree): New variable. --- gnu/packages/emacs.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 3233d66f62..fca34f9de1 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11533,3 +11533,27 @@ files. It focuses on highlighting the document to improve readability.") source code.") (license (list license:expat license:asl2.0))))) + +(define-public emacs-ztree + (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94")) + (package + (name "emacs-ztree") + (version (git-version "1.0.5" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fourier/ztree") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0")))) + (build-system emacs-build-system) + (home-page "https://github.com/fourier/ztree") + (synopsis "Directory tree comparison mode for Emacs") + (description "Ztree is a project dedicated to implementation of several +text-tree applications inside GNU Emacs. It consists of 2 subprojects: +@command{ztree-diff} and @command{ztree-dir} (the basis of +@command{ztree-diff}).") + (license license:gpl3)))) From 5f005932bcc7b348d89f7f49a64e7ab7a6e7e061 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 20:45:22 +0200 Subject: [PATCH 263/374] gnu: Add emacs-helm-org-contacts. * gnu/packages/emacs.scm (emacs-helm-org-contacts): New variable. --- gnu/packages/emacs.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index fca34f9de1..4360baa623 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11557,3 +11557,31 @@ text-tree applications inside GNU Emacs. It consists of 2 subprojects: @command{ztree-diff} and @command{ztree-dir} (the basis of @command{ztree-diff}).") (license license:gpl3)))) + +(define-public emacs-helm-org-contacts + (let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc")) + (package + (name "emacs-helm-org-contacts") + (version (git-version "20180707" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tmalsburg/helm-org-contacts") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-helm" ,emacs-helm) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/tmalsburg/helm-org-contacts") + (synopsis "Helm source for org-contacts") + (description "This Helm source can be used to search contacts stored in +org-contacts format. There are actions for inserting postal addresses, email +addresses, and phone numbers in the buffer where @command{helm-org-contacts} +was called.") + (license license:gpl3)))) From e968542d298a3eaf1a8811a91463b1589589fcb3 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 20:49:47 +0200 Subject: [PATCH 264/374] gnu: Add emacs-dired-du. * gnu/packages/emacs.scm (emacs-dired-du): New variable. --- gnu/packages/emacs.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4360baa623..f57a0ea90e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11585,3 +11585,30 @@ org-contacts format. There are actions for inserting postal addresses, email addresses, and phone numbers in the buffer where @command{helm-org-contacts} was called.") (license license:gpl3)))) + +(define-public emacs-dired-du + (package + (name "emacs-dired-du") + (version "0.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://elpa.gnu.org/packages/dired-du-" + version ".tar")) + (sha256 + (base32 + "09yj37p2fa5f81fqrzwghjkyy2ydsf4rbkfwpn2yyvzd5nd97bpl")))) + (build-system emacs-build-system) + (home-page "http://elpa.gnu.org/packages/dired-du.html") + (synopsis "Dired with recursive directory sizes") + (description + "Display the recursive size of directories in Dired. +This file defines a minor mode @command{dired-du-mode} to show the recursive +size of directories in Dired buffers. If @command{du} program is available, +then the directory sizes are obtained with it. Otherwise, the directory sizes +are obtained with Lisp. The former is faster and provide a more precise +value. For directories where the user doesn't have read permission, the +recursive size is not obtained. Once this mode is enabled, every new Dired +buffer displays recursive dir sizes.") + (license license:gpl3+))) From 3291be815b3b31223fd190204e5c56ffb370c4a4 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 17:39:23 +0200 Subject: [PATCH 265/374] gnu: Add go-github-com-mattn-go-isatty. * gnu/packages/golang.scm (go-github-com-mattn-go-isatty): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 92ce504c52..26f9fda14d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2018 Christopher Baines ;;; Copyright © 2018 Tomáš Čech ;;; Copyright © 2018 Pierre-Antoine Rouby +;;; Copyright © 2018 Pierre Neidhardt ;;; ;;; This file is part of GNU Guix. ;;; @@ -1975,3 +1976,29 @@ which satisfies the cron expression.") "This package provides a Go library for encode and decode YAML values.") (license license:asl2.0)))) + +(define-public go-github-com-mattn-go-isatty + (let ((commit "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c") + (revision "0")) + (package + (name "go-github-com-mattn-go-isatty") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-isatty") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/mattn/go-isatty")) + (home-page "https://github.com/mattn/go-isatty") + (synopsis "Provide @code{isatty} for Golang") + (description "This package provides @code{isatty}, a Go module that can +tell you whether a file descriptor points to a terminal and the type of the +terminal.") + (license license:expat)))) From 7601b4e4fe93130562475efc67a641c2f3b8ccc8 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 17:39:47 +0200 Subject: [PATCH 266/374] gnu: Add go-github-com-mattn-go-colorable. * gnu/packages/golang.scm (go-github-com-mattn-go-colorable): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 26f9fda14d..aabde78d62 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2002,3 +2002,31 @@ values.") tell you whether a file descriptor points to a terminal and the type of the terminal.") (license license:expat)))) + +(define-public go-github-com-mattn-go-colorable + (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade") + (revision "0")) + (package + (name "go-github-com-mattn-go-colorable") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-colorable") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r")))) + (build-system go-build-system) + (native-inputs + `(("go-github-com-mattn-go-isatty" + ,go-github-com-mattn-go-isatty))) + (arguments + '(#:import-path "github.com/mattn/go-colorable")) + (home-page "https://github.com/mattn/go-colorable") + (synopsis "Handle ANSI color escapes on Windows") + (description "This package provides @code{colorable}, a module that +makes it possible to handle ANSI color escapes on Windows.") + (license license:expat)))) From 32cb1af632b4b3b801a3493a05af4a65f9303207 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 17:39:57 +0200 Subject: [PATCH 267/374] gnu: Add go-github-com-mgutz-ansi. * gnu/packages/golang.scm (go-github-com-mgutz-ansi): New variable. --- gnu/packages/golang.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index aabde78d62..26fdc9d2b8 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2030,3 +2030,34 @@ terminal.") (description "This package provides @code{colorable}, a module that makes it possible to handle ANSI color escapes on Windows.") (license license:expat)))) + +(define-public go-github-com-mgutz-ansi + (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992") + (revision "0")) + (package + (name "go-github-com-mgutz-ansi") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/mgutz/ansi") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j")))) + (build-system go-build-system) + (native-inputs + `(("go-github-com-mattn-go-isatty" + ,go-github-com-mattn-go-isatty) + ("go-github-com-mattn-go-colorable" + ,go-github-com-mattn-go-colorable))) + (arguments + '(#:import-path "github.com/mgutz/ansi")) + (home-page "https://github.com/mgutz/ansi") + (synopsis "Small, fast library to create ANSI colored strings and codes") + (description "This package provides @code{ansi}, a Go module that can +generate ANSI colored strings.") + (license license:expat)))) From e25ddef5bd15d532c52a4f868c22c6cea601b16c Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 17:42:02 +0200 Subject: [PATCH 268/374] gnu: Add go-github-com-aarzilli-golua. * gnu/packages/golang.scm (go-github-com-aarzilli-golua): New variable. --- gnu/packages/golang.scm | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 26fdc9d2b8..9bcf1c7bdd 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -42,6 +42,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pcre) + #:use-module (gnu packages lua) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) @@ -2061,3 +2062,47 @@ makes it possible to handle ANSI color escapes on Windows.") (description "This package provides @code{ansi}, a Go module that can generate ANSI colored strings.") (license license:expat)))) + +(define-public go-github-com-aarzilli-golua + (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d") + (revision "0")) + (package + (name "go-github-com-aarzilli-golua") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/aarzilli/golua") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di")))) + (build-system go-build-system) + (native-inputs + `(("lua" ,lua))) + (arguments + `(#:unpack-path "github.com/aarzilli/golua" + #:import-path "github.com/aarzilli/golua/lua" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key import-path #:allow-other-keys) + (invoke "go" "install" + "-v" ; print the name of packages as they are compiled + "-x" ; print each command as it is invoked + "-ldflags=-s -w" ; strip the symbol table and debug + "-tags" "llua" ; Latest Lua on Guix does not have a version number. + import-path))) + (replace 'check + (lambda* (#:key import-path #:allow-other-keys) + (invoke "go" "test" + "-tags" "llua" ; Latest Lua on Guix does not have a version number. + import-path)))))) + (home-page "https://github.com/aarzilli/golua") + (synopsis "Go Bindings for the Lua C API") + (description "This package provides @code{lua}, a Go module that can +run a Lua virtual machine.") + (license license:expat)))) From f25e3b39d9fb27d2515c1f074847a5c99d025ce4 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 18:14:33 +0200 Subject: [PATCH 269/374] gnu: Add go-gitlab-com-ambrevar-golua-unicode. * gnu/packages/golang.scm (go-gitlab-com-ambrevar-golua-unicode): New variable. --- gnu/packages/golang.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9bcf1c7bdd..c941b5439a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2106,3 +2106,41 @@ generate ANSI colored strings.") (description "This package provides @code{lua}, a Go module that can run a Lua virtual machine.") (license license:expat)))) + +(define-public go-gitlab-com-ambrevar-golua-unicode + (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144") + (revision "0")) + (package + (name "go-gitlab-com-ambrevar-golua-unicode") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://gitlab.com/ambrevar/golua") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm")))) + (build-system go-build-system) + (native-inputs + `(("lua" ,lua) + ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua))) + (arguments + `(#:unpack-path "gitlab.com/ambrevar/golua" + #:import-path "gitlab.com/ambrevar/golua/unicode" + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key import-path #:allow-other-keys) + (setenv "USER" "homeless-dude") + (invoke "go" "test" import-path)))))) + (home-page "https://gitlab.com/ambrevar/golua") + (synopsis "Add Unicode support to Golua") + (description "This extension to Arzilli's Golua adds Unicode support to +all functions from the Lua string library. Lua patterns are replaced by Go +regexps. This breaks compatibility with Lua, but Unicode support breaks it +anyways and Go regexps are more powerful.") + (license license:expat)))) From b4d1440f9f0ed5d87ba051191a35843702841415 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 18:20:20 +0200 Subject: [PATCH 270/374] gnu: Add go-github-com-yookoala-realpath. * gnu/packages/golang.scm (go-github-com-yookoala-realpath): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index c941b5439a..96e40bbd0a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2144,3 +2144,30 @@ all functions from the Lua string library. Lua patterns are replaced by Go regexps. This breaks compatibility with Lua, but Unicode support breaks it anyways and Go regexps are more powerful.") (license license:expat)))) + +(define-public go-github-com-yookoala-realpath + (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8") + (revision "0")) + (package + (name "go-github-com-yookoala-realpath") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/yookoala/realpath") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/yookoala/realpath")) + (home-page "https://github.com/yookoala/realpath") + (synopsis "@code{realpath} for Golang") + (description "This package provides @code{realpath}, a Go module that +when provided with a valid relative path / alias path, it will return you with +a string of its real absolute path in the system.") + (license license:bsd-style)))) From 54b83f0e899227e6bf584fbe69cb9b65fee0de2e Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 18:28:20 +0200 Subject: [PATCH 271/374] gnu: Add go-gitlab-com-ambrevar-damerau. * gnu/packages/golang.scm (go-gitlab-com-ambrevar-damerau): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 96e40bbd0a..8ad2ec943e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2171,3 +2171,31 @@ anyways and Go regexps are more powerful.") when provided with a valid relative path / alias path, it will return you with a string of its real absolute path in the system.") (license license:bsd-style)))) + +(define-public go-gitlab-com-ambrevar-damerau + (let ((commit "883829e1f25fad54015772ea663e69017cf22352") + (revision "0")) + (package + (name "go-gitlab-com-ambrevar-damerau") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://gitlab.com/ambrevar/damerau") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv")))) + (build-system go-build-system) + (arguments + `(#:import-path "gitlab.com/ambrevar/damerau")) + (home-page "https://gitlab.com/ambrevar/damerau") + (synopsis "Damerau-Levenshtein distance for Golang") + (description "This is a spelling corrector implementing the +Damerau-Levenshtein distance. Takes a string value input from the user. +Looks for an identical word on a list of words, if none is found, look for a +similar word.") + (license license:expat)))) From c49628172445abf13f98be1db22573c6e92a804d Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 18:39:02 +0200 Subject: [PATCH 272/374] gnu: Add go-github-com-stevedonovan-luar. * gnu/packages/golang.scm (go-github-com-stevedonovan-luar): New variable. --- gnu/packages/golang.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8ad2ec943e..84aa2c8f1b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2199,3 +2199,44 @@ Damerau-Levenshtein distance. Takes a string value input from the user. Looks for an identical word on a list of words, if none is found, look for a similar word.") (license license:expat)))) + +(define-public go-github-com-stevedonovan-luar + (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead") + (revision "0")) + (package + (name "go-github-com-stevedonovan-luar") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/stevedonovan/luar") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c")))) + (build-system go-build-system) + (native-inputs + `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua))) + (arguments + `(#:tests? #f ; Upstream tests are broken. + #:import-path "github.com/stevedonovan/luar")) + (home-page "https://github.com/stevedonovan/luar") + (synopsis "Lua reflection bindings for Go") + (description "Luar is designed to make using Lua from Go more +convenient. Go structs, slices and maps can be automatically converted to Lua +tables and vice-versa. The resulting conversion can either be a copy or a +proxy. In the latter case, any change made to the result will reflect on the +source. + +Any Go function can be made available to Lua scripts, without having to write +C-style wrappers. + +Luar support cyclic structures (lists, etc.). + +User-defined types can be made available to Lua as well: their exported +methods can be called and usual operations such as indexing or arithmetic can +be performed.") + (license license:expat)))) From bc3138d265dd31ca27b89b41d6c126fa8367547f Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 18:49:53 +0200 Subject: [PATCH 273/374] gnu: Add go-github-com-kr-text. * gnu/packages/golang.scm (go-github-com-kr-text): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 84aa2c8f1b..0092c2ace2 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2240,3 +2240,29 @@ User-defined types can be made available to Lua as well: their exported methods can be called and usual operations such as indexing or arithmetic can be performed.") (license license:expat)))) + +(define-public go-github-com-kr-text + (let ((commit "e2ffdb16a802fe2bb95e2e35ff34f0e53aeef34f") + (revision "0")) + (package + (name "go-github-com-kr-text") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/kr/text") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kr/text")) + (home-page "https://github.com/kr/text") + (synopsis "Go package for manipulating paragraphs of text") + (description "Package @code{text} provides manipulation Go functions for +paragraphs of text.") + (license license:expat)))) From 9630ae345bf165704eb0de47c788cb70f5bf0d53 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 18:53:04 +0200 Subject: [PATCH 274/374] gnu: Add go-github-com-michiwend-golang-pretty. * gnu/packages/golang.scm (go-github-com-michiwend-golang-pretty): New variable. --- gnu/packages/golang.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 0092c2ace2..d0b6c25502 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2266,3 +2266,37 @@ be performed.") (description "Package @code{text} provides manipulation Go functions for paragraphs of text.") (license license:expat)))) + +(define-public go-github-com-michiwend-golang-pretty + (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4") + (revision "0")) + (package + (name "go-github-com-michiwend-golang-pretty") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/michiwend/golang-pretty") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4")))) + (build-system go-build-system) + (native-inputs + `(("go-github-com-kr-text" ,go-github-com-kr-text))) + (arguments + `(#:tests? #f ; Upstream tests seem to be broken. + #:import-path "github.com/michiwend/golang-pretty")) + (home-page "https://github.com/michiwend/golang-pretty") + (synopsis "Pretty printing for Go values") + (description "Package @code{pretty} provides pretty-printing for Go +values. This is useful during debugging, to avoid wrapping long output lines +in the terminal. + +It provides a function, @code{Formatter}, that can be used with any function +that accepts a format string. It also provides convenience wrappers for +functions in packages @code{fmt} and @code{log}.") + (license license:expat)))) From 62879d22163af5b8dfe0f788de193ac1d0f9a66f Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 18:54:36 +0200 Subject: [PATCH 275/374] gnu: Add go-github-com-michiwend-gomusicbrainz. * gnu/packages/golang.scm (go-github-com-michiwend-gomusicbrainz): New variable. --- gnu/packages/golang.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d0b6c25502..25e6c44af1 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2300,3 +2300,32 @@ It provides a function, @code{Formatter}, that can be used with any function that accepts a format string. It also provides convenience wrappers for functions in packages @code{fmt} and @code{log}.") (license license:expat)))) + +(define-public go-github-com-michiwend-gomusicbrainz + (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d") + (revision "0")) + (package + (name "go-github-com-michiwend-gomusicbrainz") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/michiwend/gomusicbrainz") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn")))) + (build-system go-build-system) + (native-inputs + `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty) + ("go-github-com-kr-text" ,go-github-com-kr-text))) + (arguments + `(#:import-path "github.com/michiwend/gomusicbrainz")) + (home-page "https://github.com/michiwend/gomusicbrainz") + (synopsis "MusicBrainz WS2 client library for Golang") + (description "Currently GoMusicBrainz provides methods to perform search +and lookup requests. Browse requests are not supported yet.") + (license license:expat)))) From 53182924eb48e6b971f1f37f477623840ad76a08 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 19:00:40 +0200 Subject: [PATCH 276/374] gnu: Add go-github-com-wtolson-go-taglib. * gnu/packages/golang.scm (go-github-com-wtolson-go-taglib): New variable. --- gnu/packages/golang.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 25e6c44af1..c2055956b9 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -43,6 +43,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages pcre) #:use-module (gnu packages lua) + #:use-module (gnu packages mp3) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) @@ -2329,3 +2330,31 @@ functions in packages @code{fmt} and @code{log}.") (description "Currently GoMusicBrainz provides methods to perform search and lookup requests. Browse requests are not supported yet.") (license license:expat)))) + +(define-public go-github-com-wtolson-go-taglib + (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777") + (revision "0")) + (package + (name "go-github-com-wtolson-go-taglib") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/wtolson/go-taglib") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2")))) + (build-system go-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("taglib" ,taglib))) + (arguments + `(#:import-path "github.com/wtolson/go-taglib")) + (home-page "https://github.com/wtolson/go-taglib") + (synopsis "Go wrapper for taglib") + (description "Go wrapper for taglib") + (license license:unlicense)))) From 5703380b506ed17892ce85b2f24e853048c3c08e Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 22 Jun 2018 20:26:41 +0200 Subject: [PATCH 277/374] gnu: Add demlo. * gnu/packages/music.scm (demlo): New variable. --- gnu/packages/music.scm | 89 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index bdc6d050a9..0185b8fd9c 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -50,6 +50,7 @@ #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system waf) #:use-module (guix build-system trivial) + #:use-module (guix build-system go) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages apr) @@ -128,6 +129,8 @@ #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages xiph) + #:use-module (gnu packages golang) + #:use-module (gnu packages lua) #:use-module ((srfi srfi-1) #:select (last))) (define-public aria-maestosa @@ -4131,3 +4134,89 @@ at @code{musicbrainz.org}.") It can be used in daemon mode along with the Music-on-Console (MOC) and cmus console music players.") (license license:gpl3+))) + +(define-public demlo + (let ((commit "fe9ec4c8ac2fa995ec18e6ac86d50d46df06ec01") + (revision "0")) + (package + (name "demlo") + (version (git-version "3.8" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://gitlab.com/ambrevar/demlo") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1afkbqhzn6da7zaf5ab7dvyqj1izqhzprwfb4hw448fllda9bdvk")))) + (build-system go-build-system) + (native-inputs + `(("lua" ,lua) + ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty) + ("go-github-com-mattn-go-colorable" ,go-github-com-mattn-go-colorable) + ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua) + ("go-gitlab-com-ambrevar-damerau" ,go-gitlab-com-ambrevar-damerau) + ("go-gitlab-com-ambrevar-golua-unicode" ,go-gitlab-com-ambrevar-golua-unicode) + ("go-github-com-mgutz-ansi" ,go-github-com-mgutz-ansi) + ("go-github-com-michiwend-gomusicbrainz" ,go-github-com-michiwend-gomusicbrainz) + ("go-github-com-stevedonovan-luar" ,go-github-com-stevedonovan-luar) + ("go-github-com-wtolson-go-taglib" ,go-github-com-wtolson-go-taglib) + ("go-github-com-yookoala-realpath" ,go-github-com-yookoala-realpath))) + (inputs + `(("chromaprint" ,chromaprint) + ("ffmpeg" ,ffmpeg))) + (arguments + `(#:import-path "gitlab.com/ambrevar/demlo" + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (ffmpeg (assoc-ref inputs "ffmpeg")) + (chromaprint (assoc-ref inputs "chromaprint"))) + (wrap-program (string-append out "/bin/demlo") + `("XDG_DATA_DIRS" ":" prefix (,out)) + `("PATH" ":" prefix + ,(map (lambda (dir) + (string-append dir "/bin:" + dir "/sbin")) + (list ffmpeg chromaprint)))) + #t))) + (add-after 'install-source 'install-scripts + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (root (string-append out "/src/gitlab.com/ambrevar/demlo")) + (xdg-data-dirs (string-append out "/demlo"))) + (copy-recursively (string-append root "/actions") + (string-append xdg-data-dirs "/actions")) + (copy-recursively (string-append root "/scripts") + (string-append xdg-data-dirs "/scripts")) + (install-file (string-append root "/config.lua") xdg-data-dirs) + ;; TODO: Test fish completion. + (install-file (string-append root "/completion/demlo.fish") + (string-append out "/share/fish/vendor_completions.d")) + #t)))))) + (home-page "https://gitlab.com/ambrevar/demlo") + (synopsis "Dynamic and extensible music library organizer") + (description "Demlo is a music library organizer. It can encode, fix +case, change folder hierarchy according to tags or file properties, tag from +an online database, copy covers while ignoring duplicates or those below a +quality threshold, and much more. It makes it possible to manage your +libraries uniformly and dynamically. You can write your own rules to fit your +needs best. + +Demlo can address any of these recurring music library issues (and much more): + +@itemize +@item Fix the lack of folder structure. +@item Normalize tags, fix their case, chose which tags to keep and which to +discard. +@item Handle lossy and lossless audio differently. +@item Handle mp3 id3tags hell... +@item Handle multiple covers, whether embedded and/or external, resize covers, +discard bad quality ones. +@end itemize\n") + (license license:expat)))) From 9f2adb2f19db6d2e2234df15b0e24c5d01b9181c Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 22 Jul 2018 23:14:53 +0200 Subject: [PATCH 278/374] gnu: emacs-pulseaudio-control: Update to 20180627. * gnu/packages/emacs.scm (emacs-pulseaudio-control): Update to 20180627. --- gnu/packages/emacs.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index f57a0ea90e..eab31278a5 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -8825,22 +8825,21 @@ navigate and display hierarchy structures.") (license license:gpl3+)))) (define-public emacs-pulseaudio-control - (let ((commit "08c59e1dc45ec96edb62f34036e82cf5f14c0e8b") - (revision "1")) + (let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011") + (revision "2")) (package (name "emacs-pulseaudio-control") - (version (string-append "0.0.1" "-" revision "." - (string-take commit 7))) + (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/flexibeast/pulseaudio-control.git") (commit commit))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 - "10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv")))) + "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k")))) (build-system emacs-build-system) (arguments '(#:phases (modify-phases %standard-phases From 1bb962b4d75fcf9d7aae204d0b2ecd7884c3a3e6 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 22 Jul 2018 20:47:10 -0400 Subject: [PATCH 279/374] gnu: hyperrogue: Update to 10.4j. * gnu/packages/games.scm (hyperrogue): Update to 10.4j. [arguments]: Modify 'configure' phase and substitute invoke for system*. --- gnu/packages/games.scm | 45 ++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index ab1e3fde4c..4dbdfae819 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3472,7 +3472,7 @@ throwing people around in pseudo-randomly generated buildings.") (define-public hyperrogue (package (name "hyperrogue") - (version "10.0g") + (version "10.4j") ;; When updating this package, be sure to update the "hyperrogue-data" ;; origin in native-inputs. (source (origin @@ -3483,7 +3483,7 @@ throwing people around in pseudo-randomly generated buildings.") "-src.tgz")) (sha256 (base32 - "0f68pcnsgl406dhm91ckn3f364bar9m9i5njp9vrmvhvv9p2icy0")))) + "0909p4xvbi1c2jc5rdgrf8b1c60fmsaapabsi6yyglh5znkf0k27")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target @@ -3495,7 +3495,6 @@ throwing people around in pseudo-randomly generated buildings.") (setenv "CPATH" (string-append (assoc-ref inputs "sdl-union") "/include/SDL")))) - ;; Fix font and music paths. (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -3505,17 +3504,18 @@ throwing people around in pseudo-randomly generated buildings.") "/share/fonts/truetype")) (dejavu-font "DejaVuSans-Bold.ttf") (music-file "hyperrogue-music.txt")) + ;; Fix font and music paths. (substitute* "basegraph.cpp" ((dejavu-font) (string-append dejavu-dir "/" dejavu-font))) - (substitute* "sound.cpp" - (((string-append "\\./" music-file)) - (string-append share-dir "/" music-file)) - (("sounds/") - (string-append share-dir "/sounds/"))) (substitute* music-file (("\\*/") (string-append share-dir "/sounds/")))) + ;; Fix Makefile. + (substitute* "Makefile" + (("g\\+\\+ langen.cpp") + "g++ langen.cpp ${CXXFLAGS}") + (("savepng.c") "savepng.cpp")) #t)) (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) @@ -3532,21 +3532,18 @@ throwing people around in pseudo-randomly generated buildings.") (out (assoc-ref outputs "out")) (sounds (string-append out "/share/hyperrogue/sounds")) (unzip (string-append (assoc-ref inputs "unzip") "/bin/unzip"))) - (and - ;; Extract media license information into sounds directory. - (zero? - (system* unzip "-j" data - (string-append - "hyperrogue" - (string-join (string-split ,version #\.) "") - "/sounds/credits.txt") "-d" sounds)) - ;; Extract sounds and music into sounds directory. - (zero? - (system* "unzip" "-j" data - (string-append - "hyperrogue" - (string-join (string-split ,version #\.) "") - "/*.ogg") "-d" sounds))))))))) + ;; Extract media license information into sounds directory. + (invoke unzip "-j" data + (string-append + "hyperrogue" + (string-join (string-split ,version #\.) "") + "/sounds/credits.txt") "-d" sounds) + ;; Extract sounds and music into sounds directory. + (invoke "unzip" "-j" data + (string-append + "hyperrogue" + (string-join (string-split ,version #\.) "") + "/*.ogg") "-d" sounds))))))) (native-inputs `(("hyperrogue-data" ,(origin @@ -3558,7 +3555,7 @@ throwing people around in pseudo-randomly generated buildings.") "-win.zip")) (sha256 (base32 - "0bnp077qvlmxjlz1jjd6kpghlv9flxc19ac1xq3m3wyq1w9p3pab")))) + "0w61iv2rn93hi0q3hxyyyf9xcr8vi9zd7fjvpz5adpgf94jm3zsc")))) ("unzip" ,unzip))) (inputs `(("font-dejavu" ,font-dejavu) From 9d076dd4a09dc93aa57796ff20661d35137af026 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 23 Jul 2018 11:00:30 +0200 Subject: [PATCH 280/374] gnu: c-toxcore: Update to 0.2.4. * gnu/packages/messaging.scm (c-toxcore): Update to 0.2.4. --- gnu/packages/messaging.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 503826381a..12d2ec7191 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2017, 2018 Arun Isaac ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Theodoros Foradis -;;; Copyright © 2017 Rutger Helling +;;; Copyright © 2017, 2018 Rutger Helling ;;; Copyright © 2018 Leo Famulari ;;; Copyright © 2018 Pierre-Antoine Rouby ;;; @@ -873,7 +873,7 @@ protocols.") (define-public c-toxcore (package (name "c-toxcore") - (version "0.2.2") + (version "0.2.4") (source (origin (method url-fetch) @@ -882,7 +882,7 @@ protocols.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "18bfqx0ylbas9gs91rkspf04l5fjjcl0mxm1gfs2d59bv65mvcm3")))) + "0sdszy079f82ncrgq1wsjpk2374n5hm4las75gj3lrdhljl15izl")))) (arguments `(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable ; for now. From 7a426eef20c4f3959621dc0a0a5b8f1ac1eb0abc Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 23 Jul 2018 11:04:12 +0200 Subject: [PATCH 281/374] gnu: qtox: Update to 1.16.3. * gnu/packages/messaging.scm (qtox): Update to 1.16.3. [inputs]: Change ffmpeg-3.4 to ffmpeg. --- gnu/packages/messaging.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 12d2ec7191..a34f744659 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -961,14 +961,14 @@ instant messenger with audio and video chat capabilities.") (define-public qtox (package (name "qtox") - (version "1.16.1") + (version "1.16.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/qTox/qTox/archive/v" version ".tar.gz")) (sha256 (base32 - "11l4klw0g6j4qq95krgyd0npxmmpcgk4vp9jq429sbsqn1s039j4")) + "10n3cgw9xaqin9la8wpd8v83bkjmimicgbyp5ninsdgsrgky4hmq")) (file-name (string-append name "-" version ".tar.gz")))) (build-system cmake-build-system) (arguments @@ -990,7 +990,7 @@ instant messenger with audio and video chat capabilities.") ,(list (string-append (assoc-ref inputs "qtsvg") "/lib/qt5/plugins/")))))))))) (inputs - `(("ffmpeg" ,ffmpeg-3.4) + `(("ffmpeg" ,ffmpeg) ("filteraudio" ,filteraudio) ("glib" ,glib) ("gtk+" ,gtk+-2) From adff3bb91613fd1124bb7e8eb5d80707c6a1e98a Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 23 Jul 2018 11:08:24 +0200 Subject: [PATCH 282/374] gnu: wine-staging-patchset-data: Update to 3.13. * gnu/packages/wine.scm (wine-staging-patchset-data): Update to 3.13. --- gnu/packages/wine.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 2de4ff5d94..dbe6387730 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -223,7 +223,7 @@ integrate Windows applications into your desktop.") (define-public wine-staging-patchset-data (package (name "wine-staging-patchset-data") - (version "3.12") + (version "3.13") (source (origin (method url-fetch) @@ -232,7 +232,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".zip")) (sha256 (base32 - "1hjs36jw8k1d22c713wzwvyhfrb8mi85dpk9wpsggnnw2x57hzs0")))) + "0h27h4z4m2m77chp3alkv6fagppjhh9ys39d3n21j0yfjknyhdd8")))) (build-system trivial-build-system) (native-inputs `(("bash" ,bash) From a472c2902ed021e8cee91eb9c07b307b33adcee0 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 23 Jul 2018 11:09:15 +0200 Subject: [PATCH 283/374] gnu: wine-staging: Update to 3.13. * gnu/packages/wine.scm (wine-staging): Update to 3.13. --- gnu/packages/wine.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index dbe6387730..4562c817cd 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -279,7 +279,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "0zvqmd0018wvlxz4xbm5sbv7770j3l14q0ilpgs0jy49srcw116v")))) + "1m5v854r5wgw68b97j6wim1a8692x5sih25c0xp1yb13a94dg187")))) (inputs `(("autoconf" ,autoconf) ; for autoreconf ("gtk+" ,gtk+) ("libva" ,libva) From 10df28d74d1f799969d3ce37348c44efb1067c7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Jul 2018 10:36:37 +0200 Subject: [PATCH 284/374] system: '.guile' skeleton now recommends 'guile-colorized'. * gnu/system/shadow.scm (default-skeletons)[".guile"]: Recommend 'guile-colorized'. --- gnu/system/shadow.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index b4db69f068..f800c3b546 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -210,7 +210,17 @@ include /run/current-system/profile/share/nano/*.nanorc\n")) ((module-ref module 'activate-readline)))) (else (display \"Consider installing the 'guile-readline' package for -convenient interactive line editing and input history.\\n\\n\")))\n")) +convenient interactive line editing and input history.\\n\\n\"))) + + (unless (getenv \"INSIDE_EMACS\") + (cond ((false-if-exception (resolve-interface '(ice-9 colorized))) + => + (lambda (module) + ;; Enable completion and input history at the REPL. + ((module-ref module 'activate-colorized)))) + (else + (display \"Consider installing the 'guile-colorized' package +for a colorful Guile experience.\\n\\n\"))))\n")) (".guile-wm" ,guile-wm) (".gdbinit" ,gdbinit)))) From a2908f5aae6484b537067ec854871f608ccce92f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Jul 2018 12:19:19 +0200 Subject: [PATCH 285/374] gnu: aspell: Allow filters to be found. Reported by Pierre-Antoine Rouby. * gnu/packages/aspell.scm (aspell)[arguments]: Add 'set-filter-path' phase. --- gnu/packages/aspell.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index 82136a28e8..993dc560eb 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -27,6 +27,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix licenses) + #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages compression) @@ -49,6 +50,19 @@ (arguments `(#:phases (modify-phases %standard-phases + (add-before 'build 'set-filter-path + (lambda* (#:key outputs #:allow-other-keys) + ;; Change the default value of 'filter-path' so that filters such + ;; as 'tex-filter.so' can be found. By default none of the + ;; filters would be found. + (let* ((out (assoc-ref outputs "out")) + (libdir (string-append out "/lib/aspell-" + ,(version-major+minor version)))) + (substitute* "common/config.cpp" + (("\"filter-path(.*)DICT_DIR" _ middle) + (string-append "\"filter-path" middle + "\"" libdir "\""))) + #t))) (add-after 'install 'wrap-aspell (lambda* (#:key outputs #:allow-other-keys) (let ((bin/aspell (string-append (assoc-ref outputs "out") From 2a3b1b3235f3e082d309b411465b67983bc8cf71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Jul 2018 15:38:51 +0200 Subject: [PATCH 286/374] build-system: Add 'guile-build-system'. * guix/build-system/guile.scm, guix/build/guile-build-system.scm: New files. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document 'guile-build-system'. --- Makefile.am | 2 + doc/guix.texi | 15 +++ guix/build-system/guile.scm | 202 ++++++++++++++++++++++++++++++ guix/build/guile-build-system.scm | 153 ++++++++++++++++++++++ 4 files changed, 372 insertions(+) create mode 100644 guix/build-system/guile.scm create mode 100644 guix/build/guile-build-system.scm diff --git a/Makefile.am b/Makefile.am index 6733f4f894..b4cd07ed22 100644 --- a/Makefile.am +++ b/Makefile.am @@ -111,6 +111,7 @@ MODULES = \ guix/build-system/asdf.scm \ guix/build-system/glib-or-gtk.scm \ guix/build-system/gnu.scm \ + guix/build-system/guile.scm \ guix/build-system/haskell.scm \ guix/build-system/perl.scm \ guix/build-system/python.scm \ @@ -149,6 +150,7 @@ MODULES = \ guix/build/glib-or-gtk-build-system.scm \ guix/build/gnu-build-system.scm \ guix/build/gnu-dist.scm \ + guix/build/guile-build-system.scm \ guix/build/perl-build-system.scm \ guix/build/python-build-system.scm \ guix/build/ocaml-build-system.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 84347d156b..f9b3ef0e55 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4045,6 +4045,21 @@ specified with the @code{#:glib} parameter. Both phases are executed after the @code{install} phase. @end defvr +@defvr {Scheme Variable} guile-build-system +This build system is for Guile packages that consist exclusively of Scheme +code and that are so lean that they don't even have a makefile, let alone a +@file{configure} script. It compiles Scheme code using @command{guild +compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) and +installs the @file{.scm} and @file{.go} files in the right place. It also +installs documentation. + +This build system supports cross-compilation by using the @code{--target} +option of @command{guild compile}. + +Packages built with @code{guile-build-system} must provide a Guile package in +their @code{native-inputs} field. +@end defvr + @defvr {Scheme Variable} minify-build-system This variable is exported by @code{(guix build-system minify)}. It implements a minification procedure for simple JavaScript packages. diff --git a/guix/build-system/guile.scm b/guix/build-system/guile.scm new file mode 100644 index 0000000000..77a5f00b01 --- /dev/null +++ b/guix/build-system/guile.scm @@ -0,0 +1,202 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; 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 . + +(define-module (guix build-system guile) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (ice-9 match) + #:use-module (srfi srfi-26) + #:export (%guile-build-system-modules + guile-build-system)) + +(define %guile-build-system-modules + ;; Build-side modules imported by default. + `((guix build guile-build-system) + ,@%gnu-build-system-modules)) + +(define* (lower name + #:key source inputs native-inputs outputs system target + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + + ;; Note: There's no #:guile argument (unlike, for instance, + ;; 'ocaml-build-system' which has #:ocaml.) This is so we can keep + ;; procedures like 'package-for-guile-2.0' unchanged and simple. + + (define private-keywords + '(#:target #:inputs #:native-inputs)) + + (bag + (name name) + (system system) (target target) + (host-inputs `( + ,@inputs)) + (build-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@native-inputs + ,@(map (cute assoc <> (standard-packages)) + '("tar" "gzip" "bzip2" "xz" "locales")))) + (outputs outputs) + (build (if target guile-cross-build guile-build)) + (arguments (strip-keyword-arguments private-keywords arguments)))) + +(define %compile-flags + ;; Flags passed to 'guild compile' by default. We choose a common + ;; denominator between Guile 2.0 and 2.2. + ''("-Wunbound-variable" "-Warity-mismatch" "-Wformat")) + +(define* (guile-build store name inputs + #:key source + (guile #f) + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (source-directory ".") + (compile-flags %compile-flags) + (imported-modules %guile-build-system-modules) + (modules '((guix build guile-build-system) + (guix build utils)))) + "Build SOURCE using Guile taken from the native inputs, and with INPUTS." + (define builder + `(begin + (use-modules ,@modules) + (guile-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:source-directory ,source-directory + #:compile-flags ,compile-flags + #:phases ,phases + #:system ,system + #:outputs %outputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:inputs %build-inputs))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system #:graft? #f))))) + + (build-expression->derivation store name builder + #:inputs inputs + #:system system + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + +(define* (guile-cross-build store name + #:key + (system (%current-system)) target + native-drvs target-drvs + (guile #f) + source + (outputs '("out")) + (search-paths '()) + (native-search-paths '()) + + (phases '%standard-phases) + (source-directory ".") + (compile-flags %compile-flags) + (imported-modules %guile-build-system-modules) + (modules '((guix build guile-build-system) + (guix build utils)))) + (define builder + `(begin + (use-modules ,@modules) + + (let () + (define %build-host-inputs + ',(map (match-lambda + ((name (? derivation? drv) sub ...) + `(,name . ,(apply derivation->output-path drv sub))) + ((name path) + `(,name . ,path))) + native-drvs)) + + (define %build-target-inputs + ',(map (match-lambda + ((name (? derivation? drv) sub ...) + `(,name . ,(apply derivation->output-path drv sub))) + ((name (? package? pkg) sub ...) + (let ((drv (package-cross-derivation store pkg + target system))) + `(,name . ,(apply derivation->output-path drv sub)))) + ((name path) + `(,name . ,path))) + target-drvs)) + + (guile-build #:source ,(match (assoc-ref native-drvs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:target ,target + #:outputs %outputs + #:source-directory ,source-directory + #:compile-flags ,compile-flags + #:inputs %build-target-inputs + #:native-inputs %build-host-inputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:native-search-paths ',(map + search-path-specification->sexp + native-search-paths) + #:phases ,phases)))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system #:graft? #f))))) + + (build-expression->derivation store name builder + #:system system + #:inputs (append native-drvs target-drvs) + #:outputs outputs + #:modules imported-modules + #:substitutable? substitutable? + #:guile-for-build guile-for-build)) + +(define guile-build-system + (build-system + (name 'guile) + (description "The build system for simple Guile packages") + (lower lower))) diff --git a/guix/build/guile-build-system.scm b/guix/build/guile-build-system.scm new file mode 100644 index 0000000000..0bed049436 --- /dev/null +++ b/guix/build/guile-build-system.scm @@ -0,0 +1,153 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Ludovic Courtès +;;; +;;; 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 . + +(define-module (guix build guile-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match) + #:use-module (ice-9 popen) + #:use-module (ice-9 rdelim) + #:use-module (guix build utils) + #:export (target-guile-effective-version + %standard-phases + guile-build)) + +(define* (target-guile-effective-version #:optional guile) + "Return the effective version of GUILE or whichever 'guile' is in $PATH. +Return #false if it cannot be determined." + (let* ((pipe (open-pipe* OPEN_READ + (if guile + (string-append guile "/bin/guile") + "guile") + "-c" "(display (effective-version))")) + (line (read-line pipe))) + (and (zero? (close-pipe pipe)) + (string? line) + line))) + +(define (file-sans-extension file) ;TODO: factorize + "Return the substring of FILE without its extension, if any." + (let ((dot (string-rindex file #\.))) + (if dot + (substring file 0 dot) + file))) + +(define %scheme-file-regexp + ;; Regexp to match Scheme files. + "\\.(scm|sls)$") + +(define %documentation-file-regexp + ;; Regexp to match README files and the likes. + "^(README.*|.*\\.html|.*\\.org|.*\\.md)$") + +(define* (set-locale-path #:key inputs native-inputs + #:allow-other-keys) + "Set 'GUIX_LOCPATH'." + (match (assoc-ref (or native-inputs inputs) "locales") + (#f #t) + (locales + (setenv "GUIX_LOCPATH" (string-append locales "/lib/locale")) + #t))) + +(define* (build #:key outputs inputs native-inputs + (source-directory ".") + (compile-flags '()) + (scheme-file-regexp %scheme-file-regexp) + target + #:allow-other-keys) + "Build files in SOURCE-DIRECTORY that match SCHEME-FILE-REGEXP." + (let* ((out (assoc-ref outputs "out")) + (guile (assoc-ref (or native-inputs inputs) "guile")) + (effective (target-guile-effective-version guile)) + (module-dir (string-append out "/share/guile/site/" + effective)) + (go-dir (string-append out "/lib/guile/" + effective "/site-ccache/")) + (guild (string-append guile "/bin/guild")) + (flags (if target + (cons (string-append "--target=" target) + compile-flags) + compile-flags))) + (if target + (format #t "Cross-compiling for '~a' with Guile ~a...~%" + target effective) + (format #t "Compiling with Guile ~a...~%" effective)) + (format #t "compile flags: ~s~%" flags) + + ;; Make installation directories. + (mkdir-p module-dir) + (mkdir-p go-dir) + + ;; Compile .scm files and install. + (setenv "GUILE_AUTO_COMPILE" "0") + (setenv "GUILE_LOAD_COMPILED_PATH" + (string-append go-dir + (match (getenv "GUILE_LOAD_COMPILED_PATH") + (#f "") + (path (string-append ":" path))))) + (for-each (lambda (file) + (let* ((go (string-append go-dir + (file-sans-extension file) + ".go"))) + ;; Install source module. + (install-file (string-append source-directory "/" file) + (string-append module-dir + "/" (dirname file))) + + ;; Install and compile module. + (apply invoke guild "compile" "-L" source-directory + "-o" go + (string-append source-directory "/" file) + flags))) + + ;; Arrange to strip SOURCE-DIRECTORY from file names. + (with-directory-excursion source-directory + (find-files "." scheme-file-regexp))) + #t)) + +(define* (install-documentation #:key outputs + (documentation-file-regexp + %documentation-file-regexp) + #:allow-other-keys) + "Install files that mactch DOCUMENTATION-FILE-REGEXP." + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" + (strip-store-file-name out)))) + (for-each (cut install-file <> doc) + (find-files "." documentation-file-regexp)) + #t)) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (delete 'configure) + (add-before 'install-locale 'set-locale-path + set-locale-path) + (replace 'build build) + (add-after 'build 'install-documentation + install-documentation) + (delete 'check) + (delete 'strip) + (delete 'validate-runpath) + (delete 'install))) + +(define* (guile-build #:key (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Guile package, applying all of PHASES in order." + (apply gnu:gnu-build #:phases phases args)) From 977d866681df9aaa2a0e763e42dc17598cf2e3c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Jul 2018 15:42:11 +0200 Subject: [PATCH 287/374] gnu: Switch several packages to 'guile-build-system'. * gnu/packages/guile.scm (guile-minikanren)[build-system]: Set to GUILE-BUILD-SYSTEM. [arguments]: Remove. [inputs]: Rename to 'native-inputs'. (guile-miniadapton): Likewise. (guile-colorized): Likewise. (guile-irregex): Likewise, but rewrite 'arguments' field with custom phases. (guile-gdbm-ffi): Likewise, and move patch to the 'origin' form. (guile-simple-zmq): Likewise, and change 'propagated-inputs' to 'inputs'. (jupyter-guile-kernel): Likewise. --- gnu/packages/guile.scm | 509 ++++++++--------------------------------- 1 file changed, 98 insertions(+), 411 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 62d292264e..2dd04917ab 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -74,6 +74,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system guile) #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (ice-9 match) @@ -965,60 +966,8 @@ specification. These are the main features: (sha256 (base32 "0r50jlpzi940jlmxyy3ddqqwmj5r12gb4bcv0ssini9v8km13xz6")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils) - (ice-9 match) - (ice-9 popen) - (ice-9 rdelim)) - - (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)) - (source (assoc-ref %build-inputs "source")) - (doc (string-append out "/share/doc/guile-minikanren")) - (scm-files '("minikanren.scm" - "minikanren/mkextraforms.scm" - "minikanren/mkprelude.scm" - "minikanren/mk.scm")) - (guild (string-append (assoc-ref %build-inputs "guile") - "/bin/guild"))) - ;; Make installation directories. - (mkdir-p (string-append module-dir "/minikanren")) - (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 (match (string-split file #\.) - ((base _) - (string-append module-dir "/" - base ".go"))))) - ;; Install source module. - (copy-file file dest-file) - ;; Install compiled module. - (invoke guild "compile" - "-L" source - "-o" go-file - file))) - scm-files) - - ;; Also copy over the README. - (install-file "README.org" doc) - - #t)))) - (inputs + (build-system guile-build-system) + (native-inputs `(("guile" ,guile-2.2))) (home-page "https://github.com/ijp/minikanren") (synopsis "MiniKanren declarative logic system, packaged for Guile") @@ -1055,46 +1004,8 @@ See http://minikanren.org/ for more on miniKanren generally.") (sha256 (base32 "09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh")))) - (build-system gnu-build-system) - (arguments - `(#:modules ((guix build utils) - (ice-9 popen) - (ice-9 rdelim) - (srfi srfi-1) - (guix build gnu-build-system)) - #:tests? #f ; there is no test target - #:phases - (modify-phases %standard-phases - (delete 'configure) - (delete 'build) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((cwd (getcwd)) - (scm-files (find-files "." "\\.scm$")) - (effective (read-line - (open-pipe* OPEN_READ - "guile" "-c" - "(display (effective-version))"))) - (module-dir (string-append (assoc-ref outputs "out") - "/share/guile/site/" - effective))) - - ;; Make installation directories. - (mkdir-p module-dir) - - (setenv "GUILE_AUTO_COMPILE" "0") - - ;; Compile .scm files and install. - (every (lambda (file) - (let ((go-file (string-append module-dir "/" - (basename file ".scm") ".go"))) - ;; Install source module. - (install-file file module-dir) - ;; Compile and install module. - (zero? (system* "guild" "compile" "-L" cwd - "-o" go-file file)))) - scm-files))))))) - (inputs + (build-system guile-build-system) + (native-inputs `(("guile" ,guile-2.2))) (home-page "https://github.com/fisherdj/miniAdapton") (synopsis "Minimal implementation of incremental computation in Guile @@ -1120,65 +1031,25 @@ understand, extend, and port to host languages other than Scheme.") (sha256 (base32 "1ia3m7dp3lcxa048q0gqbiwwsyvn99baw6xkhb4bhhzn4k7bwyqq")))) - (build-system gnu-build-system) + (build-system guile-build-system) (arguments - `(#:modules ((guix build utils) - (ice-9 match) - (ice-9 rdelim) - (ice-9 popen) - (guix build gnu-build-system)) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (delete 'build) - (delete 'check) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (effective (read-line - (open-pipe* OPEN_READ - "guile" "-c" - "(display (effective-version))"))) - (module-dir (string-append out "/share/guile/site/" - effective)) - (source (assoc-ref inputs "source")) - (doc (string-append out "/share/doc/guile-irregex/")) - (guild (string-append (assoc-ref %build-inputs "guile") - "/bin/guild"))) - ;; Make installation directories. - (mkdir-p (string-append module-dir "/rx/source")) - (mkdir-p doc) - - ;; Compile .scm files and install. - (setenv "GUILE_AUTO_COMPILE" "0") - - (for-each (lambda (copy-info) - (match copy-info - ((src-file dest-file-basis) - (let* ((dest-file (string-append - module-dir dest-file-basis - ".scm")) - (go-file (string-append - module-dir dest-file-basis - ".go"))) - ;; Install source module. - (copy-file src-file - dest-file) - ;; Install compiled module. - (invoke guild "compile" - "-L" (getcwd) - "-o" go-file - src-file))))) - '(("irregex-guile.scm" "/rx/irregex") - ("irregex.scm" "/rx/source/irregex") - ;; Not really reachable via guile's packaging system, - ;; but nice to have around - ("irregex-utils.scm" "/rx/source/irregex-utils"))) - - ;; Also copy over the README. - (install-file "irregex.html" doc) - #t)))))) - (inputs + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'move-files-around + (lambda _ + ;; Move the relevant source files to src/ and create the + ;; rx/ directory to match the expected module hierarchy. + (mkdir-p "src/rx/source") + (rename-file "irregex-guile.scm" + "src/rx/irregex.scm") + (rename-file "irregex.scm" + "src/rx/source/irregex.scm") + ;; Not really reachable via guile's packaging system, + ;; but nice to have around. + (rename-file "irregex-utils.scm" + "src/rx/source/irregex-utils.scm") + #t))) + #:source-directory "src")) + (native-inputs `(("guile" ,guile-2.2))) (home-page "http://synthcode.com/scheme/irregex") (synopsis "S-expression based regular expressions") @@ -1207,83 +1078,35 @@ inspired by the SCSH regular expression system.") (url "https://github.com/ijp/guile-gdbm.git") (commit "fa1d5b6231d0e4d096687b378c025f2148c5f246"))) (file-name (string-append name "-" version "-checkout")) + (patches (search-patches + "guile-gdbm-ffi-support-gdbm-1.14.patch")) (sha256 (base32 "1j8wrsw7v9w6qkl47xz0rdikg50v16nn6kbs3lgzcymjzpa7babj")))) - (build-system trivial-build-system) - (inputs - `(("guile" ,guile-2.2) - ;; patch-and-repack doesn't work for git checkouts, - ;; so we must apply the patch manually. - ("patch" ,patch) - ("patch-file" ,(search-patch - "guile-gdbm-ffi-support-gdbm-1.14.patch")))) - (propagated-inputs - `(("gdbm" ,gdbm))) + (build-system guile-build-system) (arguments - `(#:modules - ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils) - (ice-9 rdelim) - (ice-9 popen)) - - ;; Avoid warnings we can safely ignore - (setenv "GUILE_AUTO_COMPILE" "0") - - (let* ((out (assoc-ref %outputs "out")) - (effective-version - (read-line - (open-pipe* OPEN_READ - (string-append - (assoc-ref %build-inputs "guile") - "/bin/guile") - "-c" "(display (effective-version))"))) - (module-dir (string-append out "/share/guile/site/" - effective-version)) - (source (assoc-ref %build-inputs "source")) - (doc (string-append out "/share/doc")) - (guild (string-append (assoc-ref %build-inputs "guile") - "/bin/guild")) - (gdbm.scm-dest - (string-append module-dir "/gdbm.scm")) - (gdbm.go-dest - (string-append module-dir "/gdbm.go")) - (compile-file - (lambda (in-file out-file) - (invoke guild "compile" "-o" out-file in-file)))) - ;; Switch directory for compiling and installing - (chdir source) - - ;; Install the documentation. - (install-file "README.md" doc) - (copy-recursively "examples" (string-append doc "/examples")) - - ;; Make installation directories. - (mkdir-p module-dir) - - ;; copy the source - (copy-file "gdbm.scm" gdbm.scm-dest) - - ;; Patch the FFI - (substitute* gdbm.scm-dest - (("\\(dynamic-link \"libgdbm\"\\)") - (format #f "(dynamic-link \"~a/lib/libgdbm.so\")" - (assoc-ref %build-inputs "gdbm")))) - - ;; Apply the patch to add support for gdbm-1.14. - (let ((patch-command (string-append (assoc-ref %build-inputs "patch") - "/bin/patch")) - (patch-file (assoc-ref %build-inputs "patch-file"))) - (with-directory-excursion (dirname gdbm.scm-dest) - (format #t "applying '~a'...~%" patch-file) - (invoke patch-command "--force" "--input" patch-file))) - - ;; compile to the destination - (compile-file gdbm.scm-dest gdbm.go-dest) - - #t)))) + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'move-examples + (lambda* (#:key outputs #:allow-other-keys) + ;; Move examples where they belong. + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" + (strip-store-file-name out) + "/examples"))) + (copy-recursively "examples" doc) + (delete-file-recursively "examples") + #t))) + (add-after 'unpack 'set-libgdbm-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "gdbm.scm" + (("\\(dynamic-link \"libgdbm\"\\)") + (format #f "(dynamic-link \"~a/lib/libgdbm.so\")" + (assoc-ref inputs "gdbm")))) + #t))))) + (native-inputs + `(("guile" ,guile-2.2))) + (inputs + `(("gdbm" ,gdbm))) (home-page "https://github.com/ijp/guile-gdbm") (synopsis "Guile bindings to the GDBM library via Guile's FFI") (description @@ -2142,32 +1965,8 @@ It has a nice, simple s-expression based syntax.") (sha256 (base32 "16xhc3an6aglnca8xl3mvgi8hsqzqn68vsl5ga4bz8bvbap5fn4p")))) - (build-system gnu-build-system) - (arguments - `(#:modules ((system base compile) - ,@%gnu-build-system-modules) - #:tests? #f ;No tests included - #:phases - (modify-phases %standard-phases - (delete 'configure) ;No configure script - (replace 'install - (lambda* (#:key outputs inputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (module-dir (string-append out "/share/guile/site/2.2")) - (language-dir (string-append module-dir "/ice-9")) - (guild (string-append (assoc-ref inputs "guile") - "/bin/guild"))) - ;; The original 'make install' is too primitive. - - ;; copy the source - (install-file "ice-9/colorized.scm" language-dir) - - ;; compile to the destination - (compile-file "ice-9/colorized.scm" - #:output-file (string-append - language-dir "/colorized.go")) - #t)))))) - (inputs + (build-system guile-build-system) + (native-inputs `(("guile" ,guile-2.2))) (home-page "https://github.com/NalaGinrut/guile-colorized") (synopsis "Colorized REPL for Guile") @@ -2191,72 +1990,20 @@ It has a nice, simple s-expression based syntax.") (base32 "0nj2pd5bsmmgd3c54wh4sixfhmsv1arsq7yam2d7487h3n9q57r7")) (file-name (git-file-name name version)))) - (build-system trivial-build-system) + (build-system guile-build-system) (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils) - (srfi srfi-26) - (ice-9 match) - (ice-9 popen) - (ice-9 rdelim)) - - (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)) - (go-dir (string-append out "/lib/guile/" - effective "/site-ccache/")) - (source (string-append (assoc-ref %build-inputs "source") - "/src")) - (scm-file "simple-zmq.scm") - (guild (string-append (assoc-ref %build-inputs "guile") - "/bin/guild")) - (zmq (assoc-ref %build-inputs "zeromq")) - (deps (list zmq)) - (path (string-join - (map (cut string-append <> - "/lib/") - deps) - ":"))) - ;; Make installation directories. - (mkdir-p module-dir) - (mkdir-p go-dir) - - ;; 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 (match (string-split file #\.) - ((base _) - (string-append go-dir "/" - base ".go"))))) - ;; Install source module. - (copy-file file dest-file) - (substitute* dest-file - (("\\(dynamic-link \"libzmq\"\\)") - (format #f "(dynamic-link \"~a/lib/libzmq.so\")" - (assoc-ref %build-inputs "zeromq")))) - - ;; Install and compile module. - (unless (zero? (system* guild "compile" - "-L" source - "-o" go-file - dest-file)) - (error (format #f "Failed to compile ~s to ~s!" - file go-file))))) - (list scm-file)) - #t)))) - (inputs + `(#:source-directory "src" + #:phases (modify-phases %standard-phases + (add-after 'unpack 'set-libzmq-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/simple-zmq.scm" + (("\\(dynamic-link \"libzmq\"\\)") + (format #f "(dynamic-link \"~a/lib/libzmq.so\")" + (assoc-ref inputs "zeromq")))) + #t))))) + (native-inputs `(("guile" ,guile-2.2))) - (propagated-inputs + (inputs `(("zeromq" ,zeromq))) (home-page "https://github.com/jerry40/guile-simple-zmq") (synopsis "Guile wrapper over ZeroMQ library") @@ -2280,106 +2027,46 @@ messaging library.") (sha256 (base32 "0y5jr0f0dyskvsawqbf6n0bpg8jirw4mhqbarf2a6p9lxhqha9s9")))) - (build-system trivial-build-system) + (build-system guile-build-system) (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils) - (srfi srfi-26) - (ice-9 match) - (ice-9 popen) - (ice-9 rdelim)) + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'set-openssl-file-name + (lambda* (#:key inputs #:allow-other-keys) + ;; Record the absolute file name of the 'openssl' + ;; command. + (substitute* "src/hmac.scm" + (("openssl") + (string-append (assoc-ref inputs "openssl") + "/bin/openssl"))) + #t)) - (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)) - (kernel-dir (string-append out "/share/jupyter/kernels/guile")) - (go-dir (string-append out "/lib/guile/" - effective - "/site-ccache")) - (source (string-append (assoc-ref %build-inputs "source") - "/src")) - (scm-files '("hmac.scm" - "tools.scm" - "guile-jupyter-kernel.scm")) - (kernel-file "kernel.json") - (guild (string-append (assoc-ref %build-inputs "guile") - "/bin/guild")) - (g-szmq (assoc-ref %build-inputs "guile-simple-zmq")) - (json (assoc-ref %build-inputs "guile-json")) - (deps (list g-szmq json)) - (path (string-join - (map (cut string-append <> - "/share/guile/site/" - effective) - deps) - ":")) - (gopath (string-join - (map (cut string-append <> - "/lib/guile/" effective - "/site-ccache/") - deps) - ":"))) + ;; XXX: The code uses 'include' to include its own source + ;; files, and "-L src" isn't enough in this case. + (add-before 'build 'chdir + (lambda _ (chdir "src") #t)) + (add-after 'build 'chdir-back + (lambda _ (chdir "..") #t)) - ;; Make installation directories. - (mkdir-p module-dir) - (mkdir-p kernel-dir) - (mkdir-p go-dir) + (add-after 'install 'install-kernel + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append + out "/share/jupyter/kernels/guile"))) + ;; Install kernel. + (install-file "src/kernel.json" dir) - ;; Make a writable copy of SOURCE. - (copy-recursively source ".") - - ;; Record the absolute file name of the 'openssl' command. - (substitute* "hmac.scm" - (("openssl") - (string-append (assoc-ref %build-inputs "openssl") - "/bin/openssl"))) - - ;; Compile .scm files and install. - (setenv "GUILE_AUTO_COMPILE" "0") - (setenv "GUILE_LOAD_PATH" path) - (setenv "GUILE_LOAD_COMPILED_PATH" gopath) - - (for-each (lambda (file) - (let* ((dest-file (string-append module-dir "/" - file)) - (go-file (match (string-split file #\.) - ((base _) - (string-append go-dir "/" - base ".go"))))) - ;; Install source module. - (copy-file file dest-file) - - ;; Install compiled module. - (unless (zero? (system* guild "compile" - "-L" source - "-o" go-file - file)) - (error (format #f "Failed to compile ~s to ~s!" - file go-file))))) - scm-files) - - ;; Install kernel - (copy-file kernel-file (string-append kernel-dir "/" - kernel-file)) - ;; Fix hard-coded file name in the kernel - (substitute* (string-append kernel-dir "/" - kernel-file) - (("/home/jerry/.local/share/jupyter/kernels/guile/guile-jupyter-kernel.scm") - (string-append module-dir "/guile-jupyter-kernel.scm")) - (("\"guile\"") - (string-append "\"" (assoc-ref %build-inputs "guile") - "/bin/guile\"")) - (("-s") - (string-append "--no-auto-compile\", \"-s"))) - - #t)))) + ;; Fix hard-coded file name in the kernel. + (substitute* (string-append dir "/kernel.json") + (("/home/.*/guile-jupyter-kernel.scm") + (string-append out "/share/guile/site/" + (target-guile-effective-version) + "/guile-jupyter-kernel.scm")) + (("\"guile\"") + (string-append "\"" (assoc-ref inputs "guile") + "/bin/guile\"")) + (("-s") + (string-append "--no-auto-compile\", \"-s"))) + #t)))))) (inputs `(("openssl" ,openssl) ("guile" ,guile-2.2))) From fef7baba786a96b7a3100c9c7adf8b45782ced37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Jul 2018 22:51:27 +0200 Subject: [PATCH 288/374] gnu: Add guile-pfds. * gnu/packages/guile.scm (guile-pfds): New variable. --- gnu/packages/guile.scm | 72 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 2dd04917ab..f179f293ea 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1974,6 +1974,78 @@ It has a nice, simple s-expression based syntax.") "Guile-colorized provides you with a colorized REPL for GNU Guile.") (license license:gpl3+))) +(define-public guile-pfds + (package + (name "guile-pfds") + (version "0.3") + (home-page "https://github.com/ijp/pfds") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (sha256 + (base32 + "19y33wg94pf0n98dkfqd1zbw93fgky4sawxsxl6s3vyqwl0yi5vh")) + (file-name (string-append name "-" version "-checkout")))) + (build-system guile-build-system) + (arguments + '(#:source-directory "src" + #:phases (modify-phases %standard-phases + (add-after 'unpack 'move-files-around + (lambda _ + ;; Move files under a pfds/ directory to reflect the + ;; module hierarchy. + (mkdir-p "src/pfds") + (for-each (lambda (file) + (rename-file file + (string-append "src/pfds/" + file))) + '("bbtrees.sls" + "deques" + "deques.sls" + "dlists.sls" + "fingertrees.sls" + "hamts.sls" + "heaps.sls" + "private" + "psqs.sls" + "queues" + "queues.sls" + "sequences.sls" + "sets.sls")) + + ;; In Guile <= 2.2.4, there's no way to tell 'guild + ;; compile' to accept the ".sls" extension. So... + (for-each (lambda (file) + (rename-file file + (string-append + (string-drop-right file 4) + ".scm"))) + (find-files "." "\\.sls$")) + #t))))) + (native-inputs + `(("guile" ,guile-2.2))) + (synopsis "Purely functional data structures for Guile") + (description + "This package provides purely functional data structures written in R6RS +Scheme and compiled for Guile. It has been tested with Racket, Guile 2, +Vicare Scheme and IronScheme. Right now it contains: + +@itemize +@item queues +@item deques +@item bbtrees +@item sets +@item dlists +@item priority search queues (PSQs) +@item finger trees +@item sequences +@item heaps +@item hash array mapped tries (HAMTs). +@end itemize\n") + (license license:bsd-3))) + (define-public guile-simple-zmq (let ((commit "1f3b7c0b9b249c6fde8e8a632b252d8a1b794424") (revision "1")) From 2cdb257ee3d91da797737d7bca9cd1788a06eb7e Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Mon, 23 Jul 2018 11:23:11 -0400 Subject: [PATCH 289/374] gnu: arb: Update to 2.14.0. * gnu/packages/algebra.scm (arb): Update to 2.14.0. [arguments]: Substitute invoke for system*. [license]: Change to lgpl2.1+. --- gnu/packages/algebra.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 2a17ea59b6..c889433b41 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -315,7 +315,7 @@ fast arithmetic.") (define-public arb (package (name "arb") - (version "2.13.0") + (version "2.14.0") (source (origin (method url-fetch) (uri (string-append @@ -324,7 +324,7 @@ fast arithmetic.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "123p3gwx0s3i88rcaj3g4jl37cr3pywhpqackipskzab15ni2xfh")))) + "0ncr27nd20xxi18nj30cvpa6r52v59nq7gbi34x3l4xym3p8mlmx")))) (build-system gnu-build-system) (propagated-inputs `(("flint" ,flint))) ; flint.h is included by arf.h @@ -342,19 +342,18 @@ fast arithmetic.") (mpfr (assoc-ref inputs "mpfr"))) ;; do not pass "--enable-fast-install", which makes the ;; homebrew configure process fail - (zero? (system* - "./configure" + (invoke "./configure" (string-append "--prefix=" out) (string-append "--with-flint=" flint) (string-append "--with-gmp=" gmp) - (string-append "--with-mpfr=" mpfr))))))))) + (string-append "--with-mpfr=" mpfr)))))))) (synopsis "Arbitrary precision floating-point ball arithmetic") (description "Arb is a C library for arbitrary-precision floating-point ball arithmetic. It supports efficient high-precision computation with polynomials, power series, matrices and special functions over the real and complex numbers, with automatic, rigorous error control.") - (license license:gpl2+) + (license license:lgpl2.1+) (home-page "http://fredrikj.net/arb/"))) (define-public ntl From 3adacb49fc1d187a90cf0aa9cdc23bf9f050d656 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 23 Jul 2018 19:30:07 +0200 Subject: [PATCH 290/374] gnu: xorg: Update home-pages. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/xorg.scm (perl-x11-protocol-other, perl-x11-xcb) (perl-x11-protocol)[home-page]: Update to redirected home-pages. --- gnu/packages/xorg.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 7a604ff074..0d362669b7 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5819,7 +5819,7 @@ programs that cannot use the window system directly.") ("xcb-proto" ,xcb-proto) ("xcb-util" ,xcb-util) ("xcb-util-wm" ,xcb-util-wm))) - (home-page "http://search.cpan.org/dist/X11-XCB") + (home-page "https://metacpan.org/release/X11-XCB") (synopsis "Perl bindings for libxcb") (description "These bindings wrap @code{libxcb} (a C library to speak with X11, @@ -5846,7 +5846,7 @@ interface to its methods (using @code{Mouse}).") "X11::Protocol is a client-side interface to the X11 Protocol, allowing perl programs to display windows and graphics on X11 servers.") (home-page - (string-append "http://search.cpan.org/~smccam/X11-Protocol-" version)) + (string-append "https://metacpan.org/release/SMCCAM/X11-Protocol-" version)) ;; From the package README: "you can redistribute and/or modify it under ;; the same terms as Perl itself. (As an exception, the file ;; Keysyms.pm,which is derived from a file in the standard X11 @@ -5874,7 +5874,7 @@ perl programs to display windows and graphics on X11 servers.") ("perl-module-util" ,perl-module-util))) (propagated-inputs `(("perl-x11-protocol" ,perl-x11-protocol))) - (home-page "http://search.cpan.org/dist/X11-Protocol-Other/") + (home-page "https://metacpan.org/release/X11-Protocol-Other") (synopsis "Miscellaneous helpers for @code{X11::Protocol} connections") (description "@code{X11::Protocol::Other} contains window manager related functions for From 8fca43e2df08fc465a44e200bd5df4b14c0aa213 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 Jul 2018 13:51:48 -0400 Subject: [PATCH 291/374] gnu: wesnoth: Update to 1.14.4 [fixes CVE-2018-1999023]. * gnu/packages/games.scm (wesnoth): Update to 1.14.4. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 4dbdfae819..1082dadae6 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1957,7 +1957,7 @@ falling, themeable graphics and sounds, and replays.") (define-public wesnoth (package (name "wesnoth") - (version "1.14.3") + (version "1.14.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-" @@ -1966,7 +1966,7 @@ falling, themeable graphics and sounds, and replays.") name "-" version ".tar.bz2")) (sha256 (base32 - "06648041nr77sgzr7jpmcn37cma3hp41qynp50xzddx28l17zwg9")))) + "1hw1ap8xxpdwyx1sf8fm1g75p6724y3hwb4kpvyqbsq7bwfwsb9i")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no check target From d3b7feb7b9cbaa5ab08942ff1331d734c5193f33 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 Jul 2018 16:40:21 +0300 Subject: [PATCH 292/374] gnu: python-asn1crypto: Don't use unstable tarball. * gnu/packages/python-crypto.scm (python-asn1crypto)[source]: Replace autogenerated tarball with git checkout. --- gnu/packages/python-crypto.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 2d865a92b3..3c0fa6b21e 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Eric Dvorsak -;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2015, 2016, 2017 Leo Famulari ;;; Copyright © 2016, 2017 Marius Bakke ;;; Copyright © 2017 Ben Sturmfels @@ -613,13 +613,14 @@ ECB and OFB).") (version "0.22.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/wbond/asn1crypto/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/wbond/asn1crypto.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1kn910896l3knmilla1c9ly20q181s43w1ah08lzkbm1h3j6pcz0")))) + "1n5chs5wzf1v8aii6z80dnwywjv6prk0wydamyn65kxg586wqqlf")))) (build-system python-build-system) (home-page "https://github.com/wbond/asn1crypto") (synopsis "ASN.1 parser and serializer in Python") From 19f2a52644ffabf4902d0506329aa29d835dda4f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 Jul 2018 18:48:24 +0300 Subject: [PATCH 293/374] gnu: python-asn1crypto: Update to 0.24.0. * gnu/packages/python-crypto.scm (python-asn1crypto): Update to 0.24.0. --- gnu/packages/python-crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 3c0fa6b21e..ed8aa836fd 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -610,7 +610,7 @@ ECB and OFB).") (define-public python-asn1crypto (package (name "python-asn1crypto") - (version "0.22.0") + (version "0.24.0") (source (origin (method git-fetch) @@ -620,7 +620,7 @@ ECB and OFB).") (file-name (git-file-name name version)) (sha256 (base32 - "1n5chs5wzf1v8aii6z80dnwywjv6prk0wydamyn65kxg586wqqlf")))) + "10lai2cs5mnz3gpaffbw1m7b885ls8328q5wxm35vfmcip1f0xmb")))) (build-system python-build-system) (home-page "https://github.com/wbond/asn1crypto") (synopsis "ASN.1 parser and serializer in Python") From e97454b62c3e6fac93441973a9c412d375e17497 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 24 Jul 2018 11:17:42 +0200 Subject: [PATCH 294/374] gnu: mpv: Update to 0.29.0. * gnu/packages/video.scm (mpv): Update to 0.29.0. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 8f4c60c424..24bf5b4ed9 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1106,7 +1106,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.28.2") + (version "0.29.0") (source (origin (method url-fetch) (uri (string-append @@ -1114,7 +1114,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ".tar.gz")) (sha256 (base32 - "15fp4sa5glqhgidd54vs6knf9dp809wszzsqiqz5nyri4ph19nma")) + "06bk8836brzik1qmq8kycwg5n35r438sd2176k6msjg5rrwghakp")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs From 68f50cfdd34670f7cbc922398e9117de27f964c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 Jul 2018 10:18:14 +0200 Subject: [PATCH 295/374] gnu: xorg-server: Apply patch to fix screen rotation on KMS. Fixes . * gnu/packages/patches/xorg-server-rotate-fb.patch: New file. * gnu/packages/xorg.scm (xorg-server)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../patches/xorg-server-rotate-fb.patch | 35 +++++++++++++++++++ gnu/packages/xorg.scm | 3 +- 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/xorg-server-rotate-fb.patch diff --git a/gnu/local.mk b/gnu/local.mk index 16521e8e0d..ea906b83e7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1234,6 +1234,7 @@ dist_patch_DATA = \ %D%/packages/patches/xinetd-fix-fd-leak.patch \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \ %D%/packages/patches/xmodmap-asprintf.patch \ + %D%/packages/patches/xorg-server-rotate-fb.patch \ %D%/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch \ %D%/packages/patches/zathura-plugindir-environment-variable.patch \ %D%/packages/patches/zstd-fix-stdin-list-without-tty.patch \ diff --git a/gnu/packages/patches/xorg-server-rotate-fb.patch b/gnu/packages/patches/xorg-server-rotate-fb.patch new file mode 100644 index 0000000000..f47036b2a7 --- /dev/null +++ b/gnu/packages/patches/xorg-server-rotate-fb.patch @@ -0,0 +1,35 @@ +commit a85e94a50c94b07574c8701a3ff3c1243f4257f4 +Author: Olivier Fourdan +Date: Fri Jun 15 08:57:12 2018 +0200 + + modesetting: use drmmode_bo_import() for rotate_fb + + drmmode_shadow_allocate() still uses drmModeAddFB() which may fail if + the format is not as expected, preventing from using a rotated output. + + Change it to use the new function drmmode_bo_import() which takes care + of calling the drmModeAddFB2() API. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106715 + Signed-off-by: Olivier Fourdan + Tested-by: Tomas Pelka + Reviewed-by: Lyude Paul + +diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c +index 859a21a9d..ec11b3f56 100644 +--- a/hw/xfree86/drivers/modesetting/drmmode_display.c ++++ b/hw/xfree86/drivers/modesetting/drmmode_display.c +@@ -1794,11 +1794,8 @@ drmmode_shadow_allocate(xf86CrtcPtr crtc, int width, int height) + return NULL; + } + +- ret = drmModeAddFB(drmmode->fd, width, height, crtc->scrn->depth, +- drmmode->kbpp, +- drmmode_bo_get_pitch(&drmmode_crtc->rotate_bo), +- drmmode_bo_get_handle(&drmmode_crtc->rotate_bo), +- &drmmode_crtc->rotate_fb_id); ++ ret = drmmode_bo_import(drmmode, &drmmode_crtc->rotate_bo, ++ &drmmode_crtc->rotate_fb_id); + + if (ret) { + ErrorF("failed to add rotate fb\n"); diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 0d362669b7..b238ea4aad 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5093,7 +5093,8 @@ over Xlib, including: (sha256 (base32 "0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q")) - (file-name "xorg-server-use-intel-only-on-pre-gen4.diff")))))) + (file-name "xorg-server-use-intel-only-on-pre-gen4.diff")) + (search-patch "xorg-server-rotate-fb.patch"))))) (build-system gnu-build-system) (propagated-inputs `(("libpciaccess" ,libpciaccess) From a14a2da5fecdb7c022a44ca1fbc7e60981236eb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 Jul 2018 13:44:17 +0200 Subject: [PATCH 296/374] gnu: lightdm: Take 'nologin' from the 'shadow' package. Reported by brendarn on #guix. * gnu/packages/display-managers.scm (lightdm)[inputs]: Use SHADOW instead of UTIL-LINUX. --- gnu/packages/display-managers.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index a4ed601ec8..0a68099d67 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Joshua Grant -;;; Copyright © 2014 Ludovic Courtès +;;; Copyright © 2014, 2018 Ludovic Courtès ;;; Copyright © 2014 Andreas Enge ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Sou Bunnbu @@ -257,7 +257,7 @@ create smooth, animated user interfaces.") (inputs `(("audit" ,audit) ("linux-pam" ,linux-pam) - ("util-linux" ,util-linux) ; for sbin/nologin + ("shadow" ,shadow) ;for sbin/nologin ("libgcrypt" ,libgcrypt) ("libxcb" ,libxcb))) (native-inputs From 0e11f5da4daf1fc715f64b1e4a26bf7091da7cf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 Jul 2018 15:17:37 +0200 Subject: [PATCH 297/374] gnu: go-github-com-yookoala-realpath: Fix license. * gnu/packages/golang.scm (go-github-com-yookoala-realpath)[license]: Change to EXPAT. --- gnu/packages/golang.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index c2055956b9..445533b0c2 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2171,7 +2171,7 @@ anyways and Go regexps are more powerful.") (description "This package provides @code{realpath}, a Go module that when provided with a valid relative path / alias path, it will return you with a string of its real absolute path in the system.") - (license license:bsd-style)))) + (license license:expat)))) (define-public go-gitlab-com-ambrevar-damerau (let ((commit "883829e1f25fad54015772ea663e69017cf22352") From f7b447f84bc3d044ce9c8f9fa067f73d689479be Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 24 Jul 2018 09:56:53 -0400 Subject: [PATCH 298/374] gnu: linux-libre@4.4: Update to 4.4.143. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.143. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index ad2ce2588d..4a109f3493 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -429,8 +429,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.141" - "0lzl0zz12r1s2r1x4bmyfhcj1mq14rm1c6npyvsj79fzz0z4z2pc" + (make-linux-libre "4.4.143" + "0kawgpmmv37gds3cbww791bbzvwfjg760yg3qw3dk913dawhdmzw" %intel-compatible-systems #:configuration-file kernel-config)) From b02ba32af54f7b31c321dbeb05ff6f84e90fbdc3 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 24 Jul 2018 09:57:48 -0400 Subject: [PATCH 299/374] gnu: linux-libre@4.9: Update to 4.9.114. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.114. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 4a109f3493..f23681251a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -423,8 +423,8 @@ 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.113" - "12xj0ymwb0rdxnkl18xg40hiqcr5ad636xsjqz6aag2wxj8ld2xr" + (make-linux-libre "4.9.114" + "069ckgck4skzci6sjrpk1sja0h1fdmrlcbpnqwl2844m5vfffzk9" %intel-compatible-systems #:configuration-file kernel-config)) From 7955bdbd174c51fd9da5f775d2ab2630251ba2fa Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 24 Jul 2018 09:58:41 -0400 Subject: [PATCH 300/374] gnu: linux-libre@4.14: Update to 4.14.57. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.57. (%linux-libre-4.14-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index f23681251a..2de0dce7d8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -413,8 +413,8 @@ It has been modified to remove all non-free binary blobs.") %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.56") -(define %linux-libre-4.14-hash "15a4gsi1nsjab16qwfizc0bdn0h27w54qy2a50847i0ln4akdrzl") +(define %linux-libre-4.14-version "4.14.57") +(define %linux-libre-4.14-hash "1qp8g87ss4a3iz6k3k4mkllibvdrixh6ys4a9l7jidp2wmkxj3kc") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version From 20de675a2e8146d814b565314dd4c7a0234d626d Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 24 Jul 2018 09:59:35 -0400 Subject: [PATCH 301/374] gnu: linux-libre: Update to 4.17.9. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.17.9. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 2de0dce7d8..7ad62b1d84 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -404,8 +404,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.17.8") -(define %linux-libre-hash "0anq35i9x0kslz42g73vq8wbg56rmrcb38j8mgnhc5c99037gkwr") +(define %linux-libre-version "4.17.9") +(define %linux-libre-hash "1mahjxn4j7sdjdrbkrgal37nfx23njhnmrxcmixmphps8i44rlwm") (define-public linux-libre (make-linux-libre %linux-libre-version From 8440db459a10daa24282038f35bc0b6771bd51ab Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 23 Jul 2018 00:25:34 +0200 Subject: [PATCH 302/374] import: PyPI: Update redirected URL. * guix/import/pypi.scm (guix-package->pypi-name, pypi->guix-package): Update docstrings. (pypi-package?): Test for pypi.org, too. (pypi-fetch): s/pypi.python.org/pypi.org/ * tests/pypi.scm ("guix-package->pypi-name, new URL style", "pypi->guix-package", "pypi->guix-package, wheels"): Likewise. --- guix/import/pypi.scm | 10 +++++----- tests/pypi.scm | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 6beab6b010..25560bac46 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -51,8 +51,7 @@ (define (pypi-fetch name) "Return an alist representation of the PyPI metadata for the package NAME, or #f on failure." - (json-fetch-alist (string-append "https://pypi.python.org/pypi/" - name "/json"))) + (json-fetch-alist (string-append "https://pypi.org/pypi/" name "/json"))) ;; For packages found on PyPI that lack a source distribution. (define-condition-type &missing-source-error &error @@ -87,7 +86,7 @@ package." (string-append "python-" (snake-case name)))) (define (guix-package->pypi-name package) - "Given a Python PACKAGE built from pypi.python.org, return the name of the + "Given a Python PACKAGE built from pypi.org, return the name of the package on PyPI." (define (url->pypi-name url) (hyphen-package-name->name+version @@ -269,7 +268,7 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." (license ,(license->symbol license))))))) (define (pypi->guix-package package-name) - "Fetch the metadata for PACKAGE-NAME from pypi.python.org, and return the + "Fetch the metadata for PACKAGE-NAME from pypi.org, and return the `package' s-expression corresponding to that package, or #f on failure." (let ((package (pypi-fetch package-name))) (and package @@ -304,7 +303,8 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." "Return true if PACKAGE is a Python package from PyPI." (define (pypi-url? url) - (or (string-prefix? "https://pypi.python.org/" url) + (or (string-prefix? "https://pypi.org/" url) + (string-prefix? "https://pypi.python.org/" url) (string-prefix? "https://pypi.io/packages" url))) (let ((source-url (and=> (package-source package) origin-uri)) diff --git a/tests/pypi.scm b/tests/pypi.scm index 74f13e9662..310c6c8f29 100644 --- a/tests/pypi.scm +++ b/tests/pypi.scm @@ -89,7 +89,7 @@ baz > 13.37") (dummy-package "foo" (source (dummy-origin (uri - "https://pypi.python.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz")))))) + "https://pypi.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz")))))) (test-equal "guix-package->pypi-name, several URLs" "cram" @@ -120,7 +120,7 @@ baz > 13.37") (mock ((guix http-client) http-fetch (lambda (url . rest) (match url - ("https://pypi.python.org/pypi/foo/json" + ("https://pypi.org/pypi/foo/json" (values (open-input-string test-json) (string-length test-json))) ("https://example.com/foo-1.0.0-py2.py3-none-any.whl" #f) @@ -182,7 +182,7 @@ baz > 13.37") (mock ((guix http-client) http-fetch (lambda (url . rest) (match url - ("https://pypi.python.org/pypi/foo/json" + ("https://pypi.org/pypi/foo/json" (values (open-input-string test-json) (string-length test-json))) ("https://example.com/foo-1.0.0-py2.py3-none-any.whl" #f) From 02062f42e66234fbb414c35abd75123f0ad2146d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 24 Jul 2018 22:38:03 +0300 Subject: [PATCH 303/374] Revert "gnu: sddm: Fix CMake build." This reverts commit 8674abb1dda0278f81b5965985e6b78497aab386. This is no longer necessary after the upgrade to Qt-5.11.1. --- gnu/local.mk | 1 - gnu/packages/display-managers.scm | 4 +-- .../sddm-fix-build-with-qt-5.11-1024.patch | 28 ------------------- 3 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5ae074dad2..bb333a6611 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1123,7 +1123,6 @@ dist_patch_DATA = \ %D%/packages/patches/scotch-build-parallelism.patch \ %D%/packages/patches/scotch-graph-diam-64.patch \ %D%/packages/patches/scotch-graph-induce-type-64.patch \ - %D%/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/seq24-rename-mutex.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \ diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index b0ad3df788..6e3d4912de 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -6,7 +6,6 @@ ;;; Copyright © 2017 Sou Bunnbu ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017 Tobias Geerinckx-Rice -;;; Copyright © 2018 Stefan Stefanović ;;; ;;; This file is part of GNU Guix. ;;; @@ -144,8 +143,7 @@ Qt-style API for Wayland clients.") "sddm-" version ".tar.xz")) (sha256 (base32 - "0ch6rdppgy2vbzw0c2x9a4c6ry46vx7p6b76d8xbh2nvxh23xv0k")) - (patches (search-patches "sddm-fix-build-with-qt-5.11-1024.patch")))) + "0ch6rdppgy2vbzw0c2x9a4c6ry46vx7p6b76d8xbh2nvxh23xv0k")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) diff --git a/gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch b/gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch deleted file mode 100644 index 53c184230a..0000000000 --- a/gnu/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 2efc649..8903b52 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -93,7 +95,7 @@ - find_package(XKB REQUIRED) - - # Qt 5 --find_package(Qt5 5.6.0 CONFIG REQUIRED Core DBus Gui Qml Quick LinguistTools) -+find_package(Qt5 5.8.0 CONFIG REQUIRED Core DBus Gui Qml Quick LinguistTools Test) - - # find qt5 imports dir - get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION) -diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt -index c9d935a..bb85ddd 100644 ---- a/test/CMakeLists.txt -+++ b/test/CMakeLists.txt -@@ -2,9 +2,8 @@ - - include_directories(../src/common) - -- - set(ConfigurationTest_SRCS ConfigurationTest.cpp ../src/common/ConfigReader.cpp) - add_executable(ConfigurationTest ${ConfigurationTest_SRCS}) - add_test(NAME Configuration COMMAND ConfigurationTest) - --qt5_use_modules(ConfigurationTest Test) -+target_link_libraries(ConfigurationTest Qt5::Core Qt5::Test) From 45498f51be5e0d747e69b2891a331fe7cadb1df4 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 24 Jul 2018 21:56:47 +0200 Subject: [PATCH 304/374] gnu: Add ruby-childprocess. * gnu/packages/ruby.scm (ruby-childprocess): New variable. --- gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 9a74f16c01..bd8df1a349 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -4983,3 +4983,28 @@ Markdown.") in standard Ruby syntax.") (home-page "https://github.com/ruby/rake") (license license:expat))) + +(define-public ruby-childprocess + (package + (name "ruby-childprocess") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "childprocess" version)) + (sha256 + (base32 + "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec))) + (propagated-inputs + `(("ruby-ffi" ,ruby-ffi))) + (synopsis "Control external programs running in the background, in Ruby") + (description "@code{childprocess} provides a gem to control external +programs running in the background, in Ruby.") + (home-page "http://github.com/enkessler/childprocess") + (license license:expat))) From 999ffb26df16c5a95aab4378c0f65f84615efa1a Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 24 Jul 2018 22:13:21 +0200 Subject: [PATCH 305/374] gnu: Add ruby-rspec-its. * gnu/packages/ruby.scm (ruby-rspec-its): New variable. --- gnu/packages/ruby.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index bd8df1a349..6b85fe68e3 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -446,6 +446,29 @@ outcomes of a code example.") (propagated-inputs `(("ruby-diff-lcs" ,ruby-diff-lcs))))) +(define-public ruby-rspec-its + (package + (name "ruby-rspec-its") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rspec-its" version)) + (sha256 + (base32 + "1pwphny5jawcm1hda3vs9pjv1cybaxy17dc1s75qd7drrvx697p3")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; needs cucumber. + (propagated-inputs + `(("ruby-rspec-core" ,ruby-rspec-core) + ("ruby-rspec-expectations" ,ruby-rspec-expectations))) + (synopsis "RSpec extension gem for attribute matching") + (description "@code{rspec-its} is an RSpec extension gem for attribute +matching.") + (home-page "https://github.com/rspec/rspec-its") + (license license:expat))) + (define-public ruby-rspec-mocks (package (name "ruby-rspec-mocks") From 8376f10a30c1bb246689ba68984e680ddf0dffa1 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 24 Jul 2018 22:46:55 +0200 Subject: [PATCH 306/374] ruby-build-system: Make phase "replace-git-ls-files" handle more cases. * guix/build/ruby-build-system.scm (replace-git-ls-files): Modify. --- guix/build/ruby-build-system.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm index a346e9fb8e..3a658e2557 100644 --- a/guix/build/ruby-build-system.scm +++ b/guix/build/ruby-build-system.scm @@ -78,7 +78,8 @@ operation is not deterministic, we replace it with `find`." (when (not (gem-archive? source)) (let ((gemspec (first-gemspec))) (substitute* gemspec - (("`git ls-files`") "`find . -type f |sort`")))) + (("`git ls-files`") "`find . -type f |sort`") + (("`git ls-files -z`") "`find . -type f -print0 |sort -z`")))) #t) (define* (extract-gemspec #:key source #:allow-other-keys) From 718f791f4ef9f0f3b7d9cd218ba55a3a73c62111 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 24 Jul 2018 23:15:56 +0200 Subject: [PATCH 307/374] gnu: fuse: Update to 2.9.8 [fixes CVE-2018-10906]. * gnu/packages/linux.scm (fuse): Update to 2.9.8. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7ad62b1d84..7edf20ebc9 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1611,7 +1611,7 @@ processes currently causing I/O.") (define-public fuse (package (name "fuse") - (version "2.9.7") + (version "2.9.8") (source (origin (method url-fetch) (uri (string-append "https://github.com/libfuse/libfuse/releases/" @@ -1619,7 +1619,7 @@ processes currently causing I/O.") "/fuse-" version ".tar.gz")) (sha256 (base32 - "0x486nri30f7cgy0acj87v9sjxsjrr0cymrvw4h3r0sgmp8k4943")) + "1k4ggl2y5v0lr98l189pc81w0zijj23wbbnijsc6zlx84117nd0j")) (patches (search-patches "fuse-overlapping-headers.patch")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) From 9936ffe77d5f69185f68c52d44ec21c9f94600e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Sat, 21 Jul 2018 10:20:38 +0200 Subject: [PATCH 308/374] gnu: java-guice: Remove jars. * gnu/packages/java.scm (java-guice)[source]: Add snippet to delete jar-files. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index bc28428935..b8587ccc07 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -7908,6 +7908,10 @@ the dependency is said to be unsatisfied, and the application is broken.") (uri (string-append "https://github.com/google/guice/archive/" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) + (modules '((guix build utils))) + (snippet + `(begin + (for-each delete-file (find-files "." ".*.jar")))) (sha256 (base32 "0dwmqjzlavb144ywqqglj3h68hqszkff8ai0a42hyb5il0qh4rbp")))) From b1ccd2a1ecdd0732194b015844a02599e764a3a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Sat, 21 Jul 2018 10:22:36 +0200 Subject: [PATCH 309/374] gnu: java-logback-core: Add file-name field. * gnu/package/java.scm (java-logback-core)[source]: Add file-name field. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b8587ccc07..7f7cf52a64 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -10277,6 +10277,7 @@ static code analysis or code manipulation."))) (method url-fetch) (uri (string-append "https://github.com/qos-ch/logback/archive/v_" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi")) From 10eddaca0e0012fd6894ae9c5d59eaf4d0efa351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Sat, 21 Jul 2018 10:23:28 +0200 Subject: [PATCH 310/374] gnu: java: Use java-classpathx-servletapi instead of java-tomcat where possible. * gnu/package/java.scm (java-commons-jxpath)[inputs]: Remove java-tomcat, add java-classpathx-servletapi. (java-guice-servlet)[inputs]: Likewise. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 7f7cf52a64..d6c88f56be 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -4449,7 +4449,7 @@ these scripting language engines.") #:tests? #f #:source-dir "src/java")) (inputs - `(("java-tomcat" ,java-tomcat) + `(("servlet" ,java-classpathx-servletapi) ("java-jdom" ,java-jdom) ("java-commons-beanutils" ,java-commons-beanutils))) (native-inputs @@ -7944,7 +7944,7 @@ Java 6 and above.") #:tests? #f)); FIXME: not in a java subdir (inputs `(("guice" ,java-guice) - ("servlet" ,java-tomcat) + ("servlet" ,java-classpathx-servletapi) ,@(package-inputs java-guice))))) (define-public java-assertj From 10d62a88bf1b33f1f4df9d3d0b4721bd5f5cd70b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Sat, 21 Jul 2018 10:23:55 +0200 Subject: [PATCH 311/374] gnu: Add java-javaee-servletapi. * gnu/packages/java.scm (java-javaee-servletapi): New variable. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index d6c88f56be..b60aeddea2 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2537,6 +2537,37 @@ ClasspathX project. It provides implementations of version 3.0 of the servlet API and version 2.1 of the Java ServerPages API.") (license license:gpl3+))) +(define-public java-javaee-servletapi + (package + (name "java-javaee-servletapi") + (version "3.1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/javaee/servlet-spec/" + "archive/" version ".zip")) + (file-name (string-append name "-" version ".zip")) + (sha256 + (base32 + "0m6p13vgfb1ihich1jp5j6fqlhkjsrkn32c86bsbkryp38ipwg8w")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "javax-servletapi.jar" + ;; no tests + #:tests? #f + #:source-dir "src/main/java")) + (native-inputs + `(("unzip" ,unzip))) + (home-page "https://javaee.github.io/servlet-spec/") + (synopsis "Java servlet API") + (description "Java Servlet is the foundation web specification in the +Java Enterprise Platform. Developers can build web applications using the +Servlet API to interact with the request/response workflow. This project +provides information on the continued development of the Java Servlet +specification.") + ;; Main code is dual-licensed by Oracle under either GLP2 or CDDL 1.1. + ;; Some files are licensed under ASL 2.0. + (license (list license:asl2.0 license:gpl2 license:cddl1.1)))) + (define-public java-swt (package (name "java-swt") From 4b472f6a062203fe14f5cda7b6379c9599afedf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Sat, 21 Jul 2018 10:24:25 +0200 Subject: [PATCH 312/374] gnu: java: Use java-javaee-servletapi instead of java-tomcat. * gnu/packages/java.scm(java-eclipse-sisu-inject)[inputs]: Remove java-tomcat, add java-javaee-servletapi. (logback-core)[inputs]: Likewise. * gnu/packages/maven.scm (maven-wagon-provider-test)[inputs]: Likewise. * gnu/packages/web.scm (java-eclipse-jetty-webapp)[inputs]: Likewise. (java-eclipse-jetty-server)[inputs]: Likewise. (java-eclipse-jetty-http)[inputs]: Likewise. (java-eclipse-jetty-jmx)[inputs]: Likewise. (java-eclipse-jetty-io)[inputs]: Likewise. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 6 +++--- gnu/packages/maven.scm | 2 +- gnu/packages/web.scm | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b60aeddea2..2ba6d76cae 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -10144,7 +10144,7 @@ and reporting) project dependencies. It is characterized by the following: `(("java-guice" ,java-guice) ("java-guice-servlet" ,java-guice-servlet) ("java-javax-inject" ,java-javax-inject) - ("java-tomcat" ,java-tomcat) + ("java-javaee-servletapi" ,java-javaee-servletapi) ("java-junit" ,java-junit) ("java-slf4j-api" ,java-slf4j-api) ("java-jsr305" ,java-jsr305) @@ -10339,7 +10339,7 @@ static code analysis or code manipulation."))) #t))))) (inputs `(("java-javax-mail" ,java-javax-mail) - ("java-tomcat" ,java-tomcat) + ("servlet" ,java-javaee-servletapi) ("java-commons-compiler" ,java-commons-compiler) ("java-janino" ,java-janino))) (native-inputs @@ -10383,7 +10383,7 @@ This module lays the groundwork for the other two modules.") (find-files (assoc-ref inputs input) ".*.jar")) '("java-logback-core" "java-slf4j-api" - "java-commons-compiler" "java-tomcat" + "java-commons-compiler" "servlet" "groovy"))) ":")) (apply invoke "groovyc" "-d" "build/classes" "-j" diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index a3e5687dc8..34fbce0e62 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -428,7 +428,7 @@ artifact and repository handling code.") ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2) ("java-slf4j-api" ,java-slf4j-api) - ("java-tomcat" ,java-tomcat) + ("java-javaee-servletapi" ,java-javaee-servletapi) ("maven-wagon-provider-api" ,maven-wagon-provider-api))) (synopsis "Test classes from maven-wagon") (description "Maven Wagon is a transport abstraction that is used in Maven's diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index b76f111954..44300d3091 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5938,7 +5938,7 @@ or embedded instantiation. This package provides utility classes.") #t))))) (inputs `(("slf4j" ,java-slf4j-api) - ("servlet" ,java-tomcat) + ("servlet" ,java-javaee-servletapi) ("util" ,java-eclipse-jetty-util))) (synopsis "Jetty :: IO Utility") (description "The Jetty Web Server provides an HTTP server and Servlet @@ -5981,7 +5981,7 @@ or embedded instantiation. This package provides IO-related utility classes.")) #t))))) (inputs `(("slf4j" ,java-slf4j-api) - ("servlet" ,java-tomcat) + ("servlet" ,java-javaee-servletapi) ("io" ,java-eclipse-jetty-io) ("util" ,java-eclipse-jetty-util))) (synopsis "Jetty :: Http Utility") @@ -6016,7 +6016,7 @@ or embedded instantiation. This package provides HTTP-related utility classes." #t))))) (inputs `(("slf4j" ,java-slf4j-api) - ("servlet" ,java-tomcat) + ("servlet" ,java-javaee-servletapi) ("util" ,java-eclipse-jetty-util))) (synopsis "Jetty :: JMX Management") (description "The Jetty Web Server provides an HTTP server and Servlet @@ -6097,7 +6097,7 @@ or embedded instantiation. This package provides the JMX management."))) #t))))) (inputs `(("slf4j" ,java-slf4j-api) - ("servlet" ,java-tomcat) + ("servlet" ,java-javaee-servletapi) ("http" ,java-eclipse-jetty-http) ("io" ,java-eclipse-jetty-io) ("jmx" ,java-eclipse-jetty-jmx) @@ -6293,7 +6293,7 @@ container."))) ("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet) ("java-eclipse-jetty-security" ,java-eclipse-jetty-security) ("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml) - ("java-tomcat" ,java-tomcat))) + ("java-javaee-servletapi" ,java-javaee-servletapi))) (native-inputs `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io) ,@(package-native-inputs java-eclipse-jetty-util))))) From 6a86d3576c96f39146ce31271b5fe568beb1a9b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Sat, 21 Jul 2018 10:24:49 +0200 Subject: [PATCH 313/374] gnu: java-tomcat: Update to 8.5.32. * gnu/packages/web.scm (java-tomcat): Update to 8.5.32. Signed-off-by: Julien Lepiller --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 44300d3091..079d53032c 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5712,14 +5712,14 @@ encoder/decoder based on the draft-12 specification for UBJSON.") (define-public java-tomcat (package (name "java-tomcat") - (version "8.5.28") + (version "8.5.32") (source (origin (method url-fetch) (uri (string-append "mirror://apache/tomcat/tomcat-8/v" version "/src/apache-tomcat-" version "-src.tar.gz")) (sha256 (base32 - "0q2bc3sajrmcx3z3vhhwp78y47ryc2ky8ssbdmfk24zvqdb76hvl")))) + "1qjsr6zmkdciakya4jqz0ssnsk02qlmmd898c05rasfwcrpj0xi6")))) (build-system ant-build-system) (inputs `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core))) From 8dae9c92b660f421b78ba79d643288a09c35eafe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Sat, 21 Jul 2018 10:25:10 +0200 Subject: [PATCH 314/374] gnu: java-tomcat: Remove bundled jars. * gnu/packages/web.scm (java-tomcat)[source]: Add snippet to remove bundled jars. Signed-off-by: Julien Lepiller --- gnu/packages/web.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 079d53032c..de6b118a59 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5719,7 +5719,13 @@ encoder/decoder based on the draft-12 specification for UBJSON.") version "/src/apache-tomcat-" version "-src.tar.gz")) (sha256 (base32 - "1qjsr6zmkdciakya4jqz0ssnsk02qlmmd898c05rasfwcrpj0xi6")))) + "1qjsr6zmkdciakya4jqz0ssnsk02qlmmd898c05rasfwcrpj0xi6")) + (modules '((guix build utils))) + ;; Delete bundled jars. + (snippet + '(begin + (for-each delete-file (find-files "." "\\.jar$")) + #t)))) (build-system ant-build-system) (inputs `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core))) From 49a8684d9f20656aaa9094c02164cbf2f67b290b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Sat, 21 Jul 2018 10:25:32 +0200 Subject: [PATCH 315/374] gnu: java-tomcat: Strip timestamps * gnu/package/web.scm (java-tomcat)[arguments]: Add phase 'strip timestamps. Makes build deterministic. Signed-off-by: Julien Lepiller --- gnu/packages/web.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index de6b118a59..c4b78d0b64 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5747,6 +5747,14 @@ encoder/decoder based on the draft-12 specification for UBJSON.") (("depends=\"validate\"") "depends=\"build-prepare\"") ((",download-validate") "")) #t)) + (add-after 'unpack 'strip-timestamps + (lambda _ + (substitute* "build.xml" + (("") + (("")) + #t)) (add-after 'unpack 'generate-properties (lambda _ ;; This could have been passed to make-flags, but getcwd returns From 2ed97a22d31196d06c9769925a7fd70b057ef900 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Jul 2018 18:19:57 -0400 Subject: [PATCH 316/374] gnu: go-github-com-thejerf-suture: Update to 2.0.3-0.3f1fb62. * gnu/packages/syncthing.scm (go-github-com-thejerf-suture): Update to 2.0.3-0.3f1fb62. --- gnu/packages/syncthing.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 4c0bceedf6..9dcaa658c9 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -703,11 +703,11 @@ database in Go.") (license bsd-2)))) (define-public go-github-com-thejerf-suture - (let ((commit "87e298c9891673c9ae76e10c2c9be589127e5f49") + (let ((commit "3f1fb62fe0a3cc6429122d7dc45588a8b59c5bb6") (revision "0")) (package (name "go-github-com-thejerf-suture") - (version (git-version "2.0.1" revision commit)) + (version (git-version "2.0.3" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -716,7 +716,7 @@ database in Go.") (file-name (git-file-name name version)) (sha256 (base32 - "0srw0g94z6jplvlsjqsr6wf7885alnbb6h4fhvbg2i7q1ia5ldy2")))) + "0mp7gz6bp6xhggkgmbl33vpmrq3a6n2dkgcxbkb7csnpv4r4d59k")))) (build-system go-build-system) (arguments `(#:import-path "github.com/thejerf/suture")) From 869d9c69f32b140ffc7b11314f411ddc92ee2a9e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 Jul 2018 18:20:47 -0400 Subject: [PATCH 317/374] gnu: go-github-com-syncthing-notify: Update to 0.0.0-1.cdf89c4. * gnu/packages/syncthing.scm (go-github-com-syncthing-notify): Update to 0.0.0-1.cdf89c4. --- gnu/packages/syncthing.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 9dcaa658c9..c9313e7d94 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1088,8 +1088,8 @@ using sh's word-splitting rules.") (license expat)))) (define-public go-github-com-syncthing-notify - (let ((commit "b9ceffc925039c77cd9e0d38f248279ccc4399e2") - (revision "0")) + (let ((commit "cdf89c4039d13726e227d0a472053ea19de021b4") + (revision "1")) (package (name "go-github-com-syncthing-notify") (version (git-version "0.0.0" revision commit)) @@ -1101,7 +1101,7 @@ using sh's word-splitting rules.") (file-name (git-file-name name version)) (sha256 (base32 - "1scha9b2r35bvqzqx86sarzjxf72ywvj3g6n9pm3xq4i4xzpylxf")))) + "1ra1id9r06i4q8vhrrv1zpybhjxs3361rg35758dxglkyk4pzk6j")))) (build-system go-build-system) (arguments '(#:import-path "github.com/syncthing/notify")) From 39a57afc42d473517f6e62c2d6a5d3c75eee3e89 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 12 Jun 2018 15:14:43 -0400 Subject: [PATCH 318/374] gnu: syncthing: Update to 0.14.49. * gnu/packages/syncthing.scm (syncthing): Update to 0.14.49. [source]: Remove obsolete patch. [inputs]: Remove go-github-com-kardianos-osext. * gnu/packages/patches/syncthing-fix-crash.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - .../patches/syncthing-fix-crash.patch | 72 ------------------- gnu/packages/syncthing.scm | 6 +- 3 files changed, 2 insertions(+), 77 deletions(-) delete mode 100644 gnu/packages/patches/syncthing-fix-crash.patch diff --git a/gnu/local.mk b/gnu/local.mk index ea906b83e7..fa859d5bb0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1139,7 +1139,6 @@ dist_patch_DATA = \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-format-security.patch \ - %D%/packages/patches/syncthing-fix-crash.patch \ %D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch \ %D%/packages/patches/t1lib-CVE-2010-2642.patch \ %D%/packages/patches/t1lib-CVE-2011-0764.patch \ diff --git a/gnu/packages/patches/syncthing-fix-crash.patch b/gnu/packages/patches/syncthing-fix-crash.patch deleted file mode 100644 index d27e543982..0000000000 --- a/gnu/packages/patches/syncthing-fix-crash.patch +++ /dev/null @@ -1,72 +0,0 @@ -Avoid a crash: - -https://github.com/syncthing/syncthing/issues/5002 - -Patch copied from upstream source repository: - -https://github.com/syncthing/syncthing/commit/35a75a95dc6383b2d73ab645f1407f7907ec1a2c - -From 35a75a95dc6383b2d73ab645f1407f7907ec1a2c Mon Sep 17 00:00:00 2001 -From: Jakob Borg -Date: Wed, 13 Jun 2018 19:07:52 +0200 -Subject: [PATCH] lib/model: Don't panic when rechecking file (fixes #5002) - (#5003) - ---- - lib/model/model.go | 2 +- - lib/model/model_test.go | 26 ++++++++++++++++++++++++++ - 2 files changed, 27 insertions(+), 1 deletion(-) - -diff --git a/lib/model/model.go b/lib/model/model.go -index 5a9146e0..302f06c5 100644 ---- a/lib/model/model.go -+++ b/lib/model/model.go -@@ -1373,7 +1373,7 @@ func (m *Model) recheckFile(deviceID protocol.DeviceID, folderFs fs.Filesystem, - return - } - -- if blockIndex > len(cf.Blocks) { -+ if blockIndex >= len(cf.Blocks) { - l.Debugf("%v recheckFile: %s: %q / %q i=%d: block index too far", m, deviceID, folder, name, blockIndex) - return - } -diff --git a/lib/model/model_test.go b/lib/model/model_test.go -index 295eafc1..456bbc4a 100644 ---- a/lib/model/model_test.go -+++ b/lib/model/model_test.go -@@ -3608,6 +3608,32 @@ func TestIssue4903(t *testing.T) { - } - } - -+func TestIssue5002(t *testing.T) { -+ // recheckFile should not panic when given an index equal to the number of blocks -+ -+ db := db.OpenMemory() -+ m := NewModel(defaultCfgWrapper, protocol.LocalDeviceID, "syncthing", "dev", db, nil) -+ m.AddFolder(defaultFolderConfig) -+ m.StartFolder("default") -+ -+ m.ServeBackground() -+ defer m.Stop() -+ -+ if err := m.ScanFolder("default"); err != nil { -+ t.Error(err) -+ } -+ -+ file, ok := m.CurrentFolderFile("default", "foo") -+ if !ok { -+ t.Fatal("test file should exist") -+ } -+ nBlocks := len(file.Blocks) -+ -+ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks-1, []byte{1, 2, 3, 4}) -+ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks, []byte{1, 2, 3, 4}) // panic -+ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks+1, []byte{1, 2, 3, 4}) -+} -+ - func addFakeConn(m *Model, dev protocol.DeviceID) *fakeConnection { - fc := &fakeConnection{id: dev, model: m} - m.AddConnection(fc, protocol.HelloResult{}) --- -2.18.0 - diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index c9313e7d94..58e3f02db8 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -30,16 +30,15 @@ (define-public syncthing (package (name "syncthing") - (version "0.14.48") + (version "0.14.49") (source (origin (method url-fetch) (uri (string-append "https://github.com/syncthing/syncthing" "/releases/download/v" version "/syncthing-source-v" version ".tar.gz")) - (patches (search-patches "syncthing-fix-crash.patch")) (sha256 (base32 - "0bxkm5jlj6l4gai23bg0y31brr80r9qllh1rdg29pahjn0c2b4ml")) + "06mzzj5iwgqw3yva7azrsqs9zpl84srbamza4gm03grp7v9gf3sj")) (modules '((guix build utils))) ;; Delete bundled ("vendored") free software source code. (snippet '(begin @@ -130,7 +129,6 @@ ("go-github-com-golang-groupcache-lru" ,go-github-com-golang-groupcache-lru) ("go-github-com-jackpal-gateway" ,go-github-com-jackpal-gateway) - ("go-github-com-kardianos-osext" ,go-github-com-kardianos-osext) ("go-github-com-kballard-go-shellquote" ,go-github-com-kballard-go-shellquote) ("go-github-com-lib-pq" ,go-github-com-lib-pq) From 8e1895964fd10fbf5f19ad39ca080f684a6246d6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 19 Jul 2018 21:16:43 +0300 Subject: [PATCH 319/374] gnu: Add hplip-minimal. * gnu/packages/cups.scm (hplip-minimal): New variable. * gnu/packages/scanner.scm (sane-backends)[inputs]: Replace hplip with hplip-minimal. * doc/guix.texi (Printing Services): Change example code to use hplip-minimal in place of hplip. Add note explaining when use hplip. --- doc/guix.texi | 8 ++++++-- gnu/packages/cups.scm | 19 +++++++++++++++++-- gnu/packages/scanner.scm | 3 ++- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index f9b3ef0e55..2df4064524 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -12156,7 +12156,7 @@ secure connections to the print server. Suppose you want to enable the Web interface of CUPS and also add support for Epson printers @i{via} the @code{escpr} package and for HP -printers @i{via} the @code{hplip} package. You can do that directly, +printers @i{via} the @code{hplip-minimal} package. You can do that directly, like this (you need to use the @code{(gnu packages cups)} module): @example @@ -12164,9 +12164,13 @@ like this (you need to use the @code{(gnu packages cups)} module): (cups-configuration (web-interface? #t) (extensions - (list cups-filters escpr hplip)))) + (list cups-filters escpr hplip-minimal)))) @end example +Note: If you wish to use the Qt5 based GUI which comes with the hplip +package then it is suggested that you install the @code{hplip} package, +either in your OS configuration file or as your user. + The available configuration parameters follow. Each parameter definition is preceded by its type; for example, @samp{string-list foo} indicates that the @code{foo} parameter should be specified as a list of diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index bfc587a6fb..04d4e3fadd 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015, 2016, 2017 Ludovic Courtès -;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017 Mark H Weaver @@ -46,7 +46,9 @@ #:use-module (guix build-system gnu) #:use-module (guix download) #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages)) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (srfi srfi-1)) (define-public cups-filters (package @@ -520,6 +522,19 @@ device-specific programs to convert and print many types of files.") `(("perl" ,perl) ("pkg-config" ,pkg-config))))) +(define-public hplip-minimal + (package + (inherit hplip) + (name "hplip-minimal") + (arguments + (substitute-keyword-arguments (package-arguments hplip) + ((#:configure-flags cf) + ``(,@(delete "--enable-qt5" ,cf))))) + (inputs + `(,@(fold alist-delete (package-inputs hplip) + '("python-pygobject" "python-pyqt")))) + (synopsis "GUI-less version of hplip"))) + (define-public foomatic-filters (package (name "foomatic-filters") diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm index 33a573d531..d030d8ade5 100644 --- a/gnu/packages/scanner.scm +++ b/gnu/packages/scanner.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Andy Wingo ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2018 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -102,7 +103,7 @@ package contains the library, but no drivers.") (inherit sane-backends-minimal) (name "sane-backends") (inputs - `(("hplip" ,(@ (gnu packages cups) hplip)) + `(("hplip" ,(@ (gnu packages cups) hplip-minimal)) ,@(package-inputs sane-backends-minimal))) (arguments (substitute-keyword-arguments (package-arguments sane-backends-minimal) From b19f3337eae86ad0cd910da45b9d45e3866c98fd Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Mon, 16 Jul 2018 08:26:43 +0300 Subject: [PATCH 320/374] gnu: Add pscircle. * gnu/packages/admin.scm (pscircle): New variable. --- gnu/packages/admin.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index e80436e95c..29651f7c48 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -46,6 +46,7 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system trivial) @@ -2740,3 +2741,30 @@ support forum. It runs with the @code{/exec} command in most IRC clients.") ;; perl-xml-dumper ;; ipmitool ,@(package-inputs inxi-minimal))))) + +(define-public pscircle + (package + (name "pscircle") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://gitlab.com/mildlyparallel/pscircle/-/archive/v" + version "/pscircle-v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1k757yf2bmgfrjd417l6kpcf83hlvi0z1791vz967mwcklrsb3fj")))) + (build-system meson-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("cairo" ,cairo) + ("libpng" ,libpng) + ("libx11" ,libx11))) + (home-page "https://gitlab.com/mildlyparallel/pscircle") + (synopsis "Visualize Linux processes in a form of radial tree") + (description + "@code{pscircle} visualizes Linux processes in the form of a radial tree.") + (license license:gpl2+))) From f88c8624ccc59d5e5f5c674c0331a7de44e6e351 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 24 Jul 2018 22:54:54 +0300 Subject: [PATCH 321/374] Revert "gnu: quassel: Fix building with Qt 5.11." This reverts commit 68ddfb2e8d43de248a64a9baf34ff7002053ede6. This is no longer necessary after the update to Qt-5.11.1. --- gnu/local.mk | 1 - gnu/packages/irc.scm | 1 - gnu/packages/patches/quassel-qt-5.11.patch | 72 ---------------------- 3 files changed, 74 deletions(-) delete mode 100644 gnu/packages/patches/quassel-qt-5.11.patch diff --git a/gnu/local.mk b/gnu/local.mk index bb333a6611..ea066aa718 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1093,7 +1093,6 @@ dist_patch_DATA = \ %D%/packages/patches/qtoctave-qt-5.11-fix.patch \ %D%/packages/patches/qtscript-disable-tests.patch \ %D%/packages/patches/quagga-reproducible-build.patch \ - %D%/packages/patches/quassel-qt-5.11.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/rapicorn-isnan.patch \ %D%/packages/patches/raptor2-heap-overflow.patch \ diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 5a1df6d600..4f4e494ee5 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -74,7 +74,6 @@ (sha256 (base32 "1qkl3sb4ijx4k17m0c42j2p5bc4jymypwhmplm942rbrzm6mg50q")) - (patches (search-patches "quassel-qt-5.11.patch")) (modules '((guix build utils))) ;; We don't want to install the bundled scripts. (snippet diff --git a/gnu/packages/patches/quassel-qt-5.11.patch b/gnu/packages/patches/quassel-qt-5.11.patch deleted file mode 100644 index 545f8b7610..0000000000 --- a/gnu/packages/patches/quassel-qt-5.11.patch +++ /dev/null @@ -1,72 +0,0 @@ -https://github.com/quassel/quassel/commit/92f4dca367c3a6f0536a1e0f3fbb44bb6ed4da62.patch -This can be removed after quassel 0.12.5. - -From 92f4dca367c3a6f0536a1e0f3fbb44bb6ed4da62 Mon Sep 17 00:00:00 2001 -From: Manuel Nickschas -Date: Thu, 3 May 2018 23:19:34 +0200 -Subject: [PATCH] cmake: Fix build with Qt 5.11 - -Qt 5.11 removes the qt5_use_modules function, so add a copy. If -present, the Qt-provided function will be used instead. - -Closes GH-355. ---- - cmake/QuasselMacros.cmake | 38 ++++++++++++++++++++++++++++++++++++++ - 1 file changed, 38 insertions(+) - -diff --git a/cmake/QuasselMacros.cmake b/cmake/QuasselMacros.cmake -index 652c0042d..d77ba1cfb 100644 ---- a/cmake/QuasselMacros.cmake -+++ b/cmake/QuasselMacros.cmake -@@ -5,6 +5,9 @@ - # The qt4_use_modules function was taken from CMake's Qt4Macros.cmake: - # (C) 2005-2009 Kitware, Inc. - # -+# The qt5_use_modules function was taken from Qt 5.10.1 (and modified): -+# (C) 2005-2011 Kitware, Inc. -+# - # Redistribution and use is allowed according to the terms of the BSD license. - # For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -@@ -43,6 +46,41 @@ function(qt4_use_modules _target _link_type) - endforeach() - endfunction() - -+# Qt 5.11 removed the qt5_use_modules function, so we need to provide it until we can switch to a modern CMake version. -+# If present, the Qt-provided version will be used automatically instead. -+function(qt5_use_modules _target _link_type) -+ if (NOT TARGET ${_target}) -+ message(FATAL_ERROR "The first argument to qt5_use_modules must be an existing target.") -+ endif() -+ if ("${_link_type}" STREQUAL "LINK_PUBLIC" OR "${_link_type}" STREQUAL "LINK_PRIVATE" ) -+ set(_qt5_modules ${ARGN}) -+ set(_qt5_link_type ${_link_type}) -+ else() -+ set(_qt5_modules ${_link_type} ${ARGN}) -+ endif() -+ -+ if ("${_qt5_modules}" STREQUAL "") -+ message(FATAL_ERROR "qt5_use_modules requires at least one Qt module to use.") -+ endif() -+ foreach(_module ${_qt5_modules}) -+ if (NOT Qt5${_module}_FOUND) -+ find_package(Qt5${_module} PATHS "${_Qt5_COMPONENT_PATH}" NO_DEFAULT_PATH) -+ if (NOT Qt5${_module}_FOUND) -+ message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.") -+ endif() -+ endif() -+ target_link_libraries(${_target} ${_qt5_link_type} ${Qt5${_module}_LIBRARIES}) -+ set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${Qt5${_module}_INCLUDE_DIRS}) -+ set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${Qt5${_module}_COMPILE_DEFINITIONS}) -+ if (Qt5_POSITION_INDEPENDENT_CODE -+ AND (CMAKE_VERSION VERSION_LESS 2.8.12 -+ AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU" -+ OR CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0))) -+ set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ${Qt5_POSITION_INDEPENDENT_CODE}) -+ endif() -+ endforeach() -+endfunction() -+ - # Some wrappers for simplifying dual-Qt support - - function(qt_use_modules) From d13c1d336301d5ddaf3c3c63e2648254e53fa750 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 25 Jul 2018 16:26:06 +0300 Subject: [PATCH 322/374] gnu: qt: Apply changes from qtbase. * gnu/packages/qt.scm (qt)[arguments]: In custom 'configure phase, add flags to specify custom destination directories. Use system pcre. Add flags to support older versions of the linux kernel. Add custom 'patch-mkspecs phase to search in their new location. Add custom 'patch-paths phase to prevent dynamic loading of certain libraries. [native-search-paths]: New field. [license]: Update it. --- gnu/packages/qt.scm | 110 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 103 insertions(+), 7 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 20543fe837..c5ae067bdf 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -249,9 +249,24 @@ system, and the core design of Django is reused in Grantlee.") "./configure" "-verbose" "-prefix" out - "-examplesdir" examples ; 89MiB + "-docdir" (string-append out "/share/doc/qt5") + "-headerdir" (string-append out "/include/qt5") + "-archdatadir" (string-append out "/lib/qt5") + "-datadir" (string-append out "/share/qt5") + "-examplesdir" (string-append + examples "/share/doc/qt5/examples") ; 151MiB "-opensource" "-confirm-license" + + ;; These features require higher versions of Linux than the + ;; minimum version of the glibc. See + ;; src/corelib/global/minimum-linux_p.h. By disabling these + ;; features Qt5 applications can be used on the oldest + ;; kernels that the glibc supports, including the RHEL6 + ;; (2.6.32) and RHEL7 (3.10) kernels. + "-no-feature-getentropy" ; requires Linux 3.17 + "-no-feature-renameat2" ; requires Linux 3.16 + ;; Do not build examples; for the time being, we ;; prefer to save the space and build time. "-no-compile-examples" @@ -259,6 +274,7 @@ system, and the core design of Django is reused in Grantlee.") ;; the bundled copy by default. ;"-system-sqlite" "-system-harfbuzz" + "-system-pcre" ;; explicitly link with openssl instead of dlopening it "-openssl-linked" ;; explicitly link with dbus instead of dlopening it @@ -273,12 +289,92 @@ system, and the core design of Django is reused in Grantlee.") '() '("-no-sse2")) "-no-mips_dsp" - "-no-mips_dspr2")))))))) - (home-page "https://www.qt.io/") - (synopsis "Cross-platform GUI library") - (description "Qt is a cross-platform application and UI framework for -developers using C++ or QML, a CSS & JavaScript like language.") - (license license:lgpl2.1) + "-no-mips_dspr2"))))) + (add-after 'install 'patch-mkspecs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (archdata (string-append out "/lib/qt5")) + (mkspecs (string-append archdata "/mkspecs")) + (qt_config.prf (string-append + mkspecs "/features/qt_config.prf"))) + ;; For each Qt module, let `qmake' uses search paths in the + ;; module directory instead of all in QT_INSTALL_PREFIX. + (substitute* qt_config.prf + (("\\$\\$\\[QT_INSTALL_HEADERS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../include/qt5))") + (("\\$\\$\\[QT_INSTALL_LIBS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))") + (("\\$\\$\\[QT_HOST_LIBS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))") + (("\\$\\$\\[QT_INSTALL_BINS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../bin))")) + + ;; Searches Qt tools in the current PATH instead of QT_HOST_BINS. + (substitute* (string-append mkspecs "/features/qt_functions.prf") + (("cmd = \\$\\$\\[QT_HOST_BINS\\]/\\$\\$2") + "cmd = $$system(which $${2}.pl 2>/dev/null || which $${2})")) + + ;; Resolve qmake spec files within qtbase by absolute paths. + (substitute* + (map (lambda (file) + (string-append mkspecs "/features/" file)) + '("device_config.prf" "moc.prf" "qt_build_config.prf" + "qt_config.prf" "winrt/package_manifest.prf")) + (("\\$\\$\\[QT_HOST_DATA/get\\]") archdata) + (("\\$\\$\\[QT_HOST_DATA/src\\]") archdata)) + #t))) + (add-after 'unpack 'patch-paths + ;; Use the absolute paths for dynamically loaded libs, otherwise + ;; the lib will be searched in LD_LIBRARY_PATH which typically is + ;; not set in guix. + (lambda* (#:key inputs #:allow-other-keys) + ;; libresolve + (let ((glibc (assoc-ref inputs ,(if (%current-target-system) + "cross-libc" "libc")))) + (substitute* '("qtbase/src/network/kernel/qdnslookup_unix.cpp" + "qtbase/src/network/kernel/qhostinfo_unix.cpp") + (("^\\s*(lib.setFileName\\(QLatin1String\\(\")(resolv\"\\)\\);)" _ a b) + (string-append a glibc "/lib/lib" b)))) + ;; X11/locale (compose path) + (substitute* "qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp" + ;; Don't search in /usr/…/X11/locale, … + (("^\\s*m_possibleLocations.append\\(QStringLiteral\\(\"/usr/.*/X11/locale\"\\)\\);" line) + (string-append "// " line)) + ;; … but use libx11's path + (("^\\s*(m_possibleLocations.append\\(QStringLiteral\\()X11_PREFIX \"(/.*/X11/locale\"\\)\\);)" _ a b) + (string-append a "\"" (assoc-ref inputs "libx11") b))) + ;; libGL + (substitute* "qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp" + (("^\\s*(QLibrary lib\\(QLatin1String\\(\")(GL\"\\)\\);)" _ a b) + (string-append a (assoc-ref inputs "mesa") "/lib/lib" b))) + ;; libXcursor + (substitute* "qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp" + (("^\\s*(QLibrary xcursorLib\\(QLatin1String\\(\")(Xcursor\"\\), 1\\);)" _ a b) + (string-append a (assoc-ref inputs "libxcursor") "/lib/lib" b)) + (("^\\s*(xcursorLib.setFileName\\(QLatin1String\\(\")(Xcursor\"\\)\\);)" _ a b) + (string-append a (assoc-ref inputs "libxcursor") "/lib/lib" b))) + #t))))) + (native-search-paths + (list (search-path-specification + (variable "QMAKEPATH") + (files '("lib/qt5"))) + (search-path-specification + (variable "QML2_IMPORT_PATH") + (files '("lib/qt5/qml"))) + (search-path-specification + (variable "QT_PLUGIN_PATH") + (files '("lib/qt5/plugins"))) + (search-path-specification + (variable "XDG_DATA_DIRS") + (files '("share"))) + (search-path-specification + (variable "XDG_CONFIG_DIRS") + (files '("etc/xdg"))))) + (home-page "https://www.qt.io/") + (synopsis "Cross-platform GUI library") + (description "Qt is a cross-platform application and UI framework for + developers using C++ or QML, a CSS & JavaScript like language.") + (license (list license:lgpl2.1 license:lgpl3)) ;; Qt 4: 'QBasicAtomicPointer' leads to build failures on MIPS; ;; see . From 2a43df2270345babd768b0057d3cccdf08398e77 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 25 Jul 2018 16:33:37 +0300 Subject: [PATCH 323/374] gnu: qt: Disable parallel building. * gnu/packages/qt.scm (qt)[arguments]: Disable parallel-build. --- gnu/packages/qt.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index c5ae067bdf..19dc6353f2 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -226,7 +226,8 @@ system, and the core design of Django is reused in Grantlee.") ("ruby" ,ruby) ("which" ,(@ (gnu packages base) which)))) (arguments - `(#:phases + `(#:parallel-build? #f ; Triggers race condition in qtbase module on Hydra. + #:phases (modify-phases %standard-phases (add-after 'configure 'patch-bin-sh (lambda _ From 00f81f83a1e2c7f57f937ceb70e345f798a40151 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jul 2018 17:45:08 +0200 Subject: [PATCH 324/374] gnu: audit: Update to 2.8.4. * gnu/packages/admin.scm (audit): Update to 2.8.4. [arguments]: Remove #:phases. --- gnu/packages/admin.scm | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 29651f7c48..df569dd307 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1773,27 +1773,17 @@ platform-specific methods.") (define-public audit (package (name "audit") - (version "2.4.5") + (home-page "https://people.redhat.com/sgrubb/audit/") + (version "2.8.4") (source (origin (method url-fetch) - (uri (string-append "https://people.redhat.com/sgrubb/audit/" - "audit-" version ".tar.gz")) + (uri (string-append home-page name "-" version ".tar.gz")) (sha256 (base32 - "1q1q51dvxscbi4kbakmd4bn0xrvwwaiwvaya79925cbrqwzxsg77")))) + "0f4ci6ffznnmgblwgv7ich9mjfk3p6y5l6m6h3chhmzw156nj454")))) (build-system gnu-build-system) - (home-page "https://people.redhat.com/sgrubb/audit/") (arguments - `(#:configure-flags (list "--with-python=no") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-tests - (lambda _ - ;; In the build environmnte /etc/passwd does not contain an entry - ;; for root/0, so we have to patch the expected value. - (substitute* "auparse/test/auparse_test.ref" - (("=0 \\(root\\)") "=0 (unknown(0))")) - #t))))) + `(#:configure-flags (list "--with-python=no"))) (inputs `(("openldap" ,openldap) ("gnutls" ,gnutls) From 8938b369d239439020ba7b5e94d6009298a99421 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jul 2018 17:45:27 +0200 Subject: [PATCH 325/374] gnu: audit: Don't build static libraries. * gnu/packages/admin.scm (audit)[arguments]: Add "--disable-static" to #:configure-flags. --- gnu/packages/admin.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index df569dd307..73772166ab 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1783,7 +1783,8 @@ platform-specific methods.") "0f4ci6ffznnmgblwgv7ich9mjfk3p6y5l6m6h3chhmzw156nj454")))) (build-system gnu-build-system) (arguments - `(#:configure-flags (list "--with-python=no"))) + `(#:configure-flags (list "--with-python=no" + "--disable-static"))) (inputs `(("openldap" ,openldap) ("gnutls" ,gnutls) From a77de47ad2bcef2f757f8581bb074916fca57877 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jul 2018 17:51:35 +0200 Subject: [PATCH 326/374] gnu: libjpeg-turbo: Update home page. * gnu/packages/image.scm (libjpeg-turbo)[home-page]: Use HTTPS. --- gnu/packages/image.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 5ad6fe9487..3d32442904 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1237,7 +1237,7 @@ PNG, and performs PNG integrity checks and corrections.") (arguments '(#:test-target "test" #:configure-flags (list "--with-build-date=1970-01-01"))) - (home-page "http://www.libjpeg-turbo.org/") + (home-page "https://libjpeg-turbo.org/") (synopsis "SIMD-accelerated JPEG image handling library") (description "libjpeg-turbo is a JPEG image codec that accelerates baseline JPEG compression and decompression using SIMD instructions: MMX on x86, SSE2 on From 8f838591f8eb82d56d0602b7b9061c37b9392330 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jul 2018 17:54:58 +0200 Subject: [PATCH 327/374] gnu: libjpeg-turbo: Don't build static libraries. * gnu/packages/image.scm (libjpeg-turbo)[arguments]: Add "--disable-static" to #:configure-flags. --- gnu/packages/image.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 3d32442904..31c78f84ef 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1236,7 +1236,8 @@ PNG, and performs PNG integrity checks and corrections.") `(("nasm" ,nasm))) (arguments '(#:test-target "test" - #:configure-flags (list "--with-build-date=1970-01-01"))) + #:configure-flags (list "--with-build-date=1970-01-01" + "--disable-static"))) (home-page "https://libjpeg-turbo.org/") (synopsis "SIMD-accelerated JPEG image handling library") (description "libjpeg-turbo is a JPEG image codec that accelerates baseline From 9a1356f71a16b8c616af0f101026776e1b0236be Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jul 2018 17:58:28 +0200 Subject: [PATCH 328/374] gnu: hplip-minimal: Simplify expression. * gnu/packages/cups.scm (hplip-minimal): Remove unnecessary quotes. --- gnu/packages/cups.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 04d4e3fadd..3150c25019 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -529,10 +529,10 @@ device-specific programs to convert and print many types of files.") (arguments (substitute-keyword-arguments (package-arguments hplip) ((#:configure-flags cf) - ``(,@(delete "--enable-qt5" ,cf))))) + `(delete "--enable-qt5" ,cf)))) (inputs - `(,@(fold alist-delete (package-inputs hplip) - '("python-pygobject" "python-pyqt")))) + (fold alist-delete (package-inputs hplip) + '("python-pygobject" "python-pyqt"))) (synopsis "GUI-less version of hplip"))) (define-public foomatic-filters From b8d7119bc2572f3270c45fb063bb4c46a4ab379c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jul 2018 18:17:34 +0200 Subject: [PATCH 329/374] gnu: libmspack: Update to 0.7. * gnu/packages/compression.scm (libmspack): Update to 0.7. --- gnu/packages/compression.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 2e62cd76ea..238624a4e6 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -642,14 +642,14 @@ sfArk file format to the uncompressed sf2 format.") (define-public libmspack (package (name "libmspack") - (version "0.6") + (version "0.7") (source (origin (method url-fetch) (uri (string-append "http://www.cabextract.org.uk/libmspack/libmspack-" version "alpha.tar.gz")) (sha256 - (base32 "08gr2pcinas6bdqz3k0286g5cnksmcx813skmdwyca6bmj1fxnqy")))) + (base32 "0wi7ydq8vjiq0kfnpkj2d6vll2s49x38bywnsdqphqb0vdn53q1n")))) (build-system gnu-build-system) (home-page "http://www.cabextract.org.uk/libmspack/") (synopsis "Compression tools for some formats used by Microsoft") From 03c16bb59af0b5e7e1acdb3ee599ea782736898a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jul 2018 18:17:54 +0200 Subject: [PATCH 330/374] gnu: libmspack: Don't build static library. * gnu/packages/compression.scm (libmspack)[arguments]: Add #:configure-flags. --- gnu/packages/compression.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 238624a4e6..29b1f54573 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -651,6 +651,8 @@ sfArk file format to the uncompressed sf2 format.") (sha256 (base32 "0wi7ydq8vjiq0kfnpkj2d6vll2s49x38bywnsdqphqb0vdn53q1n")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--disable-static"))) (home-page "http://www.cabextract.org.uk/libmspack/") (synopsis "Compression tools for some formats used by Microsoft") (description From 27b2f34cda6d464fae2db0795fe47d21f1aa45bf Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jul 2018 18:23:45 +0200 Subject: [PATCH 331/374] gnu: Update cabextract.org.uk home pages. * gnu/packages/compression.scm (libmspack, cabextract)[home-page, source]: Use HTTPS. --- gnu/packages/compression.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 29b1f54573..5742d5e189 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -642,18 +642,17 @@ sfArk file format to the uncompressed sf2 format.") (define-public libmspack (package (name "libmspack") + (home-page "https://cabextract.org.uk/libmspack/") (version "0.7") (source (origin (method url-fetch) - (uri (string-append "http://www.cabextract.org.uk/libmspack/libmspack-" - version "alpha.tar.gz")) + (uri (string-append home-page name "-" version "alpha.tar.gz")) (sha256 (base32 "0wi7ydq8vjiq0kfnpkj2d6vll2s49x38bywnsdqphqb0vdn53q1n")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-static"))) - (home-page "http://www.cabextract.org.uk/libmspack/") (synopsis "Compression tools for some formats used by Microsoft") (description "The purpose of libmspack is to provide both compression and @@ -1023,11 +1022,11 @@ smaller than those produced by @code{Xdelta}.") (define-public cabextract (package (name "cabextract") + (home-page "https://cabextract.org.uk/") (version "1.6") (source (origin (method url-fetch) - (uri (string-append - "http://cabextract.org.uk/cabextract-" version ".tar.gz")) + (uri (string-append home-page name "-" version ".tar.gz")) (sha256 (base32 "1ysmmz25fjghq7mxb2anyyvr1ljxqxzi4piwjhk0sdamcnsn3rnf")))) @@ -1037,7 +1036,6 @@ smaller than those produced by @code{Xdelta}.") `(("pkg-config" ,pkg-config))) (inputs `(("libmspack" ,libmspack))) - (home-page "http://www.cabextract.org.uk/") (synopsis "Tool to unpack Cabinet archives") (description "Extracts files out of Microsoft Cabinet (.cab) archives") ;; Some source files specify gpl2+, lgpl2+, however COPYING is gpl3. From aaa2a8bbf38449d18671abb98fcd0f6f65091710 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 25 Jul 2018 19:51:46 +0200 Subject: [PATCH 332/374] gnu: Remove dangling variable. * gnu/packages/xml.scm (libxslt/fixed): Remove. --- gnu/packages/xml.scm | 9 --------- 1 file changed, 9 deletions(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 9112d0273f..1bf99f2fe5 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -200,15 +200,6 @@ project (but it is usable outside of the Gnome platform).") based on libxml for XML parsing, tree manipulation and XPath support.") (license license:x11))) -(define libxslt/fixed - (package - (inherit libxslt) - (source (origin - (inherit (package-source libxslt)) - (patches (search-patches "libxslt-CVE-2016-4738.patch" - "libxslt-CVE-2017-5029.patch" - "libxslt-generated-ids.patch")))))) - (define-public perl-graph-readwrite (package (name "perl-graph-readwrite") From 064c3e78dd70e5599b49b180940dfeda234b1bb6 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 26 Jul 2018 04:43:13 -0400 Subject: [PATCH 333/374] gnu: linux-libre@4.4: Update to 4.4.144. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.144. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7edf20ebc9..b83784923c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -429,8 +429,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.143" - "0kawgpmmv37gds3cbww791bbzvwfjg760yg3qw3dk913dawhdmzw" + (make-linux-libre "4.4.144" + "1001nw9d51vbiisrjv5ffqigcwfs0r9gav2f8hkw9hzjw64nhanp" %intel-compatible-systems #:configuration-file kernel-config)) From 4bc1528aa5e280d52ca800a233f57ffd974513b2 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 26 Jul 2018 04:44:00 -0400 Subject: [PATCH 334/374] gnu: linux-libre@4.9: Update to 4.9.115. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.115. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b83784923c..01a4ea6734 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -423,8 +423,8 @@ 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.114" - "069ckgck4skzci6sjrpk1sja0h1fdmrlcbpnqwl2844m5vfffzk9" + (make-linux-libre "4.9.115" + "12n3wwfz22hxqqy7bdchl894x5krylcd4vx65837w7rybnb5w2wj" %intel-compatible-systems #:configuration-file kernel-config)) From 54465c4dbc3fcb29a9bf9602a23aa5c63f6166a5 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 26 Jul 2018 04:44:40 -0400 Subject: [PATCH 335/374] gnu: linux-libre@4.14: Update to 4.14.58. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.58. (%linux-libre-4.14-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 01a4ea6734..804172606f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -413,8 +413,8 @@ It has been modified to remove all non-free binary blobs.") %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.57") -(define %linux-libre-4.14-hash "1qp8g87ss4a3iz6k3k4mkllibvdrixh6ys4a9l7jidp2wmkxj3kc") +(define %linux-libre-4.14-version "4.14.58") +(define %linux-libre-4.14-hash "1ny2b5zmgvbxglpy88aicdxix2ygr1qmar2rgaa336czfjninwr5") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version From 54e543b62632c5e977c8755c9fec3b4eb8a61860 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 26 Jul 2018 04:45:33 -0400 Subject: [PATCH 336/374] gnu: linux-libre: Update to 4.17.10. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.17.10. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 804172606f..72fd24ff6e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -404,8 +404,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.17.9") -(define %linux-libre-hash "1mahjxn4j7sdjdrbkrgal37nfx23njhnmrxcmixmphps8i44rlwm") +(define %linux-libre-version "4.17.10") +(define %linux-libre-hash "1ab349s18avigd2592i11pab4klqzzxy11a1zp16mb842d8chkj2") (define-public linux-libre (make-linux-libre %linux-libre-version From bca72b39c7548ac861d904f6230ef2c3a0fb0110 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 26 Jul 2018 13:20:20 +0300 Subject: [PATCH 337/374] gnu: python-qsintilla: Fix building. * gnu/packages/qt.scm (python-qscintilla)[arguments]: Extend custom 'configure phase to also patch the 'installed.txt' file. --- gnu/packages/qt.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 19dc6353f2..cefceb6b68 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1959,6 +1959,10 @@ indicators, code completion and call tips.") "Qsci/Makefile") (("\\$\\(INSTALL_ROOT\\)/gnu/store/[^/]+") (assoc-ref outputs "out"))) + ;; And fix the installed.txt file + (substitute* "installed.txt" + (("/gnu/store/[^/]+") + (assoc-ref outputs "out"))) #t))))) (inputs `(("qscintilla" ,qscintilla) From d60772dcdd55c0f8e236d40b76eb06eab790ab77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= Date: Thu, 26 Jul 2018 12:42:59 +0200 Subject: [PATCH 338/374] gnu: java-picard: Fix manifest. * gnu/packages/bioinformatics.scm (java-picard)[arguments]: Adjust phase 'edit-classpath-in-manifest for the new manifest generation code. --- gnu/packages/bioinformatics.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 245e7dd564..73cca16717 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2018 Joshua Sierles, Nextjournal +;;; Copyright © 2018 Gábor Boskovits ;;; ;;; This file is part of GNU Guix. ;;; @@ -3240,12 +3241,16 @@ VCF.") (msg (format #f "\ Class-Path: /~a \ - ~a/share/java/htsjdk.jar${line.separator}" + ~a/share/java/htsjdk.jar${line.separator}${line.separator}" ;; maximum line length is 70 (string-tabulate (const #\b) 57) (assoc-ref inputs "java-htsjdk")))) (if (member "manifest" name) `(,tag ,@kids + (replaceregexp + (@ (file "${manifest.file}") + (match "\\r\\n\\r\\n") + (replace "${line.separator}"))) (echo (@ (message ,msg) (file "${manifest.file}") From 714b49f68db9d8ec12fb1e006b8fa8778bdf64ee Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 26 Jul 2018 16:14:11 +0300 Subject: [PATCH 339/374] gnu: translate-shell: Fix .el install directory. * gnu/packages/dictionaries.scm (translate-shell)[arguments]: Change the install directory during the custom 'emacs-install phase to match with other emacs .el packages. --- gnu/packages/dictionaries.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm index 5c47b24ff7..42dc291975 100644 --- a/gnu/packages/dictionaries.scm +++ b/gnu/packages/dictionaries.scm @@ -257,7 +257,8 @@ and a Python library.") (add-after 'install 'emacs-install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (dest (string-append out "/share/emacs/site-lisp")) + (dest (string-append out "/share/emacs/site-lisp/guix.d/" + ,name "-" ,version)) (emacs (string-append (assoc-ref inputs "emacs") "/bin/emacs"))) (install-file "google-translate-mode.el" dest) (emacs-generate-autoloads ,name dest))))) From d38755cb91952b574c1a72b7ea0ae8b52bc4f6e3 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 24 Jul 2018 23:13:50 +0200 Subject: [PATCH 340/374] gnu: Add ruby-net-scp. * gnu/packages/ruby.scm (ruby-net-scp): New variable. --- gnu/packages/ruby.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 6b85fe68e3..aa4cae6f97 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1849,6 +1849,32 @@ with processes on remote servers, via SSH2.") (home-page "https://github.com/net-ssh/net-ssh") (license license:expat))) +(define-public ruby-net-scp + (package + (name "ruby-net-scp") + ;; The 1.2.1 release would be incompatible with ruby-net-ssh >= 4. + (version "1.2.2.rc2") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/net-ssh/net-scp/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "0xyf17mhgvyz54xjj9ria4wnq3x62bhmkfgzqv8jwiip2bplv1nk")))) + (build-system ruby-build-system) + (native-inputs + `(("bundler" ,bundler) + ("ruby-test-unit" ,ruby-test-unit) + ("ruby-mocha" ,ruby-mocha))) + (propagated-inputs + `(("ruby-net-ssh" ,ruby-net-ssh))) + (synopsis "Pure-Ruby SCP client library") + (description "@code{Net::SCP} is a pure-Ruby implementation of the SCP +client protocol.") + (home-page "https://github.com/net-ssh/net-scp") + (license license:expat))) + (define-public ruby-minitest (package (name "ruby-minitest") From a9446dde2b4113dc88101ffef1dbfff1e12e7ce6 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 13 Jul 2018 15:57:48 +0200 Subject: [PATCH 341/374] gnu: make-u-boot-package: Don't install "sunxi-spl-with-ecc.bin". * gnu/packages/bootloaders.scm (make-u-boot-package)[arguments]<#:phases> [install]: Don't install "sunxi-spl-with-ecc.bin". --- gnu/packages/bootloaders.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 792fc4ae2f..de85ead174 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -508,7 +508,18 @@ board-independent tools."))) (let* ((out (assoc-ref outputs "out")) (libexec (string-append out "/libexec")) (uboot-files (append - (find-files "." ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$") + (remove + ;; Those would not be reproducible + ;; because of the randomness used + ;; to produce them. + ;; It's expected that the user will + ;; use u-boot-tools to generate them + ;; instead. + (lambda (name) + (string-suffix? + "sunxi-spl-with-ecc.bin" + name)) + (find-files "." ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$")) (find-files "." "^(MLO|SPL)$")))) (mkdir-p libexec) (install-file ".config" libexec) From 4bda2274a5d530f23b5b79166ea95e029912b5d4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 26 Jul 2018 17:17:45 +0200 Subject: [PATCH 342/374] gnu: fuse: Update source hash. The fuse 2.9.8 tarball and signature was modified in place. Both are signed by the same key, at different dates, and the only differences are directory timestamps and a ChangeLog update. * gnu/packages/linux.scm (fuse)[source](sha256): Update. --- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 72fd24ff6e..7ecc795b1f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1619,7 +1619,7 @@ processes currently causing I/O.") "/fuse-" version ".tar.gz")) (sha256 (base32 - "1k4ggl2y5v0lr98l189pc81w0zijj23wbbnijsc6zlx84117nd0j")) + "1qxg1r1mgysfq6qakmvid2njph3lr00w0swvydsfl9ymilfzi12y")) (patches (search-patches "fuse-overlapping-headers.patch")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) From e0a98e7bd55a31974311e853f6751b90a4a82198 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 26 Jul 2018 17:28:35 +0200 Subject: [PATCH 343/374] gnu: cabextract: Update to 1.7. * gnu/packages/compression.scm (cabextract): Update to 1.7. --- gnu/packages/compression.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 5742d5e189..5745f66650 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1023,13 +1023,13 @@ smaller than those produced by @code{Xdelta}.") (package (name "cabextract") (home-page "https://cabextract.org.uk/") - (version "1.6") + (version "1.7") (source (origin (method url-fetch) (uri (string-append home-page name "-" version ".tar.gz")) (sha256 (base32 - "1ysmmz25fjghq7mxb2anyyvr1ljxqxzi4piwjhk0sdamcnsn3rnf")))) + "1g86wmb8lkjiv2jarfz979ngbgg7d3si8x5il4g801604v406wi9")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-external-libmspack"))) (native-inputs From 92526ade57e0bd23ab4025b8532511ef80df5fba Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 26 Jul 2018 17:30:18 +0200 Subject: [PATCH 344/374] gnu: cabextract: Delete bundled libmspack. * gnu/packages/compression.scm (cabextract)[source](modules, snippet): New field. --- gnu/packages/compression.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 5745f66650..1c5e00ec95 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1029,7 +1029,13 @@ smaller than those produced by @code{Xdelta}.") (uri (string-append home-page name "-" version ".tar.gz")) (sha256 (base32 - "1g86wmb8lkjiv2jarfz979ngbgg7d3si8x5il4g801604v406wi9")))) + "1g86wmb8lkjiv2jarfz979ngbgg7d3si8x5il4g801604v406wi9")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete bundled libmspack. + (delete-file-recursively "mspack") + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-external-libmspack"))) (native-inputs From e8ec2dda08d36f3a8d17f840980ea82585d1fc38 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Thu, 26 Jul 2018 09:13:52 +1000 Subject: [PATCH 345/374] gnu: ecryptfs-utils: Patch more hardcoded paths. * gnu/packages/linux.scm (ecryptfs-utils): [arguments]: Add an additional file to be patched that was missing in the last fix. Ecryptfs will now find the umount binary path as well as mount and others. Re-sort the list of files to be substituted. Signed-off-by: Leo Famulari --- gnu/packages/linux.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7ecc795b1f..70615df93c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3714,10 +3714,12 @@ as used on certified hardware security devices.") (substitute* '("src/utils/ecryptfs-mount-private" "src/utils/ecryptfs-umount-private" "src/utils/ecryptfs-setup-private" + "src/utils/ecryptfs-setup-swap" "src/utils/mount.ecryptfs.c" + "src/utils/umount.ecryptfs.c" "src/pam_ecryptfs/pam_ecryptfs.c" "src/desktop/ecryptfs-mount-private.desktop.in" - "src/utils/ecryptfs-setup-swap") + "src/desktop/ecryptfs-setup-private.desktop.in") (("/bin/mount") (string-append utils-linux "/bin/mount")) (("/bin/umount") From d36b98ad951f051d18a58ffd30ad59f2f571034c Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 26 Jul 2018 14:43:10 -0400 Subject: [PATCH 346/374] gnu: freeciv: Update to 2.6.0. * gnu/packages/games.scm (freeciv): Update to 2.6.0. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 1082dadae6..33429dbc2a 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3621,7 +3621,7 @@ for Un*x systems with X11.") (define-public freeciv (package (name "freeciv") - (version "2.5.7") + (version "2.6.0") (source (origin (method url-fetch) @@ -3634,7 +3634,7 @@ for Un*x systems with X11.") "/freeciv-" version ".tar.bz2"))) (sha256 (base32 - "1lmydnnqraa947l7gdz6xgm0bgks1ywsivp9h4v8jr3avcv6gqzz")))) + "16f9wsnn7073s6chzbm3819swd0iw019p9nrzr3diiynk28kj83w")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) From 6e92fba4b0bf6d7d608ef0368642ff1341b07696 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 26 Jul 2018 23:30:14 -0400 Subject: [PATCH 347/374] gnu: python-xsge: Update to 2018.02.26. * gnu/packages/game-development.scm (python-xsge, python2-xsge): Update to 2018.02.26. [arguments]: Substitute invoke for system*. --- gnu/packages/game-development.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 33e2b4a16c..03841c9b46 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -357,14 +357,14 @@ levels.") (define-public python-xsge (package (name "python-xsge") - (version "2017.06.09") + (version "2018.02.26") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/xsge/xsge/xsge-" version ".tar.gz")) (sha256 (base32 - "1vy7c2y7ihvmggs93zgfv2h3049s384wid8a5snzrrba8bhbb89p")))) + "0bx93hgf7cgdw2gsygbh59y8vpw37pgsa279rajw3fkdpl8vrc40")))) (build-system python-build-system) (arguments '(#:phases @@ -373,10 +373,9 @@ levels.") ;; system's default flags, "--single-version-externally-managed". (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (zero? - (system* "python" "setup.py" "install" - (string-append "--prefix=" (assoc-ref outputs "out")) - "--root=/"))))) + (invoke "python" "setup.py" "install" + (string-append "--prefix=" (assoc-ref outputs "out")) + "--root=/")))) #:tests? #f)) ; no check target (propagated-inputs `(("python-sge-pygame" ,python-sge-pygame) From 9dafb647115ecf7f6dc4fde443621501e993d860 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 27 Jul 2018 00:16:31 -0400 Subject: [PATCH 348/374] gnu: tiled: Update to 1.1.6. * gnu/packages/game-development.scm (tiled): Update to 1.1.6. [arguments]: Substitute invoke for system*. --- gnu/packages/game-development.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 03841c9b46..fe07bc25e0 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -397,7 +397,7 @@ support.") (define-public tiled (package (name "tiled") - (version "1.1.5") + (version "1.1.6") (source (origin (method url-fetch) (uri (string-append "https://github.com/bjorn/tiled/archive/v" @@ -405,7 +405,7 @@ support.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1zrq1nhb50mwqzw3fln6vj49ljddil1v7yby3ahjbcm94s25ll1y")))) + "194ciw8688mikndvxivzb8ql5vm405pkwnn4srzm7ymwfc4xygb0")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) @@ -424,8 +424,8 @@ support.") (assoc-ref inputs "qttools") "/bin/lrelease\n"))) (let ((out (assoc-ref outputs "out"))) - (system* "qmake" - (string-append "PREFIX=" out)))))))) + (invoke "qmake" + (string-append "PREFIX=" out)))))))) (home-page "http://www.mapeditor.org/") (synopsis "Tile map editor") (description From d804d0b9eff8e7fcdfe289bcd7e49a0d3aa2a062 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 13 Jul 2018 15:54:41 +0200 Subject: [PATCH 349/374] import: hackage: Emit native-inputs in the importer. * guix/import/cabal.scm (cabal-custom-setup-dependencies): Export. (cabal-package-custom-setup): Export. (): New field "custom-setup". (make-cabal-package): Modify. (eval-cabal): Modify. * guix/import/hackage.scm (cabal-dependencies->names): Factor out... (cabal-test-dependencies->names): ...this. (cabal-custom-setup-dependencies->names): New procedure. (hackage-module->sexp): Modify. --- guix/import/cabal.scm | 15 ++++++++---- guix/import/hackage.scm | 53 ++++++++++++++++++++++++++++++----------- 2 files changed, 50 insertions(+), 18 deletions(-) diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm index 4b2bfd4a25..1b8bda6f4e 100644 --- a/guix/import/cabal.scm +++ b/guix/import/cabal.scm @@ -34,6 +34,8 @@ #:export (read-cabal eval-cabal + cabal-custom-setup-dependencies + cabal-package? cabal-package-name cabal-package-version @@ -47,6 +49,7 @@ cabal-package-test-suites cabal-package-flags cabal-package-eval-environment + cabal-package-custom-setup cabal-source-repository? cabal-source-repository-use-case @@ -616,7 +619,7 @@ If #f use the function 'port-filename' to obtain it." (make-cabal-package name version license home-page source-repository synopsis description executables lib test-suites - flags eval-environment) + flags eval-environment custom-setup) cabal-package? (name cabal-package-name) (version cabal-package-version) @@ -629,7 +632,8 @@ If #f use the function 'port-filename' to obtain it." (lib cabal-package-library) ; 'library' is a Scheme keyword (test-suites cabal-package-test-suites) (flags cabal-package-flags) - (eval-environment cabal-package-eval-environment)) ; alist + (eval-environment cabal-package-eval-environment) ; alist + (custom-setup cabal-package-custom-setup)) (set-record-type-printer! (lambda (package port) @@ -826,10 +830,13 @@ See the manual for limitations."))))))) (lib (make-cabal-section evaluated-sexp 'library)) (test-suites (make-cabal-section evaluated-sexp 'test-suite)) (flags (make-cabal-section evaluated-sexp 'flag)) - (eval-environment '())) + (eval-environment '()) + (custom-setup (match + (make-cabal-section evaluated-sexp 'custom-setup) + ((x) x)))) (make-cabal-package name version license home-page-or-hackage source-repository synopsis description executables lib - test-suites flags eval-environment))) + test-suites flags eval-environment custom-setup))) ((compose cabal-evaluated-sexp->package eval) cabal-sexp)) diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index eb9e1d7d82..6f80d84b70 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -150,10 +150,9 @@ version." (_ #f))) -(define (cabal-dependencies->names cabal include-test-dependencies?) - "Return the list of dependencies names from the CABAL package object. If -INCLUDE-TEST-DEPENDENCIES? is #f, do not include dependencies required by test -suites." +(define (cabal-dependencies->names cabal) + "Return the list of dependencies names from the CABAL package object, +not including test suite dependencies or custom-setup dependencies." (let* ((lib (cabal-package-library cabal)) (lib-deps (if (pair? lib) (map cabal-dependency-name @@ -163,15 +162,25 @@ suites." (exe-deps (if (pair? exe) (map cabal-dependency-name (append-map cabal-executable-dependencies exe)) - '())) - (ts (cabal-package-test-suites cabal)) - (ts-deps (if (pair? ts) - (map cabal-dependency-name - (append-map cabal-test-suite-dependencies ts)) '()))) - (if include-test-dependencies? - (delete-duplicates (append lib-deps exe-deps ts-deps)) - (delete-duplicates (append lib-deps exe-deps))))) + (delete-duplicates (append lib-deps exe-deps)))) + +(define (cabal-test-dependencies->names cabal) + "Return the list of test suite dependencies from the CABAL package +object." + (let* ((ts (cabal-package-test-suites cabal)) + (ts-deps (if (pair? ts) + (map cabal-dependency-name + (append-map cabal-test-suite-dependencies ts)) + '()))) + ts-deps)) + +(define (cabal-custom-setup-dependencies->names cabal) + "Return the list of custom-setup dependencies from the CABAL package +object." + (let* ((custom-setup-dependencies (and=> (cabal-package-custom-setup cabal) + cabal-custom-setup-dependencies))) + (map cabal-dependency-name custom-setup-dependencies))) (define (filter-dependencies dependencies own-name) "Filter the dependencies included with the GHC compiler from DEPENDENCIES, a @@ -199,8 +208,23 @@ representation of a Cabal file as produced by 'read-cabal'." (map hackage-name->package-name ((compose (cut filter-dependencies <> (cabal-package-name cabal)) - (cut cabal-dependencies->names <> - include-test-dependencies?)) + (cut cabal-dependencies->names <>)) + cabal)))) + (map (lambda (name) + (list name (list 'unquote (string->symbol name)))) + names))) + + (define native-dependencies + (let ((names + (map hackage-name->package-name + ((compose (cut filter-dependencies <> + (cabal-package-name cabal)) + ;; FIXME: Check include-test-dependencies? + (lambda (cabal) + (append (if include-test-dependencies? + (cabal-test-dependencies->names cabal) + '()) + (cabal-custom-setup-dependencies->names cabal)))) cabal)))) (map (lambda (name) (list name (list 'unquote (string->symbol name)))) @@ -234,6 +258,7 @@ representation of a Cabal file as produced by 'read-cabal'." "failed to download tar archive"))))) (build-system haskell-build-system) ,@(maybe-inputs 'inputs dependencies) + ,@(maybe-inputs 'native-inputs native-dependencies) ,@(maybe-arguments) (home-page ,(cabal-package-home-page cabal)) (synopsis ,(cabal-package-synopsis cabal)) From 22305f859b5ce21b46fdca04ca20033ced9ce0e2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 12 Jul 2018 16:24:49 +0200 Subject: [PATCH 350/374] gnu: guile-sdl2: Update to 0.3.0. * gnu/packages/sdl.scm (guile-sdl2): Update to 0.3.0. [arguments]: Remove "patch-makefile" phase. --- gnu/packages/sdl.scm | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 202716365b..55ce45ce78 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -484,7 +484,7 @@ sound and device input (keyboards, joysticks, mice, etc.).") (define-public guile-sdl2 (package (name "guile-sdl2") - (version "0.2.0") + (version "0.3.0") (source (origin (method url-fetch) (uri (string-append @@ -492,7 +492,7 @@ sound and device input (keyboards, joysticks, mice, etc.).") version ".tar.gz")) (sha256 (base32 - "0yq9lsl17cdvj77padvpk3jcw2g6g0pck9jrchc7n2767rrc012b")))) + "0iq6fw213qw292fxhrsg40al7hqyqyh4qpgl0x9rh08y949h2w97")))) (build-system gnu-build-system) (arguments '(#:make-flags '("GUILE_AUTO_COMPILE=0") @@ -504,16 +504,7 @@ sound and device input (keyboards, joysticks, mice, etc.).") (string-append "--with-libsdl2-ttf-prefix=" (assoc-ref %build-inputs "sdl2-ttf")) (string-append "--with-libsdl2-mixer-prefix=" - (assoc-ref %build-inputs "sdl2-mixer"))) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'patch-makefile - (lambda _ - ;; Install compiled Guile files in the expected place. - (substitute* '("Makefile") - (("^godir = .*$") - "godir = $(moddir)\n")) - #t))))) + (assoc-ref %build-inputs "sdl2-mixer"))))) (native-inputs `(("guile" ,guile-2.2) ("pkg-config" ,pkg-config))) From b62715aa82cd884936124f2060e718957721138b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 27 Jul 2018 14:10:23 +0200 Subject: [PATCH 351/374] gnu: snakemake: Update to 5.2.0. * gnu/packages/python.scm (snakemake): Update to 5.2.0. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index fc1ef3eb2a..f20de13720 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5139,13 +5139,13 @@ of the structure, dynamics, and functions of complex networks.") (define-public snakemake (package (name "snakemake") - (version "4.4.0") + (version "5.2.0") (source (origin (method url-fetch) (uri (pypi-uri "snakemake" version)) (sha256 - (base32 "0g0paia4z7w3srnqdmavq3hrb2x7qnpf81jx50njl0p7y4y0j8jv")))) + (base32 "0a1i5v5qxbmmpznp7my9nva8y7pxp8pjrwk2gxgisdskg35sq8s1")))) (build-system python-build-system) (arguments ;; TODO: Package missing test dependencies. From 2fcbc572f9c0f922150ed6fbca6482b632a745ee Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 27 Jul 2018 13:48:19 +0200 Subject: [PATCH 352/374] gnu: mbedtls-apache: Update to 2.7.5. * gnu/packages/tls.scm (mbedtls-apache): Update to 2.7.5. --- gnu/packages/tls.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index f1dca66552..bf464761e1 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -824,7 +824,7 @@ then ported to the GNU / Linux environment.") (define-public mbedtls-apache (package (name "mbedtls-apache") - (version "2.7.4") + (version "2.7.5") (source (origin (method url-fetch) @@ -834,7 +834,7 @@ then ported to the GNU / Linux environment.") version "-apache.tgz")) (sha256 (base32 - "1x9qia3rd77brz6qiv46w3ham2q78shn2rsz1jbpgqq0jpa69q9l")))) + "0h4vks2z68bkwzg093mn0a7aqsva8rxr4m971n4bkasa17cjlc51")))) (build-system cmake-build-system) (arguments `(#:configure-flags From beb8511c7346ec9a7e0a354035230f494b7d44e2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 27 Jul 2018 13:50:16 +0200 Subject: [PATCH 353/374] gnu: imagemagick: Update to 6.9.10-8. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.10-8. --- gnu/packages/imagemagick.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 2a8479ed26..fee335609c 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -47,14 +47,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.10-5") + (version "6.9.10-8") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "0sl6f9r7wb081gv8zm450x37lankwp683in1crlx6pskrbsvwc08")))) + "0l2fhqrphcx6aw8k2lc6bianfqc1dy17lkyaypfw8scgak8wq6wr")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") From 216a72a95738d6d643094f156000cbc006cd79f5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 27 Jul 2018 15:07:12 +0200 Subject: [PATCH 354/374] gnu: Add python-datrie. * gnu/packages/python.scm (python-datrie): New variable. --- gnu/packages/python.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f20de13720..1422ad26a3 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5136,6 +5136,30 @@ of the structure, dynamics, and functions of complex networks.") (define-public python2-networkx2 (package-with-python2 python-networkx2)) +(define-public python-datrie + (package + (name "python-datrie") + (version "0.7.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "datrie" version)) + (sha256 + (base32 + "08r0if7dry2q7p34gf7ffyrlnf4bdvnprxgydlfxgfnvq8f3f4bs")))) + (build-system python-build-system) + (native-inputs + `(("python-cython" ,python-cython) + ("python-hypothesis" ,python-hypothesis) + ("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (home-page "https://github.com/kmike/datrie") + (synopsis "Fast, efficiently stored trie for Python") + (description + "This package provides a fast, efficiently stored trie implementation for +Python.") + (license license:lgpl2.1+))) + (define-public snakemake (package (name "snakemake") From 269f100330cf92afdc911bbd7db0644719d6dc3f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 27 Jul 2018 15:07:26 +0200 Subject: [PATCH 355/374] gnu: snakemake: Add missing dependencies. * gnu/packages/python.scm (snakemake)[propagated-inputs]: Add python-datrie, python-docutils, python-jinja2, python-jsonschema, and python-networkx. --- gnu/packages/python.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 1422ad26a3..a6e3ebb9d6 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5191,6 +5191,11 @@ Python.") ("python-requests" ,python-requests) ("python-appdirs" ,python-appdirs) ("python-configargparse" ,python-configargparse) + ("python-datrie" ,python-datrie) + ("python-docutils" ,python-docutils) + ("python-jinja2" ,python-jinja2) + ("python-jsonschema" ,python-jsonschema) + ("python-networkx" ,python-networkx) ("python-pyyaml" ,python-pyyaml) ("python-ratelimiter" ,python-ratelimiter))) (home-page "https://bitbucket.org/snakemake/snakemake/wiki/Home") From ed2dfe3955f0144bc858c66fdb751f51e9bd84fe Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 27 Jul 2018 15:13:56 +0200 Subject: [PATCH 356/374] gnu: Add snakemake-4. * gnu/packages/python.scm (snakemake-4): New variable. * gnu/packages/bioinformatics.scm (pigx-bsseq, pigx-rnaseq, pigx-scrnaseq, pigx-chipseq)[inputs]: Use it. --- gnu/packages/bioinformatics.scm | 8 ++++---- gnu/packages/python.scm | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 73cca16717..bb0e8c73c7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -12837,7 +12837,7 @@ once. This package provides tools to perform Drop-seq analyses.") #t))))) (inputs `(("gzip" ,gzip) - ("snakemake" ,snakemake) + ("snakemake" ,snakemake-4) ("fastqc" ,fastqc) ("multiqc" ,multiqc) ("star" ,star) @@ -12931,7 +12931,7 @@ expression report comparing samples in an easily configurable manner.") ("fastqc" ,fastqc) ("bowtie" ,bowtie) ("idr" ,idr) - ("snakemake" ,snakemake) + ("snakemake" ,snakemake-4) ("samtools" ,samtools) ("bedtools" ,bedtools) ("kentutils" ,kentutils))) @@ -12992,7 +12992,7 @@ in an easily configurable manner.") ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1) ("python-wrapper" ,python-wrapper) ("python-pyyaml" ,python-pyyaml) - ("snakemake" ,snakemake) + ("snakemake" ,snakemake-4) ("bismark" ,bismark) ("fastqc" ,fastqc) ("bowtie" ,bowtie) @@ -13041,7 +13041,7 @@ methylation and segmentation.") ("python-loompy" ,python-loompy) ("ghc-pandoc" ,ghc-pandoc-1) ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1) - ("snakemake" ,snakemake) + ("snakemake" ,snakemake-4) ("star" ,star) ("r-minimal" ,r-minimal) ("r-argparser" ,r-argparser) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a6e3ebb9d6..e9fb9f529f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5206,6 +5206,24 @@ providing a clean and modern domain specific specification language (DSL) in Python style, together with a fast and comfortable execution environment.") (license license:expat))) +;; This is currently needed for the pigx-* packages. +(define-public snakemake-4 + (package (inherit snakemake) + (version "4.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "snakemake" version)) + (sha256 + (base32 "0g0paia4z7w3srnqdmavq3hrb2x7qnpf81jx50njl0p7y4y0j8jv")))) + (propagated-inputs + `(("python-wrapt" ,python-wrapt) + ("python-requests" ,python-requests) + ("python-appdirs" ,python-appdirs) + ("python-configargparse" ,python-configargparse) + ("python-pyyaml" ,python-pyyaml) + ("python-ratelimiter" ,python-ratelimiter))))) + (define-public python-pyqrcode (package (name "python-pyqrcode") From 26fd7b24eca1af9e297ba53bac98f5798f97f78e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 27 Jul 2018 15:44:23 +0200 Subject: [PATCH 357/374] gnu: pigx-scrnaseq: Disable another expensive test. * gnu/packages/bioinformatics.scm (pigx-scrnaseq)[arguments]: Disable multiqc test. --- gnu/packages/bioinformatics.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index bb0e8c73c7..e87cef61be 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -12833,6 +12833,7 @@ once. This package provides tools to perform Drop-seq analyses.") (lambda _ (substitute* "Makefile.in" (("(^ tests/test_trim_galore/test.sh).*" _ m) m) + (("^ tests/test_multiqc/test.sh") "") (("^ test.sh") "")) #t))))) (inputs From 223779c4c5d0eb017e99cd1045d619fbe3193334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 27 Jul 2018 14:15:17 +0200 Subject: [PATCH 358/374] gnu: emacs-flycheck: Don't rely on pkg-info.el for 'flycheck-version'. * gnu/packages/emacs.scm (flycheck)[source]: Add 'modules' and 'snippet'. --- gnu/packages/emacs.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index eab31278a5..114fcee343 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -733,7 +733,15 @@ programs.") version "/flycheck-" version ".tar")) (sha256 (base32 - "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240")))) + "01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240")) + (modules '((guix build utils))) + (snippet `(begin + ;; Change 'flycheck-version' so that it does not + ;; attempt to get its version from pkg-info.el. + (substitute* "flycheck.el" + (("\\(pkg-info-version-info 'flycheck\\)") + (string-append "\"" ,version "\""))) + #t)))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash))) From f00d66b12c331eb9bfc7fc5112ae602bce0b4331 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 27 Jul 2018 14:35:55 +0200 Subject: [PATCH 359/374] gnu: Add font-blackfoundry-inria. * gnu/packages/fonts.scm (font-blackfoundry-inria): New file. --- gnu/packages/fonts.scm | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index e9b68a7797..dd91d77c6c 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2018 Ludovic Courtès ;;; Copyright © 2014, 2017 Mark H Weaver ;;; Copyright © 2014 Joshua Grant ;;; Copyright © 2014 Alex Kost @@ -1262,3 +1262,32 @@ Lohit supports the Assamese, Bengali, Devanagari (Hindi, Kashmiri, Konkani, Maithili, Marathi, Nepali, Sindhi, Santali, Bodo, Dogri languages), Gujarati, Kannada, Malayalam, Manipuri, Oriya, Punjabi, Tamil and Telugu scripts.") (license license:silofl1.1))) + +(define-public font-blackfoundry-inria + (package + (name "font-blackfoundry-inria") + (version "1.200") + (home-page "https://github.com/BlackFoundry/InriaFonts") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (sha256 + (base32 + "06775y99lyh6hj5hzvrx56iybdck8a8xfqkipqd5c4cldg0a9hh8")) + (file-name (string-append name "-" version "-checkout")))) + ;; XXX: There are .ufo directories (the "source") so in theory we should + ;; be able to rebuild TTF and OTF files with FontForge. Unfortunately a + ;; command like: + ;; + ;; fontforge -lang=ff -c "Open('InriaSans-Regular.ufo'); Generate('foo.ttf');" + ;; + ;; segfaults in '_UFOLoadGlyph', which calls out to libpython. :-/ + ;; In the meantime we ship the precompiled OTF and TTF files. + (build-system font-build-system) + (synopsis "Inria Sans and Inria Serif type family") + (description + "Inria Sans and Inria Serif are the two members of a type family designed +for Inria, a public research institute in computer science and mathematics.") + (license license:silofl1.1))) From 74a4fa50407c80194dd0a60d5be2b49bf6334867 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 27 Jul 2018 18:52:58 +0200 Subject: [PATCH 360/374] gnu: gcc@8: Update to 8.2.0. * gnu/packages/gcc.scm (gcc-8): Update to 8.2.0. --- gnu/packages/gcc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index fdca3d2ffc..04d0a85276 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -519,14 +519,14 @@ It also includes runtime support libraries for these languages."))) (define-public gcc-8 (package (inherit gcc-7) - (version "8.1.0") + (version "8.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gcc/gcc-" version "/gcc-" version ".tar.xz")) (sha256 (base32 - "0lxil8x0jjx7zbf90cy1rli650akaa6hpk8wk8s62vk2jbwnc60x")) + "10007smilswiiv2ymazr3b6x2i933c0ycxrr529zh4r6p823qv0r")) (patches (search-patches "gcc-8-strmov-store-file-names.patch" "gcc-5.0-libvtv-runpath.patch")))))) From b15a020dd5f12aa385be7829a7ba30e6794d5852 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 27 Jul 2018 14:23:43 -0400 Subject: [PATCH 361/374] gnu: allegro: Update to 5.2.4.0. * gnu/packages/game-development.scm (allegro): Update to 5.2.4.0. [source]: Update URL. --- gnu/packages/game-development.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index fe07bc25e0..130312ad46 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -644,18 +644,15 @@ etc.") (define-public allegro (package (name "allegro") - (version "5.2.2.0") + (version "5.2.4.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/liballeg/allegro5/releases" "/download/" version "/allegro-" - (if (equal? "0" (string-take-right version 1)) - (string-drop-right version 2) - version) - ".tar.gz")) + version ".tar.gz")) (sha256 (base32 - "1z4lrrlmn471wb7vzbd9iw7g379vj0k964vy1s64hcvv5bhvk1g2")))) + "1w9a5yqi5q03b2qvmx5ff90paz0xbr9cy7i7f0xiqa65ava66q9l")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; there are no tests (inputs From 346a632144b89f45b3966732edacc2bfa07126a7 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sat, 28 Jul 2018 02:50:06 -0700 Subject: [PATCH 362/374] doc: Clarify some of guix-daemon's GC options. Reported by Pierre Neidhardt . * doc/guix.texi (Invoking guix-daemon): Fix an incorrect statement regarding --gc-keep-outputs. Add a little to the description of this option and --gc-keep-derivations. --- doc/guix.texi | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2df4064524..19c9813f6a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1375,8 +1375,8 @@ derivations. @cindex garbage collector roots When set to ``yes'', the GC will keep the outputs of any live derivation available in the store---the @code{.drv} files. The default is ``no'', -meaning that derivation outputs are kept only if they are GC roots. -@xref{Invoking guix gc}, for more on GC roots. +meaning that derivation outputs are kept only if they are reachable from a GC +root. @xref{Invoking guix gc}, for more on GC roots. @item --gc-keep-derivations[=yes|no] Tell whether the garbage collector (GC) must keep derivations @@ -1387,12 +1387,13 @@ derivations---i.e., @code{.drv} files---as long as at least one of their outputs is live. This allows users to keep track of the origins of items in their store. Setting it to ``no'' saves a bit of disk space. -Note that when both @code{--gc-keep-derivations} and -@code{--gc-keep-outputs} are used, the effect is to keep all the build -prerequisites (the sources, compiler, libraries, and other build-time -tools) of live objects in the store, regardless of whether these -prerequisites are live. This is convenient for developers since it -saves rebuilds or downloads. +In this way, setting @code{--gc-keep-derivations} to ``yes'' causes liveness +to flow from outputs to derivations, and setting @code{--gc-keep-outputs} to +``yes'' causes liveness to flow from derivations to outputs. When both are +set to ``yes'', the effect is to keep all the build prerequisites (the +sources, compiler, libraries, and other build-time tools) of live objects in +the store, regardless of whether these prerequisites are reachable from a GC +root. This is convenient for developers since it saves rebuilds or downloads. @item --impersonate-linux-2.6 On Linux-based systems, impersonate Linux 2.6. This means that the From 5193ae64ca0c3322364163d356a6d69173c3d233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 28 Jul 2018 11:00:49 +0200 Subject: [PATCH 363/374] gnu: mariadb: Work around GCC ICE on armhf-linux. * gnu/packages/patches/mariadb-gcc-ice.patch: New file. * gnu/packages/databases.scm (mariadb)[arguments]: Conditionally add 'apply-patch' phase. [native-inputs]: Conditionally add "gcc-ice-patch" input. --- gnu/local.mk | 1 + gnu/packages/databases.scm | 19 +++++++++++++++-- gnu/packages/patches/mariadb-gcc-ice.patch | 24 ++++++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/mariadb-gcc-ice.patch diff --git a/gnu/local.mk b/gnu/local.mk index 612304bad9..80ffb9d8b8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -926,6 +926,7 @@ dist_patch_DATA = \ %D%/packages/patches/mailutils-uninitialized-memory.patch \ %D%/packages/patches/make-glibc-compat.patch \ %D%/packages/patches/make-impure-dirs.patch \ + %D%/packages/patches/mariadb-gcc-ice.patch \ %D%/packages/patches/mars-install.patch \ %D%/packages/patches/mars-sfml-2.3.patch \ %D%/packages/patches/maxima-defsystem-mkdir.patch \ diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 382c74cfd9..1433ca59c6 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -638,7 +638,7 @@ Language.") "0bax748j4srsyhw5cs5jvwigndh0zwmf4r2cjvhja31ckx8jqccl")))) (build-system cmake-build-system) (arguments - '(#:configure-flags + `(#:configure-flags '("-DBUILD_CONFIG=mysql_release" ;; Linking with libarchive fails, like this: @@ -665,6 +665,18 @@ Language.") "-DINSTALL_SHAREDIR=share/mysql") #:phases (modify-phases %standard-phases + + ;; Apply this patch that's only needed on ARM. + ,@(if (and (not (%current-target-system)) + (string=? "armhf-linux" (%current-system))) + `((add-after 'unpack 'apply-patch + (lambda* (#:key inputs #:allow-other-keys) + (let ((patch (assoc-ref inputs "gcc-ice-patch"))) + (invoke "patch" "-p1" "--force" + "--input" patch) + #t)))) + '()) + (add-before 'configure 'pre-configure (lambda _ @@ -686,7 +698,10 @@ Language.") #t)))))) (native-inputs `(("bison" ,bison) - ("perl" ,perl))) + ("perl" ,perl) + ,@(if (string=? "armhf-linux" (%current-system)) + `(("gcc-ice-patch" ,(search-patch "mariadb-gcc-ice.patch"))) + '()))) (inputs `(("jemalloc" ,jemalloc) ("libaio" ,libaio) diff --git a/gnu/packages/patches/mariadb-gcc-ice.patch b/gnu/packages/patches/mariadb-gcc-ice.patch new file mode 100644 index 0000000000..59b188f45a --- /dev/null +++ b/gnu/packages/patches/mariadb-gcc-ice.patch @@ -0,0 +1,24 @@ +Work around this GCC ICE: . It shows up +only when doing native compiles on armhf-linux. + +--- mariadb-10.1.33/plugin/semisync/semisync_master.cc 2018-07-28 02:13:12.604020250 +0200 ++++ mariadb-10.1.33/plugin/semisync/semisync_master.cc 2018-07-28 02:14:11.907753417 +0200 +@@ -847,6 +847,8 @@ + return function_exit(kWho, 0); + } + ++volatile const void *kSyncHeaderPtr = &ReplSemiSyncMaster::kSyncHeader; ++ + int ReplSemiSyncMaster::reserveSyncHeader(unsigned char *header, + unsigned long size) + { +@@ -873,7 +875,7 @@ + /* Set the magic number and the sync status. By default, no sync + * is required. + */ +- memcpy(header, kSyncHeader, sizeof(kSyncHeader)); ++ memcpy(header, (void *)kSyncHeaderPtr, sizeof(kSyncHeader)); + hlen= sizeof(kSyncHeader); + } + return function_exit(kWho, hlen); + From c95c9032b4be9952ae0c848e4df865347b9bf08c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 28 Jul 2018 11:25:27 +0200 Subject: [PATCH 364/374] gnu: x265: Fix compilation on ARMv7. * gnu/packages/patches/x265-arm-asm-primitives.patch: New file. * gnu/packages/video.scm (x265)[sources](patches): Add it. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../patches/x265-arm-asm-primitives.patch | 360 ++++++++++++++++++ gnu/packages/video.scm | 3 +- 3 files changed, 363 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/x265-arm-asm-primitives.patch diff --git a/gnu/local.mk b/gnu/local.mk index 80ffb9d8b8..af25477466 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1215,6 +1215,7 @@ dist_patch_DATA = \ %D%/packages/patches/wpa-supplicant-fix-nonce-reuse.patch \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \ %D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \ + %D%/packages/patches/x265-arm-asm-primitives.patch \ %D%/packages/patches/x265-fix-ppc64le-build.patch \ %D%/packages/patches/xapian-revert-5489fb2f8.patch \ %D%/packages/patches/xboing-CVE-2004-0149.patch \ diff --git a/gnu/packages/patches/x265-arm-asm-primitives.patch b/gnu/packages/patches/x265-arm-asm-primitives.patch new file mode 100644 index 0000000000..f49aafe577 --- /dev/null +++ b/gnu/packages/patches/x265-arm-asm-primitives.patch @@ -0,0 +1,360 @@ +From . +This fixes build errors like: + + cd /tmp/guix-build-x265-2.8.drv-0/x265_2.8/build/encoder && /gnu/store/cd5q2pni1d95fs3cdabbclyh9hqhw2nq-gcc-5.5.0/bin/c++ -DEXPORT_C_API=1 -DHAVE_ARMV6=1 -DHAVE_INT_TYPES_H=1 -DHAVE_NEON -DHIGH_BIT_DEPTH=0 -DX265_ARCH_ARM=1 -DX265_DEPTH=8 -DX265_NS=x265 -D__STDC_LIMIT_MACROS=1 -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/. -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/common -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/encoder -I/tmp/guix-build-x265-2.8.drv-0/x265_2.8/build -O2 -g -DNDEBUG -Wall -Wextra -Wshadow -std=gnu++98 -fPIC -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC -Wno-array-bounds -ffast-math -fno-exceptions -Wno-uninitialized -o CMakeFiles/encoder.dir/search.cpp.o -c /tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/encoder/search.cpp + /tmp/guix-build-x265-2.8.drv-0/x265_2.8/source/common/arm/asm-primitives.cpp:437:38: error: incompatible types in assignment of ?void(const pixel*, intptr_t, int16_t*, intptr_t) {aka void(const unsigned char*, int, short int*, int)}? to ?void (* [2])(const pixel*, intptr_t, int16_t*, intptr_t) {aka void (* [2])(const unsigned char*, int, short int*, int)}? + p.pu[LUMA_64x48].convert_p2s = PFX(filterPixelToShort_64x48_neon); + ^ + +Downloaded from upstream bug report: +https://bitbucket.org/multicoreware/x265/issues/406 + +Signed-off-by: Bernd Kuhls + +--- ./source/common/arm/asm-primitives.cpp.orig 2018-05-21 02:33:10.000000000 -0600 ++++ ./source/common/arm/asm-primitives.cpp 2018-05-28 20:38:37.302378303 -0600 +@@ -48,77 +48,77 @@ void setupAssemblyPrimitives(EncoderPrim + p.ssim_4x4x2_core = PFX(ssim_4x4x2_core_neon); + + // addAvg +- p.pu[LUMA_4x4].addAvg = PFX(addAvg_4x4_neon); +- p.pu[LUMA_4x8].addAvg = PFX(addAvg_4x8_neon); +- p.pu[LUMA_4x16].addAvg = PFX(addAvg_4x16_neon); +- p.pu[LUMA_8x4].addAvg = PFX(addAvg_8x4_neon); +- p.pu[LUMA_8x8].addAvg = PFX(addAvg_8x8_neon); +- p.pu[LUMA_8x16].addAvg = PFX(addAvg_8x16_neon); +- p.pu[LUMA_8x32].addAvg = PFX(addAvg_8x32_neon); +- p.pu[LUMA_12x16].addAvg = PFX(addAvg_12x16_neon); +- p.pu[LUMA_16x4].addAvg = PFX(addAvg_16x4_neon); +- p.pu[LUMA_16x8].addAvg = PFX(addAvg_16x8_neon); +- p.pu[LUMA_16x12].addAvg = PFX(addAvg_16x12_neon); +- p.pu[LUMA_16x16].addAvg = PFX(addAvg_16x16_neon); +- p.pu[LUMA_16x32].addAvg = PFX(addAvg_16x32_neon); +- p.pu[LUMA_16x64].addAvg = PFX(addAvg_16x64_neon); +- p.pu[LUMA_24x32].addAvg = PFX(addAvg_24x32_neon); +- p.pu[LUMA_32x8].addAvg = PFX(addAvg_32x8_neon); +- p.pu[LUMA_32x16].addAvg = PFX(addAvg_32x16_neon); +- p.pu[LUMA_32x24].addAvg = PFX(addAvg_32x24_neon); +- p.pu[LUMA_32x32].addAvg = PFX(addAvg_32x32_neon); +- p.pu[LUMA_32x64].addAvg = PFX(addAvg_32x64_neon); +- p.pu[LUMA_48x64].addAvg = PFX(addAvg_48x64_neon); +- p.pu[LUMA_64x16].addAvg = PFX(addAvg_64x16_neon); +- p.pu[LUMA_64x32].addAvg = PFX(addAvg_64x32_neon); +- p.pu[LUMA_64x48].addAvg = PFX(addAvg_64x48_neon); +- p.pu[LUMA_64x64].addAvg = PFX(addAvg_64x64_neon); ++ p.pu[LUMA_4x4].addAvg[ALIGNED] = PFX(addAvg_4x4_neon); ++ p.pu[LUMA_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon); ++ p.pu[LUMA_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon); ++ p.pu[LUMA_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon); ++ p.pu[LUMA_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon); ++ p.pu[LUMA_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon); ++ p.pu[LUMA_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon); ++ p.pu[LUMA_12x16].addAvg[ALIGNED] = PFX(addAvg_12x16_neon); ++ p.pu[LUMA_16x4].addAvg[ALIGNED] = PFX(addAvg_16x4_neon); ++ p.pu[LUMA_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon); ++ p.pu[LUMA_16x12].addAvg[ALIGNED] = PFX(addAvg_16x12_neon); ++ p.pu[LUMA_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon); ++ p.pu[LUMA_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon); ++ p.pu[LUMA_16x64].addAvg[ALIGNED] = PFX(addAvg_16x64_neon); ++ p.pu[LUMA_24x32].addAvg[ALIGNED] = PFX(addAvg_24x32_neon); ++ p.pu[LUMA_32x8].addAvg[ALIGNED] = PFX(addAvg_32x8_neon); ++ p.pu[LUMA_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon); ++ p.pu[LUMA_32x24].addAvg[ALIGNED] = PFX(addAvg_32x24_neon); ++ p.pu[LUMA_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon); ++ p.pu[LUMA_32x64].addAvg[ALIGNED] = PFX(addAvg_32x64_neon); ++ p.pu[LUMA_48x64].addAvg[ALIGNED] = PFX(addAvg_48x64_neon); ++ p.pu[LUMA_64x16].addAvg[ALIGNED] = PFX(addAvg_64x16_neon); ++ p.pu[LUMA_64x32].addAvg[ALIGNED] = PFX(addAvg_64x32_neon); ++ p.pu[LUMA_64x48].addAvg[ALIGNED] = PFX(addAvg_64x48_neon); ++ p.pu[LUMA_64x64].addAvg[ALIGNED] = PFX(addAvg_64x64_neon); + + // chroma addAvg +- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].addAvg = PFX(addAvg_4x2_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x4].addAvg = PFX(addAvg_4x4_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x8].addAvg = PFX(addAvg_4x8_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_4x16].addAvg = PFX(addAvg_4x16_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].addAvg = PFX(addAvg_6x8_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x2].addAvg = PFX(addAvg_8x2_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].addAvg = PFX(addAvg_8x4_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x6].addAvg = PFX(addAvg_8x6_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x8].addAvg = PFX(addAvg_8x8_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x16].addAvg = PFX(addAvg_8x16_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_8x32].addAvg = PFX(addAvg_8x32_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].addAvg = PFX(addAvg_12x16_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].addAvg = PFX(addAvg_16x4_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].addAvg = PFX(addAvg_16x8_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x12].addAvg = PFX(addAvg_16x12_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x16].addAvg = PFX(addAvg_16x16_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_16x32].addAvg = PFX(addAvg_16x32_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_24x32].addAvg = PFX(addAvg_24x32_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x8].addAvg = PFX(addAvg_32x8_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x16].addAvg = PFX(addAvg_32x16_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x24].addAvg = PFX(addAvg_32x24_neon); +- p.chroma[X265_CSP_I420].pu[CHROMA_420_32x32].addAvg = PFX(addAvg_32x32_neon); +- +- p.chroma[X265_CSP_I422].pu[CHROMA_422_4x8].addAvg = PFX(addAvg_4x8_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_4x16].addAvg = PFX(addAvg_4x16_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_4x32].addAvg = PFX(addAvg_4x32_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_6x16].addAvg = PFX(addAvg_6x16_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].addAvg = PFX(addAvg_8x4_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x8].addAvg = PFX(addAvg_8x8_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x12].addAvg = PFX(addAvg_8x12_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x16].addAvg = PFX(addAvg_8x16_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x32].addAvg = PFX(addAvg_8x32_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_8x64].addAvg = PFX(addAvg_8x64_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].addAvg = PFX(addAvg_12x32_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].addAvg = PFX(addAvg_16x8_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x16].addAvg = PFX(addAvg_16x16_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].addAvg = PFX(addAvg_16x24_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x32].addAvg = PFX(addAvg_16x32_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_16x64].addAvg = PFX(addAvg_16x64_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_24x64].addAvg = PFX(addAvg_24x64_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x16].addAvg = PFX(addAvg_32x16_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x32].addAvg = PFX(addAvg_32x32_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x48].addAvg = PFX(addAvg_32x48_neon); +- p.chroma[X265_CSP_I422].pu[CHROMA_422_32x64].addAvg = PFX(addAvg_32x64_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x2].addAvg[ALIGNED] = PFX(addAvg_4x2_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x4].addAvg[ALIGNED] = PFX(addAvg_4x4_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_6x8].addAvg[ALIGNED] = PFX(addAvg_6x8_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x2].addAvg[ALIGNED] = PFX(addAvg_8x2_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x6].addAvg[ALIGNED] = PFX(addAvg_8x6_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_12x16].addAvg[ALIGNED] = PFX(addAvg_12x16_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x4].addAvg[ALIGNED] = PFX(addAvg_16x4_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x12].addAvg[ALIGNED] = PFX(addAvg_16x12_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_24x32].addAvg[ALIGNED] = PFX(addAvg_24x32_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x8].addAvg[ALIGNED] = PFX(addAvg_32x8_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x24].addAvg[ALIGNED] = PFX(addAvg_32x24_neon); ++ p.chroma[X265_CSP_I420].pu[CHROMA_420_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon); ++ ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_4x8].addAvg[ALIGNED] = PFX(addAvg_4x8_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_4x16].addAvg[ALIGNED] = PFX(addAvg_4x16_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_4x32].addAvg[ALIGNED] = PFX(addAvg_4x32_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_6x16].addAvg[ALIGNED] = PFX(addAvg_6x16_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x4].addAvg[ALIGNED] = PFX(addAvg_8x4_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x8].addAvg[ALIGNED] = PFX(addAvg_8x8_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x12].addAvg[ALIGNED] = PFX(addAvg_8x12_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x16].addAvg[ALIGNED] = PFX(addAvg_8x16_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x32].addAvg[ALIGNED] = PFX(addAvg_8x32_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_8x64].addAvg[ALIGNED] = PFX(addAvg_8x64_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_12x32].addAvg[ALIGNED] = PFX(addAvg_12x32_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x8].addAvg[ALIGNED] = PFX(addAvg_16x8_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x16].addAvg[ALIGNED] = PFX(addAvg_16x16_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x24].addAvg[ALIGNED] = PFX(addAvg_16x24_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x32].addAvg[ALIGNED] = PFX(addAvg_16x32_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_16x64].addAvg[ALIGNED] = PFX(addAvg_16x64_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_24x64].addAvg[ALIGNED] = PFX(addAvg_24x64_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x16].addAvg[ALIGNED] = PFX(addAvg_32x16_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x32].addAvg[ALIGNED] = PFX(addAvg_32x32_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x48].addAvg[ALIGNED] = PFX(addAvg_32x48_neon); ++ p.chroma[X265_CSP_I422].pu[CHROMA_422_32x64].addAvg[ALIGNED] = PFX(addAvg_32x64_neon); + + // quant + p.quant = PFX(quant_neon); +@@ -402,7 +402,7 @@ void setupAssemblyPrimitives(EncoderPrim + p.scale2D_64to32 = PFX(scale2D_64to32_neon); + + // scale1D_128to64 +- p.scale1D_128to64 = PFX(scale1D_128to64_neon); ++ p.scale1D_128to64[ALIGNED] = PFX(scale1D_128to64_neon); + + // copy_count + p.cu[BLOCK_4x4].copy_cnt = PFX(copy_cnt_4_neon); +@@ -411,37 +411,37 @@ void setupAssemblyPrimitives(EncoderPrim + p.cu[BLOCK_32x32].copy_cnt = PFX(copy_cnt_32_neon); + + // filterPixelToShort +- p.pu[LUMA_4x4].convert_p2s = PFX(filterPixelToShort_4x4_neon); +- p.pu[LUMA_4x8].convert_p2s = PFX(filterPixelToShort_4x8_neon); +- p.pu[LUMA_4x16].convert_p2s = PFX(filterPixelToShort_4x16_neon); +- p.pu[LUMA_8x4].convert_p2s = PFX(filterPixelToShort_8x4_neon); +- p.pu[LUMA_8x8].convert_p2s = PFX(filterPixelToShort_8x8_neon); +- p.pu[LUMA_8x16].convert_p2s = PFX(filterPixelToShort_8x16_neon); +- p.pu[LUMA_8x32].convert_p2s = PFX(filterPixelToShort_8x32_neon); +- p.pu[LUMA_12x16].convert_p2s = PFX(filterPixelToShort_12x16_neon); +- p.pu[LUMA_16x4].convert_p2s = PFX(filterPixelToShort_16x4_neon); +- p.pu[LUMA_16x8].convert_p2s = PFX(filterPixelToShort_16x8_neon); +- p.pu[LUMA_16x12].convert_p2s = PFX(filterPixelToShort_16x12_neon); +- p.pu[LUMA_16x16].convert_p2s = PFX(filterPixelToShort_16x16_neon); +- p.pu[LUMA_16x32].convert_p2s = PFX(filterPixelToShort_16x32_neon); +- p.pu[LUMA_16x64].convert_p2s = PFX(filterPixelToShort_16x64_neon); +- p.pu[LUMA_24x32].convert_p2s = PFX(filterPixelToShort_24x32_neon); +- p.pu[LUMA_32x8].convert_p2s = PFX(filterPixelToShort_32x8_neon); +- p.pu[LUMA_32x16].convert_p2s = PFX(filterPixelToShort_32x16_neon); +- p.pu[LUMA_32x24].convert_p2s = PFX(filterPixelToShort_32x24_neon); +- p.pu[LUMA_32x32].convert_p2s = PFX(filterPixelToShort_32x32_neon); +- p.pu[LUMA_32x64].convert_p2s = PFX(filterPixelToShort_32x64_neon); +- p.pu[LUMA_48x64].convert_p2s = PFX(filterPixelToShort_48x64_neon); +- p.pu[LUMA_64x16].convert_p2s = PFX(filterPixelToShort_64x16_neon); +- p.pu[LUMA_64x32].convert_p2s = PFX(filterPixelToShort_64x32_neon); +- p.pu[LUMA_64x48].convert_p2s = PFX(filterPixelToShort_64x48_neon); +- p.pu[LUMA_64x64].convert_p2s = PFX(filterPixelToShort_64x64_neon); ++ p.pu[LUMA_4x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x4_neon); ++ p.pu[LUMA_4x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x8_neon); ++ p.pu[LUMA_4x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_4x16_neon); ++ p.pu[LUMA_8x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x4_neon); ++ p.pu[LUMA_8x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x8_neon); ++ p.pu[LUMA_8x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x16_neon); ++ p.pu[LUMA_8x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_8x32_neon); ++ p.pu[LUMA_12x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_12x16_neon); ++ p.pu[LUMA_16x4].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x4_neon); ++ p.pu[LUMA_16x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x8_neon); ++ p.pu[LUMA_16x12].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x12_neon); ++ p.pu[LUMA_16x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x16_neon); ++ p.pu[LUMA_16x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x32_neon); ++ p.pu[LUMA_16x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_16x64_neon); ++ p.pu[LUMA_24x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_24x32_neon); ++ p.pu[LUMA_32x8].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x8_neon); ++ p.pu[LUMA_32x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x16_neon); ++ p.pu[LUMA_32x24].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x24_neon); ++ p.pu[LUMA_32x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x32_neon); ++ p.pu[LUMA_32x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_32x64_neon); ++ p.pu[LUMA_48x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_48x64_neon); ++ p.pu[LUMA_64x16].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x16_neon); ++ p.pu[LUMA_64x32].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x32_neon); ++ p.pu[LUMA_64x48].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x48_neon); ++ p.pu[LUMA_64x64].convert_p2s[ALIGNED] = PFX(filterPixelToShort_64x64_neon); + + // Block_fill +- p.cu[BLOCK_4x4].blockfill_s = PFX(blockfill_s_4x4_neon); +- p.cu[BLOCK_8x8].blockfill_s = PFX(blockfill_s_8x8_neon); +- p.cu[BLOCK_16x16].blockfill_s = PFX(blockfill_s_16x16_neon); +- p.cu[BLOCK_32x32].blockfill_s = PFX(blockfill_s_32x32_neon); ++ p.cu[BLOCK_4x4].blockfill_s[ALIGNED] = PFX(blockfill_s_4x4_neon); ++ p.cu[BLOCK_8x8].blockfill_s[ALIGNED] = PFX(blockfill_s_8x8_neon); ++ p.cu[BLOCK_16x16].blockfill_s[ALIGNED] = PFX(blockfill_s_16x16_neon); ++ p.cu[BLOCK_32x32].blockfill_s[ALIGNED] = PFX(blockfill_s_32x32_neon); + + // Blockcopy_ss + p.cu[BLOCK_4x4].copy_ss = PFX(blockcopy_ss_4x4_neon); +@@ -495,21 +495,21 @@ void setupAssemblyPrimitives(EncoderPrim + p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].copy_sp = PFX(blockcopy_sp_32x64_neon); + + // pixel_add_ps +- p.cu[BLOCK_4x4].add_ps = PFX(pixel_add_ps_4x4_neon); +- p.cu[BLOCK_8x8].add_ps = PFX(pixel_add_ps_8x8_neon); +- p.cu[BLOCK_16x16].add_ps = PFX(pixel_add_ps_16x16_neon); +- p.cu[BLOCK_32x32].add_ps = PFX(pixel_add_ps_32x32_neon); +- p.cu[BLOCK_64x64].add_ps = PFX(pixel_add_ps_64x64_neon); ++ p.cu[BLOCK_4x4].add_ps[ALIGNED] = PFX(pixel_add_ps_4x4_neon); ++ p.cu[BLOCK_8x8].add_ps[ALIGNED] = PFX(pixel_add_ps_8x8_neon); ++ p.cu[BLOCK_16x16].add_ps[ALIGNED] = PFX(pixel_add_ps_16x16_neon); ++ p.cu[BLOCK_32x32].add_ps[ALIGNED] = PFX(pixel_add_ps_32x32_neon); ++ p.cu[BLOCK_64x64].add_ps[ALIGNED] = PFX(pixel_add_ps_64x64_neon); + + // chroma add_ps +- p.chroma[X265_CSP_I420].cu[BLOCK_420_4x4].add_ps = PFX(pixel_add_ps_4x4_neon); +- p.chroma[X265_CSP_I420].cu[BLOCK_420_8x8].add_ps = PFX(pixel_add_ps_8x8_neon); +- p.chroma[X265_CSP_I420].cu[BLOCK_420_16x16].add_ps = PFX(pixel_add_ps_16x16_neon); +- p.chroma[X265_CSP_I420].cu[BLOCK_420_32x32].add_ps = PFX(pixel_add_ps_32x32_neon); +- p.chroma[X265_CSP_I422].cu[BLOCK_422_4x8].add_ps = PFX(pixel_add_ps_4x8_neon); +- p.chroma[X265_CSP_I422].cu[BLOCK_422_8x16].add_ps = PFX(pixel_add_ps_8x16_neon); +- p.chroma[X265_CSP_I422].cu[BLOCK_422_16x32].add_ps = PFX(pixel_add_ps_16x32_neon); +- p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].add_ps = PFX(pixel_add_ps_32x64_neon); ++ p.chroma[X265_CSP_I420].cu[BLOCK_420_4x4].add_ps[ALIGNED] = PFX(pixel_add_ps_4x4_neon); ++ p.chroma[X265_CSP_I420].cu[BLOCK_420_8x8].add_ps[ALIGNED] = PFX(pixel_add_ps_8x8_neon); ++ p.chroma[X265_CSP_I420].cu[BLOCK_420_16x16].add_ps[ALIGNED] = PFX(pixel_add_ps_16x16_neon); ++ p.chroma[X265_CSP_I420].cu[BLOCK_420_32x32].add_ps[ALIGNED] = PFX(pixel_add_ps_32x32_neon); ++ p.chroma[X265_CSP_I422].cu[BLOCK_422_4x8].add_ps[ALIGNED] = PFX(pixel_add_ps_4x8_neon); ++ p.chroma[X265_CSP_I422].cu[BLOCK_422_8x16].add_ps[ALIGNED] = PFX(pixel_add_ps_8x16_neon); ++ p.chroma[X265_CSP_I422].cu[BLOCK_422_16x32].add_ps[ALIGNED] = PFX(pixel_add_ps_16x32_neon); ++ p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].add_ps[ALIGNED] = PFX(pixel_add_ps_32x64_neon); + + // cpy2Dto1D_shr + p.cu[BLOCK_4x4].cpy2Dto1D_shr = PFX(cpy2Dto1D_shr_4x4_neon); +@@ -518,10 +518,10 @@ void setupAssemblyPrimitives(EncoderPrim + p.cu[BLOCK_32x32].cpy2Dto1D_shr = PFX(cpy2Dto1D_shr_32x32_neon); + + // ssd_s +- p.cu[BLOCK_4x4].ssd_s = PFX(pixel_ssd_s_4x4_neon); +- p.cu[BLOCK_8x8].ssd_s = PFX(pixel_ssd_s_8x8_neon); +- p.cu[BLOCK_16x16].ssd_s = PFX(pixel_ssd_s_16x16_neon); +- p.cu[BLOCK_32x32].ssd_s = PFX(pixel_ssd_s_32x32_neon); ++ p.cu[BLOCK_4x4].ssd_s[ALIGNED] = PFX(pixel_ssd_s_4x4_neon); ++ p.cu[BLOCK_8x8].ssd_s[ALIGNED] = PFX(pixel_ssd_s_8x8_neon); ++ p.cu[BLOCK_16x16].ssd_s[ALIGNED] = PFX(pixel_ssd_s_16x16_neon); ++ p.cu[BLOCK_32x32].ssd_s[ALIGNED] = PFX(pixel_ssd_s_32x32_neon); + + // sse_ss + p.cu[BLOCK_4x4].sse_ss = PFX(pixel_sse_ss_4x4_neon); +@@ -548,10 +548,10 @@ void setupAssemblyPrimitives(EncoderPrim + p.chroma[X265_CSP_I422].cu[BLOCK_422_32x64].sub_ps = PFX(pixel_sub_ps_32x64_neon); + + // calc_Residual +- p.cu[BLOCK_4x4].calcresidual = PFX(getResidual4_neon); +- p.cu[BLOCK_8x8].calcresidual = PFX(getResidual8_neon); +- p.cu[BLOCK_16x16].calcresidual = PFX(getResidual16_neon); +- p.cu[BLOCK_32x32].calcresidual = PFX(getResidual32_neon); ++ p.cu[BLOCK_4x4].calcresidual[ALIGNED] = PFX(getResidual4_neon); ++ p.cu[BLOCK_8x8].calcresidual[ALIGNED] = PFX(getResidual8_neon); ++ p.cu[BLOCK_16x16].calcresidual[ALIGNED] = PFX(getResidual16_neon); ++ p.cu[BLOCK_32x32].calcresidual[ALIGNED] = PFX(getResidual32_neon); + + // sse_pp + p.cu[BLOCK_4x4].sse_pp = PFX(pixel_sse_pp_4x4_neon); +@@ -722,31 +722,31 @@ void setupAssemblyPrimitives(EncoderPrim + p.pu[LUMA_64x64].sad_x4 = PFX(sad_x4_64x64_neon); + + // pixel_avg_pp +- p.pu[LUMA_4x4].pixelavg_pp = PFX(pixel_avg_pp_4x4_neon); +- p.pu[LUMA_4x8].pixelavg_pp = PFX(pixel_avg_pp_4x8_neon); +- p.pu[LUMA_4x16].pixelavg_pp = PFX(pixel_avg_pp_4x16_neon); +- p.pu[LUMA_8x4].pixelavg_pp = PFX(pixel_avg_pp_8x4_neon); +- p.pu[LUMA_8x8].pixelavg_pp = PFX(pixel_avg_pp_8x8_neon); +- p.pu[LUMA_8x16].pixelavg_pp = PFX(pixel_avg_pp_8x16_neon); +- p.pu[LUMA_8x32].pixelavg_pp = PFX(pixel_avg_pp_8x32_neon); +- p.pu[LUMA_12x16].pixelavg_pp = PFX(pixel_avg_pp_12x16_neon); +- p.pu[LUMA_16x4].pixelavg_pp = PFX(pixel_avg_pp_16x4_neon); +- p.pu[LUMA_16x8].pixelavg_pp = PFX(pixel_avg_pp_16x8_neon); +- p.pu[LUMA_16x12].pixelavg_pp = PFX(pixel_avg_pp_16x12_neon); +- p.pu[LUMA_16x16].pixelavg_pp = PFX(pixel_avg_pp_16x16_neon); +- p.pu[LUMA_16x32].pixelavg_pp = PFX(pixel_avg_pp_16x32_neon); +- p.pu[LUMA_16x64].pixelavg_pp = PFX(pixel_avg_pp_16x64_neon); +- p.pu[LUMA_24x32].pixelavg_pp = PFX(pixel_avg_pp_24x32_neon); +- p.pu[LUMA_32x8].pixelavg_pp = PFX(pixel_avg_pp_32x8_neon); +- p.pu[LUMA_32x16].pixelavg_pp = PFX(pixel_avg_pp_32x16_neon); +- p.pu[LUMA_32x24].pixelavg_pp = PFX(pixel_avg_pp_32x24_neon); +- p.pu[LUMA_32x32].pixelavg_pp = PFX(pixel_avg_pp_32x32_neon); +- p.pu[LUMA_32x64].pixelavg_pp = PFX(pixel_avg_pp_32x64_neon); +- p.pu[LUMA_48x64].pixelavg_pp = PFX(pixel_avg_pp_48x64_neon); +- p.pu[LUMA_64x16].pixelavg_pp = PFX(pixel_avg_pp_64x16_neon); +- p.pu[LUMA_64x32].pixelavg_pp = PFX(pixel_avg_pp_64x32_neon); +- p.pu[LUMA_64x48].pixelavg_pp = PFX(pixel_avg_pp_64x48_neon); +- p.pu[LUMA_64x64].pixelavg_pp = PFX(pixel_avg_pp_64x64_neon); ++ p.pu[LUMA_4x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x4_neon); ++ p.pu[LUMA_4x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x8_neon); ++ p.pu[LUMA_4x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_4x16_neon); ++ p.pu[LUMA_8x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x4_neon); ++ p.pu[LUMA_8x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x8_neon); ++ p.pu[LUMA_8x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x16_neon); ++ p.pu[LUMA_8x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_8x32_neon); ++ p.pu[LUMA_12x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_12x16_neon); ++ p.pu[LUMA_16x4].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x4_neon); ++ p.pu[LUMA_16x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x8_neon); ++ p.pu[LUMA_16x12].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x12_neon); ++ p.pu[LUMA_16x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x16_neon); ++ p.pu[LUMA_16x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x32_neon); ++ p.pu[LUMA_16x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_16x64_neon); ++ p.pu[LUMA_24x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_24x32_neon); ++ p.pu[LUMA_32x8].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x8_neon); ++ p.pu[LUMA_32x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x16_neon); ++ p.pu[LUMA_32x24].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x24_neon); ++ p.pu[LUMA_32x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x32_neon); ++ p.pu[LUMA_32x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_32x64_neon); ++ p.pu[LUMA_48x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_48x64_neon); ++ p.pu[LUMA_64x16].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x16_neon); ++ p.pu[LUMA_64x32].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x32_neon); ++ p.pu[LUMA_64x48].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x48_neon); ++ p.pu[LUMA_64x64].pixelavg_pp[ALIGNED] = PFX(pixel_avg_pp_64x64_neon); + + // planecopy + p.planecopy_cp = PFX(pixel_planecopy_cp_neon); diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 24bf5b4ed9..930f83a3e5 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -397,7 +397,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (sha256 (base32 "0qx8mavwdzdpkkby7n29i9av7zsnklavacwfz537mf62q2pzjnbf")) - (patches (search-patches "x265-fix-ppc64le-build.patch")) + (patches (search-patches "x265-fix-ppc64le-build.patch" + "x265-arm-asm-primitives.patch")) (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "source/compat/getopt") From bc036f4c99fe40e4229c546313ffec0552ee27fa Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 27 Jul 2018 03:27:49 +0200 Subject: [PATCH 365/374] gnu: dconf: Adjust inputs and remove obsolete workaround. * gnu/packages/gnome.scm (dconf)[inputs]: Remove GLIB and LIBXML2. [propagated-inputs]: Add GLIB. [native-inputs]: Add LIBXML2. Remove INTLTOOL. [arguments]: Remove #:phases. --- gnu/packages/gnome.scm | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index a571d922cb..f6c0a80c4a 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2240,16 +2240,17 @@ and RDP protocols.") (base32 "0da587hpiqy8h3pswn1102h4b905x8k6mk3ajpi7kf4kzkvv30ym")))) (build-system glib-or-gtk-build-system) + (propagated-inputs + ;; In Requires of dconf.pc. + `(("glib" ,glib))) (inputs `(("gtk+" ,gtk+) - ("glib" ,glib) - ("dbus" ,dbus) - ("libxml2" ,libxml2))) + ("dbus" ,dbus))) (native-inputs - `(("libxslt" ,libxslt) + `(("libxslt" ,libxslt) ;for xsltproc + ("libxml2" ,libxml2) ;for XML_CATALOG_FILES ("docbook-xml" ,docbook-xml-4.2) ("docbook-xsl" ,docbook-xsl) - ("intltool" ,intltool) ("pkg-config" ,pkg-config))) (arguments `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id @@ -2258,21 +2259,7 @@ and RDP protocols.") ;; Set the correct RUNPATH in binaries. (list (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib") - "--disable-gtk-doc-html") ; FIXME: requires gtk-doc - #:phases - (modify-phases %standard-phases - (add-before 'configure 'fix-docbook - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "docs/Makefile.in" - (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl") - (string-append (assoc-ref inputs "docbook-xsl") - "/xml/xsl/docbook-xsl-" - ,(package-version docbook-xsl) - "/manpages/docbook.xsl"))) - (setenv "XML_CATALOG_FILES" - (string-append (assoc-ref inputs "docbook-xml") - "/xml/dtd/docbook/catalog.xml")) - #t))))) + "--disable-gtk-doc-html"))) ; FIXME: requires gtk-doc (home-page "https://developer.gnome.org/dconf") (synopsis "Low-level GNOME configuration system") (description "Dconf is a low-level configuration system. Its main purpose From 03676d6f35790f5816183f7de8dd1ba60562416c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 27 Jul 2018 03:32:53 +0200 Subject: [PATCH 366/374] gnu: dconf: Install GTK documentation. * gnu/packages/gnome.scm (dconf)[native-inputs]: Add GTK-DOC. [arguments]: Adjust #:configure-flags accordingly. --- gnu/packages/gnome.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f6c0a80c4a..389ea2ce85 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2251,6 +2251,7 @@ and RDP protocols.") ("libxml2" ,libxml2) ;for XML_CATALOG_FILES ("docbook-xml" ,docbook-xml-4.2) ("docbook-xsl" ,docbook-xsl) + ("gtk-doc" ,gtk-doc) ("pkg-config" ,pkg-config))) (arguments `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id @@ -2259,7 +2260,7 @@ and RDP protocols.") ;; Set the correct RUNPATH in binaries. (list (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib") - "--disable-gtk-doc-html"))) ; FIXME: requires gtk-doc + "--enable-gtk-doc"))) (home-page "https://developer.gnome.org/dconf") (synopsis "Low-level GNOME configuration system") (description "Dconf is a low-level configuration system. Its main purpose From e20e6b40613b7ab2973f7ca1621edfaff8cbdf00 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 27 Jul 2018 03:40:00 +0200 Subject: [PATCH 367/374] gnu: dconf: Update license. * gnu/packages/gnome.scm (dconf)[license]: Change from LGPL2.1 to LGPL2.1+. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 389ea2ce85..896d7090d6 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2266,7 +2266,7 @@ and RDP protocols.") (description "Dconf is a low-level configuration system. Its main purpose is to provide a backend to GSettings on platforms that don't already have configuration storage systems.") - (license license:lgpl2.1))) + (license license:lgpl2.1+))) (define-public json-glib (package From 35fa923d8befc1976e3ffc6b5fd27a33dfcdd0ad Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 27 Jul 2018 12:39:16 +0200 Subject: [PATCH 368/374] gnu: dconf: Update to 0.28.0. * gnu/packages/gnome.scm (dconf): Update to 0.28.0. [build-system]: Switch to MESON-BUILD-SYSTEM. [arguments]: Adjust accordingly. [native-inputs]: Add VALA and GLIB:BIN. --- gnu/packages/gnome.scm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 896d7090d6..b1a0ccdc12 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2229,7 +2229,7 @@ and RDP protocols.") (define-public dconf (package (name "dconf") - (version "0.26.1") + (version "0.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2238,8 +2238,8 @@ and RDP protocols.") name "-" version ".tar.xz")) (sha256 (base32 - "0da587hpiqy8h3pswn1102h4b905x8k6mk3ajpi7kf4kzkvv30ym")))) - (build-system glib-or-gtk-build-system) + "0hn7v6769xabqz7kvyb2hfm19h46z1whkair7ff752zmbs3b7lv1")))) + (build-system meson-build-system) (propagated-inputs ;; In Requires of dconf.pc. `(("glib" ,glib))) @@ -2251,16 +2251,15 @@ and RDP protocols.") ("libxml2" ,libxml2) ;for XML_CATALOG_FILES ("docbook-xml" ,docbook-xml-4.2) ("docbook-xsl" ,docbook-xsl) + ("glib:bin" ,glib "bin") ("gtk-doc" ,gtk-doc) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + ("vala" ,vala))) (arguments `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id ; or /etc/machine-id. - #:configure-flags - ;; Set the correct RUNPATH in binaries. - (list (string-append "LDFLAGS=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib") - "--enable-gtk-doc"))) + #:glib-or-gtk? #t + #:configure-flags '("-Denable-gtk-doc=true"))) (home-page "https://developer.gnome.org/dconf") (synopsis "Low-level GNOME configuration system") (description "Dconf is a low-level configuration system. Its main purpose From 0981ec13009bb68924892e90eb33e27cc9e6d44d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 27 Jul 2018 15:33:38 +0200 Subject: [PATCH 369/374] gnu: accountsservice: Update to 0.6.50. * gnu/packages/freedesktop.scm (accountsservice): Update to 0.6.50. [arguments]: Add "--enable-elogind" and "--disable-systemd" to #:configure-flags. [inputs]: Add ELOGIND. --- gnu/packages/freedesktop.scm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index b42a27b8c8..2d9b3d7ca8 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -721,19 +721,21 @@ message bus.") (define-public accountsservice (package (name "accountsservice") - (version "0.6.43") + (version "0.6.50") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "1k6n9079001sgcwlkq0bz6mkn4m8y4dwf6hs1qm85swcld5ajfzd")))) + "0jn7vg1z4vxnna0hl33hbcb4bb3zpilxc2vyclh24vx4vvsjhn83")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; XXX: tests require DocBook 4.1.2 #:configure-flags - '("--localstatedir=/var") + '("--localstatedir=/var" + "--disable-systemd" + "--enable-elogind") #:phases (modify-phases %standard-phases (add-before @@ -756,8 +758,9 @@ message bus.") ("intltool" ,intltool) ("pkg-config" ,pkg-config))) (inputs - `(("shadow" ,shadow) - ("polkit" ,polkit))) + `(("elogind" ,elogind) + ("polkit" ,polkit) + ("shadow" ,shadow))) (home-page "https://www.freedesktop.org/wiki/Software/AccountsService/") (synopsis "D-Bus interface for user account query and manipulation") (description From 6871121be0f19678b4a04d9dcf0124198a0e5fe6 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 28 Jul 2018 16:40:37 +0200 Subject: [PATCH 370/374] gnu: libjpeg-turbo: Update to 2.0.0. * gnu/packages/image.scm (libjpeg-turbo): Update to 2.0.0. [build-system]: Change to CMAKE-BUILD-SYSTEM. [arguments]: Adjust accordingly. --- gnu/packages/image.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 31c78f84ef..ab1e4df094 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1223,21 +1223,20 @@ PNG, and performs PNG integrity checks and corrections.") (define-public libjpeg-turbo (package (name "libjpeg-turbo") - (version "1.5.3") + (version "2.0.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" version "/" name "-" version ".tar.gz")) (sha256 (base32 - "08r5b5mywwrxv4axvq80dm31cklz81grczlzlxr2xqa6pgi90j5j")))) - (build-system gnu-build-system) + "0s48zz6awd493hmb200abmsizh68fh1jmz98r41n4c8dbl87d23p")))) + (build-system cmake-build-system) (native-inputs `(("nasm" ,nasm))) (arguments - '(#:test-target "test" - #:configure-flags (list "--with-build-date=1970-01-01" - "--disable-static"))) + '(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR:PATH=lib" + "-DENABLE_STATIC=0"))) (home-page "https://libjpeg-turbo.org/") (synopsis "SIMD-accelerated JPEG image handling library") (description "libjpeg-turbo is a JPEG image codec that accelerates baseline From 71de61c353906d97f189a82ca35970b9202dde19 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 28 Jul 2018 16:41:27 +0200 Subject: [PATCH 371/374] gnu: libjpeg-turbo: Update license. * gnu/packages/image.scm (libjpeg-turbo)[license]: Add ZLIB. --- gnu/packages/image.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index ab1e4df094..b381c3f97b 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1248,8 +1248,10 @@ libjpeg-turbo implements both the traditional libjpeg API and the less powerful but more straightforward TurboJPEG API, and provides a full-featured Java interface. It supports color space extensions that allow it to compress from and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.).") - (license (list license:bsd-3 ; jsimd*.[ch] and most of simd/ - license:ijg)))) ; the rest + ;; libjpeg-turbo is covered by three different licenses; see LICENSE.md. + (license (list license:bsd-3 ;the TurboJPEG API library and programs + license:ijg ;the libjpeg library and associated tools + license:zlib)))) ;the libjpeg-turbo SIMD extensions (define-public niftilib (package From 5ea4b5943d4ce427900bb2e2e49ce27d2b293404 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 28 Jul 2018 17:55:04 +0200 Subject: [PATCH 372/374] gnu: glm: Update to 0.9.9.0. * gnu/packages/maths.scm (glm): Update to 0.9.9.0. [source](uri): Change to new download location. --- gnu/packages/maths.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index fd3626a595..6749afd01b 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3256,15 +3256,15 @@ Failure to do so will result in a library with poor performance.") (define-public glm (package (name "glm") - (version "0.9.6.3") + (version "0.9.9.0") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/ogl-math/glm-" version - "/glm-" version ".zip")) + (uri (string-append "https://github.com/g-truc/glm/releases/download/" + version "/glm-" version ".zip")) (sha256 (base32 - "1cnjmi033a16a95v6xfkr1bvfmkd26hzdjka8j1819hgn5b1nr8l")))) + "0ihjadp2sb8w312a276skfjsljm3y41bjscbxf79wn23gi00giz1")))) (build-system cmake-build-system) (native-inputs `(("unzip" ,unzip))) From 46bda5eb7a22dc314d7632ab1b8636b37e71ac85 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 28 Jul 2018 17:56:59 +0200 Subject: [PATCH 373/374] gnu: glm: Update home page. * gnu/packages/maths.scm (glm)[home-page]: Use HTTPS. --- gnu/packages/maths.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 6749afd01b..1d7ef6f211 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3268,7 +3268,7 @@ Failure to do so will result in a library with poor performance.") (build-system cmake-build-system) (native-inputs `(("unzip" ,unzip))) - (home-page "http://glm.g-truc.net") + (home-page "https://glm.g-truc.net/") (synopsis "OpenGL Mathematics library") (description "OpenGL Mathematics (GLM) is a header-only C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) From 48d7ac175f69fea587eaa0358eddb5c76205e8ad Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 28 Jul 2018 18:12:13 +0200 Subject: [PATCH 374/374] gnu: openlibm: Update to 0.6.0. * gnu/packages/maths.scm (openlibm): Update to 0.6.0. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 1d7ef6f211..e828dbb2d3 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3001,7 +3001,7 @@ access to BLIS implementations via traditional BLAS routine calls.") (define-public openlibm (package (name "openlibm") - (version "0.5.5") + (version "0.6.0") (source (origin (method url-fetch) @@ -3010,7 +3010,7 @@ access to BLIS implementations via traditional BLAS routine calls.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1z8cj5q8ca8kmrakwkpjxf8svi81waw0c568cx8v8pv9kvswbp07")))) + "0a5fpm8nra5ldhjk0cqd2rx1qh32wiarkxmcqcm5xl8z7l4kjm6l")))) (build-system gnu-build-system) (arguments `(#:make-flags