From 92ca25a32b4bd19cda563fa0807af0fa2d39e0e2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 19 Jul 2019 11:38:54 +0200 Subject: guix archive: Use (gcrypt common). * guix/scripts/archive.scm: Use (gcrypt common) for 'error-source' and 'error-string'. --- guix/scripts/archive.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index d349b5d590..fba0f73826 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -30,6 +30,7 @@ (define-module (guix scripts archive) #:use-module (guix monads) #:use-module (guix ui) #:use-module (guix pki) + #:use-module (gcrypt common) #:use-module (gcrypt pk-crypto) #:use-module (guix scripts) #:use-module (guix scripts build) -- cgit v1.2.3 From b41c7beb0b5b7a16656d6acf53f77eaf2a58e125 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 19 Jul 2019 11:48:19 +0200 Subject: file-systems: Use 'no-atime' for %IMMUTABLE-STORE. * gnu/system/file-systems.scm (%immutable-store): Add 'no-atime'. --- gnu/system/file-systems.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 393dd0df70..d11b36f25d 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -352,7 +352,7 @@ (define %immutable-store (mount-point (%store-prefix)) (type "none") (check? #f) - (flags '(read-only bind-mount)))) + (flags '(read-only bind-mount no-atime)))) (define %control-groups (let ((parent (file-system -- cgit v1.2.3 From bacfec8611530dc3e849fb804b51f50b299796f0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 15 Jul 2019 16:14:31 +0200 Subject: linux-container: Add 'eval/container'. * gnu/system/linux-container.scm (eval/container): New procedure. * tests/containers.scm ("eval/container, exit status") ("eval/container, writable user mapping"): New tests. --- gnu/system/linux-container.scm | 49 ++++++++++++++++++++++++++++++++++++++++- tests/containers.scm | 50 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index 61248c62b9..6273cee3d3 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -35,7 +35,8 @@ (define-module (gnu system linux-container) #:use-module (gnu system file-systems) #:export (system-container containerized-operating-system - container-script)) + container-script + eval/container)) (define* (container-essential-services os #:key shared-network?) "Return a list of essential services corresponding to OS, a @@ -205,3 +206,49 @@ (define script %namespaces))))) (gexp->script "run-container" script))) + +(define* (eval/container exp + #:key + (mappings '()) + (namespaces %namespaces)) + "Evaluate EXP, a gexp, in a new process executing in separate namespaces as +listed in NAMESPACES. Add MAPPINGS, a list of , to the +set of directories visible in the process's mount namespace. Return the +process' exit status as a monadic value. + +This is useful to implement processes that, unlike derivations, are not +entirely pure and need to access the outside world or to perform side +effects." + (mlet %store-monad ((lowered (lower-gexp exp))) + (define inputs + (cons (lowered-gexp-guile lowered) + (lowered-gexp-inputs lowered))) + + (define items + (append (append-map derivation-input-output-paths inputs) + (lowered-gexp-sources lowered))) + + (mbegin %store-monad + (built-derivations inputs) + (mlet %store-monad ((closure ((store-lift requisites) items))) + (return (call-with-container (map file-system-mapping->bind-mount + (append (map (lambda (item) + (file-system-mapping + (source item) + (target source))) + closure) + mappings)) + (lambda () + (apply execl + (string-append (derivation-input-output-path + (lowered-gexp-guile lowered)) + "/bin/guile") + "guile" + (append (map (lambda (directory) `("-L" ,directory)) + (lowered-gexp-load-path lowered)) + (map (lambda (directory) `("-C" ,directory)) + (lowered-gexp-load-compiled-path + lowered)) + (list "-c" + (object->string + (lowered-gexp-sexp lowered)))))))))))) diff --git a/tests/containers.scm b/tests/containers.scm index 37408f380d..c6c738f234 100644 --- a/tests/containers.scm +++ b/tests/containers.scm @@ -21,7 +21,15 @@ (define-module (test-containers) #:use-module (guix utils) #:use-module (guix build syscalls) #:use-module (gnu build linux-container) + #:use-module ((gnu system linux-container) + #:select (eval/container)) #:use-module (gnu system file-systems) + #:use-module (guix store) + #:use-module (guix monads) + #:use-module (guix gexp) + #:use-module (guix derivations) + #:use-module (guix tests) + #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) #:use-module (ice-9 match)) @@ -219,4 +227,46 @@ (define (namespaces pid) (lambda () (* 6 7)))) +(skip-if-unsupported) +(test-equal "eval/container, exit status" + 42 + (let* ((store (open-connection-for-tests)) + (status (run-with-store store + (eval/container #~(exit 42))))) + (close-connection store) + (status:exit-val status))) + +(skip-if-unsupported) +(test-assert "eval/container, writable user mapping" + (call-with-temporary-directory + (lambda (directory) + (define store + (open-connection-for-tests)) + (define result + (string-append directory "/r")) + (define requisites* + (store-lift requisites)) + + (call-with-output-file result (const #t)) + (run-with-store store + (mlet %store-monad ((status (eval/container + #~(begin + (use-modules (ice-9 ftw)) + (call-with-output-file "/result" + (lambda (port) + (write (scandir #$(%store-prefix)) + port)))) + #:mappings + (list (file-system-mapping + (source result) + (target "/result") + (writable? #t))))) + (reqs (requisites* + (list (derivation->output-path + (%guile-for-build)))))) + (close-connection store) + (return (and (zero? (pk 'status status)) + (lset= string=? (cons* "." ".." (map basename reqs)) + (pk (call-with-input-file result read)))))))))) + (test-end) -- cgit v1.2.3 From 45b903323e0fecb7947926d2c14103d47fea624a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 17 Jul 2019 00:04:41 +0200 Subject: channels: Strictly check the version of '.guix-channel'. Until now the 'version' field in '.guix-channel' could be omitted, or it could be any value. * guix/channels.scm (read-channel-metadata): Rename to... (channel-instance-metadata): ... this. (channel-instance-dependencies): Adjust accordingly. (read-channel-metadata): New procedure. Use 'match' to require a 'version' field. Provide proper error handling when the channel sexp is malformed or when given an unsupported version number. (read-channel-metadata-from-source): Use 'catch' and 'system-error-errno' instead of 'file-exists?'. * tests/channels.scm (instance--unsupported-version): New variable. (read-channel-metadata): Rename to... (channel-instance-metadata): ... this. Rename tests accordingly. ("channel-instance-metadata rejects unsupported version"): New test. --- guix/channels.scm | 71 ++++++++++++++++++++++++++++++++++++------------------ tests/channels.scm | 29 ++++++++++++++++------ 2 files changed, 68 insertions(+), 32 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index bfe6963418..e92148abf2 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -121,32 +121,55 @@ (define (channel-reference channel) (#f `(branch . ,(channel-branch channel))) (commit `(commit . ,(channel-commit channel))))) +(define (read-channel-metadata port) + "Read from PORT channel metadata in the format expected for the +'.guix-channel' file. Return a record, or raise an error +if valid metadata could not be read from PORT." + (match (read port) + (('channel ('version 0) properties ...) + (let ((directory (and=> (assoc-ref properties 'directory) first)) + (dependencies (or (assoc-ref properties 'dependencies) '()))) + (channel-metadata + version + directory + (map (lambda (item) + (let ((get (lambda* (key #:optional default) + (or (and=> (assoc-ref item key) first) default)))) + (and-let* ((name (get 'name)) + (url (get 'url)) + (branch (get 'branch "master"))) + (channel + (name name) + (branch branch) + (url url) + (commit (get 'commit)))))) + dependencies)))) + ((and ('channel ('version version) _ ...) sexp) + (raise (condition + (&message (message "unsupported '.guix-channel' version")) + (&error-location + (location (source-properties->location + (source-properties sexp))))))) + (sexp + (raise (condition + (&message (message "invalid '.guix-channel' file")) + (&error-location + (location (source-properties->location + (source-properties sexp))))))))) + (define (read-channel-metadata-from-source source) "Return a channel-metadata record read from channel's SOURCE/.guix-channel description file, or return #F if SOURCE/.guix-channel does not exist." - (let ((meta-file (string-append source "/.guix-channel"))) - (and (file-exists? meta-file) - (let* ((raw (call-with-input-file meta-file read)) - (version (and=> (assoc-ref raw 'version) first)) - (directory (and=> (assoc-ref raw 'directory) first)) - (dependencies (or (assoc-ref raw 'dependencies) '()))) - (channel-metadata - version - directory - (map (lambda (item) - (let ((get (lambda* (key #:optional default) - (or (and=> (assoc-ref item key) first) default)))) - (and-let* ((name (get 'name)) - (url (get 'url)) - (branch (get 'branch "master"))) - (channel - (name name) - (branch branch) - (url url) - (commit (get 'commit)))))) - dependencies)))))) - -(define (read-channel-metadata instance) + (catch 'system-error + (lambda () + (call-with-input-file (string-append source "/.guix-channel") + read-channel-metadata)) + (lambda args + (if (= ENOENT (system-error-errno args)) + #f + (apply throw args))))) + +(define (channel-instance-metadata instance) "Return a channel-metadata record read from the channel INSTANCE's description file, or return #F if the channel instance does not include the file." @@ -155,7 +178,7 @@ (define (read-channel-metadata instance) (define (channel-instance-dependencies instance) "Return the list of channels that are declared as dependencies for the given channel INSTANCE." - (match (read-channel-metadata instance) + (match (channel-instance-metadata instance) (#f '()) (($ version directory dependencies) dependencies))) diff --git a/tests/channels.scm b/tests/channels.scm index 8540aef435..1f1357fca7 100644 --- a/tests/channels.scm +++ b/tests/channels.scm @@ -26,8 +26,12 @@ (define-module (test-channels) #:use-module (guix derivations) #:use-module (guix sets) #:use-module (guix gexp) + #:use-module ((guix utils) + #:select (error-location? error-location location-line)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (srfi srfi-64) #:use-module (ice-9 match)) @@ -46,6 +50,9 @@ (define instance-dir (mkdtemp! "/tmp/checkout.XXXXXX")) #:name name)) (define instance--boring (make-instance)) +(define instance--unsupported-version + (make-instance #:spec + '(channel (version 42) (dependencies whatever)))) (define instance--no-deps (make-instance #:spec '(channel @@ -78,24 +85,30 @@ (define instance--with-dupes (name test-channel) (url "https://example.com/test-channel-elsewhere")))))) -(define read-channel-metadata - (@@ (guix channels) read-channel-metadata)) +(define channel-instance-metadata + (@@ (guix channels) channel-instance-metadata)) -(test-equal "read-channel-metadata returns #f if .guix-channel does not exist" +(test-equal "channel-instance-metadata returns #f if .guix-channel does not exist" #f - (read-channel-metadata instance--boring)) + (channel-instance-metadata instance--boring)) + +(test-equal "channel-instance-metadata rejects unsupported version" + 1 ;line number in the generated '.guix-channel' + (guard (c ((and (message-condition? c) (error-location? c)) + (location-line (error-location c)))) + (channel-instance-metadata instance--unsupported-version))) -(test-assert "read-channel-metadata returns " +(test-assert "channel-instance-metadata returns " (every (@@ (guix channels) channel-metadata?) - (map read-channel-metadata + (map channel-instance-metadata (list instance--no-deps instance--simple instance--with-dupes)))) -(test-assert "read-channel-metadata dependencies are channels" +(test-assert "channel-instance-metadata dependencies are channels" (let ((deps ((@@ (guix channels) channel-metadata-dependencies) - (read-channel-metadata instance--simple)))) + (channel-instance-metadata instance--simple)))) (match deps (((? channel? dep)) #t) (_ #f)))) -- cgit v1.2.3 From 5d9daa85b0b8b7145d53768e673fd26ff31b0666 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 17 Jul 2019 00:24:56 +0200 Subject: channels: Remove unneeded 'version' field of . The idea is that 'read-channel-metadata' will take care of converting possibly older versions to the current data type. Thus, storing the version number is unnecessary. * guix/channels.scm ()[version]: Remove. (read-channel-metadata, channel-instance-dependencies): Adjust accordingly. --- guix/channels.scm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index e92148abf2..87ad729a70 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -108,9 +108,8 @@ (define-record-type (checkout channel-instance-checkout)) (define-record-type - (channel-metadata version directory dependencies) + (channel-metadata directory dependencies) channel-metadata? - (version channel-metadata-version) (directory channel-metadata-directory) (dependencies channel-metadata-dependencies)) @@ -130,7 +129,6 @@ (define (read-channel-metadata port) (let ((directory (and=> (assoc-ref properties 'directory) first)) (dependencies (or (assoc-ref properties 'dependencies) '()))) (channel-metadata - version directory (map (lambda (item) (let ((get (lambda* (key #:optional default) @@ -180,7 +178,7 @@ (define (channel-instance-dependencies instance) channel INSTANCE." (match (channel-instance-metadata instance) (#f '()) - (($ version directory dependencies) + (($ directory dependencies) dependencies))) (define* (latest-channel-instances store channels #:optional (previous-channels '())) -- cgit v1.2.3 From ce5d9ec875156f3de7479e861731edf48c984c16 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 17 Jul 2019 00:41:10 +0200 Subject: channels: Always provide a record. This simplifies the code since one no longer needs to think about whether '.guix-channel' was present. * guix/channels.scm (read-channel-metadata): Always pass a string as the first argument to 'channel-metadata'. (read-channel-metadata-from-source): Always return a record. (channel-instance-dependencies): Remove now unneeded 'match'. (standard-module-derivation): Assume DIRECTORY is never #f and contains a leading slash. * tests/channels.scm (channel-metadata-directory) (channel-metadata-dependencies): New procedures. ("channel-instance-metadata returns #f if .guix-channel does not exist"): Remove. ("channel-instance-metadata returns default if .guix-channel does not exist"): New test. (make-instance): Use 'write' instead of 'display' when creating '.guix-channel'. (instance--no-deps): Remove dependencies. (instance--sub-directory): New variable. ("channel-instance-metadata and default dependencies") ("channel-instance-metadata and directory"): New tests. ("latest-channel-instances excludes duplicate channel dependencies"): Expect 'channel-commit' to return a string and adjust accordingly. --- guix/channels.scm | 27 ++++++++++++--------------- tests/channels.scm | 45 +++++++++++++++++++++++++++++---------------- 2 files changed, 41 insertions(+), 31 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index 87ad729a70..415246cbd1 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -110,8 +110,8 @@ (define-record-type (define-record-type (channel-metadata directory dependencies) channel-metadata? - (directory channel-metadata-directory) - (dependencies channel-metadata-dependencies)) + (directory channel-metadata-directory) ;string with leading slash + (dependencies channel-metadata-dependencies)) ;list of (define (channel-reference channel) "Return the \"reference\" for CHANNEL, an sexp suitable for @@ -129,7 +129,9 @@ (define (read-channel-metadata port) (let ((directory (and=> (assoc-ref properties 'directory) first)) (dependencies (or (assoc-ref properties 'dependencies) '()))) (channel-metadata - directory + (cond ((not directory) "/") + ((string-prefix? "/" directory) directory) + (else (string-append "/" directory))) (map (lambda (item) (let ((get (lambda* (key #:optional default) (or (and=> (assoc-ref item key) first) default)))) @@ -157,29 +159,26 @@ (define (read-channel-metadata port) (define (read-channel-metadata-from-source source) "Return a channel-metadata record read from channel's SOURCE/.guix-channel -description file, or return #F if SOURCE/.guix-channel does not exist." +description file, or return the default channel-metadata record if that file +doesn't exist." (catch 'system-error (lambda () (call-with-input-file (string-append source "/.guix-channel") read-channel-metadata)) (lambda args (if (= ENOENT (system-error-errno args)) - #f + (channel-metadata "/" '()) (apply throw args))))) (define (channel-instance-metadata instance) "Return a channel-metadata record read from the channel INSTANCE's -description file, or return #F if the channel instance does not include the -file." +description file or its default value." (read-channel-metadata-from-source (channel-instance-checkout instance))) (define (channel-instance-dependencies instance) "Return the list of channels that are declared as dependencies for the given channel INSTANCE." - (match (channel-instance-metadata instance) - (#f '()) - (($ directory dependencies) - dependencies))) + (channel-metadata-dependencies (channel-instance-metadata instance))) (define* (latest-channel-instances store channels #:optional (previous-channels '())) "Return a list of channel instances corresponding to the latest checkouts of @@ -261,7 +260,7 @@ (define (standard-module-derivation name source core dependencies) to '%package-module-path'." (let* ((metadata (read-channel-metadata-from-source source)) - (directory (and=> metadata channel-metadata-directory))) + (directory (channel-metadata-directory metadata))) (define build ;; This is code that we'll run in CORE, a Guix instance, with its own @@ -281,9 +280,7 @@ (define scm (string-append #$output "/share/guile/site/" (effective-version))) - (let* ((subdir (if #$directory - (string-append "/" #$directory) - "")) + (let* ((subdir #$directory) (source (string-append #$source subdir))) (compile-files source go (find-files source "\\.scm$")) (mkdir-p (dirname scm)) diff --git a/tests/channels.scm b/tests/channels.scm index 1f1357fca7..e83b5437d3 100644 --- a/tests/channels.scm +++ b/tests/channels.scm @@ -42,9 +42,9 @@ (define* (make-instance #:key (commit "cafebabe") (spec #f)) (define instance-dir (mkdtemp! "/tmp/checkout.XXXXXX")) - (and spec - (with-output-to-file (string-append instance-dir "/.guix-channel") - (lambda _ (format #t "~a" spec)))) + (when spec + (call-with-output-file (string-append instance-dir "/.guix-channel") + (lambda (port) (write spec port)))) (checkout->channel-instance instance-dir #:commit commit #:name name)) @@ -55,12 +55,10 @@ (define instance--unsupported-version '(channel (version 42) (dependencies whatever)))) (define instance--no-deps (make-instance #:spec - '(channel - (version 0) - (dependencies - (channel - (name test-channel) - (url "https://example.com/test-channel")))))) + '(channel (version 0)))) +(define instance--sub-directory + (make-instance #:spec + '(channel (version 0) (directory "modules")))) (define instance--simple (make-instance #:spec '(channel @@ -87,11 +85,26 @@ (define instance--with-dupes (define channel-instance-metadata (@@ (guix channels) channel-instance-metadata)) +(define channel-metadata-directory + (@@ (guix channels) channel-metadata-directory)) +(define channel-metadata-dependencies + (@@ (guix channels) channel-metadata-dependencies)) -(test-equal "channel-instance-metadata returns #f if .guix-channel does not exist" - #f - (channel-instance-metadata instance--boring)) +(test-equal "channel-instance-metadata returns default if .guix-channel does not exist" + '("/" ()) + (let ((metadata (channel-instance-metadata instance--boring))) + (list (channel-metadata-directory metadata) + (channel-metadata-dependencies metadata)))) + +(test-equal "channel-instance-metadata and default dependencies" + '() + (channel-metadata-dependencies (channel-instance-metadata instance--no-deps))) + +(test-equal "channel-instance-metadata and directory" + "/modules" + (channel-metadata-directory + (channel-instance-metadata instance--sub-directory))) (test-equal "channel-instance-metadata rejects unsupported version" 1 ;line number in the generated '.guix-channel' @@ -141,7 +154,7 @@ (define channel-instance-metadata ("test" (values test-dir 'whatever)) (_ (values "/not-important" 'not-important))))) (let ((instances (latest-channel-instances #f (list channel)))) - (and (eq? 2 (length instances)) + (and (= 2 (length instances)) (lset= eq? '(test test-channel) (map (compose channel-name channel-instance-channel) @@ -152,9 +165,9 @@ (define channel-instance-metadata (and (eq? (channel-name (channel-instance-channel instance)) 'test-channel) - (eq? (channel-commit - (channel-instance-channel instance)) - 'abc1234))) + (string=? (channel-commit + (channel-instance-channel instance)) + "abc1234"))) instances)))))) (test-assert "channel-instances->manifest" -- cgit v1.2.3 From dd9560a050ed99952046a2bbd99dc6b331100c63 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 19 Jul 2019 16:33:54 +0200 Subject: gnu: glog: Disable test that fails on non-x86_64 platforms. This was removed in 4678cc46a4c1e0538402d8df6d85d3caedc7f00b, but turned out to still be needed. * gnu/packages/logging.scm (glog)[arguments]: New field. --- gnu/packages/logging.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index 42404636f6..1481f5b5ee 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -75,6 +75,16 @@ (define-public glog "1xd3maiipfbxmhc9rrblc5x52nxvkwxp14npg31y5njqvkvzax9b")) (file-name (git-file-name name version)))) (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'check 'disable-signal-tests + (lambda _ + ;; XXX: This test fails on non x86_64. See e.g. + ;; https://github.com/google/glog/issues/219 and + ;; https://github.com/google/glog/issues/256. + (substitute* "Makefile" + (("\tsignalhandler_unittest_sh") "\t$(EMPTY)")) + #t))))) (native-inputs `(("perl" ,perl) ;for tests ("autoconf" ,autoconf-wrapper) -- cgit v1.2.3 From ddc586ea5c1fd65e29d626c54da1d192c71b6750 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 19 Jul 2019 17:17:35 +0200 Subject: gnu: python-jupyter-client: Patch file name of 'ip'. * gnu/packages/python-xyz.scm (python-jupyter-client)[arguments]: Add #:phases. [inputs]: New field. --- gnu/packages/python-xyz.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 3852f5b1ee..6e90c9a933 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -5122,7 +5122,19 @@ (define-public python-jupyter-client ;; Tests fail because of missing native python kernel which I assume is ;; provided by the ipython package, which we cannot use because it would ;; cause a dependency cycle. - (arguments `(#:tests? #f)) + (arguments + `(#:tests? #f + + #:phases (modify-phases %standard-phases + (add-after 'unpack 'set-tool-file-names + (lambda* (#:key inputs #:allow-other-keys) + (let ((iproute (assoc-ref inputs "iproute"))) + (substitute* "jupyter_client/localinterfaces.py" + (("'ip'") + (string-append "'" iproute "/sbin/ip'"))) + #t)))))) + (inputs + `(("iproute" ,iproute))) (propagated-inputs `(("python-pyzmq" ,python-pyzmq) ("python-traitlets" ,python-traitlets) -- cgit v1.2.3 From a2a94b6e58e5120462d6861bdf72efa2170bfd73 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 19 Jul 2019 23:48:09 +0200 Subject: ui: 'warn-about-load-error' warns about file/module name mismatches. * guix/discovery.scm (scheme-modules): Rename the inner 'file' to 'relative'. Pass FILE as an addition argument to WARN. * guix/ui.scm (warn-about-load-error): Add 'module' argument (actually, what was called 'file' really contained a module name.) Call 'check-module-matches-file' in the catch-all error case. (check-module-matches-file): New procedure. * tests/guix-build.sh: Test it. --- guix/discovery.scm | 6 +++--- guix/ui.scm | 39 +++++++++++++++++++++++++++++++++++---- tests/guix-build.sh | 12 ++++++++++++ 3 files changed, 50 insertions(+), 7 deletions(-) diff --git a/guix/discovery.scm b/guix/discovery.scm index 86f20ec344..468b6c59de 100644 --- a/guix/discovery.scm +++ b/guix/discovery.scm @@ -106,14 +106,14 @@ (define prefix-len (string-length directory)) (filter-map (lambda (file) - (let* ((file (substring file prefix-len)) - (module (file-name->module-name file))) + (let* ((relative (string-drop file prefix-len)) + (module (file-name->module-name relative))) (catch #t (lambda () (resolve-interface module)) (lambda args ;; Report the error, but keep going. - (warn module args) + (warn file module args) #f)))) (scheme-files (if sub-directory (string-append directory "/" sub-directory) diff --git a/guix/ui.scm b/guix/ui.scm index 76f6fc8eed..1812b01272 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -311,6 +311,36 @@ (define* (report-unbound-variable-error args #:key frame) (display-hint (format #f (G_ "Did you forget @code{(use-modules ~a)}?") (module-name module)))))))) +(define (check-module-matches-file module file) + "Check whether FILE starts with 'define-module MODULE' and print a hint if +it doesn't." + ;; This is a common mistake when people start writing their own package + ;; definitions and try loading them with 'guix build -L …', so help them + ;; diagnose the problem. + (define (hint) + (display-hint (format #f (G_ "File @file{~a} should probably start with: + +@example\n(define-module ~a)\n@end example") + file module))) + + (catch 'system-error + (lambda () + (let* ((sexp (call-with-input-file file read)) + (loc (and (pair? sexp) + (source-properties->location (source-properties sexp))))) + (match sexp + (('define-module (names ...) _ ...) + (unless (equal? module names) + (warning loc + (G_ "module name ~a does not match file name '~a'~%") + names (module->source-file-name module)) + (hint))) + ((? eof-object?) + (warning (G_ "~a: file is empty~%") file)) + (else + (hint))))) + (const #f))) + (define* (report-load-error file args #:optional frame) "Report the failure to load FILE, a user-provided Scheme file. ARGS is the list of arguments received by the 'throw' handler." @@ -352,13 +382,13 @@ (define* (report-load-error file args #:optional frame) ;; above and need to be printed with 'print-exception'. (print-exception (current-error-port) frame key args)))))) -(define (warn-about-load-error file args) ;FIXME: factorize with ↑ +(define (warn-about-load-error file module args) ;FIXME: factorize with ↑ "Report the failure to load FILE, a user-provided Scheme file, without exiting. ARGS is the list of arguments received by the 'throw' handler." (match args (('system-error . rest) (let ((err (system-error-errno args))) - (warning (G_ "failed to load '~a': ~a~%") file (strerror err)))) + (warning (G_ "failed to load '~a': ~a~%") module (strerror err)))) (('syntax-error proc message properties form . rest) (let ((loc (source-properties->location properties))) (warning loc (G_ "~a~%") message))) @@ -370,8 +400,9 @@ (define (warn-about-load-error file args) ;FIXME: factorize with ↑ (warning (G_ "failed to load '~a': exception thrown: ~s~%") file obj))) ((error args ...) - (warning (G_ "failed to load '~a':~%") file) - (apply display-error #f (current-error-port) args)))) + (warning (G_ "failed to load '~a':~%") module) + (apply display-error #f (current-error-port) args) + (check-module-matches-file module file)))) (define (call-with-unbound-variable-handling thunk) (define tag diff --git a/tests/guix-build.sh b/tests/guix-build.sh index 63a9fe68da..d16b92d189 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -164,6 +164,17 @@ grep "unbound" "$module_dir/err" # actual error grep "forget.*(gnu packages base)" "$module_dir/err" # hint rm -f "$module_dir"/* +# Wrong 'define-module' clause reported by 'warn-about-load-error'. +cat > "$module_dir/foo.scm" < "$module_dir/err" +grep "does not match file name" "$module_dir/err" + +rm "$module_dir"/* + # Should all return valid log files. drv="`guix build -d -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'`" out="`guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'`" @@ -265,6 +276,7 @@ cat > "$module_dir/gexp.scm"< Date: Sat, 20 Jul 2019 00:33:50 +0200 Subject: ui: 'warn-about-load-error' provides hints for unbound variables. * guix/ui.scm (warn-about-load-error): Add 'unbound-variable' clause. * tests/guix-build.sh: Add test. --- guix/ui.scm | 2 ++ tests/guix-build.sh | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 1812b01272..7920335928 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -392,6 +392,8 @@ (define (warn-about-load-error file module args) ;FIXME: factorize with ↑ (('syntax-error proc message properties form . rest) (let ((loc (source-properties->location properties))) (warning loc (G_ "~a~%") message))) + (('unbound-variable _ ...) + (report-unbound-variable-error args)) (('srfi-34 obj) (if (message-condition? obj) (warning (G_ "failed to load '~a': ~a~%") diff --git a/tests/guix-build.sh b/tests/guix-build.sh index d16b92d189..37666ffd01 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -146,8 +146,8 @@ test `guix build -d --sources=transitive foo \ | wc -l` -eq 3 -# Unbound variables. -cat > "$module_dir/foo.scm"< "$module_dir/foo.scm" < "$module_dir/err" || true grep "unbound" "$module_dir/err" # actual error grep "forget.*(gnu packages base)" "$module_dir/err" # hint + +# Unbound variable at the top level. +cat > "$module_dir/foo.scm" < "$module_dir/err" +grep "unbound" "$module_dir/err" # actual error +grep "forget.*(guix build-system gnu)" "$module_dir/err" # hint + rm -f "$module_dir"/* # Wrong 'define-module' clause reported by 'warn-about-load-error'. -- cgit v1.2.3 From dd3779c276931047928536c34bd0ac162762252b Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Mon, 15 Jul 2019 11:21:24 +0200 Subject: gnu: Add emacs-zerodark-theme. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-zerodark-theme): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 110a053b29..2f04375773 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -49,6 +49,7 @@ ;;; Copyright © 2019 LaFreniere, Joseph ;;; Copyright © 2019 Amar Singh ;;; Copyright © 2019 Baptiste Strazzulla +;;; Copyright © 2019 Giacomo Leidi ;;; ;;; This file is part of GNU Guix. ;;; @@ -16720,3 +16721,29 @@ (define-public emacs-elpher name (with autocompletion), a simple bookmark management system and connections using TLS encryption.") (license license:gpl3+))) + +(define-public emacs-zerodark-theme + (package + (name "emacs-zerodark-theme") + (version "4.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.petton.fr/nico/zerodark-theme.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0nnlxzsmhsbszqigcyxak9i1a0digrd13gv6v18ck4h760mihh1m")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-all-the-icons" ,emacs-all-the-icons))) + (home-page + "https://gitlab.petton.fr/nico/zerodark-theme") + (synopsis + "Dark, medium contrast theme for Emacs") + (description + "Zerodark is a dark theme inspired from One Dark and Niflheim. +An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.") + (license license:gpl3+))) -- cgit v1.2.3 From 571f6e7f4f75a01746a0880c99e0cc33fbafbe2a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 20 Jul 2019 01:04:49 +0200 Subject: lint: Update tests to (guix lint) migration. This is a followup to f363c836e0b4c416dae594af4257459da592b35c. * tests/lint.scm ("cve") ("cve: one vulnerability") ("cve: one patched vulnerability") ("cve: known safe from vulnerability") ("cve: vulnerability fixed in replacement version") ("cve: patched vulnerability in replacement"): Refer to 'package-vulnerabilities' from (guix lint), not (guix scripts lint). --- tests/lint.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/lint.scm b/tests/lint.scm index 59be061a99..5127a84c72 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Cyril Roelandt ;;; Copyright © 2014, 2015, 2016 Eric Bavier -;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Alex Kost @@ -710,12 +710,12 @@ (define single-lint-warning-message (test-equal "cve" '() - (mock ((guix scripts lint) package-vulnerabilities (const '())) + (mock ((guix lint) package-vulnerabilities (const '())) (check-vulnerabilities (dummy-package "x")))) (test-equal "cve: one vulnerability" "probably vulnerable to CVE-2015-1234" - (mock ((guix scripts lint) package-vulnerabilities + (mock ((guix lint) package-vulnerabilities (lambda (package) (list (make-struct (@@ (guix cve) ) 0 "CVE-2015-1234" @@ -726,7 +726,7 @@ (define single-lint-warning-message (test-equal "cve: one patched vulnerability" '() - (mock ((guix scripts lint) package-vulnerabilities + (mock ((guix lint) package-vulnerabilities (lambda (package) (list (make-struct (@@ (guix cve) ) 0 "CVE-2015-1234" @@ -742,7 +742,7 @@ (define single-lint-warning-message (test-equal "cve: known safe from vulnerability" '() - (mock ((guix scripts lint) package-vulnerabilities + (mock ((guix lint) package-vulnerabilities (lambda (package) (list (make-struct (@@ (guix cve) ) 0 "CVE-2015-1234" @@ -755,7 +755,7 @@ (define single-lint-warning-message (test-equal "cve: vulnerability fixed in replacement version" '() - (mock ((guix scripts lint) package-vulnerabilities + (mock ((guix lint) package-vulnerabilities (lambda (package) (match (package-version package) ("0" @@ -772,7 +772,7 @@ (define single-lint-warning-message (test-equal "cve: patched vulnerability in replacement" '() - (mock ((guix scripts lint) package-vulnerabilities + (mock ((guix lint) package-vulnerabilities (lambda (package) (list (make-struct (@@ (guix cve) ) 0 "CVE-2015-1234" -- cgit v1.2.3 From 848ae71ea7131e78a7b728863eac1056c33b2679 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 20 Jul 2019 01:13:46 +0200 Subject: lint: 'source' check no longer complains about unavailable mirrors. Fixes a regression introduced in 50fc2384feb3bb2677d074f8f0deb5ae3c56b4d8. Previously, 'guix lint -c source coreutils' would complain if one of the mirrors was unavailable. This is no longer the case. * guix/lint.scm (check-source)[warnings-for-uris]: Use 'filter-map'. Remove 'append-map' call. Use 'append-map' here so that we can meaningfull compare the length or URIS and that of WARNINGS. Use '=' to compare lengths. --- guix/lint.scm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/guix/lint.scm b/guix/lint.scm index 2542a81a2d..12031c8c6a 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -742,21 +742,21 @@ (define (check-source package) "Emit a warning if PACKAGE has an invalid 'source' field, or if that 'source' is not reachable." (define (warnings-for-uris uris) - (filter lint-warning? - (map - (lambda (uri) - (validate-uri uri package 'source)) - (append-map (cut maybe-expand-mirrors <> %mirrors) - uris)))) + (filter-map (lambda (uri) + (match (validate-uri uri package 'source) + (#t #f) + ((? lint-warning? warning) warning))) + uris)) (let ((origin (package-source package))) (if (and origin (eqv? (origin-method origin) url-fetch)) - (let* ((uris (map string->uri (origin-uris origin))) + (let* ((uris (append-map (cut maybe-expand-mirrors <> %mirrors) + (map string->uri (origin-uris origin)))) (warnings (warnings-for-uris uris))) ;; Just make sure that at least one of the URIs is valid. - (if (eq? (length uris) (length warnings)) + (if (= (length uris) (length warnings)) ;; When everything fails, report all of WARNINGS, otherwise don't ;; report anything. ;; -- cgit v1.2.3 From 99b204281235a2b6a44d949e08bc517188b21e49 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 20 Jul 2019 01:18:11 +0200 Subject: lint: Add test for 'source'. * tests/lint.scm ("source: 404 and 200"): New test. --- tests/lint.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/lint.scm b/tests/lint.scm index 5127a84c72..8a9023a7a3 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -618,6 +618,23 @@ (define single-lint-warning-message (and (? lint-warning?) second-warning)) (lint-warning-message second-warning)))))) +(test-skip (if (http-server-can-listen?) 0 1)) +(test-equal "source: 404 and 200" + '() + (with-http-server 404 %long-string + (let ((bad-url (%local-url))) + (parameterize ((%http-server-port (+ 1 (%http-server-port)))) + (with-http-server 200 %long-string + (let ((pkg (package + (inherit (dummy-package "x")) + (source (origin + (method url-fetch) + (uri (list bad-url (%local-url))) + (sha256 %null-sha256)))))) + ;; Since one of the two URLs is good, this should return the empty + ;; list. + (check-source pkg))))))) + (test-skip (if (http-server-can-listen?) 0 1)) (test-equal "source: 301 -> 200" "permanent redirect from http://localhost:10000/foo/bar to http://localhost:9999/foo/bar" -- cgit v1.2.3 From 6dc28adf7285a170798a79a2f4ce3c35c1c611c2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 20 Jul 2019 01:18:38 +0200 Subject: lint: Remove unused imports. * guix/lint.scm: Remove now unused (gnu packages) and (guix monads) imports. --- guix/lint.scm | 2 -- 1 file changed, 2 deletions(-) diff --git a/guix/lint.scm b/guix/lint.scm index 12031c8c6a..1d097b1682 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -43,9 +43,7 @@ (define-module (guix lint) #:use-module (guix scripts) #:use-module ((guix ui) #:select (texi->plain-text fill-paragraph)) #:use-module (guix gnu-maintenance) - #:use-module (guix monads) #:use-module (guix cve) - #:use-module (gnu packages) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (ice-9 format) -- cgit v1.2.3 From 674b9df37da90ec6536e0ea7a5ab36785b732ae5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 20 Jul 2019 01:30:29 +0200 Subject: lint: source: Stop as soon as a valid URL is found. This restores the behavior of 'guix lint' prior to commit 50fc2384feb3bb2677d074f8f0deb5ae3c56b4d8. * guix/lint.scm (check-source)[warnings-for-uris]: Rewrite to stop as soon as one of URIS is valid. --- guix/lint.scm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/guix/lint.scm b/guix/lint.scm index 1d097b1682..7a2bf5a347 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -740,11 +740,18 @@ (define (check-source package) "Emit a warning if PACKAGE has an invalid 'source' field, or if that 'source' is not reachable." (define (warnings-for-uris uris) - (filter-map (lambda (uri) - (match (validate-uri uri package 'source) - (#t #f) - ((? lint-warning? warning) warning))) - uris)) + (let loop ((uris uris) + (warnings '())) + (match uris + (() + (reverse warnings)) + ((uri rest ...) + (match (validate-uri uri package 'source) + (#t + ;; We found a working URL, so stop right away. + '()) + ((? lint-warning? warning) + (loop rest (cons warning warnings)))))))) (let ((origin (package-source package))) (if (and origin -- cgit v1.2.3 From 3d33c93cef67d88bdc9409959f3c1f3857af09cf Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 20 Jul 2019 01:31:38 +0200 Subject: lint: Use the 'warning' procedure for messages. * guix/scripts/lint.scm (emit-warnings): Use 'warning' instead of 'format'. --- guix/scripts/lint.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 98ee469501..ee1c826d2e 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -46,10 +46,9 @@ (define (emit-warnings warnings) (lambda (lint-warning) (let ((package (lint-warning-package lint-warning)) (loc (lint-warning-location lint-warning))) - (format (guix-warning-port) "~a: ~a@~a: ~a~%" - (location->string loc) - (package-name package) (package-version package) - (lint-warning-message lint-warning)))) + (warning loc (G_ "~a@~a: ~a~%") + (package-name package) (package-version package) + (lint-warning-message lint-warning)))) warnings)) (define (run-checkers package checkers) -- cgit v1.2.3 From f26f2e757ff206a24bc2a0b49f9bb1c292a0971a Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 20 Jun 2019 07:55:34 +0200 Subject: gnu: Add ghc-validity. * gnu/packages/haskell.scm (ghc-validity): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a30b4376eb..19cd39e690 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11563,6 +11563,32 @@ (define-public ghc-base-unicode-symbols ∀ instead of @code{forall} and many others.") (license license:bsd-3))) +(define-public ghc-validity + (package + (name "ghc-validity") + (version "0.7.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/validity/validity-" + version + ".tar.gz")) + (sha256 + (base32 + "0xribw98amafihw87ddajk6vlirp7w9b26lrnjgq7jfm4710j95f")))) + (build-system haskell-build-system) + (native-inputs `(("ghc-hspec" ,ghc-hspec) + ("hspec-discover" ,hspec-discover))) + (home-page + "https://github.com/NorfairKing/validity") + (synopsis "Validity typeclass") + (description + "Values of custom types usually have invariants imposed upon them. This +package provides the @code{Validity} type class, which makes these invariants +explicit by providing a function to check whether the invariants hold.") + (license license:expat))) + (define-public ghc-stylish-haskell (package (name "ghc-stylish-haskell") -- cgit v1.2.3 From 522b61ab80ae9fd7696b452c99a16b5b026e8072 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 20 Jun 2019 07:56:04 +0200 Subject: gnu: Add ghc-genvalidity. * gnu/packages/haskell.scm (ghc-genvalidity): New variable. --- gnu/packages/haskell.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 19cd39e690..a9b0dd71ca 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11563,6 +11563,37 @@ (define-public ghc-base-unicode-symbols ∀ instead of @code{forall} and many others.") (license license:bsd-3))) +(define-public ghc-genvalidity + (package + (name "ghc-genvalidity") + (version "0.5.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/genvalidity/genvalidity-" + version + ".tar.gz")) + (sha256 + (base32 + "17ykq38j9a2lzir6dqz5jgy6ndaafrpkhqhcg96c5ppg7wcxaaj0")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-validity" ,ghc-validity))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("hspec-discover" ,hspec-discover) + ("ghc-hspec-core" ,ghc-hspec-core))) + (home-page + "https://github.com/NorfairKing/validity") + (synopsis + "Testing utilities for the @code{validity} library") + (description + "This package provides testing utilities that are useful in conjunction +with the @code{Validity} typeclass.") + (license license:expat))) + (define-public ghc-validity (package (name "ghc-validity") -- cgit v1.2.3 From 51c8370385173c1055595c2721b1e70137e7dbd7 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 20 Jun 2019 07:56:21 +0200 Subject: gnu: Add ghc-genvalidity-property. * gnu/packages/haskell.scm (ghc-genvalidity-property): New variable. --- gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a9b0dd71ca..e2a7f20697 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11594,6 +11594,38 @@ (define-public ghc-genvalidity with the @code{Validity} typeclass.") (license license:expat))) +(define-public ghc-genvalidity-property + (package + (name "ghc-genvalidity-property") + (version "0.2.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/" + "genvalidity-property/genvalidity-property-" + version + ".tar.gz")) + (sha256 + (base32 + "0cjw5i2pydidda9bnp6x37ylhxdk9g874x5sadr6sscg5kq85a1b")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-genvalidity" ,ghc-genvalidity) + ("ghc-hspec" ,ghc-hspec) + ("hspec-discover" ,hspec-discover) + ("ghc-validity" ,ghc-validity))) + (native-inputs `(("ghc-doctest" ,ghc-doctest))) + (home-page + "https://github.com/NorfairKing/validity") + (synopsis + "Standard properties for functions on @code{Validity} types") + (description + "This package supplements the @code{Validity} typeclass with standard +properties for functions operating on them.") + (license license:expat))) + (define-public ghc-validity (package (name "ghc-validity") -- cgit v1.2.3 From efc55bf6f3d2984dba00fbfa6f10a3e8f9e44146 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 20 Jun 2019 07:56:47 +0200 Subject: gnu: Add ghc-path. * gnu/packages/haskell.scm (ghc-path): New variable. --- gnu/packages/haskell.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e2a7f20697..9bbf0878c6 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11652,6 +11652,45 @@ (define-public ghc-validity explicit by providing a function to check whether the invariants hold.") (license license:expat))) +(define-public ghc-path + (package + (name "ghc-path") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/path/path-" + version + ".tar.gz")) + (sha256 + (base32 + "0nayla4k1gb821k8y5b9miflv1bi8f0czf9rqr044nrr2dddi2sb")))) + (build-system haskell-build-system) + (arguments + ;; TODO: There are some Windows-related tests and modules that need to be + ;; danced around. + `(#:tests? #f + #:cabal-revision + ("1" "05b1zwx2a893h4h5wvgpc5g5pyx71hfmx409rqisd8s1bq1hn463"))) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-hashable" ,ghc-hashable))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-genvalidity" ,ghc-genvalidity) + ("ghc-genvalidity-property" ,ghc-genvalidity-property) + ("ghc-hspec" ,ghc-hspec) + ("ghc-validity" ,ghc-validity))) + (home-page + "http://hackage.haskell.org/package/path") + (synopsis "Support for well-typed paths") + (description "This package introduces a type for paths upholding useful +invariants.") + (license license:bsd-3))) + (define-public ghc-stylish-haskell (package (name "ghc-stylish-haskell") -- cgit v1.2.3 From ca20ee07b2ef05f37fc870c29439b3c980669ac4 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 20 Jun 2019 07:57:01 +0200 Subject: gnu: Add ghc-path-io. * gnu/packages/haskell.scm (ghc-path-io): New variable. --- gnu/packages/haskell.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9bbf0878c6..2aaa0585dd 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11691,6 +11691,42 @@ (define-public ghc-path invariants.") (license license:bsd-3))) +(define-public ghc-path-io + (package + (name "ghc-path-io") + (version "1.3.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/path-io/path-io-" + version + ".tar.gz")) + (sha256 + (base32 + "1g9m3qliqjk1img894wsb89diym5zrq51qkkrwhz4sbm9a8hbv1a")))) + (build-system haskell-build-system) + (inputs + `(("ghc-dlist" ,ghc-dlist) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-path" ,ghc-path) + ("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-temporary" ,ghc-temporary))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec))) + (arguments + `(#:cabal-revision + ("3" "1h9hsibbflkxpjl2fqamqiv3x3gasf51apnmklrs9l9x8r32hzcc"))) + (home-page + "https://github.com/mrkkrp/path-io") + (synopsis "Functions for manipulating well-typed paths") + (description "This package provides an interface to the @code{directory} +package for users of @code{path}. It also implements some missing stuff like +recursive scanning and copying of directories, working with temporary +files/directories, and more.") + (license license:bsd-3))) + (define-public ghc-stylish-haskell (package (name "ghc-stylish-haskell") -- cgit v1.2.3 From a60056b5d309c76c0d88a962f106a158c1b38914 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 21 Jun 2019 03:44:27 +0200 Subject: gnu: Add ghc-descriptive. * gnu/packages/haskell.scm (ghc-descriptive): New variable. --- gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2aaa0585dd..fe860fb81f 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11727,6 +11727,38 @@ (define-public ghc-path-io files/directories, and more.") (license license:bsd-3))) +(define-public ghc-descriptive + (package + (name "ghc-descriptive") + (version "0.9.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/descriptive/descriptive-" + version + ".tar.gz")) + (sha256 + (base32 + "0y5693zm2kvqjilybbmrcv1g6n6x2p6zjgi0k0axjw1sdhh1g237")))) + (build-system haskell-build-system) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-bifunctors" ,ghc-bifunctors) + ("ghc-scientific" ,ghc-scientific) + ("ghc-vector" ,ghc-vector))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec))) + (home-page + "https://github.com/chrisdone/descriptive") + (synopsis + "Self-describing consumers/parsers: forms, cmd-line args, JSON, etc.") + (description + "This package provides datatypes and functions for creating consumers +and parsers with useful semantics.") + (license license:bsd-3))) + (define-public ghc-stylish-haskell (package (name "ghc-stylish-haskell") -- cgit v1.2.3 From 697cae2a67ae65ed7e14bf3cdf1e76d4c7579639 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 21 Jun 2019 03:44:39 +0200 Subject: gnu: Add ghc-exactprint. * gnu/packages/haskell.scm (ghc-exactprint): New variable. --- gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index fe860fb81f..c7056a262a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11759,6 +11759,38 @@ (define-public ghc-descriptive and parsers with useful semantics.") (license license:bsd-3))) +(define-public ghc-exactprint + (package + (name "ghc-exactprint") + (version "0.5.6.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/" + "ghc-exactprint/ghc-exactprint-" version ".tar.gz")) + (sha256 + (base32 + "141k6qiys0m0r4br7ikp4i546vs3xcil9cwglzcdfcbnb5nj1z87")))) + (build-system haskell-build-system) + (inputs + `(("ghc-paths" ,ghc-paths) + ("ghc-syb" ,ghc-syb) + ("ghc-free" ,ghc-free))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-diff" ,ghc-diff) + ("ghc-silently" ,ghc-silently) + ("ghc-filemanip" ,ghc-filemanip))) + (home-page + "http://hackage.haskell.org/package/ghc-exactprint") + (synopsis "ExactPrint for GHC") + (description + "Using the API Annotations available from GHC 7.10.2, this library +provides a means to round-trip any code that can be compiled by GHC, currently +excluding @file{.lhs} files.") + (license license:bsd-3))) + (define-public ghc-stylish-haskell (package (name "ghc-stylish-haskell") -- cgit v1.2.3 From 64b7c06e188c7d5a05a5d726eba0cf46698cb78e Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 22 Jun 2019 23:47:32 +0200 Subject: gnu: Add ghc-hindent. * gnu/packages/haskell.scm (ghc-hindent): New variable. --- gnu/packages/haskell.scm | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c7056a262a..2e845d0e93 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -42,6 +42,7 @@ (define-module (gnu packages haskell) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages elf) + #:use-module (gnu packages emacs) #:use-module (gnu packages gcc) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) @@ -11727,6 +11728,65 @@ (define-public ghc-path-io files/directories, and more.") (license license:bsd-3))) +(define-public ghc-hindent + (package + (name "ghc-hindent") + (version "5.3.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/hindent/hindent-" + version + ".tar.gz")) + (sha256 + (base32 + "0wkfik7mvqskk23kyh7ybgnlh3j9j1ym7d3ncahsbli9w654b7xg")))) + (build-system haskell-build-system) + (arguments + `(#:modules ((guix build haskell-build-system) + (guix build utils) + (guix build emacs-utils)) + #:imported-modules (,@%haskell-build-system-modules + (guix build emacs-utils)) + #:phases + (modify-phases %standard-phases + (add-after 'install 'emacs-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (elisp-file "elisp/hindent.el") + (dest (string-append out "/share/emacs/site-lisp" + "/guix.d/hindent-" ,version)) + (emacs (string-append (assoc-ref inputs "emacs") + "/bin/emacs"))) + (make-file-writable elisp-file) + (emacs-substitute-variables elisp-file + ("hindent-process-path" + (string-append out "/bin/hindent"))) + (install-file elisp-file dest) + (emacs-generate-autoloads "hindent" dest))))))) + (inputs + `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts) + ("ghc-monad-loops" ,ghc-monad-loops) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-yaml" ,ghc-yaml) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-path" ,ghc-path) + ("ghc-path-io" ,ghc-path-io) + ("ghc-optparse-applicative" ,ghc-optparse-applicative))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-diff" ,ghc-diff) + ("emacs" ,emacs-minimal))) + (home-page + "https://github.com/commercialhaskell/hindent") + (synopsis "Extensible Haskell pretty printer") + (description + "This package provides automatic formatting for Haskell files. Both a +library and an executable.") + (license license:bsd-3))) + (define-public ghc-descriptive (package (name "ghc-descriptive") -- cgit v1.2.3 From ef803cb520f73bf51fa653064e8310b4723f8447 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 18 Jul 2019 07:22:18 +0200 Subject: gnu: Add ghc-microlens-mtl. * gnu/packages/haskell.scm (ghc-microlens-mtl): New variable. --- gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2e845d0e93..d86173f697 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11851,6 +11851,35 @@ (define-public ghc-exactprint excluding @file{.lhs} files.") (license license:bsd-3))) +(define-public ghc-microlens-mtl + (package + (name "ghc-microlens-mtl") + (version "0.1.11.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/microlens-mtl/microlens-mtl-" + version + ".tar.gz")) + (sha256 + (base32 + "0l6z1gkzwcpv89bxf5vgfrjb6gq2pj7sjjc53nvi5b9alx34zryk")))) + (build-system haskell-build-system) + (inputs + `(("ghc-microlens" ,ghc-microlens) + ("ghc-transformers-compat" ,ghc-transformers-compat))) + (home-page "https://github.com/monadfix/microlens") + (synopsis + "@code{microlens} support for Reader/Writer/State from mtl") + (description + "This package contains functions (like @code{view} or @code{+=}) which +work on @code{MonadReader}, @code{MonadWriter}, and @code{MonadState} from the +mtl package. This package is a part of the +@uref{http://hackage.haskell.org/package/microlens, microlens} family; see the +readme @uref{https://github.com/aelve/microlens#readme, on Github}.") + (license license:bsd-3))) + (define-public ghc-stylish-haskell (package (name "ghc-stylish-haskell") -- cgit v1.2.3 From 38dd4c1da55f7047d9307348c845a1677c3b51d4 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 18 Jul 2019 07:22:31 +0200 Subject: gnu: Add ghc-microlens-ghc. * gnu/packages/haskell.scm (ghc-microlens-ghc): New variable. --- gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index d86173f697..a532f1595d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11880,6 +11880,32 @@ (define-public ghc-microlens-mtl readme @uref{https://github.com/aelve/microlens#readme, on Github}.") (license license:bsd-3))) +(define-public ghc-microlens-ghc + (package + (name "ghc-microlens-ghc") + (version "0.4.9.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/microlens-ghc/microlens-ghc-" + version + ".tar.gz")) + (sha256 + (base32 + "03iwgg8zww9irv59l70c8yy7vzxir1zf66y12210xk91k5hq6jrj")))) + (build-system haskell-build-system) + (inputs `(("ghc-microlens" ,ghc-microlens))) + (home-page "https://github.com/monadfix/microlens") + (synopsis "Use @code{microlens} with GHC libraries like @code{array}") + (description "This library provides everything that @code{microlens} +provides plus instances to make @code{each}, @code{at}, and @code{ix} +usable with arrays, @code{ByteString}, and containers. This package is +a part of the @uref{http://hackage.haskell.org/package/microlens, +microlens} family; see the readme +@uref{https://github.com/aelve/microlens#readme, on Github}.") + (license license:bsd-3))) + (define-public ghc-stylish-haskell (package (name "ghc-stylish-haskell") -- cgit v1.2.3 From 37850fb9a0989d80c6e7375dd323b779cb619c16 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 18 Jul 2019 07:22:47 +0200 Subject: gnu: Add ghc-microlens-platform. * gnu/packages/haskell.scm (ghc-microlens-platform): New variable. --- gnu/packages/haskell.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a532f1595d..1087461dac 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11906,6 +11906,49 @@ (define-public ghc-microlens-ghc @uref{https://github.com/aelve/microlens#readme, on Github}.") (license license:bsd-3))) +(define-public ghc-microlens-platform + (package + (name "ghc-microlens-platform") + (version "0.3.10") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/" + "microlens-platform/microlens-platform-" version ".tar.gz")) + (sha256 + (base32 + "1d4nhmgf9jq0ixc7qhwm7aaw3xdr0nalw58d0ydsydgf02cyazwv")))) + (build-system haskell-build-system) + (inputs + `(("ghc-hashable" ,ghc-hashable) + ("ghc-microlens" ,ghc-microlens) + ("ghc-microlens-ghc" ,ghc-microlens-ghc) + ("ghc-microlens-mtl" ,ghc-microlens-mtl) + ("ghc-microlens-th" ,ghc-microlens-th) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-vector" ,ghc-vector))) + (home-page "https://github.com/monadfix/microlens") + (synopsis "Feature-complete microlens") + (description + "This package exports a module which is the recommended starting point +for using @uref{http://hackage.haskell.org/package/microlens, microlens} if +you aren't trying to keep your dependencies minimal. By importing +@code{Lens.Micro.Platform} you get all functions and instances from +@uref{http://hackage.haskell.org/package/microlens, microlens}, +@uref{http://hackage.haskell.org/package/microlens-th, microlens-th}, +@uref{http://hackage.haskell.org/package/microlens-mtl, microlens-mtl}, +@uref{http://hackage.haskell.org/package/microlens-ghc, microlens-ghc}, as +well as instances for @code{Vector}, @code{Text}, and @code{HashMap}. The +minor and major versions of @code{microlens-platform} are incremented whenever +the minor and major versions of any other @code{microlens} package are +incremented, so you can depend on the exact version of +@code{microlens-platform} without specifying the version of @code{microlens} +you need. This package is a part of the +@uref{http://hackage.haskell.org/package/microlens, microlens} family; see the +readme @uref{https://github.com/aelve/microlens#readme, on Github}.") + (license license:bsd-3))) + (define-public ghc-stylish-haskell (package (name "ghc-stylish-haskell") -- cgit v1.2.3 From 14e0ae7ff7c30963ec02990f320cc8b15306e847 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 18 Jul 2019 07:23:02 +0200 Subject: gnu: Add ghc-hasktags. * gnu/packages/haskell.scm (ghc-hasktags): New variable. --- gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 1087461dac..bced44579d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -11949,6 +11949,36 @@ (define-public ghc-microlens-platform readme @uref{https://github.com/aelve/microlens#readme, on Github}.") (license license:bsd-3))) +(define-public ghc-hasktags + (package + (name "ghc-hasktags") + (version "0.71.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/hasktags/hasktags-" + version + ".tar.gz")) + (sha256 + (base32 + "1s2k9qrgy1jily96img2pmn7g35mwnnfiw6si3aw32jfhg5zsh1c")))) + (build-system haskell-build-system) + (inputs + `(("ghc-system-filepath" ,ghc-system-filepath) + ("ghc-optparse-applicative" ,ghc-optparse-applicative))) + (native-inputs + `(("ghc-json" ,ghc-json) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-microlens-platform" ,ghc-microlens-platform) + ("ghc-hunit" ,ghc-hunit))) + (home-page "http://github.com/MarcWeber/hasktags") + (synopsis "Make @code{Ctags} and @code{Etags} files for Haskell programs") + (description + "This package provides a means of generating tag files for Emacs and +Vim.") + (license license:bsd-3))) + (define-public ghc-stylish-haskell (package (name "ghc-stylish-haskell") -- cgit v1.2.3 From e6df9c7e85ea48765c152b27c88ba30c50c92bb2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 21 Jul 2019 08:45:30 +0300 Subject: gnu: qtwebkit: Update to 5.212.0-alpha3. * gnu/packages/qt.scm (qtwebkit): Update to 5.212.0-alpha3. --- 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 afc4d8dc06..daef46faf6 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -2144,7 +2144,7 @@ (define-public qwt (define-public qtwebkit (package (name "qtwebkit") - (version "5.212.0-alpha2") + (version "5.212.0-alpha3") (source (origin (method url-fetch) @@ -2152,7 +2152,7 @@ (define-public qtwebkit name "-" version "/" name "-" version ".tar.xz")) (sha256 (base32 - "12lg7w00d8wsj672s1y5z5gm0xdcgs16nas0b5bgq4byavg03ygq")) + "05syvwi3jw9abwsc93rmjkna0vyh6bkfrsqhwir48ms54icfwzim")) (patches (search-patches "qtwebkit-pbutils-include.patch")))) (build-system cmake-build-system) (native-inputs -- cgit v1.2.3 From a18a27be9f6f6f43cc5909d55712058031de4831 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 20 Jul 2019 22:39:33 +0800 Subject: gnu: Add python-gdal. For , thank to Arne Babenhauserheide for the original patch. * gnu/packages/geo.scm (python-gdal): New package. --- gnu/packages/geo.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index e4b6a262c7..8005c46129 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -604,6 +604,25 @@ (define-public gdal ;; frmts/mrf/libLERC license:asl2.0)))) +(define-public python-gdal + (package (inherit gdal) + (name "python-gdal") + (build-system python-build-system) + (arguments + '(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (add-before 'build 'chdir + (lambda _ + (chdir "swig/python") + #t))))) + (native-inputs '()) + (propagated-inputs + `(("python-numpy" ,python-numpy))) + (inputs + `(("gdal" ,gdal))) + (synopsis "GDAL (Geospatial Data Abstraction Library) python bindings"))) + (define-public postgis (package (name "postgis") -- cgit v1.2.3 From 3aec5263a3a718e9987910defbd19e1e8b30c2dc Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 20 Jul 2019 22:35:50 +0200 Subject: gnu: emacs-ivy: Update to 0.12.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-ivy): Update to 0.12.0. Signed-off-by: 宋文武 --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 2f04375773..a808749444 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4578,7 +4578,7 @@ (define-public emacs-hydra (define-public emacs-ivy (package (name "emacs-ivy") - (version "0.11.0") + (version "0.12.0") (source (origin (method git-fetch) @@ -4588,7 +4588,7 @@ (define-public emacs-ivy (file-name (git-file-name name version)) (sha256 (base32 - "009n8zjycs62cv4i1k9adbb284wz2w3r13xki2740sj34k683v13")))) + "0xgngn3jhmyn6mlkk9kmgfgh0w5i50b27syr4cgfgarg6p77j05w")))) (build-system emacs-build-system) (arguments `(#:phases -- cgit v1.2.3 From 2f4698d7d1b8baed51f313d2250809232d801db5 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 21 Jul 2019 11:12:36 -0400 Subject: gnu: Add darkice. * gnu/packages/audio.scm (darkice): New variable. * gnu/packages/patches/darkice-workaround-fpermissive-error.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/audio.scm | 33 ++++++++++++ .../darkice-workaround-fpermissive-error.patch | 62 ++++++++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 gnu/packages/patches/darkice-workaround-fpermissive-error.patch diff --git a/gnu/local.mk b/gnu/local.mk index c2b6f149a8..eb3b0dcd3b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -748,6 +748,7 @@ dist_patch_DATA = \ %D%/packages/patches/cube-nocheck.patch \ %D%/packages/patches/cursynth-wave-rand.patch \ %D%/packages/patches/cvs-CVE-2017-12836.patch \ + %D%/packages/patches/darkice-workaround-fpermissive-error.patch \ %D%/packages/patches/dbus-helper-search-path.patch \ %D%/packages/patches/dbus-CVE-2019-12749.patch \ %D%/packages/patches/dealii-mpi-deprecations.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 3c5b6307eb..c6c42f66c6 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -3751,3 +3751,36 @@ (define-public gnaural different audio formats. Gnaural can also be linked over the internet with other Gnaural instances, allowing synchronous sessions between many users.") (license license:gpl2+))) + +(define-public darkice + (package + (name "darkice") + (version "1.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/darkice/darkice/" + version "/darkice-" version ".tar.gz")) + (sha256 + (base32 "1rlxds7ssq7nk2in4s46xws7xy9ylxsqgcz85hxjgh17lsm0y39c")) + (patches + (search-patches "darkice-workaround-fpermissive-error.patch")))) + (build-system gnu-build-system) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("lame" ,lame) + ("libvorbis" ,libvorbis) + ("opus" ,opus) + ("twolame" ,twolame) + ("alsa-lib" ,alsa-lib) + ("pulseaudio" ,pulseaudio) + ("jack" ,jack-1) + ("libsamplerate" ,libsamplerate))) + (arguments + `(#:configure-flags + (list (string-append "--with-lame-prefix=" + (assoc-ref %build-inputs "lame"))))) + (home-page "http://www.darkice.org/") + (synopsis "Live audio streamer") + (description "DarkIce is a live audio streamer. It takes audio input from +a sound card, encodes it into Ogg Vorbis and/or mp3, and sends the audio +stream to one or more IceCast and/or ShoutCast servers.") + (license license:gpl3+))) diff --git a/gnu/packages/patches/darkice-workaround-fpermissive-error.patch b/gnu/packages/patches/darkice-workaround-fpermissive-error.patch new file mode 100644 index 0000000000..5ee29147c2 --- /dev/null +++ b/gnu/packages/patches/darkice-workaround-fpermissive-error.patch @@ -0,0 +1,62 @@ +Copied from Debian: + + +From 1e2eb18d349f205c70cb2836232825442359b6e3 Mon Sep 17 00:00:00 2001 +From: belette +Date: Wed, 26 Oct 2016 02:43:43 +0200 +Subject: Cast float* in SRC lib calls to delete fpermissive compilation error + +--- + darkice/trunk/src/FaacEncoder.cpp | 2 +- + darkice/trunk/src/OpusLibEncoder.cpp | 2 +- + darkice/trunk/src/VorbisLibEncoder.cpp | 2 +- + darkice/trunk/src/aacPlusEncoder.cpp | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +--- a/src/FaacEncoder.cpp ++++ b/src/FaacEncoder.cpp +@@ -164,7 +164,7 @@ FaacEncoder :: write ( const void * buf, + if ( converter ) { + unsigned int converted; + #ifdef HAVE_SRC_LIB +- src_short_to_float_array ((short *) b, converterData.data_in, samples); ++ src_short_to_float_array ((short *) b, (float *) converterData.data_in, samples); + converterData.input_frames = nSamples; + converterData.data_out = resampledOffset + (resampledOffsetSize * channels); + int srcError = src_process (converter, &converterData); +--- a/src/OpusLibEncoder.cpp ++++ b/src/OpusLibEncoder.cpp +@@ -403,7 +403,7 @@ OpusLibEncoder :: write ( const void * buf, + #ifdef HAVE_SRC_LIB + (void)inCount; + converterData.input_frames = processed; +- src_short_to_float_array (shortBuffer, converterData.data_in, totalSamples); ++ src_short_to_float_array (shortBuffer, (float *) converterData.data_in, totalSamples); + int srcError = src_process (converter, &converterData); + if (srcError) + throw Exception (__FILE__, __LINE__, "libsamplerate error: ", src_strerror (srcError)); +--- a/src/VorbisLibEncoder.cpp ++++ b/src/VorbisLibEncoder.cpp +@@ -337,7 +337,7 @@ VorbisLibEncoder :: write ( const void * buf, + int converted; + #ifdef HAVE_SRC_LIB + converterData.input_frames = nSamples; +- src_short_to_float_array (shortBuffer, converterData.data_in, totalSamples); ++ src_short_to_float_array (shortBuffer, (float *) converterData.data_in, totalSamples); + int srcError = src_process (converter, &converterData); + if (srcError) + throw Exception (__FILE__, __LINE__, "libsamplerate error: ", src_strerror (srcError)); +--- a/src/aacPlusEncoder.cpp ++++ b/src/aacPlusEncoder.cpp +@@ -155,7 +155,7 @@ aacPlusEncoder :: write ( const void * buf, + if ( converter ) { + unsigned int converted; + #ifdef HAVE_SRC_LIB +- src_short_to_float_array ((short *) b, converterData.data_in, samples); ++ src_short_to_float_array ((short *) b, (float *) converterData.data_in, samples); + converterData.input_frames = nSamples; + converterData.data_out = resampledOffset + (resampledOffsetSize * channels); + int srcError = src_process (converter, &converterData); +-- +2.11.0 + -- cgit v1.2.3 From 1ad9c105c208caa9059924cbfbe4759c8101f6c9 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 21 Jul 2019 08:41:43 -0400 Subject: gnu: linux-libre: Deblob the linux-libre source tarball ourselves. * gnu/packages/linux.scm (linux-libre-deblob-scripts, deblob-scripts-5.2) (deblob-scripts-4.19, deblob-scripts-4.14, deblob-scripts-4.9) (deblob-scripts-4.4, computed-origin-method, %upstream-linux-source) (source-with-patches, make-linux-libre-source, linux-libre-5.2-version) (linux-libre-5.2-pristine-source, linux-libre-5.2-source) (linux-libre-4.19-pristine-source, linux-libre-4.19-source) (linux-libre-4.14-pristine-source, linux-libre-4.14-source) (linux-libre-4.9-pristine-source, linux-libre-4.9-source) (linux-libre-4.4-pristine-source, linux-libre-4.4-source) (linux-libre-pristine-source, linux-libre-source) (linux-libre-headers-4.9, linux-libre-headers-4.4) (make-linux-libre-headers*, make-linux-libre*): New variables. (%linux-libre-version): Rename to ... (linux-libre-version): ... this, and make it equal to linux-libre-5.2-version. (%linux-libre-4.19-version, %linux-libre-4.14-version) (%linux-libre-4.9-version, %linux-libre-4.4-version): Rename to ... (linux-libre-4.19-version, linux-libre-4.14-version) (linux-libre-4.9-version, linux-libre-4.4-version): ... these. (%linux-libre-4.19-hash, %linux-libre-4.19-patches) (%linux-libre-4.14-hash, %linux-libre-4.14-patches) (%linux-libre-hash, %linux-libre-5.2-patches): Remove variables. (make-linux-libre-headers, make-linux-libre): Reformulate in terms of make-linux-libre-headers* and make-linux-libre*, respectively. (linux-libre-5.2, linux-libre-4.19, linux-libre-4.14, linux-libre-4.9) (linux-libre-4.4, linux-libre-arm-veyron, linux-libre-arm-generic) (linux-libre-arm-generic-4.19, linux-libre-arm-generic-4.14) (linux-libre-arm-omap2plus, linux-libre-arm-omap2plus-4.19) (linux-libre-arm-omap2plus-4.14): Adapt and use make-linux-libre*. (linux-libre-headers-5.2, linux-libre-headers-4.19) (linux-libre-headers-4.14): Adapt and use make-linux-libre-headers*. --- gnu/packages/linux.scm | 548 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 415 insertions(+), 133 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8ffa18a312..8911ec19d5 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -127,6 +127,9 @@ (define-module (gnu packages linux) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) + #:use-module (guix gexp) + #:use-module (guix store) + #:use-module (guix monads) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (srfi srfi-2) @@ -155,6 +158,174 @@ (define-public (system->defconfig system) ((string-prefix? "powerpc64le-" system) "ppc64_defconfig") (else "defconfig"))) + +;;; +;;; Kernel source code deblobbing. +;;; + +(define (linux-libre-deblob-scripts version + deblob-hash + deblob-check-hash) + (list (version-major+minor version) + (origin + (method url-fetch) + (uri (string-append "https://linux-libre.fsfla.org" + "/pub/linux-libre/releases/" version "-gnu/" + "deblob-" (version-major+minor version))) + (sha256 deblob-hash)) + (origin + (method url-fetch) + (uri (string-append "https://linux-libre.fsfla.org" + "/pub/linux-libre/releases/" version "-gnu/" + "deblob-check")) + (sha256 deblob-check-hash)))) + +(define deblob-scripts-5.2 + (linux-libre-deblob-scripts + "5.2.1" + (base32 "076fwxlm6jq6z4vg1xq3kr474zz7qk71r90sf9dnfia3rw2pb4fa") + (base32 "030cccchli7vnzvxcw261spyzsgnq0m113bjsz8y4vglf6gaz4n9"))) + +(define deblob-scripts-4.19 + (linux-libre-deblob-scripts + "4.19.59" + (base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy") + (base32 "07z1bsyny8lldncfh27lb16mgx9r38nswx4vmd24c7n4xva12k2s"))) + +(define deblob-scripts-4.14 + (linux-libre-deblob-scripts + "4.14.133" + (base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6") + (base32 "0x9nd3hnyrm753cbgdqmy92mbnyw86w64g4hvyibnkpq5n7s3z9n"))) + +(define deblob-scripts-4.9 + (linux-libre-deblob-scripts + "4.9.185" + (base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg") + (base32 "1gmjn5cwxydg6qb47wcmahwkv37npsjx4papynzkkdxyidmrccya"))) + +(define deblob-scripts-4.4 + (linux-libre-deblob-scripts + "4.4.185" + (base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw") + (base32 "1x40lbiaizksy8z38ax7wpqr9ldgq7qvkxbb0ca98vd1axpklb10"))) + +(define* (computed-origin-method gexp-promise hash-algo hash + #:optional (name "source") + #:key (system (%current-system)) + (guile (default-guile))) + "Return a derivation that executes the G-expression that results +from forcing GEXP-PROMISE." + (mlet %store-monad ((guile (package->derivation guile system))) + (gexp->derivation (or name "computed-origin") + (force gexp-promise) + #:graft? #f ;nothing to graft + #:system system + #:guile-for-build guile))) + +(define (make-linux-libre-source version + upstream-source + deblob-scripts) + "Return a 'computed' origin that generates a Linux-libre tarball from the +corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." + (match deblob-scripts + ((deblob-version (? origin? deblob) (? origin? deblob-check)) + (unless (string=? deblob-version (version-major+minor version)) + ;; The deblob script cannot be expected to work properly on a + ;; different version (major+minor) of Linux, even if no errors + ;; are signaled during execution. + (error "deblob major+minor version mismatch")) + (origin + (method computed-origin-method) + (file-name (string-append "linux-libre-" version "-guix.tar.xz")) + (sha256 #f) + (uri + (delay + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils) + (srfi srfi-1) + (ice-9 match) + (ice-9 ftw)) + (let ((dir (string-append "linux-" #$version))) + + (mkdir "/tmp/bin") + (set-path-environment-variable + "PATH" '("bin") + (list "/tmp" + #+(canonical-package bash) + #+(canonical-package coreutils) + #+(canonical-package diffutils) + #+(canonical-package findutils) + #+(canonical-package patch) + #+(canonical-package xz) + #+(canonical-package sed) + #+(canonical-package grep) + #+(canonical-package bzip2) + #+(canonical-package gzip) + #+(canonical-package tar) + ;; The comments in the 'deblob-check' script + ;; claim that it supports Python 2 and 3, but + ;; in fact it fails when run in Python 3 as + ;; of version 5.1.3. + #+python-2)) + + (with-directory-excursion "/tmp/bin" + + (copy-file #+deblob "deblob") + (chmod "deblob" #o755) + (substitute* "deblob" + (("/bin/sh") (which "sh"))) + + (copy-file #+deblob-check "deblob-check") + (chmod "deblob-check" #o755) + (substitute* "deblob-check" + (("/bin/sh") (which "sh")) + (("/bin/sed") (which "sed")) + (("/usr/bin/python") (which "python")))) + + (if (file-is-directory? #+upstream-source) + (begin + (format #t "Copying upstream linux source...~%") + (force-output) + (invoke "cp" "--archive" #+upstream-source dir) + (invoke "chmod" "--recursive" "u+w" dir)) + (begin + (format #t "Unpacking upstream linux tarball...~%") + (force-output) + (invoke "tar" "xf" #$upstream-source) + (match (scandir "." + (lambda (name) + (and (not (member name '("." ".."))) + (file-is-directory? name)))) + ((unpacked-dir) + (unless (string=? dir unpacked-dir) + (rename-file unpacked-dir dir))) + (dirs + (error "multiple directories found" dirs))))) + + (with-directory-excursion dir + (setenv "PYTHON" (which "python")) + (format #t "Running deblob script...~%") + (force-output) + (invoke "/tmp/bin/deblob")) + + (format #t "~%Packing new Linux-libre tarball...~%") + (force-output) + (invoke "tar" "cfa" #$output + ;; Avoid non-determinism in the archive. + "--mtime=@0" + "--owner=root:0" + "--group=root:0" + "--sort=name" + "--hard-dereference" + dir)))))))))) + + +;;; +;;; Kernel sources. +;;; + (define (linux-libre-urls version) "Return a list of URLs for Linux-Libre VERSION." (list (string-append @@ -171,14 +342,121 @@ (define (linux-libre-urls version) "mirror://gnu/linux-libre/" version "-gnu/linux-libre-" version "-gnu.tar.xz"))) -(define (make-linux-libre-headers version hash) +(define (%upstream-linux-source version hash) + (origin + (method url-fetch) + (uri (string-append "mirror://kernel.org" + "/linux/kernel/v" (version-major version) ".x/" + "linux-" version ".tar.xz")) + (sha256 hash))) + +(define-public linux-libre-5.2-version "5.2.1") +(define-public linux-libre-5.2-pristine-source + (let ((version linux-libre-5.2-version) + (hash (base32 "01k5v3kdwk65cfx6bw4cl32jbfvf976jbya7q4a8lab3km7fi09m"))) + (make-linux-libre-source version + (%upstream-linux-source version hash) + deblob-scripts-5.2))) + +(define-public linux-libre-4.19-version "4.19.59") +(define-public linux-libre-4.19-pristine-source + (let ((version linux-libre-4.19-version) + (hash (base32 "0nxkr196q0b1hs3a3zavpsjp0jgbqmcwdf0y0f3hbpirshjiid5q"))) + (make-linux-libre-source version + (%upstream-linux-source version hash) + deblob-scripts-4.19))) + +(define-public linux-libre-4.14-version "4.14.133") +(define-public linux-libre-4.14-pristine-source + (let ((version linux-libre-4.14-version) + (hash (base32 "005pg4f8l2qz8g6hd71pj567z91hwjwdwb37h4dbb3fj6kjl965y"))) + (make-linux-libre-source version + (%upstream-linux-source version hash) + deblob-scripts-4.14))) + +(define-public linux-libre-4.9-version "4.9.185") +(define-public linux-libre-4.9-pristine-source + (let ((version linux-libre-4.9-version) + (hash (base32 "16z3ijfzffpkp4mj42j3j8zbnpba1a67kd5cdqwb28spf32a66vc"))) + (make-linux-libre-source version + (%upstream-linux-source version hash) + deblob-scripts-4.9))) + +(define-public linux-libre-4.4-version "4.4.185") +(define-public linux-libre-4.4-pristine-source + (let ((version linux-libre-4.4-version) + (hash (base32 "1ll694m5193dmwn8ys4sf2p6a6njd5pm38v862ih1iw7l3vj0l3s"))) + (make-linux-libre-source version + (%upstream-linux-source version hash) + deblob-scripts-4.4))) + +(define %boot-logo-patch + ;; Linux-Libre boot logo featuring Freedo and a gnu. + (origin + (method url-fetch) + (uri (string-append "http://www.fsfla.org/svn/fsfla/software/linux-libre/" + "lemote/gnewsense/branches/3.16/100gnu+freedo.patch")) + (sha256 + (base32 + "1hk9swxxc80bmn2zd2qr5ccrjrk28xkypwhl4z0qx4hbivj7qm06")))) + +(define %linux-libre-arm-export-__sync_icache_dcache-patch + (origin + (method url-fetch) + (uri (string-append + "https://salsa.debian.org/kernel-team/linux" + "/raw/34a7d9011fcfcfa38b68282fd2b1a8797e6834f0" + "/debian/patches/bugfix/arm/" + "arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch")) + (file-name "linux-libre-arm-export-__sync_icache_dcache.patch") + (sha256 + (base32 "1ifnfhpakzffn4b8n7x7w5cps9mzjxlkcfz9zqak2vaw8nzvl39f")))) + +(define (source-with-patches source patches) + (origin + (inherit source) + (patches (append (origin-patches source) + patches)))) + +(define-public linux-libre-5.2-source + (source-with-patches linux-libre-5.2-pristine-source + (list %boot-logo-patch + %linux-libre-arm-export-__sync_icache_dcache-patch))) + +(define-public linux-libre-4.19-source + (source-with-patches linux-libre-4.19-pristine-source + (list %boot-logo-patch + %linux-libre-arm-export-__sync_icache_dcache-patch))) + +(define-public linux-libre-4.14-source + (source-with-patches linux-libre-4.14-pristine-source + (list %boot-logo-patch))) + +(define-public linux-libre-4.9-source + (source-with-patches linux-libre-4.9-pristine-source + (list %boot-logo-patch))) + +(define-public linux-libre-4.4-source + (source-with-patches linux-libre-4.4-pristine-source + (list %boot-logo-patch))) + + +;;; +;;; Kernel headers. +;;; + +(define (make-linux-libre-headers version hash-string) + (make-linux-libre-headers* version + (origin + (method url-fetch) + (uri (linux-libre-urls version)) + (sha256 (base32 hash-string))))) + +(define (make-linux-libre-headers* version source) (package (name "linux-libre-headers") (version version) - (source (origin - (method url-fetch) - (uri (linux-libre-urls version)) - (sha256 (base32 hash)))) + (source source) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) ,@(if (version>=? version "4.16") @@ -232,27 +510,38 @@ (define (make-linux-libre-headers version hash) (description "Headers of the Linux-Libre kernel.") (license license:gpl2))) -(define %boot-logo-patch - ;; Linux-Libre boot logo featuring Freedo and a gnu. - (origin - (method url-fetch) - (uri (string-append "http://www.fsfla.org/svn/fsfla/software/linux-libre/" - "lemote/gnewsense/branches/3.16/100gnu+freedo.patch")) - (sha256 - (base32 - "1hk9swxxc80bmn2zd2qr5ccrjrk28xkypwhl4z0qx4hbivj7qm06")))) +(define-public linux-libre-headers-5.2 + (make-linux-libre-headers* linux-libre-5.2-version + linux-libre-5.2-source)) -(define %linux-libre-arm-export-__sync_icache_dcache-patch - (origin - (method url-fetch) - (uri (string-append - "https://salsa.debian.org/kernel-team/linux" - "/raw/34a7d9011fcfcfa38b68282fd2b1a8797e6834f0" - "/debian/patches/bugfix/arm/" - "arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch")) - (file-name "linux-libre-arm-export-__sync_icache_dcache.patch") - (sha256 - (base32 "1ifnfhpakzffn4b8n7x7w5cps9mzjxlkcfz9zqak2vaw8nzvl39f")))) +(define-public linux-libre-headers-4.19 + (make-linux-libre-headers* linux-libre-4.19-version + linux-libre-4.19-source)) + +(define-public linux-libre-headers-4.14 + (make-linux-libre-headers* linux-libre-4.14-version + linux-libre-4.14-source)) + +(define-public linux-libre-headers-4.9 + (make-linux-libre-headers* linux-libre-4.9-version + linux-libre-4.9-source)) + +(define-public linux-libre-headers-4.4 + (make-linux-libre-headers* linux-libre-4.4-version + linux-libre-4.4-source)) + +;; The following package is used in the early bootstrap, and thus must be kept +;; stable and with minimal build requirements. +(define-public linux-libre-headers-4.14.67 + (make-linux-libre-headers "4.14.67" + "050zvdxjy6sc64q75pr1gxsmh49chwav2pwxz8xlif39bvahnrpg")) + +(define-public linux-libre-headers linux-libre-headers-4.14.67) + + +;;; +;;; Kernel configurations. +;;; (define* (kernel-config arch #:key variant) "Return the absolute file name of the Linux-Libre build configuration file @@ -295,7 +584,12 @@ (define (config->string options) options) "\n")) -(define* (make-linux-libre version hash supported-systems + +;;; +;;; Kernel package utilities. +;;; + +(define* (make-linux-libre version hash-string supported-systems #:key ;; A function that takes an arch and a variant. ;; See kernel-config for an example. @@ -304,16 +598,32 @@ (define* (make-linux-libre version hash supported-systems (defconfig "defconfig") (extra-options %default-extra-linux-options) (patches (list %boot-logo-patch))) + (make-linux-libre* version + (origin + (method url-fetch) + (uri (linux-libre-urls version)) + (sha256 (base32 hash-string)) + (patches patches)) + supported-systems + #:extra-version extra-version + #:configuration-file configuration-file + #:defconfig defconfig + #:extra-options extra-options)) + +(define* (make-linux-libre* version source supported-systems + #:key + ;; A function that takes an arch and a variant. + ;; See kernel-config for an example. + (extra-version #f) + (configuration-file #f) + (defconfig "defconfig") + (extra-options %default-extra-linux-options)) (package (name (if extra-version (string-append "linux-libre-" extra-version) "linux-libre")) (version version) - (source (origin - (method url-fetch) - (uri (linux-libre-urls version)) - (sha256 (base32 hash)) - (patches patches))) + (source source) (supported-systems supported-systems) (build-system gnu-build-system) (native-inputs @@ -425,133 +735,105 @@ (define* (make-linux-libre version hash supported-systems It has been modified to remove all non-free binary blobs.") (license license:gpl2))) -(define %linux-libre-version "5.2.1") -(define %linux-libre-hash "1qj3zsjynz45p97n6sngdbh4xfd1jks3hbn85nmhzds6sxgg4c54") - -(define %linux-libre-5.2-patches - (list %boot-logo-patch - %linux-libre-arm-export-__sync_icache_dcache-patch)) + +;;; +;;; Generic kernel packages. +;;; (define-public linux-libre-5.2 - (make-linux-libre %linux-libre-version - %linux-libre-hash - '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux") - #:patches %linux-libre-5.2-patches - #:configuration-file kernel-config)) + (make-linux-libre* linux-libre-5.2-version + linux-libre-5.2-source + '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux") + #:configuration-file kernel-config)) -(define-public linux-libre-headers-5.2 - (make-linux-libre-headers %linux-libre-version - %linux-libre-hash)) - -(define %linux-libre-4.19-version "4.19.59") -(define %linux-libre-4.19-hash "1c9qfw1mnz68ki48kg1brmv47wmsdvq41ip6202rlnmwgncj5yrw") - -(define %linux-libre-4.19-patches - (list %boot-logo-patch - %linux-libre-arm-export-__sync_icache_dcache-patch)) +(define-public linux-libre-version linux-libre-5.2-version) +(define-public linux-libre-pristine-source linux-libre-5.2-pristine-source) +(define-public linux-libre-source linux-libre-5.2-source) +(define-public linux-libre linux-libre-5.2) (define-public linux-libre-4.19 - (make-linux-libre %linux-libre-4.19-version - %linux-libre-4.19-hash - '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux") - #:patches %linux-libre-4.19-patches - #:configuration-file kernel-config)) - -(define-public linux-libre-headers-4.19 - (make-linux-libre-headers %linux-libre-4.19-version - %linux-libre-4.19-hash)) - -(define %linux-libre-4.14-version "4.14.133") -(define %linux-libre-4.14-hash "16ay2x0r5i96lg4rgcg151352igvwxa7wh98kwdsjbckiw7fhn08") + (make-linux-libre* linux-libre-4.19-version + linux-libre-4.19-source + '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux") + #:configuration-file kernel-config)) (define-public linux-libre-4.14 - (make-linux-libre %linux-libre-4.14-version - %linux-libre-4.14-hash - '("x86_64-linux" "i686-linux" "armhf-linux") - #:configuration-file kernel-config)) - -(define-public linux-libre-headers-4.14 - (make-linux-libre-headers %linux-libre-4.14-version - %linux-libre-4.14-hash)) + (make-linux-libre* linux-libre-4.14-version + linux-libre-4.14-source + '("x86_64-linux" "i686-linux" "armhf-linux") + #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.185" - "1byz9cxvslm45nv01abhzvrm2isdskx5k11gi5rpa39r7lx6bmjp" - '("x86_64-linux" "i686-linux") - #:configuration-file kernel-config)) + (make-linux-libre* linux-libre-4.9-version + linux-libre-4.9-source + '("x86_64-linux" "i686-linux") + #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.185" - "0df22wqj1nwqp60v8341qcmjhwmdr0hgfraishpc7hic8aqdr4p7" - '("x86_64-linux" "i686-linux") - #:configuration-file kernel-config - #:extra-options - (append - `(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html - ;; This option was removed upstream in version 4.7. - ("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t)) - %default-extra-linux-options))) + (make-linux-libre* linux-libre-4.4-version + linux-libre-4.4-source + '("x86_64-linux" "i686-linux") + #:configuration-file kernel-config + #:extra-options + (append + `(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html + ;; This option was removed upstream in version 4.7. + ("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t)) + %default-extra-linux-options))) -(define-public linux-libre-arm-veyron - (make-linux-libre %linux-libre-version - %linux-libre-hash - '("armhf-linux") - #:patches %linux-libre-5.2-patches - #:configuration-file kernel-config-veyron - #:extra-version "arm-veyron")) - -(define-public linux-libre-headers-4.14.67 - (make-linux-libre-headers "4.14.67" - "050zvdxjy6sc64q75pr1gxsmh49chwav2pwxz8xlif39bvahnrpg")) + +;;; +;;; Specialized kernel variants. +;;; -(define-public linux-libre-headers linux-libre-headers-4.14.67) -(define-public linux-libre linux-libre-5.2) +(define-public linux-libre-arm-veyron + (make-linux-libre* linux-libre-version + linux-libre-source + '("armhf-linux") + #:configuration-file kernel-config-veyron + #:extra-version "arm-veyron")) (define-public linux-libre-arm-generic - (make-linux-libre %linux-libre-version - %linux-libre-hash - '("armhf-linux") - #:patches %linux-libre-5.2-patches - #:defconfig "multi_v7_defconfig" - #:extra-version "arm-generic")) + (make-linux-libre* linux-libre-version + linux-libre-source + '("armhf-linux") + #:defconfig "multi_v7_defconfig" + #:extra-version "arm-generic")) (define-public linux-libre-arm-generic-4.19 - (make-linux-libre %linux-libre-4.19-version - %linux-libre-4.19-hash - '("armhf-linux") - #:patches %linux-libre-4.19-patches - #:defconfig "multi_v7_defconfig" - #:extra-version "arm-generic")) + (make-linux-libre* linux-libre-4.19-version + linux-libre-4.19-source + '("armhf-linux") + #:defconfig "multi_v7_defconfig" + #:extra-version "arm-generic")) (define-public linux-libre-arm-generic-4.14 - (make-linux-libre %linux-libre-4.14-version - %linux-libre-4.14-hash - '("armhf-linux") - #:defconfig "multi_v7_defconfig" - #:extra-version "arm-generic")) + (make-linux-libre* linux-libre-4.14-version + linux-libre-4.14-source + '("armhf-linux") + #:defconfig "multi_v7_defconfig" + #:extra-version "arm-generic")) (define-public linux-libre-arm-omap2plus - (make-linux-libre %linux-libre-version - %linux-libre-hash - '("armhf-linux") - #:patches %linux-libre-5.2-patches - #:defconfig "omap2plus_defconfig" - #:extra-version "arm-omap2plus")) + (make-linux-libre* linux-libre-version + linux-libre-source + '("armhf-linux") + #:defconfig "omap2plus_defconfig" + #:extra-version "arm-omap2plus")) (define-public linux-libre-arm-omap2plus-4.19 - (make-linux-libre %linux-libre-4.19-version - %linux-libre-4.19-hash - '("armhf-linux") - #:patches %linux-libre-4.19-patches - #:defconfig "omap2plus_defconfig" - #:extra-version "arm-omap2plus")) + (make-linux-libre* linux-libre-4.19-version + linux-libre-4.19-source + '("armhf-linux") + #:defconfig "omap2plus_defconfig" + #:extra-version "arm-omap2plus")) (define-public linux-libre-arm-omap2plus-4.14 - (make-linux-libre %linux-libre-4.14-version - %linux-libre-4.14-hash - '("armhf-linux") - #:defconfig "omap2plus_defconfig" - #:extra-version "arm-omap2plus")) + (make-linux-libre* linux-libre-4.14-version + linux-libre-4.14-source + '("armhf-linux") + #:defconfig "omap2plus_defconfig" + #:extra-version "arm-omap2plus")) ;;; -- cgit v1.2.3 From aa84be4375debe9882d7596e99411b1ce674f4b4 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 21 Jul 2019 08:57:23 -0400 Subject: gnu: linux-libre@4.4: Update to 4.4.186. * gnu/packages/linux.scm (linux-libre-4.4-version): Update to 4.4.186. (linux-libre-4.4-pristine-source): 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 8911ec19d5..67b5335604 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -382,10 +382,10 @@ (define-public linux-libre-4.9-pristine-source (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.185") +(define-public linux-libre-4.4-version "4.4.186") (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "1ll694m5193dmwn8ys4sf2p6a6njd5pm38v862ih1iw7l3vj0l3s"))) + (hash (base32 "113rjf8842glzi23y1g1yrwncihv2saah6wz0r726r06bk9p64hb"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) -- cgit v1.2.3 From 5d8187c2ac40905c5768c6595bc9580a5d839dfb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 21 Jul 2019 08:59:04 -0400 Subject: gnu: linux-libre@4.9: Update to 4.9.186. * gnu/packages/linux.scm (linux-libre-4.9-version): Update to 4.9.186. (linux-libre-4.9-pristine-source): 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 67b5335604..d67441270b 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -374,10 +374,10 @@ (define-public linux-libre-4.14-pristine-source (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.185") +(define-public linux-libre-4.9-version "4.9.186") (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "16z3ijfzffpkp4mj42j3j8zbnpba1a67kd5cdqwb28spf32a66vc"))) + (hash (base32 "0sjbp7m6d625rw06wv34a0805d1lgldii4pxiqfpja871m1q8914"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) -- cgit v1.2.3 From 267ce6679e63453679beca6b8f15736f7b316556 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 21 Jul 2019 08:59:57 -0400 Subject: gnu: linux-libre@4.14: Update to 4.14.134. * gnu/packages/linux.scm (linux-libre-4.14-version): Update to 4.14.134. (linux-libre-4.14-pristine-source): 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 d67441270b..212312aa25 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -366,10 +366,10 @@ (define-public linux-libre-4.19-pristine-source (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.133") +(define-public linux-libre-4.14-version "4.14.134") (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "005pg4f8l2qz8g6hd71pj567z91hwjwdwb37h4dbb3fj6kjl965y"))) + (hash (base32 "0b9xj1rwr5fpw2giirfghzxxc0wp1hwf4nqvalx314pxxysyf88b"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -- cgit v1.2.3 From c39304ce18531d49deb5e4595bba6974ef5f316f Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 21 Jul 2019 09:00:46 -0400 Subject: gnu: linux-libre@4.19: Update to 4.19.60. * gnu/packages/linux.scm (linux-libre-4.19-version): Update to 4.19.60. (linux-libre-4.19-pristine-source): 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 212312aa25..acf0606c97 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -358,10 +358,10 @@ (define-public linux-libre-5.2-pristine-source (%upstream-linux-source version hash) deblob-scripts-5.2))) -(define-public linux-libre-4.19-version "4.19.59") +(define-public linux-libre-4.19-version "4.19.60") (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "0nxkr196q0b1hs3a3zavpsjp0jgbqmcwdf0y0f3hbpirshjiid5q"))) + (hash (base32 "0ibayrvrnw2lw7si78vdqnr20mm1d3z0g6a0ykndvgn5vdax5x9a"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -- cgit v1.2.3 From 59f79254bbd2cfe31dd063a6949f94e09308e799 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 21 Jul 2019 09:01:41 -0400 Subject: gnu: linux-libre: Update to 5.2.2. * gnu/packages/linux.scm (linux-libre-5.2-version): Update to 5.2.2. (linux-libre-5.2-pristine-source): 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 acf0606c97..7d3800c541 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -350,10 +350,10 @@ (define (%upstream-linux-source version hash) "linux-" version ".tar.xz")) (sha256 hash))) -(define-public linux-libre-5.2-version "5.2.1") +(define-public linux-libre-5.2-version "5.2.2") (define-public linux-libre-5.2-pristine-source (let ((version linux-libre-5.2-version) - (hash (base32 "01k5v3kdwk65cfx6bw4cl32jbfvf976jbya7q4a8lab3km7fi09m"))) + (hash (base32 "173da67d51qcjwrczqsfd6g9phzazqzr11xfxwlf54ckd6117ng5"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.2))) -- cgit v1.2.3 From d1e766e5c6b9e25ff0fa8e0a2adf3e764401a3a2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 21 Jul 2019 20:20:27 +0200 Subject: gnu: libosinfo: Update to 1.5.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/virtualization.scm (libosinfo): Update to 1.5.0. [arguments]: Remove ‘disable-broken-test’ phase. [native-inputs]: Remove check. --- gnu/packages/virtualization.scm | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index d5792b7ede..e68007ec2c 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -286,7 +286,7 @@ (define-public qemu-minimal-2.10 (define-public libosinfo (package (name "libosinfo") - (version "1.0.0") + (version "1.5.0") (source (origin (method url-fetch) @@ -294,30 +294,21 @@ (define-public libosinfo version ".tar.gz")) (sha256 (base32 - "0srrs2m6irqd4f867g8ls6jp2dq3ql0l9d0fh80d55sivvn2bd7p")))) + "12b0xj9fz9q91d1pz9xm6aqap5k1ip0m9m3qvqmwjy1lk1kjasdz")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list (string-append "--with-usb-ids-path=" (assoc-ref %build-inputs "usb.ids")) (string-append "--with-pci-ids-path=" - (assoc-ref %build-inputs "pci.ids"))) - #:phases - (modify-phases %standard-phases - ;; This odd test fails for unknown reasons. - (add-after 'unpack 'disable-broken-test - (lambda _ - (substitute* "test/Makefile.in" - (("test-isodetect\\$\\(EXEEXT\\)") "")) - #t))))) + (assoc-ref %build-inputs "pci.ids"))))) (inputs `(("libsoup" ,libsoup) ("libxml2" ,libxml2) ("libxslt" ,libxslt) ("gobject-introspection" ,gobject-introspection))) (native-inputs - `(("check" ,check) - ("glib" ,glib "bin") ; glib-mkenums, etc. + `(("glib" ,glib "bin") ; glib-mkenums, etc. ("gtk-doc" ,gtk-doc) ("vala" ,vala) ("intltool" ,intltool) -- cgit v1.2.3 From afb986e77cd669c2f21953f501f7893237730ca7 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Mon, 15 Jul 2019 22:42:07 -0700 Subject: gnu: libreoffice: Fix xdg-open absolute paths. Fixes: . * gnu/packages/libreoffice.scm (libreoffice) [inputs]: Add xdg-utils. [arguments][#:phases][prepare-src]: Replace hard-coded absolute paths to xdg-open in the source with the path to xdg-open in the xdg-utils input. --- gnu/packages/libreoffice.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 9f5bedd913..026ce92aab 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2017 Rutger Helling ;;; Copyright © 2018, 2019 Ricardo Wurmus ;;; Copyright © 2018 Jonathan Brielmaier +;;; Copyright © 2019 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -53,6 +54,7 @@ (define-module (gnu packages libreoffice) #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages glib) @@ -1045,6 +1047,7 @@ (define-public libreoffice ("unixodbc" ,unixodbc) ("unzip" ,unzip) ("vigra" ,vigra) + ("xdg-utils" ,xdg-utils) ("xmlsec" ,xmlsec-nss) ("zip" ,zip))) (arguments @@ -1077,6 +1080,13 @@ (define-public libreoffice (assoc-ref inputs "gpgme") "/include/gpgme++"))) + ;; /usr/bin/xdg-open doesn't exist on Guix System. + (substitute* '("shell/source/unix/exec/shellexec.cxx" + "shell/source/unix/misc/senddoc.sh") + (("/usr/bin/xdg-open") + (string-append (assoc-ref inputs "xdg-utils") + "/bin/xdg-open"))) + #t)) (add-after 'install 'bin-and-desktop-install ;; Create 'soffice' and 'libreoffice' symlinks to the executable -- cgit v1.2.3 From 7284b11f6c924c3b47e825d1c57eda8c44043a05 Mon Sep 17 00:00:00 2001 From: Robert Vollmert Date: Fri, 19 Jul 2019 18:50:56 +0200 Subject: gnu: oil-shell: Update to 0.6.0 * gnu/packages/shells.scm (oil-shell): Update to 0.6.0. Signed-off-by: Efraim Flashner --- gnu/packages/shells.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index f8c0fdf71f..1900925022 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -749,14 +749,14 @@ (define-public mksh (define-public oil-shell (package (name "oil-shell") - (version "0.6.pre22") + (version "0.6.0") (source (origin (method url-fetch) (uri (string-append "https://www.oilshell.org/download/oil-" version ".tar.xz")) (sha256 (base32 - "1kslycqa8rrzk9p2265dy045xd88q675w4baqiygcrnvxwn588c5")))) + "1dw4mgnlmaxlfygasfihgvbj32d3m9w6k5j7azb9d9lp35f3l7hl")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; the tests are not distributed in the tarballs -- cgit v1.2.3 From 5246655fa12d3d5981377ae813bf15e2d2e20194 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 22 Jul 2019 09:48:50 +0300 Subject: gnu: mallard-ducktype: Run tests. * gnu/packages/python-xyz.scm (mallard-ducktype)[arguments]: Replace 'check phase to run test suite. --- gnu/packages/python-xyz.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 6e90c9a933..d8f144893d 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3136,6 +3136,13 @@ (define-public mallard-ducktype (base32 "0crland0kmpsyjfmnflcw7gaqy5b87b6ah17cmr9d5z1kyazf54n")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (with-directory-excursion "tests" + (invoke "sh" "runtests"))))))) (home-page "http://projectmallard.org") (synopsis "Convert Ducktype to Mallard documentation markup") (description -- cgit v1.2.3 From 2756ab80588668e5d8b5a47d9491a9209d1e06c7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 22 Jul 2019 09:05:24 +0300 Subject: gnu: perl-hash-merge: Update to 0.300. * gnu/packages/perl.scm (perl-hash-merge): Update to 0.300. [inputs]: Add perl-clone-choose. --- gnu/packages/perl.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 9ab7c37a24..2c5027e9be 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -4072,7 +4072,7 @@ (define-public perl-hash-fieldhash (define-public perl-hash-merge (package (name "perl-hash-merge") - (version "0.200") + (version "0.300") (source (origin (method url-fetch) @@ -4080,8 +4080,10 @@ (define-public perl-hash-merge "Hash-Merge-" version ".tar.gz")) (sha256 (base32 - "0r1a2axz85wn6573zrl9rk8mkfl2cvf1gp9vwya5qndp60rz1ya7")))) + "0h3wfnpv5d4d3f9xzmwkchay6251nhzngdv3f6xia56mj4hxabs0")))) (build-system perl-build-system) + (inputs + `(("perl-clone-choose" ,perl-clone-choose))) (home-page "https://metacpan.org/release/Hash-Merge") (synopsis "Merge arbitrarily deep hashes into a single hash") (description "Hash::Merge merges two arbitrarily deep hashes into a single -- cgit v1.2.3 From 6f4d20e387901df0e2912856175245574f5db9d7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 22 Jul 2019 09:06:04 +0300 Subject: gnu: perl-clone: Update to 0.42. * gnu/packages/perl.scm (perl-clone): Update to 0.42. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 2c5027e9be..73986ba420 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1266,14 +1266,14 @@ (define-public perl-class-xsaccessor (define-public perl-clone (package (name "perl-clone") - (version "0.41") + (version "0.42") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/G/GA/GARU/" "Clone-" version ".tar.gz")) (sha256 (base32 - "060mlm31lacirpnp5fl9jqk4m9cl07vjlh89k83qk25wykf5dh78")))) + "1r87rdm0nilfayxwlzvylwc8r3hr5m24180x437j30qpizdk1aal")))) (build-system perl-build-system) (synopsis "Recursively copy Perl datatypes") (description -- cgit v1.2.3 From 94b9b67618617502e5593105001abd7f46323865 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 22 Jul 2019 09:06:41 +0300 Subject: gnu: perl-cpan-meta: Update to 2.150010. * gnu/packages/perl.scm (perl-cpan-meta): Update to 2.150010. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 73986ba420..2a40b2c736 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -9518,7 +9518,7 @@ (define-public perl-parse-yapp (define-public perl-cpan-meta (package (name "perl-cpan-meta") - (version "2.143240") + (version "2.150010") (source (origin (method url-fetch) @@ -9526,7 +9526,7 @@ (define-public perl-cpan-meta "CPAN-Meta-" version ".tar.gz")) (sha256 (base32 - "1d80bxphpp5dq7fx5ipxszn7j8q9d85w6fnapdrbym21k1vsmlf6")))) + "1mm3dfw3ffyzb2ikpqn9l6zyqrxijb4vyywmbx2l21ryqwp0zy74")))) (build-system perl-build-system) (propagated-inputs `(("perl-cpan-meta-requirements" ,perl-cpan-meta-requirements) -- cgit v1.2.3 From bbbed2e60de043c576612e9f8a9f08c005868ad3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 22 Jul 2019 09:07:58 +0300 Subject: gnu: perl-test-simple: Update to 1.302164. * gnu/packages/perl-check.scm (perl-test-simple): Update to 1.302164. --- gnu/packages/perl-check.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm index 47e25083cd..98d01d598a 100644 --- a/gnu/packages/perl-check.scm +++ b/gnu/packages/perl-check.scm @@ -1240,14 +1240,14 @@ (define-public perl-test-sharedfork (define-public perl-test-simple (package (name "perl-test-simple") - (version "1.302162") + (version "1.302164") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/" "Test-Simple-" version ".tar.gz")) (sha256 (base32 - "1i0zsgp5ypygsfbl5gdsgnzlqv57bx69yl6sh440cpkk7my1k83k")))) + "05b61ndlf2d6xphq13caps001f0p0p76jb5hhzmm5k897xhpn9sh")))) (build-system perl-build-system) (synopsis "Basic utilities for writing tests") (description -- cgit v1.2.3 From 1bb4122ce6edd5b43d99aaed3c05506ba690e7a9 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 22 Jul 2019 10:14:41 +0300 Subject: gnu: perl-net-http: Update to 6.19. * gnu/packages/web.scm (perl-net-httpd): Update to 6.19. --- 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 f1083505ee..f81d12c7ce 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -3333,7 +3333,7 @@ (define-public perl-net-amazon-s3 (define-public perl-net-http (package (name "perl-net-http") - (version "6.18") + (version "6.19") (source (origin (method url-fetch) (uri (string-append @@ -3341,7 +3341,7 @@ (define-public perl-net-http "Net-HTTP-" version ".tar.gz")) (sha256 (base32 - "074mp9s37q1j290xa3qj1wwgalzla328i2zpnh73xkmdnwnxyhky")))) + "1i1gbcwdzx74whn5vn6xbr2cp7frldfz2rfrcjp2qljr770nxdsj")))) (build-system perl-build-system) (propagated-inputs `(("perl-io-socket-ssl" ,perl-io-socket-ssl) -- cgit v1.2.3 From 5a90d5635226255e65b19a094a4851ff3886c0c5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 21 Jul 2019 23:14:59 +0200 Subject: doc: Update 'guix import json' example. This is a followup to d78010b81ee6ef4fd8803082e2f401b9e55b44db. * doc/guix.texi (Invoking guix import): Change 'guix import json' example to refer to "gettext", not "gcc". --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2b5077a0c2..107c16b8db 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -8674,7 +8674,7 @@ example package definition in JSON format: "synopsis": "Hello, GNU world: An example GNU package", "description": "GNU Hello prints a greeting.", "license": "GPL-3.0+", - "native-inputs": ["gcc@@6"] + "native-inputs": ["gettext"] @} @end example -- cgit v1.2.3 From 96f1cbeff84819f9886d15763b4c477cdecd7784 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 20 Jul 2019 20:13:39 +0200 Subject: swh: Add basic tests. * guix/swh.scm (%swh-base-url): Turn into a parameter and export it. * tests/swh.scm: New file. * Makefile.am (SCM_TESTS): Add it. --- Makefile.am | 1 + guix/swh.scm | 10 ++++---- tests/swh.scm | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 4 deletions(-) create mode 100644 tests/swh.scm diff --git a/Makefile.am b/Makefile.am index b63c55d784..e36f2d9f21 100644 --- a/Makefile.am +++ b/Makefile.am @@ -375,6 +375,7 @@ SCM_TESTS = \ tests/modules.scm \ tests/gnu-maintenance.scm \ tests/substitute.scm \ + tests/swh.scm \ tests/builders.scm \ tests/derivations.scm \ tests/glob.scm \ diff --git a/guix/swh.scm b/guix/swh.scm index 89cddb2bdd..d692f81806 100644 --- a/guix/swh.scm +++ b/guix/swh.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Ludovic Courtès +;;; Copyright © 2018, 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,7 +31,9 @@ (define-module (guix swh) #:use-module (ice-9 regex) #:use-module (ice-9 popen) #:use-module ((ice-9 ftw) #:select (scandir)) - #:export (origin? + #:export (%swh-base-url + + origin? origin-id origin-type origin-url @@ -115,11 +117,11 @@ (define-module (guix swh) (define %swh-base-url ;; Presumably we won't need to change it. - "https://archive.softwareheritage.org") + (make-parameter "https://archive.softwareheritage.org")) (define (swh-url path . rest) (define url - (string-append %swh-base-url path + (string-append (%swh-base-url) path (string-join rest "/" 'prefix))) ;; Ensure there's a trailing slash or we get a redirect. diff --git a/tests/swh.scm b/tests/swh.scm new file mode 100644 index 0000000000..07f0fda37b --- /dev/null +++ b/tests/swh.scm @@ -0,0 +1,76 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 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-swh) + #:use-module (guix swh) + #:use-module (guix tests http) + #:use-module (srfi srfi-64)) + +;; Test the JSON mapping machinery used in (guix swh). + +(define %origin + "{ \"id\": 42, + \"visits_url\": \"/visits/42\", + \"type\": \"git\", + \"url\": \"http://example.org/guix.git\" }") + +(define %directory-entries + "[ { \"name\": \"one\", + \"type\": \"regular\", + \"length\": 123, + \"dir_id\": 1 } + { \"name\": \"two\", + \"type\": \"regular\", + \"length\": 456, + \"dir_id\": 2 } ]") + +(define-syntax-rule (with-json-result str exp ...) + (with-http-server 200 str + (parameterize ((%swh-base-url (%local-url))) + exp ...))) + +(test-begin "swh") + +(test-equal "lookup-origin" + (list 42 "git" "http://example.org/guix.git") + (with-json-result %origin + (let ((origin (lookup-origin "http://example.org/guix.git"))) + (list (origin-id origin) + (origin-type origin) + (origin-url origin))))) + +(test-equal "lookup-origin, not found" + #f + (with-http-server 404 "Nope." + (parameterize ((%swh-base-url (%local-url))) + (lookup-origin "http://example.org/whatever")))) + +(test-equal "lookup-directory" + '(("one" 123) ("two" 456)) + (with-json-result %directory-entries + (map (lambda (entry) + (list (directory-entry-name entry) + (directory-entry-length entry))) + (lookup-directory "123")))) + +(test-end "swh") + +;; Local Variables: +;; eval: (put 'with-json-result 'scheme-indent-function 1) +;; End: + -- cgit v1.2.3 From cd9f56ff5a0c187eb9d931713cb6774564163788 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 22 Jul 2019 00:45:42 +0200 Subject: pack: Pass a list as the entry point for 'build-docker-image'. * guix/scripts/pack.scm (docker-image)[build]: Pass a list as #:entry-point, not a string. --- guix/scripts/pack.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 4ac5dfc896..01472d9768 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -509,9 +509,10 @@ (define environment #:database #+database #:system (or #$target (utsname:machine (uname))) #:environment environment - #:entry-point #$(and entry-point - #~(string-append #$profile "/" - #$entry-point)) + #:entry-point + #$(and entry-point + #~(list (string-append #$profile "/" + #$entry-point))) #:symlinks '#$symlinks #:compressor '#$(compressor-command compressor) #:creation-time (make-time time-utc 0 1)))))) -- cgit v1.2.3 From 6fd4c6b2675b122fc9000756d0ae579356810191 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 22 Jul 2019 14:23:14 +0200 Subject: gnu: htslib: Propagate zlib. Reported by Vedran Franke . * gnu/packages/bioinformatics.scm (htslib)[inputs]: Move zlib from here... [propagated-inputs]: ...to here. --- gnu/packages/bioinformatics.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index d72fde00b4..5412440fb1 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4046,9 +4046,11 @@ (define-public htslib "16ljv43sc3fxmv63w7b2ff8m1s7h89xhazwmbm1bicz8axq8fjz0")))) (build-system gnu-build-system) (inputs - `(("openssl" ,openssl) - ("curl" ,curl) - ("zlib" ,zlib))) + `(("curl" ,curl) + ("openssl" ,openssl))) + ;; This is referred to in the pkg-config file as a required library. + (propagated-inputs + `(("zlib" ,zlib))) (native-inputs `(("perl" ,perl))) (home-page "http://www.htslib.org") -- cgit v1.2.3 From 6a489839a8852dc3428c53b0d35ead32e06dc1ac Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 21 Jul 2019 23:32:04 +0200 Subject: gnu: ungoogled-chromium: Enable parallel build. ...but limit the memory usage. Tested with --cores=8 on a 16 GiB RAM machine. * gnu/packages/chromium.scm (ungoogled-chromium)[arguments]: Remove <#:parallel-build?>. Add "jumbo_file_merge_limit=8" in <#:configure-flags>. --- gnu/packages/chromium.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 90ce787416..d072fc58ad 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -408,9 +408,6 @@ (define-public ungoogled-chromium (build-system gnu-build-system) (arguments `(#:tests? #f - ;; Chromiums build processes may consume up to 8GiB of memory per core. - ;; Disable parallel builds to avoid thrashing end user systems. - #:parallel-build? #f ;; FIXME: Chromiums RUNPATH lacks entries for some libraries, so ;; we have to disable validation and add a wrapper below. #:validate-runpath? #f @@ -467,6 +464,9 @@ (define-public ungoogled-chromium ;; Optimize for building everything at once, as opposed to ;; incrementally for development. See "docs/jumbo.md". "use_jumbo_build=true" + ;; The default file merge limit of 50 requires huge amounts of RAM. + ;; Cap it to make sure the build succeeds on commodity hardware. + "jumbo_file_merge_limit=8" ;; Prefer system libraries. "use_system_freetype=true" -- cgit v1.2.3 From 3c08479ef966ae602ab50c72517c039c7cd6cc40 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 Jul 2019 00:16:38 +0200 Subject: gnu: x265: Update to 3.1.1. * gnu/packages/video.scm (x265): Update to 3.1.1. --- 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 ef6d9cce82..51af34ccab 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -473,7 +473,7 @@ (define-public mkvtoolnix (define-public x265 (package (name "x265") - (version "3.0") + (version "3.1.1") (outputs '("out" "static")) (source (origin @@ -482,7 +482,7 @@ (define-public x265 "x265_" version ".tar.gz")) (sha256 (base32 - "0qh65wdpasrspkm1y0dlfa123myax568yi0sas0lmg5b1hkgrff5")) + "1l68lgdbsi4wjz5vad98ggx7mf92rnvzlq34m6w0a08ark3h0yc2")) (patches (search-patches "x265-arm-flags.patch")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From 8d3167fe2399656d62d72c280b6a343c5f64a3b4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 Jul 2019 00:17:02 +0200 Subject: gnu: ffmpeg: Update to 4.1.4. * gnu/packages/video.scm (ffmpeg): Update to 4.1.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 51af34ccab..7721f937b0 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -756,14 +756,14 @@ (define-public libva (define-public ffmpeg (package (name "ffmpeg") - (version "4.1.3") + (version "4.1.4") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "0gdnprc7gk4b7ckq8wbxbrj7i00r76r9a5g9mj7iln40512j0c0c")))) + "1qd7a10gs12ifcp31gramcgqjl77swskjfp7cijibgyg5yl4kw7i")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) -- cgit v1.2.3 From 293e4f9f2df5565bc1e83a39befdf33b57b30783 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 Jul 2019 00:17:20 +0200 Subject: gnu: jsoncpp: Update to 1.9.1. * gnu/packages/serialization.scm (jsoncpp): Update to 1.9.1. --- gnu/packages/serialization.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 505c196abd..f0ae0d2cab 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -297,7 +297,7 @@ (define-public yaml-cpp (define-public jsoncpp (package (name "jsoncpp") - (version "1.9.0") + (version "1.9.1") (home-page "https://github.com/open-source-parsers/jsoncpp") (source (origin (method git-fetch) @@ -305,7 +305,7 @@ (define-public jsoncpp (file-name (git-file-name name version)) (sha256 (base32 - "10wnwlq92gp32f5p55kjcc12jfsl0yq6f2y4abb0si6wym12krw9")))) + "00g356iv3kcp0gadj7gbyzf9jn9avvx9vxbxc7c2i5nnry8z72wj")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DBUILD_SHARED_LIBS:BOOL=YES"))) -- cgit v1.2.3 From 8dea61731bf08f4861b7904c1d40d9f5678495a3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 Jul 2019 00:17:39 +0200 Subject: gnu: whois: Update to 5.5.0. * gnu/packages/networking.scm (whois): Update to 5.5.0. --- 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 28779f9a47..bc252fc591 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -550,7 +550,7 @@ (define-public iodine (define-public whois (package (name "whois") - (version "5.4.3") + (version "5.5.0") (source (origin (method url-fetch) @@ -558,7 +558,7 @@ (define-public whois name "_" version ".tar.xz")) (sha256 (base32 - "1hqg14k0q4979a1amgms4sa1d2iiid51rra3jyqmv63hkw189ypy")))) + "0gbg9fis05zf2fl4264jplbphy75l50k3g92cz6mkmbsklrn7v34")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite -- cgit v1.2.3 From ec0de9d8bcc46bb6911b1f9ea135a354bac65b1a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 Jul 2019 14:53:12 +0200 Subject: gnu: zstd: Move libraries to separate outputs. * gnu/packages/compression.scm (zstd)[outputs]: New field. [arguments]: Add phase 'adjust-libary-locations'. Pass LIBDIR and INCLUDEDIR in <#:make-flags>. * gnu/packages/backup.scm (borg)[inputs]: Change ZSTD to ZSTD:LIB. * gnu/packages/sync.scm (casync)[inputs]: Likewise. * gnu/packages/tor.scm (tor)[inputs]: Likewise. * gnu/packages/linux.scm (btrfs-progs)[inputs]: Likewise. Add ZSTD:STATIC. --- gnu/packages/backup.scm | 2 +- gnu/packages/compression.scm | 32 ++++++++++++++++++++++++++++++-- gnu/packages/linux.scm | 3 ++- gnu/packages/sync.scm | 2 +- gnu/packages/tor.scm | 2 +- 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 6f319ccf16..47a6a9bf85 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -627,7 +627,7 @@ (define-public borg ;; transitional package for now: ;; ("python-msgpack" ,python-msgpack-transitional) - ("zstd" ,zstd))) + ("zstd" ,zstd "lib"))) (synopsis "Deduplicated, encrypted, authenticated and compressed backups") (description "Borg is a deduplicating backup program. Optionally, it supports compression and authenticated encryption. The main goal of Borg is to diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index a6a2a04f6f..3c5d355519 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2016 David Craven ;;; Copyright © 2016, 2019 Kei Kebreau -;;; Copyright © 2016, 2018 Marius Bakke +;;; Copyright © 2016, 2018, 2019 Marius Bakke ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis ;;; Copyright © 2017 Theodoros Foradis @@ -1372,13 +1372,41 @@ (define-public zstd (sha256 (base32 "13nlsqhkn276frxrzjdn7wz0j9zz414lf336885ykyxcvw2a0gr9")))) (build-system gnu-build-system) + (outputs '("out" ;1.1MiB executables and documentation + "lib" ;1MiB shared library and headers + "static")) ;1MiB static library (arguments `(#:phases (modify-phases %standard-phases - (delete 'configure)) ; no configure script + (delete 'configure) ;no configure script + (add-after 'install 'adjust-library-locations + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (assoc-ref outputs "lib")) + (static (assoc-ref outputs "static")) + (shared-libs (string-append lib "/lib")) + (static-libs (string-append static "/lib"))) + ;; Move the static library to its own output to save ~1MiB. + (mkdir-p static-libs) + (for-each (lambda (ar) + (link ar (string-append static-libs "/" + (basename ar))) + (delete-file ar)) + (find-files shared-libs "\\.a$")) + + ;; While here, remove prefix= from the pkg-config file because it + ;; is unused, and because it contains a needless reference to $out. + ;; XXX: It would be great if #:disallow-references worked between + ;; outputs. + (substitute* (string-append shared-libs "/pkgconfig/libzstd.pc") + (("^prefix=.*") "")) + + #t)))) #:make-flags (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "LIBDIR=" (assoc-ref %outputs "lib") "/lib") + (string-append "INCLUDEDIR=" (assoc-ref %outputs "lib") "/include") ;; Skip auto-detection of, and creating a dependency on, the build ;; environment's ‘xz’ for what amounts to a dubious feature anyway. "HAVE_LZMA=0" diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7d3800c541..52883282e8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3862,7 +3862,8 @@ (define-public btrfs-progs ("lzo" ,lzo) ("zlib" ,zlib) ("zlib:static" ,zlib "static") - ("zstd" ,zstd))) + ("zstd" ,zstd "lib") + ("zstd:static" ,zstd "static"))) (native-inputs `(("pkg-config" ,pkg-config) ("asciidoc" ,asciidoc) ("python" ,python) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index faff25ddc1..1c80b7978e 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -227,7 +227,7 @@ (define-public casync ("rsync" ,rsync))) ;for tests (inputs `(("xz" ,xz) ;for liblzma - ("zstd" ,zstd) + ("zstd" ,zstd "lib") ("curl" ,curl) ("acl" ,acl) ("libselinux" ,libselinux) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 25bd520d6b..8b5e8032ad 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -67,7 +67,7 @@ (define-public tor ("libevent" ,libevent) ("libseccomp" ,libseccomp) ("xz" ,xz) - ("zstd" ,zstd))) + ("zstd" ,zstd "lib"))) (home-page "https://www.torproject.org/") (synopsis "Anonymous network router to improve privacy on the Internet") (description -- cgit v1.2.3 From fb4ea42340f168eb5792828ec6119f6916e2bde9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 Jul 2019 15:01:53 +0200 Subject: gnu: zstd: Update to 1.4.1. * gnu/packages/compression.scm (zstd): Update to 1.4.1. --- 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 3c5d355519..d821298e56 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1363,14 +1363,14 @@ (define-public unshield (define-public zstd (package (name "zstd") - (version "1.3.8") + (version "1.4.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/facebook/zstd/releases/download/" "v" version "/zstd-" version ".tar.gz")) (sha256 - (base32 "13nlsqhkn276frxrzjdn7wz0j9zz414lf336885ykyxcvw2a0gr9")))) + (base32 "180sfl0iz5hy43xcr0gh8kz2vxgpb8rh5d7wmpxn3bxkgs320l2k")))) (build-system gnu-build-system) (outputs '("out" ;1.1MiB executables and documentation "lib" ;1MiB shared library and headers -- cgit v1.2.3 From a242776178a4fb4944d33a4e13dc257e77bea223 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 Jul 2019 15:51:49 +0200 Subject: gnu: libvpx: Update to 1.8.1. * gnu/packages/video.scm (libvpx): Update to 1.8.1. --- 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 7721f937b0..cbfef8b781 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1388,7 +1388,7 @@ (define-public gnome-mpv (define-public libvpx (package (name "libvpx") - (version "1.8.0") + (version "1.8.1") (source (origin ;; XXX: Upstream does not provide tarballs for > 1.6.1. (method git-fetch) @@ -1398,7 +1398,7 @@ (define-public libvpx (file-name (git-file-name name version)) (sha256 (base32 - "079pb80am08lj8y5rx99vdr99mdqis9067f172zq12alkz849n93")) + "0mm1dcfa268rwsrgzqpbbgq4lwrvdzgp90h9dxsnkhai70l7gipq")) (patches (search-patches "libvpx-CVE-2016-2818.patch")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 26986544469ef290885f5f8d71006751e9e8daf8 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 22 Jul 2019 16:17:36 +0200 Subject: gnu: vlc: Build against libvpx@1.8. * gnu/packages/video.scm (vlc)[inputs]: Change LIBVPX-1.7 to LIBVPX. --- 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 cbfef8b781..2854ae2228 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1073,7 +1073,7 @@ (define-public vlc ("libva" ,libva) ("libvdpau" ,libvdpau) ("libvorbis" ,libvorbis) - ("libvpx" ,libvpx-1.7) + ("libvpx" ,libvpx) ("libtheora" ,libtheora) ("libx264" ,libx264) ("libxext" ,libxext) -- cgit v1.2.3