From 02b067d782323ea2ee6b528f9e5cfcd19d63f01d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 22 Mar 2017 12:40:05 +0200 Subject: gnu: perl-compress-raw-zlib: Update to 2.074. * gnu/packages/compression.scm (perl-compress-raw-zlib): Update to 2.074. --- 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 d19ba2290b..d177a6c5c9 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -616,7 +616,7 @@ compression library.") (define-public perl-compress-raw-zlib (package (name "perl-compress-raw-zlib") - (version "2.068") + (version "2.074") (source (origin (method url-fetch) @@ -624,7 +624,7 @@ compression library.") "Compress-Raw-Zlib-" version ".tar.gz")) (sha256 (base32 - "06q7n87g26nn5gv4z2p31ca32f6zk124hqxc25rfgkjd3qi5798i")))) + "08bpx9v6i40n54rdcj6invlj294z20amrl8wvwf9b83aldwdwsd3")))) (build-system perl-build-system) (inputs `(("zlib" ,zlib))) -- cgit v1.2.3 From c0b7b797a2122d1a49d06eff9c230dc84aef9dbf Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 22 Mar 2017 12:45:55 +0200 Subject: gnu: perl-compress-raw-bzip2: Update to 2.074. * gnu/packages/compression.scm (perl-compress-raw-bzip2): Update to 2.074. --- 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 d177a6c5c9..479daf89a7 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -596,7 +596,7 @@ decompression of some loosely related file formats used by Microsoft.") (define-public perl-compress-raw-bzip2 (package (name "perl-compress-raw-bzip2") - (version "2.068") + (version "2.074") (source (origin (method url-fetch) @@ -604,7 +604,7 @@ decompression of some loosely related file formats used by Microsoft.") "Compress-Raw-Bzip2-" version ".tar.gz")) (sha256 (base32 - "16hl58xppckldz05zdyid1l5gpaykzwvkq682h3rc3nilbhgjqqg")))) + "0b5jwqf15zr787acnx8sfyy2zavdd7gfkd98n1dgy8fs6r8yb8a4")))) (build-system perl-build-system) ;; TODO: Use our bzip2 package. (home-page "http://search.cpan.org/dist/Compress-Raw-Bzip2") -- cgit v1.2.3 From c70b50efb95a4b0fa0391fb7557a0c6862493163 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 22 Mar 2017 12:50:36 +0200 Subject: gnu: perl-io-compress: Update to 2.074. * gnu/packages/compression.scm (perl-io-compress): Update to 2.074. [propagated-inputs]: Update minimum versions to 2.074. --- gnu/packages/compression.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 479daf89a7..6cdddb99a5 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -651,7 +651,7 @@ compression library.") (define-public perl-io-compress (package (name "perl-io-compress") - (version "2.068") + (version "2.074") (source (origin (method url-fetch) @@ -659,11 +659,11 @@ compression library.") "IO-Compress-" version ".tar.gz")) (sha256 (base32 - "0dy0apjp7j9dfkzfjspjd3z9gh26srx5vac72g59bkkz1jf8s1gs")))) + "1wlpy2026djfmq0bjync531yq6s695jf7bcnpvjphrasi776igdl")))) (build-system perl-build-system) (propagated-inputs - `(("perl-compress-raw-zlib" ,perl-compress-raw-zlib) ; >=2.068 - ("perl-compress-raw-bzip2" ,perl-compress-raw-bzip2))) ; >=2.068 + `(("perl-compress-raw-zlib" ,perl-compress-raw-zlib) ; >=2.074 + ("perl-compress-raw-bzip2" ,perl-compress-raw-bzip2))) ; >=2.074 (home-page "http://search.cpan.org/dist/IO-Compress") (synopsis "IO Interface to compressed files/buffers") (description "IO-Compress provides a Perl interface to allow reading and -- cgit v1.2.3 From 0e7c3ba1c0566daffd9627aebf6b6df28fcb7f35 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 22 Mar 2017 12:56:23 +0200 Subject: gnu: perl-mojolicious: Update to 7.29. * gnu/packages/perl-web.scm (perl-mojolicious): Update to 7.29. --- gnu/packages/perl-web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl-web.scm b/gnu/packages/perl-web.scm index 9c92a95dad..75637e6545 100644 --- a/gnu/packages/perl-web.scm +++ b/gnu/packages/perl-web.scm @@ -26,7 +26,7 @@ (define-public perl-mojolicious (package (name "perl-mojolicious") - (version "7.10") + (version "7.29") (source (origin (method url-fetch) @@ -34,7 +34,7 @@ version ".tar.gz")) (sha256 (base32 - "0811f3wajgf71y02dr2khqnaswjh582pcvhv93k101qpg61syihn")))) + "1kmyb9axqbklyvr3l4d6mxnb0r97s9hzn7jpzksgckklp1ic8sqh")))) (build-system perl-build-system) (home-page "http://mojolicious.org/") (synopsis "Real-time web framework") -- cgit v1.2.3 From 879b521cd051325255f03444d024c30106b4e9a1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 22 Mar 2017 12:18:23 +0100 Subject: gnu: python-pysam: Update to 0.10.0. * gnu/packages/bioinformatics.scm (python-pysam): Update to 0.10.0. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 90092ddf70..8f0cd0ae77 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1413,7 +1413,7 @@ multiple sequence alignments.") (define-public python-pysam (package (name "python-pysam") - (version "0.9.1.4") + (version "0.10.0") (source (origin (method url-fetch) ;; Test data is missing on PyPi. @@ -1423,7 +1423,7 @@ multiple sequence alignments.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0y41ssbg6nvn2jgcbnrvkzblpjcwszaiv1rgyd8dwzjkrbfsgsmc")) + "1mmvn91agr238kwz7226xq0i7k84lg2nxywn9712mzj7gvgqhfy8")) (modules '((guix build utils))) (snippet ;; Drop bundled htslib. TODO: Also remove samtools and bcftools. -- cgit v1.2.3 From 71dbf592c49e31b2f5e235278942b98f4ba99e72 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 22 Mar 2017 12:18:59 +0100 Subject: gnu: python-pysam: Run tests before installation. * gnu/packages/bioinformatics.scm (python-pysam)[arguments]: Adjust check phase to be run before installation. --- gnu/packages/bioinformatics.scm | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 8f0cd0ae77..51f0e0c0b0 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1430,7 +1430,11 @@ multiple sequence alignments.") '(delete-file-recursively "htslib")))) (build-system python-build-system) (arguments - `(#:phases + `(#:modules ((ice-9 ftw) + (srfi srfi-26) + (guix build python-build-system) + (guix build utils)) + #:phases (modify-phases %standard-phases (add-before 'build 'set-flags (lambda* (#:key inputs #:allow-other-keys) @@ -1442,23 +1446,21 @@ multiple sequence alignments.") (setenv "LDFLAGS" "-lncurses") (setenv "CFLAGS" "-D_CURSES_LIB=1") #t)) - (delete 'check) - (add-after 'install 'check + (replace 'check (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Add first subdirectory of "build" directory to PYTHONPATH. (setenv "PYTHONPATH" (string-append (getenv "PYTHONPATH") - ":" (assoc-ref outputs "out") - "/lib/python" - (string-take (string-take-right - (assoc-ref inputs "python") 5) 3) - "/site-packages")) + ":" (getcwd) "/build/" + (car (scandir "build" + (compose not (cut string-prefix? "." <>)))))) ;; Step out of source dir so python does not import from CWD. - (chdir "tests") - (setenv "HOME" "/tmp") - (and (zero? (system* "make" "-C" "pysam_data")) - (zero? (system* "make" "-C" "cbcf_data")) - (zero? (system* "nosetests" "-v")))))))) + (with-directory-excursion "tests" + (setenv "HOME" "/tmp") + (and (zero? (system* "make" "-C" "pysam_data")) + (zero? (system* "make" "-C" "cbcf_data")) + (zero? (system* "nosetests" "-v"))))))))) (propagated-inputs `(("htslib" ,htslib))) ; Included from installed header files. (inputs -- cgit v1.2.3 From 54262c543553a023c8835d706c2c1063cf20c079 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 22 Mar 2017 12:20:18 +0100 Subject: gnu: python-pysam: Run tests in parallel. * gnu/packages/bioinformatics.scm (python-pysam)[arguments]: Run nose tests in parallel. --- gnu/packages/bioinformatics.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 51f0e0c0b0..97380fc032 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1460,7 +1460,9 @@ multiple sequence alignments.") (setenv "HOME" "/tmp") (and (zero? (system* "make" "-C" "pysam_data")) (zero? (system* "make" "-C" "cbcf_data")) - (zero? (system* "nosetests" "-v"))))))))) + (zero? (system* "nosetests" "-v" + "--processes" + (number->string (parallel-job-count))))))))))) (propagated-inputs `(("htslib" ,htslib))) ; Included from installed header files. (inputs -- cgit v1.2.3 From 326249bab8e525b8c71f862fb1f2569d703a3e84 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 22 Mar 2017 12:45:48 +0100 Subject: gnu: rustc: End resultless phases in #t. * gnu/packages/rust.scm (rustc): End resultless phases in #t. --- gnu/packages/rust.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 2dedef8373..b72a206e6a 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -229,11 +229,13 @@ rustc-bootstrap and cargo-bootstrap packages.") (("/usr/bin/env") (which "env"))) ;; Avoid curl as a build dependency. (substitute* "configure" - (("probe_need CFG_CURL curl") "")))) + (("probe_need CFG_CURL curl") "")) + #t)) (add-after 'unpack 'set-env (lambda _ (setenv "SHELL" (which "sh")) - (setenv "CONFIG_SHELL" (which "sh")))) + (setenv "CONFIG_SHELL" (which "sh")) + #t)) (add-after 'unpack 'patch-tests (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/tools/tidy/src/main.rs" @@ -275,7 +277,8 @@ rustc-bootstrap and cargo-bootstrap packages.") ;; Let gcc find ld and libc startup files. (wrap-program (string-append out "/bin/rustc") `("PATH" ":" prefix (,(string-append ld-wrapper "/bin"))) - `("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib")))))))))) + `("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib")))) + #t)))))) ;; rustc invokes gcc, so we need to set its search paths accordingly. (native-search-paths (package-native-search-paths gcc)) (synopsis "Compiler for the Rust progamming language") -- cgit v1.2.3 From 5cd074ea32debac844ce3761f6baa3f63e3d61b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 22 Mar 2017 09:47:42 +0100 Subject: gnu: guile: Add 'guile-next' as a deprecated alias. This is a followup to f6396d862f9f8ce0c0e6894ce30599773167af0c. * gnu/packages/guile.scm (guile-next): New variable. --- gnu/packages/guile.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index df1f17201e..abb4fe9884 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -261,6 +261,9 @@ without requiring the source code to be rewritten.") (files '("lib/guile/2.2/site-ccache" "share/guile/site/2.2"))))))) +(define-public guile-next + (deprecated-package "guile-next" guile-2.2)) + (define (guile-variant-package-name prefix) (lambda (name) "Return NAME with PREFIX instead of \"guile-\", when applicable." -- cgit v1.2.3 From ab2a74e4dbfd396566a8b14223f5849304d4fe6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 22 Mar 2017 09:50:06 +0100 Subject: publish: The public and private keys are now SRFI-39 parameters. * guix/scripts/publish.scm (%default-options): Add 'public-key-file' and 'private-key-file'. (lazy-read-file-sexp): Remove. (%private-key, %public-key): Turn into SRFI-39 parameters. (signed-string, render-narinfo): Adjust accordingly. (guix-publish): Honor 'public-key-file' and 'private-key-file' from OPTS. Use 'parameterize'. * guix/pk-crypto.scm (read-file-sexp): New procedure. * tests/publish.scm: Initialize '%public-key' and '%private-key'. --- guix/pk-crypto.scm | 8 ++++++ guix/scripts/publish.scm | 63 +++++++++++++++++++++++++----------------------- tests/publish.scm | 5 ++++ 3 files changed, 46 insertions(+), 30 deletions(-) diff --git a/guix/pk-crypto.scm b/guix/pk-crypto.scm index 7017006a71..55ba7b1bb8 100644 --- a/guix/pk-crypto.scm +++ b/guix/pk-crypto.scm @@ -23,11 +23,13 @@ #:use-module (system foreign) #:use-module (rnrs bytevectors) #:use-module (ice-9 match) + #:use-module (ice-9 rdelim) #:export (canonical-sexp? error-source error-string string->canonical-sexp canonical-sexp->string + read-file-sexp number->canonical-sexp canonical-sexp-car canonical-sexp-cdr @@ -143,6 +145,12 @@ thrown along with 'gcry-error'." (loop (* len 2)) (pointer->string buf size "ISO-8859-1"))))))) +(define (read-file-sexp file) + "Return the canonical sexp read from FILE." + (call-with-input-file file + (compose string->canonical-sexp + read-string))) + (define canonical-sexp-car (let* ((ptr (libgcrypt-func "gcry_sexp_car")) (proc (pointer->procedure '* ptr '(*)))) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index 33a7b3bd42..57eea792b6 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson -;;; Copyright © 2015, 2016 Ludovic Courtès +;;; Copyright © 2015, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,7 +52,10 @@ #:use-module (guix scripts) #:use-module ((guix utils) #:select (compressed-file?)) #:use-module ((guix build utils) #:select (dump-port)) - #:export (guix-publish)) + #:export (%public-key + %private-key + + guix-publish)) (define (show-help) (format #t (_ "Usage: guix publish [OPTION]... @@ -154,6 +157,9 @@ compression disabled~%")) (define %default-options `((port . 8080) + (public-key-file . ,%public-key-file) + (private-key-file . ,%private-key-file) + ;; Default to fast & low compression. (compression . ,(if (zlib-available?) %default-gzip-compression @@ -162,18 +168,11 @@ compression disabled~%")) (address . ,(make-socket-address AF_INET INADDR_ANY 0)) (repl . #f))) -(define (lazy-read-file-sexp file) - "Return a promise to read the canonical sexp from FILE." - (delay - (call-with-input-file file - (compose string->canonical-sexp - read-string)))) - +;; The key pair used to sign narinfos. (define %private-key - (lazy-read-file-sexp %private-key-file)) - + (make-parameter #f)) (define %public-key - (lazy-read-file-sexp %public-key-file)) + (make-parameter #f)) (define %nix-cache-info `(("StoreDir" . ,%store-directory) @@ -186,10 +185,10 @@ compression disabled~%")) (define (signed-string s) "Sign the hash of the string S with the daemon's key." - (let* ((public-key (force %public-key)) + (let* ((public-key (%public-key)) (hash (bytevector->hash-data (sha256 (string->utf8 s)) #:key-type (key-type public-key)))) - (signature-sexp hash (force %private-key) public-key))) + (signature-sexp hash (%private-key) public-key))) (define base64-encode-string (compose base64-encode string->utf8)) @@ -279,7 +278,7 @@ appropriate duration." `((cache-control (max-age . ,ttl))) '())) (cut display - (narinfo-string store store-path (force %private-key) + (narinfo-string store store-path (%private-key) #:compression compression) <>))))) @@ -566,11 +565,12 @@ blocking." (sockaddr:addr addr) port))) (socket (open-server-socket address)) - (repl-port (assoc-ref opts 'repl))) - ;; Read the key right away so that (1) we fail early on if we can't - ;; access them, and (2) we can then drop privileges. - (force %private-key) - (force %public-key) + (repl-port (assoc-ref opts 'repl)) + + ;; Read the key right away so that (1) we fail early on if we can't + ;; access them, and (2) we can then drop privileges. + (public-key (read-file-sexp (assoc-ref opts 'public-key-file))) + (private-key (read-file-sexp (assoc-ref opts 'private-key-file)))) (when user ;; Now that we've read the key material and opened the socket, we can @@ -580,13 +580,16 @@ blocking." (when (zero? (getuid)) (warning (_ "server running as root; \ consider using the '--user' option!~%"))) - (format #t (_ "publishing ~a on ~a, port ~d~%") - %store-directory - (inet-ntop (sockaddr:fam address) (sockaddr:addr address)) - (sockaddr:port address)) - (when repl-port - (repl:spawn-server (repl:make-tcp-server-socket #:port repl-port))) - (with-store store - (run-publish-server socket store - #:compression compression - #:narinfo-ttl ttl))))) + + (parameterize ((%public-key public-key) + (%private-key private-key)) + (format #t (_ "publishing ~a on ~a, port ~d~%") + %store-directory + (inet-ntop (sockaddr:fam address) (sockaddr:addr address)) + (sockaddr:port address)) + (when repl-port + (repl:spawn-server (repl:make-tcp-server-socket #:port repl-port))) + (with-store store + (run-publish-server socket store + #:compression compression + #:narinfo-ttl ttl)))))) diff --git a/tests/publish.scm b/tests/publish.scm index 0fd3b50ecb..c0a0f72d9b 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -33,6 +33,7 @@ #:use-module ((guix records) #:select (recutils->alist)) #:use-module ((guix serialization) #:select (restore-file)) #:use-module (guix pk-crypto) + #:use-module ((guix pki) #:select (%public-key-file %private-key-file)) #:use-module (guix zlib) #:use-module (web uri) #:use-module (web client) @@ -100,6 +101,10 @@ ;; Wait until the two servers are ready. (wait-until-ready 6789) +;; Initialize the public/private key SRFI-39 parameters. +(%public-key (read-file-sexp %public-key-file)) +(%private-key (read-file-sexp %private-key-file)) + (test-begin "publish") -- cgit v1.2.3 From 46f58390cb5a01d6cb59070e8e76e9a78e9b933e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 22 Mar 2017 11:26:05 +0100 Subject: publish: Add '--public-key' and '--private-key'. * guix/scripts/publish.scm (show-help, %options): Add --public-key and --private-key. * doc/guix.texi (Invoking guix publish): Document it. --- doc/guix.texi | 12 ++++++++++++ guix/scripts/publish.scm | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 8d27dd2031..6c4e1800c1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6523,6 +6523,18 @@ This allows the user's Guix to keep substitute information in cache for guarantee that the store items it provides will indeed remain available for as long as @var{ttl}. +@item --public-key=@var{file} +@itemx --private-key=@var{file} +Use the specific @var{file}s as the public/private key pair used to sign +the store items being published. + +The files must correspond to the same key pair (the private key is used +for signing and the public key is merely advertised in the signature +metadata). They must contain keys in the canonical s-expression format +as produced by @command{guix archive --generate-key} (@pxref{Invoking +guix archive}). By default, @file{/etc/guix/signing-key.pub} and +@file{/etc/guix/signing-key.sec} are used. + @item --repl[=@var{port}] @itemx -r [@var{port}] Spawn a Guile REPL server (@pxref{REPL Servers,,, guile, GNU Guile diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index 57eea792b6..5a5ef68422 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -71,6 +71,10 @@ Publish ~a over HTTP.\n") %store-directory) compress archives at LEVEL")) (display (_ " --ttl=TTL announce narinfos can be cached for TTL seconds")) + (display (_ " + --public-key=FILE use FILE as the public key for signatures")) + (display (_ " + --private-key=FILE use FILE as the private key for signatures")) (display (_ " -r, --repl[=PORT] spawn REPL server on PORT")) (newline) @@ -148,6 +152,12 @@ compression disabled~%")) (leave (_ "~a: invalid duration~%") arg)) (alist-cons 'narinfo-ttl (time-second duration) result)))) + (option '("public-key") #t #f + (lambda (opt name arg result) + (alist-cons 'public-key-file arg result))) + (option '("private-key" "secret-key") #t #f + (lambda (opt name arg result) + (alist-cons 'private-key-file arg result))) (option '(#\r "repl") #f #t (lambda (opt name arg result) ;; If port unspecified, use default Guile REPL port. -- cgit v1.2.3 From cdd7a7d2106d295ca10fc23a94b6e9d1c8b5a82a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 22 Mar 2017 13:31:54 +0100 Subject: publish: Make the nar URL prefix a parameter. * guix/scripts/publish.scm (narinfo-string): Add #:nar-path and honor it. (render-narinfo): Likewise. (make-request-handler): Likewise. (run-publish-server): Likewise. * tests/publish.scm ("custom nar path"): New test. --- guix/scripts/publish.scm | 54 ++++++++++++++++++++++++++++++------------------ tests/publish.scm | 30 +++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 20 deletions(-) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index 5a5ef68422..ba5be04818 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -204,16 +204,17 @@ compression disabled~%")) (compose base64-encode string->utf8)) (define* (narinfo-string store store-path key - #:key (compression %no-compression)) + #:key (compression %no-compression) + (nar-path "nar")) "Generate a narinfo key/value string for STORE-PATH; an exception is raised if STORE-PATH is invalid. Produce a URL that corresponds to COMPRESSION. The -narinfo is signed with KEY." +narinfo is signed with KEY. NAR-PATH specifies the prefix for nar URLs." (let* ((path-info (query-path-info store store-path)) (compression (if (compressed-file? store-path) %no-compression compression)) (url (encode-and-join-uri-path - `("nar" + `(,@(split-and-decode-uri-path nar-path) ,@(match compression (($ 'none) '()) @@ -275,11 +276,12 @@ References: ~a~%" %nix-cache-info)))) (define* (render-narinfo store request hash - #:key ttl (compression %no-compression)) + #:key ttl (compression %no-compression) + (nar-path "nar")) "Render metadata for the store path corresponding to HASH. If TTL is true, advertise it as the maximum validity period (in seconds) via the 'Cache-Control' header. This allows 'guix substitute' to cache it for an -appropriate duration." +appropriate duration. NAR-PATH specifies the prefix for nar URLs." (let ((store-path (hash-part->path store hash))) (if (string-null? store-path) (not-found request) @@ -289,6 +291,7 @@ appropriate duration." '())) (cut display (narinfo-string store store-path (%private-key) + #:nar-path nar-path #:compression compression) <>))))) @@ -478,7 +481,12 @@ blocking." (define* (make-request-handler store #:key narinfo-ttl + (nar-path "nar") (compression %no-compression)) + (define nar-path? + (let ((expected (split-and-decode-uri-path nar-path))) + (cut equal? expected <>))) + (lambda (request body) (format #t "~a ~a~%" (request-method request) @@ -494,19 +502,23 @@ blocking." ;; NARINFO-TTL. (render-narinfo store request hash #:ttl narinfo-ttl + #:nar-path nar-path #:compression compression)) + ;; /nar/file/NAME/sha256/HASH + (("file" name "sha256" hash) + (guard (c ((invalid-base32-character? c) + (not-found request))) + (let ((hash (nix-base32-string->bytevector hash))) + (render-content-addressed-file store request + name 'sha256 hash)))) ;; Use different URLs depending on the compression type. This ;; guarantees that /nar URLs remain valid even when 'guix publish' ;; is restarted with different compression parameters. - ;; /nar/ - (("nar" store-item) - (render-nar store request store-item - #:compression %no-compression)) ;; /nar/gzip/ - (("nar" "gzip" store-item) - (if (zlib-available?) + ((components ... "gzip" store-item) + (if (and (nar-path? components) (zlib-available?)) (render-nar store request store-item #:compression (match compression @@ -516,19 +528,21 @@ blocking." %default-gzip-compression))) (not-found request))) - ;; /nar/file/NAME/sha256/HASH - (("file" name "sha256" hash) - (guard (c ((invalid-base32-character? c) - (not-found request))) - (let ((hash (nix-base32-string->bytevector hash))) - (render-content-addressed-file store request - name 'sha256 hash)))) - (_ (not-found request))) + ;; /nar/ + ((components ... store-item) + (if (nar-path? components) + (render-nar store request store-item + #:compression %no-compression) + (not-found request))) + + (x (not-found request))) (not-found request)))) (define* (run-publish-server socket store - #:key (compression %no-compression) narinfo-ttl) + #:key (compression %no-compression) + (nar-path "nar") narinfo-ttl) (run-server (make-request-handler store + #:nar-path nar-path #:narinfo-ttl narinfo-ttl #:compression compression) concurrent-http-server diff --git a/tests/publish.scm b/tests/publish.scm index c0a0f72d9b..ea0f4a3477 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -232,6 +232,36 @@ References: ~%" (list (assoc-ref info "Compression") (dirname (assoc-ref info "URL"))))) +(test-equal "custom nar path" + ;; Serve nars at /foo/bar/chbouib instead of /nar. + (list `(("StorePath" . ,%item) + ("URL" . ,(string-append "foo/bar/chbouib/" (basename %item))) + ("Compression" . "none")) + 200 + 404) + (let ((thread (with-separate-output-ports + (call-with-new-thread + (lambda () + (guix-publish "--port=6798" "-C0" + "--nar-path=///foo/bar//chbouib/")))))) + (wait-until-ready 6798) + (let* ((base "http://localhost:6798/") + (part (store-path-hash-part %item)) + (url (string-append base part ".narinfo")) + (nar-url (string-append base "foo/bar/chbouib/" + (basename %item))) + (body (http-get-port url))) + (list (filter (lambda (item) + (match item + (("Compression" . _) #t) + (("StorePath" . _) #t) + (("URL" . _) #t) + (_ #f))) + (recutils->alist body)) + (response-code (http-get nar-url)) + (response-code + (http-get (string-append base "nar/" (basename %item)))))))) + (test-equal "/nar/ with properly encoded '+' sign" "Congrats!" (let ((item (add-text-to-store %store "fake-gtk+" "Congrats!"))) -- cgit v1.2.3 From 4bb5e0aeb3b7f5396dff1fcd2b85b65af5e07038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 22 Mar 2017 14:00:06 +0100 Subject: publish: Add '--nar-path'. * guix/scripts/publish.scm (show-help, %options): Add '--nar-path'. (%default-options): Add 'nar-path'. (guix-publish): Honor it. --- doc/guix.texi | 8 ++++++++ guix/scripts/publish.scm | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 6c4e1800c1..b57e219562 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6523,6 +6523,14 @@ This allows the user's Guix to keep substitute information in cache for guarantee that the store items it provides will indeed remain available for as long as @var{ttl}. +@item --nar-path=@var{path} +Use @var{path} as the prefix for the URLs of ``nar'' files +(@pxref{Invoking guix archive, normalized archives}). + +By default, nars are served at a URL such as +@code{/nar/gzip/@dots{}-coreutils-8.25}. This option allows you to +change the @code{/nar} part to @var{path}. + @item --public-key=@var{file} @itemx --private-key=@var{file} Use the specific @var{file}s as the public/private key pair used to sign diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index ba5be04818..d8ac72f4ef 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -71,6 +71,8 @@ Publish ~a over HTTP.\n") %store-directory) compress archives at LEVEL")) (display (_ " --ttl=TTL announce narinfos can be cached for TTL seconds")) + (display (_ " + --nar-path=PATH use PATH as the prefix for nar URLs")) (display (_ " --public-key=FILE use FILE as the public key for signatures")) (display (_ " @@ -152,6 +154,9 @@ compression disabled~%")) (leave (_ "~a: invalid duration~%") arg)) (alist-cons 'narinfo-ttl (time-second duration) result)))) + (option '("nar-path") #t #f + (lambda (opt name arg result) + (alist-cons 'nar-path arg result))) (option '("public-key") #t #f (lambda (opt name arg result) (alist-cons 'public-key-file arg result))) @@ -167,6 +172,9 @@ compression disabled~%")) (define %default-options `((port . 8080) + ;; By default, serve nars under "/nar". + (nar-path . "nar") + (public-key-file . ,%public-key-file) (private-key-file . ,%private-key-file) @@ -589,6 +597,7 @@ blocking." (sockaddr:addr addr) port))) (socket (open-server-socket address)) + (nar-path (assoc-ref opts 'nar-path)) (repl-port (assoc-ref opts 'repl)) ;; Read the key right away so that (1) we fail early on if we can't @@ -615,5 +624,6 @@ consider using the '--user' option!~%"))) (repl:spawn-server (repl:make-tcp-server-socket #:port repl-port))) (with-store store (run-publish-server socket store + #:nar-path nar-path #:compression compression #:narinfo-ttl ttl)))))) -- cgit v1.2.3 From aeb6fe5fa0891c1b825a8f403dd1c42bbfd6e952 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 22 Mar 2017 15:01:03 +0200 Subject: gnu: autoconf-archive: Update to 2017.03.21. * gnu/packages/autotools.scm (autoconf-archive): Update to 2017.03.21. --- gnu/packages/autotools.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 72492e70eb..72d84b51b1 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -163,7 +163,7 @@ exec ~a --no-auto-compile \"$0\" \"$@\" (define-public autoconf-archive (package (name "autoconf-archive") - (version "2016.09.16") + (version "2017.03.21") (source (origin (method url-fetch) @@ -171,7 +171,7 @@ exec ~a --no-auto-compile \"$0\" \"$@\" version ".tar.xz")) (sha256 (base32 - "10mxz9hfnfz66m1l9s28sbyfb9a04akz92wkyv9blhpq6p9fzwp8")))) + "0rfpapadka2023qhy8294ca5awxpb8d4904js6kv7piby5ax8siq")))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/autoconf-archive") (synopsis "Collection of freely reusable Autoconf macros") -- cgit v1.2.3 From ed407f3ccc5de3e440884001d05887a07df5fa81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 22 Mar 2017 14:40:51 +0100 Subject: tests: Fix 'cond-expand' clause for 2.2/2.0. Fixes a mistake in a9a0227c0127e1813190a7664f7ad858e791480d. * tests/store.scm ("current-build-output-port, UTF-8 + garbage"): Inverse the 'cond-expand' clauses since the 'guile-2.0' feature doesn't exist. --- tests/store.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/store.scm b/tests/store.scm index c0ebe7b941..45150d36ca 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -384,8 +384,8 @@ (guard (c ((nix-protocol-error? c) #t)) (build-derivations %store (list d)))))))) (cond-expand - (guile-2.0 "garbage: ?lambda: λ") - (else "garbage: �lambda: λ")))) + (guile-2.2 "garbage: �lambda: λ") + (else "garbage: ?lambda: λ")))) (test-assert "log-file, derivation" (let* ((b (add-text-to-store %store "build" "echo $foo > $out" '())) -- cgit v1.2.3 From 50b4d3ac2699764079882eea164cb176a74799aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 22 Mar 2017 14:43:56 +0100 Subject: tests: Skip 'guix pack' test when networking is unavailable. * tests/pack.scm ("self-contained-tarball"): Skip unless (network-reachable?). --- tests/pack.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/pack.scm b/tests/pack.scm index eb643c3229..3bce715075 100644 --- a/tests/pack.scm +++ b/tests/pack.scm @@ -50,6 +50,7 @@ (test-begin "pack") +(unless (network-reachable?) (test-skip 1)) (test-assertm "self-contained-tarball" (mlet* %store-monad ((profile (profile-derivation (packages->manifest -- cgit v1.2.3 From 73a46451af333c77d2e79aa8764f51be8c34d1ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 22 Mar 2017 14:59:24 +0100 Subject: build: 'test-driver.scm' prints Scheme values with 'write'. Previously it would print them with 'display', which was inconvenient. * build-aux/test-driver.scm (test-display): Use ~S for VALUE. (test-runner-gnu): Use 'format' instead of 'test-display' for the test name, location, and result kind. --- build-aux/test-driver.scm | 51 +++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/build-aux/test-driver.scm b/build-aux/test-driver.scm index e9cc2cb24c..52af1e9be7 100644 --- a/build-aux/test-driver.scm +++ b/build-aux/test-driver.scm @@ -1,6 +1,6 @@ ;;;; test-driver.scm - Guile test driver for Automake testsuite harness -(define script-version "2016-04-03.12") ;UTC +(define script-version "2017-03-22.13") ;UTC ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; @@ -59,7 +59,7 @@ The '--test-name', '--log-file' and '--trs-file' options are mandatory.\n")) (begin (format port "~A:~%" field) (pretty-print value port #:per-line-prefix "+ ")) - (format port "~A: ~A~%" field value))) + (format port "~A: ~S~%" field value))) (define* (result->string symbol #:key colorize?) "Return SYMBOL as an upper case string. Use colors when COLORIZE is #t." @@ -85,10 +85,10 @@ current output port is supposed to be redirected to a '.log' file." ;; Procedure called at the start of an individual test case, before the ;; test expression (and expected value) are evaluated. (let ((result (cute assq-ref (test-result-alist runner) <>))) - (test-display "test-name" (result 'test-name)) - (test-display "location" - (string-append (result 'source-file) ":" - (number->string (result 'source-line)))) + (format #t "test-name: ~A~%" (result 'test-name)) + (format #t "location: ~A~%" + (string-append (result 'source-file) ":" + (number->string (result 'source-line)))) (test-display "source" (result 'source-form) #:pretty? #t))) (define (test-on-test-end-gnu runner) @@ -99,10 +99,9 @@ current output port is supposed to be redirected to a '.log' file." (result (cut assq-ref results <>))) (unless brief? ;; Display the result of each test case on the console. - (test-display - (result->string (test-result-kind runner) #:colorize? color?) - (string-append test-name " - " (test-runner-test-name runner)) - out-port)) + (format out-port "~A: ~A - ~A~%" + (result->string (test-result-kind runner) #:colorize? color?) + test-name (test-runner-test-name runner))) (when (result? 'expected-value) (test-display "expected-value" (result 'expected-value))) (when (result? 'expected-error) @@ -111,12 +110,11 @@ current output port is supposed to be redirected to a '.log' file." (test-display "actual-value" (result 'actual-value))) (when (result? 'actual-error) (test-display "actual-error" (result 'actual-error) #:pretty? #t)) - (test-display "result" (result->string (result 'result-kind))) + (format #t "result: ~a~%" (result->string (result 'result-kind))) (newline) - (test-display ":test-result" - (string-append (result->string (test-result-kind runner)) - " " (test-runner-test-name runner)) - trs-port))) + (format trs-port ":test-result: ~A ~A~%" + (result->string (test-result-kind runner)) + (test-runner-test-name runner)))) (define (test-on-group-end-gnu runner) ;; Procedure called by a 'test-end', including at the end of a test-group. @@ -125,21 +123,18 @@ current output port is supposed to be redirected to a '.log' file." (skip (or (positive? (test-runner-skip-count runner)) (positive? (test-runner-xfail-count runner))))) ;; XXX: The global results need some refinements for XPASS. - (test-display ":global-test-result" - (if fail "FAIL" (if skip "SKIP" "PASS")) - trs-port) - (test-display ":recheck" - (if fail "yes" "no") - trs-port) - (test-display ":copy-in-global-log" - (if (or fail skip) "yes" "no") - trs-port) + (format trs-port ":global-test-result: ~A~%" + (if fail "FAIL" (if skip "SKIP" "PASS"))) + (format trs-port ":recheck: ~A~%" + (if fail "yes" "no")) + (format trs-port ":copy-in-global-log: ~A~%" + (if (or fail skip) "yes" "no")) (when brief? ;; Display the global test group result on the console. - (test-display (result->string (if fail 'fail (if skip 'skip 'pass)) - #:colorize? color?) - test-name - out-port)) + (format out-port "~A: ~A~%" + (result->string (if fail 'fail (if skip 'skip 'pass)) + #:colorize? color?) + test-name)) #f)) (let ((runner (test-runner-null))) -- cgit v1.2.3 From 493ae57ecad7313cf4820bf50cda80804653c6b8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 22 Mar 2017 16:08:36 +0200 Subject: gnu: binutils-vc4: Set source file-name. * gnu/packages/embedded.scm (binutils-vc4)[source]: Add file-name field. --- gnu/packages/embedded.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 3e1f87d749..fbbafc6a3b 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -732,6 +732,7 @@ simulator.") (uri (git-reference (url "https://github.com/puppeh/binutils-vc4.git") (commit commit))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "1kdrz6fki55lm15rwwamn74fnqpy0zlafsida2zymk76n3656c63")))) -- cgit v1.2.3 From 61a3137bdd72b87aa4a4d4ce9b764fac05e835bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 22 Mar 2017 16:03:23 +0100 Subject: gnu: guix: Update development snapshot. * gnu/packages/package-management.scm (guix-devel): Update to 73a4645. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index f675e22ad9..cabfc862ac 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -214,9 +214,9 @@ the Nix package manager.") ;; ;; Note: use a very short commit id; with a longer one, the limit on ;; hash-bang lines would be exceeded while running the tests. - (let ((commit "1162418ee88f155f6b14fd8926479c2176e40e76")) + (let ((commit "73a46451af333c77d2e79aa8764f51be8c34d1ae")) (package (inherit guix-0.12.0) - (version (string-append "0.12.0-5." (string-take commit 4))) + (version (string-append "0.12.0-6." (string-take commit 4))) (source (origin (method git-fetch) (uri (git-reference @@ -226,7 +226,7 @@ the Nix package manager.") (commit commit))) (sha256 (base32 - "16pxqbywhayazdgg9l19frigncmyq20j5fvaq4zgvm0iidndhfja")) + "1zfa6c1vf52rg7ba1nrz4hzgdwl16brc4iylcdnhl9mnkjg2fbr5")) (file-name (string-append "guix-" version "-checkout")))) (arguments (substitute-keyword-arguments (package-arguments guix-0.12.0) -- cgit v1.2.3 From 9b7a9580d46e7c2840e7cbd9bb0bfa2fb9dd654f Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 22 Mar 2017 17:40:06 +0100 Subject: gnu: rustc: Honor max line length. * gnu/packages/rust.scm (rustc)[arguments]: patch-tests: Honor max line length. --- gnu/packages/rust.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index b72a206e6a..af4d322a73 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -238,11 +238,12 @@ rustc-bootstrap and cargo-bootstrap packages.") #t)) (add-after 'unpack 'patch-tests (lambda* (#:key inputs #:allow-other-keys) - (substitute* "src/tools/tidy/src/main.rs" - (("^.*cargo.*::check.*$") "")) - (substitute* "src/libstd/process.rs" - (("\"/bin/sh\"") (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\""))) - #t)) + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "src/tools/tidy/src/main.rs" + (("^.*cargo.*::check.*$") "")) + (substitute* "src/libstd/process.rs" + (("\"/bin/sh\"") (string-append "\"" bash "/bin/sh\""))) + #t))) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) -- cgit v1.2.3 From 112d645ffa5f4ce210d84a9c4c9d917da937e3b3 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 22 Mar 2017 13:04:07 -0400 Subject: gnu: dovecot: Update to 2.2.28. * gnu/packages/mail.scm (dovecot): Update to 2.2.28. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index aaf9fce609..2ae1277ae1 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1080,7 +1080,7 @@ facilities for checking incoming mail.") (define-public dovecot (package (name "dovecot") - (version "2.2.27") + (version "2.2.28") (source (origin (method url-fetch) @@ -1088,7 +1088,7 @@ facilities for checking incoming mail.") (version-major+minor version) "/" name "-" version ".tar.gz")) (sha256 (base32 - "1s8qvr6fa9d0n179kdwgpsi72zkvpbh9q57q8fr2fjysgjl94zw9")))) + "098zpkmkk93372qnv6drgbfg8hp5mynspzc1735qgar6wdcqya70")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 359e9c4215c624a3fa7235096b49902238ce7864 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Tue, 21 Mar 2017 14:54:04 -0400 Subject: gnu: chicken: Update to 4.12.0. * gnu/packages/scheme.scm (chicken): Update to 4.12.0. --- gnu/local.mk | 2 +- .../chicken-CVE-2016-6830+CVE-2016-6831.patch | 81 ------------- gnu/packages/patches/chicken-CVE-2017-6949.patch | 132 +++++++++++++++++++++ gnu/packages/scheme.scm | 16 +-- 4 files changed, 137 insertions(+), 94 deletions(-) delete mode 100644 gnu/packages/patches/chicken-CVE-2016-6830+CVE-2016-6831.patch create mode 100644 gnu/packages/patches/chicken-CVE-2017-6949.patch diff --git a/gnu/local.mk b/gnu/local.mk index 97ca3eb720..0eb18f26c1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -505,7 +505,7 @@ dist_patch_DATA = \ %D%/packages/patches/calibre-drop-unrar.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ - %D%/packages/patches/chicken-CVE-2016-6830+CVE-2016-6831.patch \ + %D%/packages/patches/chicken-CVE-2017-6949.patch \ %D%/packages/patches/chmlib-inttypes.patch \ %D%/packages/patches/clang-libc-search-path.patch \ %D%/packages/patches/clang-3.8-libc-search-path.patch \ diff --git a/gnu/packages/patches/chicken-CVE-2016-6830+CVE-2016-6831.patch b/gnu/packages/patches/chicken-CVE-2016-6830+CVE-2016-6831.patch deleted file mode 100644 index 59decde0e9..0000000000 --- a/gnu/packages/patches/chicken-CVE-2016-6830+CVE-2016-6831.patch +++ /dev/null @@ -1,81 +0,0 @@ -diff -ur a/irregex-core.scm b/irregex-core.scm ---- a/irregex-core.scm 2016-09-11 19:03:00.000000000 -0400 -+++ b/irregex-core.scm 2017-01-01 22:24:08.000000000 -0500 -@@ -30,6 +30,8 @@ - - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;;;; History -+;; 0.9.6: 2016/12/05 - fixed exponential memory use of + in compilation -+;; of backtracking matcher. - ;; 0.9.5: 2016/09/10 - fixed a bug in irregex-fold handling of bow - ;; 0.9.4: 2015/12/14 - performance improvement for {n,m} matches - ;; 0.9.3: 2014/07/01 - R7RS library -@@ -3170,16 +3172,7 @@ - ((sre-empty? (sre-sequence (cdr sre))) - (error "invalid sre: empty *" sre)) - (else -- (letrec -- ((body -- (lp (sre-sequence (cdr sre)) -- n -- flags -- (lambda (cnk init src str i end matches fail) -- (body cnk init src str i end matches -- (lambda () -- (next cnk init src str i end matches fail) -- )))))) -+ (let ((body (rec (list '+ (sre-sequence (cdr sre)))))) - (lambda (cnk init src str i end matches fail) - (body cnk init src str i end matches - (lambda () -@@ -3204,10 +3197,21 @@ - (lambda () - (body cnk init src str i end matches fail)))))))) - ((+) -- (lp (sre-sequence (cdr sre)) -- n -- flags -- (rec (list '* (sre-sequence (cdr sre)))))) -+ (cond -+ ((sre-empty? (sre-sequence (cdr sre))) -+ (error "invalid sre: empty +" sre)) -+ (else -+ (letrec -+ ((body -+ (lp (sre-sequence (cdr sre)) -+ n -+ flags -+ (lambda (cnk init src str i end matches fail) -+ (body cnk init src str i end matches -+ (lambda () -+ (next cnk init src str i end matches fail) -+ )))))) -+ body)))) - ((=) - (rec `(** ,(cadr sre) ,(cadr sre) ,@(cddr sre)))) - ((>=) -diff -ur a/irregex-utils.scm b/irregex-utils.scm ---- a/irregex-utils.scm 2016-09-11 19:03:00.000000000 -0400 -+++ b/irregex-utils.scm 2017-01-01 22:25:25.000000000 -0500 -@@ -89,7 +89,7 @@ - (case (car x) - ((: seq) - (cond -- ((and (pair? (cddr x)) (pair? (cddr x)) (not (eq? x obj))) -+ ((and (pair? (cdr x)) (pair? (cddr x)) (not (eq? x obj))) - (display "(?:" out) (for-each lp (cdr x)) (display ")" out)) - (else (for-each lp (cdr x))))) - ((submatch) -diff -ur "a/manual-html/Unit irregex.html" "b/manual-html/Unit irregex.html" ---- "a/manual-html/Unit irregex.html" 2016-09-11 19:10:47.000000000 -0400 -+++ "b/manual-html/Unit irregex.html" 2017-01-01 22:26:05.000000000 -0500 -@@ -353,6 +353,6 @@ -

Returns an optimized SRE matching any of the literal strings in the list, like Emacs' regexp-opt. Note this optimization doesn't help when irregex is able to build a DFA.

- -
sre->string
(sre->string <sre>) procedure
--

Convert an SRE to a POSIX-style regular expression string, if possible.

-+

Convert an SRE to a PCRE-style regular expression string, if possible.

-
--

Previous: Unit extras

Next: Unit srfi-1

-\ No newline at end of file -+

Previous: Unit extras

Next: Unit srfi-1

diff --git a/gnu/packages/patches/chicken-CVE-2017-6949.patch b/gnu/packages/patches/chicken-CVE-2017-6949.patch new file mode 100644 index 0000000000..00552eec76 --- /dev/null +++ b/gnu/packages/patches/chicken-CVE-2017-6949.patch @@ -0,0 +1,132 @@ +From: LemonBoy +Date: Fri, 10 Mar 2017 16:29:47 +0100 +Subject: [PATCH] Add bound checking to all srfi-4 vector allocations. + +Do what C_allocate_vector already does and prevent the creation of a +vector that's too big or too small. +We should be very careful to avoid the latter case because the +allocation size is directly fed into `malloc' as 'x + sizeof(C_header)' +thus making possible to successfully allocate a vector smaller than the +C_header structure and get C_block_header_init to write over +uninitialized memory. + +To reduce code duplication, type checking is moved from each of the +make-*vector procedures to the common "alloc" helper procedure. + +Signed-off-by: Peter Bex +Signed-off-by: Kooda +--- + srfi-4.scm | 34 +++++++++++++++------------------- + 1 file changed, 15 insertions(+), 19 deletions(-) + +diff --git a/srfi-4.scm b/srfi-4.scm +index 7f5412b..69f58ba 100644 +--- a/srfi-4.scm ++++ b/srfi-4.scm +@@ -255,24 +255,28 @@ EOF + + ;;; Basic constructors: + +-(let* ([ext-alloc +- (foreign-lambda* scheme-object ([int bytes]) +- "C_word *buf = (C_word *)C_malloc(bytes + sizeof(C_header));" ++(let* ((ext-alloc ++ (foreign-lambda* scheme-object ((size_t bytes)) ++ "C_word *buf;" ++ "if (bytes > C_HEADER_SIZE_MASK) C_return(C_SCHEME_FALSE);" ++ "buf = (C_word *)C_malloc(bytes + sizeof(C_header));" + "if(buf == NULL) C_return(C_SCHEME_FALSE);" + "C_block_header_init(buf, C_make_header(C_BYTEVECTOR_TYPE, bytes));" +- "C_return(buf);") ] +- [ext-free +- (foreign-lambda* void ([scheme-object bv]) +- "C_free((void *)C_block_item(bv, 1));") ] +- [alloc ++ "C_return(buf);") ) ++ (ext-free ++ (foreign-lambda* void ((scheme-object bv)) ++ "C_free((void *)C_block_item(bv, 1));") ) ++ (alloc + (lambda (loc len ext?) ++ (##sys#check-exact len loc) ++ (when (fx< len 0) (##sys#error loc "size is negative" len)) + (if ext? +- (let ([bv (ext-alloc len)]) ++ (let ((bv (ext-alloc len))) + (or bv + (##sys#error loc "not enough memory - cannot allocate external number vector" len)) ) +- (let ([bv (##sys#allocate-vector len #t #f #t)]) ; this could be made better... ++ (let ((bv (##sys#allocate-vector len #t #f #t))) ; this could be made better... + (##core#inline "C_string_to_bytevector" bv) +- bv) ) ) ] ) ++ bv) ) ) ) ) + + (set! release-number-vector + (lambda (v) +@@ -282,7 +286,6 @@ EOF + + (set! make-u8vector + (lambda (len #!optional (init #f) (ext? #f) (fin? #t)) +- (##sys#check-exact len 'make-u8vector) + (let ((v (##sys#make-structure 'u8vector (alloc 'make-u8vector len ext?)))) + (when (and ext? fin?) (set-finalizer! v ext-free)) + (if (not init) +@@ -295,7 +298,6 @@ EOF + + (set! make-s8vector + (lambda (len #!optional (init #f) (ext? #f) (fin? #t)) +- (##sys#check-exact len 'make-s8vector) + (let ((v (##sys#make-structure 's8vector (alloc 'make-s8vector len ext?)))) + (when (and ext? fin?) (set-finalizer! v ext-free)) + (if (not init) +@@ -308,7 +310,6 @@ EOF + + (set! make-u16vector + (lambda (len #!optional (init #f) (ext? #f) (fin? #t)) +- (##sys#check-exact len 'make-u16vector) + (let ((v (##sys#make-structure 'u16vector (alloc 'make-u16vector (##core#inline "C_fixnum_shift_left" len 1) ext?)))) + (when (and ext? fin?) (set-finalizer! v ext-free)) + (if (not init) +@@ -321,7 +322,6 @@ EOF + + (set! make-s16vector + (lambda (len #!optional (init #f) (ext? #f) (fin? #t)) +- (##sys#check-exact len 'make-s16vector) + (let ((v (##sys#make-structure 's16vector (alloc 'make-s16vector (##core#inline "C_fixnum_shift_left" len 1) ext?)))) + (when (and ext? fin?) (set-finalizer! v ext-free)) + (if (not init) +@@ -334,7 +334,6 @@ EOF + + (set! make-u32vector + (lambda (len #!optional (init #f) (ext? #f) (fin? #t)) +- (##sys#check-exact len 'make-u32vector) + (let ((v (##sys#make-structure 'u32vector (alloc 'make-u32vector (##core#inline "C_fixnum_shift_left" len 2) ext?)))) + (when (and ext? fin?) (set-finalizer! v ext-free)) + (if (not init) +@@ -347,7 +346,6 @@ EOF + + (set! make-s32vector + (lambda (len #!optional (init #f) (ext? #f) (fin? #t)) +- (##sys#check-exact len 'make-s32vector) + (let ((v (##sys#make-structure 's32vector (alloc 'make-s32vector (##core#inline "C_fixnum_shift_left" len 2) ext?)))) + (when (and ext? fin?) (set-finalizer! v ext-free)) + (if (not init) +@@ -360,7 +358,6 @@ EOF + + (set! make-f32vector + (lambda (len #!optional (init #f) (ext? #f) (fin? #t)) +- (##sys#check-exact len 'make-f32vector) + (let ((v (##sys#make-structure 'f32vector (alloc 'make-f32vector (##core#inline "C_fixnum_shift_left" len 2) ext?)))) + (when (and ext? fin?) (set-finalizer! v ext-free)) + (if (not init) +@@ -375,7 +372,6 @@ EOF + + (set! make-f64vector + (lambda (len #!optional (init #f) (ext? #f) (fin? #t)) +- (##sys#check-exact len 'make-f64vector) + (let ((v (##sys#make-structure + 'f64vector + (alloc 'make-f64vector (##core#inline "C_fixnum_shift_left" len 3) ext?)))) +-- +2.1.4 + diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index e1dba9bed7..fec872f5f9 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -325,18 +325,16 @@ mashups, office (web agendas, mail clients, ...), etc.") (define-public chicken (package (name "chicken") - (version "4.11.1") + (version "4.12.0") (source (origin (method url-fetch) - (uri (string-append "http://code.call-cc.org/releases/" + (uri (string-append "https://code.call-cc.org/releases/" version "/chicken-" version ".tar.gz")) - (uri (string-append "http://code.call-cc.org/dev-snapshots/" - "2016/09/12/chicken-" version ".tar.gz")) (sha256 (base32 - "1rwymbbmnwdyhdzilv9w75an989xw9kjf3x52iqdng3nphpflcga")) + "12b9gaa9lqh39lj1v4wm48f6z8ww3jdkvc5bh9gqqvn6kd2wwnk0")) (patches - (search-patches "chicken-CVE-2016-6830+CVE-2016-6831.patch")))) + (search-patches "chicken-CVE-2017-6949.patch")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -359,12 +357,6 @@ mashups, office (web agendas, mail clients, ...), etc.") ;; Parallel builds are not supported, as noted in README. #:parallel-build? #f)) - ;; One of the tests ("testing direct invocation can detect calls of too - ;; many arguments...") times out when building with a more recent GCC. - ;; The problem was reported here: - ;; https://lists.gnu.org/archive/html/chicken-hackers/2015-04/msg00059.html - (native-inputs - `(("gcc" ,gcc-4.8))) (home-page "http://www.call-cc.org/") (synopsis "R5RS Scheme implementation that compiles native code via C") (description -- cgit v1.2.3 From 283f04b053ce423a323fa4da000e21b4649b370a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 22 Mar 2017 22:36:04 +0200 Subject: gnu: libffcall: Set source file-name. * gnu/packages/libffcall.scm (libffcall)[source]: Add file-name field. [home-page]: Use https. --- gnu/packages/libffcall.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/libffcall.scm b/gnu/packages/libffcall.scm index 74d6b6347f..aae5ac991b 100644 --- a/gnu/packages/libffcall.scm +++ b/gnu/packages/libffcall.scm @@ -36,6 +36,7 @@ ":pserver:anonymous@cvs.savannah.gnu.org:/sources/libffcall") (module "ffcall") (revision "2015-01-15"))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "1lwdskc2w4rr98x9flr2726lmj4190l16r0izg7gqxy50801wwgd")))) @@ -45,5 +46,5 @@ (description "GNU Libffcall is a collection of libraries that can be used to build foreign function call interfaces in embedded interpreters.") - (home-page "http://www.gnu.org/software/libffcall/") + (home-page "https://www.gnu.org/software/libffcall/") (license l:gpl2+))) -- cgit v1.2.3 From 745d85b7dba7b81c7447b67b48c7a25c6db78cba Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Mar 2017 20:48:55 +0100 Subject: gnu: python-pafy: Update to 0.5.3.1. * gnu/packages/python.scm (python-pafy): Update to 0.5.3.1. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 764512eb08..9786033d06 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1735,14 +1735,14 @@ standard library.") (define-public python-pafy (package (name "python-pafy") - (version "0.5.2") + (version "0.5.3.1") (source (origin (method url-fetch) (uri (pypi-uri "pafy" version)) (sha256 (base32 - "1ckvrypyvb7jbqlgwdz0y337ajagjv7dgxyns326nqwypn1wpq0i")))) + "1a7dxi95m1043rxx1r5x3ngb66nwlq6aqcasyqqjzmmmjps4zrim")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; Currently pafy can not find itself in the tests -- cgit v1.2.3 From fd2662e950d29e1f31a664adbd56c9f225794a32 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Mar 2017 20:49:35 +0100 Subject: gnu: python-sqlalchemy-utils: Update to 0.32.13. * gnu/packages/python.scm (python-sqlalchemy-utils): Update to 0.32.13. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9786033d06..b156214ac5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4382,14 +4382,14 @@ both of which are installed automatically if you install this library.") (define-public python-sqlalchemy-utils (package (name "python-sqlalchemy-utils") - (version "0.32.11") + (version "0.32.13") (source (origin (method url-fetch) (uri (pypi-uri "SQLAlchemy-Utils" version)) (sha256 (base32 - "1wghyvk73cmq3iqyg3fczw128fv2pan2v76m0xg1bw05h8fhvnk3")))) + "0vsib7gidjamzsz6w4s5pdhxzxsrkghjnm4sqwk94igjrl3i5ixj")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; FIXME: Many tests require a running database server. -- cgit v1.2.3 From 7c4279322eaa800fae0e7197ec4757764a162f6c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Mar 2017 20:50:16 +0100 Subject: gnu: python-drmaa: Update to 0.7.7. * gnu/packages/python.scm (python-drmaa): Update to 0.7.7. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b156214ac5..1e04639aa3 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4805,7 +4805,7 @@ etc. The core of this module is a decorator factory.") (define-public python-drmaa (package (name "python-drmaa") - (version "0.7.6") + (version "0.7.7") (source (origin (method url-fetch) @@ -4813,7 +4813,7 @@ etc. The core of this module is a decorator factory.") "https://pypi.python.org/packages/source/d/drmaa/drmaa-" version ".tar.gz")) (sha256 - (base32 "0bzl9f9g34dlhwf09i3fdv7dqqzf2iq0w7d6c2bafx1nlap8qfbh")))) + (base32 "0xzqriqyvk5b8hszbavsyxd29wm3sxirm8zvvdm73rs2iq7w4hkx")))) (build-system python-build-system) ;; The test suite requires libdrmaa which is provided by the cluster ;; environment. At runtime the environment variable DRMAA_LIBRARY_PATH -- cgit v1.2.3 From 80e8d8517af92e2335f0bdcd9fbb38e621d2454a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Mar 2017 20:51:04 +0100 Subject: gnu: python-beautifulsoup4: Update to 4.5.3. * gnu/packages/python.scm (python-beautifulsoup4): Update to 4.5.3. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 1e04639aa3..98189c1d49 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5675,14 +5675,14 @@ libxml2 and libxslt.") (define-public python-beautifulsoup4 (package (name "python-beautifulsoup4") - (version "4.5.1") + (version "4.5.3") (source (origin (method url-fetch) (uri (pypi-uri "beautifulsoup4" version)) (sha256 (base32 - "1qgmhw65ncsgccjhslgkkszif47q6gvxwqv4mim17agxd81p951w")))) + "0glaw1vyxnbp03fni7h5496n6iib0n5iim4gax1n0ngscs9s075j")))) (build-system python-build-system) (arguments `(#:phases -- cgit v1.2.3 From 543782e1ff1e296d61ca528debe3fc6420f5e45a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Mar 2017 20:51:45 +0100 Subject: gnu: python-appdirs: Update to 1.4.3. * gnu/packages/python.scm (python-appdirs): Update to 1.4.3. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 98189c1d49..abf4ec6b7d 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6751,7 +6751,7 @@ provided that can be used to do various manipulations with LilyPond files.") (define-public python-appdirs (package (name "python-appdirs") - (version "1.4.0") + (version "1.4.3") (source (origin (method url-fetch) @@ -6761,7 +6761,7 @@ provided that can be used to do various manipulations with LilyPond files.") ".tar.gz")) (sha256 (base32 - "1iddva7v3fq0aqzsahkazxr7vpw28mqcrsy818z4wyiqnkplbhlg")))) + "14id6wxi12lgyw0mg3bcfnf888ad07jz9yj46gfzhn186z8rcn4y")))) (build-system python-build-system) (home-page "http://github.com/ActiveState/appdirs") (synopsis -- cgit v1.2.3 From 36e0d9db90abe2d6e28994858cd0e74edb873112 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Mar 2017 20:52:21 +0100 Subject: gnu: python-ipaddress: Update to 1.0.18. * gnu/packages/python.scm (python-ipaddress): Update to 1.0.18. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index abf4ec6b7d..1730d5d44c 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7135,13 +7135,13 @@ implementations of ASN.1-based codecs and protocols.") (define-public python-ipaddress (package (name "python-ipaddress") - (version "1.0.16") + (version "1.0.18") (source (origin (method url-fetch) (uri (pypi-uri "ipaddress" version)) (sha256 (base32 - "1c3imabdrw8nfksgjjflzg7h4ynjckqacb188rf541m74arq4cas")))) + "1q8klj9d84cmxgz66073x1j35cplr3r77vx1znhxiwl5w74391ax")))) (build-system python-build-system) (home-page "https://github.com/phihag/ipaddress") (synopsis "IP address manipulation library") -- cgit v1.2.3 From 06fe79f263a70cf6f368406e23147a3e87eb1551 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Mar 2017 20:53:14 +0100 Subject: gnu: python-rauth: Update to 0.7.3. * gnu/packages/python.scm (python-rauth): Update to 0.7.3. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 1730d5d44c..2b9b6cad16 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9003,14 +9003,14 @@ Python at your fingertips, in Lisp form.") (define-public python-rauth (package (name "python-rauth") - (version "0.7.2") + (version "0.7.3") (source (origin (method url-fetch) (uri (pypi-uri "rauth" version)) (sha256 (base32 - "00pq7zw429hhza9c0qzxiqp77m653jv09z92nralnmzwdf6pzicf")))) + "02kv8w8l98ky223avyq7vw7x1f2ya9chrm59r77ylq45qb0xnk2j")))) (build-system python-build-system) (arguments `(#:test-target "check")) -- cgit v1.2.3 From e17a12482b7e125d4f07d33402647e615b7d4d1e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Mar 2017 20:53:51 +0100 Subject: gnu: python2-futures: Update to 3.0.5. * gnu/packages/python.scm (python2-futures): Update to 3.0.5. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2b9b6cad16..c33d28213b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9099,14 +9099,14 @@ otherwise matches 3.2’s API.") (define-public python2-futures (package (name "python2-futures") - (version "3.0.3") + (version "3.0.5") (source (origin (method url-fetch) (uri (pypi-uri "futures" version)) (sha256 (base32 - "1vcb34dqhzkhbq1957vdjszhhm5y3j9ba88dgwhqx2zynhmk9qig")))) + "1pw1z4329xvlabdpwqa6b7v2fxf7hl64m4cgr22ckbym8m8m4hh5")))) (build-system python-build-system) (arguments `(#:python ,python-2)) (home-page "https://github.com/agronholm/pythonfutures") -- cgit v1.2.3 From a06cd95ab0eea223eb44a6ac2b6d8996b49243b2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Mar 2017 20:54:21 +0100 Subject: gnu: python-natsort: Update to 5.0.2. * gnu/packages/python.scm (python-natsort): Update to 5.0.2. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c33d28213b..d423ecde58 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -12303,13 +12303,13 @@ failures.") (define-public python-natsort (package (name "python-natsort") - (version "5.0.1") + (version "5.0.2") (source (origin (method url-fetch) (uri (pypi-uri "natsort" version)) (sha256 (base32 - "1abld5p4a6n5zjnyw5mi2pv37gqalcybv2brjr2y6l9l2p8v9mja")))) + "0bh6j0l8iapjnsgg3bs6q075cnzjl6zw1vlgqyv3qrygm2cxypkn")))) (build-system python-build-system) (arguments `(#:phases -- cgit v1.2.3 From b27bd0b05764e442f54d56e5398ed6cfc3dc4901 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Mar 2017 21:15:17 +0100 Subject: gnu: youtube-dl: Update to 2017.03.22. * gnu/packages/video.scm (youtube-dl): Update to 2017.03.22. --- 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 3af1e5282f..201d755a9a 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -975,7 +975,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.03.16") + (version "2017.03.22") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -983,7 +983,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "14nlgl0kh4mwl7sx58vd7nxr5iklxi00612lmydy91ngm6ykrpsm")))) + "1zz97g23diggcnqg2hjq9grijskly8ag727f1i509hl7z0lxkh69")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion -- cgit v1.2.3 From 939b6b113bcd94c80fe50acdd634a2c0338b343c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 23 Mar 2017 11:20:13 +0100 Subject: gnu: star: Update to 2.5.3a. * gnu/packages/bioinformatics.scm (star): Update to 2.5.3a. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 97380fc032..232c7db838 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -5051,7 +5051,7 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.") (define-public star (package (name "star") - (version "2.5.2b") + (version "2.5.3a") (source (origin (method url-fetch) (uri (string-append "https://github.com/alexdobin/STAR/archive/" @@ -5059,7 +5059,7 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1na6np880r1zaamiy00hy8bid5anpy0kgf63587v2yl080krk2zq")) + "013wirlz8lllgjyagl48l75n1isxyabqb3sj7qlsl0x1rmvqw99a")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From df7309fc6ed7ac15e50de22396e761ec0815c5e9 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Mon, 20 Mar 2017 20:17:09 +0100 Subject: gnu: Add ghc-code-page. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-code-page): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 2415881e8e..d48983a81a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016, 2017 David Craven ;;; Copyright © 2017 Danny Milosavljevic +;;; Copyright © 2017 Peter Mikkelsen ;;; ;;; This file is part of GNU Guix. ;;; @@ -562,6 +563,27 @@ package.") package.") (license license:bsd-3))) +(define-public ghc-code-page + (package + (name "ghc-code-page") + (version "0.1.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/code-page/code-page-" + version ".tar.gz")) + (sha256 + (base32 + "1491frk4jx6dlhifky9dvcxbsbcfssrz979a5hp5zn061rh8cp76")))) + (build-system haskell-build-system) + (home-page "https://github.com/RyanGlScott/code-page") + (synopsis "Windows code page library for Haskell") + (description "A cross-platform library with functions for adjusting +code pages on Windows. On all other operating systems, the library does +nothing.") + (license license:bsd-3))) + (define-public ghc-haddock-library (package (name "ghc-haddock-library") -- cgit v1.2.3 From c53af0016e283ef642ac43ccc2ee5d650f06a888 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Mon, 20 Mar 2017 20:17:10 +0100 Subject: gnu: idris: Update to 0.99.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/idris.scm (idris): Update to 0.99.1. [inputs]: Add ghc-code-page. Signed-off-by: Ludovic Courtès --- gnu/packages/idris.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm index 02198a5a7d..2b7f4cc9dd 100644 --- a/gnu/packages/idris.scm +++ b/gnu/packages/idris.scm @@ -31,7 +31,7 @@ (define-public idris (package (name "idris") - (version "0.99") + (version "0.99.1") (source (origin (method url-fetch) (uri (string-append @@ -39,7 +39,7 @@ "idris-" version "/idris-" version ".tar.gz")) (sha256 (base32 - "1sd4vy5rx0mp32xj99qijhknkgw4d2rxvz6wiy3pym6kaqmc497i")))) + "12kw452arnl5ldip2x749j5np3l40bv7asqdv9w0f60j45hii40r")))) (build-system haskell-build-system) (inputs `(("gmp" ,gmp) @@ -53,6 +53,7 @@ ("ghc-blaze-html" ,ghc-blaze-html) ("ghc-blaze-markup" ,ghc-blaze-markup) ("ghc-cheapskate" ,ghc-cheapskate) + ("ghc-code-page" ,ghc-code-page) ("ghc-fingertree" ,ghc-fingertree) ("ghc-fsnotify" ,ghc-fsnotify) ("ghc-ieee754" ,ghc-ieee754) -- cgit v1.2.3