From 118a8eccb08b2d115102d75cf586fbf060a621ba Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 19 Nov 2017 22:06:53 +0200 Subject: gnu: audacity: Fix building on non-Intel systems. * gnu/packages/audio.scm (audacity)[arguments]: On non-Intel systems add a configure-flag to disable SSE optimizations. --- gnu/packages/audio.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 384010372f..da93143924 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -83,7 +83,8 @@ (define-module (gnu packages audio) #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) #:use-module (gnu packages music) - #:use-module (srfi srfi-1)) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) (define-public alsa-modular-synth (package @@ -341,13 +342,19 @@ (define-public audacity ("python" ,python-2) ("which" ,which))) (arguments - '(#:configure-flags + `(#:configure-flags (let ((libid3tag (assoc-ref %build-inputs "libid3tag")) (libmad (assoc-ref %build-inputs "libmad")) (portmidi (assoc-ref %build-inputs "portmidi"))) (list ;; Loading FFmpeg dynamically is problematic. "--disable-dynamic-loading" + ;; SSE instructions are available on Intel systems only. + ,@(if (any (cute string-prefix? <> (or (%current-target-system) + (%current-system))) + '("x64_64" "i686")) + '() + '("--enable-sse=no")) ;; portmidi, libid3tag and libmad provide no .pc files, so ;; pkg-config fails to find them. Force their inclusion. (string-append "ID3TAG_CFLAGS=-I" libid3tag "/include") -- cgit v1.2.3 From 52d174d6d116d75c71ddf0aa448b05f58637e9df Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 19 Nov 2017 22:45:06 +0100 Subject: ssh: Use (guix i18n). * guix/ssh.scm: Use (guix i18n) instead of (guix ui). --- guix/ssh.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/ssh.scm b/guix/ssh.scm index 32cf6e464b..7b33ef5a3b 100644 --- a/guix/ssh.scm +++ b/guix/ssh.scm @@ -18,7 +18,7 @@ (define-module (guix ssh) #:use-module (guix store) - #:use-module ((guix ui) #:select (G_ N_)) + #:use-module (guix i18n) #:use-module (ssh session) #:use-module (ssh auth) #:use-module (ssh key) -- cgit v1.2.3 From 85f4f7b79040d982c6a655c898b4cd00d868fa9c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 19 Nov 2017 23:02:29 +0100 Subject: zlib: Fix race condition when closing gzip ports. Fixes . * guix/zlib.scm (close-procedure): Remove. (make-gzip-input-port): Do (dup (fileno port)) to get a file descriptor for 'gzdopen'. Close PORT before returning. Use 'gzclose' as the 'close' procedure of the returned port. (make-gzip-output-port): Likewise. --- guix/zlib.scm | 46 ++++++++++++++++------------------------------ 1 file changed, 16 insertions(+), 30 deletions(-) diff --git a/guix/zlib.scm b/guix/zlib.scm index 955589ab48..3bd0ad86c9 100644 --- a/guix/zlib.scm +++ b/guix/zlib.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -149,31 +149,6 @@ (define %default-compression-level ;; Z_DEFAULT_COMPRESSION. -1) -(define (close-procedure gzfile port) - "Return a procedure that closes GZFILE, ensuring its underlying PORT is -closed even if closing GZFILE triggers an exception." - (let-syntax ((ignore-EBADF - (syntax-rules () - ((_ exp) - (catch 'system-error - (lambda () - exp) - (lambda args - (unless (= EBADF (system-error-errno args)) - (apply throw args)))))))) - - (lambda () - (catch 'zlib-error - (lambda () - ;; 'gzclose' closes the underlying file descriptor. 'close-port' - ;; calls close(2) and gets EBADF, which we swallow. - (gzclose gzfile) - (ignore-EBADF (close-port port))) - (lambda args - ;; Make sure PORT is closed despite the zlib error. - (ignore-EBADF (close-port port)) - (apply throw args)))))) - (define* (make-gzip-input-port port #:key (buffer-size %default-buffer-size)) "Return an input port that decompresses data read from PORT, a file port. PORT is automatically closed when the resulting port is closed. BUFFER-SIZE @@ -183,7 +158,14 @@ (define* (make-gzip-input-port port #:key (buffer-size %default-buffer-size)) (define gzfile (match (drain-input port) ("" ;PORT's buffer is empty - (gzdopen (fileno port) "r")) + ;; 'gzclose' will eventually close the file descriptor beneath PORT. + ;; 'close-port' on PORT would get EBADF if 'gzclose' already closed it, + ;; so that's no good; revealed ports are no good either because they + ;; leak (see ); calling 'close-port' after + ;; 'gzclose' doesn't work either because it leads to a race condition + ;; (see ). So we dup and close PORT right + ;; away. + (gzdopen (dup (fileno port)) "r")) (_ ;; This is unrecoverable but it's better than having the buffered input ;; be lost, leading to unclear end-of-file or corrupt-data errors down @@ -197,8 +179,10 @@ (define (read! bv start count) (unless (= buffer-size %default-buffer-size) (gzbuffer! gzfile buffer-size)) + (close-port port) ;we no longer need it (make-custom-binary-input-port "gzip-input" read! #f #f - (close-procedure gzfile port))) + (lambda () + (gzclose gzfile)))) (define* (make-gzip-output-port port #:key @@ -210,7 +194,7 @@ (define* (make-gzip-output-port port (define gzfile (begin (force-output port) ;empty PORT's buffer - (gzdopen (fileno port) + (gzdopen (dup (fileno port)) (string-append "w" (number->string level))))) (define (write! bv start count) @@ -219,8 +203,10 @@ (define (write! bv start count) (unless (= buffer-size %default-buffer-size) (gzbuffer! gzfile buffer-size)) + (close-port port) (make-custom-binary-output-port "gzip-output" write! #f #f - (close-procedure gzfile port))) + (lambda () + (gzclose gzfile)))) (define* (call-with-gzip-input-port port proc #:key (buffer-size %default-buffer-size)) -- cgit v1.2.3 From 27015d6fbd1384370882451bcc944fc9985b9465 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 13 Nov 2017 22:39:38 +0100 Subject: gnu: c-toxcore: Update to 0.1.10. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/messaging.scm (c-toxcore): Update to 0.1.10. Signed-off-by: Ludovic Courtès --- gnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index a9a77ae711..907320e2ca 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -768,7 +768,7 @@ (define-public libtoxcore (define-public c-toxcore (package (name "c-toxcore") - (version "0.1.9") + (version "0.1.10") (source (origin (method url-fetch) @@ -777,7 +777,7 @@ (define-public c-toxcore (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1y30xc1dzq9knww274d4y0m8gridcf5j851rxdri8j2s64p3qqgk")))) + "1lbvq9pp1ganjk5lql5lzcn8bcmgfi8y026pb2j2nq8yldqrrjby")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 0ce5cb02fa437a8b593566a3d3e6397cd0a96463 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 14 Nov 2017 09:00:17 +0100 Subject: gnu: qtox: Add filteraudio to inputs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/messaging.scm (qtox)[inputs]: Add filteraudio. Signed-off-by: Ludovic Courtès --- gnu/packages/messaging.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 907320e2ca..3adaa1fd45 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -867,6 +867,7 @@ (define-public qtox #t))))) (inputs `(("ffmpeg" ,ffmpeg-3.3) + ("filteraudio", filteraudio) ("glib" ,glib) ("gtk+" ,gtk+-2) ("libsodium" ,libsodium) -- cgit v1.2.3 From 0b4c385f8faf7f3436eb9af3ccb36cbd70da653b Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 9 Nov 2017 10:02:32 +0100 Subject: gnu: gajim: Add python2-axolotl to inputs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/messaging.scm (gajim)[inputs]: Add python2-axolotl. Signed-off-by: Ludovic Courtès --- gnu/packages/messaging.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 3adaa1fd45..b9cd80539a 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -550,7 +550,8 @@ (define-public gajim (native-inputs `(("intltool" ,intltool))) (inputs - `(("python2-nbxmpp" ,python2-nbxmpp) + `(("python2-axolotl" ,python2-axolotl) + ("python2-nbxmpp" ,python2-nbxmpp) ("python2-pyopenssl" ,python2-pyopenssl) ("python2-gnupg" ,python2-gnupg) ("python2-pygtk" ,python2-pygtk) -- cgit v1.2.3 From 485e006c9e8cbb8c16c79d3d488d9e3a8e622142 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 20 Nov 2017 00:12:25 +0100 Subject: gnu: guix: Update snapshot. * gnu/packages/package-management.scm (guix): Update to 0b4c385. --- 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 1570992b26..4f1f7f577d 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -85,8 +85,8 @@ (define-public guix ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.13.0") - (commit "ff23b47dbee038236386ddc2ed2fff4c77ad3aa1") - (revision 9)) + (commit "0b4c385f8faf7f3436eb9af3ccb36cbd70da653b") + (revision 10)) (package (name "guix") @@ -102,7 +102,7 @@ (define-public guix (commit commit))) (sha256 (base32 - "19y39fm4bjvq4rz3360p8avxpsmflsgrz83l8ig49819a38qs6zm")) + "05q2c751lyh8dkcg7bfn4qpk5137zwbxgfm1sifz1aiq9xnb0d1a")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From aace9be80bdc2ba9cd373e4f76b86c647649f6b6 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 31 Aug 2017 18:13:08 +0200 Subject: gnu: gcc@6: Respect SOURCE_DATE_EPOCH in __DATE__ and __TIME__ macros. * gnu/packages/patches/gcc-6-source-date-epoch-1.patch, gnu/packages/patches/gcc-6-source-date-epoch-2.patch: New files. * gnu/local.mk (dist_patch_DATA): Register them. * gnu/packages/gcc.scm (gcc-6)[source]: Use them. --- gnu/local.mk | 2 + gnu/packages/gcc.scm | 2 + .../patches/gcc-6-source-date-epoch-1.patch | 187 +++++++++++ .../patches/gcc-6-source-date-epoch-2.patch | 346 +++++++++++++++++++++ 4 files changed, 537 insertions(+) create mode 100644 gnu/packages/patches/gcc-6-source-date-epoch-1.patch create mode 100644 gnu/packages/patches/gcc-6-source-date-epoch-2.patch diff --git a/gnu/local.mk b/gnu/local.mk index 2fbafe1187..f8e5539654 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -653,6 +653,8 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-5-source-date-epoch-2.patch \ %D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ + %D%/packages/patches/gcc-6-source-date-epoch-1.patch \ + %D%/packages/patches/gcc-6-source-date-epoch-2.patch \ %D%/packages/patches/gcr-disable-failing-tests.patch \ %D%/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 79e159f1a5..ad8992289d 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -408,6 +408,8 @@ (define-public gcc-6 (base32 "1m0lr7938lw5d773dkvwld90hjlcq2282517d1gwvrfzmwgg42w5")) (patches (search-patches "gcc-strmov-store-file-names.patch" + "gcc-6-source-date-epoch-1.patch" + "gcc-6-source-date-epoch-2.patch" "gcc-5.0-libvtv-runpath.patch")))) (inputs `(("isl" ,isl) diff --git a/gnu/packages/patches/gcc-6-source-date-epoch-1.patch b/gnu/packages/patches/gcc-6-source-date-epoch-1.patch new file mode 100644 index 0000000000..26f62bc9f1 --- /dev/null +++ b/gnu/packages/patches/gcc-6-source-date-epoch-1.patch @@ -0,0 +1,187 @@ +Make GCC respect SOURCE_DATE_EPOCH in __DATE__ and __TIME__ macros. + +Cherry-picked from upstream commit: + +https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=e3e8c48c4a494d9da741c1c8ea6c4c0b7c4ff934 + +diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c +index 6cf8c610b4e..b5daea65ba7 100644 +--- a/gcc/c-family/c-common.c ++++ b/gcc/c-family/c-common.c +@@ -12750,4 +12750,37 @@ valid_array_size_p (location_t loc, tree type, tree name) + return true; + } + ++/* Read SOURCE_DATE_EPOCH from environment to have a deterministic ++ timestamp to replace embedded current dates to get reproducible ++ results. Returns -1 if SOURCE_DATE_EPOCH is not defined. */ ++time_t ++get_source_date_epoch () ++{ ++ char *source_date_epoch; ++ long long epoch; ++ char *endptr; ++ ++ source_date_epoch = getenv ("SOURCE_DATE_EPOCH"); ++ if (!source_date_epoch) ++ return (time_t) -1; ++ ++ errno = 0; ++ epoch = strtoll (source_date_epoch, &endptr, 10); ++ if ((errno == ERANGE && (epoch == LLONG_MAX || epoch == LLONG_MIN)) ++ || (errno != 0 && epoch == 0)) ++ fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " ++ "strtoll: %s\n", xstrerror(errno)); ++ if (endptr == source_date_epoch) ++ fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " ++ "no digits were found: %s\n", endptr); ++ if (*endptr != '\0') ++ fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " ++ "trailing garbage: %s\n", endptr); ++ if (epoch < 0) ++ fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " ++ "value must be nonnegative: %lld \n", epoch); ++ ++ return (time_t) epoch; ++} ++ + #include "gt-c-family-c-common.h" +diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h +index dd74d0dd62e..c6e0ed12b55 100644 +--- a/gcc/c-family/c-common.h ++++ b/gcc/c-family/c-common.h +@@ -1467,4 +1467,9 @@ extern bool reject_gcc_builtin (const_tree, location_t = UNKNOWN_LOCATION); + extern void warn_duplicated_cond_add_or_warn (location_t, tree, vec **); + extern bool valid_array_size_p (location_t, tree, tree); + ++/* Read SOURCE_DATE_EPOCH from environment to have a deterministic ++ timestamp to replace embedded current dates to get reproducible ++ results. Returns -1 if SOURCE_DATE_EPOCH is not defined. */ ++extern time_t get_source_date_epoch (void); ++ + #endif /* ! GCC_C_COMMON_H */ +diff --git a/gcc/c-family/c-lex.c b/gcc/c-family/c-lex.c +index 96da4fc974e..bf1db6c0252 100644 +--- a/gcc/c-family/c-lex.c ++++ b/gcc/c-family/c-lex.c +@@ -385,6 +385,9 @@ c_lex_with_flags (tree *value, location_t *loc, unsigned char *cpp_flags, + enum cpp_ttype type; + unsigned char add_flags = 0; + enum overflow_type overflow = OT_NONE; ++ time_t source_date_epoch = get_source_date_epoch (); ++ ++ cpp_init_source_date_epoch (parse_in, source_date_epoch); + + timevar_push (TV_CPP); + retry: +diff --git a/gcc/doc/cppenv.texi b/gcc/doc/cppenv.texi +index 22c8cb37624..e958e93e97e 100644 +--- a/gcc/doc/cppenv.texi ++++ b/gcc/doc/cppenv.texi +@@ -79,4 +79,21 @@ main input file is omitted. + @ifclear cppmanual + @xref{Preprocessor Options}. + @end ifclear ++ ++@item SOURCE_DATE_EPOCH ++ ++If this variable is set, its value specifies a UNIX timestamp to be ++used in replacement of the current date and time in the @code{__DATE__} ++and @code{__TIME__} macros, so that the embedded timestamps become ++reproducible. ++ ++The value of @env{SOURCE_DATE_EPOCH} must be a UNIX timestamp, ++defined as the number of seconds (excluding leap seconds) since ++01 Jan 1970 00:00:00 represented in ASCII, identical to the output of ++@samp{@command{date +%s}}. ++ ++The value should be a known timestamp such as the last modification ++time of the source or package and it should be set by the build ++process. ++ + @end vtable +diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h +index 35b0375c09c..4998b3a8ab8 100644 +--- a/libcpp/include/cpplib.h ++++ b/libcpp/include/cpplib.h +@@ -784,6 +784,9 @@ extern void cpp_init_special_builtins (cpp_reader *); + /* Set up built-ins like __FILE__. */ + extern void cpp_init_builtins (cpp_reader *, int); + ++/* Initialize the source_date_epoch value. */ ++extern void cpp_init_source_date_epoch (cpp_reader *, time_t); ++ + /* This is called after options have been parsed, and partially + processed. */ + extern void cpp_post_options (cpp_reader *); +diff --git a/libcpp/init.c b/libcpp/init.c +index 4343075ba85..f5ff85b3bae 100644 +--- a/libcpp/init.c ++++ b/libcpp/init.c +@@ -533,8 +533,15 @@ cpp_init_builtins (cpp_reader *pfile, int hosted) + _cpp_define_builtin (pfile, "__OBJC__ 1"); + } + ++/* Initialize the source_date_epoch value. */ ++void ++cpp_init_source_date_epoch (cpp_reader *pfile, time_t source_date_epoch) ++{ ++ pfile->source_date_epoch = source_date_epoch; ++} ++ + /* Sanity-checks are dependent on command-line options, so it is +- called as a subroutine of cpp_read_main_file (). */ ++ called as a subroutine of cpp_read_main_file. */ + #if CHECKING_P + static void sanity_checks (cpp_reader *); + static void sanity_checks (cpp_reader *pfile) +diff --git a/libcpp/internal.h b/libcpp/internal.h +index 9ce870738cc..e3eb26b1f27 100644 +--- a/libcpp/internal.h ++++ b/libcpp/internal.h +@@ -502,6 +502,10 @@ struct cpp_reader + const unsigned char *date; + const unsigned char *time; + ++ /* Externally set timestamp to replace current date and time useful for ++ reproducibility. */ ++ time_t source_date_epoch; ++ + /* EOF token, and a token forcing paste avoidance. */ + cpp_token avoid_paste; + cpp_token eof; +diff --git a/libcpp/macro.c b/libcpp/macro.c +index c2515534504..c2a83764660 100644 +--- a/libcpp/macro.c ++++ b/libcpp/macro.c +@@ -357,13 +357,20 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node, + time_t tt; + struct tm *tb = NULL; + +- /* (time_t) -1 is a legitimate value for "number of seconds +- since the Epoch", so we have to do a little dance to +- distinguish that from a genuine error. */ +- errno = 0; +- tt = time(NULL); +- if (tt != (time_t)-1 || errno == 0) +- tb = localtime (&tt); ++ /* Set a reproducible timestamp for __DATE__ and __TIME__ macro ++ usage if SOURCE_DATE_EPOCH is defined. */ ++ if (pfile->source_date_epoch != (time_t) -1) ++ tb = gmtime (&pfile->source_date_epoch); ++ else ++ { ++ /* (time_t) -1 is a legitimate value for "number of seconds ++ since the Epoch", so we have to do a little dance to ++ distinguish that from a genuine error. */ ++ errno = 0; ++ tt = time (NULL); ++ if (tt != (time_t)-1 || errno == 0) ++ tb = localtime (&tt); ++ } + + if (tb) + { +-- +2.14.1 + diff --git a/gnu/packages/patches/gcc-6-source-date-epoch-2.patch b/gnu/packages/patches/gcc-6-source-date-epoch-2.patch new file mode 100644 index 0000000000..cd5b09867f --- /dev/null +++ b/gnu/packages/patches/gcc-6-source-date-epoch-2.patch @@ -0,0 +1,346 @@ +Cherry-picked from upstream commit: + +https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=dfa5c0d3f3e23e4fdb14857a42de376d9ff8601c + +diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c +index b5daea65ba7..a4539da15ce 100644 +--- a/gcc/c-family/c-common.c ++++ b/gcc/c-family/c-common.c +@@ -12753,8 +12753,9 @@ valid_array_size_p (location_t loc, tree type, tree name) + /* Read SOURCE_DATE_EPOCH from environment to have a deterministic + timestamp to replace embedded current dates to get reproducible + results. Returns -1 if SOURCE_DATE_EPOCH is not defined. */ ++ + time_t +-get_source_date_epoch () ++cb_get_source_date_epoch (cpp_reader *pfile ATTRIBUTE_UNUSED) + { + char *source_date_epoch; + long long epoch; +@@ -12766,19 +12767,14 @@ get_source_date_epoch () + + errno = 0; + epoch = strtoll (source_date_epoch, &endptr, 10); +- if ((errno == ERANGE && (epoch == LLONG_MAX || epoch == LLONG_MIN)) +- || (errno != 0 && epoch == 0)) +- fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " +- "strtoll: %s\n", xstrerror(errno)); +- if (endptr == source_date_epoch) +- fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " +- "no digits were found: %s\n", endptr); +- if (*endptr != '\0') +- fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " +- "trailing garbage: %s\n", endptr); +- if (epoch < 0) +- fatal_error (UNKNOWN_LOCATION, "environment variable $SOURCE_DATE_EPOCH: " +- "value must be nonnegative: %lld \n", epoch); ++ if (errno != 0 || endptr == source_date_epoch || *endptr != '\0' ++ || epoch < 0 || epoch > MAX_SOURCE_DATE_EPOCH) ++ { ++ error_at (input_location, "environment variable SOURCE_DATE_EPOCH must " ++ "expand to a non-negative integer less than or equal to %wd", ++ MAX_SOURCE_DATE_EPOCH); ++ return (time_t) -1; ++ } + + return (time_t) epoch; + } +diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h +index c6e0ed12b55..44699f716e0 100644 +--- a/gcc/c-family/c-common.h ++++ b/gcc/c-family/c-common.h +@@ -1084,6 +1084,16 @@ extern vec *make_tree_vector_copy (const vec *); + c_register_builtin_type. */ + extern GTY(()) tree registered_builtin_types; + ++/* Read SOURCE_DATE_EPOCH from environment to have a deterministic ++ timestamp to replace embedded current dates to get reproducible ++ results. Returns -1 if SOURCE_DATE_EPOCH is not defined. */ ++extern time_t cb_get_source_date_epoch (cpp_reader *pfile); ++ ++/* The value (as a unix timestamp) corresponds to date ++ "Dec 31 9999 23:59:59 UTC", which is the latest date that __DATE__ and ++ __TIME__ can store. */ ++#define MAX_SOURCE_DATE_EPOCH HOST_WIDE_INT_C (253402300799) ++ + /* In c-gimplify.c */ + extern void c_genericize (tree); + extern int c_gimplify_expr (tree *, gimple_seq *, gimple_seq *); +@@ -1467,9 +1477,4 @@ extern bool reject_gcc_builtin (const_tree, location_t = UNKNOWN_LOCATION); + extern void warn_duplicated_cond_add_or_warn (location_t, tree, vec **); + extern bool valid_array_size_p (location_t, tree, tree); + +-/* Read SOURCE_DATE_EPOCH from environment to have a deterministic +- timestamp to replace embedded current dates to get reproducible +- results. Returns -1 if SOURCE_DATE_EPOCH is not defined. */ +-extern time_t get_source_date_epoch (void); +- + #endif /* ! GCC_C_COMMON_H */ +diff --git a/gcc/c-family/c-lex.c b/gcc/c-family/c-lex.c +index bf1db6c0252..42a4135d339 100644 +--- a/gcc/c-family/c-lex.c ++++ b/gcc/c-family/c-lex.c +@@ -80,6 +80,7 @@ init_c_lex (void) + cb->valid_pch = c_common_valid_pch; + cb->read_pch = c_common_read_pch; + cb->has_attribute = c_common_has_attribute; ++ cb->get_source_date_epoch = cb_get_source_date_epoch; + + /* Set the debug callbacks if we can use them. */ + if ((debug_info_level == DINFO_LEVEL_VERBOSE +@@ -385,9 +386,6 @@ c_lex_with_flags (tree *value, location_t *loc, unsigned char *cpp_flags, + enum cpp_ttype type; + unsigned char add_flags = 0; + enum overflow_type overflow = OT_NONE; +- time_t source_date_epoch = get_source_date_epoch (); +- +- cpp_init_source_date_epoch (parse_in, source_date_epoch); + + timevar_push (TV_CPP); + retry: +diff --git a/gcc/doc/cppenv.texi b/gcc/doc/cppenv.texi +index e958e93e97e..8cefd529aa3 100644 +--- a/gcc/doc/cppenv.texi ++++ b/gcc/doc/cppenv.texi +@@ -81,7 +81,6 @@ main input file is omitted. + @end ifclear + + @item SOURCE_DATE_EPOCH +- + If this variable is set, its value specifies a UNIX timestamp to be + used in replacement of the current date and time in the @code{__DATE__} + and @code{__TIME__} macros, so that the embedded timestamps become +@@ -89,8 +88,9 @@ reproducible. + + The value of @env{SOURCE_DATE_EPOCH} must be a UNIX timestamp, + defined as the number of seconds (excluding leap seconds) since +-01 Jan 1970 00:00:00 represented in ASCII, identical to the output of +-@samp{@command{date +%s}}. ++01 Jan 1970 00:00:00 represented in ASCII; identical to the output of ++@samp{@command{date +%s}} on GNU/Linux and other systems that support the ++@code{%s} extension in the @code{date} command. + + The value should be a known timestamp such as the last modification + time of the source or package and it should be set by the build +diff --git a/gcc/gcc.c b/gcc/gcc.c +index cfa074d4e43..f88596219bc 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -3541,6 +3541,29 @@ save_switch (const char *opt, size_t n_args, const char *const *args, + n_switches++; + } + ++/* Set the SOURCE_DATE_EPOCH environment variable to the current time if it is ++ not set already. */ ++ ++static void ++set_source_date_epoch_envvar () ++{ ++ /* Array size is 21 = ceil(log_10(2^64)) + 1 to hold string representations ++ of 64 bit integers. */ ++ char source_date_epoch[21]; ++ time_t tt; ++ ++ errno = 0; ++ tt = time (NULL); ++ if (tt < (time_t) 0 || errno != 0) ++ tt = (time_t) 0; ++ ++ snprintf (source_date_epoch, 21, "%llu", (unsigned long long) tt); ++ /* Using setenv instead of xputenv because we want the variable to remain ++ after finalizing so that it's still set in the second run when using ++ -fcompare-debug. */ ++ setenv ("SOURCE_DATE_EPOCH", source_date_epoch, 0); ++} ++ + /* Handle an option DECODED that is unknown to the option-processing + machinery. */ + +@@ -3840,6 +3863,7 @@ driver_handle_option (struct gcc_options *opts, + else + compare_debug_opt = arg; + save_switch (compare_debug_replacement_opt, 0, NULL, validated, true); ++ set_source_date_epoch_envvar (); + return true; + + case OPT_fdiagnostics_color_: +diff --git a/gcc/testsuite/gcc.dg/cpp/source_date_epoch-1.c b/gcc/testsuite/gcc.dg/cpp/source_date_epoch-1.c +new file mode 100644 +index 00000000000..f6aa1a360ff +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/cpp/source_date_epoch-1.c +@@ -0,0 +1,11 @@ ++/* { dg-do run } */ ++/* { dg-set-compiler-env-var SOURCE_DATE_EPOCH "630333296" } */ ++ ++int ++main(void) ++{ ++ __builtin_printf ("%s %s\n", __DATE__, __TIME__); ++ return 0; ++} ++ ++/* { dg-output "^Dec 22 1989 12:34:56\n$" } */ +diff --git a/gcc/testsuite/gcc.dg/cpp/source_date_epoch-2.c b/gcc/testsuite/gcc.dg/cpp/source_date_epoch-2.c +new file mode 100644 +index 00000000000..ae18362ae87 +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/cpp/source_date_epoch-2.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-set-compiler-env-var SOURCE_DATE_EPOCH "AAA" } */ ++ ++/* Make sure that SOURCE_DATE_EPOCH is only parsed once */ ++ ++int ++main(void) ++{ ++ __builtin_printf ("%s %s\n", __DATE__, __TIME__); /* { dg-error "SOURCE_DATE_EPOCH must expand" } */ ++ __builtin_printf ("%s %s\n", __DATE__, __TIME__); ++ return 0; ++} +diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp +index 9dd909b0985..822d2fbb3b9 100644 +--- a/gcc/testsuite/lib/gcc-dg.exp ++++ b/gcc/testsuite/lib/gcc-dg.exp +@@ -450,6 +450,38 @@ proc restore-target-env-var { } { + } + } + ++proc dg-set-compiler-env-var { args } { ++ global set_compiler_env_var ++ global saved_compiler_env_var ++ if { [llength $args] != 3 } { ++ error "dg-set-compiler-env-var: need two arguments" ++ return ++ } ++ set var [lindex $args 1] ++ set value [lindex $args 2] ++ if [info exists ::env($var)] { ++ lappend saved_compiler_env_var [list $var 1 $::env($var)] ++ } else { ++ lappend saved_compiler_env_var [list $var 0] ++ } ++ setenv $var $value ++ lappend set_compiler_env_var [list $var $value] ++} ++ ++proc restore-compiler-env-var { } { ++ global saved_compiler_env_var ++ for { set env_vari [llength $saved_compiler_env_var] } { ++ [incr env_vari -1] >= 0 } {} { ++ set env_var [lindex $saved_compiler_env_var $env_vari] ++ set var [lindex $env_var 0] ++ if [lindex $env_var 1] { ++ setenv $var [lindex $env_var 2] ++ } else { ++ unsetenv $var ++ } ++ } ++} ++ + # Utility routines. + + # +@@ -873,6 +905,11 @@ if { [info procs saved-dg-test] == [list] } { + if [info exists set_target_env_var] { + unset set_target_env_var + } ++ if [info exists set_compiler_env_var] { ++ restore-compiler-env-var ++ unset set_compiler_env_var ++ unset saved_compiler_env_var ++ } + if [info exists keep_saved_temps_suffixes] { + unset keep_saved_temps_suffixes + } +diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h +index 4998b3a8ab8..9d70cc856ef 100644 +--- a/libcpp/include/cpplib.h ++++ b/libcpp/include/cpplib.h +@@ -594,6 +594,9 @@ struct cpp_callbacks + + /* Callback that can change a user builtin into normal macro. */ + bool (*user_builtin_macro) (cpp_reader *, cpp_hashnode *); ++ ++ /* Callback to parse SOURCE_DATE_EPOCH from environment. */ ++ time_t (*get_source_date_epoch) (cpp_reader *); + }; + + #ifdef VMS +@@ -784,9 +787,6 @@ extern void cpp_init_special_builtins (cpp_reader *); + /* Set up built-ins like __FILE__. */ + extern void cpp_init_builtins (cpp_reader *, int); + +-/* Initialize the source_date_epoch value. */ +-extern void cpp_init_source_date_epoch (cpp_reader *, time_t); +- + /* This is called after options have been parsed, and partially + processed. */ + extern void cpp_post_options (cpp_reader *); +diff --git a/libcpp/init.c b/libcpp/init.c +index f5ff85b3bae..e78b3206def 100644 +--- a/libcpp/init.c ++++ b/libcpp/init.c +@@ -257,6 +257,9 @@ cpp_create_reader (enum c_lang lang, cpp_hash_table *table, + /* Do not force token locations by default. */ + pfile->forced_token_location_p = NULL; + ++ /* Initialize source_date_epoch to -2 (not yet set). */ ++ pfile->source_date_epoch = (time_t) -2; ++ + /* The expression parser stack. */ + _cpp_expand_op_stack (pfile); + +@@ -533,13 +536,6 @@ cpp_init_builtins (cpp_reader *pfile, int hosted) + _cpp_define_builtin (pfile, "__OBJC__ 1"); + } + +-/* Initialize the source_date_epoch value. */ +-void +-cpp_init_source_date_epoch (cpp_reader *pfile, time_t source_date_epoch) +-{ +- pfile->source_date_epoch = source_date_epoch; +-} +- + /* Sanity-checks are dependent on command-line options, so it is + called as a subroutine of cpp_read_main_file. */ + #if CHECKING_P +diff --git a/libcpp/internal.h b/libcpp/internal.h +index e3eb26b1f27..cea32ec73c6 100644 +--- a/libcpp/internal.h ++++ b/libcpp/internal.h +@@ -503,7 +503,8 @@ struct cpp_reader + const unsigned char *time; + + /* Externally set timestamp to replace current date and time useful for +- reproducibility. */ ++ reproducibility. It should be initialized to -2 (not yet set) and ++ set to -1 to disable it or to a non-negative value to enable it. */ + time_t source_date_epoch; + + /* EOF token, and a token forcing paste avoidance. */ +diff --git a/libcpp/macro.c b/libcpp/macro.c +index c2a83764660..a3b8348a23f 100644 +--- a/libcpp/macro.c ++++ b/libcpp/macro.c +@@ -358,9 +358,13 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node, + struct tm *tb = NULL; + + /* Set a reproducible timestamp for __DATE__ and __TIME__ macro +- usage if SOURCE_DATE_EPOCH is defined. */ +- if (pfile->source_date_epoch != (time_t) -1) +- tb = gmtime (&pfile->source_date_epoch); ++ if SOURCE_DATE_EPOCH is defined. */ ++ if (pfile->source_date_epoch == (time_t) -2 ++ && pfile->cb.get_source_date_epoch != NULL) ++ pfile->source_date_epoch = pfile->cb.get_source_date_epoch (pfile); ++ ++ if (pfile->source_date_epoch >= (time_t) 0) ++ tb = gmtime (&pfile->source_date_epoch); + else + { + /* (time_t) -1 is a legitimate value for "number of seconds +-- +2.14.1 + -- cgit v1.2.3 From 08cc0ef096ea37d0936b3e2ba2df693aaf52729a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 19 Nov 2017 18:01:48 +0100 Subject: gnu: kodi: Update snapshot. * gnu/packages/kodi.scm (kodi): Update to 18.0_alpha-67fd70f. --- gnu/packages/kodi.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index 4e02fa1596..dab2a7c692 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -241,8 +241,8 @@ (define libdvdcss/kodi (define-public kodi ;; We package the git version because the current released ;; version was cut while the cmake transition was in turmoil. - (let ((commit "f22d62dc3f6e811a538dda9c434e1804abb8b95f") - (revision "6")) + (let ((commit "67fd70f01a363002881f3519b50765b756716e3b") + (revision "7")) (package (name "kodi") (version (string-append "18.0_alpha-" revision "-" (string-take commit 7))) @@ -254,7 +254,7 @@ (define-public kodi (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0x8fqvid8b8qra327z615r2ygfkdca2p7wccdj5nfb4i5gy0sr09")) + "12975n4r982kmxc0r9w24n3lrj7aj3cs4fjkdjnn0r9jbnvfxhs3")) (snippet '(begin (use-modules (guix build utils)) -- cgit v1.2.3 From 036f1eedcc46e50fda525a65eef5de1797ce4f4d Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Fri, 3 Nov 2017 18:39:17 +0300 Subject: gnu: Add python-clf. * gnu/packages/web.scm (python-clf): New variable. --- gnu/packages/web.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 8a6cd91ebc..a4a8778efa 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5212,6 +5212,58 @@ (define-public python2-internetarchive (package-with-python2 (strip-python2-variant python-internetarchive))) +(define-public python-clf + (let ((commit-test-clf "d01d25923c599d3261910f79fb948825b4270d07")) ; 0.5.7 + (package + (name "python-clf") + (version "0.5.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "clf" version)) + (sha256 + (base32 + "0zlkzqnpz7a4iavsq5vaz0nf5nr7qm5znpg1vlpz6rwnx6hikjdb")))) + (build-system python-build-system) + (propagated-inputs + `(("python-docopt" ,python-docopt) + ("python-pygments" ,python-pygments) + ("python-requests" ,python-requests) + ("python-nose" ,python-nose) + ("python-lxml" ,python-lxml) + ("python-pyaml" ,python-pyaml))) + (inputs + `(("test-clf" + ,(origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com" + "/ncrocfer/clf/" commit-test-clf + "/test_clf.py")) + (sha256 + (base32 + "19lr5zdzsmxgkg7wrjq1yzkiahd03wi4k3dskssyhmjls8c10nqd")))))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'get-tests + (lambda _ + (copy-file (assoc-ref %build-inputs "test-clf") "test_clf.py"))) + (replace 'check + (lambda _ + (zero? (system* "nosetests" + ;; These tests require internet connection + "--exclude=test_browse" + "--exclude=test_command" + "--exclude=test_search"))))))) + (home-page "https://github.com/ncrocfer/clf") + (synopsis "Search code snippets on @url{https://commandlinefu.com}") + (description "@code{clf} is a command line tool for searching code +snippets on @url{https://commandlinefu.com}.") + (license l:expat)))) + +(define-public python2-clf + (package-with-python2 python-clf)) + (define-public r-shiny (package (name "r-shiny") -- cgit v1.2.3 From 4bee9040fedbe7fca94016351ef78132f297ebf4 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 20 Nov 2017 04:38:20 -0500 Subject: gnu: linux-libre@4.4: Update to 4.4.99. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.99. --- 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 45a72c5cfd..8ee8a4ed0a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -389,8 +389,8 @@ (define-public linux-libre-4.9 #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.98" - "1n34bwz6c122byjyfz6z916v7lx4pgsys0a2kq2zmxcfs9kv60xs" + (make-linux-libre "4.4.99" + "1jg6awk2y3spkaiwwaxvbzcxflbx9jql29j1zqysg5p7njzcxjcr" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 92be9ee7e1cfdc8f7dc943217a897611e686c787 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 20 Nov 2017 04:39:04 -0500 Subject: gnu: linux-libre@4.9: Update to 4.9.63. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.63. --- 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 8ee8a4ed0a..cf8bcf0f25 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -383,8 +383,8 @@ (define-public linux-libre #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.62" - "00brapsvchkv2q4p6spvjk92524mfcsj5aq5jcjvqhx50fn71y1w" + (make-linux-libre "4.9.63" + "1rjg9hgl2xkisshc5cxkri9191qj0xxak0swd37b33pnaksx5dnv" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From aa6ae8d3243ce80d6c427e243c4fa961c3bf8388 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 20 Nov 2017 18:14:47 +0100 Subject: gnu: scribus: Fix No module named _sysconfigdata_nd. * gnu/packages/scribus.scm (scribus): Wrap PATH with expected Python around executable. Fixes . --- gnu/packages/scribus.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm index 6230195ed4..860d346778 100644 --- a/gnu/packages/scribus.scm +++ b/gnu/packages/scribus.scm @@ -81,7 +81,19 @@ (define-public scribus (arguments `(#:tests? #f ;no test target #:configure-flags - '("-DWANT_GRAPHICSMAGICK=1"))) + '("-DWANT_GRAPHICSMAGICK=1") + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Fix "ImportError: No module named _sysconfigdata_nd" where + ;; Scribus checks PATH and eventually runs system's Python + ;; instead of package's. + (let* ((out (assoc-ref outputs "out")) + (py2 (assoc-ref inputs "python"))) + (wrap-program (string-append out "/bin/scribus") + `("PATH" ":" prefix (,(string-append py2 "/bin"))))) + #t))))) (inputs `(("boost" ,boost) ("cairo" ,cairo) -- cgit v1.2.3 From 4b1ba80cef69b951a72e1dfd04bb3ddc5f4e571c Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Fri, 17 Nov 2017 20:35:00 +0100 Subject: gnu: wget2: Switch to official URL. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/wget.scm (wget2): Switch to official URL. Signed-off-by: Ludovic Courtès --- gnu/packages/wget.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index a4862d5155..3dcf00b9be 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -130,7 +130,7 @@ (define-public wget2 (origin (method git-fetch) (uri (git-reference - (url "https://github.com/rockdaboot/wget2") + (url "https://gitlab.com/gnuwget/wget2.git") (commit "b45709d3d21714135ce79df6abbdcb704684063d") (recursive? #t))) ;; Needed for 'gnulib' git submodule. (file-name (string-append name "-" version "-checkout")) @@ -167,7 +167,7 @@ (define-public wget2 ("python", python))) ;; TODO: Add libbrotlidec, libnghttp2. (native-inputs `(("pkg-config", pkg-config))) - (home-page "https://github.com/rockdaboot/wget2") + (home-page "https://gitlab.com/gnuwget/wget2") (synopsis "Successor of GNU Wget") (description "GNU Wget2 is the successor of GNU Wget, a file and recursive website downloader. Designed and written from scratch it wraps around libwget, -- cgit v1.2.3 From bd7e136d295f0d6c1aa5d107356e28c259a54cb9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 20 Nov 2017 18:41:47 +0100 Subject: Add semicolon in commands that set GUIX_PROFILE. Fixes . Reported by Rosebud Uplink . * doc/guix.texi (Binary Installation): Add missing semicolon after 'GUIX_PROFILE=' line. (Invoking guix package): Likewise. * gnu/system.scm (operating-system-etc-service)[profile]: Likewise. * guix/build/profiles.scm (build-etc/profile): Likewise. --- doc/guix.texi | 4 ++-- gnu/system.scm | 4 ++-- guix/build/profiles.scm | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index d4a2a696a4..4f8453ebf0 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -456,7 +456,7 @@ Source @file{etc/profile} to augment @code{PATH} and other relevant environment variables: @example -# GUIX_PROFILE=$HOME/.guix-profile \ +# GUIX_PROFILE=$HOME/.guix-profile ; \ source $GUIX_PROFILE/etc/profile @end example @@ -1684,7 +1684,7 @@ Files,,, bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all the right environment variable definitions: @example -GUIX_PROFILE="$HOME/.guix-profile" \ +GUIX_PROFILE="$HOME/.guix-profile" ; \ source "$HOME/.guix-profile/etc/profile" @end example diff --git a/gnu/system.scm b/gnu/system.scm index 9e05c4b213..7466ed780d 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -588,7 +588,7 @@ (define* (operating-system-etc-service os) unset PATH # Load the system profile's settings. -GUIX_PROFILE=/run/current-system/profile \\ +GUIX_PROFILE=/run/current-system/profile ; \\ . /run/current-system/profile/etc/profile # Prepend setuid programs. @@ -608,7 +608,7 @@ (define* (operating-system-etc-service os) if [ -f \"$HOME/.guix-profile/etc/profile\" ] then # Load the user profile's settings. - GUIX_PROFILE=\"$HOME/.guix-profile\" \\ + GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\ . \"$HOME/.guix-profile/etc/profile\" else # At least define this one so that basic things just work diff --git a/guix/build/profiles.scm b/guix/build/profiles.scm index 5c96fe9067..b4160fba1b 100644 --- a/guix/build/profiles.scm +++ b/guix/build/profiles.scm @@ -82,7 +82,7 @@ (define (build-etc/profile output search-paths) # for this profile. You may want to define the 'GUIX_PROFILE' environment # variable to point to the \"visible\" name of the profile, like this: # -# GUIX_PROFILE=/path/to/profile \\ +# GUIX_PROFILE=/path/to/profile ; \\ # source /path/to/profile/etc/profile # # When GUIX_PROFILE is undefined, the various environment variables refer -- cgit v1.2.3 From 41916bea1b3f70895ec1ff5a457a1cfa68896c21 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sun, 19 Nov 2017 08:47:44 +0100 Subject: gnu: Add python-pyodbc. * gnu/packages/databases.scm (python-pyodbc, python2-pyodbc): New variables. --- gnu/packages/databases.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index b825a24528..db3361eb10 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1764,6 +1764,33 @@ (define-public python-pyodbc-c (define-public python2-pyodbc-c (package-with-python2 python-pyodbc-c)) +(define-public python-pyodbc + (package + (name "python-pyodbc") + (version "4.0.21") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyodbc" version)) + (sha256 + (base32 + "0a83zwz3h1agshnsc6r7al6q83222w8601gpzzzjvjz5m56ghmcn")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system python-build-system) + (inputs + `(("unixodbc" ,unixodbc))) + (arguments + `(;; No unit tests exist. + #:tests? #f)) + (home-page "https://github.com/mkleehammer/pyodbc") + (synopsis "Python ODBC Library") + (description "@code{python-pyodbc} provides a Python DB-API driver +for ODBC.") + (license (license:x11-style "file:///LICENSE.TXT")))) + +(define-public python2-pyodbc + (package-with-python2 python-pyodbc)) + (define-public mdbtools (package (name "mdbtools") -- cgit v1.2.3 From a5792deca5ed0cded624dc1bb161450427a0a9d8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 20 Nov 2017 22:33:54 +0100 Subject: compile: Put an upper bound on the number of workers. * guix/build/compile.scm (compile-files): Don't use more than 8 workers. --- guix/build/compile.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/guix/build/compile.scm b/guix/build/compile.scm index 8b5a2faf84..1bd8c60fe5 100644 --- a/guix/build/compile.scm +++ b/guix/build/compile.scm @@ -163,7 +163,11 @@ (define (build file) ;; compile files in parallel. (compile #f) - (n-par-for-each workers build files) + ;; XXX: Don't use too many workers to work around the insane memory + ;; requirements of the compiler in Guile 2.2.2: + ;; . + (n-par-for-each (min workers 8) build files) + (unless (zero? total) (report-compilation #f total total))))) -- cgit v1.2.3 From ebde40a14aa3e48f4dd8e2c342452cceca336486 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 20 Nov 2017 18:59:35 -0500 Subject: gnu: musl: Update to 1.1.18. * gnu/packages/musl.scm (musl): Update to 1.1.18. --- gnu/packages/musl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/musl.scm b/gnu/packages/musl.scm index dbb8c4856f..7c78d29385 100644 --- a/gnu/packages/musl.scm +++ b/gnu/packages/musl.scm @@ -27,14 +27,14 @@ (define-module (gnu packages musl) (define-public musl (package (name "musl") - (version "1.1.17") + (version "1.1.18") (source (origin (method url-fetch) (uri (string-append "http://www.musl-libc.org/releases/" name "-" version ".tar.gz")) (sha256 (base32 - "0r0lyp2w6v2bvm8h1si7w3p2qx037szl14qnxm5p00568z3m3an8")))) + "0651lnj5spckqjf83nz116s8qhhydgqdy3rkl4icbh5f05fyw5yh")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; Musl has no tests -- cgit v1.2.3 From 74a83085da43dded54f04905e7d609ed84a2691e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 17 Nov 2017 00:26:42 +0100 Subject: gnu: eid-mw: Update to 4.3.4. * gnu/packages/security-token.scm (eid-mw): Update to 4.3.4. Fix up indentation. --- gnu/packages/security-token.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index ba7c09a438..fa910a92aa 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Mike Gerwitz ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 Thomas Danckaert +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -82,7 +83,7 @@ (define-public ccid (define-public eid-mw (package (name "eid-mw") - (version "4.3.0") + (version "4.3.4") (source (origin (method url-fetch) (uri (string-append @@ -91,9 +92,9 @@ (define-public eid-mw (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0s646p19kq27wb160v9b8aaiy30k2shmq4njm471ggd2j7n7a6rs")))) + "1ay9znry9dkhhn783paqy8czvv3w5gdpmq8ag8znx9akza8c929z")))) (build-system glib-or-gtk-build-system) - (native-inputs + (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("gettext" ,gnu-gettext) @@ -114,7 +115,7 @@ (define-public eid-mw (modify-phases %standard-phases ;; The github tarball doesn't contain a configure script. (add-before 'configure 'autoreconf - (lambda _ (zero? (system* "autoreconf" "-i"))))))) + (lambda _ (zero? (system* "autoreconf" "-i"))))))) (synopsis "Belgian eID Middleware") (description "The Belgian eID Middleware is required to authenticate with online services using the Belgian electronic identity card.") -- cgit v1.2.3 From e26e55c86c35efc8f8ad39b1a9cb12231cc04b8f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 16 Nov 2017 01:59:45 +0100 Subject: gnu: nss: Mark up description. * gnu/packages/gnuzilla.scm (nss)[description]: Use @dfn. --- gnu/packages/gnuzilla.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 3499f48594..814d37270e 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2017 ng0 +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -381,11 +382,11 @@ (define-public nss "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS") (synopsis "Network Security Services") (description - "Network Security Services (NSS) is a set of libraries designed to support -cross-platform development of security-enabled client and server applications. -Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7, -PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security -standards.") + "Network Security Services (@dfn{NSS}) is a set of libraries designed to +support cross-platform development of security-enabled client and server +applications. Applications built with NSS can support SSL v2 and v3, TLS, +PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other +security standards.") (license license:mpl2.0))) (define (mozilla-patch file-name changeset hash) -- cgit v1.2.3 From 733f94b33919c3957be3e0bee420d3ca1c97faae Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 20 Nov 2017 21:39:31 +0100 Subject: gnu: btrfs-progs: Update to 4.14. * gnu/packages/linux.scm (btrfs-progs): Update to 4.14. --- 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 cf8bcf0f25..06d69c90a0 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3173,7 +3173,7 @@ (define-public gpm (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.13.3") + (version "4.14") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -3181,7 +3181,7 @@ (define-public btrfs-progs "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "10yp0b4pwrw5mcd81yn3d0d87fnqpp4si5d25dfhl6n2640dnnw0")))) + "1bwirg6hz6gyfj5r3xkj4lfwadvl9pxlccf916fsmdn27fy5q289")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" -- cgit v1.2.3 From ac1f1aa270cb10b7570a8e0181ab709f082c4032 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 20 Nov 2017 22:12:22 +0100 Subject: gnu: perl-devel-stacktrace: Update to 2.03. * gnu/packages/perl.scm (perl-devel-stacktrace): Update to 2.03. --- 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 e787f4bb22..73bab96a26 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2648,7 +2648,7 @@ (define-public perl-devel-partialdump (define-public perl-devel-stacktrace (package (name "perl-devel-stacktrace") - (version "2.00") + (version "2.03") (source (origin (method url-fetch) @@ -2656,7 +2656,7 @@ (define-public perl-devel-stacktrace "Devel-StackTrace-" version ".tar.gz")) (sha256 (base32 - "1r65iq5i11xh0r0kp3pdycydnd3kxpdmxnp0hq9hx9lr60kygsqx")))) + "0j58kgjr9s3vibsgifmk9k5h7daag0cb9x45f30m9qi4pr7cs63n")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Devel-StackTrace/") (synopsis "Object representing a stack trace") -- cgit v1.2.3 From ffe7eee59cd7e00e76096c5021a770aeb35093b9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 16 Nov 2017 20:45:21 +0100 Subject: gnu: protobuf: Add ‘static’ output. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/protobuf.scm (protobuf)[outputs]: New field. [arguments]: Add new ‘move-static-libraries’ phase. --- gnu/packages/protobuf.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm index 2e681ca97d..02d58b1448 100644 --- a/gnu/packages/protobuf.scm +++ b/gnu/packages/protobuf.scm @@ -46,6 +46,24 @@ (define-public protobuf "0y6cr4l7bwa6zvjv5flzr4cx28shk5h8dz99xw90v8qih954pcrb")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) + (outputs (list "out" + "static")) ; ~12 MiB of .a files + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'move-static-libraries + (lambda* (#:key outputs #:allow-other-keys) + ;; Move static libraries to the "static" output. + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (static (assoc-ref outputs "static")) + (slib (string-append static "/lib"))) + (mkdir-p slib) + (for-each (lambda (file) + (install-file file slib) + (delete-file file)) + (find-files lib "\\.a$")) + #t)))))) (home-page "https://github.com/google/protobuf") (synopsis "Data encoding for remote procedure calls (RPCs)") (description -- cgit v1.2.3 From 7d9935b47e005095bd98ab99d358b80f20ad5667 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 16 Nov 2017 03:33:15 +0100 Subject: gnu: Add fstrm. * gnu/packages/protobuf.scm (fstrim): New public variable. --- gnu/packages/protobuf.scm | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm index 02d58b1448..98f9fc924f 100644 --- a/gnu/packages/protobuf.scm +++ b/gnu/packages/protobuf.scm @@ -26,12 +26,49 @@ (define-module (gnu packages protobuf) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module ((guix licenses) - #:select (bsd-2 bsd-3)) + #:select (asl2.0 bsd-2 bsd-3 non-copyleft)) #:use-module (gnu packages compression) #:use-module (gnu packages gcc) + #:use-module (gnu packages libevent) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python)) +(define-public fstrm + (package + (name "fstrm") + (version "0.3.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://dl.farsightsecurity.com/dist/" name "/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1i9y8a1712aj80p5a1kcp378bnjrg3s2127q7304hklhmjcrjl1d")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libevent" ,libevent))) + (home-page "https://github.com/farsightsec/fstrm") + (synopsis "Implementation of the Frame Streams data transport protocol") + (description + "fstrm is an optimised implementation of Frame Streams as a C library and +several tools built on top of it. + +@dfn{Frame Streams} is a light-weight, binary-clean protocol that allows for +the transport of arbitrarily-encoded data payload sequences with minimal +framing overhead---just four bytes per data frame. It does not specify an +encoding format for these data frames and can be used with any data +serialisation format that produces byte sequences, such as Protocol Buffers, +XML, JSON, MessagePack, YAML, etc. + +Frame Streams can be used either as a streaming transport over a reliable byte +stream socket (TCP sockets, TLS connections, @code{AF_UNIX} sockets, etc.) for +data in motion, or as a file format for data at rest.") + (license (list asl2.0 + (non-copyleft #f "See libmy/argv.c"))))) ; libmy/argv* + (define-public protobuf (package (name "protobuf") -- cgit v1.2.3 From 7e685deeb72cb2ec4bbb647799d57b4e4d91dbd7 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 16 Nov 2017 03:52:07 +0100 Subject: gnu: Use ‘license:’ prefix in (gnu packages protobuf). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/protobuf.scm (fstrm, protobuf, protobuf-2, protobuf-c) (python-protobuf, python2-protobuf): Use ‘license:’ prefix. --- gnu/packages/protobuf.scm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm index 98f9fc924f..1ed813b761 100644 --- a/gnu/packages/protobuf.scm +++ b/gnu/packages/protobuf.scm @@ -25,8 +25,7 @@ (define-module (gnu packages protobuf) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system python) - #:use-module ((guix licenses) - #:select (asl2.0 bsd-2 bsd-3 non-copyleft)) + #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages compression) #:use-module (gnu packages gcc) #:use-module (gnu packages libevent) @@ -66,8 +65,8 @@ (define-public fstrm Frame Streams can be used either as a streaming transport over a reliable byte stream socket (TCP sockets, TLS connections, @code{AF_UNIX} sockets, etc.) for data in motion, or as a file format for data at rest.") - (license (list asl2.0 - (non-copyleft #f "See libmy/argv.c"))))) ; libmy/argv* + (license (list license:asl2.0 + (license:non-copyleft #f "See libmy/argv*"))))) (define-public protobuf (package @@ -107,7 +106,7 @@ (define-public protobuf "Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats.") - (license bsd-3))) + (license license:bsd-3))) ;; XXX Remove this old version when no other packages depend on it. (define-public protobuf-2 @@ -145,7 +144,7 @@ (define-public protobuf-c that implements protobuf encoding and decoding, and @code{protoc-c}, a code generator that converts Protocol Buffer @code{.proto} files to C descriptor code.") - (license bsd-2))) + (license license:bsd-2))) (define-public python-protobuf (package @@ -166,7 +165,7 @@ (define-public python-protobuf (description "Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data.") - (license bsd-3))) + (license license:bsd-3))) (define-public python2-protobuf (package-with-python2 python-protobuf)) -- cgit v1.2.3 From 023ef01354671f28e88b1dd3e6f4cf9fefb6f6d9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 16 Nov 2017 07:57:55 +0100 Subject: gnu: knot: Support dnstap query logging. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/dns.scm (knot)[source]: No longer delete dnstap. It appears that dnstap is intended to be bundled and modified. [inputs]: Add fstrm and protobuf-c. [arguments]: Add ‘--with-module-dnstap=yes’ to #:configure-flags. --- gnu/packages/dns.scm | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index b06cde71b4..c1cdb613a5 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -494,20 +494,16 @@ (define-public knot (modules '((guix build utils))) (snippet '(begin - ;; Remove bundled libraries and dependencies on them. - (substitute* "configure" - (("src/contrib/dnstap/Makefile") "")) - (substitute* "src/Makefile.in" - (("contrib/dnstap ") "")) + ;; Delete bundled libraries. (with-directory-excursion "src/contrib" - (for-each delete-file-recursively - (list "dnstap" "lmdb"))) + (delete-file-recursively "lmdb")) #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("gnutls" ,gnutls) + `(("fstrm" ,fstrm) + ("gnutls" ,gnutls) ("jansson" ,jansson) ("libcap-ng" ,libcap-ng) ("libedit" ,libedit) @@ -516,6 +512,7 @@ (define-public knot ("lmdb" ,lmdb) ("ncurses" ,ncurses) ("nettle" ,nettle) + ("protobuf-c" ,protobuf-c) ;; For ‘pykeymgr’, needed to migrate keys from versions <= 2.4. ("python" ,python-2) @@ -548,6 +545,7 @@ (define-public knot (list "--sysconfdir=/etc" "--localstatedir=/var" "--with-module-rosedb=yes" ; serve static records from a database + "--with-module-dnstap=yes" ; allow detailed query logging (string-append "--with-bash-completions=" (assoc-ref %outputs "out") "/etc/bash_completion.d")))) -- cgit v1.2.3 From 0056f4cc57f4e3111cd707b62bbbc8b615add135 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 21 Nov 2017 01:50:34 +0100 Subject: gnu: knot: Update licence information. * gnu/packages/dns.scm (knot)[license]: Add PUBLIC-DOMAIN. Expand comments. --- gnu/packages/dns.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index c1cdb613a5..f930b903a9 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -558,6 +558,11 @@ (define-public knot is completely lock-free, resulting in a very high response rate. Other features include automatic @dfn{DNS Security Extensions} (DNSSEC) signing, dynamic record synthesis, and on-the-fly re-configuration.") - (license (list license:expat ; src/contrib/{hat-trie,murmurhash3} - license:lgpl2.0+ ; parts of scr/contrib/ucw - license:gpl3+)))) ; everything else + (license + (list + ;; src/contrib/{hat-trie,murmurhash3,openbsd}, + ;; src/dnssec/contrib/vpool.[ch], and parts of libtap/ are ‘MIT’ (expat). + license:expat + license:lgpl2.0+ ; parts of scr/contrib/ucw + license:public-domain ; src/contrib/fnv and possibly murmurhash3 + license:gpl3+)))) ; everything else -- cgit v1.2.3 From a0fe7c06452ad89d15e38ba2b698228f4fe3a76d Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 20 Nov 2017 20:40:49 +0000 Subject: gnu: Patch path to locale in gnome-desktop. * gnu/packages/gnome.scm (gnome-desktop)[arguments]: Add 'patch-path phase to get libgnome-desktop to use the full path to the locale binary. --- gnu/packages/gnome.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 25e0e8fe31..86ec22d336 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -454,6 +454,16 @@ (define-public gnome-desktop (base32 "0pkq5l1llw8gkjhfq6y58iyj6wac8dh1mc3rzjzn6nd7lrkdx8cg")))) (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((libc (assoc-ref inputs "libc"))) + (substitute* "libgnome-desktop/gnome-languages.c" + (("\"locale\"") + (string-append "\"" libc "/bin/locale\""))) + #t)))))) (native-inputs `(("gobject-introspection" ,gobject-introspection) ("itstool" ,itstool) -- cgit v1.2.3 From 760e504dcbef1b9a89e18c8ddb2689b500ff86eb Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 21 Nov 2017 10:49:32 +0100 Subject: gnu: you-get: Update to 0.4.964. * gnu/packages/video.scm (you-get): Update to 0.4.964. Signed-off-by: Leo Famulari --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 19b55392bd..fdf3f4eaf0 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1259,7 +1259,7 @@ (define-public youtube-dl-gui (define-public you-get (package (name "you-get") - (version "0.4.939") + (version "0.4.964") (source (origin (method url-fetch) (uri (string-append @@ -1268,7 +1268,7 @@ (define-public you-get (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1amkdfnjn2j4k7jlr7qw9mg5whd7dy6z1flh5cd0n9v3d4m7k0c5")))) + "1icxi4f2yli74zyvwfcdrpp56g81kdkan31dc2brs4p0rj567kfx")))) (build-system python-build-system) (arguments ;; no tests -- cgit v1.2.3 From cb9b1a0496b5a550b1385fda285bfe22637cecaf Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 21 Nov 2017 10:44:24 +0100 Subject: gnu: procenv: Update to 0.50. * gnu/packages/linux.scm (procenv): Update to 0.50. Signed-off-by: Leo Famulari --- 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 06d69c90a0..d339242ff1 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -4363,7 +4363,7 @@ (define-public jmtpfs (define-public procenv (package (name "procenv") - (version "0.49") + (version "0.50") (source (origin (method url-fetch) @@ -4371,7 +4371,7 @@ (define-public procenv version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "0brzf6185hb76imw107cl21c8lzwiywkxi3jknihrk86bvvicd0d")))) + (base32 "0dvscyf47i3j5ay0amncqmqw9kd916689r2pqdvpnsrhp6j46zp1")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-silent-rules"))) (inputs `(("expat" ,expat) ("libcap" ,libcap) ("check" ,check) -- cgit v1.2.3 From 7bd4103eb78156ea769d91bd69a37ccf2a853dc9 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 21 Nov 2017 10:36:07 +0100 Subject: gnu: cdogs-sdl: Update to 0.6.6. * gnu/packages/games.scm (cdogs-sdl): Update to 0.6.6. Signed-off-by: Leo Famulari --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 2ef69e87d1..b041bc8d82 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -4154,7 +4154,7 @@ (define-public freegish (define-public cdogs-sdl (package (name "cdogs-sdl") - (version "0.6.5") + (version "0.6.6") (source (origin (method url-fetch) (uri (string-append "https://github.com/cxong/cdogs-sdl/" @@ -4162,7 +4162,7 @@ (define-public cdogs-sdl (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "17llrpdrrwi8h37vjpkxk2asj7h8qdfp2zy28wiwb7cjzribmz3k")))) + "08gbx6vqqir48xs6qdfa4kv70gj4j96wzs90pg7qldfasxz34ljm")))) (build-system cmake-build-system) (arguments `(#:configure-flags -- cgit v1.2.3 From 9a87aa814a30a0f224633ad9770da69c1767a069 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 21 Nov 2017 08:25:15 +0100 Subject: gnu: retroarch: Update to 1.6.8. * gnu/packages/games.scm (retroarch): Update to 1.6.8. Signed-off-by: Leo Famulari --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index b041bc8d82..816e528600 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1346,7 +1346,7 @@ (define-public fizmo (define-public retroarch (package (name "retroarch") - (version "1.6.7") + (version "1.6.8") (source (origin (method url-fetch) @@ -1354,7 +1354,7 @@ (define-public retroarch version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "13vp5skf95a4fla3dwdk2v48dgnmrvimvp9fgpr1vppb7wfjhbr1")))) + (base32 "129w73jz2c2jwm8cxv8q9d0jacdsam5x91gvydlcy8asd2dyhpn5")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests -- cgit v1.2.3 From 40e89f5be609045bc2666cc16a4ef80bb7f84095 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Nov 2017 00:27:08 +0100 Subject: gnu: guix: Disable test that fails on Btrfs. Works around . Reported by Rutger Helling . * gnu/packages/package-management.scm (guix)[arguments]: Rename 'disable-container-tests' phase to 'disable-failing-tests' and add substitution to disable test for freed disk space. --- gnu/packages/package-management.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 4f1f7f577d..0c7aef9a5d 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -169,8 +169,7 @@ (define (copy arch) (copy "armhf") (copy "aarch64") #t)) - (add-after - 'unpack 'disable-container-tests + (add-after 'unpack 'disable-failing-tests ;; XXX FIXME: These tests fail within the build container. (lambda _ (substitute* "tests/syscalls.scm" @@ -183,6 +182,12 @@ (define (copy arch) (substitute* "tests/guix-environment-container.sh" (("guix environment --version") "exit 77\n"))) + ;; XXX: On some file systems (notably Btrfs), the test + ;; for freed disk space after GC may fail. See + ;; . + (substitute* "tests/store.scm" + (("(\\(> freed 0\\))" all) + (string-append ";" all))) #t)) (add-before 'check 'set-SHELL (lambda _ -- cgit v1.2.3 From 3151345c57e795f1c2d618709b2d06516dea350b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Nov 2017 21:51:45 +0100 Subject: gnu: signify: Update to 23. * gnu/packages/crypto.scm (signify): Update to 23. --- gnu/packages/crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 72fee0742d..7f0240002f 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -115,7 +115,7 @@ (define-public libmd (define-public signify (package (name "signify") - (version "22") + (version "23") (source (origin (method url-fetch) (uri (string-append "https://github.com/aperezdc/signify/" @@ -123,7 +123,7 @@ (define-public signify (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0iv5bjaas70ymqchxasapin4c32c41kqzkfhc3kcjzd7rxy78msy")))) + "0c70mzawgahsvmsv4xdrass4pgyynd67ipd9lij0fgi8wkq0ns8w")))) (build-system gnu-build-system) ;; TODO Build with libwaive (described in README.md), to implement something ;; like OpenBSD's pledge(). -- cgit v1.2.3 From b63466f2bc4c51316ba84d3a0e36c1be635e68e0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Nov 2017 21:52:06 +0100 Subject: gnu: samba: Update to 4.7.3 [fixes CVE-2017-14746 and CVE-2017-15275]. * gnu/packages/samba.scm (samba): Update to 4.7.3. --- gnu/packages/samba.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index c9e4bee4a2..cee047b938 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -151,14 +151,14 @@ (define (copy dir) (define-public samba (package (name "samba") - (version "4.7.2") + (version "4.7.3") (source (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/stable/" "samba-" version ".tar.gz")) (sha256 (base32 - "14ngvqkdcjmc1nfyx2vgh82jmqdj6rhpqdqq4az7dcnzi4i52cpx")))) + "0b7xbfjpg7l1lz13gvj4ifcp9j3cvfp6pswjbq03z06bl4n1br06")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From 0c417d955e9171c9f45f9a21581a2e840579b764 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Nov 2017 21:54:18 +0100 Subject: gnu: orc: Update to 0.4.28. * gnu/packages/gstreamer.scm (orc): Update to 0.4.28. --- gnu/packages/gstreamer.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index c87465db09..a57676fdf3 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -64,14 +64,14 @@ (define-module (gnu packages gstreamer) (define-public orc (package (name "orc") - (version "0.4.27") + (version "0.4.28") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/data/src/" "orc/orc-" version ".tar.xz")) (sha256 (base32 - "14vbwdydwarcvswzf744jdjb3ibhv6k4j6hzdacfan41zic3xrai")))) + "1kl3rlmzr27bdpn78nvpnjs142ja1m6grvafdhw74mmhcdjprkdz")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From a28835a007c63fffe9b3649b769a7c38267067bc Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Nov 2017 21:57:20 +0100 Subject: gnu: gnupg: Update to 2.2.3. * gnu/packages/gnupg.scm (gnupg): Update to 2.2.3. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 89ec976f94..d2b74c4721 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -225,14 +225,14 @@ (define-public npth (define-public gnupg (package (name "gnupg") - (version "2.2.2") + (version "2.2.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "15w1q0bib742jqnir67bk07mc6ph9yik8wbc5i1bkcyf29s2rdmz")))) + "1d4482c4pbi0p1k8cc0f9c4q51k56v8navrbz5samxrrs42p3lyb")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From d280a0faeaba67be03a37b49a300bafb5b9a3e8f Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 21 Nov 2017 20:05:48 +0100 Subject: gnu: retroarch: Update to 1.6.9. * gnu/packages/games.scm (retroarch): Update to 1.6.9. Signed-off-by: Marius Bakke --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 816e528600..73ffa74c7b 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1346,7 +1346,7 @@ (define-public fizmo (define-public retroarch (package (name "retroarch") - (version "1.6.8") + (version "1.6.9") (source (origin (method url-fetch) @@ -1354,7 +1354,7 @@ (define-public retroarch version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "129w73jz2c2jwm8cxv8q9d0jacdsam5x91gvydlcy8asd2dyhpn5")))) + (base32 "1d3qbph59d43k10mprqm8h23143yji5mwjkciwynwa4xvsgydpb6")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests -- cgit v1.2.3 From d1451fa0d0b27a20ef3a1b3fe8d53a995f0c4d85 Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Tue, 21 Nov 2017 09:49:35 +0000 Subject: gnu: taglib: Update to 1.11.1 and fix home page. * gnu/packages/mp3.scm (taglib)[version]: Update to 1.11.1. [arguments]: Configure with -DBUILD_SHARED_LIBS=ON. [home-page]: Change to http://taglib.org. Signed-off-by: Marius Bakke --- gnu/packages/mp3.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 1860997e09..fbb924ba51 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Thomas Danckaert +;;; Copyright © 2017 Pierre Langlois ;;; ;;; This file is part of GNU Guix. ;;; @@ -151,18 +152,20 @@ (define-public id3lib (define-public taglib (package (name "taglib") - (version "1.10") + (version "1.11.1") (source (origin (method url-fetch) (uri (string-append "http://taglib.github.io/releases/taglib-" version ".tar.gz")) (sha256 (base32 - "1alv6vp72p0x9i9yscmz2a71anjwqy53y9pbcbqxvc1c0i82vhr4")))) + "0ssjcdjv4qf9liph5ry1kngam1y7zp8fzr9xv4wzzrma22kabldn")))) (build-system cmake-build-system) - (arguments '(#:tests? #f)) ;no 'test' target + (arguments + '(#:tests? #f ; Tests are not ran with BUILD_SHARED_LIBS on. + #:configure-flags (list "-DBUILD_SHARED_LIBS=ON"))) (inputs `(("zlib" ,zlib))) - (home-page "http://developer.kde.org/~wheeler/taglib.html") + (home-page "http://taglib.org") (synopsis "Library to access audio file meta-data") (description "TagLib is a C++ library for reading and editing the meta-data of several -- cgit v1.2.3 From 953c2de7061f18f55d8c51b72eb24945f436e80e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Nov 2017 22:42:56 +0100 Subject: tests: Disable test for freed disk space that fails on Btrfs. This is a follow-up to commit 40e89f5be609045bc2666cc16a4ef80bb7f84095. * tests/store.scm ("dead path can be explicitly collected"): Don't check that (> freed 0). * gnu/packages/package-management.scm (guix)[arguments]<#:phases>: Remove workaround for the same problem. --- gnu/packages/package-management.scm | 6 ------ tests/store.scm | 4 +++- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 0c7aef9a5d..4b6db4c411 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -182,12 +182,6 @@ (define (copy arch) (substitute* "tests/guix-environment-container.sh" (("guix environment --version") "exit 77\n"))) - ;; XXX: On some file systems (notably Btrfs), the test - ;; for freed disk space after GC may fail. See - ;; . - (substitute* "tests/store.scm" - (("(\\(> freed 0\\))" all) - (string-append ";" all))) #t)) (add-before 'check 'set-SHELL (lambda _ diff --git a/tests/store.scm b/tests/store.scm index 45aeb329b0..fdf3be33f6 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -180,7 +180,9 @@ (define %store (random-text) '()))) (let-values (((paths freed) (delete-paths %store (list p)))) (and (equal? paths (list p)) - (> freed 0) + ;; XXX: On some file systems (notably Btrfs), freed + ;; may return 0. See . + ;;(> freed 0) (not (file-exists? p)))))) (test-assert "add-text-to-store vs. delete-paths" -- cgit v1.2.3 From 5c1f38bf8bac83ae1c2f7864d70dc0e0f8ace311 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 21 Nov 2017 22:55:34 +0100 Subject: gnu: guix: Update snapshot. * gnu/packages/package-management.scm (guix): Update to 953c2de. --- 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 4b6db4c411..c7a3681161 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -85,8 +85,8 @@ (define-public guix ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.13.0") - (commit "0b4c385f8faf7f3436eb9af3ccb36cbd70da653b") - (revision 10)) + (commit "953c2de7061f18f55d8c51b72eb24945f436e80e") + (revision 11)) (package (name "guix") @@ -102,7 +102,7 @@ (define-public guix (commit commit))) (sha256 (base32 - "05q2c751lyh8dkcg7bfn4qpk5137zwbxgfm1sifz1aiq9xnb0d1a")) + "1nnsang4wv6c63sdm3r7i06wqgzmq9ijpz5y00cxajbsqjzl07c7")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 59523429d61083f410d54ac8f8516c66459c1003 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 19 Oct 2017 16:07:34 +0200 Subject: union: Parametrize the symlink procedure . * guix/gexp.scm (directory-union): Add #:hard-links and honor it. * guix/build/union.scm (union-build): Add #:symlink parameter. --- guix/build/union.scm | 11 ++++++----- guix/gexp.scm | 19 ++++++++++++++++--- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/guix/build/union.scm b/guix/build/union.scm index 18167fa3e3..256123c566 100644 --- a/guix/build/union.scm +++ b/guix/build/union.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2017 Huang Ying ;;; @@ -78,11 +78,12 @@ (define buf2 (make-bytevector len)) (define* (union-build output inputs #:key (log-port (current-error-port)) - (create-all-directories? #f)) + (create-all-directories? #f) + (symlink symlink)) "Build in the OUTPUT directory a symlink tree that is the union of all the -INPUTS. As a special case, if CREATE-ALL-DIRECTORIES?, creates the -subdirectories in the output directory to make sure the caller can modify them -later." +INPUTS, using SYMLINK to create symlinks. As a special case, if +CREATE-ALL-DIRECTORIES?, creates the subdirectories in the output directory to +make sure the caller can modify them later." (define (symlink* input output) (format log-port "`~a' ~~> `~a'~%" input output) diff --git a/guix/gexp.scm b/guix/gexp.scm index b9525603ee..e8ac3dcdc8 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1204,13 +1204,24 @@ (define (file-union name files) (ungexp target)))))) files)))))) -(define (directory-union name things) +(define* (directory-union name things + #:key (copy? #f)) "Return a directory that is the union of THINGS, where THINGS is a list of file-like objects denoting directories. For example: (directory-union \"guile+emacs\" (list guile emacs)) -yields a directory that is the union of the 'guile' and 'emacs' packages." +yields a directory that is the union of the 'guile' and 'emacs' packages. + +When COPY? is true, copy files instead of creating symlinks." + (define symlink + (if copy? + (gexp (lambda (old new) + (if (file-is-directory? old) + (symlink old new) + (copy-file old new)))) + (gexp symlink))) + (match things ((one) ;; Only one thing; return it. @@ -1221,7 +1232,9 @@ (define (directory-union name things) (gexp (begin (use-modules (guix build union)) (union-build (ungexp output) - '(ungexp things))))))))) + '(ungexp things) + + #:symlink (ungexp symlink))))))))) ;;; -- cgit v1.2.3 From de98b302a1794365ee88e2d78c5afff9296054b8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 19 Oct 2017 16:10:18 +0200 Subject: gexp: 'directory-union' has a #:quiet? parameter. * guix/gexp.scm (directory-union): Add #:quiet? and honor it. --- guix/gexp.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index e8ac3dcdc8..3781a1e6ee 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1205,7 +1205,7 @@ (define (file-union name files) files)))))) (define* (directory-union name things - #:key (copy? #f)) + #:key (copy? #f) (quiet? #f)) "Return a directory that is the union of THINGS, where THINGS is a list of file-like objects denoting directories. For example: @@ -1213,7 +1213,8 @@ (define* (directory-union name things yields a directory that is the union of the 'guile' and 'emacs' packages. -When COPY? is true, copy files instead of creating symlinks." +When HARD-LINKS? is true, create hard links instead of symlinks. When QUIET? +is true, the derivation will not print anything." (define symlink (if copy? (gexp (lambda (old new) @@ -1222,6 +1223,11 @@ (define symlink (copy-file old new)))) (gexp symlink))) + (define log-port + (if quiet? + (gexp (%make-void-port "w")) + (gexp (current-error-port)))) + (match things ((one) ;; Only one thing; return it. @@ -1234,6 +1240,7 @@ (define symlink (union-build (ungexp output) '(ungexp things) + #:log-port (ungexp log-port) #:symlink (ungexp symlink))))))))) -- cgit v1.2.3 From a6591381fc1f5e1890efb8270a3671062249c2bc Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 27 Oct 2017 15:26:19 -0700 Subject: pull: Trim import list. * guix/scripts/pull.scm: Remove useless imports. --- guix/scripts/pull.scm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 2400198000..3e95bd511f 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -25,7 +25,6 @@ (define-module (guix scripts pull) #:use-module (guix config) #:use-module (guix packages) #:use-module (guix derivations) - #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix grafts) #:use-module (guix monads) @@ -39,14 +38,9 @@ (define-module (guix scripts pull) #:use-module ((gnu packages bootstrap) #:select (%bootstrap-guile)) #:use-module ((gnu packages certs) #:select (le-certs)) - #:use-module (gnu packages compression) - #:use-module (gnu packages gnupg) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) - #:use-module (srfi srfi-34) - #:use-module (srfi srfi-35) #:use-module (srfi srfi-37) - #:use-module (ice-9 ftw) #:use-module (ice-9 match) #:export (guix-pull)) -- cgit v1.2.3 From fe9b3ec3ee208c5bac7844f3d0fecce2c6b1297d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 21 Nov 2017 15:25:57 +0100 Subject: git: Do not add '.git' to the store. This makes 'latest-repository-commit' significantly more efficient and reduces disk usage in the store. * guix/git.scm (copy-to-store)[dot-git?]: New procedure. Pass it as the #:select? argument to 'add-to-store'. --- guix/git.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/guix/git.scm b/guix/git.scm index 7a83b56216..fc41e2ace3 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -80,11 +80,17 @@ (define (url+commit->name url sha1) "-" (string-take sha1 7))) (define* (copy-to-store store cache-directory #:key url repository) - "Copy items in cache-directory to store. URL and REPOSITORY are used -to forge store directory name." + "Copy CACHE-DIRECTORY recursively to STORE. URL and REPOSITORY are used to +create the store directory name." + (define (dot-git? file stat) + (and (string=? (basename file) ".git") + (eq? 'directory (stat:type stat)))) + (let* ((commit (repository->head-sha1 repository)) (name (url+commit->name url commit))) - (values (add-to-store store name #t "sha256" cache-directory) commit))) + (values (add-to-store store name #t "sha256" cache-directory + #:select? (negate dot-git?)) + commit))) (define (switch-to-ref repository ref) "Switch to REPOSITORY's branch, commit or tag specified by REF." -- cgit v1.2.3 From 5f93d97005897c2d859f0be1bdff34c88467ec61 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 16 Oct 2017 10:41:37 +0200 Subject: Add (guix self) and use it when pulling. This mitigates . * guix/self.scm: New file. * Makefile.am (MODULES): Add it. * build-aux/build-self.scm (libgcrypt, zlib, gzip, bzip2, xz) (false-if-wrong-guile, package-for-current-guile, guile-json) (guile-ssh, guile-git, guile-bytestructures): Remove. (build): Rewrite to simply delegate to 'compiled-guix'. * gnu/packages.scm (%distro-root-directory): Rewrite to try different directories. * guix/discovery.scm (guix): Export 'scheme-files'. * guix/scripts/pull.scm (build-and-install): Split into... (install-latest): ... this. New procedure. And... (build-and-install): ... this, which now takes a monadic value argument. (indirect-root-added): Remove. (guix-pull): Call 'add-indirect-root'. Call 'build-from-source' and pass the result to 'build-and-install'. --- Makefile.am | 1 + build-aux/build-self.scm | 272 +++++---------------- gnu/packages.scm | 21 +- guix/discovery.scm | 3 +- guix/scripts/pull.scm | 91 ++++--- guix/self.scm | 619 +++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 755 insertions(+), 252 deletions(-) create mode 100644 guix/self.scm diff --git a/Makefile.am b/Makefile.am index 925dd0a25a..a4156c834d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -66,6 +66,7 @@ MODULES = \ guix/derivations.scm \ guix/grafts.scm \ guix/gnu-maintenance.scm \ + guix/self.scm \ guix/upstream.scm \ guix/licenses.scm \ guix/git.scm \ diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index ed8ff5f4ce..d9d9263678 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -17,11 +17,9 @@ ;;; along with GNU Guix. If not, see . (define-module (build-self) - #:use-module (gnu) - #:use-module (guix) - #:use-module (guix config) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) + #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:export (build)) @@ -31,105 +29,51 @@ (define-module (build-self) ;;; argument: the source tree to build. It returns a derivation that ;;; builds it. ;;; -;;; This file uses modules provided by the already-installed Guix. Those -;;; modules may be arbitrarily old compared to the version we want to -;;; build. Because of that, it must rely on the smallest set of features -;;; that are likely to be provided by the (guix) and (gnu) modules, and by -;;; Guile itself, forever and ever. -;;; ;;; Code: - -;; The dependencies. Don't refer explicitly to the variables because they -;; could be renamed or shuffled around in modules over time. Conversely, -;; 'find-best-packages-by-name' is expected to always have the same semantics. - -(define libgcrypt - (first (find-best-packages-by-name "libgcrypt" #f))) - -(define zlib - (first (find-best-packages-by-name "zlib" #f))) - -(define gzip - (first (find-best-packages-by-name "gzip" #f))) - -(define bzip2 - (first (find-best-packages-by-name "bzip2" #f))) - -(define xz - (first (find-best-packages-by-name "xz" #f))) - -(define (false-if-wrong-guile package) - "Return #f if PACKAGE depends on the \"wrong\" major version of Guile (e.g., -2.0 instead of 2.2), otherwise return PACKAGE." - (let ((guile (any (match-lambda - ((label (? package? dep) _ ...) - (and (string=? (package-name dep) "guile") - dep))) - (package-direct-inputs package)))) - (and (or (not guile) - (string-prefix? (effective-version) - (package-version guile))) - package))) - -(define (package-for-current-guile . names) - "Return the package with one of the given NAMES that depends on the current -Guile major version (2.0 or 2.2), or #f if none of the packages matches." - (let loop ((names names)) - (match names - (() - #f) - ((name rest ...) - (match (find-best-packages-by-name name #f) - (() - (loop rest)) - ((first _ ...) - (or (false-if-wrong-guile first) - (loop rest)))))))) - -(define guile-json - (package-for-current-guile "guile-json" - "guile2.2-json" - "guile2.0-json")) - -(define guile-ssh - (package-for-current-guile "guile-ssh" - "guile2.2-ssh" - "guile2.0-ssh")) - -(define guile-git - (package-for-current-guile "guile-git" - "guile2.0-git")) - -(define guile-bytestructures - (package-for-current-guile "guile-bytestructures" - "guile2.0-bytestructures")) - -;; The actual build procedure. - -(define (top-source-directory) - "Return the name of the top-level directory of this source tree." +;; Use our very own Guix modules. +(eval-when (compile load eval) (and=> (assoc-ref (current-source-location) 'filename) (lambda (file) - (string-append (dirname file) "/..")))) - + (let ((dir (string-append (dirname file) "/.."))) + (set! %load-path (cons dir %load-path)))))) (define (date-version-string) "Return the current date and hour in UTC timezone, for use as a poor person's version identifier." - ;; XXX: Replace with a Git commit id. + ;; XXX: Last resort when the Git commit id is missing. (date->string (current-date 0) "~Y~m~d.~H")) -(define (guile-for-build) - "Return a derivation for Guile 2.0 or 2.2, whichever matches the currently -running Guile." - (package->derivation (cond-expand - (guile-2.2 - (canonical-package - (specification->package "guile@2.2"))) - (else - (canonical-package - (specification->package "guile@2.0")))))) +(define-syntax parameterize* + (syntax-rules () + "Like 'parameterize' but for regular variables (!)." + ((_ ((var value) rest ...) body ...) + (let ((old var) + (new value)) + (dynamic-wind + (lambda () + (set! var new)) + (lambda () + (parameterize* (rest ...) body ...)) + (lambda () + (set! var old))))) + ((_ () body ...) + (begin body ...)))) + +(define (pure-load-compiled-path) + "Return %LOAD-COMPILED-PATH minus the directories containing .go files from +Guix." + (define (purify path) + (fold-right delete path + (filter-map (lambda (file) + (and=> (search-path path file) dirname)) + '("guix.go" "gnu.go")))) + + (let loop ((path %load-compiled-path)) + (let ((next (purify path))) + (if (equal? next path) + path + (loop next))))) ;; The procedure below is our return value. (define* (build source @@ -138,131 +82,29 @@ (define* (build source #:rest rest) "Return a derivation that unpacks SOURCE into STORE and compiles Scheme files." - ;; The '%xxxdir' variables were added to (guix config) in July 2016 so we - ;; cannot assume that they are defined. Try to guess their value when - ;; they're undefined (XXX: we get an incorrect guess when environment - ;; variables such as 'NIX_STATE_DIR' are defined!). - (define storedir - (if (defined? '%storedir) %storedir %store-directory)) - (define localstatedir - (if (defined? '%localstatedir) %localstatedir (dirname %state-directory))) - (define sysconfdir - (if (defined? '%sysconfdir) %sysconfdir (dirname %config-directory))) - (define sbindir - (if (defined? '%sbindir) %sbindir (dirname %guix-register-program))) - - (define builder - #~(begin - (use-modules (guix build pull)) - - (letrec-syntax ((maybe-load-path - (syntax-rules () - ((_ item rest ...) - (let ((tail (maybe-load-path rest ...))) - (if (string? item) - (cons (string-append item - "/share/guile/site/" - #$(effective-version)) - tail) - tail))) - ((_) - '())))) - (set! %load-path - (append - (maybe-load-path #$guile-json #$guile-ssh - #$guile-git #$guile-bytestructures) - %load-path))) - - (letrec-syntax ((maybe-load-compiled-path - (syntax-rules () - ((_ item rest ...) - (let ((tail (maybe-load-compiled-path rest ...))) - (if (string? item) - (cons (string-append item - "/lib/guile/" - #$(effective-version) - "/site-ccache") - tail) - tail))) - ((_) - '())))) - (set! %load-compiled-path - (append - (maybe-load-compiled-path #$guile-json #$guile-ssh - #$guile-git #$guile-bytestructures) - %load-compiled-path))) - - ;; XXX: The 'guile-ssh' package prior to Guix commit 92b7258 was - ;; broken: libguile-ssh could not be found. Work around that. - ;; FIXME: We want Guile-SSH 0.10.2 or later anyway. - #$(if (string-prefix? "0.9." (package-version guile-ssh)) - #~(setenv "LTDL_LIBRARY_PATH" (string-append #$guile-ssh "/lib")) - #t) - - (build-guix #$output #$source - - #:system #$%system - #:storedir #$storedir - #:localstatedir #$localstatedir - #:sysconfdir #$sysconfdir - #:sbindir #$sbindir - - #:package-name #$%guix-package-name - #:package-version #$version - #:bug-report-address #$%guix-bug-report-address - #:home-page-url #$%guix-home-page-url - - #:libgcrypt #$libgcrypt - #:zlib #$zlib - #:gzip #$gzip - #:bzip2 #$bzip2 - #:xz #$xz - - ;; XXX: This is not perfect, enabling VERBOSE? means - ;; building a different derivation. - #:debug-port (if #$verbose? - (current-error-port) - (%make-void-port "w"))))) - - (unless guile-git - ;; XXX: Guix before February 2017 lacks a 'guile-git' package altogether. - ;; If we try to upgrade anyway, the logic in (guix scripts pull) will not - ;; build (guix git), which will leave us with an unusable 'guix pull'. To - ;; avoid that, fail early. - (format (current-error-port) - "\ -Your installation is too old and lacks a '~a' package. -Please upgrade to an intermediate version first, for instance with: - - guix pull --url=https://git.savannah.gnu.org/cgit/guix.git/snapshot/v0.13.0.tar.gz -\n" - (match (effective-version) - ("2.0" "guile2.0-git") - (_ "guile-git"))) - (exit 1)) - - (mlet %store-monad ((guile (guile-for-build))) - (gexp->derivation "guix-latest" builder - #:modules '((guix build pull) - (guix build utils) - (guix build compile) - - ;; Closure of (guix modules). - (guix modules) - (guix memoization) - (guix sets)) - - ;; Arrange so that our own (guix build …) modules are - ;; used. - #:module-path (list (top-source-directory)) - - #:guile-for-build guile))) + ;; Start by jumping into the target Guix so that we have access to the + ;; latest packages and APIs. + ;; + ;; Our checkout in the store has mtime set to the epoch, and thus .go + ;; files look newer, even though they may not correspond. + (parameterize* ((%load-should-auto-compile #f) + (%fresh-auto-compile #f) + + ;; Work around . + (%load-compiled-path (pure-load-compiled-path))) + ;; FIXME: This is currently too expensive notably because it involves + ;; compiling a number of the big package files such as perl.scm, which + ;; takes lots of time and memory as of Guile 2.2.2. + ;; + ;; (let ((reload-guix (module-ref (resolve-interface '(guix self)) + ;; 'reload-guix))) + ;; (reload-guix)) ;cross fingers! + + (let ((guix-derivation (module-ref (resolve-interface '(guix self)) + 'guix-derivation))) + (guix-derivation source version)))) ;; This file is loaded by 'guix pull'; return it the build procedure. build -;; Local Variables: -;; eval: (put 'with-load-path 'scheme-indent-function 1) -;; End: - ;;; build-self.scm ends here diff --git a/gnu/packages.scm b/gnu/packages.scm index 97e6cb347f..44a56dfde0 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -110,8 +110,25 @@ (define (search-bootstrap-binary file-name system) file-name system))))))) (define %distro-root-directory - ;; Absolute file name of the module hierarchy. - (dirname (search-path %load-path "guix.scm"))) + ;; Absolute file name of the module hierarchy. Since (gnu packages …) might + ;; live in a directory different from (guix), try to get the best match. + (letrec-syntax ((dirname* (syntax-rules () + ((_ file) + (dirname file)) + ((_ file head tail ...) + (dirname (dirname* file tail ...))))) + (try (syntax-rules () + ((_ (file things ...) rest ...) + (match (search-path %load-path file) + (#f + (try rest ...)) + (absolute + (dirname* absolute things ...)))) + ((_) + #f)))) + (try ("gnu/packages/base.scm" gnu/ packages/) + ("gnu/packages.scm" gnu/) + ("guix.scm")))) (define %package-module-path ;; Search path for package modules. Each item must be either a directory diff --git a/guix/discovery.scm b/guix/discovery.scm index 7b57579023..8ffcf7cd9a 100644 --- a/guix/discovery.scm +++ b/guix/discovery.scm @@ -25,7 +25,8 @@ (define-module (guix discovery) #:use-module (ice-9 match) #:use-module (ice-9 vlist) #:use-module (ice-9 ftw) - #:export (scheme-modules + #:export (scheme-files + scheme-modules fold-modules all-modules fold-module-public-variables)) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 3e95bd511f..083b5c3711 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -149,8 +149,6 @@ (define %options (define what-to-build (store-lift show-what-to-build)) -(define indirect-root-added - (store-lift add-indirect-root)) (define %self-build-file ;; The file containing code to build Guix. This serves the same purpose as @@ -171,33 +169,48 @@ (define* (build-from-source source ;; tree. (build source #:verbose? verbose? #:version commit))) -(define* (build-and-install source config-dir - #:key verbose? commit) - "Build the tool from SOURCE, and install it in CONFIG-DIR." - (mlet* %store-monad ((source (build-from-source source - #:commit commit - #:verbose? verbose?)) - (source-dir -> (derivation->output-path source)) - (to-do? (what-to-build (list source))) - (built? (built-derivations (list source)))) - ;; Always update the 'latest' symlink, regardless of whether SOURCE was - ;; already built or not. - (if built? - (mlet* %store-monad - ((latest -> (string-append config-dir "/latest")) - (done (indirect-root-added latest))) - (if (and (file-exists? latest) - (string=? (readlink latest) source-dir)) - (begin - (display (G_ "Guix already up to date\n")) - (return #t)) - (begin - (switch-symlinks latest source-dir) - (format #t - (G_ "updated ~a successfully deployed under `~a'~%") - %guix-package-name latest) - (return #t)))) - (leave (G_ "failed to update Guix, check the build log~%"))))) +(define* (install-latest source-dir config-dir) + "Make SOURCE-DIR, a store file name, the latest Guix in CONFIG-DIR." + (let ((latest (string-append config-dir "/latest"))) + (if (and (file-exists? latest) + (string=? (readlink latest) source-dir)) + (begin + (display (G_ "Guix already up to date\n")) + #t) + (begin + (switch-symlinks latest source-dir) + (format #t + (G_ "updated ~a successfully deployed under `~a'~%") + %guix-package-name latest) + #t)))) + +(define (build-and-install mdrv) + "Bind MDRV, a monadic value for a derivation, build it, and finally install +it as the latest Guix." + (define do-it + ;; Weirdness follows! Before we were called, the Guix modules have + ;; probably been reloaded, leading to a "parallel universe" with disjoint + ;; record types. However, procedures in this file have already cached the + ;; module relative to which they lookup global bindings (see + ;; 'toplevel-box' documentation), so they're stuck in the old world. To + ;; work around that, evaluate our procedure in the context of the "new" + ;; (guix scripts pull) module--which has access to the new + ;; record, and so on. + (eval '(lambda (mdrv cont) + ;; Reopen a connection to the daemon so that we have a record + ;; with the new type. + (with-store store + (run-with-store store + (mlet %store-monad ((drv mdrv)) + (mbegin %store-monad + (what-to-build (list drv)) + (built-derivations (list drv)) + (return (cont (derivation->output-path drv)))))))) + (resolve-module '(guix scripts pull)))) ;the new module + + (do-it mdrv + (lambda (result) + (install-latest result (config-directory))))) (define (honor-lets-encrypt-certificates! store) "Tell Guile-Git to use the Let's Encrypt certificates." @@ -258,6 +271,10 @@ (define (use-le-certs? url) (when (use-le-certs? url) (honor-lets-encrypt-certificates! store)) + ;; Ensure the 'latest' symlink is registered as a GC root. + (add-indirect-root store + (string-append (config-directory) "/latest")) + (format (current-error-port) (G_ "Updating from Git repository at '~a'...~%") url) @@ -276,10 +293,16 @@ (define (use-le-certs? url) (if (assoc-ref opts 'bootstrap?) %bootstrap-guile (canonical-package guile-2.0))))) - (run-with-store store - (build-and-install checkout (config-directory) - #:commit commit - #:verbose? - (assoc-ref opts 'verbose?)))))))))))) + + ;; 'build-from-source' may cause a reload of the Guix + ;; modules. This leads to a parallel world: its record types + ;; are disjoint from those we've seen until now (because we + ;; use "generative" record types), and so on. Thus, special + ;; care must be taken once we have return from that call. + (build-and-install + (build-from-source checkout + #:commit commit + #:verbose? + (assoc-ref opts 'verbose?)))))))))))) ;;; pull.scm ends here diff --git a/guix/self.scm b/guix/self.scm new file mode 100644 index 0000000000..242fc9defa --- /dev/null +++ b/guix/self.scm @@ -0,0 +1,619 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix self) + #:use-module (guix config) + #:use-module (guix modules) + #:use-module (guix gexp) + #:use-module (guix store) + #:use-module (guix monads) + #:use-module (guix discovery) + #:use-module (guix packages) + #:use-module (guix sets) + #:use-module (guix build utils) + #:use-module (gnu packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) + #:use-module (ice-9 match) + #:export (compiled-guix + guix-derivation + reload-guix)) + + +;;; +;;; Dependency handling. +;;; + +(define* (false-if-wrong-guile package + #:optional (guile-version (effective-version))) + "Return #f if PACKAGE depends on the \"wrong\" major version of Guile (e.g., +2.0 instead of 2.2), otherwise return PACKAGE." + (let ((guile (any (match-lambda + ((label (? package? dep) _ ...) + (and (string=? (package-name dep) "guile") + dep))) + (package-direct-inputs package)))) + (and (or (not guile) + (string-prefix? guile-version + (package-version guile))) + package))) + +(define (package-for-guile guile-version . names) + "Return the package with one of the given NAMES that depends on +GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches." + (let loop ((names names)) + (match names + (() + #f) + ((name rest ...) + (match (specification->package name) + (#f + (loop rest)) + ((? package? package) + (or (false-if-wrong-guile package) + (loop rest)))))))) + + +;;; +;;; Derivations. +;;; + +;; Node in a DAG of build tasks. Each node maps to a derivation, but it's +;; easier to express things this way. +(define-record-type + (node name modules source dependencies compiled) + node? + (name node-name) ;string + (modules node-modules) ;list of module names + (source node-source) ;list of source files + (dependencies node-dependencies) ;list of nodes + (compiled node-compiled)) ;node -> lowerable object + +(define (node-fold proc init nodes) + (let loop ((nodes nodes) + (visited (setq)) + (result init)) + (match nodes + (() result) + ((head tail ...) + (if (set-contains? visited head) + (loop tail visited result) + (loop tail (set-insert head visited) + (proc head result))))))) + +(define (node-modules/recursive nodes) + (node-fold (lambda (node modules) + (append (node-modules node) modules)) + '() + nodes)) + +(define* (closure modules #:optional (except '())) + (source-module-closure modules + #:select? + (match-lambda + (('guix 'config) + #f) + ((and module + (or ('guix _ ...) ('gnu _ ...))) + (not (member module except))) + (rest #f)))) + +(define module->import + ;; Return a file-name/file-like object pair for the specified module and + ;; suitable for 'imported-files'. + (match-lambda + ((module '=> thing) + (let ((file (module-name->file-name module))) + (list file thing))) + (module + (let ((file (module-name->file-name module))) + (list file + (local-file (search-path %load-path file))))))) + +(define* (scheme-node name modules #:optional (dependencies '()) + #:key (extra-modules '()) (extra-files '()) + (extensions '()) + parallel?) + "Return a node that builds the given Scheme MODULES, and depends on +DEPENDENCIES (a list of nodes). EXTRA-MODULES is a list of additional modules +added to the source, and EXTRA-FILES is a list of additional files. +EXTENSIONS is a set of full-blown Guile packages (e.g., 'guile-json') that +must be present in the search path." + (let* ((modules (append extra-modules + (closure modules + (node-modules/recursive dependencies)))) + (module-files (map module->import modules)) + (source (imported-files (string-append name "-source") + (append module-files extra-files)))) + (node name modules source dependencies + (compiled-modules name source modules + (map node-source dependencies) + (map node-compiled dependencies) + #:extensions extensions + #:parallel? parallel?)))) + +(define (file-imports directory sub-directory pred) + "List all the files matching PRED under DIRECTORY/SUB-DIRECTORY. Return a +list of file-name/file-like objects suitable as inputs to 'imported-files'." + (map (lambda (file) + (list (string-drop file (+ 1 (string-length directory))) + (local-file file #:recursive? #t))) + (find-files (string-append directory "/" sub-directory) pred))) + +(define (scheme-modules* directory sub-directory) + "Return the list of module names found under SUB-DIRECTORY in DIRECTORY." + (let ((prefix (string-length directory))) + (map (lambda (file) + (file-name->module-name (string-drop file prefix))) + (scheme-files (string-append directory "/" sub-directory))))) + +(define* (compiled-guix source #:key (version %guix-version) + (guile-version (effective-version)) + (libgcrypt (specification->package "libgcrypt")) + (zlib (specification->package "zlib")) + (gzip (specification->package "gzip")) + (bzip2 (specification->package "bzip2")) + (xz (specification->package "xz"))) + "Return a file-like object that contains a compiled Guix." + (define guile-json + (package-for-guile guile-version + "guile-json" + "guile2.2-json" + "guile2.0-json")) + + (define guile-ssh + (package-for-guile guile-version + "guile-ssh" + "guile2.2-ssh" + "guile2.0-ssh")) + + (define guile-git + (package-for-guile guile-version + "guile-git" + "guile2.0-git")) + + + (define dependencies + (match (append-map (lambda (package) + (cons (list "x" package) + (package-transitive-inputs package))) + (list guile-git guile-json guile-ssh)) + (((labels packages _ ...) ...) + packages))) + + (define *core-modules* + (scheme-node "guix-core" + '((guix) + (guix monad-repl) + (guix packages) + (guix download) + (guix discovery) + (guix profiles) + (guix build-system gnu) + (guix build-system trivial) + (guix build profiles) + (guix build gnu-build-system)) + + ;; Provide a dummy (guix config) with the default version + ;; number, storedir, etc. This is so that "guix-core" is the + ;; same across all installations and doesn't need to be + ;; rebuilt when the version changes, which in turn means we + ;; can have substitutes for it. + #:extra-modules + `(((guix config) + => ,(make-config.scm #:libgcrypt + (specification->package "libgcrypt")))))) + + (define *extra-modules* + (scheme-node "guix-extra" + (filter-map (match-lambda + (('guix 'scripts _ ..1) #f) + (name name)) + (scheme-modules* source "guix")) + (list *core-modules*) + #:extensions dependencies)) + + (define *package-modules* + (scheme-node "guix-packages" + `((gnu packages) + ,@(scheme-modules* source "gnu/packages")) + (list *core-modules* *extra-modules*) + #:extra-files ;all the non-Scheme files + (file-imports source "gnu/packages" + (lambda (file stat) + (and (eq? 'regular (stat:type stat)) + (not (string-suffix? ".scm" file)) + (not (string-suffix? ".go" file)) + (not (string-prefix? ".#" file)) + (not (string-suffix? "~" file))))))) + + (define *system-modules* + (scheme-node "guix-system" + `((gnu system) + (gnu services) + ,@(scheme-modules* source "gnu/system") + ,@(scheme-modules* source "gnu/services")) + (list *package-modules* *extra-modules* *core-modules*) + #:extra-files + (file-imports source "gnu/system/examples" (const #t)))) + + (define *cli-modules* + (scheme-node "guix-cli" + (scheme-modules* source "/guix/scripts") + (list *core-modules* *extra-modules* *package-modules* + *system-modules*) + #:extensions dependencies)) + + (define *config* + (scheme-node "guix-config" + '() + #:extra-modules + `(((guix config) + => ,(make-config.scm #:libgcrypt libgcrypt + #:zlib zlib + #:gzip gzip + #:bzip2 bzip2 + #:xz xz + #:package-name + %guix-package-name + #:package-version + version + #:bug-report-address + %guix-bug-report-address + #:home-page-url + %guix-home-page-url))))) + + (directory-union (string-append "guix-" version) + (append-map (lambda (node) + (list (node-source node) + (node-compiled node))) + + ;; Note: *CONFIG* comes first so that it + ;; overrides the (guix config) module that + ;; comes with *CORE-MODULES*. + (list *config* + *cli-modules* + *system-modules* + *package-modules* + *extra-modules* + *core-modules*)) + + ;; When we do (add-to-store "utils.scm"), "utils.scm" must + ;; be a regular file, not a symlink. Thus, arrange so that + ;; regular files appear as regular files in the final + ;; output. + #:copy? #t + #:quiet? #t)) + + +;;; +;;; (guix config) generation. +;;; + +(define %dependency-variables + ;; (guix config) variables corresponding to dependencies. + '(%libgcrypt %libz %xz %gzip %bzip2 %nix-instantiate)) + +(define %persona-variables + ;; (guix config) variables that define Guix's persona. + '(%guix-package-name + %guix-version + %guix-bug-report-address + %guix-home-page-url)) + +(define %config-variables + ;; (guix config) variables corresponding to Guix configuration (storedir, + ;; localstatedir, etc.) + (sort (filter pair? + (module-map (lambda (name var) + (and (not (memq name %dependency-variables)) + (not (memq name %persona-variables)) + (cons name (variable-ref var)))) + (resolve-interface '(guix config)))) + (lambda (name+value1 name+value2) + (stringstring (car name+value1)) + (symbol->string (car name+value2)))))) + +(define* (make-config.scm #:key libgcrypt zlib gzip xz bzip2 + (package-name "GNU Guix") + (package-version "0") + (bug-report-address "bug-guix@gnu.org") + (home-page-url "https://gnu.org/s/guix")) + + ;; Hack so that Geiser is not confused. + (define defmod 'define-module) + + (scheme-file "config.scm" + #~(begin + (#$defmod (guix config) + #:export (%guix-package-name + %guix-version + %guix-bug-report-address + %guix-home-page-url + %libgcrypt + %libz + %gzip + %bzip2 + %xz + %nix-instantiate)) + + ;; XXX: Work around . + (eval-when (expand load eval) + #$@(map (match-lambda + ((name . value) + #~(define-public #$name #$value))) + %config-variables) + + (define %guix-package-name #$package-name) + (define %guix-version #$package-version) + (define %guix-bug-report-address #$bug-report-address) + (define %guix-home-page-url #$home-page-url) + + (define %gzip + #+(and gzip (file-append gzip "/bin/gzip"))) + (define %bzip2 + #+(and bzip2 (file-append bzip2 "/bin/bzip2"))) + (define %xz + #+(and xz (file-append xz "/bin/xz"))) + + (define %libgcrypt + #+(and libgcrypt + (file-append libgcrypt "/lib/libgcrypt"))) + (define %libz + #+(and zlib + (file-append zlib "/lib/libz"))) + + (define %nix-instantiate ;for (guix import snix) + "nix-instantiate"))))) + + + +;;; +;;; Building. +;;; + +(define (imported-files name files) + ;; This is a non-monadic, simplified version of 'imported-files' from (guix + ;; gexp). + (define build + (with-imported-modules (source-module-closure + '((guix build utils))) + #~(begin + (use-modules (ice-9 match) + (guix build utils)) + + (mkdir (ungexp output)) (chdir (ungexp output)) + (for-each (match-lambda + ((final-path store-path) + (mkdir-p (dirname final-path)) + + ;; Note: We need regular files to be regular files, not + ;; symlinks, as this makes a difference for + ;; 'add-to-store'. + (copy-file store-path final-path))) + '#$files)))) + + (computed-file name build)) + +(define* (compiled-modules name module-tree modules + #:optional + (dependencies '()) + (dependencies-compiled '()) + #:key + (extensions '()) ;full-blown Guile packages + parallel?) + ;; This is a non-monadic, enhanced version of 'compiled-file' from (guix + ;; gexp). + (define build + (with-imported-modules (source-module-closure + '((guix build compile) + (guix build utils))) + #~(begin + (use-modules (srfi srfi-26) + (ice-9 match) + (ice-9 format) + (ice-9 threads) + (guix build compile) + (guix build utils)) + + (define (regular? file) + (not (member file '("." "..")))) + + (define (report-load file total completed) + (display #\cr) + (format #t + "loading...\t~5,1f% of ~d files" ;FIXME: i18n + (* 100. (/ completed total)) total) + (force-output)) + + (define (report-compilation file total completed) + (display #\cr) + (format #t "compiling...\t~5,1f% of ~d files" ;FIXME: i18n + (* 100. (/ completed total)) total) + (force-output)) + + (define (process-directory directory output) + (let ((files (find-files directory "\\.scm$")) + (prefix (+ 1 (string-length directory)))) + ;; Hide compilation warnings. + (parameterize ((current-warning-port (%make-void-port "w"))) + (compile-files directory #$output + (map (cut string-drop <> prefix) files) + #:workers (parallel-job-count) + #:report-load report-load + #:report-compilation report-compilation)))) + + (setvbuf (current-output-port) _IONBF) + (setvbuf (current-error-port) _IONBF) + + (set! %load-path (cons #+module-tree %load-path)) + (set! %load-path + (append '#+dependencies + (map (lambda (extension) + (string-append extension "/share/guile/site/" + (effective-version))) + '#+extensions) + %load-path)) + + (set! %load-compiled-path + (append '#+dependencies-compiled + (map (lambda (extension) + (string-append extension "/lib/guile/" + (effective-version) + "/site-ccache")) + '#+extensions) + %load-compiled-path)) + + ;; Load the compiler modules upfront. + (compile #f) + + (mkdir #$output) + (chdir #+module-tree) + (process-directory "." #$output)))) + + (computed-file name build + #:options + '(#:local-build? #f ;allow substitutes + + ;; Don't annoy people about _IONBF deprecation. + #:env-vars (("GUILE_WARN_DEPRECATED" . "no"))))) + + +;;; +;;; Live patching. +;;; + +(define (recursive-submodules module) + "Return the list of submodules of MODULE." + (let loop ((module module) + (result '())) + (let ((submodules (hash-map->list (lambda (name module) + module) + (module-submodules module)))) + (fold loop (append submodules result) submodules)))) + +(define (remove-submodule! module names) + (let loop ((module module) + (names names)) + (match names + (() #t) + ((head tail ...) + (match (nested-ref-module module tail) + (#f #t) + ((? module? submodule) + (hashq-remove! (module-submodules module) head) + (loop submodule tail))))))) + +(define (unload-module-tree! module) + (define (strip-prefix prefix lst) + (let loop ((prefix prefix) + (lst lst)) + (match prefix + (() + lst) + ((_ prefix ...) + (match lst + ((_ lst ...) + (loop prefix lst))))))) + + (let ((submodules (hash-map->list (lambda (name module) + module) + (module-submodules module)))) + (let loop ((root module) + (submodules submodules)) + (match submodules + (() + #t) + ((head tail ...) + (unload-module-tree! head) + (remove-submodule! root + (strip-prefix (module-name root) + (module-name head))) + + (match (module-name head) + ((parents ... leaf) + ;; Remove MODULE from the AUTOLOADS-DONE list. Note: We don't use + ;; 'module-filename' because it could be an absolute file name. + (set-autoloaded! (string-join (map symbol->string parents) + "/" 'suffix) + (symbol->string leaf) #f))) + (loop root tail)))))) + +(define* (reload-guix #:optional (log-port (current-error-port))) + "Reload all the Guix and GNU modules currently loaded." + (let* ((guix (resolve-module '(guix) #f #:ensure #f)) + (gnu (resolve-module '(gnu) #f #:ensure #f)) + (guix-submodules (recursive-submodules guix)) + (gnu-submodules (recursive-submodules gnu))) + (define (reload module) + (match (module-filename module) + (#f #f) + ((? string? file) + ;; The following should auto-compile FILE. + (primitive-load-path file)))) + + ;; First, we need to nuke all the (guix) and (gnu) submodules so we don't + ;; end up with a mixture of old and new modules when we reload (which + ;; wouldn't work, because we'd have two different record types, + ;; for instance.) + (format log-port "Unloading current Guix...~%") + (unload-module-tree! gnu) + (unload-module-tree! guix) + + (format log-port "Loading new Guix...~%") + (for-each reload (append guix-submodules (list guix))) + (for-each reload (append gnu-submodules (list gnu))) + (format log-port "New Guix modules successfully loaded.~%"))) + + +;;; +;;; Building. +;;; + +(define* (guile-for-build #:optional (version (effective-version))) + "Return a package for Guile VERSION." + (define canonical-package ;soft reference + (module-ref (resolve-interface '(gnu packages base)) + 'canonical-package)) + + (match version + ("2.2" + (canonical-package + (specification->package "guile@2.2"))) + ("2.0" + (canonical-package + (specification->package "guile@2.0"))))) + +(define* (guix-derivation source version + #:optional (guile-version (effective-version))) + "Return, as a monadic value, the derivation to build the Guix from SOURCE +for GUILE-VERSION. Use VERSION as the version string." + (define max-version-length 9) + + (define (shorten version) + ;; TODO: VERSION is a commit id, but we'd rather use something like what + ;; 'git describe' provides. + (if (> (string-length version) max-version-length) + (string-take version max-version-length) + version)) + + (mbegin %store-monad + (set-guile-for-build (guile-for-build guile-version)) + (lower-object (compiled-guix source + #:version (shorten version) + #:guile-version guile-version)))) -- cgit v1.2.3 From 49961951c53df7728e77f69f7bbae88759ce51fb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 21 Nov 2017 23:00:38 +0100 Subject: hydra: 'evaluate' passes an alist to the entry point. * build-aux/hydra/evaluate.scm (%top-srcdir): New variable. : Pass it to 'hydra-jobs'. --- build-aux/hydra/evaluate.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/build-aux/hydra/evaluate.scm b/build-aux/hydra/evaluate.scm index 604022abcf..8e391f44fd 100644 --- a/build-aux/hydra/evaluate.scm +++ b/build-aux/hydra/evaluate.scm @@ -27,6 +27,12 @@ (ice-9 pretty-print) (ice-9 format)) +(define %top-srcdir + (and=> (assq-ref (current-source-location) 'filename) + (lambda (file) + (canonicalize-path + (string-append (dirname file) "/../.."))))) + (define %user-module ;; Hydra user module. (let ((m (make-module))) @@ -101,7 +107,8 @@ (define (assert-valid-job job thing) (if (equal? cuirass? "cuirass") 'cuirass-jobs 'hydra-jobs)) - store '()) + store `((guix + . ((file-name . ,%top-srcdir))))) (((names . thunks) ...) (map (lambda (job thunk) (format (current-error-port) "evaluating '~a'... " job) -- cgit v1.2.3 From 11a54b3d6ed64efbbc41d3267ef06ecf590e74d3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 21 Nov 2017 23:02:43 +0100 Subject: hydra: Add jobs for the modular Guix. * build-aux/hydra/guix-modular.scm: New file. * Makefile.am (EXTRA_DIST): Add it. --- Makefile.am | 1 + build-aux/hydra/guix-modular.scm | 104 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 build-aux/hydra/guix-modular.scm diff --git a/Makefile.am b/Makefile.am index a4156c834d..d64806de87 100644 --- a/Makefile.am +++ b/Makefile.am @@ -433,6 +433,7 @@ EXTRA_DIST = \ build-aux/hydra/evaluate.scm \ build-aux/hydra/gnu-system.scm \ build-aux/hydra/guix.scm \ + build-aux/hydra/guix-modular.scm \ build-aux/check-available-binaries.scm \ build-aux/check-final-inputs-self-contained.scm \ build-aux/download.scm \ diff --git a/build-aux/hydra/guix-modular.scm b/build-aux/hydra/guix-modular.scm new file mode 100644 index 0000000000..bdbb2fa8d5 --- /dev/null +++ b/build-aux/hydra/guix-modular.scm @@ -0,0 +1,104 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 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 . + +;;; +;;; This file defines a continuous integration job to build the same modular +;;; Guix as 'guix pull', which is defined in (guix self). +;;; + +;; Attempt to use our very own Guix modules. +(eval-when (compile load eval) + + ;; Ignore any available .go, and force recompilation. This is because our + ;; checkout in the store has mtime set to the epoch, and thus .go files look + ;; newer, even though they may not correspond. + (set! %fresh-auto-compile #t) + + (and=> (assoc-ref (current-source-location) 'filename) + (lambda (file) + (let ((dir (canonicalize-path + (string-append (dirname file) "/../..")))) + (format (current-error-port) "prepending ~s to the load path~%" + dir) + (set! %load-path (cons dir %load-path)))))) + + +(use-modules (guix store) + (guix config) + (guix utils) + (guix grafts) + ((guix packages) #:select (%hydra-supported-systems)) + (guix derivations) + (guix monads) + (guix gexp) + (guix self) + ((guix licenses) #:prefix license:) + (srfi srfi-1) + (srfi srfi-26) + (ice-9 match)) + +;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output +;; port to the bit bucket, let us write to the error port instead. +(setvbuf (current-error-port) _IOLBF) +(set-current-output-port (current-error-port)) + +(define* (build-job store source version system) + "Return a Hydra job a list building the modular Guix derivation from SOURCE +for SYSTEM. Use VERSION as the version identifier." + (lambda () + `((derivation . ,(derivation-file-name + (parameterize ((%graft? #f)) + (run-with-store store + (lower-object (compiled-guix source + #:version version)))))) + (description . "Modular Guix") + (long-description + . "This is the modular Guix package as produced by 'guix pull'.") + (license . ,license:gpl3+) + (home-page . ,%guix-home-page-url) + (maintainers . (,%guix-bug-report-address))))) + +(define (hydra-jobs store arguments) + "Return Hydra jobs." + (define systems + (match (filter-map (match-lambda + (('system . value) value) + (_ #f)) + arguments) + ((lst ..1) + lst) + (_ + (list (%current-system))))) + + (define guix-checkout + (assq-ref arguments 'guix)) + + (define version + (or (assq-ref guix-checkout 'revision) + "0.unknown")) + + (let ((file (assq-ref guix-checkout 'file-name))) + (format (current-error-port) "using checkout ~s (~s)~%" + guix-checkout file) + + (map (lambda (system) + (let ((name (string->symbol + (string-append "guix." system)))) + `(,name + . ,(build-job store file version system)))) + %hydra-supported-systems))) -- cgit v1.2.3 From 40590caf3bb96ee36f7def75f292351a5615c795 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 21 Nov 2017 20:04:14 +0100 Subject: gnu: idr: Correct license. * gnu/packages/bioinformatics.scm (idr)[license]: Change to GPLv2+. --- gnu/packages/bioinformatics.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 314aaa4077..e13ab73e18 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3076,7 +3076,7 @@ (define-public idr "The IDR (Irreproducible Discovery Rate) framework is a unified approach to measure the reproducibility of findings identified from replicate experiments and provide highly stable thresholds based on reproducibility.") - (license license:gpl3+))) + (license license:gpl2+))) (define-public jellyfish (package -- cgit v1.2.3 From aa33cc29cae391d4208c8a4d879c82025ea4e86c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 21 Nov 2017 20:04:39 +0100 Subject: gnu: idr: Update to 2.0.3. * gnu/packages/bioinformatics.scm (idr): Update to 2.0.3. [source]: Add snippet to remove generated code. --- gnu/packages/bioinformatics.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index e13ab73e18..a8d7361ff0 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3050,7 +3050,7 @@ (define htslib-1.3 (define-public idr (package (name "idr") - (version "2.0.0") + (version "2.0.3") (source (origin (method url-fetch) (uri (string-append @@ -3059,10 +3059,15 @@ (define-public idr (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1k3x44biak00aiv3hpm1yd6nn4hhp7n0qnbs3zh2q9sw7qr1qj5r")))) + "1rjdly6daslw66r43g9md8znizlscn1sphycqyldzsidkc4vxqv3")) + ;; Delete generated C code. + (snippet + '(begin (delete-file "idr/inv_cdf.c") #t)))) (build-system python-build-system) - (arguments - `(#:tests? #f)) ; FIXME: "ImportError: No module named 'utility'" + ;; There is only one test ("test_inv_cdf.py") and it tests features that + ;; are no longer part of this package. It also asserts False, which + ;; causes the tests to always fail. + (arguments `(#:tests? #f)) (propagated-inputs `(("python-scipy" ,python-scipy) ("python-sympy" ,python-sympy) -- cgit v1.2.3 From cd295fbe170a93844f9c42cbfaa0fbe2490b6693 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 21 Nov 2017 23:51:59 +0100 Subject: Revert "Add (guix self) and use it when pulling." This reverts commit 5f93d97005897c2d859f0be1bdff34c88467ec61. 'guix pull' would fail because (guix self) needs 'scheme-files' from (guix discovery), which was not exported until now. --- Makefile.am | 1 - build-aux/build-self.scm | 272 ++++++++++++++++----- gnu/packages.scm | 21 +- guix/discovery.scm | 3 +- guix/scripts/pull.scm | 91 +++---- guix/self.scm | 619 ----------------------------------------------- 6 files changed, 252 insertions(+), 755 deletions(-) delete mode 100644 guix/self.scm diff --git a/Makefile.am b/Makefile.am index d64806de87..eab49181ad 100644 --- a/Makefile.am +++ b/Makefile.am @@ -66,7 +66,6 @@ MODULES = \ guix/derivations.scm \ guix/grafts.scm \ guix/gnu-maintenance.scm \ - guix/self.scm \ guix/upstream.scm \ guix/licenses.scm \ guix/git.scm \ diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index d9d9263678..ed8ff5f4ce 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -17,9 +17,11 @@ ;;; along with GNU Guix. If not, see . (define-module (build-self) + #:use-module (gnu) + #:use-module (guix) + #:use-module (guix config) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) - #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:export (build)) @@ -29,51 +31,105 @@ (define-module (build-self) ;;; argument: the source tree to build. It returns a derivation that ;;; builds it. ;;; +;;; This file uses modules provided by the already-installed Guix. Those +;;; modules may be arbitrarily old compared to the version we want to +;;; build. Because of that, it must rely on the smallest set of features +;;; that are likely to be provided by the (guix) and (gnu) modules, and by +;;; Guile itself, forever and ever. +;;; ;;; Code: -;; Use our very own Guix modules. -(eval-when (compile load eval) + +;; The dependencies. Don't refer explicitly to the variables because they +;; could be renamed or shuffled around in modules over time. Conversely, +;; 'find-best-packages-by-name' is expected to always have the same semantics. + +(define libgcrypt + (first (find-best-packages-by-name "libgcrypt" #f))) + +(define zlib + (first (find-best-packages-by-name "zlib" #f))) + +(define gzip + (first (find-best-packages-by-name "gzip" #f))) + +(define bzip2 + (first (find-best-packages-by-name "bzip2" #f))) + +(define xz + (first (find-best-packages-by-name "xz" #f))) + +(define (false-if-wrong-guile package) + "Return #f if PACKAGE depends on the \"wrong\" major version of Guile (e.g., +2.0 instead of 2.2), otherwise return PACKAGE." + (let ((guile (any (match-lambda + ((label (? package? dep) _ ...) + (and (string=? (package-name dep) "guile") + dep))) + (package-direct-inputs package)))) + (and (or (not guile) + (string-prefix? (effective-version) + (package-version guile))) + package))) + +(define (package-for-current-guile . names) + "Return the package with one of the given NAMES that depends on the current +Guile major version (2.0 or 2.2), or #f if none of the packages matches." + (let loop ((names names)) + (match names + (() + #f) + ((name rest ...) + (match (find-best-packages-by-name name #f) + (() + (loop rest)) + ((first _ ...) + (or (false-if-wrong-guile first) + (loop rest)))))))) + +(define guile-json + (package-for-current-guile "guile-json" + "guile2.2-json" + "guile2.0-json")) + +(define guile-ssh + (package-for-current-guile "guile-ssh" + "guile2.2-ssh" + "guile2.0-ssh")) + +(define guile-git + (package-for-current-guile "guile-git" + "guile2.0-git")) + +(define guile-bytestructures + (package-for-current-guile "guile-bytestructures" + "guile2.0-bytestructures")) + +;; The actual build procedure. + +(define (top-source-directory) + "Return the name of the top-level directory of this source tree." (and=> (assoc-ref (current-source-location) 'filename) (lambda (file) - (let ((dir (string-append (dirname file) "/.."))) - (set! %load-path (cons dir %load-path)))))) + (string-append (dirname file) "/..")))) + (define (date-version-string) "Return the current date and hour in UTC timezone, for use as a poor person's version identifier." - ;; XXX: Last resort when the Git commit id is missing. + ;; XXX: Replace with a Git commit id. (date->string (current-date 0) "~Y~m~d.~H")) -(define-syntax parameterize* - (syntax-rules () - "Like 'parameterize' but for regular variables (!)." - ((_ ((var value) rest ...) body ...) - (let ((old var) - (new value)) - (dynamic-wind - (lambda () - (set! var new)) - (lambda () - (parameterize* (rest ...) body ...)) - (lambda () - (set! var old))))) - ((_ () body ...) - (begin body ...)))) - -(define (pure-load-compiled-path) - "Return %LOAD-COMPILED-PATH minus the directories containing .go files from -Guix." - (define (purify path) - (fold-right delete path - (filter-map (lambda (file) - (and=> (search-path path file) dirname)) - '("guix.go" "gnu.go")))) - - (let loop ((path %load-compiled-path)) - (let ((next (purify path))) - (if (equal? next path) - path - (loop next))))) +(define (guile-for-build) + "Return a derivation for Guile 2.0 or 2.2, whichever matches the currently +running Guile." + (package->derivation (cond-expand + (guile-2.2 + (canonical-package + (specification->package "guile@2.2"))) + (else + (canonical-package + (specification->package "guile@2.0")))))) ;; The procedure below is our return value. (define* (build source @@ -82,29 +138,131 @@ (define* (build source #:rest rest) "Return a derivation that unpacks SOURCE into STORE and compiles Scheme files." - ;; Start by jumping into the target Guix so that we have access to the - ;; latest packages and APIs. - ;; - ;; Our checkout in the store has mtime set to the epoch, and thus .go - ;; files look newer, even though they may not correspond. - (parameterize* ((%load-should-auto-compile #f) - (%fresh-auto-compile #f) - - ;; Work around . - (%load-compiled-path (pure-load-compiled-path))) - ;; FIXME: This is currently too expensive notably because it involves - ;; compiling a number of the big package files such as perl.scm, which - ;; takes lots of time and memory as of Guile 2.2.2. - ;; - ;; (let ((reload-guix (module-ref (resolve-interface '(guix self)) - ;; 'reload-guix))) - ;; (reload-guix)) ;cross fingers! - - (let ((guix-derivation (module-ref (resolve-interface '(guix self)) - 'guix-derivation))) - (guix-derivation source version)))) + ;; The '%xxxdir' variables were added to (guix config) in July 2016 so we + ;; cannot assume that they are defined. Try to guess their value when + ;; they're undefined (XXX: we get an incorrect guess when environment + ;; variables such as 'NIX_STATE_DIR' are defined!). + (define storedir + (if (defined? '%storedir) %storedir %store-directory)) + (define localstatedir + (if (defined? '%localstatedir) %localstatedir (dirname %state-directory))) + (define sysconfdir + (if (defined? '%sysconfdir) %sysconfdir (dirname %config-directory))) + (define sbindir + (if (defined? '%sbindir) %sbindir (dirname %guix-register-program))) + + (define builder + #~(begin + (use-modules (guix build pull)) + + (letrec-syntax ((maybe-load-path + (syntax-rules () + ((_ item rest ...) + (let ((tail (maybe-load-path rest ...))) + (if (string? item) + (cons (string-append item + "/share/guile/site/" + #$(effective-version)) + tail) + tail))) + ((_) + '())))) + (set! %load-path + (append + (maybe-load-path #$guile-json #$guile-ssh + #$guile-git #$guile-bytestructures) + %load-path))) + + (letrec-syntax ((maybe-load-compiled-path + (syntax-rules () + ((_ item rest ...) + (let ((tail (maybe-load-compiled-path rest ...))) + (if (string? item) + (cons (string-append item + "/lib/guile/" + #$(effective-version) + "/site-ccache") + tail) + tail))) + ((_) + '())))) + (set! %load-compiled-path + (append + (maybe-load-compiled-path #$guile-json #$guile-ssh + #$guile-git #$guile-bytestructures) + %load-compiled-path))) + + ;; XXX: The 'guile-ssh' package prior to Guix commit 92b7258 was + ;; broken: libguile-ssh could not be found. Work around that. + ;; FIXME: We want Guile-SSH 0.10.2 or later anyway. + #$(if (string-prefix? "0.9." (package-version guile-ssh)) + #~(setenv "LTDL_LIBRARY_PATH" (string-append #$guile-ssh "/lib")) + #t) + + (build-guix #$output #$source + + #:system #$%system + #:storedir #$storedir + #:localstatedir #$localstatedir + #:sysconfdir #$sysconfdir + #:sbindir #$sbindir + + #:package-name #$%guix-package-name + #:package-version #$version + #:bug-report-address #$%guix-bug-report-address + #:home-page-url #$%guix-home-page-url + + #:libgcrypt #$libgcrypt + #:zlib #$zlib + #:gzip #$gzip + #:bzip2 #$bzip2 + #:xz #$xz + + ;; XXX: This is not perfect, enabling VERBOSE? means + ;; building a different derivation. + #:debug-port (if #$verbose? + (current-error-port) + (%make-void-port "w"))))) + + (unless guile-git + ;; XXX: Guix before February 2017 lacks a 'guile-git' package altogether. + ;; If we try to upgrade anyway, the logic in (guix scripts pull) will not + ;; build (guix git), which will leave us with an unusable 'guix pull'. To + ;; avoid that, fail early. + (format (current-error-port) + "\ +Your installation is too old and lacks a '~a' package. +Please upgrade to an intermediate version first, for instance with: + + guix pull --url=https://git.savannah.gnu.org/cgit/guix.git/snapshot/v0.13.0.tar.gz +\n" + (match (effective-version) + ("2.0" "guile2.0-git") + (_ "guile-git"))) + (exit 1)) + + (mlet %store-monad ((guile (guile-for-build))) + (gexp->derivation "guix-latest" builder + #:modules '((guix build pull) + (guix build utils) + (guix build compile) + + ;; Closure of (guix modules). + (guix modules) + (guix memoization) + (guix sets)) + + ;; Arrange so that our own (guix build …) modules are + ;; used. + #:module-path (list (top-source-directory)) + + #:guile-for-build guile))) ;; This file is loaded by 'guix pull'; return it the build procedure. build +;; Local Variables: +;; eval: (put 'with-load-path 'scheme-indent-function 1) +;; End: + ;;; build-self.scm ends here diff --git a/gnu/packages.scm b/gnu/packages.scm index 44a56dfde0..97e6cb347f 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -110,25 +110,8 @@ (define (search-bootstrap-binary file-name system) file-name system))))))) (define %distro-root-directory - ;; Absolute file name of the module hierarchy. Since (gnu packages …) might - ;; live in a directory different from (guix), try to get the best match. - (letrec-syntax ((dirname* (syntax-rules () - ((_ file) - (dirname file)) - ((_ file head tail ...) - (dirname (dirname* file tail ...))))) - (try (syntax-rules () - ((_ (file things ...) rest ...) - (match (search-path %load-path file) - (#f - (try rest ...)) - (absolute - (dirname* absolute things ...)))) - ((_) - #f)))) - (try ("gnu/packages/base.scm" gnu/ packages/) - ("gnu/packages.scm" gnu/) - ("guix.scm")))) + ;; Absolute file name of the module hierarchy. + (dirname (search-path %load-path "guix.scm"))) (define %package-module-path ;; Search path for package modules. Each item must be either a directory diff --git a/guix/discovery.scm b/guix/discovery.scm index 8ffcf7cd9a..7b57579023 100644 --- a/guix/discovery.scm +++ b/guix/discovery.scm @@ -25,8 +25,7 @@ (define-module (guix discovery) #:use-module (ice-9 match) #:use-module (ice-9 vlist) #:use-module (ice-9 ftw) - #:export (scheme-files - scheme-modules + #:export (scheme-modules fold-modules all-modules fold-module-public-variables)) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 083b5c3711..3e95bd511f 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -149,6 +149,8 @@ (define %options (define what-to-build (store-lift show-what-to-build)) +(define indirect-root-added + (store-lift add-indirect-root)) (define %self-build-file ;; The file containing code to build Guix. This serves the same purpose as @@ -169,48 +171,33 @@ (define* (build-from-source source ;; tree. (build source #:verbose? verbose? #:version commit))) -(define* (install-latest source-dir config-dir) - "Make SOURCE-DIR, a store file name, the latest Guix in CONFIG-DIR." - (let ((latest (string-append config-dir "/latest"))) - (if (and (file-exists? latest) - (string=? (readlink latest) source-dir)) - (begin - (display (G_ "Guix already up to date\n")) - #t) - (begin - (switch-symlinks latest source-dir) - (format #t - (G_ "updated ~a successfully deployed under `~a'~%") - %guix-package-name latest) - #t)))) - -(define (build-and-install mdrv) - "Bind MDRV, a monadic value for a derivation, build it, and finally install -it as the latest Guix." - (define do-it - ;; Weirdness follows! Before we were called, the Guix modules have - ;; probably been reloaded, leading to a "parallel universe" with disjoint - ;; record types. However, procedures in this file have already cached the - ;; module relative to which they lookup global bindings (see - ;; 'toplevel-box' documentation), so they're stuck in the old world. To - ;; work around that, evaluate our procedure in the context of the "new" - ;; (guix scripts pull) module--which has access to the new - ;; record, and so on. - (eval '(lambda (mdrv cont) - ;; Reopen a connection to the daemon so that we have a record - ;; with the new type. - (with-store store - (run-with-store store - (mlet %store-monad ((drv mdrv)) - (mbegin %store-monad - (what-to-build (list drv)) - (built-derivations (list drv)) - (return (cont (derivation->output-path drv)))))))) - (resolve-module '(guix scripts pull)))) ;the new module - - (do-it mdrv - (lambda (result) - (install-latest result (config-directory))))) +(define* (build-and-install source config-dir + #:key verbose? commit) + "Build the tool from SOURCE, and install it in CONFIG-DIR." + (mlet* %store-monad ((source (build-from-source source + #:commit commit + #:verbose? verbose?)) + (source-dir -> (derivation->output-path source)) + (to-do? (what-to-build (list source))) + (built? (built-derivations (list source)))) + ;; Always update the 'latest' symlink, regardless of whether SOURCE was + ;; already built or not. + (if built? + (mlet* %store-monad + ((latest -> (string-append config-dir "/latest")) + (done (indirect-root-added latest))) + (if (and (file-exists? latest) + (string=? (readlink latest) source-dir)) + (begin + (display (G_ "Guix already up to date\n")) + (return #t)) + (begin + (switch-symlinks latest source-dir) + (format #t + (G_ "updated ~a successfully deployed under `~a'~%") + %guix-package-name latest) + (return #t)))) + (leave (G_ "failed to update Guix, check the build log~%"))))) (define (honor-lets-encrypt-certificates! store) "Tell Guile-Git to use the Let's Encrypt certificates." @@ -271,10 +258,6 @@ (define (use-le-certs? url) (when (use-le-certs? url) (honor-lets-encrypt-certificates! store)) - ;; Ensure the 'latest' symlink is registered as a GC root. - (add-indirect-root store - (string-append (config-directory) "/latest")) - (format (current-error-port) (G_ "Updating from Git repository at '~a'...~%") url) @@ -293,16 +276,10 @@ (define (use-le-certs? url) (if (assoc-ref opts 'bootstrap?) %bootstrap-guile (canonical-package guile-2.0))))) - - ;; 'build-from-source' may cause a reload of the Guix - ;; modules. This leads to a parallel world: its record types - ;; are disjoint from those we've seen until now (because we - ;; use "generative" record types), and so on. Thus, special - ;; care must be taken once we have return from that call. - (build-and-install - (build-from-source checkout - #:commit commit - #:verbose? - (assoc-ref opts 'verbose?)))))))))))) + (run-with-store store + (build-and-install checkout (config-directory) + #:commit commit + #:verbose? + (assoc-ref opts 'verbose?)))))))))))) ;;; pull.scm ends here diff --git a/guix/self.scm b/guix/self.scm deleted file mode 100644 index 242fc9defa..0000000000 --- a/guix/self.scm +++ /dev/null @@ -1,619 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Ludovic Courtès -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (guix self) - #:use-module (guix config) - #:use-module (guix modules) - #:use-module (guix gexp) - #:use-module (guix store) - #:use-module (guix monads) - #:use-module (guix discovery) - #:use-module (guix packages) - #:use-module (guix sets) - #:use-module (guix build utils) - #:use-module (gnu packages) - #:use-module (srfi srfi-1) - #:use-module (srfi srfi-9) - #:use-module (ice-9 match) - #:export (compiled-guix - guix-derivation - reload-guix)) - - -;;; -;;; Dependency handling. -;;; - -(define* (false-if-wrong-guile package - #:optional (guile-version (effective-version))) - "Return #f if PACKAGE depends on the \"wrong\" major version of Guile (e.g., -2.0 instead of 2.2), otherwise return PACKAGE." - (let ((guile (any (match-lambda - ((label (? package? dep) _ ...) - (and (string=? (package-name dep) "guile") - dep))) - (package-direct-inputs package)))) - (and (or (not guile) - (string-prefix? guile-version - (package-version guile))) - package))) - -(define (package-for-guile guile-version . names) - "Return the package with one of the given NAMES that depends on -GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches." - (let loop ((names names)) - (match names - (() - #f) - ((name rest ...) - (match (specification->package name) - (#f - (loop rest)) - ((? package? package) - (or (false-if-wrong-guile package) - (loop rest)))))))) - - -;;; -;;; Derivations. -;;; - -;; Node in a DAG of build tasks. Each node maps to a derivation, but it's -;; easier to express things this way. -(define-record-type - (node name modules source dependencies compiled) - node? - (name node-name) ;string - (modules node-modules) ;list of module names - (source node-source) ;list of source files - (dependencies node-dependencies) ;list of nodes - (compiled node-compiled)) ;node -> lowerable object - -(define (node-fold proc init nodes) - (let loop ((nodes nodes) - (visited (setq)) - (result init)) - (match nodes - (() result) - ((head tail ...) - (if (set-contains? visited head) - (loop tail visited result) - (loop tail (set-insert head visited) - (proc head result))))))) - -(define (node-modules/recursive nodes) - (node-fold (lambda (node modules) - (append (node-modules node) modules)) - '() - nodes)) - -(define* (closure modules #:optional (except '())) - (source-module-closure modules - #:select? - (match-lambda - (('guix 'config) - #f) - ((and module - (or ('guix _ ...) ('gnu _ ...))) - (not (member module except))) - (rest #f)))) - -(define module->import - ;; Return a file-name/file-like object pair for the specified module and - ;; suitable for 'imported-files'. - (match-lambda - ((module '=> thing) - (let ((file (module-name->file-name module))) - (list file thing))) - (module - (let ((file (module-name->file-name module))) - (list file - (local-file (search-path %load-path file))))))) - -(define* (scheme-node name modules #:optional (dependencies '()) - #:key (extra-modules '()) (extra-files '()) - (extensions '()) - parallel?) - "Return a node that builds the given Scheme MODULES, and depends on -DEPENDENCIES (a list of nodes). EXTRA-MODULES is a list of additional modules -added to the source, and EXTRA-FILES is a list of additional files. -EXTENSIONS is a set of full-blown Guile packages (e.g., 'guile-json') that -must be present in the search path." - (let* ((modules (append extra-modules - (closure modules - (node-modules/recursive dependencies)))) - (module-files (map module->import modules)) - (source (imported-files (string-append name "-source") - (append module-files extra-files)))) - (node name modules source dependencies - (compiled-modules name source modules - (map node-source dependencies) - (map node-compiled dependencies) - #:extensions extensions - #:parallel? parallel?)))) - -(define (file-imports directory sub-directory pred) - "List all the files matching PRED under DIRECTORY/SUB-DIRECTORY. Return a -list of file-name/file-like objects suitable as inputs to 'imported-files'." - (map (lambda (file) - (list (string-drop file (+ 1 (string-length directory))) - (local-file file #:recursive? #t))) - (find-files (string-append directory "/" sub-directory) pred))) - -(define (scheme-modules* directory sub-directory) - "Return the list of module names found under SUB-DIRECTORY in DIRECTORY." - (let ((prefix (string-length directory))) - (map (lambda (file) - (file-name->module-name (string-drop file prefix))) - (scheme-files (string-append directory "/" sub-directory))))) - -(define* (compiled-guix source #:key (version %guix-version) - (guile-version (effective-version)) - (libgcrypt (specification->package "libgcrypt")) - (zlib (specification->package "zlib")) - (gzip (specification->package "gzip")) - (bzip2 (specification->package "bzip2")) - (xz (specification->package "xz"))) - "Return a file-like object that contains a compiled Guix." - (define guile-json - (package-for-guile guile-version - "guile-json" - "guile2.2-json" - "guile2.0-json")) - - (define guile-ssh - (package-for-guile guile-version - "guile-ssh" - "guile2.2-ssh" - "guile2.0-ssh")) - - (define guile-git - (package-for-guile guile-version - "guile-git" - "guile2.0-git")) - - - (define dependencies - (match (append-map (lambda (package) - (cons (list "x" package) - (package-transitive-inputs package))) - (list guile-git guile-json guile-ssh)) - (((labels packages _ ...) ...) - packages))) - - (define *core-modules* - (scheme-node "guix-core" - '((guix) - (guix monad-repl) - (guix packages) - (guix download) - (guix discovery) - (guix profiles) - (guix build-system gnu) - (guix build-system trivial) - (guix build profiles) - (guix build gnu-build-system)) - - ;; Provide a dummy (guix config) with the default version - ;; number, storedir, etc. This is so that "guix-core" is the - ;; same across all installations and doesn't need to be - ;; rebuilt when the version changes, which in turn means we - ;; can have substitutes for it. - #:extra-modules - `(((guix config) - => ,(make-config.scm #:libgcrypt - (specification->package "libgcrypt")))))) - - (define *extra-modules* - (scheme-node "guix-extra" - (filter-map (match-lambda - (('guix 'scripts _ ..1) #f) - (name name)) - (scheme-modules* source "guix")) - (list *core-modules*) - #:extensions dependencies)) - - (define *package-modules* - (scheme-node "guix-packages" - `((gnu packages) - ,@(scheme-modules* source "gnu/packages")) - (list *core-modules* *extra-modules*) - #:extra-files ;all the non-Scheme files - (file-imports source "gnu/packages" - (lambda (file stat) - (and (eq? 'regular (stat:type stat)) - (not (string-suffix? ".scm" file)) - (not (string-suffix? ".go" file)) - (not (string-prefix? ".#" file)) - (not (string-suffix? "~" file))))))) - - (define *system-modules* - (scheme-node "guix-system" - `((gnu system) - (gnu services) - ,@(scheme-modules* source "gnu/system") - ,@(scheme-modules* source "gnu/services")) - (list *package-modules* *extra-modules* *core-modules*) - #:extra-files - (file-imports source "gnu/system/examples" (const #t)))) - - (define *cli-modules* - (scheme-node "guix-cli" - (scheme-modules* source "/guix/scripts") - (list *core-modules* *extra-modules* *package-modules* - *system-modules*) - #:extensions dependencies)) - - (define *config* - (scheme-node "guix-config" - '() - #:extra-modules - `(((guix config) - => ,(make-config.scm #:libgcrypt libgcrypt - #:zlib zlib - #:gzip gzip - #:bzip2 bzip2 - #:xz xz - #:package-name - %guix-package-name - #:package-version - version - #:bug-report-address - %guix-bug-report-address - #:home-page-url - %guix-home-page-url))))) - - (directory-union (string-append "guix-" version) - (append-map (lambda (node) - (list (node-source node) - (node-compiled node))) - - ;; Note: *CONFIG* comes first so that it - ;; overrides the (guix config) module that - ;; comes with *CORE-MODULES*. - (list *config* - *cli-modules* - *system-modules* - *package-modules* - *extra-modules* - *core-modules*)) - - ;; When we do (add-to-store "utils.scm"), "utils.scm" must - ;; be a regular file, not a symlink. Thus, arrange so that - ;; regular files appear as regular files in the final - ;; output. - #:copy? #t - #:quiet? #t)) - - -;;; -;;; (guix config) generation. -;;; - -(define %dependency-variables - ;; (guix config) variables corresponding to dependencies. - '(%libgcrypt %libz %xz %gzip %bzip2 %nix-instantiate)) - -(define %persona-variables - ;; (guix config) variables that define Guix's persona. - '(%guix-package-name - %guix-version - %guix-bug-report-address - %guix-home-page-url)) - -(define %config-variables - ;; (guix config) variables corresponding to Guix configuration (storedir, - ;; localstatedir, etc.) - (sort (filter pair? - (module-map (lambda (name var) - (and (not (memq name %dependency-variables)) - (not (memq name %persona-variables)) - (cons name (variable-ref var)))) - (resolve-interface '(guix config)))) - (lambda (name+value1 name+value2) - (stringstring (car name+value1)) - (symbol->string (car name+value2)))))) - -(define* (make-config.scm #:key libgcrypt zlib gzip xz bzip2 - (package-name "GNU Guix") - (package-version "0") - (bug-report-address "bug-guix@gnu.org") - (home-page-url "https://gnu.org/s/guix")) - - ;; Hack so that Geiser is not confused. - (define defmod 'define-module) - - (scheme-file "config.scm" - #~(begin - (#$defmod (guix config) - #:export (%guix-package-name - %guix-version - %guix-bug-report-address - %guix-home-page-url - %libgcrypt - %libz - %gzip - %bzip2 - %xz - %nix-instantiate)) - - ;; XXX: Work around . - (eval-when (expand load eval) - #$@(map (match-lambda - ((name . value) - #~(define-public #$name #$value))) - %config-variables) - - (define %guix-package-name #$package-name) - (define %guix-version #$package-version) - (define %guix-bug-report-address #$bug-report-address) - (define %guix-home-page-url #$home-page-url) - - (define %gzip - #+(and gzip (file-append gzip "/bin/gzip"))) - (define %bzip2 - #+(and bzip2 (file-append bzip2 "/bin/bzip2"))) - (define %xz - #+(and xz (file-append xz "/bin/xz"))) - - (define %libgcrypt - #+(and libgcrypt - (file-append libgcrypt "/lib/libgcrypt"))) - (define %libz - #+(and zlib - (file-append zlib "/lib/libz"))) - - (define %nix-instantiate ;for (guix import snix) - "nix-instantiate"))))) - - - -;;; -;;; Building. -;;; - -(define (imported-files name files) - ;; This is a non-monadic, simplified version of 'imported-files' from (guix - ;; gexp). - (define build - (with-imported-modules (source-module-closure - '((guix build utils))) - #~(begin - (use-modules (ice-9 match) - (guix build utils)) - - (mkdir (ungexp output)) (chdir (ungexp output)) - (for-each (match-lambda - ((final-path store-path) - (mkdir-p (dirname final-path)) - - ;; Note: We need regular files to be regular files, not - ;; symlinks, as this makes a difference for - ;; 'add-to-store'. - (copy-file store-path final-path))) - '#$files)))) - - (computed-file name build)) - -(define* (compiled-modules name module-tree modules - #:optional - (dependencies '()) - (dependencies-compiled '()) - #:key - (extensions '()) ;full-blown Guile packages - parallel?) - ;; This is a non-monadic, enhanced version of 'compiled-file' from (guix - ;; gexp). - (define build - (with-imported-modules (source-module-closure - '((guix build compile) - (guix build utils))) - #~(begin - (use-modules (srfi srfi-26) - (ice-9 match) - (ice-9 format) - (ice-9 threads) - (guix build compile) - (guix build utils)) - - (define (regular? file) - (not (member file '("." "..")))) - - (define (report-load file total completed) - (display #\cr) - (format #t - "loading...\t~5,1f% of ~d files" ;FIXME: i18n - (* 100. (/ completed total)) total) - (force-output)) - - (define (report-compilation file total completed) - (display #\cr) - (format #t "compiling...\t~5,1f% of ~d files" ;FIXME: i18n - (* 100. (/ completed total)) total) - (force-output)) - - (define (process-directory directory output) - (let ((files (find-files directory "\\.scm$")) - (prefix (+ 1 (string-length directory)))) - ;; Hide compilation warnings. - (parameterize ((current-warning-port (%make-void-port "w"))) - (compile-files directory #$output - (map (cut string-drop <> prefix) files) - #:workers (parallel-job-count) - #:report-load report-load - #:report-compilation report-compilation)))) - - (setvbuf (current-output-port) _IONBF) - (setvbuf (current-error-port) _IONBF) - - (set! %load-path (cons #+module-tree %load-path)) - (set! %load-path - (append '#+dependencies - (map (lambda (extension) - (string-append extension "/share/guile/site/" - (effective-version))) - '#+extensions) - %load-path)) - - (set! %load-compiled-path - (append '#+dependencies-compiled - (map (lambda (extension) - (string-append extension "/lib/guile/" - (effective-version) - "/site-ccache")) - '#+extensions) - %load-compiled-path)) - - ;; Load the compiler modules upfront. - (compile #f) - - (mkdir #$output) - (chdir #+module-tree) - (process-directory "." #$output)))) - - (computed-file name build - #:options - '(#:local-build? #f ;allow substitutes - - ;; Don't annoy people about _IONBF deprecation. - #:env-vars (("GUILE_WARN_DEPRECATED" . "no"))))) - - -;;; -;;; Live patching. -;;; - -(define (recursive-submodules module) - "Return the list of submodules of MODULE." - (let loop ((module module) - (result '())) - (let ((submodules (hash-map->list (lambda (name module) - module) - (module-submodules module)))) - (fold loop (append submodules result) submodules)))) - -(define (remove-submodule! module names) - (let loop ((module module) - (names names)) - (match names - (() #t) - ((head tail ...) - (match (nested-ref-module module tail) - (#f #t) - ((? module? submodule) - (hashq-remove! (module-submodules module) head) - (loop submodule tail))))))) - -(define (unload-module-tree! module) - (define (strip-prefix prefix lst) - (let loop ((prefix prefix) - (lst lst)) - (match prefix - (() - lst) - ((_ prefix ...) - (match lst - ((_ lst ...) - (loop prefix lst))))))) - - (let ((submodules (hash-map->list (lambda (name module) - module) - (module-submodules module)))) - (let loop ((root module) - (submodules submodules)) - (match submodules - (() - #t) - ((head tail ...) - (unload-module-tree! head) - (remove-submodule! root - (strip-prefix (module-name root) - (module-name head))) - - (match (module-name head) - ((parents ... leaf) - ;; Remove MODULE from the AUTOLOADS-DONE list. Note: We don't use - ;; 'module-filename' because it could be an absolute file name. - (set-autoloaded! (string-join (map symbol->string parents) - "/" 'suffix) - (symbol->string leaf) #f))) - (loop root tail)))))) - -(define* (reload-guix #:optional (log-port (current-error-port))) - "Reload all the Guix and GNU modules currently loaded." - (let* ((guix (resolve-module '(guix) #f #:ensure #f)) - (gnu (resolve-module '(gnu) #f #:ensure #f)) - (guix-submodules (recursive-submodules guix)) - (gnu-submodules (recursive-submodules gnu))) - (define (reload module) - (match (module-filename module) - (#f #f) - ((? string? file) - ;; The following should auto-compile FILE. - (primitive-load-path file)))) - - ;; First, we need to nuke all the (guix) and (gnu) submodules so we don't - ;; end up with a mixture of old and new modules when we reload (which - ;; wouldn't work, because we'd have two different record types, - ;; for instance.) - (format log-port "Unloading current Guix...~%") - (unload-module-tree! gnu) - (unload-module-tree! guix) - - (format log-port "Loading new Guix...~%") - (for-each reload (append guix-submodules (list guix))) - (for-each reload (append gnu-submodules (list gnu))) - (format log-port "New Guix modules successfully loaded.~%"))) - - -;;; -;;; Building. -;;; - -(define* (guile-for-build #:optional (version (effective-version))) - "Return a package for Guile VERSION." - (define canonical-package ;soft reference - (module-ref (resolve-interface '(gnu packages base)) - 'canonical-package)) - - (match version - ("2.2" - (canonical-package - (specification->package "guile@2.2"))) - ("2.0" - (canonical-package - (specification->package "guile@2.0"))))) - -(define* (guix-derivation source version - #:optional (guile-version (effective-version))) - "Return, as a monadic value, the derivation to build the Guix from SOURCE -for GUILE-VERSION. Use VERSION as the version string." - (define max-version-length 9) - - (define (shorten version) - ;; TODO: VERSION is a commit id, but we'd rather use something like what - ;; 'git describe' provides. - (if (> (string-length version) max-version-length) - (string-take version max-version-length) - version)) - - (mbegin %store-monad - (set-guile-for-build (guile-for-build guile-version)) - (lower-object (compiled-guix source - #:version (shorten version) - #:guile-version guile-version)))) -- cgit v1.2.3 From ab2ccf4cf5074f3bd34f7b60dd8ab9dadadfe1c6 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Tue, 21 Nov 2017 16:29:59 -0500 Subject: gnu: lmms: Fix build. * gnu/packages/music.scm (lmms)[arguments]: Add phases "remove-Werror" and "make-manpages-writable". --- gnu/packages/music.scm | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 77d69df5a4..40eab5ba68 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3083,16 +3083,30 @@ (define-public lmms `(#:tests? #f ; no tests #:phases (modify-phases %standard-phases - (add-before - 'configure 'set-ldflags - (lambda* (#:key outputs #:allow-other-keys) - (setenv "LDFLAGS" - (string-append - "-Wl,-rpath=\"" - (assoc-ref outputs "out") "/lib/lmms" - ":" - (assoc-ref outputs "out") "/lib/lmms/ladspa" - "\""))))))) + (add-before 'configure 'set-ldflags + (lambda* (#:key outputs #:allow-other-keys) + (setenv "LDFLAGS" + (string-append + "-Wl,-rpath=\"" + (assoc-ref outputs "out") "/lib/lmms" + ":" + (assoc-ref outputs "out") "/lib/lmms/ladspa" + "\"")) + #t)) + (add-before 'configure 'remove-Werror + (lambda _ + (substitute* "CMakeLists.txt" + (("SET\\(WERROR_FLAGS \"\\$\\{WERROR_FLAGS\\} -Werror") + "SET(WERROR_FLAGS \"${WERROR_FLAGS}")) + #t)) + (add-before 'reset-gzip-timestamps 'make-manpages-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files (string-append (assoc-ref outputs "out") + "/share/man") + ".*\\.gz$")) + #t))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs -- cgit v1.2.3 From 1dc37cf113f2822b78153a726e0fde87f8196721 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 21 Nov 2017 21:20:33 -0500 Subject: gnu: linux-libre@4.4: Update to 4.4.100. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.100. --- 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 d339242ff1..acc6008a48 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -389,8 +389,8 @@ (define-public linux-libre-4.9 #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.99" - "1jg6awk2y3spkaiwwaxvbzcxflbx9jql29j1zqysg5p7njzcxjcr" + (make-linux-libre "4.4.100" + "0lqb6bxpa3play8hz9k1d54xzlm8m58xh6rlfcvmwcs8qjkvpm6g" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 86f914e3a4a21cd13e0841c22b32e70caec678c9 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 21 Nov 2017 21:21:09 -0500 Subject: gnu: linux-libre@4.9: Update to 4.9.64. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.64. --- 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 acc6008a48..d0fda9a007 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -383,8 +383,8 @@ (define-public linux-libre #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.63" - "1rjg9hgl2xkisshc5cxkri9191qj0xxak0swd37b33pnaksx5dnv" + (make-linux-libre "4.9.64" + "0mhzc8904cdnaxil8xlxmv3rd86lypi13ig9i9321jjbmv4cn849" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 3ebbf6d2189c8854535fadaa6491c5354aa735a8 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 21 Nov 2017 21:22:30 -0500 Subject: gnu: linux-libre: Update to 4.14.1. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.14.1. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d0fda9a007..af9a8604af 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -369,8 +369,8 @@ (define* (make-linux-libre version hash supported-systems (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) (define %linux-compatible-systems '("x86_64-linux" "i686-linux" "armhf-linux")) -(define %linux-libre-version "4.14") -(define %linux-libre-hash "0y42cn0lq08njvsfg3b2xyziaga268aj2lx034k40wilha6hkw3h") +(define %linux-libre-version "4.14.1") +(define %linux-libre-hash "1irfz3bdfvwa929hgv9v36wbzzji1dn4jb5wr26pbbh5hyhcvxiy") ;; linux-libre configuration for armhf-linux is derived from Debian armmp. It ;; supports qemu "virt" machine and possibly a large number of ARM boards. -- cgit v1.2.3 From c297e965d51a332b15bccbb180d6f9a400cb8805 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 21 Nov 2017 12:47:40 -0500 Subject: gnu: procmail: Fix CVE-2017-16844. * gnu/packages/patches/procmail-CVE-2017-16844.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/mail.scm (procmail)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/mail.scm | 3 ++- gnu/packages/patches/procmail-CVE-2017-16844.patch | 25 ++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/procmail-CVE-2017-16844.patch diff --git a/gnu/local.mk b/gnu/local.mk index f8e5539654..0993c45873 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -978,6 +978,7 @@ dist_patch_DATA = \ %D%/packages/patches/portmidi-modular-build.patch \ %D%/packages/patches/procmail-ambiguous-getline-debian.patch \ %D%/packages/patches/procmail-CVE-2014-3618.patch \ + %D%/packages/patches/procmail-CVE-2017-16844.patch \ %D%/packages/patches/proot-test-fhs.patch \ %D%/packages/patches/psm-arch.patch \ %D%/packages/patches/psm-ldflags.patch \ diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 77d935171a..38140d6e65 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1611,7 +1611,8 @@ (define-public procmail ;; getline() in formail.c. The patch is provided by Debian as ;; patch 24. (patches (search-patches "procmail-ambiguous-getline-debian.patch" - "procmail-CVE-2014-3618.patch")))) + "procmail-CVE-2014-3618.patch" + "procmail-CVE-2017-16844.patch")))) (arguments `(#:phases (modify-phases %standard-phases (replace 'configure diff --git a/gnu/packages/patches/procmail-CVE-2017-16844.patch b/gnu/packages/patches/procmail-CVE-2017-16844.patch new file mode 100644 index 0000000000..b96540c8cd --- /dev/null +++ b/gnu/packages/patches/procmail-CVE-2017-16844.patch @@ -0,0 +1,25 @@ +Fix CVE-2017-16844: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16844 +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876511 + +Patch copied from Debian procmail package 3.22-26: + +http://http.debian.net/debian/pool/main/p/procmail/procmail_3.22-26.debian.tar.xz + +From: Santiago Vila +Subject: Fix heap-based buffer overflow in loadbuf() +Bug-Debian: http://bugs.debian.org/876511 +X-Debian-version: 3.22-26 + +--- a/src/formisc.c ++++ b/src/formisc.c +@@ -103,7 +103,7 @@ + } + /* append to buf */ + void loadbuf(text,len)const char*const text;const size_t len; +-{ if(buffilled+len>buflen) /* buf can't hold the text */ ++{ while(buffilled+len>buflen) /* buf can't hold the text */ + buf=realloc(buf,buflen+=Bsize); + tmemmove(buf+buffilled,text,len);buffilled+=len; + } -- cgit v1.2.3 From 77f921587c6b784e84b98a9f2e9c821f73114340 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sun, 12 Nov 2017 02:22:39 -0800 Subject: doc: Split the "Substitutes" section into subsections. * doc/guix.texi (Substitutes): Move information into sections, and create one new subsection regarding substitution failure. (Top): In the detailed listing, add entries for the new subsections. (Official Substitute Server): Move info about hydra here. Add information that explains when substitutes are enabled by default. (Substitute Server Authorization): Move information about how to enable or disable substitutes here. (Substitute Authentication): Move information about how Guix authenticates substitutes here. (Proxy Settings): Move information about how to download substitutes via proxy here. (Substitution Failure): New section. Add information about how Guix handles substitution failure. Be extra clear about behavior concerning --fallback. (On Trusting Binaries): Move information about trusting binaries here. (Invoking guix-daemon): Remove an incorrect statement about when substitutes are enabled by default. (Common Build Options): Add cross-references for the --fallback option. Co-authored-by: George Clemmer --- doc/guix.texi | 132 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 98 insertions(+), 34 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 4f8453ebf0..2b3ffc9a8a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -23,7 +23,7 @@ Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* -Copyright @copyright{} 2016 Chris Marusich@* +Copyright @copyright{} 2016, 2017 Chris Marusich@* Copyright @copyright{} 2016, 2017 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016 ng0@* @@ -40,7 +40,8 @@ Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* -Copyright @copyright{} 2017 Tobias Geerinckx-Rice +Copyright @copyright{} 2017 Tobias Geerinckx-Rice@* +Copyright @copyright{} 2017 George Clemmer Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -130,6 +131,15 @@ Package Management * Invoking guix pack:: Creating software bundles. * Invoking guix archive:: Exporting and importing store files. +Substitutes + +* Official Substitute Server:: One particular source of substitutes. +* Substitute Server Authorization:: How to enable or disable substitutes. +* Substitute Authentication:: How Guix verifies substitutes. +* Proxy Settings:: How to get substitutes via proxy. +* Substitution Failure:: What happens when substitution fails. +* On Trusting Binaries:: How can you trust that binary blob? + Programming Interface * Defining Packages:: Defining new packages. @@ -1108,10 +1118,6 @@ Do not use substitutes for build products. That is, always build things locally instead of allowing downloads of pre-built binaries (@pxref{Substitutes}). -By default substitutes are used, unless the client---such as the -@command{guix package} command---is explicitly invoked with -@code{--no-substitutes}. - When the daemon runs with @code{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store}). @@ -2111,7 +2117,6 @@ preserve transformations across upgrades, you should define your own package variant in a Guile module and add it to @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages}). - @node Substitutes @section Substitutes @@ -2119,8 +2124,8 @@ package variant in a Guile module and add it to @code{GUIX_PACKAGE_PATH} @cindex pre-built binaries Guix supports transparent source/binary deployment, which means that it can either build things locally, or download pre-built items from a -server. We call these pre-built items @dfn{substitutes}---they are -substitutes for local build results. In many cases, downloading a +server, or both. We call these pre-built items @dfn{substitutes}---they +are substitutes for local build results. In many cases, downloading a substitute is much faster than building things locally. Substitutes can be anything resulting from a derivation build @@ -2128,8 +2133,22 @@ Substitutes can be anything resulting from a derivation build pre-built package binaries, but source tarballs, for instance, which also result from derivation builds, can be available as substitutes. -The @code{hydra.gnu.org} server is a front-end to a build farm that -builds packages from the GNU distribution continuously for some +@menu +* Official Substitute Server:: One particular source of substitutes. +* Substitute Server Authorization:: How to enable or disable substitutes. +* Substitute Authentication:: How Guix verifies substitutes. +* Proxy Settings:: How to get substitutes via proxy. +* Substitution Failure:: What happens when substitution fails. +* On Trusting Binaries:: How can you trust that binary blob? +@end menu + +@node Official Substitute Server +@subsection Official Substitute Server + +@cindex hydra +@cindex build farm +The @code{hydra.gnu.org} server is a front-end to an official build farm +that builds packages from the GNU distribution continuously for some architectures, and makes them available as substitutes. This is the default source of substitutes; it can be overridden by passing the @option{--substitute-urls} option either to @command{guix-daemon} @@ -2144,8 +2163,19 @@ using HTTP makes all communications visible to an eavesdropper, who could use the information gathered to determine, for instance, whether your system has unpatched security vulnerabilities. +Substitutes from the official build farm are enabled by default when +using the Guix System Distribution (@pxref{GNU Distribution}). However, +they are disabled by default when using Guix on a foreign distribution, +unless you have explicitly enabled them via one of the recommended +installation steps (@pxref{Installation}). The following paragraphs +describe how to enable or disable substitutes for the official build +farm; the same procedure can also be used to enable substitutes for any +other substitute server. + +@node Substitute Server Authorization +@subsection Substitute Server Authorization + @cindex security -@cindex digital signatures @cindex substitutes, authorization thereof @cindex access control list (ACL), for substitutes @cindex ACL (access control list), for substitutes @@ -2156,7 +2186,7 @@ imports, using the @command{guix archive} command (@pxref{Invoking guix archive}). Doing so implies that you trust @code{hydra.gnu.org} to not be compromised and to serve genuine substitutes. -This public key is installed along with Guix, in +The public key for @code{hydra.gnu.org} is installed along with Guix, in @code{@var{prefix}/share/guix/hydra.gnu.org.pub}, where @var{prefix} is the installation prefix of Guix. If you installed Guix from source, make sure you checked the GPG signature of @@ -2197,6 +2227,17 @@ The following files would be downloaded: This indicates that substitutes from @code{hydra.gnu.org} are usable and will be downloaded, when possible, for future builds. +@cindex substitutes, how to disable +The substitute mechanism can be disabled globally by running +@code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking +guix-daemon}). It can also be disabled temporarily by passing the +@code{--no-substitutes} option to @command{guix package}, @command{guix +build}, and other command-line tools. + +@node Substitute Authentication +@subsection Substitute Authentication + +@cindex digital signatures Guix detects and raises an error when attempting to use a substitute that has been tampered with. Likewise, it ignores substitutes that are not signed, or that are not signed by one of the keys listed in the ACL. @@ -2221,15 +2262,6 @@ comes first in the list and can be considered a mirror of produce the same binaries, thanks to bit-reproducible builds (see below). -@vindex http_proxy -Substitutes are downloaded over HTTP or HTTPS. -The @code{http_proxy} environment -variable can be set in the environment of @command{guix-daemon} and is -honored for downloads of substitutes. Note that the value of -@code{http_proxy} in the environment where @command{guix build}, -@command{guix package}, and other client commands are run has -@emph{absolutely no effect}. - When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do. This is because Guix @@ -2237,18 +2269,50 @@ authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys.) -You can get statistics on the substitutes provided by a server using the -@command{guix weather} command (@pxref{Invoking guix weather}). - -The substitute mechanism can be disabled globally by running -@code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking -guix-daemon}). It can also be disabled temporarily by passing the -@code{--no-substitutes} option to @command{guix package}, @command{guix -build}, and other command-line tools. - +@node Proxy Settings +@subsection Proxy Settings -@unnumberedsubsec On Trusting Binaries +@vindex http_proxy +Substitutes are downloaded over HTTP or HTTPS. +The @code{http_proxy} environment +variable can be set in the environment of @command{guix-daemon} and is +honored for downloads of substitutes. Note that the value of +@code{http_proxy} in the environment where @command{guix build}, +@command{guix package}, and other client commands are run has +@emph{absolutely no effect}. +@node Substitution Failure +@subsection Substitution Failure + +Even when a substitute for a derivation is available, sometimes the +substitution attempt will fail. This can happen for a variety of +reasons: the substitute server might be offline, the substitute may +recently have been deleted, the connection might have been interrupted, +etc. + +When substitutes are enabled and a substitute for a derivation is +available, but the substitution attempt fails, Guix will attempt to +build the derivation locally depending on whether or not +@code{--fallback} was given (@pxref{fallback-option,, common build +option @code{--fallback}}). Specifically, if @code{--fallback} was +omitted, then no local build will be performed, and the derivation is +considered to have failed. However, if @code{--fallback} was given, +then Guix will attempt to build the derivation locally, and the success +or failure of the derivation depends on the success or failure of the +local build. Note that when substitutes are disabled or no substitute +is available for the derivation in question, a local build will +@emph{always} be performed, regardless of whether or not +@code{--fallback} was given. + +To get an idea of how many substitutes are available right now, you can +try running the @command{guix weather} command (@pxref{Invoking guix +weather}). This command provides statistics on the substitutes provided +by a server. + +@node On Trusting Binaries +@subsection On Trusting Binaries + +@cindex trust, of pre-built binaries Today, each individual's control over their own computing is at the mercy of institutions, corporations, and groups with enough power and determination to subvert the computing infrastructure and exploit its @@ -2275,7 +2339,6 @@ In the future, we want Guix to have support to publish and retrieve binaries to/from other users, in a peer-to-peer fashion. If you would like to discuss this project, join us on @email{guix-devel@@gnu.org}. - @node Packages with Multiple Outputs @section Packages with Multiple Outputs @@ -5198,9 +5261,10 @@ derivations has failed. @itemx -n Do not build the derivations. +@anchor{fallback-option} @item --fallback When substituting a pre-built binary fails, fall back to building -packages locally. +packages locally (@pxref{Substitution Failure}). @item --substitute-urls=@var{urls} @anchor{client-substitute-urls} -- cgit v1.2.3 From f61aaaf36c41a7c9c6dd9a7314757f9b371a1707 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 21 Nov 2017 21:54:32 +0300 Subject: gnu: emacs-hl-todo: Update to 1.8.0. * gnu/packages/emacs.scm (emacs-hl-todo): Update to 1.8.0. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index e7e93f1540..b79de35bff 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3014,7 +3014,7 @@ (define-public emacs-highlight-symbol (define-public emacs-hl-todo (package (name "emacs-hl-todo") - (version "1.7.4") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append @@ -3023,7 +3023,7 @@ (define-public emacs-hl-todo (file-name (string-append "hl-todo-" version ".el")) (sha256 (base32 - "016ivl4s0ysrm1xbfi86j5xcs759fcb0mkspxw81x8mpi3yb46ya")))) + "0g0h9v4572p7mcird8wsj1c41haf60krslm6mlpi4mdbh248kv6z")))) (build-system emacs-build-system) (home-page "https://github.com/tarsius/hl-todo") (synopsis "Emacs mode to highlight TODO and similar keywords") -- cgit v1.2.3 From 09f7c41d6ce316db9b3ba0cf360f2fdc4b590ace Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 21 Nov 2017 21:55:11 +0300 Subject: gnu: emacs-magit-popup: Update for the new source. 'magit-popup' is not a part of 'magit' anymore. * gnu/packages/emacs.scm (emacs-magit-popup): Update to 2.12.0. [source]: Update origin URL and file-name. [home-page]: Update to the new home. [native-inputs]: Add 'texinfo' to build the info manual. [arguments]: Add 'make-info' phase. --- gnu/packages/emacs.scm | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index b79de35bff..cf31f22590 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -434,6 +434,7 @@ (define-public magit ("perl" ,perl))) (propagated-inputs `(("dash" ,emacs-dash) + ;; XXX Add 'magit-popup' dependency for the next release (after 2.11.0). ("with-editor" ,emacs-with-editor))) (arguments `(#:modules ((guix build gnu-build-system) @@ -544,20 +545,28 @@ (define-public magit-svn (define-public emacs-magit-popup (package (name "emacs-magit-popup") - (version (package-version magit)) + (version "2.12.0") (source (origin (method url-fetch) (uri (string-append - "https://raw.githubusercontent.com/magit/magit/" - version "/lisp/magit-popup.el")) - (file-name (string-append "magit-popup-" version ".el")) + "https://github.com/magit/magit-popup/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0w750kwngq63hi9drad3jxldwkg83sldb9w9r2xl2mqm3hm4l8s6")))) + "1dnk611f7lww6rb03hk8ijg2jwxx9f26pjfff4bwjmnjz7hnd6vz")))) (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'make-info + (lambda _ + (zero? (system* "make" "info"))))))) + (native-inputs + `(("texinfo" ,texinfo))) (propagated-inputs `(("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/magit/magit") + (home-page "https://github.com/magit/magit-popup") (synopsis "Define prefix-infix-suffix command combos") (description "This library implements a generic interface for toggling switches and -- cgit v1.2.3 From f137f8492373b436d8fc1e2709d1f4844eccef15 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 22 Nov 2017 18:45:31 +0100 Subject: gnu: vlc: Update to 2.2.8 [fixes CVE-2017-9300, CVE-2017-10699]. * gnu/packages/video.scm (vlc): Update to 2.2.8. --- 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 fdf3f4eaf0..7720c5ac76 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -798,7 +798,7 @@ (define-public ffmpeg-2.8 (define-public vlc (package (name "vlc") - (version "2.2.6") + (version "2.2.8") (source (origin (method url-fetch) (uri (string-append @@ -806,7 +806,7 @@ (define-public vlc version "/vlc-" version ".tar.xz")) (sha256 (base32 - "1a22b913p2227ljz89c4fgjlyln5gcz8z58w32r0wh4srnnd60y4")))) + "1v32snw46rkgbdqdy3dssl2y13i8p2cr1cw1i18r6vdmiy24dw4v")))) (build-system gnu-build-system) (native-inputs `(("git" ,git) ; needed for a test -- cgit v1.2.3 From 8d6c7456ab16aede5679f7b6590ac9c8cdb2b909 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Nov 2017 12:01:21 +0100 Subject: gnu: libzip: Use new libzip.org home page. * gnu/packages/compression.scm (libzip)[home-page]: Update. --- 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 748c75a743..c24118c709 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1731,7 +1731,7 @@ (define-public libzip (source (origin (method url-fetch) (uri (string-append - "https://nih.at/libzip/libzip-" version ".tar.xz")) + "https://libzip.org/download/" name "-" version ".tar.xz")) (sha256 (base32 "0wykw0q9dwdzx0gssi2dpgckx9ggr2spzc1amjnff6wi6kz6x4xa")))) @@ -1750,7 +1750,7 @@ (define-public libzip (inputs `(("zlib" ,zlib))) (build-system gnu-build-system) - (home-page "https://nih.at/libzip/index.html") + (home-page "https://libzip.org") (synopsis "C library for reading, creating, and modifying zip archives") (description "Libzip is a C library for reading, creating, and modifying zip archives. Files can be added from data buffers, files, or compressed data -- cgit v1.2.3 From 77e62ee0aaba163f354405b3ed6639cc6f5807b7 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 22 Nov 2017 15:34:28 +0100 Subject: gnu: libzip: Update to 1.3.2. * gnu/packages/compression.scm (libzip): Update to 1.3.2. --- 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 c24118c709..fbfe6f18a9 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1727,14 +1727,14 @@ (define-public perl-zip (define-public libzip (package (name "libzip") - (version "1.3.0") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append "https://libzip.org/download/" name "-" version ".tar.xz")) (sha256 (base32 - "0wykw0q9dwdzx0gssi2dpgckx9ggr2spzc1amjnff6wi6kz6x4xa")))) + "11g1hvm2bxa2v5plakfzcwyk5hb5fz4kgrkp38l0xhnv21888xv2")))) (arguments '(#:phases (modify-phases %standard-phases -- cgit v1.2.3 From 26ac92d49b2c6b9d1a65534b2e379912bcb97b8b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 22 Nov 2017 22:56:30 +0100 Subject: gnu: goffice: Update to 0.10.36. * gnu/packages/gnome.scm (goffice): Update to 0.10.36. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 86ec22d336..8c09cb3bd9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1791,14 +1791,14 @@ (define-public libwnck-2 (define-public goffice (package (name "goffice") - (version "0.10.35") + (version "0.10.36") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "0f2p3p7idfpbms4mi75031014mqsv09s21b6w1359p09raph3461")))) + (base32 "1mma1gp179dh7kvwzd7q3mwg0719hhbm9f5sqw28flv5lv05zrng")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;4.1 MiB of gtk-doc -- cgit v1.2.3 From d655f39c443ca29b0172f1d0b7fad024756ffdf1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 22 Nov 2017 22:56:58 +0100 Subject: gnu: gnumeric: Update to 1.12.36. * gnu/packages/gnome.scm (gnumeric): Update to 1.12.36. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8c09cb3bd9..9e3c141f0c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1855,7 +1855,7 @@ (define-public goffice-0.8 (define-public gnumeric (package (name "gnumeric") - (version "1.12.35") + (version "1.12.36") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1863,7 +1863,7 @@ (define-public gnumeric name "-" version ".tar.xz")) (sha256 (base32 - "02kcq2af16m9mlzgkbdzswhw0nl6zf01dmvsfq3shy1mab7f7cbp")))) + "0j28qpbz9a9p80x27kcwxl5n1hf36nn2fa7dxwrbhcdx4rgy5grw")))) (build-system glib-or-gtk-build-system) (arguments `(;; The gnumeric developers don't worry much about failing tests. -- cgit v1.2.3 From 0cb9c9d1702b65613a81a3e56255dcc38939841a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 22 Nov 2017 23:02:35 +0100 Subject: shepherd: Include /etc/group in service containers. * gnu/build/shepherd.scm (default-mounts)[passwd]: Rename to... [accounts]: ... this. Add /etc/group. --- gnu/build/shepherd.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gnu/build/shepherd.scm b/gnu/build/shepherd.scm index 8fc74bc482..c955e3c83f 100644 --- a/gnu/build/shepherd.scm +++ b/gnu/build/shepherd.scm @@ -60,11 +60,13 @@ (define (tmpfs directory) (type "tmpfs") (check? #f))) - (define passwd + (define accounts ;; This is for processes in the default user namespace but living in a ;; different mount namespace, so that they can lookup users. - (file-system-mapping - (source "/etc/passwd") (target source))) + (list (file-system-mapping + (source "/etc/passwd") (target source)) + (file-system-mapping + (source "/etc/group") (target source)))) (define nscd-socket (file-system-mapping @@ -78,7 +80,7 @@ (define nscd-socket %network-file-mappings)) ,@(if (and (memq 'mnt namespaces) (not (memq 'user namespaces))) - (list passwd) + accounts '()) ,%store-mapping))) ;XXX: coarse-grain (map file-system-mapping->bind-mount -- cgit v1.2.3 From 9e549ad1c3a576eed1fb095a2d14613bce83b9ee Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 22 Nov 2017 23:16:01 +0100 Subject: services: dicod: Run in a container. * gnu/services/dict.scm (dicod-shepherd-service): Add 'with-imported-modules' form and 'modules' field. Use 'make-forkexec-constructor/container' instead of 'make-forkexec-constructor'. --- gnu/services/dict.scm | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/gnu/services/dict.scm b/gnu/services/dict.scm index 69eadafd2e..c8403c0135 100644 --- a/gnu/services/dict.scm +++ b/gnu/services/dict.scm @@ -21,6 +21,7 @@ (define-module (gnu services dict) #:use-module (guix gexp) #:use-module (guix records) + #:use-module (guix modules) #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (gnu system shadow) @@ -144,14 +145,23 @@ (define (dicod-shepherd-service config) (let ((dicod (file-append (dicod-configuration-dico config) "/bin/dicod")) (dicod.conf (dicod-configuration-file config))) - (list (shepherd-service - (provision '(dicod)) - (documentation "Run the dicod daemon.") - (start #~(make-forkexec-constructor - (list #$dicod "--foreground" - (string-append "--config=" #$dicod.conf)) - #:user "dicod" #:group "dicod")) - (stop #~(make-kill-destructor)))))) + (with-imported-modules (source-module-closure + '((gnu build shepherd) + (gnu system file-systems))) + (list (shepherd-service + (provision '(dicod)) + (documentation "Run the dicod daemon.") + (modules '((gnu build shepherd) + (gnu system file-systems))) + (start #~(make-forkexec-constructor/container + (list #$dicod "--foreground" + (string-append "--config=" #$dicod.conf)) + #:user "dicod" #:group "dicod" + #:mappings (list (file-system-mapping + (source "/var/run/dicod") + (target source) + (writable? #t))))) + (stop #~(make-kill-destructor))))))) (define dicod-service-type (service-type -- cgit v1.2.3 From 5aa6e0d04a3f9dea06b9d35f04fa709b31e4b343 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Wed, 22 Nov 2017 23:31:01 +0100 Subject: gnu: emacs-org: Update to 9.1.3. * gnu/packages/emacs.scm (emacs-org): Update to 20171116 a.k.a. Org 9.1.3. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index cf31f22590..45b9329097 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4197,14 +4197,14 @@ (define-public emacs-neotree (define-public emacs-org (package (name "emacs-org") - (version "20171016") + (version "20171116") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "1196kv83p953nd9c5gxkn8ndw2kmm2kfw34dldap6m89khqflz5a")))) + "04adsyzjb6klai65g481sc964yyqcip7gqy7a1gp7qhfxx53z582")))) (build-system emacs-build-system) (home-page "http://orgmode.org/") (synopsis "Outline-based notes management and organizer") -- cgit v1.2.3 From e6debcaf027ee845b7410a62c38242cf47b11ae2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 23 Nov 2017 12:36:22 +0100 Subject: gnu: subread: Update to 1.6.0. * gnu/packages/bioinformatics.scm (subread): Update to 1.6.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 a8d7361ff0..aa05a9881b 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -5417,14 +5417,14 @@ (define-public star (define-public subread (package (name "subread") - (version "1.5.1") + (version "1.6.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/subread/subread-" version "/subread-" version "-source.tar.gz")) (sha256 (base32 - "0gn5zhbvllks0mmdg3qlmsbg91p2mpdc2wixwfqpi85yzfrh8hcy")))) + "0ah0n4jx6ksk2m2j7xk385x2qzmk1y4rfc6a4mfrdqrlq721w99i")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target -- cgit v1.2.3 From e57e3dc57f687ffe11a0392c75fb0117f8b8d378 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 23 Nov 2017 15:52:24 +0100 Subject: gnu: knot: Update to 2.6.2. * gnu/packages/dns.scm (knot): Update to 2.6.2. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index f930b903a9..fc6b3ff0e3 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -483,14 +483,14 @@ (define-public yadifa (define-public knot (package (name "knot") - (version "2.6.1") + (version "2.6.2") (source (origin (method url-fetch) (uri (string-append "https://secure.nic.cz/files/knot-dns/" name "-" version ".tar.xz")) (sha256 (base32 - "1qs1rqfir0nxi0a0dcg60sbbr99hyxk8y1xd7j7jd13l9idx84rh")) + "1samin2l28kvchplvp5iksi5513xlm1giwf0a1kp80j3zrra1m29")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From d868cf4f989a86fe05966963f1a70f05174ad25b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 23 Nov 2017 17:21:43 +0100 Subject: gnu: fish: Update to 2.7.0. * gnu/packages/shell.scm (fish): Update to 2.7.0. [source]: Add alternative source. --- gnu/packages/shells.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index f03d7c4a9d..2792b2e289 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -88,14 +88,19 @@ (define-public dash (define-public fish (package (name "fish") - (version "2.6.0") + (version "2.7.0") (source (origin (method url-fetch) - (uri (string-append "https://fishshell.com/files/" - version "/fish-" version ".tar.gz")) + (uri + (list + (string-append "https://fishshell.com/files/" + version "/fish-" version ".tar.gz") + (string-append "https://github.com/fish-shell/fish-shell/" + "releases/download/" version "/" + name "-" version ".tar.gz"))) (sha256 (base32 - "1yzx73kg5ng5ivhi68756sl5hpb8869110l9fwim6gn7f7bbprby")) + "1jvvm27hp46w0cia14lfz6161dkz8b935j1m7j38i7rgx75bfxis")) (modules '((guix build utils))) ;; Don't try to install /etc/fish/config.fish. (snippet -- cgit v1.2.3 From 7044b92dbd95bf4bd7a58cd245d41afe35e80971 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Thu, 23 Nov 2017 10:35:10 +0100 Subject: linux-libre: Adapt some arm options to match intel conf. * gnu/packages/aux-files/linux-libre/4.14-arm.conf: GuixSD base-initrd expects ext4 and fat filesystem to be built-in. Adapt configuration accordingly. Also set devtmpfs_mount to yes. --- gnu/packages/aux-files/linux-libre/4.14-arm.conf | 25 ++++++++++++------------ 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/gnu/packages/aux-files/linux-libre/4.14-arm.conf b/gnu/packages/aux-files/linux-libre/4.14-arm.conf index 7f82c291a6..2bde47018a 100644 --- a/gnu/packages/aux-files/linux-libre/4.14-arm.conf +++ b/gnu/packages/aux-files/linux-libre/4.14-arm.conf @@ -1816,7 +1816,7 @@ CONFIG_TEGRA_AHB=y # # CONFIG_UEVENT_HELPER is not set CONFIG_DEVTMPFS=y -# CONFIG_DEVTMPFS_MOUNT is not set +CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y @@ -7466,16 +7466,15 @@ CONFIG_DCACHE_WORD_ACCESS=y CONFIG_FS_IOMAP=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set -CONFIG_EXT4_FS=m +CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -CONFIG_EXT4_ENCRYPTION=y -CONFIG_EXT4_FS_ENCRYPTION=y +# CONFIG_EXT4_ENCRYPTION is not set # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD2=m +CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set -CONFIG_FS_MBCACHE=m +CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set @@ -7567,12 +7566,12 @@ CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # -CONFIG_FAT_FS=m +CONFIG_FAT_FS=y CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m +CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="ascii" -CONFIG_FAT_DEFAULT_UTF8=y +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAT_DEFAULT_UTF8 is not set CONFIG_NTFS_FS=m # CONFIG_NTFS_DEBUG is not set # CONFIG_NTFS_RW is not set @@ -7744,7 +7743,7 @@ CONFIG_9P_FS_POSIX_ACL=y CONFIG_9P_FS_SECURITY=y CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" -CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_737=m CONFIG_NLS_CODEPAGE_775=m CONFIG_NLS_CODEPAGE_850=m @@ -8162,7 +8161,7 @@ CONFIG_CRYPTO_VMAC=m # # Digest # -CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_GHASH=m @@ -8274,7 +8273,7 @@ CONFIG_GENERIC_IO=y CONFIG_STMP_DEVICE=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y -- cgit v1.2.3 From be07cc4549cc109c42e1a65d3d6caf9cab1895f8 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 22 Nov 2017 20:14:16 +0100 Subject: bootloader: extlinux: Fix device tree path. * gnu/bootloader/extlinux.scm (extlinux-configuration-file): Use kernel directory to format device tree file path. --- gnu/bootloader/extlinux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm index e5fdeb5801..0db5598fc9 100644 --- a/gnu/bootloader/extlinux.scm +++ b/gnu/bootloader/extlinux.scm @@ -53,7 +53,7 @@ (define (menu-entry->gexp entry) APPEND ~a ~%" #$label #$label - #$kernel #$kernel #$initrd + #$kernel (dirname #$kernel) #$initrd (string-join (list #$@kernel-arguments))))) (define builder -- cgit v1.2.3 From be10e4ae4ab7fcb8735c34781432a1109dcfbd88 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 23 Nov 2017 21:58:33 +0100 Subject: doc: Update package count. * doc/guix.texi (Limitations): Update package count. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2b3ffc9a8a..ab18287d20 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7781,7 +7781,7 @@ More and more system services are provided (@pxref{Services}), but some may be missing. @item -More than 5,300 packages are available, but you may +More than 6,500 packages are available, but you might occasionally find that a useful package is missing. @item -- cgit v1.2.3 From 0dcad042a5180d275a96d2870092f40a4f7542ec Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Fri, 24 Nov 2017 02:22:53 +1100 Subject: gnu: pcmanfm: Add missing inputs. Remove comment. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/lxde.scm (pcmanfm)[inputs]: Add GVFS. [propagated-inputs]: Add LXMENU-DATA. Remove comment suggesting to use --sysconfdir. Inspection of the configure script shows that /etc is used for configuration by default anyway, so such a flag is not needed. Signed-off-by: Ludovic Courtès --- gnu/packages/lxde.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index bf70bd6013..44e5da444d 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -218,14 +219,15 @@ (define-public pcmanfm (base32 "0rxdh0dfzc84l85c54blq42gczygq8adhr3l9hqzy1dp530cm1hc")))) (build-system gnu-build-system) - ;; (#:configure-flags '("--sysconfdir=/etc")) suggested in README. (inputs `(("gtk+" ,gtk+-2) - ;; TODO: add ("gvfs" ,gvfs). + ("gvfs" ,gvfs) ;for trash and mount support ("libfm" ,libfm) ("libx11" ,libx11))) (native-inputs `(("intltool" ,intltool) ("libtool" ,libtool) ("pkg-config" ,pkg-config))) + (propagated-inputs + `(("lxmenu-data" ,lxmenu-data))) ;for "Open With..." application list (synopsis "LXDE file manager") (description "PCMan is a lightweight GTK+ based file manager, compliant with freedesktop.org standard.") -- cgit v1.2.3 From 327620dc7213362cf329a80992a873445bcb1624 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Fri, 24 Nov 2017 02:57:00 +1100 Subject: gnu: pcmanfm: Fix CVE-2017-8934. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/pcmanfm-CVE-2017-8934.patch: New file. This patch was imported from Arch Linux. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/lxde.scm (pcmanfm)[source]: Use it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/lxde.scm | 1 + gnu/packages/patches/pcmanfm-CVE-2017-8934.patch | 56 ++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 gnu/packages/patches/pcmanfm-CVE-2017-8934.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0993c45873..e8ad12295e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -945,6 +945,7 @@ dist_patch_DATA = \ %D%/packages/patches/patchelf-rework-for-arm.patch \ %D%/packages/patches/patchutils-xfail-gendiff-tests.patch \ %D%/packages/patches/patch-hurd-path-max.patch \ + %D%/packages/patches/pcmanfm-CVE-2017-8934.patch \ %D%/packages/patches/pcre-CVE-2017-7186.patch \ %D%/packages/patches/pcre2-CVE-2017-7186.patch \ %D%/packages/patches/pcre2-CVE-2017-8786.patch \ diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index 44e5da444d..7d0aaa6503 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -215,6 +215,7 @@ (define-public pcmanfm (uri (string-append "mirror://sourceforge/" name "/" "PCManFM%20%2B%20Libfm%20%28tarball%20release" "%29/PCManFM/" name "-" version ".tar.xz")) + (patches (search-patches "pcmanfm-CVE-2017-8934.patch")) (sha256 (base32 "0rxdh0dfzc84l85c54blq42gczygq8adhr3l9hqzy1dp530cm1hc")))) diff --git a/gnu/packages/patches/pcmanfm-CVE-2017-8934.patch b/gnu/packages/patches/pcmanfm-CVE-2017-8934.patch new file mode 100644 index 0000000000..489d22c83b --- /dev/null +++ b/gnu/packages/patches/pcmanfm-CVE-2017-8934.patch @@ -0,0 +1,56 @@ +From bc8c3d871e9ecc67c47ff002b68cf049793faf08 Mon Sep 17 00:00:00 2001 +From: Andriy Grytsenko +Date: Sun, 14 May 2017 21:35:40 +0300 +Subject: [PATCH] Fix potential access violation, use runtime user dir instead + of tmp dir. + +--- + NEWS | 4 ++++ + src/single-inst.c | 7 ++++++- + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/NEWS b/NEWS +index 8c2049a..876f7f3 100644 +--- a/NEWS ++++ b/NEWS +@@ -1,3 +1,7 @@ ++* Fixed potential access violation, use runtime user dir instead of tmp dir ++ for single instance socket. ++ ++ + Changes on 1.2.5 since 1.2.4: + + * Removed options to Cut, Remove and Rename from context menu on mounted +diff --git a/src/single-inst.c b/src/single-inst.c +index 62c37b3..aaf84ab 100644 +--- a/src/single-inst.c ++++ b/src/single-inst.c +@@ -2,7 +2,7 @@ + * single-inst.c: simple IPC mechanism for single instance app + * + * Copyright 2010 Hong Jen Yee (PCMan) +- * Copyright 2012 Andriy Grytsenko (LStranger) ++ * Copyright 2012-2017 Andriy Grytsenko (LStranger) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -404,11 +404,16 @@ static void get_socket_name(SingleInstData* data, char* buf, int len) + } + else + dpynum = 0; ++#if GLIB_CHECK_VERSION(2, 28, 0) ++ g_snprintf(buf, len, "%s/%s-socket-%s-%d", g_get_user_runtime_dir(), ++ data->prog_name, host ? host : "", dpynum); ++#else + g_snprintf(buf, len, "%s/.%s-socket-%s-%d-%s", + g_get_tmp_dir(), + data->prog_name, + host ? host : "", + dpynum, + g_get_user_name()); ++#endif + } + +-- +2.1.4 + -- cgit v1.2.3 From 5864f1c1ee435fefa707cc644b88d99a2e89ff98 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Wed, 22 Nov 2017 09:32:25 +0100 Subject: gnu: higan: Update to 106. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/games.scm (higan): Update to 106. * gnu/packages/patches/higan-remove-march-native-flag.patch: Adjust. Signed-off-by: Ludovic Courtès --- gnu/packages/games.scm | 4 ++-- gnu/packages/patches/higan-remove-march-native-flag.patch | 15 +++++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 73ffa74c7b..c37491dc6b 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3035,7 +3035,7 @@ (define-public red-eclipse (define-public higan (package (name "higan") - (version "104") + (version "106") (source (origin (method url-fetch) @@ -3044,7 +3044,7 @@ (define-public higan version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "18by01ir2mvdi9hq571in1hk18gw2bd0ynq4avfs1qj0qra35fqb")) + (base32 "0y42pra0dxzlbkyzcp3r8a39pji2bj3p9fl40425f60af2igr4rw")) (patches (search-patches "higan-remove-march-native-flag.patch")))) (build-system gnu-build-system) (native-inputs diff --git a/gnu/packages/patches/higan-remove-march-native-flag.patch b/gnu/packages/patches/higan-remove-march-native-flag.patch index 8f4a36dc35..30d4cdd061 100644 --- a/gnu/packages/patches/higan-remove-march-native-flag.patch +++ b/gnu/packages/patches/higan-remove-march-native-flag.patch @@ -2,12 +2,11 @@ Remove -march=native from build flags. --- a/higan/GNUmakefile +++ b/higan/GNUmakefile -@@ -32,7 +32,7 @@ ifeq ($(platform),windows) - else ifeq ($(platform),macosx) - flags += -march=native - else ifneq ($(filter $(platform),linux bsd),) -- flags += -march=native -fopenmp -+ flags += -fopenmp +@@ -26,7 +26,6 @@ + flags += -fopenmp link += -fopenmp - link += -Wl,-export-dynamic - link += -lX11 -lXext + ifeq ($(binary),application) +- flags += -march=native + link += -Wl,-export-dynamic + link += -lX11 -lXext + else ifeq ($(binary),library) -- cgit v1.2.3 From 17c3f77641f19249b99283d81f08cdcfb7f52776 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Wed, 22 Nov 2017 10:07:59 +0100 Subject: gnu: supertuxkart: Update to 0.9.3. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/games.scm (supertuxkart): Update to 0.9.3. [arguments] <#:configure-flags>: Pass -DBUILD_RECORDER=0. * gnu/packages/patches/supertuxkart-angelscript-ftbfs.patch: Remove. * gnu/local.mk (dist_patch_DATA): Remove it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 - gnu/packages/games.scm | 7 ++-- .../patches/supertuxkart-angelscript-ftbfs.patch | 42 ---------------------- 3 files changed, 4 insertions(+), 46 deletions(-) delete mode 100644 gnu/packages/patches/supertuxkart-angelscript-ftbfs.patch diff --git a/gnu/local.mk b/gnu/local.mk index e8ad12295e..e348bf39f1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1069,7 +1069,6 @@ dist_patch_DATA = \ %D%/packages/patches/spice-CVE-2017-7506.patch \ %D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ - %D%/packages/patches/supertuxkart-angelscript-ftbfs.patch \ %D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-format-security.patch \ %D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index c37491dc6b..b1ba28a62c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1461,7 +1461,7 @@ (define-public extremetuxracer (define-public supertuxkart (package (name "supertuxkart") - (version "0.9.2") + (version "0.9.3") (source (origin (method url-fetch) @@ -1469,8 +1469,7 @@ (define-public supertuxkart version "/supertuxkart-" version "-src.tar.xz")) (sha256 (base32 - "10l2ljmd7mv8f9ylarqmxxryicdnph2qkm3g5maxnsm2k2q0n20b")) - (patches (search-patches "supertuxkart-angelscript-ftbfs.patch")) + "1c4w47ibj87lgwiqygq8qi7jiz6gklj4dwf5bs5zk15s0rqlw0fq")) (modules '((guix build utils))) (snippet ;; Delete bundled library sources @@ -1495,6 +1494,8 @@ (define-public supertuxkart (list "-DUSE_WIIUSE=0" ;; Do not use the bundled zlib "-DNO_IRR_COMPILE_WITH_ZLIB_=TRUE" + ;; FIXME: needs libopenglrecorder + "-DBUILD_RECORDER=0" ;; Irrlicht returns an integer instead of a boolean "-DCMAKE_C_FLAGS=-fpermissive") #:phases diff --git a/gnu/packages/patches/supertuxkart-angelscript-ftbfs.patch b/gnu/packages/patches/supertuxkart-angelscript-ftbfs.patch deleted file mode 100644 index db3c56861b..0000000000 --- a/gnu/packages/patches/supertuxkart-angelscript-ftbfs.patch +++ /dev/null @@ -1,42 +0,0 @@ -https://github.com/supertuxkart/stk-code/commit/5e05f1178ce6bc5f3a653b55ab3dc6d016196341.patch - -From 5e05f1178ce6bc5f3a653b55ab3dc6d016196341 Mon Sep 17 00:00:00 2001 -From: Deve -Date: Mon, 3 Oct 2016 23:26:09 +0200 -Subject: [PATCH] Fixed compiler error on Linux with non-x86 64bit platforms, - e.g. arm64, mips, and s390x architectures - -This modification is already applied in upstream angelscript repository: -https://sourceforge.net/p/angelscript/code/2353/ - -Thanks to Adrian Bunk and Andreas Jonsson ---- - lib/angelscript/projects/cmake/CMakeLists.txt | 1 + - lib/angelscript/source/as_config.h | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/lib/angelscript/projects/cmake/CMakeLists.txt b/lib/angelscript/projects/cmake/CMakeLists.txt -index e93971315e..755d8378c3 100644 ---- a/lib/angelscript/projects/cmake/CMakeLists.txt -+++ b/lib/angelscript/projects/cmake/CMakeLists.txt -@@ -67,6 +67,7 @@ set(ANGELSCRIPT_SOURCE - ../../source/as_builder.cpp - ../../source/as_bytecode.cpp - ../../source/as_callfunc.cpp -+ ../../source/as_callfunc_mips.cpp - ../../source/as_callfunc_x86.cpp - ../../source/as_callfunc_x64_gcc.cpp - ../../source/as_callfunc_x64_msvc.cpp -diff --git a/lib/angelscript/source/as_config.h b/lib/angelscript/source/as_config.h -index cb05bffbd5..5bb5b8e800 100644 ---- a/lib/angelscript/source/as_config.h -+++ b/lib/angelscript/source/as_config.h -@@ -844,7 +844,7 @@ - #define THISCALL_PASS_OBJECT_POINTER_ON_THE_STACK - #define AS_X86 - #undef AS_NO_THISCALL_FUNCTOR_METHOD -- #elif defined(__LP64__) && !defined(__arm64__) -+ #elif defined(__x86_64__) - #define AS_X64_GCC - #undef AS_NO_THISCALL_FUNCTOR_METHOD - #define HAS_128_BIT_PRIMITIVES -- cgit v1.2.3 From d7c64ad513ba91c5a076f6c7e1aa60b8583c2546 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 21 Nov 2017 01:29:29 -0500 Subject: gnu: Add MASSCAN. * gnu/packages/admin.scm (masscan): New variable. --- gnu/packages/admin.scm | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index cd2b9a6335..d4215ead18 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Alex Sassmannshausen ;;; Copyright © 2015 Eric Dvorsak -;;; Copyright © 2016 Leo Famulari +;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2016 Pjotr Prins ;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016, 2017 Efraim Flashner @@ -2295,3 +2295,39 @@ (define-public thermald ;; arm and aarch64 don't have cpuid.h (supported-systems '("i686-linux" "x86_64-linux")) (license license:gpl2+))) + +(define-public masscan + (package + (name "masscan") + (version "1.0.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/robertdavidgraham/masscan" + "/archive/" version ".tar.gz")) + (sha256 + (base32 + "1y9af345g00z83rliv6bmlqg37xwc7xpnx5xqdgmjikzcxgk9pji")))) + (build-system gnu-build-system) + (inputs + `(("libpcap" ,libpcap))) + (arguments + '(#:test-target "regress" + #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure) ; There is no ./configure script + (add-after 'unpack 'patch-path + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (pcap (assoc-ref inputs "libpcap"))) + (substitute* "src/rawsock-pcap.c" + (("libpcap.so") (string-append pcap "/lib/libpcap.so"))) + #t)))))) + (synopsis "TCP port scanner") + (description "MASSCAN is an asynchronous TCP port scanner. It can detect +open ports, and also complete the TCP connection and interact with the remote +application, collecting the information received.") + (home-page "https://github.com/robertdavidgraham/masscan") + ;; 'src/siphash24.c' is the SipHash reference implementation, which + ;; bears a CC0 Public Domain Dedication. + (license license:agpl3+))) -- cgit v1.2.3 From 907ab9e8cbab10413848dfc8982cfc851e03903f Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Wed, 22 Nov 2017 14:01:15 +0100 Subject: gnu: utox: Update to 0.16.1. * gnu/packages/messaging.scm (utox): Update to 0.16.1. [inputs]: Add check and gtk+. [native-inputs]: Add pkg-config. [arguments]: Remove 'fix-freetype-include' and 'patch-cmake-find-utox' phases. Add 'patch-absolute-filename-libgtk-3' and 'wrap-program' phases. Signed-off-by: Leo Famulari --- gnu/packages/messaging.scm | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index b9cd80539a..2d89fef9cf 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -796,7 +796,7 @@ (define-public c-toxcore (define-public utox (package (name "utox") - (version "0.11.0") + (version "0.16.1") (source (origin (method url-fetch) @@ -805,37 +805,41 @@ (define-public utox (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "15s4iwjk1s0kihjqn0f07c9618clbphpr827mds3xddkiwnjz37v")))) + "14xl72y4w1x2kk0cvkcr9pmywllm0r9w2grjqiknwn95pw6yxz6q")))) (build-system cmake-build-system) (arguments - '(#:tests? #f ; No test phase. - #:phases + `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-freetype-include - (lambda _ - (substitute* "CMakeLists.txt" - (("/usr/include/freetype2") - (string-append (assoc-ref %build-inputs "freetype") - "/include/freetype2"))))) - (add-before 'install 'patch-cmake-find-utox - (lambda _ - (substitute* "../build/cmake_install.cmake" - (("/uTox-0.11.0/utox") - "/build/utox"))))))) + (add-before 'build 'patch-absolute-filename-libgtk-3 + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "../uTox-0.16.1/src/xlib/gtk.c" + (("libgtk-3.so") + (string-append (assoc-ref inputs "gtk+") + "/lib/libgtk-3.so"))))) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/utox") + ;; For GtkFileChooserDialog. + `("GSETTINGS_SCHEMA_DIR" = + (,(string-append (assoc-ref inputs "gtk+") + "/share/glib-2.0/schemas"))))))))) (inputs - ;; TODO: Fix the file chooser dialog; which input does it need? `(("dbus" ,dbus) ("filteraudio" ,filteraudio) ("fontconfig" ,fontconfig) ("freetype" ,freetype) ("libsodium" ,libsodium) ("c-toxcore" ,c-toxcore) + ("check" ,check) + ("gtk+" ,gtk+) ("libvpx" ,libvpx) ("libx11" ,libx11) ("libxext" ,libxext) ("libxrender" ,libxrender) ("openal" ,openal) ("v4l-utils" ,v4l-utils))) + (native-inputs `(("pkg-config" ,pkg-config))) (synopsis "Lightweight Tox client") (description "Utox is a lightweight Tox client. Tox is a distributed and secure -- cgit v1.2.3 From 06378ceeb12fc7838dfd366b9ecd892786c846e5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 24 Nov 2017 16:14:37 +0200 Subject: gnu: qt@5: Update to 5.9.3. * gnu/packages/qt.scm (qt@5): Update to 5.9.3. --- 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 4177c8b893..bc57933955 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -102,7 +102,7 @@ (define-public grantlee (define-public qt (package (name "qt") - (version "5.9.2") + (version "5.9.3") (outputs '("out" "examples")) (source (origin (method url-fetch) @@ -115,7 +115,7 @@ (define-public qt version ".tar.xz")) (sha256 (base32 - "1zr0hvhryn2ada53ln7cycymh602cncli86n291bsgzas6j72qbc")) + "0ik0ikwa0qb7dqcr9knxpnwv50b7m6m2iglzq9yjs3437zqdib2p")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From 7997d37bacce6f9b8bc94f2c42c4b7096a28ba31 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 24 Nov 2017 16:17:29 +0200 Subject: gnu: qt: Update to 5.9.3. * gnu/packages/qt.scm (qtbase, qtsvg, qtimageformats, qtx11extras, qtxmlpatterns, qtdeclarative, qtconnectivity, qtwebsockets, qtsensors, qtmultimedia, qtwayland, qtserialport, qtserialbus, qtwebchannel, qtlocation, qttools, qtscript, qtquickcontrols, qtquickcontrols2, qtgraphicaleffects, qtgamepad, qtscxml, qtpurchasing, qtcanvas3d, qtcharts, qtdatavis3d, qtnetworkauth, qtremoteobjects, qtspeech): Update to 5.9.3. --- gnu/packages/qt.scm | 116 ++++++++++++++++++++++++++-------------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index bc57933955..aac1bff57b 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -368,7 +368,7 @@ (define-public qt-4 (define-public qtbase (package (name "qtbase") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -377,7 +377,7 @@ (define-public qtbase version ".tar.xz")) (sha256 (base32 - "16v0dny4rcyd5p8qsnsfg89w98k8kqk3rp9x3g3k7xjmi53bpqkz")) + "10lrkarvs7dpx9rlj7sjcc0pzi42098x8nqnhmydr4bnbq048z4y")) (modules '((guix build utils))) (snippet ;; corelib uses bundled harfbuzz, md4, md5, sha3 @@ -565,7 +565,7 @@ (define-public qtbase (define-public qtsvg (package (inherit qtbase) (name "qtsvg") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -574,7 +574,7 @@ (define-public qtsvg version ".tar.xz")) (sha256 (base32 - "020icrl9vi8jh8ygsssqrx2bl8bx28m15dwmf9a969qdnvxyp5ms")))) + "1wjx9ymk2h19l9kk76jh87bnhhj955f9a93akvwwzfwg1jk2hrnz")))) (propagated-inputs `()) (native-inputs `(("perl" ,perl))) (inputs @@ -640,7 +640,7 @@ (define-public qtsvg (define-public qtimageformats (package (inherit qtsvg) (name "qtimageformats") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -649,7 +649,7 @@ (define-public qtimageformats version ".tar.xz")) (sha256 (base32 - "1wwxxcl24mk1p4w6knyfai09axmwqsm6cgsbkjsmdz3zmjh6qqis")) + "1p95wzm46j49c5br45g0pmlz3n3fl93j1ipzmnpmq9y2pbfhkcyl")) (modules '((guix build utils))) (snippet '(delete-file-recursively "src/3rdparty")))) @@ -669,7 +669,7 @@ (define-public qtimageformats (define-public qtx11extras (package (inherit qtsvg) (name "qtx11extras") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -678,7 +678,7 @@ (define-public qtx11extras version ".tar.xz")) (sha256 (base32 - "1ias745j5lfnrfkgyk0pr8n8zlkqs08gq7yyzaj1c645sh54b1fv")))) + "1gpjgca4xvyy0r743kh2ys128r14fh6j8bdphnmmi5v2pf6bzq74")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -693,7 +693,7 @@ (define-public qtx11extras (define-public qtxmlpatterns (package (inherit qtsvg) (name "qtxmlpatterns") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -702,7 +702,7 @@ (define-public qtxmlpatterns version ".tar.xz")) (sha256 (base32 - "0knk4bplqhvsxar1wv16bzfw57q0aja12gdaxz7m8mvx121sm9ha")))) + "1fphhqr3v3vzjp2vbv16bc1vs879wn7aqlabgcpkhqx92ak6d76g")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -722,7 +722,7 @@ (define-public qtxmlpatterns (define-public qtdeclarative (package (inherit qtsvg) (name "qtdeclarative") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -731,7 +731,7 @@ (define-public qtdeclarative version ".tar.xz")) (sha256 (base32 - "020bha6q8byxc8cj5zw7gms5rgsjg71hv31hv1rr2fy7x56zsh0d")))) + "01wlk17zf47yzx7cc3cp617gj70yadllj2rsfk78879c0v96cpsh")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -754,7 +754,7 @@ (define-public qtdeclarative (define-public qtconnectivity (package (inherit qtsvg) (name "qtconnectivity") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -763,7 +763,7 @@ (define-public qtconnectivity version ".tar.xz")) (sha256 (base32 - "1k7kjmlny0ykm40qx796wbsg3310v6b8hqizkbr597cmxjbrax9c")))) + "0j86rspn4xgwq1ddc1mpq1kq0ib2c0ag6rsn9ly2xs4iimp1x2g2")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -789,7 +789,7 @@ (define-public qtconnectivity (define-public qtwebsockets (package (inherit qtsvg) (name "qtwebsockets") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -798,7 +798,7 @@ (define-public qtwebsockets version ".tar.xz")) (sha256 (base32 - "0x0nx1ampqsgj9qlc3l32z3ham1a5vq7m2lnxk5pr92yj6yw3pdg")))) + "1phic630ah85ajxp6iqrw9bpg0y8s88y45ygkc1wcasmbgzrs1nf")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -816,7 +816,7 @@ (define-public qtwebsockets (define-public qtsensors (package (inherit qtsvg) (name "qtsensors") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -825,7 +825,7 @@ (define-public qtsensors version ".tar.xz")) (sha256 (base32 - "1lxmhi19dbb8vjhpjph0l0ss6zh72hb4908lp4s1pgf8r641ai3r")))) + "1hfsih5iy4fi6mnpw2shf1lzx9hxcdc1arspad1mark17l5s4pmr")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -847,7 +847,7 @@ (define-public qtsensors (define-public qtmultimedia (package (inherit qtsvg) (name "qtmultimedia") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -856,7 +856,7 @@ (define-public qtmultimedia version ".tar.xz")) (sha256 (base32 - "0815hi3cxy5zy6yc5fkdpx2xd6rk7968j1ziwl2g4wa80802g9n9")) + "19iqh8xpspzlmpzh05bx5rchlslbfy2pp00xv52496yf9b95i5g7")) (modules '((guix build utils))) (snippet '(begin @@ -897,7 +897,7 @@ (define-public qtmultimedia (define-public qtwayland (package (inherit qtsvg) (name "qtwayland") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -906,7 +906,7 @@ (define-public qtwayland version ".tar.xz")) (sha256 (base32 - "1ipn4xh0dj1kjg5i4vfl4gpx3hg2377w5gls47xpv1ikz41lshzn")) + "0vazcmpqdka3llmyg7m99lw0ngrydmw74p9nd04544xdn128r3ih")) (modules '((guix build utils))) (snippet ;; The examples try to build and cause the build to fail @@ -947,7 +947,7 @@ (define-public qtwayland (define-public qtserialport (package (inherit qtsvg) (name "qtserialport") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -956,7 +956,7 @@ (define-public qtserialport version ".tar.xz")) (sha256 (base32 - "0hndc9z7qzxazzjvc6k5yd58afw13444plk70b05nqdi5p19rvah")))) + "1pxb679cx77vk39ik7j0k91a57wqa63d4g4riw3r2gpcay8kxpac")))) (native-inputs `(("perl" ,perl))) (inputs `(("qtbase" ,qtbase) @@ -968,7 +968,7 @@ (define-public qtserialport (define-public qtserialbus (package (inherit qtsvg) (name "qtserialbus") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -977,7 +977,7 @@ (define-public qtserialbus version ".tar.xz")) (sha256 (base32 - "025yv7zajz5scrmkjkmgkyvxpgkliqvrzc88is0gr481zpd4phmv")))) + "0f39qh05mp54frpn5sy9k5vfw5zb2gg72qaqz81mwlck2xg78qpg")))) (inputs `(("qtbase" ,qtbase) ("qtserialport" ,qtserialport))) @@ -989,7 +989,7 @@ (define-public qtserialbus (define-public qtwebchannel (package (inherit qtsvg) (name "qtwebchannel") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -998,7 +998,7 @@ (define-public qtwebchannel version ".tar.xz")) (sha256 (base32 - "09iss70c1iqgf8qpik35qlgrdw5y9935v0fm2ppgkmxdxkpls6ww")))) + "0n438mk01sh2bbqakc1m3s65qqmi75m4n4hymad8wcgijfr9a9v3")))) (native-inputs `(("perl" ,perl) ("qtdeclarative" ,qtdeclarative) @@ -1013,7 +1013,7 @@ (define-public qtwebchannel (define-public qtlocation (package (inherit qtsvg) (name "qtlocation") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1022,7 +1022,7 @@ (define-public qtlocation version ".tar.xz")) (sha256 (base32 - "033b6l6jbvmc0k5qvbgh5vkzvfga7npqcphrywrrqkmx9vj446n8")))) + "1qacqz6l7zljqszblhgzg5y1v4mgki59k45ag7yc2iw7vrf45zc0")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1043,7 +1043,7 @@ (define-public qtlocation (define-public qttools (package (inherit qtsvg) (name "qttools") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1052,7 +1052,7 @@ (define-public qttools version ".tar.xz")) (sha256 (base32 - "06nqsa5mj0mc9w9xbm7mgdkb66x4wlvkhnas32f97sb8ic8rdf9b")))) + "1zw4j8ymwcpn7dx1dlbxpmx5lfp26rag7pysap1xry9m7vg3hb24")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1070,7 +1070,7 @@ (define-public qttools (define-public qtscript (package (inherit qtsvg) (name "qtscript") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1079,7 +1079,7 @@ (define-public qtscript version ".tar.xz")) (sha256 (base32 - "1wa0rnbphkhgydnwkf5bjwn0llskl6hgs0964nh0jik8qaspv027")) + "0rjm6nph1nssfpknp4i682bvk7363y4a2f74060vcm7ib2pzl2xq")) (patches (search-patches "qtscript-disable-tests.patch")))) (native-inputs `(("perl" ,perl) @@ -1094,7 +1094,7 @@ (define-public qtscript (define-public qtquickcontrols (package (inherit qtsvg) (name "qtquickcontrols") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1103,7 +1103,7 @@ (define-public qtquickcontrols version ".tar.xz")) (sha256 (base32 - "07xxhkfsljwdwlp9jfp88pwkrig02y2pnwhdsaz8mkcackwfq2az")))) + "09p2q3max4xrlw5svbhn11y9cgrvcjsj88xw4c0kq91cgnyyw3ih")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1118,7 +1118,7 @@ (define-public qtquickcontrols (define-public qtquickcontrols2 (package (inherit qtsvg) (name "qtquickcontrols2") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1127,7 +1127,7 @@ (define-public qtquickcontrols2 version ".tar.xz")) (sha256 (base32 - "1ln83afxyp5dmvdnq6n7as82xrd5k3xvfx7b1jxnljivslyxsm9b")))) + "0hq888qq8q7dglpyzif64pplqjxfrqjpkvbcx0ycq35darls5ai1")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1143,7 +1143,7 @@ (define-public qtquickcontrols2 (define-public qtgraphicaleffects (package (inherit qtsvg) (name "qtgraphicaleffects") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1152,7 +1152,7 @@ (define-public qtgraphicaleffects version ".tar.xz")) (sha256 (base32 - "0xpvigfiqfqvf05ywj8x69y57rp8dwq2hs1kpxlxs15pniz4wn8l")))) + "1nghl39sqsjamjn6pfmxmgga6z9vwzv2zbgc92amrfxxr2dh42vr")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1196,7 +1196,7 @@ (define-public qtdeclarative-render2d (define-public qtgamepad (package (inherit qtsvg) (name "qtgamepad") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1205,7 +1205,7 @@ (define-public qtgamepad version ".tar.xz")) (sha256 (base32 - "0lm5v43psf7r8zc79dcjdmmdnz4jm30ylgkvsyv8k88mj06yklbn")))) + "14vari5cq10a0z02559l2m1v78g7ygnyqf1ilkmy2f0kr36wm7y6")))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config))) @@ -1226,7 +1226,7 @@ (define-public qtgamepad (define-public qtscxml (package (inherit qtsvg) (name "qtscxml") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1235,7 +1235,7 @@ (define-public qtscxml version ".tar.xz")) (sha256 (base32 - "0pdimqwdrj8hckm81lwy1z58ji4bdv0bzgv336m0a8v3pj914awx")) + "06x8hs3p7bfgnl6b2fjld4s41acw1rbnxbcgkprgw2fxxnl1zxfq")) (modules '((guix build utils))) (snippet '(begin @@ -1256,7 +1256,7 @@ (define-public qtscxml (define-public qtpurchasing (package (inherit qtsvg) (name "qtpurchasing") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1265,7 +1265,7 @@ (define-public qtpurchasing version ".tar.xz")) (sha256 (base32 - "04f28y7qcr4kd0pw26mm515qj7haxr0i8lijn1q47wkikxyhawca")))) + "00yfdd00frgf7fs9s0vyn1c6c4abxgld5rfgkzms3y6n6lcphs0j")))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))) @@ -1276,7 +1276,7 @@ (define-public qtpurchasing (define-public qtcanvas3d (package (inherit qtsvg) (name "qtcanvas3d") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1285,7 +1285,7 @@ (define-public qtcanvas3d version ".tar.xz")) (sha256 (base32 - "1siyzgm1mjx90rwyzzq9vw2s2xzyf6n7q0vn8gw7mdim5indda44")) + "1g0a606fgal4x17ly0qrj05pb0k8riwh7nj4g3jip05g8iwb2f2y")) (modules '((guix build utils))) (snippet '(delete-file-recursively "examples/canvas3d/3rdparty")))) @@ -1313,7 +1313,7 @@ (define-public qtcanvas3d (define-public qtcharts (package (inherit qtsvg) (name "qtcharts") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1322,7 +1322,7 @@ (define-public qtcharts version ".tar.xz")) (sha256 (base32 - "193a3imkgryw42s0gbwaj9gpqd673h3jrg86jvmy33l2fc5gfyjf")))) + "1sb99ncmh84bz0xzq55chgic7jk61awnfvi7ld4gq5ap3nl865zc")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1340,7 +1340,7 @@ (define-public qtcharts (define-public qtdatavis3d (package (inherit qtsvg) (name "qtdatavis3d") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1349,7 +1349,7 @@ (define-public qtdatavis3d version ".tar.xz")) (sha256 (base32 - "1cmjjbbmdqdix1f8b7qyc2vwhj9pvchc8r4lp65qw11dhycmdbh6")))) + "0s636ix44akrjx47gv9qj2ac02q8clnwj3acfr28p6pagm46k7vh")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:tests? _ #f) #f))) ; TODO: Enable the tests @@ -1367,7 +1367,7 @@ (define-public qtdatavis3d (define-public qtnetworkauth (package (inherit qtsvg) (name "qtnetworkauth") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1376,7 +1376,7 @@ (define-public qtnetworkauth version ".tar.xz")) (sha256 (base32 - "16i33m8x5yii22ciq97bpfmnw0lwhvgv84i2az30a1ikm9dg00x0")))) + "0fdz5q47xbiij3mi5lzhvxpq4jp9fm929v9kyvcyadz86mp3f8nz")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) ((#:phases phases) @@ -1396,7 +1396,7 @@ (define-public qtnetworkauth (define-public qtremoteobjects (package (inherit qtsvg) (name "qtremoteobjects") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1405,7 +1405,7 @@ (define-public qtremoteobjects version ".tar.xz")) (sha256 (base32 - "1ylphdwis34y4pm9xiwh2xqfd0hh2gp8kkawlps2q5mh2bm11376")))) + "0z6qd381r6a7gdrsknlkkbhq9mmdqi040kfrvgm6mfa69336f4dk")))) (inputs `(("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative))) @@ -1418,7 +1418,7 @@ (define-public qtremoteobjects (define-public qtspeech (package (inherit qtsvg) (name "qtspeech") - (version "5.9.2") + (version "5.9.3") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -1427,7 +1427,7 @@ (define-public qtspeech version ".tar.xz")) (sha256 (base32 - "0cq33dffi7q7dnvzhdivky5prakb8xnwap0b76fwgirhbbn88ypg")))) + "1c4rpf3by620fx8lrvmc38r60cikqczqh2rfcm7ixz3x8cj60lh1")))) (inputs `(("qtbase" ,qtbase))) (native-inputs -- cgit v1.2.3 From 9c3c2caa6cb328610c99dd0699638a3ba41f7a64 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Fri, 24 Nov 2017 15:07:07 +0100 Subject: gnu: parallel: Update to 20171122. * gnu/packages/parallel.scm (parallel): Update to 20171122. --- gnu/packages/parallel.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index bbed52544e..0e7b78fb78 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Ben Woodcroft +;;; Copyright © 2017 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,7 +46,7 @@ (define-module (gnu packages parallel) (define-public parallel (package (name "parallel") - (version "20171022") + (version "20171122") (source (origin (method url-fetch) @@ -53,7 +54,7 @@ (define-public parallel version ".tar.bz2")) (sha256 (base32 - "18pq10npl7g764ww7cy9r5n5s3kiy984jclf932qfgndcxsbpqpp")))) + "19l2r8zzh8jyb76r3ksfq9y3r8fg07xw31h0dq1d7jpf73fnmd21")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From b5bfa4773d50b12ec7e71e89892474e7f3c679ba Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 24 Nov 2017 18:16:43 +0100 Subject: ui: 'known-variable-definition' protects against module cycles. Fixes . Reported by Marius Bakke . * guix/ui.scm (known-variable-definition): Add 'visited' set to guard against cycles on 2.0. --- guix/ui.scm | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 0fc5ab63ad..ae727eb837 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -28,6 +28,7 @@ (define-module (guix ui) #:use-module (guix i18n) #:use-module (guix gexp) + #:use-module (guix sets) #:use-module (guix utils) #:use-module (guix store) #:use-module (guix config) @@ -253,8 +254,9 @@ (define (modulelist (lambda (name module) - module) - (module-submodules head))))) - (match (module-local-variable head variable) - (#f (loop next suggestions)) - (_ - (match (module-name head) - (('gnu _ ...) head) ;must be that one - (_ (loop next (cons head suggestions))))))))))) + (if (set-contains? visited head) + (loop tail suggestions visited) + (let ((visited (set-insert head visited)) + (next (append tail + (hash-map->list (lambda (name module) + module) + (module-submodules head))))) + (match (module-local-variable head variable) + (#f (loop next suggestions visited)) + (_ + (match (module-name head) + (('gnu _ ...) head) ;must be that one + (_ (loop next (cons head suggestions) visited))))))))))) (define* (display-hint message #:optional (port (current-error-port))) "Display MESSAGE, a l10n message possibly containing Texinfo markup, to -- cgit v1.2.3 From f7f8930b37e1c51af99e363421eb54f2dab224f8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 24 Nov 2017 18:22:42 +0100 Subject: gnu: coq-interval: Fix source URL for 3.3.0. This is a followup to 6efc99967800183daa74ba2ebff6185dfcf1b33d. Fixes . Reported by Efraim Flashner . * gnu/packages/ocaml.scm (coq-interval): Adjust URL. --- gnu/packages/ocaml.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index fbcb1def4d..24787fbde7 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -3964,7 +3964,7 @@ (define-public coq-interval (source (origin (method url-fetch) (uri (string-append "https://gforge.inria.fr/frs/download.php/" - "file/36538/interval-" version ".tar.gz")) + "file/37077/interval-" version ".tar.gz")) (sha256 (base32 "08fdcf3hbwqphglvwprvqzgkg0qbimpyhnqsgv3gac4y1ap0f903")))) -- cgit v1.2.3 From 026f6a42b680207a59beadf0b0b9cc1753f55605 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 24 Nov 2017 18:44:08 +0100 Subject: gnu-maintenance: Relax recursion cutoff in 'latest-ftp-release'. Fixes . Reported by Hartmut Goebel . * guix/gnu-maintenance.scm (latest-ftp-release)[contains-digit?]: Remove. Relax test as to whether to recurse into subdirectories. --- guix/gnu-maintenance.scm | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 0de36f2f71..00e80bc79f 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -335,9 +335,6 @@ (define (latest-release a b) (if (version>? (upstream-source-version a) (upstream-source-version b)) a b)) - (define contains-digit? - (cut string-any char-set:digit <>)) - (define patch-directory-name? ;; Return #t for patch directory names such as 'bash-4.2-patches'. (cut string-suffix? "patches" <>)) @@ -361,8 +358,7 @@ (define (file->source directory file) (result #f)) (let* ((entries (ftp-list conn directory)) - ;; Filter out sub-directories that do not contain digits---e.g., - ;; /gnuzilla/lang and /gnupg/patches. Filter out "w32" + ;; Filter out things like /gnupg/patches. Filter out "w32" ;; directories as found on ftp.gnutls.org. (subdirs (filter-map (match-lambda (((? patch-directory-name? dir) @@ -370,8 +366,8 @@ (define (file->source directory file) #f) (("w32" 'directory . _) #f) - (((? contains-digit? dir) 'directory . _) - (and (keep-file? dir) dir)) + ((directory 'directory . _) + directory) (_ #f)) entries)) -- cgit v1.2.3 From 70c68ed5559c0bfa9a1e44a4376e9d28d5b37d81 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Jun 2017 01:12:23 +0200 Subject: gnu: system->defconfig: Fix typo. * gnu/packages/linux.scm (system->defconfig): Fix typo. --- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index af9a8604af..55ff698d01 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -131,7 +131,7 @@ (define-public (system->linux-architecture arch) (define-public (system->defconfig system) "Some systems (notably powerpc-linux) require a special target for kernel -defconfig. Return the appropiate make target if applicable, otherwise return +defconfig. Return the appropriate make target if applicable, otherwise return \"defconfig\"." (cond ((string-prefix? "powerpc-" system) "pmac32_defconfig") ((string-prefix? "powerpc64le-" system) "ppc64_defconfig") -- cgit v1.2.3 From 68b49109a009317012927872e98f82fbe994d62f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 23 Nov 2017 18:43:17 +0100 Subject: doc: Fix typo. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Bootloader Configuration): Fix ‘choosen’ typo. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index ab18287d20..f8188fbb16 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -18021,7 +18021,7 @@ manual}). @item @code{serial-unit} (default: @code{#f}) The serial unit used by the bootloader, as an integer from 0 to 3. -For GRUB it is choosen at run-time; currently GRUB chooses 0, which +For GRUB, it is chosen at run-time; currently GRUB chooses 0, which corresponds to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual}). @item @code{serial-speed} (default: @code{#f}) -- cgit v1.2.3 From 77e3ce3e909ef9b94e754c86efdf09b638c7b814 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 23 Nov 2017 18:53:00 +0100 Subject: gnu: emacs-org-contrib: Fix typo in description. * gnu/packages/emacs.scm (emacs-org-contrib)[description]: Fix typo. --- gnu/packages/emacs.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 45b9329097..61915cabff 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2017 Oleg Pykhalov ;;; Copyright © 2017 Mekeor Melire ;;; Copyright © 2017 Peter Mikkelsen +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -4255,7 +4256,7 @@ (define-public emacs-org-contrib (description "Org is an Emacs mode for keeping notes, maintaining TODO lists, and project planning with a fast and effective plain-text system. -This package is equivilent to org-plus-contrib, but only includes additional +This package is equivalent to org-plus-contrib, but only includes additional files that you would find in @file{contrib/} from the git repository."))) (define-public emacs-flx -- cgit v1.2.3 From cc558bde526755dcbcabeadbc2c31b6a60bfecd5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 24 Nov 2017 18:22:59 +0100 Subject: gnu: knot: Update to 2.6.3. * gnu/packages/dns.scm (knot): Update to 2.6.3. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index fc6b3ff0e3..e0197fca32 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -483,14 +483,14 @@ (define-public yadifa (define-public knot (package (name "knot") - (version "2.6.2") + (version "2.6.3") (source (origin (method url-fetch) (uri (string-append "https://secure.nic.cz/files/knot-dns/" name "-" version ".tar.xz")) (sha256 (base32 - "1samin2l28kvchplvp5iksi5513xlm1giwf0a1kp80j3zrra1m29")) + "143pk2124liiq1r4ja1s579nbv3hm2scbbfbfclc2pw60r07mcig")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From 01e9bc463fb30d606c0519ebe8b43e8a8ceda406 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 24 Nov 2017 18:57:24 +0100 Subject: gnu: python-pytz, python-pytzdata: Update to 2017.3.x. * gnu/packages/time.scm (python-pytz): Update to 2017.3. (python-pytzdata): Update to 2017.3.1. --- gnu/packages/time.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index 52d47a1a45..20c27e420c 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016 Marius Bakke -;;; Copyright © 2016 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Ben Woodcroft ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Julien Lepiller @@ -63,14 +63,14 @@ (define-public time (define-public python-pytzdata (package (name "python-pytzdata") - (version "2017.2") + (version "2017.3.1") (source (origin (method url-fetch) (uri (pypi-uri "pytzdata" version)) (sha256 (base32 - "1c1az8spm2d3km6qhjy69y4dlj71p6984l48mizr83nh4f0ipld4")))) + "1wi3jh39zsa9iiyyhynhj7w5b2p9wdyd0ppavpsrmf3wxvr7cwz8")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest) @@ -87,14 +87,14 @@ (define-public python2-tzdata (define-public python-pytz (package (name "python-pytz") - (version "2017.2") + (version "2017.3") (source (origin (method url-fetch) (uri (pypi-uri "pytz" version ".zip")) (sha256 (base32 - "12cmd3j46d2gcw08bspvp6s9icfcvx88zjz52n1bli9dyvl5dh7m")))) + "1dw5l527vcafvdqq4wadwl7ikhb2sssz0v0cssibh8890kyczr7s")))) (build-system python-build-system) (native-inputs `(("unzip" ,unzip))) -- cgit v1.2.3 From dd0134fcb707452e1c343d66af6088c0be38a285 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 22 Nov 2017 13:47:33 -0500 Subject: gnu: gcl: Update snapshot. * gnu/packages/lisp.scm (gcl): Update to 2.6.12-1.5956140. [arguments]: Remove CFLAGS from and add GCL_CC and CC to make-flags; adjust pre-conf phase. This update includes small upstream bug fixes and optimizations. --- gnu/packages/lisp.scm | 163 ++++++++++++++++++++++++++++---------------------- 1 file changed, 92 insertions(+), 71 deletions(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index e5b8ad3563..bb6517f47f 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -76,81 +76,102 @@ (define (asdf-substitutions lisp) ,lisp)))) (define-public gcl - (package - (name "gcl") - (version "2.6.12") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/" name "/" name "-" version ".tar.gz")) - (sha256 - (base32 "1s4hs2qbjqmn9h88l4xvsifq5c3dlc5s74lyb61rdi5grhdlkf4f")))) - (build-system gnu-build-system) - (arguments - `(#:parallel-build? #f ; The build system seems not to be thread safe. - #:tests? #f ; There does not seem to be make check or anything similar. - #:configure-flags '("--enable-ansi") ; required for use by the maxima package - #:make-flags (list - "CFLAGS=-fgnu89-inline" ; removes inline function warnings - (string-append "GCC=" (assoc-ref %build-inputs "gcc") - "/bin/gcc")) - #:phases (modify-phases %standard-phases - (add-before 'configure 'pre-conf - (lambda _ - (substitute* - (append - '("pcl/impl/kcl/makefile.akcl" - "add-defs" - "unixport/makefile.dos" - "add-defs.bat" - "gcl-tk/makefile.prev" - "add-defs1") - (find-files "h" "\\.defs")) - (("SHELL=/bin/bash") - (string-append "SHELL=" (which "bash"))) - (("SHELL=/bin/sh") - (string-append "SHELL=" (which "sh")))) - (substitute* "h/linux.defs" - (("#CC") "CC") - (("-fwritable-strings") "") - (("-Werror") "")) - #t)) - (add-after 'install 'wrap - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((gcl (assoc-ref outputs "out")) - (input-path (lambda (lib path) - (string-append - (assoc-ref inputs lib) path))) - (binaries '("binutils"))) - ;; GCC and the GNU binutils are necessary for GCL to be - ;; able to compile Lisp functions and programs (this is - ;; a standard feature in Common Lisp). While the - ;; the location of GCC is specified in the make-flags, - ;; the GNU binutils must be available in GCL's $PATH. - (wrap-program (string-append gcl "/bin/gcl") - `("PATH" prefix ,(map (lambda (binary) - (input-path binary "/bin")) - binaries)))) - #t)) - ;; drop strip phase to make maxima build, see - ;; https://www.ma.utexas.edu/pipermail/maxima/2008/009769.html - (delete 'strip)))) - (inputs - `(("gmp" ,gmp) - ("readline" ,readline))) - (native-inputs - `(("gcc" ,gcc-4.9) - ("m4" ,m4) - ("texinfo" ,texinfo) - ("texlive" ,texlive))) - (home-page "https://www.gnu.org/software/gcl/") - (synopsis "A Common Lisp implementation") - (description "GCL is an implementation of the Common Lisp language. It + (let ((commit "5956140b1083e2302a59d7ce2054b0b7c2cbb417") + (revision "1")) ;Guix package revision + (package + (name "gcl") + (version (string-append "2.6.12-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/r/gcl.git") + (commit commit))) + (file-name (string-append "gcl-" version "-checkout")) + (sha256 + (base32 "0mwclf2879mh3d9xqkqhghf58lwy7srsnsq9x0f1cc6j302sy4hb")))) + (build-system gnu-build-system) + (arguments + `(#:parallel-build? #f ; The build system seems not to be thread safe. + #:tests? #f ; There does not seem to be make check or anything similar. + #:configure-flags '("--enable-ansi") ; required for use by the maxima package + #:make-flags (list + (string-append "GCL_CC=" (assoc-ref %build-inputs "gcc") + "/bin/gcc") + (string-append "CC=" (assoc-ref %build-inputs "gcc") + "/bin/gcc")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'pre-conf + (lambda* (#:key inputs #:allow-other-keys) + (chdir "gcl") + (substitute* + (append + '("pcl/impl/kcl/makefile.akcl" + "add-defs" + "unixport/makefile.dos" + "add-defs.bat" + "gcl-tk/makefile.prev" + "add-defs1") + (find-files "h" "\\.defs")) + (("SHELL=/bin/bash") + (string-append "SHELL=" (which "bash"))) + (("SHELL=/bin/sh") + (string-append "SHELL=" (which "sh")))) + (substitute* "h/linux.defs" + (("#CC") "CC") + (("-fwritable-strings") "") + (("-Werror") "")) + (substitute* "lsp/gcl_top.lsp" + (("\"cc\"") + (string-append "\"" (assoc-ref %build-inputs "gcc") + "/bin/gcc\"")) + (("\\(or \\(get-path \\*cc\\*\\) \\*cc\\*\\)") "*cc*") + (("\"ld\"") + (string-append "\"" (assoc-ref %build-inputs "binutils") + "/bin/ld\"")) + (("\\(or \\(get-path \\*ld\\*\\) \\*ld\\*\\)") "*ld*") + (("\\(get-path \"objdump --source \"\\)") + (string-append "\"" (assoc-ref %build-inputs "binutils") + "/bin/objdump --source \""))) + #t)) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((gcl (assoc-ref outputs "out")) + (input-path (lambda (lib path) + (string-append + (assoc-ref inputs lib) path))) + (binaries '("binutils"))) + ;; GCC and the GNU binutils are necessary for GCL to be + ;; able to compile Lisp functions and programs (this is + ;; a standard feature in Common Lisp). While the + ;; the location of GCC is specified in the make-flags, + ;; the GNU binutils must be available in GCL's $PATH. + (wrap-program (string-append gcl "/bin/gcl") + `("PATH" prefix ,(map (lambda (binary) + (input-path binary "/bin")) + binaries)))) + #t)) + ;; drop strip phase to make maxima build, see + ;; https://www.ma.utexas.edu/pipermail/maxima/2008/009769.html + (delete 'strip)))) + (inputs + `(("gmp" ,gmp) + ("readline" ,readline))) + (native-inputs + `(("gcc" ,gcc-4.9) + ("m4" ,m4) + ("texinfo" ,texinfo) + ("texlive" ,texlive))) + (home-page "https://www.gnu.org/software/gcl/") + (synopsis "A Common Lisp implementation") + (description "GCL is an implementation of the Common Lisp language. It features the ability to compile to native object code and to load native object code modules directly into its lisp core. It also features a stratified garbage collection strategy, a source-level debugger and a built-in interface to the Tk widget system.") - (license license:lgpl2.0+))) + (license license:lgpl2.0+)))) (define-public ecl (package -- cgit v1.2.3 From 202e235ebe8b121115a4561bbdc80b98650435cf Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 24 Nov 2017 15:03:37 +0100 Subject: gnu: php: Update to 7.1.12. * gnu/packages/php.scm (php): Update to 7.1.12. --- gnu/packages/php.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index 03e9d4bd94..7c45269bb1 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -52,7 +52,7 @@ (define-module (gnu packages php) (define-public php (package (name "php") - (version "7.1.11") + (version "7.1.12") (home-page "https://secure.php.net/") (source (origin (method url-fetch) @@ -60,7 +60,7 @@ (define-public php name "-" version ".tar.xz")) (sha256 (base32 - "0gl9hk4888fjirrd4s73mdabhiqam0c45406a7fgw6njszlr6h07")) + "1czflr5wb2f7pmgdc1vxy1kcln5rlkkly2z3skrb2wa5fx88h4d0")) (modules '((guix build utils))) (snippet '(with-directory-excursion "ext" @@ -213,6 +213,9 @@ (define-public php "ext/gd/tests/bug73213.phpt" ;; Test expects generic "gd warning" but gets the actual function name. "ext/gd/tests/createfromwbmp2_extern.phpt" + ;; This bug should have been fixed in gd 2.2.2. + ;; Is it a regression? + "ext/gd/tests/bug65148.phpt" ;; TODO: Enable these when libgd is built with xpm support. "ext/gd/tests/xpm2gd.phpt" "ext/gd/tests/xpm2jpg.phpt" -- cgit v1.2.3 From b2383e55dced1dad137690b8a353e104428c831d Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sat, 18 Nov 2017 02:18:10 +0800 Subject: gnu: java-fasterxml-jackson-annotations: Update to 2.9.2. * gnu/packages/java.scm (java-fasterxml-jackson-annotations): Update to 2.9.2. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index bd6c003655..1045c65f6e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2017 Thomas Danckaert +;;; Copyright © 2016, 2017 Alex Vong ;;; ;;; This file is part of GNU Guix. ;;; @@ -6061,7 +6062,7 @@ (define-public java-ops4j-pax-exam-core-junit (define-public java-fasterxml-jackson-annotations (package (name "java-fasterxml-jackson-annotations") - (version "2.9.1") + (version "2.9.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/FasterXML/" @@ -6069,7 +6070,7 @@ (define-public java-fasterxml-jackson-annotations "jackson-annotations-" version ".tar.gz")) (sha256 (base32 - "005ksgqx2ds3zdmlvbcmmz82y28b1mx0i9bpvprim1jaddbba0bd")))) + "0b4wdxjxfbl3gkilylfdbl7fzimfpyih676jiwdf19i4056j8lqw")))) (build-system ant-build-system) (arguments `(#:jar-name "jackson-annotations.jar" -- cgit v1.2.3 From bd614de7b89966162ebc02f29fb065079bdc6c37 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sat, 18 Nov 2017 02:20:55 +0800 Subject: gnu: java-fasterxml-jackson-core: Update to 2.9.2. * gnu/packages/java.scm (java-fasterxml-jackson-core): Update to 2.9.2. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 1045c65f6e..62165d8428 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6088,7 +6088,7 @@ (define-public java-fasterxml-jackson-annotations (define-public java-fasterxml-jackson-core (package (name "java-fasterxml-jackson-core") - (version "2.9.1") + (version "2.9.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/FasterXML/" @@ -6096,7 +6096,7 @@ (define-public java-fasterxml-jackson-core "jackson-core-" version ".tar.gz")) (sha256 (base32 - "1sdfp74zvlh4xr5h5bj87yjlp6kny3i8ai9m0q3xs7f8hvmxpx09")))) + "0q2d6qnylyxj5jh0sam1b095b5486f7ipzhxgwcgbm254ls7fqc1")))) (build-system ant-build-system) (arguments `(#:jar-name "jackson-core.jar" -- cgit v1.2.3 From 37cf0712da93f1d67506061819bb9ca8b80af168 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sat, 18 Nov 2017 02:21:33 +0800 Subject: gnu: java-fasterxml-jackson-databind: Update to 2.9.2. * gnu/packages/java.scm (java-fasterxml-jackson-databind): Update to 2.9.2. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 62165d8428..a3021e81bf 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6145,7 +6145,7 @@ (define-public java-fasterxml-jackson-core (define-public java-fasterxml-jackson-databind (package (name "java-fasterxml-jackson-databind") - (version "2.9.1") + (version "2.9.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/FasterXML/" @@ -6153,7 +6153,7 @@ (define-public java-fasterxml-jackson-databind "jackson-databind-" version ".tar.gz")) (sha256 (base32 - "02xrbj6g7pzybq8q33xmpf7cxfapk6z6lgxvig7d38fijz400lji")))) + "1d5ns8ypqhdy8d94i8q560ip9kka6q8lhnk6q7nfh2g9mr22cc4w")))) (build-system ant-build-system) (arguments `(#:jar-name "jackson-databind.jar" -- cgit v1.2.3 From 7cee3cb2c4e9586d4c07d3d8d63519b4445b3f21 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sat, 18 Nov 2017 02:22:39 +0800 Subject: gnu: java-fasterxml-jackson-modules-base-jaxb: Update to 2.9.2. * gnu/packages/java.scm (java-fasterxml-jackson-modules-base-jaxb): Update to 2.9.2. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a3021e81bf..759623468e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6188,7 +6188,7 @@ (define-public java-fasterxml-jackson-databind (define-public java-fasterxml-jackson-modules-base-jaxb (package (name "java-fasterxml-jackson-modules-base-jaxb") - (version "2.9.1") + (version "2.9.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/FasterXML/" @@ -6196,7 +6196,7 @@ (define-public java-fasterxml-jackson-modules-base-jaxb "jackson-modules-base-" version ".tar.gz")) (sha256 (base32 - "0bj2pzvycnj3ysbcfa6xl38dmvnp01mnjfcb9jyhv503fch2iv44")))) + "0kc19n5a188g4vpyay44xfb7qcabcbfnwzhx1g84lg0sac8lf0ng")))) (build-system ant-build-system) (arguments `(#:jar-name "jackson-modules-base-jaxb.jar" -- cgit v1.2.3 From abe5347dd6e4036380bd9ab3679e6834f67db074 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sat, 18 Nov 2017 02:23:34 +0800 Subject: gnu: java-fasterxml-jackson-dataformat-yaml: Update to 2.9.2. * gnu/packages/java.scm (java-fasterxml-jackson-dataformat-yaml): Update to 2.9.2. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 759623468e..43d2840845 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6258,7 +6258,7 @@ (define-public java-snakeyaml (define-public java-fasterxml-jackson-dataformat-yaml (package (name "java-fasterxml-jackson-dataformat-yaml") - (version "2.9.1") + (version "2.9.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/FasterXML/" @@ -6266,7 +6266,7 @@ (define-public java-fasterxml-jackson-dataformat-yaml "jackson-dataformats-text-" version ".tar.gz")) (sha256 (base32 - "140fwcafv05zbh2ppa6z533dzmfcvzbdxf0dbpbyzqvd84v2vhl2")))) + "1x7c7v201jpb8ynjsmmq7jj7hyqzzp39jvpr053ggdndm022yzc7")))) (build-system ant-build-system) (arguments `(#:jar-name "jackson-dataformat-yaml.jar" -- cgit v1.2.3 From 8cc1fce1ba0cde80c924af6abbe49ce22fcc06d8 Mon Sep 17 00:00:00 2001 From: Alex Vong Date: Sat, 18 Nov 2017 02:24:11 +0800 Subject: gnu: java-fasterxml-jackson-dataformat-xml: Update to 2.9.2. * gnu/packages/java.scm (java-fasterxml-jackson-dataformat-xml): Update to 2.9.2. Signed-off-by: Julien Lepiller --- gnu/packages/java.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 43d2840845..f49e313959 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6367,7 +6367,7 @@ (define-public java-woodstox-core (define-public java-fasterxml-jackson-dataformat-xml (package (name "java-fasterxml-jackson-dataformat-xml") - (version "2.9.1") + (version "2.9.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/FasterXML/" @@ -6375,7 +6375,7 @@ (define-public java-fasterxml-jackson-dataformat-xml "jackson-dataformat-xml-" version ".tar.gz")) (sha256 (base32 - "0x3m9n4kwclcyvxhxjx654qpjza4crphml1q2392qpnbfydx6lnh")))) + "1j1qanvcdh6afagr67zqrlypjkf0n6wr1qzpbvkw79lii72j6pbr")))) (build-system ant-build-system) (arguments `(#:jar-name "jackson-dataformat-xml.jar" -- cgit v1.2.3 From 7a45268935f2319ae8349cafd858495dfc891a50 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Wed, 22 Nov 2017 09:10:24 +0300 Subject: gnu: Add emacs-highlight-stages. * gnu/packages/emacs.scm (emacs-highlight-stages): New variable. * gnu/packages/patches/emacs-highlight-stages-add-gexp.patch: New file. * gnu/local.mk (dist_patch_DATA): Add this. --- gnu/local.mk | 1 + gnu/packages/emacs.scm | 25 +++++++++++++++++++++ .../patches/emacs-highlight-stages-add-gexp.patch | 26 ++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 gnu/packages/patches/emacs-highlight-stages-add-gexp.patch diff --git a/gnu/local.mk b/gnu/local.mk index e348bf39f1..41e22f183c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -608,6 +608,7 @@ dist_patch_DATA = \ %D%/packages/patches/einstein-build.patch \ %D%/packages/patches/emacs-exec-path.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ + %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \ %D%/packages/patches/erlang-man-path.patch \ diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 61915cabff..f7a3ce5e6a 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4861,6 +4861,31 @@ (define-public emacs-highlight-sexp "This Emacs package highlights the s-exp at the current position.") (license license:gpl3+))) +(define-public emacs-highlight-stages + (let ((commit "29cbc5b78261916da042ddb107420083da49b271") + (revision "1")) + (package + (name "emacs-highlight-stages") + (version (string-append "1.1.0" "-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zk-phi/highlight-stages.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0")) + (patches + (search-patches "emacs-highlight-stages-add-gexp.patch")))) + (build-system emacs-build-system) + (home-page "https://github.com/wigust/highlight-stages") + (synopsis "Minor mode that highlights (quasi-quoted) expressions") + (description "@code{highlight-stages} provides an Emacs minor mode that +highlights quasi-quoted expressions.") + (license license:gpl3+)))) + (define-public emacspeak (package (name "emacspeak") diff --git a/gnu/packages/patches/emacs-highlight-stages-add-gexp.patch b/gnu/packages/patches/emacs-highlight-stages-add-gexp.patch new file mode 100644 index 0000000000..931355b4fe --- /dev/null +++ b/gnu/packages/patches/emacs-highlight-stages-add-gexp.patch @@ -0,0 +1,26 @@ +Copyright © 2017 Oleg Pykhalov +Copyright © 2017 Ludovic Courtès + +This patch adds highlighting for (guix) G-Expressions. + +diff --git a/highlight-stages.el b/highlight-stages.el +index 3094c3c..e11260e 100644 +--- a/highlight-stages.el ++++ b/highlight-stages.el +@@ -237,14 +237,14 @@ non-nil, (match-string 0) must be the expression matched." + + (defun highlight-stages-lisp-quote-matcher (&optional limit) + (when (highlight-stages--search-forward-regexp +- "\\(?:`\\|\\(#?'\\)\\)\\|([\s\t\n]*\\(?:backquote\\|\\(quote\\)\\)[\s\t\n]+" limit) ++ "\\(?:`\\|\\(#?'\\)\\)\\|([\s\t\n]*\\(?:backquote\\|\\(quote\\)\\)[\s\t\n]+\\|\\(?:#~\\)\\|([\s\t\n]*\\(?:gexp\\)[\s\t\n]+" limit) + (prog1 (if (or (match-beginning 1) (match-beginning 2)) 'real t) + (set-match-data + (list (point) + (progn (ignore-errors (forward-sexp 1)) (point))))))) + + (defun highlight-stages-lisp-escape-matcher (&optional limit) +- (when (highlight-stages--search-forward-regexp ",@?\\|([\s\t\n]*\\\\,@?+[\s\t\n]+" limit) ++ (when (highlight-stages--search-forward-regexp ",@?\\|([\s\t\n]*\\\\,@?+[\s\t\n]+\\|\\(unquote\\)\\|\\(unquote-splicing\\)\\|\\(ungexp-native\\)\\|\\(ungexp-splicing\\)\\|\\(ungexp-native-splicing\\)\\|\\(ungexp\\)\\|#\\$" limit) + (set-match-data + (list (point) + (progn (ignore-errors (forward-sexp 1)) (point)))) -- cgit v1.2.3 From 17dc2a0997f1ed416b56122eb56d86fd65795436 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Fri, 6 Oct 2017 07:39:35 +0100 Subject: gnu: django: Fix building python-django-allauth. * gnu/packages/django.scm (python-django-allauth)[arguments]: Modify the standard phases to skip a test, and run the tests using django-admin with the settings configured. --- gnu/packages/django.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index bbf231ab53..7f39817332 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -208,6 +208,26 @@ (define-public python-django-allauth (base32 "1fslqc5qqb0b66yscvkyjwfv8cnbfx5nlkpnwimyb3pf1nc1w7r3")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; TODO: Tagging the tests requiring the web could be done upstream. + (add-before 'check 'skip-test-requiring-network-access + (lambda _ + (substitute* "allauth/socialaccount/providers/openid/tests.py" + (("def test_login") + "from django.test import tag + @tag('requires-web') + def test_login")))) + (replace 'check + (lambda _ + (setenv "DJANGO_SETTINGS_MODULE" "test_settings") + (zero? (system* + "django-admin" + "test" + "allauth" + "--verbosity=2" + "--exclude-tag=requires-web"))))))) (propagated-inputs `(("python-openid" ,python-openid) ("python-requests" ,python-requests) -- cgit v1.2.3 From ea3b9f7b737de2410be7c2facd3cf30a13e40f34 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 8 Oct 2017 16:39:19 +0100 Subject: gnu: mail: Remove python-django-mailman3. This package fails to build, as django-mailman3 currently only works with Python 2. * gnu/packages/mail.scm (python-django-mailman3): Removed variable. (python2-django-mailman3): Inline the use of python-django-mailman3, and remove the use of package-with-python2. --- gnu/packages/mail.scm | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 38140d6e65..a8957e82ab 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -2108,9 +2108,9 @@ (define-public mlmmj @end enumerate\n") (license license:expat))) -(define-public python-django-mailman3 +(define-public python2-django-mailman3 (package - (name "python-django-mailman3") + (name "python2-django-mailman3") (version "1.0.1") (source (origin @@ -2120,16 +2120,28 @@ (define-public python-django-mailman3 (base32 "1adxyh8knw9knjlh73xq0jpn5adml0ck4alsv0swakm95wfyx46z")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? + (system* + "django-admin" + "test" + "--settings=django_mailman3.tests.settings_test" + "django_mailman3"))))) + #:python ,python-2)) (inputs - `(("python-django" ,python-django))) + `(("python2-django" ,python2-django))) (propagated-inputs - `(("python-requests" ,python-requests) - ("python-requests-oauthlib" ,python-requests-oauthlib) - ("python-openid" ,python-openid) - ("python-mailmanclient" ,python-mailmanclient) - ("python-django-allauth" ,python-django-allauth) - ("python-django-gravatar2" ,python-django-gravatar2) - ("python-pytz" ,python-pytz))) + `(("python2-requests" ,python2-requests) + ("python2-requests-oauthlib" ,python2-requests-oauthlib) + ("python2-openid" ,python2-openid) + ("python2-mailmanclient" ,python2-mailmanclient) + ("python2-django-allauth" ,python2-django-allauth) + ("python2-django-gravatar2" ,python2-django-gravatar2) + ("python2-pytz" ,python2-pytz))) (home-page "https://gitlab.com/mailman/django-mailman3") (synopsis "Django library for Mailman UIs") (description @@ -2137,15 +2149,6 @@ (define-public python-django-mailman3 interacting with Mailman.") (license gpl3+))) -(define-public python2-django-mailman3 - (let ((base (package-with-python2 - python-django-mailman3))) - (package - (inherit base) - (propagated-inputs - `(("python2-openid" ,python2-openid) - ,@(package-propagated-inputs base)))))) - (define-public postorius (package (name "postorius") -- cgit v1.2.3 From e9291eaa427066e5c8e531acc79f34d93dc845f0 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Fri, 24 Nov 2017 11:51:19 +0100 Subject: gnu: Add guile-dsv. * gnu/packages/guile.scm (guile-dsv): New variable. --- gnu/packages/guile.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index abcefd32ed..4d7cf14987 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1492,6 +1492,55 @@ (define-public guile-dbd-sqlite3 SQL databases. This package implements the interface for SQLite.") (license license:gpl2+))) +(define-public guile-dsv + (package + (name "guile-dsv") + (version "0.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/artyom-poptsov/guile-dsv") + (commit "7d2e06a15e1d8478cd0e8fb4c79aec519dc4cfd0"))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0ywb0hdbs4lcjag8b3id43fpyn5s6gscg7dk0n9ryigyvch80wxj")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (inputs `(("guile" ,guile-2.2))) + (propagated-inputs `(("guile-lib" ,guile-lib))) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'set-guilesitedir + (lambda _ + (substitute* "Makefile.in" + (("^guilesitedir =.*$") + "guilesitedir = \ +$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) + (substitute* "modules/Makefile.in" + (("^guilesitedir =.*$") + "guilesitedir = \ +$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) + (substitute* "modules/dsv/Makefile.in" + (("^guilesitedir =.*$") + "guilesitedir = \ +$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) + #t)) + (add-after 'unpack 'autoreconf + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (home-page "https://github.com/artyom-poptsov/guile-dsv") + (synopsis "DSV module for Guile") + (description + "Guile-DSV is a GNU Guile module for working with the +delimiter-separated values (DSV) data format. Guile-DSV supports the +Unix-style DSV format and RFC 4180 format.") + (license license:gpl3+))) + (define-public guile-xosd (package (name "guile-xosd") -- cgit v1.2.3 From 749164cb71f6156adb5c99df360758dbb74efa2d Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 25 Nov 2017 02:44:17 -0500 Subject: gnu: linux-libre@4.4: Update to 4.4.102. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.102. --- 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 55ff698d01..e1e7f6142d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -389,8 +389,8 @@ (define-public linux-libre-4.9 #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.100" - "0lqb6bxpa3play8hz9k1d54xzlm8m58xh6rlfcvmwcs8qjkvpm6g" + (make-linux-libre "4.4.102" + "16jl383v71zxpgrab30z6m3jzcg42i2zwh9vfy8k5li0xnal4437" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From b2785c54f71033623fda665cab09575eeb30049a Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 25 Nov 2017 02:45:12 -0500 Subject: gnu: linux-libre@4.9: Update to 4.9.65. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.65. --- 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 e1e7f6142d..d8130af0a5 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -383,8 +383,8 @@ (define-public linux-libre #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.64" - "0mhzc8904cdnaxil8xlxmv3rd86lypi13ig9i9321jjbmv4cn849" + (make-linux-libre "4.9.65" + "12a03kf79xdzqnb1cv0fxdn2dasn68hici5pw3qgxdbb65p1kxq7" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From a93ac4cbdfe9af59b42e23cac811552f9b9e6f2b Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 25 Nov 2017 02:46:04 -0500 Subject: gnu: linux-libre: Update to 4.14.2. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.14.2. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d8130af0a5..a4ceede51c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -369,8 +369,8 @@ (define* (make-linux-libre version hash supported-systems (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) (define %linux-compatible-systems '("x86_64-linux" "i686-linux" "armhf-linux")) -(define %linux-libre-version "4.14.1") -(define %linux-libre-hash "1irfz3bdfvwa929hgv9v36wbzzji1dn4jb5wr26pbbh5hyhcvxiy") +(define %linux-libre-version "4.14.2") +(define %linux-libre-hash "10bbajas0xk4xvyvyx51dpc7xc5qjxz2nsf361gl1yfsrb6mbkhw") ;; linux-libre configuration for armhf-linux is derived from Debian armmp. It ;; supports qemu "virt" machine and possibly a large number of ARM boards. -- cgit v1.2.3 From 1e0ea1d8dfa0d17e4451f71f17d34541738ec0c6 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 25 Nov 2017 10:46:52 -0500 Subject: gnu: utox: Make CHECK a native-input. This is a followup to commit 907ab9e8cbab10413848dfc8982cfc851e03903f. * gnu/packages/messaging.scm (utox)[inputs]: Move CHECK ... [native-inputs]: ... here. --- gnu/packages/messaging.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 2d89fef9cf..d7853d2053 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -831,7 +831,6 @@ (define-public utox ("freetype" ,freetype) ("libsodium" ,libsodium) ("c-toxcore" ,c-toxcore) - ("check" ,check) ("gtk+" ,gtk+) ("libvpx" ,libvpx) ("libx11" ,libx11) @@ -839,7 +838,9 @@ (define-public utox ("libxrender" ,libxrender) ("openal" ,openal) ("v4l-utils" ,v4l-utils))) - (native-inputs `(("pkg-config" ,pkg-config))) + (native-inputs + `(("check" ,check) + ("pkg-config" ,pkg-config))) (synopsis "Lightweight Tox client") (description "Utox is a lightweight Tox client. Tox is a distributed and secure -- cgit v1.2.3 From 4aac8d059a2bec9f075ceea2a089ca029a71912c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 25 Nov 2017 17:22:32 +0100 Subject: syscalls: Adjust utmpx test. Fixes . Reported by Adonay Felipe Nogueira . * tests/syscalls.scm ("utmpx-entries"): Check the value of (utmpx-entries entry) only for INIT_PROCESS, LOGIN_PROCESS, and USER_PROCESS entries. --- tests/syscalls.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/syscalls.scm b/tests/syscalls.scm index 2b5c4c3be1..22ca2a05d4 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm @@ -525,7 +525,12 @@ (define perform-container-tests? (every (lambda (entry) (match (utmpx-user entry) ((? string?) - (or (eqv? (login-type BOOT_TIME) (utmpx-login-type entry)) + ;; Ensure we have a valid PID for those entries where it + ;; makes sense. + (or (not (memv (utmpx-login-type entry) + (list (login-type INIT_PROCESS) + (login-type LOGIN_PROCESS) + (login-type USER_PROCESS)))) (> (utmpx-pid entry) 0))) (#f ;might be DEAD_PROCESS #t))) -- cgit v1.2.3 From 33b02e07fa61573624f032461bac28fa20ba374c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 25 Nov 2017 19:46:15 +0200 Subject: gnu: efl: Update to 1.20.6. * gnu/packages/enlightenment.scm (efl): Update to 1.20.6. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 7f48740ea2..f968987e24 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -59,7 +59,7 @@ (define-module (gnu packages enlightenment) (define-public efl (package (name "efl") - (version "1.20.5") + (version "1.20.6") (source (origin (method url-fetch) (uri (string-append @@ -67,7 +67,7 @@ (define-public efl version ".tar.xz")) (sha256 (base32 - "07624c71l9d1jx1zvdhwkr1bgb1n7i0i5hyg6579zdwl3jw6jpns")))) + "1h9jkb1pkp2g6ld7ra9mxgblx3x5id4162ja697klx9mfjkpxijn")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 7989ba2af25bdb72c55d038dc08a4d8e5b66cbd2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 25 Nov 2017 19:46:41 +0200 Subject: gnu: enlightenment: Update to 0.22.1. * gnu/packages/enlightenment.scm (enlightenment): Update to 0.22.1. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index f968987e24..d1eeb35088 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -255,7 +255,7 @@ (define-public rage (define-public enlightenment (package (name "enlightenment") - (version "0.22.0") + (version "0.22.1") (source (origin (method url-fetch) (uri @@ -263,7 +263,7 @@ (define-public enlightenment name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0xmrvryr35idd7fyqgshfhvy2053bs3vwrxbx681pi6rgpdvjghv")))) + "1q57fz57d0b26z06m1wiq7c1sniwh885b0vs02mk4jgwva46nyr0")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-mount-eeze") -- cgit v1.2.3 From 68cb962a8d6d384a02e3e8eac23af2582d73c6e7 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 7 Nov 2017 08:08:21 +0100 Subject: gnu: guile-emacs: Resurrect, fixes #29186. * gnu/packages/patches/guile-emacs-fix-configure.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/emacs.scm (guile-emacs): Use it. Add workaround for src/deps dir creation. Fixes #29186. --- gnu/local.mk | 1 + gnu/packages/emacs.scm | 7 +- .../patches/guile-emacs-fix-configure.patch | 211 +++++++++++++++++++++ 3 files changed, 218 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/guile-emacs-fix-configure.patch diff --git a/gnu/local.mk b/gnu/local.mk index 41e22f183c..4a07da453b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -722,6 +722,7 @@ dist_patch_DATA = \ %D%/packages/patches/guile-present-coding.patch \ %D%/packages/patches/guile-relocatable.patch \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \ + %D%/packages/patches/guile-emacs-fix-configure.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-theme-paths.patch \ diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index f7a3ce5e6a..acd6ec30ad 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -277,6 +277,7 @@ (define-public guile-emacs (uri (git-reference (url "git://git.hcoop.net/git/bpt/emacs.git") (commit "41120e0f595b16387eebfbf731fff70481de1b4b"))) + (patches (search-patches "guile-emacs-fix-configure.patch")) (sha256 (base32 "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6")))) @@ -295,7 +296,11 @@ (define-public guile-emacs `(modify-phases ,phases (add-after 'unpack 'autogen (lambda _ - (zero? (system* "sh" "autogen.sh")))))))))) + (zero? (system* "sh" "autogen.sh")))) + ;; Build sometimes fails: deps/dispnew.d: No such file or directory + (add-before 'build 'make-deps-dir + (lambda _ + (zero? (system* "mkdir" "-p" "src/deps")))))))))) ;;; diff --git a/gnu/packages/patches/guile-emacs-fix-configure.patch b/gnu/packages/patches/guile-emacs-fix-configure.patch new file mode 100644 index 0000000000..b1f7146d21 --- /dev/null +++ b/gnu/packages/patches/guile-emacs-fix-configure.patch @@ -0,0 +1,211 @@ +Two patches here backporting fixes from Emacs master. + +Upstream status: emailed first patch to latest committer, Robin Templeton +, no response. + +From dfcb3b6ff318e47b84a28cfc43f50bec42fa3570 Mon Sep 17 00:00:00 2001 +From: Jan Nieuwenhuizen +Date: Tue, 7 Nov 2017 18:48:03 +0100 +Subject: [PATCH 1/2] backport: Port jpeg configuration to Solaris 10 with Sun + C. + +* configure.ac: Check for jpeglib 6b by trying to link it, instead +of relying on cpp magic that has problems in practice. Check for +both jpeglib.h and jerror.h features. Remove special case for +mingw32, which should no longer be needed (and if it were needed, +should now be addressable by hotwiring emacs_cv_jpeglib). +Fixes: bug#20332 + + From fdf532b9c915ad9ba72155646d29d0f530fd72ec Mon Sep 17 00:00:00 2001 + From: Paul Eggert + Date: Wed, 15 Apr 2015 18:30:01 -0700 + Subject: [PATCH] Port jpeg configuration to Solaris 10 with Sun C. + + * configure.ac: Check for jpeglib 6b by trying to link it, instead + of relying on cpp magic that has problems in practice. Check for + both jpeglib.h and jerror.h features. Remove special case for + mingw32, which should no longer be needed (and if it were needed, + should now be addressable by hotwiring emacs_cv_jpeglib). + Fixes: bug#20332 +--- + configure.ac | 72 ++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 34 insertions(+), 38 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 2445db4886..36fa8eb390 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3014,44 +3014,40 @@ AC_SUBST(LIBXPM) + ### mingw32 doesn't use -ljpeg, since it loads the library dynamically. + HAVE_JPEG=no + LIBJPEG= +-if test "${opsys}" = "mingw32"; then +- if test "${with_jpeg}" != "no"; then +- dnl Checking for jpeglib.h can lose because of a redefinition of +- dnl HAVE_STDLIB_H. +- AC_CHECK_HEADER(jerror.h, HAVE_JPEG=yes, HAVE_JPEG=no) +- fi +- AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl +- if test "${HAVE_JPEG}" = "yes"; then +- AC_DEFINE(HAVE_JPEG) +- AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])], +- [#include +- version=JPEG_LIB_VERSION +-], +- [AC_DEFINE(HAVE_JPEG)], +- [AC_MSG_WARN([libjpeg found, but not version 6b or later]) +- HAVE_JPEG=no]) +- fi +-elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then +- if test "${with_jpeg}" != "no"; then +- dnl Checking for jpeglib.h can lose because of a redefinition of +- dnl HAVE_STDLIB_H. +- AC_CHECK_HEADER(jerror.h, +- [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)]) +- fi +- +- AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl +- if test "${HAVE_JPEG}" = "yes"; then +- AC_DEFINE(HAVE_JPEG) +- AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])], +- [#include +- version=JPEG_LIB_VERSION +-], +- [AC_DEFINE(HAVE_JPEG)], +- [AC_MSG_WARN([libjpeg found, but not version 6b or later]) +- HAVE_JPEG=no]) +- fi +- if test "${HAVE_JPEG}" = "yes"; then +- LIBJPEG=-ljpeg ++if test "${with_jpeg}" != "no"; then ++ AC_CACHE_CHECK([for jpeglib 6b or later], ++ [emacs_cv_jpeglib], ++ [OLD_LIBS=$LIBS ++ for emacs_cv_jpeglib in yes -ljpeg no; do ++ case $emacs_cv_jpeglib in ++ yes) ;; ++ no) break;; ++ *) LIBS="$LIBS $emacs_cv_jpeglib";; ++ esac ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[#undef HAVE_STDLIB_H /* Avoid config.h/jpeglib.h collision. */ ++ #include /* jpeglib.h needs FILE and size_t. */ ++ #include ++ #include ++ char verify[JPEG_LIB_VERSION < 62 ? -1 : 1]; ++ struct jpeg_decompress_struct cinfo; ++ ]], ++ [[ ++ jpeg_create_decompress (&cinfo); ++ WARNMS (&cinfo, JWRN_JPEG_EOF); ++ jpeg_destroy_decompress (&cinfo); ++ ]])], ++ [emacs_link_ok=yes], ++ [emacs_link_ok=no]) ++ LIBS=$OLD_LIBS ++ test $emacs_link_ok = yes && break ++ done]) ++ if test "$emacs_cv_jpeglib" != no; then ++ HAVE_JPEG=yes ++ AC_DEFINE([HAVE_JPEG], 1, ++ [Define to 1 if you have the jpeg library (typically -ljpeg).]) ++ test "$emacs_cv_jpeglib" != yes && LIBJPEG=$emacs_cv_jpeglib + fi + fi + AC_SUBST(LIBJPEG) +-- +Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org +Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com + +From f761b92d520b72954be28ad66eb82d1a96c785fb Mon Sep 17 00:00:00 2001 +From: Jan Nieuwenhuizen +Date: Wed, 8 Nov 2017 14:05:43 +0100 +Subject: [PATCH 2/2] backport fix for #24065: calloc loop when compiling with + -O2. + +This patch fixes + + EMACSLOADPATH= '../src/bootstrap-emacs' -batch --no-site-file --no-site-lisp -l autoload \ + --eval "(setq generate-autoload-cookie \";;;###cal-autoload\")" \ + --eval "(setq generated-autoload-file (expand-file-name + (unmsys--file-name + \"../../git-checkout/lisp/calendar/cal-loaddefs.el\")))" \ + -f batch-update-autoloads ../../git-checkout/lisp/calendar + make[2]: *** [Makefile:466: ../../git-checkout/lisp/calendar/cal-loaddefs.el] Segmentation fault + +in gdb seen as + + in calloc (nmemb=, size=size@entry=1) at gmalloc.c:1510 + +I did not find malloc-fixing commits from emacs master to cleanly +cherry-pick, so this patch replaces the relevant part in configure +(emacs 53da55b8cc45e76b836ebaadd23f46e92d25abce). + +* configure.ac: backport system_malloc/hybrid_malloc detection. +--- + configure.ac | 29 ++++++++++++++++++++++++++++- + 1 file changed, 28 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 36fa8eb390..3cc1794f37 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1966,7 +1966,25 @@ case "$opsys" in + darwin|mingw32|sol2-10) system_malloc=yes ;; + esac + ++hybrid_malloc= ++system_malloc=yes ++ ++test "$CANNOT_DUMP" = yes || ++case "$opsys" in ++ ## darwin ld insists on the use of malloc routines in the System framework. ++ darwin | mingw32 | nacl | sol2-10) ;; ++ cygwin) hybrid_malloc=yes ++ system_malloc= ;; ++ *) test "$ac_cv_func_sbrk" = yes && system_malloc=$emacs_cv_sanitize_address;; ++esac ++ ++if test "${system_malloc}" != yes && test "${doug_lea_malloc}" != yes \ ++ && test "${UNEXEC_OBJ}" = unexelf.o; then ++ hybrid_malloc=yes ++fi ++ + GMALLOC_OBJ= ++HYBRID_MALLOC= + if test "${system_malloc}" = "yes"; then + AC_DEFINE([SYSTEM_MALLOC], 1, + [Define to 1 to use the system memory allocator, even if it is not +@@ -1975,6 +1993,14 @@ if test "${system_malloc}" = "yes"; then + GNU_MALLOC_reason=" + (The GNU allocators don't work with this system configuration.)" + VMLIMIT_OBJ= ++elif test "$hybrid_malloc" = yes; then ++ AC_DEFINE(HYBRID_MALLOC, 1, ++ [Define to use gmalloc before dumping and the system malloc after.]) ++ HYBRID_MALLOC=1 ++ GNU_MALLOC=no ++ GNU_MALLOC_reason=" (only before dumping)" ++ GMALLOC_OBJ=gmalloc.o ++ VMLIMIT_OBJ= + else + test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o + VMLIMIT_OBJ=vm-limit.o +@@ -1993,10 +2019,11 @@ else + of the main data segment.]) + fi + fi ++AC_SUBST([HYBRID_MALLOC]) + AC_SUBST(GMALLOC_OBJ) + AC_SUBST(VMLIMIT_OBJ) + +-if test "$doug_lea_malloc" = "yes" ; then ++if test "$doug_lea_malloc" = "yes" && test "$hybrid_malloc" != yes; then + if test "$GNU_MALLOC" = yes ; then + GNU_MALLOC_reason=" + (Using Doug Lea's new malloc from the GNU C Library.)" +-- +Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org +Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com + -- cgit v1.2.3 From 5ea35b42e451039e170224c429be37012878cff1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 25 Nov 2017 22:16:12 +0200 Subject: gnu: qtsensors: Disable parallel tests. * gnu/packages/qt.scm (qtsensors)[arguments]: Disable parallel tests. --- gnu/packages/qt.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index aac1bff57b..8bdc145c11 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -828,6 +828,7 @@ (define-public qtsensors "1hfsih5iy4fi6mnpw2shf1lzx9hxcdc1arspad1mark17l5s4pmr")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg) + ((#:parallel-tests? _ #f) #f) ; can lead to race condition ((#:phases phases) `(modify-phases ,phases (add-after 'unpack 'lengthen-test-timeout -- cgit v1.2.3 From 2af6be91d59ad5aefe01e90aa9045e26d8667098 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 24 Nov 2017 15:58:57 -0500 Subject: gnu: diffoscope: Fix error messages related to comparison tools. * gnu/packages/package-management.scm (diffoscope)[arguments]: Replace readelf substitution and add stat and getfacl substitutions. [inputs]: Add acl. Errors fixed include the following: "FileNotFoundError: [Errno 2] No such file or directory: 'readelf'" "diffoscope.comparators.directory: Unable to find 'getfacl', some directory metadata differences might not be noticed." "diffoscope.comparators.directory: Unable to find 'stat'" --- gnu/packages/package-management.scm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index c7a3681161..15c310d6e6 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -63,6 +63,7 @@ (define-module (gnu packages package-management) #:use-module (gnu packages ssh) #:use-module (gnu packages vim) #:use-module (gnu packages serialization) + #:use-module (gnu packages acl) #:use-module (srfi srfi-1) #:use-module (ice-9 match)) @@ -520,7 +521,6 @@ (define-public diffoscope (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-before 'unpack 'n (lambda _ #t)) ;; setup.py mistakenly requires python-magic from PyPi, even ;; though the Python bindings of `file` are sufficient. ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815844 @@ -535,8 +535,15 @@ (define-public diffoscope (string-append "['" (which "xxd") "',"))) (substitute* "diffoscope/comparators/elf.py" (("@tool_required\\('readelf'\\)") "") - (("\\['readelf',") - (string-append "['" (which "readelf") "',"))) + (("get_tool_name\\('readelf'\\)") + (string-append "'" (which "readelf") "'"))) + (substitute* "diffoscope/comparators/directory.py" + (("@tool_required\\('stat'\\)") "") + (("@tool_required\\('getfacl'\\)") "") + (("\\['stat',") + (string-append "['" (which "stat") "',")) + (("\\['getfacl',") + (string-append "['" (which "getfacl") "',"))) #t)) (add-before 'check 'delete-failing-test (lambda _ @@ -547,6 +554,7 @@ (define-public diffoscope ("python-debian" ,python-debian) ("python-libarchive-c" ,python-libarchive-c) ("python-tlsh" ,python-tlsh) + ("acl" ,acl) ;for getfacl ("colordiff" ,colordiff) ("xxd" ,xxd) -- cgit v1.2.3 From f1c49e75f4c96388d280e81afa599f43dd6a3f35 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 25 Nov 2017 12:25:43 -0500 Subject: gnu: mongodb: Update to 3.4.10. * gnu/packages/databases.scm (mongodb): Update to 3.4.10. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index db3361eb10..8a199be6e7 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -376,14 +376,14 @@ (define-public memcached (define-public mongodb (package (name "mongodb") - (version "3.4.9") + (version "3.4.10") (source (origin (method url-fetch) (uri (string-append "https://github.com/mongodb/mongo/archive/r" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "0gidwyvh3bdwmk2pccgkqkaln4ysgn8iwa7ihjzllsq0rdg95045")) + (base32 "0676lvkljj7a5hdhv78dbykqnqrj9lbn9799mi84b8vbnzsq961r")) (patches (list (search-patch "mongodb-support-unknown-linux-distributions.patch"))))) -- cgit v1.2.3 From 29cfbfca4389f6b10e99eb6b5b615e8c12e3f2da Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 25 Nov 2017 22:54:57 +0200 Subject: gnu: mongodb: Build without wiredtiger on 32-bit systems. * gnu/packages/databases.scm (mongodb)[arguments]: Add a configure-flag to build without wiredtiger support on 32-bit systems. --- gnu/packages/databases.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 8a199be6e7..c187c002f1 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -99,6 +99,7 @@ (define-module (gnu packages databases) #:use-module (guix build-system cmake) #:use-module (guix build-system r) #:use-module (guix utils) + #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match)) @@ -405,6 +406,12 @@ (define-public mongodb (let ((common-options `(;; "--use-system-tcmalloc" TODO: Missing gperftools "--use-system-pcre" + ;; wiredtiger is 64-bit only + ,,(if (any (cute string-prefix? <> (or (%current-target-system) + (%current-system))) + '("i686-linux" "armhf-linux")) + ``"--wiredtiger=off" + ``"--wiredtiger=on") ;; TODO ;; build/opt/mongo/db/fts/unicode/string.o failed: Error 1 ;; --use-system-boost -- cgit v1.2.3 From 319b52c38271943182c0269b480a57d715820cdc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 26 Nov 2017 08:51:29 +0200 Subject: gnu: mongodb: Use system wiredtiger when available. * gnu/packages/databases.scm (mongodb)[inputs]: Add wiredtiger on 64-bit systems. [arguments]: When using wiredtiger, use system wiredtiger. --- gnu/packages/databases.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index c187c002f1..0d3b4960a0 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -392,6 +392,10 @@ (define-public mongodb (inputs `(("openssl" ,openssl) ("pcre" ,pcre) + ,@(match (%current-system) + ((or "x86_64-linux" "aarch64-linux" "mips64el-linux") + `(("wiredtiger" ,wiredtiger))) + (_ `())) ("yaml-cpp" ,yaml-cpp) ("zlib" ,zlib) ("snappy" ,snappy) @@ -411,7 +415,7 @@ (define-public mongodb (%current-system))) '("i686-linux" "armhf-linux")) ``"--wiredtiger=off" - ``"--wiredtiger=on") + ``"--use-system-wiredtiger") ;; TODO ;; build/opt/mongo/db/fts/unicode/string.o failed: Error 1 ;; --use-system-boost -- cgit v1.2.3 From 51b0f09e058955120716d9efb8b76861255b1052 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 26 Nov 2017 10:02:28 +0200 Subject: gnu: mongodb: Remove some bundled sources. * gnu/packages/databases.scm (mongodb)[source]: Add snippet to remove some of the bundled sources. [input]: Remove unused boost input. --- gnu/packages/databases.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 0d3b4960a0..ab4d17479c 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -98,6 +98,7 @@ (define-module (gnu packages databases) #:use-module (guix build-system ruby) #:use-module (guix build-system cmake) #:use-module (guix build-system r) + #:use-module ((guix build utils) #:hide (which)) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -385,6 +386,15 @@ (define-public mongodb (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0676lvkljj7a5hdhv78dbykqnqrj9lbn9799mi84b8vbnzsq961r")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each (lambda (dir) + (delete-file-recursively + (string-append "src/third_party/" dir))) + '("pcre-8.41" "scons-2.5.0" "snappy-1.1.3" + "valgrind-3.11.0" "wiredtiger" + "yaml-cpp-0.5.3" "zlib-1.2.8")))) (patches (list (search-patch "mongodb-support-unknown-linux-distributions.patch"))))) @@ -398,8 +408,7 @@ (define-public mongodb (_ `())) ("yaml-cpp" ,yaml-cpp) ("zlib" ,zlib) - ("snappy" ,snappy) - ("boost" ,boost))) + ("snappy" ,snappy))) (native-inputs `(("scons" ,scons) ("python" ,python-2) -- cgit v1.2.3 From a0bd6fff427a75af251d00c8106f694bee4a15e1 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sun, 26 Nov 2017 10:09:42 +0100 Subject: gnu: tidy-html: Update to 5.6.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/web.scm (tidy-html): Update to 5.6.0. Signed-off-by: 宋文武 --- 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 a4a8778efa..b84bbdddd3 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4898,7 +4898,7 @@ (define-public xinetd (define-public tidy-html (package (name "tidy-html") - (version "5.4.0") + (version "5.6.0") (source (origin (method url-fetch) @@ -4907,7 +4907,7 @@ (define-public tidy-html (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0yhbgbjl45b4sjxwc394cjra6iy02q1pi66p28zy70lr6jvm9mx2")))) + "0n29wcgw32rhnraj9j21ibhwi0xagmmcskhbaz8ihxly7nx3p9h8")))) (build-system cmake-build-system) (outputs '("out" "static")) ; 1.0MiB of .a files -- cgit v1.2.3 From 64047c850fc93bf2bc16ffbfa03addfdf76f02e4 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sun, 26 Nov 2017 10:01:29 +0100 Subject: gnu: qtox: Update to 1.13.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/messaging.scm (qtox): Update to 1.13.0. Signed-off-by: 宋文武 --- gnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index d7853d2053..6ef297d1b5 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -851,14 +851,14 @@ (define-public utox (define-public qtox (package (name "qtox") - (version "1.12.1") + (version "1.13.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/qTox/qTox/archive/v" version ".tar.gz")) (sha256 (base32 - "0dwy0abcxzzcybww2xi33cla71a7752cq02qswcks5kbxnf5pck5")) + "0dyplmlqhg4zbg7hdzp3iqppn9xgp7pds5k6w6byjcqhb9zv91ca")) (file-name (string-append name "-" version ".tar.gz")))) (build-system cmake-build-system) (arguments -- cgit v1.2.3 From b8e7781122d0d61891b38acdf427d09fb894c307 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 24 Nov 2017 17:35:12 +0100 Subject: vm: Use os-defined initrd intead of base-initrd. * gnu/system/vm.scm (system-disk-image, system-qemu-image, virtualized-operating-system): Replace base-initrd by (operating-system-initrd os). The system produced were always using base-initrd even if the user had defined a custom initrd based on raw-initrd in the os declaration. --- gnu/system/vm.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 44246083b3..3ddb41d9a6 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -423,7 +423,8 @@ (define file-systems-to-keep ;; install QEMU networking or anything like that. Assume USB ;; mass storage devices (usb-storage.ko) are available. (initrd (lambda (file-systems . rest) - (apply base-initrd file-systems + (apply (operating-system-initrd os) + file-systems #:volatile-root? #t rest))) @@ -488,7 +489,8 @@ (define file-systems-to-keep (let ((os (operating-system (inherit os) ;; Use an initrd with the whole QEMU shebang. (initrd (lambda (file-systems . rest) - (apply base-initrd file-systems + (apply (operating-system-initrd os) + file-systems #:virtio? #t rest))) @@ -574,7 +576,8 @@ (define virtual-file-systems (target "/dev/vda"))) (initrd (lambda (file-systems . rest) - (apply base-initrd file-systems + (apply (operating-system-initrd os) + file-systems #:volatile-root? #t #:virtio? #t rest))) -- cgit v1.2.3 From 93bfc9693aa238a456e6a71844d1dd2ca60ce8a7 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 9 Nov 2017 14:02:29 +0100 Subject: gnu: prosody: Update to 0.10.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/messaging.scm (prosody): Update to 0.10.0. Signed-off-by: Clément Lassieur --- gnu/packages/messaging.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 6ef297d1b5..e6c63e3d56 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -635,14 +635,14 @@ (define-public dino (define-public prosody (package (name "prosody") - (version "0.9.12") + (version "0.10.0") (source (origin (method url-fetch) (uri (string-append "https://prosody.im/downloads/source/" "prosody-" version ".tar.gz")) (sha256 (base32 - "139yxqpinajl32ryrybvilh54ddb1q6s0ajjhlcs4a0rnwia6n8s")))) + "1644jy5dk46vahmh6nna36s79k8k668sbi3qamjb4q3c4m3y853l")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target @@ -708,6 +708,8 @@ (define-public prosody (inputs `(("libidn" ,libidn) ("openssl" ,openssl) + ;; Lua 5.1 is still recommended for production usage. + ;; See https://prosody.im/doc/packagers. ("lua" ,lua-5.1) ("lua5.1-expat" ,lua5.1-expat) ("lua5.1-socket" ,lua5.1-socket) -- cgit v1.2.3 From cb31a52407cc61ad0677d2f27b46015dc5470ea7 Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Mon, 23 Oct 2017 23:53:53 +0200 Subject: gnu: Add lua5.1-bitop. * gnu/packages/lua.scm (make-lua-bitop): New procedure. (lua5.2-bitop): Call make-lua-bitop. (lua5.1-bitop): New variable. --- gnu/packages/lua.scm | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index c8bc4ef85e..1667bad8dc 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 doncatnip -;;; Copyright © 2016 Clément Lassieur +;;; Copyright © 2016, 2017 Clément Lassieur ;;; Copyright © 2016 José Miguel Sánchez García ;;; ;;; This file is part of GNU Guix. @@ -415,9 +415,9 @@ (define-public lua5.2-lpeg (inputs `(("lua", lua-5.2))))) ;; Lua 5.3 is not supported. -(define-public lua5.2-bitop +(define (make-lua-bitop name lua) (package - (name "lua5.2-bitop") + (name name) (version "1.0.2") (source (origin (method url-fetch) @@ -434,15 +434,21 @@ (define-public lua5.2-bitop (string-append "INSTALLPATH=printf " (assoc-ref %outputs "out") "/lib/lua/" - ,(version-major+minor (package-version lua-5.2)) + ,(version-major+minor (package-version lua)) "/bit/bit.so")) #:phases (modify-phases %standard-phases (delete 'configure)))) - (inputs `(("lua", lua-5.2))) + (inputs `(("lua", lua))) (home-page "http://bitop.luajit.org/index.html") (synopsis "Bitwise operations on numbers for Lua") (description "Lua BitOp is a C extension module for Lua which adds bitwise operations on numbers.") (license license:expat))) + +(define-public lua5.2-bitop + (make-lua-bitop "lua5.2-bitop" lua-5.2)) + +(define-public lua5.1-bitop + (make-lua-bitop "lua5.1-bitop" lua-5.1)) -- cgit v1.2.3 From 3ba501083d724b4a86bf27c93e0d7b4db3e6c04b Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Fri, 24 Nov 2017 17:20:15 +0100 Subject: gnu: prosody: Add lua5.1-bitop to inputs. It is required for mod_websocket on Lua 5.1 since Prosody 0.10. * gnu/packages/messaging.scm (prosody)[inputs]: Add lua5.1-bitop. --- gnu/packages/messaging.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index e6c63e3d56..b6452c54c3 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -711,6 +711,7 @@ (define-public prosody ;; Lua 5.1 is still recommended for production usage. ;; See https://prosody.im/doc/packagers. ("lua" ,lua-5.1) + ("lua5.1-bitop" ,lua5.1-bitop) ("lua5.1-expat" ,lua5.1-expat) ("lua5.1-socket" ,lua5.1-socket) ("lua5.1-filesystem" ,lua5.1-filesystem) -- cgit v1.2.3 From 5cc6dcd734fbf40371aaa6b2ebb825fb35397209 Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Fri, 6 Oct 2017 02:01:07 +0200 Subject: services: prosody: Adapt to Prosody 0.10.0. * doc/guix.texi (Messaging Services): Add "mam" as a module example. Document 'prosodyctl check'. Replace 'prosodyctl cert request' with 'prosodyctl cert import'. Regenerate it. * gnu/services/messaging.scm (serialize-module-list): Remove "posix" from the default modules list because it is now automatically loaded. (ssl-configuration)[key, certificate]: Remove them because they are now automatically located. Fix their docstrings. (%default-modules-enabled): Add "carbons" and "blocklist". (prosody-configuration)[certificates]: Set default directory from which certificates/keys will be automatically located. --- doc/guix.texi | 28 +++++++++++++++++++--------- gnu/services/messaging.scm | 19 ++++++++++++++----- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index f8188fbb16..a2f7d9e1d0 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13899,7 +13899,7 @@ record as in this example: @example (service prosody-service-type (prosody-configuration - (modules-enabled (cons "groups" %default-modules-enabled)) + (modules-enabled (cons "groups" "mam" %default-modules-enabled)) (int-components (list (int-component-configuration @@ -13920,10 +13920,15 @@ By default, Prosody does not need much configuration. Only one @code{virtualhosts} field is needed: it specifies the domain you wish Prosody to serve. -Prosodyctl will help you generate X.509 certificates and keys: +You can perform various sanity checks on the generated configuration +with the @code{prosodyctl check} command. + +Prosodyctl will also help you to import certificates from the +@code{letsencrypt} directory so that the @code{prosody} user can access +them. See @url{https://prosody.im/doc/letsencrypt}. @example -prosodyctl cert request example.net +prosodyctl --root cert import /etc/letsencrypt/live @end example The available configuration parameters follow. Each parameter @@ -13962,6 +13967,13 @@ paths in order. See @url{http://prosody.im/doc/plugins_directory}. Defaults to @samp{()}. @end deftypevr +@deftypevr {@code{prosody-configuration} parameter} file-name certificates +Every virtual host and component needs a certificate so that clients and +servers can securely verify its identity. Prosody will automatically load +certificates/keys from the directory specified here. +Defaults to @samp{"/etc/prosody/certs"}. +@end deftypevr + @deftypevr {@code{prosody-configuration} parameter} string-list admins This is a list of accounts that are admins for the server. Note that you must create the accounts separately. See @url{http://prosody.im/doc/admins} and @@ -14014,14 +14026,12 @@ Available @code{ssl-configuration} fields are: This determines what handshake to use. @end deftypevr -@deftypevr {@code{ssl-configuration} parameter} file-name key -Path to your private key file, relative to @code{/etc/prosody}. -Defaults to @samp{"/etc/prosody/certs/key.pem"}. +@deftypevr {@code{ssl-configuration} parameter} maybe-file-name key +Path to your private key file. @end deftypevr -@deftypevr {@code{ssl-configuration} parameter} file-name certificate -Path to your certificate file, relative to @code{/etc/prosody}. -Defaults to @samp{"/etc/prosody/certs/cert.pem"}. +@deftypevr {@code{ssl-configuration} parameter} maybe-file-name certificate +Path to your certificate file. @end deftypevr @deftypevr {@code{ssl-configuration} parameter} file-name capath diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index 715d6181f5..526ad5a410 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -160,7 +160,7 @@ (define-maybe string-list) (define (module-list? val) (string-list? val)) (define (serialize-module-list field-name val) - (serialize-string-list field-name (cons "posix" val))) + (serialize-string-list field-name val)) (define-maybe module-list) (define (file-name? val) @@ -203,12 +203,12 @@ (define-configuration ssl-configuration "This determines what handshake to use.") (key - (file-name "/etc/prosody/certs/key.pem") - "Path to your private key file, relative to @code{/etc/prosody}.") + (maybe-file-name 'disabled) + "Path to your private key file.") (certificate - (file-name "/etc/prosody/certs/cert.pem") - "Path to your certificate file, relative to @code{/etc/prosody}.") + (maybe-file-name 'disabled) + "Path to your certificate file.") (capath (file-name "/etc/ssl/certs") @@ -271,7 +271,9 @@ (define %default-modules-enabled "tls" "dialback" "disco" + "carbons" "private" + "blocklist" "vcard" "version" "uptime" @@ -321,6 +323,13 @@ (define-all-configurations prosody-configuration paths in order. See @url{http://prosody.im/doc/plugins_directory}." global) + (certificates + (file-name "/etc/prosody/certs") + "Every virtual host and component needs a certificate so that clients and +servers can securely verify its identity. Prosody will automatically load +certificates/keys from the directory specified here." + global) + (admins (string-list '()) "This is a list of accounts that are admins for the server. Note that you -- cgit v1.2.3 From f59de6bea9a2fc83df492eafbfb7f8bfc5148939 Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Fri, 27 Oct 2017 00:20:01 +0200 Subject: services: prosody: Add support for http-external-url. * doc/guix.texi (Messaging Services): Update accordingly. * gnu/services/messaging.scm (prosody-configuration)[http-external-url]: New field. --- doc/guix.texi | 13 ++++++++++--- gnu/services/messaging.scm | 8 ++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a2f7d9e1d0..0e4116905c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14143,6 +14143,13 @@ File to write pid in. See @url{http://prosody.im/doc/modules/mod_posix}. Defaults to @samp{"/var/run/prosody/prosody.pid"}. @end deftypevr +@deftypevr {@code{prosody-configuration} parameter} maybe-string http-external-url +Some modules expose their own URL in various ways. This URL is built +from the protocol, host and port used. If Prosody sits behind a proxy, the +public URL will be @code{http-external-url} instead. See +@url{https://prosody.im/doc/http#external_url}. +@end deftypevr + @deftypevr {@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts A host in Prosody is a domain on which user accounts can be created. For example if you want your users to have addresses like @@ -14159,7 +14166,7 @@ See @url{http://prosody.im/doc/configure#virtual_host_settings}. Available @code{virtualhost-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-external-url}, plus: @deftypevr {@code{virtualhost-configuration} parameter} string domain Domain you wish Prosody to serve. @end deftypevr @@ -14181,7 +14188,7 @@ Defaults to @samp{()}. Available @code{int-component-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-external-url}, plus: @deftypevr {@code{int-component-configuration} parameter} string hostname Hostname of the component. @end deftypevr @@ -14234,7 +14241,7 @@ Defaults to @samp{()}. Available @code{ext-component-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-external-url}, plus: @deftypevr {@code{ext-component-configuration} parameter} string component-secret Password which the component will use to log in. @end deftypevr diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index 526ad5a410..5a7b19605b 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -436,6 +436,14 @@ (define-all-configurations prosody-configuration "File to write pid in. See @url{http://prosody.im/doc/modules/mod_posix}." global) + (http-external-url + (maybe-string 'disabled) + "Some modules expose their own URL in various ways. This URL is built +from the protocol, host and port used. If Prosody sits behind a proxy, the +public URL will be @code{http-external-url} instead. See +@url{https://prosody.im/doc/http#external_url}." + common) + (virtualhosts (virtualhost-configuration-list (list (virtualhost-configuration -- cgit v1.2.3 From 1f6f1a07c84c6a0c69803c8e9703237ace7abf77 Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Sat, 28 Oct 2017 01:33:57 +0200 Subject: services: prosody: Add support for http-max-content-size. * doc/guix.texi (Messaging Services): Update accordingly. * gnu/services/messaging.scm (prosody-configuration)[http-max-content-size]: New field. --- doc/guix.texi | 10 +++++++--- gnu/services/messaging.scm | 5 +++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 0e4116905c..627a549c90 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14143,6 +14143,10 @@ File to write pid in. See @url{http://prosody.im/doc/modules/mod_posix}. Defaults to @samp{"/var/run/prosody/prosody.pid"}. @end deftypevr +@deftypevr {@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size +Maximum allowed size of the HTTP body (in bytes). +@end deftypevr + @deftypevr {@code{prosody-configuration} parameter} maybe-string http-external-url Some modules expose their own URL in various ways. This URL is built from the protocol, host and port used. If Prosody sits behind a proxy, the @@ -14166,7 +14170,7 @@ See @url{http://prosody.im/doc/configure#virtual_host_settings}. Available @code{virtualhost-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-external-url}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, plus: @deftypevr {@code{virtualhost-configuration} parameter} string domain Domain you wish Prosody to serve. @end deftypevr @@ -14188,7 +14192,7 @@ Defaults to @samp{()}. Available @code{int-component-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-external-url}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, plus: @deftypevr {@code{int-component-configuration} parameter} string hostname Hostname of the component. @end deftypevr @@ -14241,7 +14245,7 @@ Defaults to @samp{()}. Available @code{ext-component-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-external-url}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, plus: @deftypevr {@code{ext-component-configuration} parameter} string component-secret Password which the component will use to log in. @end deftypevr diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index 5a7b19605b..f348ca1a38 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -436,6 +436,11 @@ (define-all-configurations prosody-configuration "File to write pid in. See @url{http://prosody.im/doc/modules/mod_posix}." global) + (http-max-content-size + (maybe-non-negative-integer 'disabled) + "Maximum allowed size of the HTTP body (in bytes)." + common) + (http-external-url (maybe-string 'disabled) "Some modules expose their own URL in various ways. This URL is built -- cgit v1.2.3 From 274b9500d1d204a06a610da304a61d5b27bcce3e Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Fri, 27 Oct 2017 22:12:41 +0200 Subject: services: prosody: Allow to add raw content to the config file. * doc/guix.texi (Messaging Services): Update accordingly. * gnu/services/messaging.scm (prosody-configuration)[raw-content]: New field. (raw-content?, serialize-raw-content): New procedures. --- doc/guix.texi | 10 +++++++--- gnu/services/messaging.scm | 13 ++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 627a549c90..51fc40d7c1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14170,7 +14170,7 @@ See @url{http://prosody.im/doc/configure#virtual_host_settings}. Available @code{virtualhost-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus: @deftypevr {@code{virtualhost-configuration} parameter} string domain Domain you wish Prosody to serve. @end deftypevr @@ -14192,7 +14192,7 @@ Defaults to @samp{()}. Available @code{int-component-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus: @deftypevr {@code{int-component-configuration} parameter} string hostname Hostname of the component. @end deftypevr @@ -14245,7 +14245,7 @@ Defaults to @samp{()}. Available @code{ext-component-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus: @deftypevr {@code{ext-component-configuration} parameter} string component-secret Password which the component will use to log in. @end deftypevr @@ -14265,6 +14265,10 @@ Interface Prosody listens on for component connections. Defaults to @samp{"127.0.0.1"}. @end deftypevr +@deftypevr {@code{prosody-configuration} parameter} maybe-raw-content raw-content +Raw content that will be added to the configuration file. +@end deftypevr + It could be that you just want to get a @code{prosody.cfg.lua} up and running. In that case, you can pass an @code{opaque-prosody-configuration} record as the value of diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index f348ca1a38..b66d6ddb96 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -176,6 +176,12 @@ (define (serialize-file-name-list field-name val) (serialize-string-list field-name val)) (define-maybe file-name) +(define (raw-content? val) + (not (eq? val 'disabled))) +(define (serialize-raw-content field-name val) + (format #t "~a" val)) +(define-maybe raw-content) + (define-configuration mod-muc-configuration (name (string "Prosody Chatrooms") @@ -533,7 +539,12 @@ (define-all-configurations prosody-configuration (hostname (string (configuration-missing-field 'ext-component 'hostname)) "Hostname of the component." - ext-component))) + ext-component) + + (raw-content + (maybe-raw-content 'disabled) + "Raw content that will be added to the configuration file." + common))) ;; Serialize Virtualhost line first. (define (serialize-virtualhost-configuration config) -- cgit v1.2.3 From e30038dae14d7cfb6372c44e9f4dfc96c205c29e Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Fri, 24 Nov 2017 22:20:32 +0100 Subject: services: prosody: Add support for disable-sasl-mechanisms. * doc/guix.texi (Messaging Services): Update accordingly. * gnu/services/messaging.scm (prosody-configuration)[disable-sasl-mechanisms]: New field. --- doc/guix.texi | 11 ++++++++--- gnu/services/messaging.scm | 6 ++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 51fc40d7c1..2a68256823 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14093,6 +14093,11 @@ See @url{http://prosody.im/doc/modules/mod_tls}. Defaults to @samp{#f}. @end deftypevr +@deftypevr {@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms +Set of mechanisms that will never be offered. See +@url{https://prosody.im/doc/modules/mod_saslauth}. +@end deftypevr + @deftypevr {@code{prosody-configuration} parameter} boolean s2s-require-encryption? Whether to force all server-to-server connections to be encrypted or not. See @url{http://prosody.im/doc/modules/mod_tls}. @@ -14170,7 +14175,7 @@ See @url{http://prosody.im/doc/configure#virtual_host_settings}. Available @code{virtualhost-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus: @deftypevr {@code{virtualhost-configuration} parameter} string domain Domain you wish Prosody to serve. @end deftypevr @@ -14192,7 +14197,7 @@ Defaults to @samp{()}. Available @code{int-component-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus: @deftypevr {@code{int-component-configuration} parameter} string hostname Hostname of the component. @end deftypevr @@ -14245,7 +14250,7 @@ Defaults to @samp{()}. Available @code{ext-component-configuration} fields are: -all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus: +all these @code{prosody-configuration} fields: @code{admins}, @code{use-libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, @code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-content-size}, @code{http-external-url}, @code{raw-content}, plus: @deftypevr {@code{ext-component-configuration} parameter} string component-secret Password which the component will use to log in. @end deftypevr diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index b66d6ddb96..c75c715850 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -391,6 +391,12 @@ (define-all-configurations prosody-configuration See @url{http://prosody.im/doc/modules/mod_tls}." common) + (disable-sasl-mechanisms + (string-list '("DIGEST-MD5")) + "Set of mechanisms that will never be offered. See +@url{https://prosody.im/doc/modules/mod_saslauth}." + common) + (s2s-require-encryption? (boolean #f) "Whether to force all server-to-server connections to be encrypted or not. -- cgit v1.2.3 From 5c22f3726e6a3e44792fd44f7b42122194a16f35 Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Fri, 24 Nov 2017 22:31:33 +0100 Subject: tests: messaging: Enable Prosody DIGEST-MD5 auth mechanism. GNU Freetalk doesn't support SCRAM-SHA-1. * gnu/tests/messaging.scm (%test-prosody): Override default disable-sasl-mechanisms value. --- gnu/tests/messaging.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/tests/messaging.scm b/gnu/tests/messaging.scm index 0ba0c839de..60e2f332a3 100644 --- a/gnu/tests/messaging.scm +++ b/gnu/tests/messaging.scm @@ -146,6 +146,7 @@ (define %create-prosody-account (define %test-prosody (let* ((config (prosody-configuration + (disable-sasl-mechanisms '()) (virtualhosts (list (virtualhost-configuration -- cgit v1.2.3 From 9b0713012905f3997d6fad201dba7c3d93b38b13 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 26 Nov 2017 15:08:50 +0100 Subject: list-runtime-roots: Ignore ESRCH while reading from /proc. Fixes . Reported by Martin Castillo . * nix/scripts/list-runtime-roots.in (referenced-files): Ignore ESRCH. --- nix/scripts/list-runtime-roots.in | 1 + 1 file changed, 1 insertion(+) diff --git a/nix/scripts/list-runtime-roots.in b/nix/scripts/list-runtime-roots.in index 511789a539..48a07edf5f 100644 --- a/nix/scripts/list-runtime-roots.in +++ b/nix/scripts/list-runtime-roots.in @@ -121,6 +121,7 @@ or the empty list." (lambda args (let ((err (system-error-errno args))) (if (or (= ENOENT err) ;TOCTTOU race + (= ESRCH err) ;ditto (= EACCES err)) ;not running as root '() (apply throw args))))))) -- cgit v1.2.3 From 1ee13e01c8a9e5f1ee87c580d283cf6fea7d80dc Mon Sep 17 00:00:00 2001 From: nee Date: Sat, 25 Nov 2017 20:51:11 +0100 Subject: gnu: image: Rename pngcrunch to pngcrush and update it. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/image.scm (pngcrush): Renamed from pngcrunch. [version]: update to 1.8.13. [arguments]: Use the nolib Makefile. [origin]: Use the no-lib tar. [home-page]: update to the new website. (pngcrunch): New deprecation variable. Signed-off-by: Ludovic Courtès --- gnu/packages/image.scm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index cb8e387f6a..a183817dbd 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -207,25 +207,24 @@ (define-public r-png ;; Any of these GPL versions. (license (list license:gpl2 license:gpl3)))) -(define-public pngcrunch +(define-public pngcrush (package - (name "pngcrunch") - (version "1.8.11") + (name "pngcrush") + (version "1.8.13") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pmt/pngcrush/" - version "/pngcrush-" version ".tar.xz")) + version "/pngcrush-" version "-nolib.tar.xz")) (sha256 (base32 - "1c7m316i91jp3h1dj1ppppdv6zilm2njk1wrpqy2zj0fcll06lwd")))) + "0l43c59d6v9l0g07z3q3ywhb8xb3vz74llv3mna0izk9bj6aqkiv")))) (build-system gnu-build-system) (arguments - '(#:make-flags '("-f" "Makefile-nolib") - #:tests? #f ; no check target + '(#:tests? #f ; no check target #:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "Makefile-nolib" + (substitute* "Makefile" (("^(PNG(INC|LIB) = )/usr/local/" line vardef) (string-append vardef (assoc-ref inputs "libpng") "/")) (("^(Z(INC|LIB) = )/usr/local/" line vardef) @@ -236,12 +235,16 @@ (define-public pngcrunch (inputs `(("libpng" ,libpng) ("zlib" , zlib))) - (home-page "https://pmt.sourceforge.net/pngcrush") + (home-page "https://pmt.sourceforge.io/pngcrush") (synopsis "Utility to compress PNG files") (description "pngcrusqh is an optimizer for PNG (Portable Network Graphics) files. It can compress them as much as 40% losslessly.") (license license:zlib))) +(define-public pngcrunch + ;; This package used to be wrongfully name "pngcrunch". + (deprecated-package "pngcrunch" pngcrush)) + (define-public libjpeg (package (name "libjpeg") -- cgit v1.2.3 From 5b327a2d6192adbabb5b98bc3a78eb8402bd6d1d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 26 Nov 2017 15:23:13 -0500 Subject: gnu: exim: Fix CVE-2017-16943. * gnu/packages/patches/exim-CVE-2017-16943.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/mail.scm (exim)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/mail.scm | 3 +- gnu/packages/patches/exim-CVE-2017-16943.patch | 65 ++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/exim-CVE-2017-16943.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4a07da453b..ebff7084ba 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -614,6 +614,7 @@ dist_patch_DATA = \ %D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/eudev-rules-directory.patch \ %D%/packages/patches/evilwm-lost-focus-bug.patch \ + %D%/packages/patches/exim-CVE-2017-16943.patch \ %D%/packages/patches/exim-CVE-2017-1000369.patch \ %D%/packages/patches/exiv2-CVE-2017-14860.patch \ %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch \ diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index a8957e82ab..fbe39bef76 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1042,7 +1042,8 @@ (define-public exim version ".tar.bz2") (string-append "ftp://ftp.exim.org/pub/exim/exim4/old/exim-" version ".tar.bz2"))) - (patches (search-patches "exim-CVE-2017-1000369.patch")) + (patches (search-patches "exim-CVE-2017-16943.patch" + "exim-CVE-2017-1000369.patch")) (sha256 (base32 "1c0syp7yxngmq7y8vqsrvijinzin5m941vn0ljihdfld7kh2wbwi")))) diff --git a/gnu/packages/patches/exim-CVE-2017-16943.patch b/gnu/packages/patches/exim-CVE-2017-16943.patch new file mode 100644 index 0000000000..3a3e5d27fa --- /dev/null +++ b/gnu/packages/patches/exim-CVE-2017-16943.patch @@ -0,0 +1,65 @@ +Fix CVE-2017-16943: + +https://bugs.exim.org/show_bug.cgi?id=2199 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16943 + +Patch copied from upstream source repository: + +https://git.exim.org/exim.git/commit/4090d62a4b25782129cc1643596dc2f6e8f63bde + +From 4090d62a4b25782129cc1643596dc2f6e8f63bde Mon Sep 17 00:00:00 2001 +From: Jeremy Harris +Date: Fri, 24 Nov 2017 20:22:33 +0000 +Subject: [PATCH] Avoid release of store if there have been later allocations. + Bug 2199 + +--- + doc/doc-txt/ChangeLog | 4 ++++ + src/src/receive.c | 7 ++++--- + 2 files changed, 8 insertions(+), 3 deletions(-) + +#diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog +#index e937ba2..a2d9339 100644 +#--- a/doc/doc-txt/ChangeLog +#+++ b/doc/doc-txt/ChangeLog +#@@ -59,6 +59,10 @@ JH/30 Fix a logging bug on aarch64: an unsafe routine was previously used for +# connection in response to HELO" was logged instead of the actual 4xx +# error for the HELO. +# +#+JH/34 Bug 2199: fix a use-after-free while reading smtp input for header lines. +#+ A crafted sequence of BDAT commands could result in in-use memory beeing +#+ freed. +#+ +# + Exim version 4.89 + ----------------- +diff --git a/src/src/receive.c b/src/src/receive.c +index 95cf13e..20672db 100644 +--- a/src/receive.c ++++ b/src/receive.c +@@ -1772,8 +1772,8 @@ for (;;) + (and sometimes lunatic messages can have ones that are 100s of K long) we + call store_release() for strings that have been copied - if the string is at + the start of a block (and therefore the only thing in it, because we aren't +- doing any other gets), the block gets freed. We can only do this because we +- know there are no other calls to store_get() going on. */ ++ doing any other gets), the block gets freed. We can only do this release if ++ there were no allocations since the once that we want to free. */ + + if (ptr >= header_size - 4) + { +@@ -1782,9 +1782,10 @@ for (;;) + header_size *= 2; + if (!store_extend(next->text, oldsize, header_size)) + { ++ BOOL release_ok = store_last_get[store_pool] == next->text; + uschar *newtext = store_get(header_size); + memcpy(newtext, next->text, ptr); +- store_release(next->text); ++ if (release_ok) store_release(next->text); + next->text = newtext; + } + } +-- +1.9.1 + -- cgit v1.2.3 From 6dbad376a23d6031e135fadead4410d9a2d1fa68 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 26 Nov 2017 22:11:12 +0200 Subject: gnu: openntpd: Update to 6.2p3. * gnu/packages/ntp.scm (openntpd): Update to 6.2p3. --- gnu/packages/ntp.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index f77eab4799..b3b4453945 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -98,14 +98,14 @@ (define-public ntp (define-public openntpd (package (name "openntpd") - (version "6.2p2") + (version "6.2p3") (source (origin (method url-fetch) (uri (string-append "mirror://openbsd/OpenNTPD/" name "-" version ".tar.gz")) (sha256 (base32 - "1chghbh1bnwhxdgkqki51w94nwvlyj1a9q8716r4v2h0gc9s822q")))) + "0fn12i4kzsi0zkr4qp3dp9bycmirnfapajqvdfx02zhr4hanj0kv")))) (build-system gnu-build-system) (home-page "http://www.openntpd.org/") (synopsis "NTP client and server by the OpenBSD Project") -- cgit v1.2.3 From 6438a4682d99f7bb6cc35211ec5d02d969d09b53 Mon Sep 17 00:00:00 2001 From: nee Date: Sun, 26 Nov 2017 19:45:42 +0100 Subject: gnu: crawl: Update to 0.20.1. * gnu/packages/games.scm (crawl): Update to 0.20.1. (crawl-tiles): Update to 0.20.1. [native-inputs]: Add pngcrush. Signed-off-by: Leo Famulari --- gnu/packages/games.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index b1ba28a62c..458f8ca351 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -4505,7 +4505,7 @@ (define-public fillets-ng (define-public crawl (package (name "crawl") - (version "0.20.0") + (version "0.20.1") (source (origin (method url-fetch) @@ -4519,7 +4519,7 @@ (define-public crawl version "-nodeps.tar.xz"))) (sha256 (base32 - "0127dgldij2h4m7cf32yy9ndv4vcz03g4km71lmxrsi5mw7ljgpd")) + "0cagx7687r5ln7pmzl60akjhjpyqd62z9zhfr2mqfk53wl9jbsbj")) (patches (search-patches "crawl-upgrade-saves.patch")))) (build-system gnu-build-system) (inputs @@ -4604,7 +4604,7 @@ (define-public crawl-tiles ("sdl2-mixer" ,sdl2-mixer))) (native-inputs `(,@(package-native-inputs crawl) - ;; TODO: Add advpng or pngcrush for additional PNG optimization. + ("pngcrush" ,pngcrush) ("which" ,which))) (synopsis "Graphical roguelike dungeon crawler game"))) -- cgit v1.2.3 From 66e47916d48b53e0276bea2f3c744bdaed3fcbc5 Mon Sep 17 00:00:00 2001 From: ng0 Date: Fri, 24 Nov 2017 14:32:00 +0000 Subject: gnu: python-pycanberra: Switch to new download URL. * gnu/packages/libcanberra.scm (python-pycanberra)[source]: Use new URL. Signed-off-by: Leo Famulari --- gnu/packages/libcanberra.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm index 9af6b40ffc..42456995bb 100644 --- a/gnu/packages/libcanberra.scm +++ b/gnu/packages/libcanberra.scm @@ -139,8 +139,8 @@ (define-public python-pycanberra (source (origin (method url-fetch) - (uri (string-append "https://dist.ng0.infotropique.org/releases/" - "pycanberra/pycanberra-" version ".tar.xz")) + (uri (string-append "https://d.n0.is/releases/pycanberra/" + "pycanberra-" version ".tar.xz")) (sha256 (base32 "16jjf8fcgaprmz6jacsxrh17l1ad891fns38bxv49lg3s3mn1nj2")))) @@ -152,5 +152,5 @@ (define-public python-pycanberra (synopsis "Ctypes wrapper for the libcanberra API") (description "Pycanberra is a basic Python wrapper for libcanberra.") - (home-page "https://git.ng0.infotropique.org/pycanberra/") + (home-page "https://c.n0.is/pycanberra/") (license lgpl2.1+))) -- cgit v1.2.3 From f953aa56cc211229d0a6cc8ba3f5ef29fe92e73f Mon Sep 17 00:00:00 2001 From: ng0 Date: Fri, 24 Nov 2017 14:34:36 +0000 Subject: gnu: fish-guix: Use new URL. * gnu/packages/shells.scm (fish-guix)[source]: Use new URL. (home-page): Use new URL. Signed-off-by: Leo Famulari --- 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 2792b2e289..7ea521a083 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -153,7 +153,7 @@ (define-public fish-guix (source (origin (method url-fetch) - (uri (string-append "https://dist.infotropique.org/fish-guix/" + (uri (string-append "https://d.n0.is/releases/fish-guix/" name "-" version ".tar.xz")) (sha256 (base32 @@ -166,7 +166,7 @@ (define-public fish-guix #:phases (modify-phases %standard-phases (delete 'configure)))) ; No configure script. - (home-page "https://www.infotropique.org/projects/fish-guix/") + (home-page "https://n0.is/s/fish-guix/") (synopsis "Fish completions for Guix") (description "Fish-guix provides completions for Guix for users of the fish shell.") -- cgit v1.2.3 From 9221979e367a95c14a35236742792fb624d8e47c Mon Sep 17 00:00:00 2001 From: ng0 Date: Fri, 24 Nov 2017 14:38:38 +0000 Subject: Update e-mail for ng0. * .mailmap: Update entries for ng0. Signed-off-by: Leo Famulari --- .mailmap | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.mailmap b/.mailmap index 49c266bf72..e32a3dfb93 100644 --- a/.mailmap +++ b/.mailmap @@ -42,16 +42,17 @@ Mathieu Lirzin Mathieu Lirzin Mathieu Othacehe Nikita Karetnikov -ng0 -ng0 -ng0 -ng0 -ng0 -ng0 -ng0 -ng0 -ng0 -ng0 +ng0 +ng0 +ng0 +ng0 +ng0 +ng0 +ng0 +ng0 +ng0 +ng0 +ng0 Pjotr Prins Pjotr Prins Pjotr Prins -- cgit v1.2.3 From 9071581bf58993551c6f7723a6f33ef9c8576722 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 26 Nov 2017 19:26:44 -0500 Subject: gnu: shotwell: Update to 0.27.1. * gnu/packages/gnome.scm (shotwell): Update to 0.27.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9e3c141f0c..8378bee3dc 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4390,7 +4390,7 @@ (define-public gexiv2 (define-public shotwell (package (name "shotwell") - (version "0.26.3") + (version "0.27.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4398,7 +4398,7 @@ (define-public shotwell name "-" version ".tar.xz")) (sha256 (base32 - "1r8fd63r7c5n99hwrkzv9jlrk84z4sa15q3h70pydzfjnfqf90zv")))) + "1jav7qv0s1v6wvd7x2ri85hjqnbswq883pnd228qhd6bhjbryp89")))) (build-system glib-or-gtk-build-system) (propagated-inputs `(("dconf" ,dconf))) -- cgit v1.2.3 From 35e78aaa25804282beb810c04455d71920289545 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 27 Nov 2017 12:09:26 +0100 Subject: gnu: r-rhdf5: Fix build phase. * gnu/packages/bioinformatics.scm (r-rhdf5)[arguments]: Fix "unpack-smallhdf5" phase. --- gnu/packages/bioinformatics.scm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index aa05a9881b..2a2d7f8ff7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -8316,11 +8316,6 @@ (define-public r-rhdf5 (lambda* (#:key outputs #:allow-other-keys) (system* "tar" "-xzvf" "src/hdf5source/hdf5small.tgz" "-C" "src/" ) - (substitute* "src/Makevars" - (("^.*cd hdf5source &&.*$") "") - (("^.*gunzip -dc hdf5small.tgz.*$") "") - (("^.*rm -rf hdf5.*$") "") - (("^.*mv hdf5source/hdf5 ..*$") "")) (substitute* "src/hdf5/configure" (("/bin/mv") "mv")) #t))))) -- cgit v1.2.3 From 9cc51d16cb22f8a0c50fe81c98abb3b9108db9ff Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 27 Nov 2017 12:10:38 +0100 Subject: gnu: librecad: Ensure that icons are found at runtime. * gnu/packages/engineering.scm (librecad)[arguments]: Add phase "wrap-executable". --- gnu/packages/engineering.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index b2127ba45d..5c36de1dd2 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -127,7 +127,19 @@ (define-public librecad (install-file "unix/librecad" bin) (mkdir-p share) (copy-recursively "unix/resources" share)) - #t))))) + #t)) + ;; Ensure that icons are found at runtime + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (qt '("qtbase" "qtsvg"))) + (wrap-program (string-append out "/bin/librecad") + `("QT_PLUGIN_PATH" ":" prefix + ,(map (lambda (label) + (string-append (assoc-ref inputs label) + "/lib/qt5/plugins/")) + qt))) + #t)))))) (inputs `(("boost" ,boost) ("muparser" ,muparser) -- cgit v1.2.3 From 933ad809f13ce8fa9bb32c43f68510bb942e5d88 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 18 Nov 2017 23:56:50 +0100 Subject: gnu: Add java-snappy-1. * gnu/packages/compression.scm (java-snappy-1): New variable. --- gnu/packages/compression.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index fbfe6f18a9..f6d4c12e0c 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1206,6 +1206,64 @@ (define-public java-snappy compresser/decompresser.") (license license:asl2.0))) +(define-public java-snappy-1 + (package + (inherit java-snappy) + (version "1.0.3-rc3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/xerial/snappy-java/archive/" + "snappy-java-" version ".tar.gz")) + (sha256 + (base32 + "08hsxlqidiqck0q57fshwyv3ynyxy18vmhrai9fyc8mz17m7gsa3")))) + (arguments + `(#:jar-name "snappy.jar" + #:source-dir "src/main/java" + #:phases + (modify-phases %standard-phases + (add-before 'build 'remove-binaries + (lambda _ + (delete-file "lib/org/xerial/snappy/OSInfo.class") + (delete-file-recursively "src/main/resources/org/xerial/snappy/native") + #t)) + (add-before 'build 'build-jni + (lambda _ + ;; Rebuild one of the binaries we removed earlier + (system* "javac" "src/main/java/org/xerial/snappy/OSInfo.java" + "-d" "lib") + ;; Link to the dynamic snappy, not the static ones + (substitute* "Makefile.common" + (("-shared") "-shared -lsnappy")) + (substitute* "Makefile" + ;; Don't download the sources here. + (("\\$\\(SNAPPY_UNPACKED\\) ") "") + ((": \\$\\(SNAPPY_UNPACKED\\) ") ":") + ;; What we actually want to build + (("SNAPPY_OBJ:=.*") + "SNAPPY_OBJ:=$(addprefix $(SNAPPY_OUT)/, SnappyNative.o)\n") + ;; Since we removed the directory structure in "native" during + ;; the previous phase, we need to recreate it. + (("NAME\\): \\$\\(SNAPPY_OBJ\\)") + "NAME): $(SNAPPY_OBJ)\n\t@mkdir -p $(@D)")) + ;; Finally we can run the Makefile to build the dynamic library. + (zero? (system* "make" "native")))) + ;; Once we have built the shared library, we need to place it in the + ;; "build" directory so it can be added to the jar file. + (add-after 'build-jni 'copy-jni + (lambda _ + (copy-recursively "src/main/resources/org/xerial/snappy/native" + "build/classes/org/xerial/snappy/native") + #t)) + (add-before 'check 'fix-tests + (lambda _ + (mkdir-p "src/test/resources/org/xerial/snappy/") + (copy-recursively "src/test/java/org/xerial/snappy/testdata" + "src/test/resources/org/xerial/snappy/testdata") + (install-file "src/test/java/org/xerial/snappy/alice29.txt" + "src/test/resources/org/xerial/snappy/") + #t))))))) + (define-public java-iq80-snappy (package (name "java-iq80-snappy") -- cgit v1.2.3 From fc8d100b24dda625a2582ed7af7260dded770e8b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 18 Nov 2017 23:57:24 +0100 Subject: gnu: Add javacc. * gnu/packages/java.scm (javacc): New variable. --- gnu/packages/java.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index f49e313959..8683a86204 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1894,6 +1894,38 @@ (define-public clojure license:asl2.0 license:cpl1.0))))) +(define-public javacc + (package + (name "javacc") + (version "7.0.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/javacc/javacc/" + "archive/" version ".tar.gz")) + (file-name (string-append "javacc-" version ".tar.gz")) + (sha256 + (base32 + "111xc9mnmc5a6qz6x3xbhqc07y1lg2b996ggzw0hrblg42zya9xf")))) + (build-system ant-build-system) + (arguments + `(#:test-target "test" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-bundled-libs + (lambda _ + (delete-file-recursively "lib") #t)) + (replace 'install (install-jars "target"))))) + (home-page "https://javacc.org/") + (synopsis "Java parser generator") + (description "Java Compiler Compiler (JavaCC) is the most popular parser +generator for use with Java applications. A parser generator is a tool that +reads a grammar specification and converts it to a Java program that can +recognize matches to the grammar. In addition to the parser generator itself, +JavaCC provides other standard capabilities related to parser generation such +as tree building (via a tool called JJTree included with JavaCC), actions, +debugging, etc.") + (license license:bsd-3))) + (define-public java-classpathx-servletapi (package (name "java-classpathx-servletapi") -- cgit v1.2.3 From 6688c41e16edb15cf949f911a529766835202dda Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 18 Nov 2017 23:57:47 +0100 Subject: gnu: Add javacc-4. * gnu/packages/java.scm (javacc-4): New variable. --- gnu/packages/java.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 8683a86204..870153a608 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1926,6 +1926,30 @@ (define-public javacc debugging, etc.") (license license:bsd-3))) +(define-public javacc-4 + (package (inherit javacc) + (version "4.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/javacc/javacc.git") + (commit "release_41"))) + (file-name (string-append "javacc-" version "-checkout")) + (sha256 + (base32 + "07ysav7j8r1c6h8qxrgqk6lwdp74ly0ad1935lragxml0qqc3ka0")))) + ;; Tests fail with + ;; /tmp/guix-build-javacc-4.1.drv-0/source/test/javacodeLA/build.xml:60: + ;; JAVACODE failed + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-bundled-libs + (lambda _ + (delete-file-recursively "lib") #t)) + (replace 'install (install-jars "bin/lib"))))))) + (define-public java-classpathx-servletapi (package (name "java-classpathx-servletapi") -- cgit v1.2.3 From 9e325e8c05f39a020b620066172625d67c04a9e3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 18 Nov 2017 23:58:18 +0100 Subject: gnu: Add java-commons-jexl-2. * gnu/packages/java.scm (java-commons-jexl-2): New variable. --- gnu/packages/java.scm | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 870153a608..10ed3b6664 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6992,6 +6992,63 @@ (define-public java-mvel2 configuration and string construction.") (license license:asl2.0))) +(define-public java-commons-jexl-2 + (package + (name "java-commons-jexl") + (version "2.1.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/jexl/source/" + "commons-jexl-" version "-src.tar.gz")) + (sha256 + (base32 + "1ai7632bwwaxglb0nbpblpr2jw5g20afrsaq372ipkphi3ncy1jz")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "commons-jexl-2.jar" + #:jdk ,icedtea-8 + #:source-dir "src/main/java" + #:phases + (modify-phases %standard-phases + (add-before 'check 'disable-broken-tests + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "src/test/java/org/apache/commons/jexl2/" + (substitute* "ArithmeticTest.java" + (("asserter.assertExpression\\(\"3 / 0\"") "//") + (("asserter.assertExpression\\(\"imanull") "//")) + ;; This test fails with "ambiguous method invocation" + (delete-file "CacheTest.java") + ;; This test doesn't have access to the temp directory + (substitute* "ClassCreatorTest.java" + (("java.io.tmpdir") "user.dir")) + ;; This test fails in trying to detect whether it can run. + (substitute* "ClassCreator.java" + (("boolean canRun =.*") "boolean canRun = false;\n")) + ;; ...and these tests depend on it. + (delete-file "scripting/JexlScriptEngineOptionalTest.java") + (delete-file "scripting/JexlScriptEngineTest.java")) + #t)) + (add-before 'build 'run-javacc + (lambda _ + (with-directory-excursion "src/main/java/org/apache/commons/jexl2/parser/" + (and (zero? (system* "java" "jjtree" "Parser.jjt")) + (zero? (system* "java" "javacc" "Parser.jj"))))))))) + (inputs + `(("java-commons-logging-minimal" ,java-commons-logging-minimal))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("javacc" ,javacc-4))) + (home-page "https://commons.apache.org/proper/commons-jexl/") + (synopsis "Java Expression Language ") + (description "JEXL is a library intended to facilitate the implementation +of dynamic and scripting features in applications and frameworks written in +Java. JEXL implements an Expression Language based on some extensions to the +JSTL Expression Language supporting most of the constructs seen in +shell-script or ECMAScript. Its goal is to expose scripting features usable +by technical operatives or consultants working with enterprise platforms.") + (license license:asl2.0))) + (define-public java-lz4 (package (name "java-lz4") -- cgit v1.2.3 From bd94b6f850b2be6953a2d8688b2be78cac8d341a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 18 Nov 2017 23:58:59 +0100 Subject: gnu: java-htsjdk: Update to 2.3.0. * gnu/packages/bioinformatics.scm (java-htsjdk): Update to 2.3.0. [arguments]: Build with JDK 8. [inputs]: Add java-ngs, java-snappy, java-commons-compress, java-commons-logging-minimal, java-commons-jexl-2, and java-xz. [native-inputs]: Add java-testng. --- gnu/packages/bioinformatics.scm | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 2a2d7f8ff7..5164da0ef7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2961,7 +2961,7 @@ (define-public python2-htseq (define-public java-htsjdk (package (name "java-htsjdk") - (version "1.129") + (version "2.3.0") ; last version without build dependency on gradle (source (origin (method url-fetch) (uri (string-append @@ -2970,15 +2970,18 @@ (define-public java-htsjdk (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0asdk9b8jx2ij7yd6apg9qx03li8q7z3ml0qy2r2qczkra79y6fw")) + "1ibhzzxsfc38nqyk9r8zqj6blfc1kh26iirypd4q6n90hs2m6nyq")) (modules '((guix build utils))) - ;; remove build dependency on git - (snippet '(substitute* "build.xml" - (("failifexecutionfails=\"true\"") - "failifexecutionfails=\"false\""))))) + (snippet + ;; Delete pre-built binaries + '(begin + (delete-file-recursively "lib") + (mkdir-p "lib") + #t)))) (build-system ant-build-system) (arguments `(#:tests? #f ; test require Internet access + #:jdk ,icedtea-8 #:make-flags (list (string-append "-Ddist=" (assoc-ref %outputs "out") "/share/java/htsjdk/")) @@ -2987,6 +2990,15 @@ (define-public java-htsjdk (modify-phases %standard-phases ;; The build phase also installs the jars (delete 'install)))) + (inputs + `(("java-ngs" ,java-ngs) + ("java-snappy-1" ,java-snappy-1) + ("java-commons-compress" ,java-commons-compress) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ("java-commons-jexl-2" ,java-commons-jexl-2) + ("java-xz" ,java-xz))) + (native-inputs + `(("java-testng" ,java-testng))) (home-page "http://samtools.github.io/htsjdk/") (synopsis "Java API for high-throughput sequencing data (HTS) formats") (description -- cgit v1.2.3 From d7fed31ad2d115f2708e1801607df727e985ae52 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 19 Nov 2017 13:02:23 +0100 Subject: gnu: Add java-picard. * gnu/packages/bioinformatics.scm (java-picard): New variable. --- gnu/packages/bioinformatics.scm | 78 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 5164da0ef7..636e912ce5 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3008,6 +3008,84 @@ (define-public java-htsjdk manipulating HTS data.") (license license:expat))) +;; This version matches java-htsjdk 2.3.0. Later versions also require a more +;; recent version of java-htsjdk, which depends on gradle. +(define-public java-picard + (package + (name "java-picard") + (version "2.3.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/broadinstitute/picard.git") + (commit version))) + (file-name (string-append "java-picard-" version "-checkout")) + (sha256 + (base32 + "1ll7mf4r3by92w2nhlmpa591xd1f46xlkwh59mq6fvbb5pdwzvx6")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete pre-built binaries. + (delete-file-recursively "lib") + (mkdir-p "lib") + (substitute* "build.xml" + ;; Remove build-time dependency on git. + (("failifexecutionfails=\"true\"") + "failifexecutionfails=\"false\"") + ;; Use our htsjdk. + (("depends=\"compile-htsjdk, ") + "depends=\"") + (("depends=\"compile-htsjdk-tests, ") + "depends=\"") + ;; Build picard-lib.jar before building picard.jar + (("name=\"picard-jar\" depends=\"" line) + (string-append line "picard-lib-jar, "))) + #t)))) + (build-system ant-build-system) + (arguments + `(#:build-target "picard-jar" + #:test-target "test" + ;; Tests require jacoco:coverage. + #:tests? #f + #:make-flags + (list (string-append "-Dhtsjdk_lib_dir=" + (assoc-ref %build-inputs "java-htsjdk") + "/share/java/htsjdk/") + "-Dhtsjdk-classes=dist/tmp" + (string-append "-Dhtsjdk-version=" + ,(package-version java-htsjdk))) + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'use-our-htsjdk + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "build.xml" + (("\\$\\{htsjdk\\}/lib") + (string-append (assoc-ref inputs "java-htsjdk") + "/share/java/htsjdk/"))) + #t)) + (add-after 'unpack 'make-test-target-independent + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "build.xml" + (("name=\"test\" depends=\"compile, ") + "name=\"test\" depends=\"")) + #t)) + (replace 'install (install-jars "dist"))))) + (inputs + `(("java-htsjdk" ,java-htsjdk) + ("java-guava" ,java-guava))) + (native-inputs + `(("java-testng" ,java-testng))) + (home-page "http://broadinstitute.github.io/picard/") + (synopsis "Tools for manipulating high-throughput sequencing data and formats") + (description "Picard is a set of Java command line tools for manipulating +high-throughput sequencing (HTS) data and formats. Picard is implemented +using the HTSJDK Java library to support accessing file formats that are +commonly used for high-throughput sequencing data such as SAM, BAM, CRAM and +VCF.") + (license license:expat))) + (define-public htslib (package (name "htslib") -- cgit v1.2.3 From c5ff11dcc160f589685f705f7713c94099067f44 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 19 Nov 2017 22:57:27 +0100 Subject: gnu: Add java-cofoja. * gnu/packages/java.scm (java-cofoja): New variable. --- gnu/packages/java.scm | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 10ed3b6664..748da1d1ef 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6516,6 +6516,62 @@ (define-public java-hdrhistogram the subsequent value resolution at any given level.") (license license:public-domain))) +(define-public java-cofoja + (package + (name "java-cofoja") + (version "1.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nhatminhle/cofoja.git") + (commit (string-append "v" version)))) + (file-name (string-append "java-cofoja-" version "-checkout")) + (sha256 + (base32 + "0p7sz8y5xgpi5rx1qwn6587fkd52qr3ha3ybh14gqcyxhikl525w")))) + (build-system ant-build-system) + (arguments + `(#:build-target "dist" + #:test-target "test" + #:jdk ,icedtea-8 + #:make-flags + (list "-Ddist.dir=dist") + #:modules ((guix build ant-build-system) + (guix build java-utils) + (guix build utils) + (srfi srfi-1) + (ice-9 match)) + #:phases + (modify-phases %standard-phases + ;; The bulid system ignores the class path the ant-build-system sets + ;; up and instead expects to find all dependencies in the "lib" + ;; directory. + (add-after 'unpack 'create-libdir + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "lib") + (for-each + (lambda (file) + (let ((target (string-append "lib/" (basename file)))) + (unless (file-exists? target) + (symlink file target)))) + (append-map (match-lambda + ((label . dir) + (find-files dir "\\.jar$"))) + inputs)) + #t)) + (replace 'install (install-jars "dist"))))) + (inputs + `(("java-asm" ,java-asm))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "https://github.com/nhatminhle/cofoja") + (synopsis "Contracts for Java") + (description "Contracts for Java, or Cofoja for short, is a contract +programming framework and test tool for Java, which uses annotation processing +and bytecode instrumentation to provide run-time checking. (In particular, +this is not a static analysis tool.)") + (license license:lgpl3+))) + (define-public java-aopalliance (package (name "java-aopalliance") -- cgit v1.2.3 From 5e3abfc83f58cc9c5a9b62f1d54ee1fa76614ae4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 19 Nov 2017 22:57:51 +0100 Subject: gnu: Add java-commons-bcel. * gnu/packages/java.scm (java-commons-bcel): New variable. --- gnu/packages/java.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 748da1d1ef..11fccba5dc 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -7236,6 +7236,41 @@ (define-public java-lmax-disruptor message queues or resource locking.") (license license:asl2.0))) +(define-public java-commons-bcel + (package + (name "java-commons-bcel") + (version "6.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/bcel/source/bcel-" + version "-src.tar.gz")) + (sha256 + (base32 + "0j3x1rxd673k07psclk8k13rqh0x0mf2yy5qiwkiw4z3afa568jy")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "bcel.jar" + #:jdk ,icedtea-8 + #:source-dir "src/main/java" + #:test-dir "src/test/java" + ;; FIXME: Tests require the unpackaged jna. + #:tests? #f)) + (home-page "https://commons.apache.org/proper/commons-bcel/") + (synopsis "Byte code engineering library") + (description "The Byte Code Engineering Library (Apache Commons BCEL) is +intended to give users a convenient way to analyze, create, and +manipulate (binary) Java class files. Classes are represented by objects +which contain all the symbolic information of the given class: methods, fields +and byte code instructions, in particular. + +Such objects can be read from an existing file, be transformed by a +program (e.g. a class loader at run-time) and written to a file again. An +even more interesting application is the creation of classes from scratch at +run-time. The @dfn{Byte Code Engineering Library} (BCEL) may be also useful +if you want to learn about the @dfn{Java Virtual Machine} (JVM) and the format +of Java @code{.class} files.") + (license license:asl2.0))) + (define-public java-xerial-core (package (name "java-xerial-core") -- cgit v1.2.3 From 9ce7ac992ef148b9906a7bf0b6ac92bd8ea0d9e2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 20 Nov 2017 14:31:10 +0100 Subject: gnu: Add ant-apache-bcel. * gnu/packages/java.scm (ant-apache-bcel): New variable. --- gnu/packages/java.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 11fccba5dc..d9fa0c4baf 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1753,6 +1753,38 @@ (define-public ant (native-inputs `(("jdk" ,icedtea-7 "jdk"))))) +(define-public ant-apache-bcel + (package + (inherit ant/java8) + (name "ant-apache-bcel") + (arguments + (substitute-keyword-arguments (package-arguments ant/java8) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'link-bcel + (lambda* (#:key inputs #:allow-other-keys) + (for-each (lambda (file) + (symlink file + (string-append "lib/optional/" + (basename file)))) + (find-files (assoc-ref inputs "java-commons-bcel") + "\\.jar$")) + #t)) + (add-after 'build 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/java")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib"))) + (mkdir-p share) + (install-file (string-append lib "/ant-apache-bcel.jar") share) + (delete-file-recursively bin) + (delete-file-recursively lib) + #t))))))) + (inputs + `(("java-commons-bcel" ,java-commons-bcel) + ,@(package-inputs ant/java8))))) + (define-public clojure (let* ((remove-archives '(begin (for-each delete-file -- cgit v1.2.3 From fa6c4213c6bdd435cf1cbf1afa37ed6d69db5d2d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 20 Nov 2017 14:31:34 +0100 Subject: gnu: Add ant-junit. * gnu/packages/java.scm (ant-junit): New variable. --- gnu/packages/java.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index d9fa0c4baf..e2b30e355c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1785,6 +1785,38 @@ (define-public ant-apache-bcel `(("java-commons-bcel" ,java-commons-bcel) ,@(package-inputs ant/java8))))) +(define-public ant-junit + (package + (inherit ant/java8) + (name "ant-junit") + (arguments + (substitute-keyword-arguments (package-arguments ant/java8) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'link-junit + (lambda* (#:key inputs #:allow-other-keys) + (for-each (lambda (file) + (symlink file + (string-append "lib/optional/" + (basename file)))) + (find-files (assoc-ref inputs "java-junit") + "\\.jar$")) + #t)) + (add-after 'build 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/java")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib"))) + (mkdir-p share) + (install-file (string-append lib "/ant-junit.jar") share) + (delete-file-recursively bin) + (delete-file-recursively lib) + #t))))))) + (inputs + `(("java-junit" ,java-junit) + ,@(package-inputs ant/java8))))) + (define-public clojure (let* ((remove-archives '(begin (for-each delete-file -- cgit v1.2.3 From d7f24778debbee3c80d3086fb8a4c81b40ad9bbf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 20 Nov 2017 15:32:27 +0100 Subject: gnu: Add java-picard-1.113. * gnu/packages/bioinformatics.scm (java-picard-1.113): New variable. --- gnu/packages/bioinformatics.scm | 114 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 636e912ce5..833376ac21 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3086,6 +3086,120 @@ (define-public java-picard VCF.") (license license:expat))) +;; This is the last version of Picard to provide net.sf.samtools +(define-public java-picard-1.113 + (package (inherit java-picard) + (name "java-picard") + (version "1.113") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/broadinstitute/picard.git") + (commit version))) + (file-name (string-append "java-picard-" version "-checkout")) + (sha256 + (base32 + "0lkpvin2fz3hhly4l02kk56fqy8lmlgyzr9kmvljk6ry6l1hw973")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete pre-built binaries. + (delete-file-recursively "lib") + (mkdir-p "lib") + #t)))) + (build-system ant-build-system) + (arguments + `(#:build-target "picard-jar" + #:test-target "test" + ;; FIXME: the class path at test time is wrong. + ;; [testng] Error: A JNI error has occurred, please check your installation and try again + ;; [testng] Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException + #:tests? #f + #:jdk ,icedtea-8 + ;; This is only used for tests. + #:make-flags + (list "-Dsamjdk.intel_deflater_so_path=lib/jni/libIntelDeflater.so") + #:phases + (modify-phases %standard-phases + ;; Do not use bundled ant bzip2. + (add-after 'unpack 'use-ant-bzip + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "build.xml" + (("\\$\\{lib\\}/apache-ant-1.8.2-bzip2.jar") + (string-append (assoc-ref inputs "ant") + "/lib/ant.jar"))) + #t)) + (add-after 'unpack 'make-test-target-independent + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "build.xml" + (("name=\"test\" depends=\"compile, ") + "name=\"test\" depends=\"compile-tests, ") + (("name=\"compile\" depends=\"compile-src, compile-tests\"") + "name=\"compile\" depends=\"compile-src\"")) + #t)) + (add-after 'unpack 'fix-deflater-path + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "src/java/net/sf/samtools/Defaults.java" + (("getStringProperty\\(\"intel_deflater_so_path\", null\\)") + (string-append "getStringProperty(\"intel_deflater_so_path\", \"" + (assoc-ref outputs "out") + "/lib/jni/libIntelDeflater.so" + "\")"))) + #t)) + ;; Build the deflater library, because we've previously deleted the + ;; pre-built one. This can only be built with access to the JDK + ;; sources. + (add-after 'build 'build-jni + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "lib/jni") + (mkdir-p "jdk-src") + (and (zero? (system* "tar" "--strip-components=1" "-C" "jdk-src" + "-xf" (assoc-ref inputs "jdk-src"))) + (zero? (system* "javah" "-jni" + "-classpath" "classes" + "-d" "lib/" + "net.sf.samtools.util.zip.IntelDeflater")) + (with-directory-excursion "src/c/inteldeflater" + (zero? (system* "gcc" "-I../../../lib" "-I." + (string-append "-I" (assoc-ref inputs "jdk") + "/include/linux") + "-I../../../jdk-src/src/share/native/common/" + "-I../../../jdk-src/src/solaris/native/common/" + "-c" "-O3" "-fPIC" "IntelDeflater.c")) + (zero? (system* "gcc" "-shared" + "-o" "../../../lib/jni/libIntelDeflater.so" + "IntelDeflater.o" "-lz" "-lstdc++")))))) + ;; We can only build everything else after building the JNI library. + (add-after 'build-jni 'build-rest + (lambda* (#:key make-flags #:allow-other-keys) + (zero? (apply system* `("ant" "all" ,@make-flags))))) + (add-before 'build 'set-JAVA6_HOME + (lambda _ + (setenv "JAVA6_HOME" (getenv "JAVA_HOME")) + #t)) + (replace 'install (install-jars "dist")) + (add-after 'install 'install-jni-lib + (lambda* (#:key outputs #:allow-other-keys) + (let ((jni (string-append (assoc-ref outputs "out") + "/lib/jni"))) + (mkdir-p jni) + (install-file "lib/jni/libIntelDeflater.so" jni) + #t)))))) + (inputs + `(("java-snappy-1" ,java-snappy-1) + ("java-commons-jexl-2" ,java-commons-jexl-2) + ("java-cofoja" ,java-cofoja) + ("ant" ,ant) ; for bzip2 support at runtime + ("zlib" ,zlib))) + (native-inputs + `(("ant-apache-bcel" ,ant-apache-bcel) + ("ant-junit" ,ant-junit) + ("java-testng" ,java-testng) + ("java-commons-bcel" ,java-commons-bcel) + ("java-jcommander" ,java-jcommander) + ("jdk" ,icedtea-8 "jdk") + ("jdk-src" ,(car (assoc-ref (package-native-inputs icedtea-8) "jdk-drop"))))))) + (define-public htslib (package (name "htslib") -- cgit v1.2.3 From 776d2fb1bff1279b68e3eaab08f858264e79ae79 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 20 Nov 2017 15:44:48 +0100 Subject: gnu: Add java-jbzip2. * gnu/packages/compression.scm (java-jbzip2): New variable. --- gnu/packages/compression.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index f6d4c12e0c..1dd98d5ea4 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1314,6 +1314,46 @@ (define (test class) created by the original C++ code, and extremely fast.") (license license:asl2.0))) +(define-public java-jbzip2 + (package + (name "java-jbzip2") + (version "0.9.1") + (source (origin + (method url-fetch) + (uri (string-append "https://storage.googleapis.com/" + "google-code-archive-source/v2/" + "code.google.com/jbzip2/" + "source-archive.zip")) + (file-name (string-append name "-" version ".zip")) + (sha256 + (base32 + "0ncmhlqmrfmj96nqf6p77b9ws35lcfsvpfxzwxi2asissc83z1l3")))) + (build-system ant-build-system) + (native-inputs + `(("unzip" ,unzip) + ("java-junit" ,java-junit))) + (arguments + `(#:tests? #f ; no tests + #:jar-name "jbzip2.jar" + #:source-dir "tags/release-0.9.1/src" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-encoding-problems + (lambda _ + ;; Some of the files we're patching are + ;; ISO-8859-1-encoded, so choose it as the default + ;; encoding so the byte encoding is preserved. + (with-fluids ((%default-port-encoding #f)) + (substitute* "tags/release-0.9.1/src/org/itadaki/bzip2/HuffmanAllocator.java" + (("Milidi.") "Milidiu"))) + #t))))) + (home-page "https://code.google.com/archive/p/jbzip2/") + (synopsis "Java bzip2 compression/decompression library") + (description "Jbzip2 is a Java bzip2 compression/decompression library. +It can be used as a replacement for the Apache @code{CBZip2InputStream} / +@code{CBZip2OutputStream} classes.") + (license license:expat))) + (define-public p7zip (package (name "p7zip") -- cgit v1.2.3 From e0840905540ef039aa8a87c8e431107be6599a29 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 27 Nov 2017 13:24:35 +0100 Subject: gnu: guile-wisp: Update to 0.9.8. * gnu/packages/guile.scm (guile-wisp): Update to 0.9.8. [inputs]: Remove PYTHON. [native-inputs]: New field. [arguments]: Keep 'install' phase. Add 'install-go-files' phase. Adjust 'substitute-before-config' phase. --- gnu/packages/guile.scm | 54 +++++++++++++++++++------------------------------- 1 file changed, 20 insertions(+), 34 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 4d7cf14987..5c8896af9f 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1263,7 +1263,7 @@ (define-public guile2.2-redis (define-public guile-wisp (package (name "guile-wisp") - (version "0.9.0") + (version "0.9.8") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/ArneBab/" @@ -1271,25 +1271,23 @@ (define-public guile-wisp version ".tar.gz")) (sha256 (base32 - "0y5fxacalkgbv9s71h58vdvm2h2ln3rk024dd0vszwcf953as5fq")))) + "1f2bbicq1rxnwmiplrm4r75wj06w385mjkyvi7g4k740bgwcrzxr")))) (build-system gnu-build-system) (arguments `(#:modules ((system base compile) ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases - (add-before - 'configure 'substitute-before-config + (add-before 'configure 'substitute-before-config (lambda* (#:key inputs #:allow-other-keys) (let ((bash (assoc-ref inputs "bash"))) - ;; configure checks for guile-2.0, but ours is just named "guile" :) - (substitute* "configure" - (("guile-2.0") "guile")) ;; Puts together some test files with /bin/bash hardcoded (substitute* "Makefile.in" - (("/bin/bash") - (string-append bash "/bin/bash") )) + (("/usr/bin/env bash") + (string-append bash "/bin/bash")) + (("\\$\\(GUILE_EFFECTIVE_VERSION\\)/site") + "site/$(GUILE_EFFECTIVE_VERSION)")) ;use the right order #t))) ;; auto compilation breaks, but if we set HOME to /tmp, @@ -1299,37 +1297,25 @@ (define-public guile-wisp (lambda _ (setenv "HOME" "/tmp") #t)) - (replace - 'install + (add-after 'install 'install-go-files (lambda* (#:key outputs inputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (module-dir (string-append out "/share/guile/site/2.0")) - (language-dir - (string-append module-dir "/language/wisp")) - (guild (string-append (assoc-ref inputs "guile") - "/bin/guild"))) - ;; Make installation directories. - (mkdir-p module-dir) - (mkdir-p language-dir) - - ;; copy the source - (copy-file "wisp-scheme.scm" - (string-append module-dir "/wisp-scheme.scm")) - (copy-file "language/wisp/spec.scm" - (string-append language-dir "/spec.scm")) - + (module-dir (string-append out "/share/guile/site"))) ;; compile to the destination - (compile-file "wisp-scheme.scm" - #:output-file (string-append - module-dir "/wisp-scheme.go")) - (compile-file "language/wisp/spec.scm" - #:output-file (string-append - language-dir "/spec.go")) + (for-each (lambda (file) + (compile-file file + #:output-file + (string-append + (string-drop-right file 4) + ".go"))) + (find-files module-dir "\\.scm$")) #t)))))) (home-page "http://draketo.de/english/wisp") (inputs - `(("guile" ,guile-2.0) - ("python" ,python))) + `(("guile" ,guile-2.0))) + (native-inputs + `(("python" ,python) + ("pkg-config" ,pkg-config))) (synopsis "Whitespace to lisp syntax for Guile") (description "Wisp is a syntax for Guile which provides a Python-like whitespace-significant language. It may be easier on the eyes for some -- cgit v1.2.3 From 89c4bfe7f84044a973e2d8b52b6c3a2cf0f5d9d3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 27 Nov 2017 13:52:21 +0100 Subject: gnu: guile-wisp: Switch to Guile 2.2. * gnu/packages/guile.scm (guile-wisp)[inputs]: Use GUILE-2.2 instead of GUILE-2.0. --- gnu/packages/guile.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 5c8896af9f..6d9c428521 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1312,7 +1312,7 @@ (define-public guile-wisp #t)))))) (home-page "http://draketo.de/english/wisp") (inputs - `(("guile" ,guile-2.0))) + `(("guile" ,guile-2.2))) (native-inputs `(("python" ,python) ("pkg-config" ,pkg-config))) -- cgit v1.2.3 From e8374e6912718dad6b39a18ccc57fc735d2e4c4d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 27 Nov 2017 14:03:50 +0100 Subject: gnu: guile-wisp: Move .go files to 'lib/guile/2.2/site-ccache'. * gnu/packages/guile.scm (guile-wisp)[arguments]: Remove (system base compile) from #:modules, and (ice-9 rdelim) and (ice-9 popen). In 'install-go-files' phase, invoke 'guild' to compile, and write to lib/guile/X.Y/site-ccache. --- gnu/packages/guile.scm | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 6d9c428521..fef15b4dc4 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1274,8 +1274,11 @@ (define-public guile-wisp "1f2bbicq1rxnwmiplrm4r75wj06w385mjkyvi7g4k740bgwcrzxr")))) (build-system gnu-build-system) (arguments - `(#:modules ((system base compile) - ,@%gnu-build-system-modules) + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 rdelim) + (ice-9 popen)) + #:phases (modify-phases %standard-phases (add-before 'configure 'substitute-before-config @@ -1300,14 +1303,22 @@ (define-public guile-wisp (add-after 'install 'install-go-files (lambda* (#:key outputs inputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (module-dir (string-append out "/share/guile/site"))) + (effective (read-line + (open-pipe* OPEN_READ + "guile" "-c" + "(display (effective-version))"))) + (module-dir (string-append out "/share/guile/site/" + effective)) + (object-dir (string-append out "/lib/guile/" effective + "/site-ccache")) + (prefix (string-length module-dir))) ;; compile to the destination (for-each (lambda (file) - (compile-file file - #:output-file - (string-append - (string-drop-right file 4) - ".go"))) + (let* ((base (string-drop (string-drop-right file 4) + prefix)) + (go (string-append object-dir base ".go"))) + (invoke "guild" "compile" "-L" module-dir + file "-o" go))) (find-files module-dir "\\.scm$")) #t)))))) (home-page "http://draketo.de/english/wisp") -- cgit v1.2.3 From 216614a4b303492289ac11513953e47a30a68517 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Nov 2017 09:20:39 +0100 Subject: gnu: youtube-dl: Update to 2017.11.26. * gnu/packages/video.scm (youtube-dl): Update to 2017.11.26. --- 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 7720c5ac76..ca733297b8 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1142,7 +1142,7 @@ (define-public libvpx (define-public youtube-dl (package (name "youtube-dl") - (version "2017.11.15") + (version "2017.11.26") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1150,7 +1150,7 @@ (define-public youtube-dl version ".tar.gz")) (sha256 (base32 - "1s0c0jnil4rnymj2nzjjv75p4lmk4h67kvxvjv2azknhmax7gcc8")))) + "0nidgmi003my4ypl833hsavnmxg41rncc9khxsvmc96di7n0mls7")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion -- cgit v1.2.3 From 5f169014ecc9647cb17ee6f23b9c84fc32f1c3d0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Nov 2017 09:21:30 +0100 Subject: gnu: borg: Update to 1.1.3 [fixes CVE-2017-15914]. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/backup.scm (borg): Update to 1.1.3. [arguments]: Skip ‘test_mount_hardlinks’ test. --- gnu/packages/backup.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index c83809cdf2..b1c5d4b3f8 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -466,13 +466,13 @@ (define-public libchop (define-public borg (package (name "borg") - (version "1.1.2") + (version "1.1.3") (source (origin (method url-fetch) (uri (pypi-uri "borgbackup" version)) (sha256 (base32 - "00jmbfysdpsb2vcckamvsxw5n8xqh4j67diam2p0lmqzsn92syq9")) + "1rvn8b6clzd1r317r9jkvk34r31risi0dxfjc7jffhnwasck4anc")) (modules '((guix build utils))) (snippet '(for-each @@ -521,7 +521,8 @@ (define-public borg "and not benchmark " ;; These tests assume the kernel supports FUSE. "and not test_fuse " - "and not test_fuse_allow_damaged_files")))))) + "and not test_fuse_allow_damaged_files " + "and not test_mount_hardlinks")))))) (add-after 'install 'install-doc (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) -- cgit v1.2.3 From 36c5cf758c009489d88c0122ea2f706b53eb4e3f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 24 Nov 2017 23:35:42 +0100 Subject: gnu: rapicorn: Update home page. * gnu/packages/graphics.scm (rapicorn)[home-page]: Use extant domain. --- gnu/packages/graphics.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 3ffb4dd25c..249bbb6df1 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis ;;; Copyright © 2017 Ben Woodcroft +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -500,7 +501,7 @@ (define-public rapicorn ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("xvfb" ,xorg-server))) - (home-page "http://rapicorn.org") + (home-page "https://rapicorn.testbit.org/") (synopsis "Toolkit for rapid development of user interfaces") (description "Rapicorn is a toolkit for rapid development of user interfaces in C++ -- cgit v1.2.3 From d152d9338f48c631c7153b2533881dfff53630a9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 25 Nov 2017 05:10:46 +0100 Subject: gnu: python-pyicu: Update to 1.9.8. * gnu/packages/python.scm (python-pyicu): Update to 1.9.8. [arguments]: Delete. [native-inputs]: Add python-pytest and python-six. --- gnu/packages/python.scm | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d46119718b..a57197658f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1109,26 +1109,20 @@ (define-public python2-simplejson (define-public python-pyicu (package (name "python-pyicu") - (version "1.9.5") + (version "1.9.8") (source (origin (method url-fetch) (uri (pypi-uri "PyICU" version)) (sha256 (base32 - "16rmxy9y0qhqqna2v49i7nzwm09as699rbyvh4raw7w602w55c3k")))) + "05nz4p2dpkhwj6y9kik24xbvmfxji39nl0xw0sc0nvp9fgzf6xnd")))) (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-before 'check 'delete-failing-test - (lambda _ - ;; XXX: These tests require locales that are unavailable - ;; in the build environment. - (delete-file "test/test_DateTimeParserGenerator.py") - #t))))) (inputs `(("icu4c" ,icu4c))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-six" ,python-six))) (home-page "http://pyicu.osafoundation.org/") (synopsis "Python extension wrapping the ICU C++ API") (description -- cgit v1.2.3 From 8fab029dbc973b9e8dac6b024e3bccceada7eee4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 25 Nov 2017 05:06:43 +0100 Subject: gnu: python-pyicu: Update home page. * gnu/packages/python.scm (python-pyicu)[home-page]: Update. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a57197658f..b4ed011bc8 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1123,7 +1123,7 @@ (define-public python-pyicu (native-inputs `(("python-pytest" ,python-pytest) ("python-six" ,python-six))) - (home-page "http://pyicu.osafoundation.org/") + (home-page "https://github.com/ovalhub/pyicu") (synopsis "Python extension wrapping the ICU C++ API") (description "PyICU is a python extension wrapping the ICU C++ API.") -- cgit v1.2.3 From b46ea394a402c77248f8e130d1587fa48c0debba Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 25 Nov 2017 16:25:50 +0100 Subject: gnu: python-prompt-toolkit: Update to 1.0.15. * gnu/packages/python.scm (python-prompt-toolkit): Update to 1.0.15. --- 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 b4ed011bc8..7b2268d133 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8906,14 +8906,14 @@ (define-public python2-backpack (define-public python-prompt-toolkit (package (name "python-prompt-toolkit") - (version "1.0.9") + (version "1.0.15") (source (origin (method url-fetch) (uri (pypi-uri "prompt_toolkit" version ".tar.gz")) (sha256 (base32 - "172r15k9kwdw2lnajvpz1632dd16nqz1kcal1p0lq5ywdarj6rfd")))) + "05v9h5nydljwpj5nm8n804ms0glajwfy1zagrzqrg91wk3qqi1c5")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; The test suite uses some Windows-specific data types. -- cgit v1.2.3 From 18533bcf2de0d4e8774c90f8f737ca627a18f91e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Nov 2017 07:57:35 +0100 Subject: gnu: borg: Use new borgbackup.org home page. * gnu/packages/backup.scm (borg)[home-page]: Update. --- gnu/packages/backup.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index b1c5d4b3f8..f021aa83d8 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -560,7 +560,7 @@ (define-public borg technique used makes Borg suitable for daily backups since only changes are stored. The authenticated encryption technique makes it suitable for backups to not fully trusted targets. Borg is a fork of Attic.") - (home-page "https://borgbackup.github.io/borgbackup/") + (home-page "https://www.borgbackup.org/") (license license:bsd-3))) (define-public attic -- cgit v1.2.3 From 26ff9cb3706d91049f0d95fc6fbc498111392540 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Nov 2017 16:16:20 +0100 Subject: gnu: libzip: Run all tests. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/compression.scm (libzip)[arguments]: Delete ‘remove-failing-stest’ phase. --- gnu/packages/compression.scm | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 1dd98d5ea4..6b8b28b9ff 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1833,16 +1833,6 @@ (define-public libzip (sha256 (base32 "11g1hvm2bxa2v5plakfzcwyk5hb5fz4kgrkp38l0xhnv21888xv2")))) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'build 'remove-failing-tests - ;; These tests are known to fail on 32-bit architectures. - ;; see thread: https://nih.at/listarchive/libzip-discuss/msg00713.html - (lambda _ - (substitute* "regress/Makefile" - (("encryption-nonrandom") "#encryption-nonrandom")) - #t))))) (native-inputs `(("perl" ,perl))) (inputs -- cgit v1.2.3 From ac25f5972d6c8c7584f8da4448c3ee55253f1065 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Nov 2017 16:35:28 +0100 Subject: gnu: glade@3: Update to 3.20.2. * gnu/packages/gnome.scm (glade3): Update to 3.20.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8378bee3dc..731fe13841 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1069,7 +1069,7 @@ (define-public gtkglext (define-public glade3 (package (name "glade") - (version "3.20.1") + (version "3.20.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1077,7 +1077,7 @@ (define-public glade3 name "-" version ".tar.xz")) (sha256 (base32 - "1pxikhzdzd092d4x3nacf5gfzi3mvhywrhcfqc07xakbsinnfr40")))) + "1vdbqqvf6nrkqml4awrq4pzfwsm5v39wdzg943nys6lmf1am9l87")))) (build-system glib-or-gtk-build-system) (arguments `(#:tests? #f ; needs X, GL, and software rendering -- cgit v1.2.3 From 47aba9ddc9a01a14b809031e2bc441acdf1d89a6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Nov 2017 16:40:09 +0100 Subject: gnu: libgweather: Update to 3.26.1. * gnu/packages/gnome.scm (libgweather): Update to 3.26.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 731fe13841..9413e9ff4e 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2949,7 +2949,7 @@ (define-public upower (define-public libgweather (package (name "libgweather") - (version "3.26.0") + (version "3.26.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2957,7 +2957,7 @@ (define-public libgweather name "-" version ".tar.xz")) (sha256 (base32 - "0vkbc8rvmrlfiws844izxfl01r6l9p6agf8vvgszzkry1gfbm12v")))) + "1f64ix7acj0j0qvxwxaazii2bhsjgh5ang1kw14fkg25ndq899zw")))) (build-system gnu-build-system) (arguments `(#:configure-flags -- cgit v1.2.3 From 778c4a2fa1fc2a890f8a5722334b234158ccb636 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Nov 2017 16:43:36 +0100 Subject: gnu: rhythmbox: Update to 3.4.2. * gnu/packages/gnome.scm (rhythmbox): Update to 3.4.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9413e9ff4e..9a46495f10 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3691,7 +3691,7 @@ (define-public totem (define-public rhythmbox (package (name "rhythmbox") - (version "3.4.1") + (version "3.4.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3699,7 +3699,7 @@ (define-public rhythmbox name "-" version ".tar.xz")) (sha256 (base32 - "1dj1hgdyhmwzs6h2zr89b1ipk0p6g7x74rfz56a5yjds3ik8d7q3")))) + "0hzcns8gf5yb0rm4ss8jd8qzarcaplp5cylk6plwilsqfvxj4xn2")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags -- cgit v1.2.3 From 7832785deff1bf7907b072ef81d47d426425ad3b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 22 Jun 2017 01:21:52 +0200 Subject: gnu: steghide: Fix description. * gnu/packages/image.scm (steghide)[description]: Remove typos and improve grammar. --- gnu/packages/image.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index a183817dbd..0e1f025563 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2016, 2017 Efraim Flashner -;;; Copyright © 2016 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2016 Eric Bavier ;;; Copyright © 2016 Arun Isaac ;;; Copyright © 2016, 2017 Kei Kebreau @@ -1054,10 +1054,9 @@ (define-public steghide (home-page "http://steghide.sourceforge.net") (synopsis "Image and audio steganography") (description - "Steghide is a steganography program that is able to hide data in various -kinds of image- and audio-files. The color- respectivly sample-frequencies -are not changed thus making the embedding resistant against first-order -statistical tests.") + "Steghide is a program to hide data in various kinds of image and audio +files (known as @dfn{steganography}). Neither color nor sample frequencies are +changed, making the embedding resistant against first-order statistical tests.") (license license:gpl2+))) (define-public stb-image-for-extempore -- cgit v1.2.3 From 14e09e903994ebfd31ace7345a38bc90ae9bac20 Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Mon, 27 Nov 2017 12:30:22 +0100 Subject: gnu: monero: Update to 0.11.1.0. * gnu/packages/finance.scm (monero): Update to 0.11.1.0. Signed-off-by: Leo Famulari --- gnu/packages/finance.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index a0febba01c..2b9e941c33 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2017 Theodoros Foradis +;;; Copyright © 2017 Vasile Dumitrascu ;;; ;;; This file is part of GNU Guix. ;;; @@ -319,7 +320,7 @@ (define-public monero ;; the system's dynamically linked library. (package (name "monero") - (version "0.11.0.0") + (version "0.11.1.0") (source (origin (method url-fetch) @@ -337,7 +338,7 @@ (define-public monero #t)) (sha256 (base32 - "083w40a553c0r3i18020jcrv5s0b64vx3d8xrn9nwkb2237ighlk")))) + "16shd834025jyzy68h3gag1sz8vbk875hy4j97hrki8pacz8vd5m")))) (build-system cmake-build-system) (native-inputs `(("doxygen" ,doxygen) -- cgit v1.2.3 From 12a130b0118c3f56e6337e011dc4a89f2671359a Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Mon, 27 Nov 2017 12:30:23 +0100 Subject: gnu: monero-core: Update to 0.11.1.0. * gnu/packages/finance.scm (monero-core): Update to 0.11.1.0. Signed-off-by: Leo Famulari --- gnu/packages/finance.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 2b9e941c33..9492376ba3 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -419,7 +419,7 @@ (define-public monero (define-public monero-core (package (name "monero-core") - (version "0.11.0.0") + (version "0.11.1.0") (source (origin (method url-fetch) @@ -428,7 +428,7 @@ (define-public monero-core (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0hnrkgwb1sva67pcjym2gvb4zifp2s849dfbnjzbxk3yczpcyqzg")))) + "1q7a9kpcjgp74fbplzs2iszdld6gwbfrydyd9in9izhwp100p1rr")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) -- cgit v1.2.3 From 080e023d45d4553ad419ee9f09088ad3a110a512 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 27 Nov 2017 13:28:53 -0500 Subject: gnu: openntpd: Enable use of TLS-based time constraints. * gnu/packages/ntp.scm (openntpd)[inputs]: Add libressl. --- gnu/packages/ntp.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index b3b4453945..d270f513dc 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -107,6 +107,8 @@ (define-public openntpd (base32 "0fn12i4kzsi0zkr4qp3dp9bycmirnfapajqvdfx02zhr4hanj0kv")))) (build-system gnu-build-system) + (inputs + `(("libressl" ,libressl))) ; enable TLS time constraints. See ntpd.conf(5). (home-page "http://www.openntpd.org/") (synopsis "NTP client and server by the OpenBSD Project") (description "OpenNTPD is the OpenBSD Project's implementation of a client -- cgit v1.2.3 From 5823396404bf8fc04cf0d392980bf463323014b1 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Fri, 24 Nov 2017 23:08:14 +0000 Subject: services: desktop: Create /var/run/udisks2 for the udisks service. * gnu/services/desktop.scm (%udisks-activation): New variable. (udisks-service-type)[extensions]: Extend the activation service type with %udisks-activation. --- gnu/services/desktop.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 4b5100c27a..ec33e1d5ec 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -507,6 +507,15 @@ (define-record-type* (udisks udisks-configuration-udisks (default udisks))) +(define %udisks-activation + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (let ((run-dir "/var/run/udisks2")) + (mkdir-p run-dir) + (chmod run-dir #o700))))) + (define udisks-service-type (let ((udisks-package (lambda (config) (list (udisks-configuration-udisks config))))) @@ -518,6 +527,8 @@ (define udisks-service-type udisks-package) (service-extension udev-service-type udisks-package) + (service-extension activation-service-type + (const %udisks-activation)) ;; Profile 'udisksctl' & co. in the system profile. (service-extension profile-service-type -- cgit v1.2.3 From 03800de1800613314fb2af59a515d75551cbb18f Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Fri, 24 Nov 2017 23:10:27 +0000 Subject: gnu: Patch udisks to directly reference cryptsetup and parted. This fixes some functionality in gnome-disks, which uses udisks. Adding cryptsetup enables creating partitions using LUKS, and adding parted enables editing the partition tables through the disks application. * gnu/packages/freedesktop.scm (udisks)[inputs]: Add cryptsetup and parted. (arguments): Rename set-mount-file-name phase, and add cryptsetup and parted. --- gnu/packages/freedesktop.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index cac1f67c52..c82fc62932 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -40,7 +40,9 @@ (define-module (gnu packages freedesktop) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages cryptsetup) #:use-module (gnu packages databases) + #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages gettext) @@ -613,7 +615,9 @@ (define-public udisks ("libatasmart" ,libatasmart) ("libgudev" ,libgudev) ("polkit" ,polkit) - ("util-linux" ,util-linux))) + ("util-linux" ,util-linux) + ("cryptsetup" ,cryptsetup) + ("parted" ,parted))) (outputs '("out" "doc")) ;5 MiB of gtk-doc HTML (arguments @@ -653,14 +657,22 @@ (define-public udisks "girdir = $(datadir)/gir-1.0\n") (("typelibsdir = .*") "typelibsdir = $(libdir)/girepository-1.0\n")))) - (add-after 'install 'set-mount-file-name + (add-after 'install 'wrap-udisksd (lambda* (#:key outputs inputs #:allow-other-keys) ;; Tell 'udisksd' where to find the 'mount' command. (let ((out (assoc-ref outputs "out")) - (utils (assoc-ref inputs "util-linux"))) + (utils (assoc-ref inputs "util-linux")) + (cryptsetup (assoc-ref inputs "cryptsetup")) + (parted (assoc-ref inputs "parted"))) (wrap-program (string-append out "/libexec/udisks2/udisksd") `("PATH" ":" prefix (,(string-append utils "/bin") ;for 'mount' + ;; cryptsetup is required for setting encrypted + ;; partitions, e.g. in gnome-disks + ,(string-append cryptsetup "/sbin") + ;; parted is required for managing partitions, e.g. in + ;; gnome-disks + ,(string-append parted "/sbin") "/run/current-system/profile/bin" "/run/current-system/profile/sbin"))) #t)))))) -- cgit v1.2.3 From b200ecdeb2ba97bcaeec04a4da5e31736f00a5ea Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 26 Nov 2017 21:23:39 +0200 Subject: gnu: Add gama. * gnu/packages/gps.scm (gama): New variable. --- gnu/packages/gps.scm | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index 10592c23ec..abdd024731 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +26,7 @@ (define-module (gnu packages gps) #:use-module (gnu packages base) #:use-module (gnu packages pkg-config) #:use-module (gnu packages compression) + #:use-module (gnu packages databases) #:use-module (gnu packages docbook) #:use-module (gnu packages image) #:use-module (gnu packages xml) @@ -131,3 +132,31 @@ (define-public gpscorrelate finding a data point in the GPS track that matches, or interpolating a point between two other data points.") (license license:gpl2+)))) + +(define-public gama + (package + (name "gama") + (version "1.21") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gama/gama-" + version ".tar.gz")) + (sha256 + (base32 + "0yy8czw5dldbw1qj5v2h2wfh397bfx5wd3lrrgs8m1qdf1njnhcq")))) + (build-system gnu-build-system) + (arguments '(#:parallel-tests? #f)) ; race condition + (native-inputs + `(("libxml2" ,libxml2))) + (inputs + `(("expat" ,expat) + ("sqlite" ,sqlite))) + (home-page "https://www.gnu.org/software/gama") + (synopsis "Adjustment of geodetic networks") + (description + "GNU Gama is a program for the adjustment of geodetic networks. It is +useful in measurements where Global Positioning System (GPS) is not available, +such as underground. It features the ability to adjust in local Cartesian +coordinates as well as partial support for adjustments in global coordinate systems.") + (license license:gpl3+))) -- cgit v1.2.3 From aad2dbfb6ca80085e9d96417262177d8d9c6718b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 26 Nov 2017 20:26:43 +0200 Subject: gnu: Add vim-fugitive. * gnu/packages/vim.scm (vim-fugitive): New variable. --- gnu/packages/vim.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 0163662d10..85ccf9c9d1 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -440,6 +440,46 @@ (define-public vim-context-filetype (home-page "https://github.com/Shougo/context_filetype.vim") (license license:expat)))) ; ??? check again +;; The 2.2 release was in 2015, no new releases planned. +(define-public vim-fugitive + (let ((commit "de6c05720cdf74c0218218d7207f700232a5b6dc") + (revision "1")) + (package + (name "vim-fugitive") + (version (string-append "2.2-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tpope/vim-fugitive.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0zg9vv7hirnx45vc2mwgg0xijmwwz55bssyd6cpdz71wbhrcpxxb")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/vim/vimfiles")) + (doc (string-append vimfiles "/doc")) + (plugin (string-append vimfiles "/plugin"))) + (copy-recursively "doc" doc) + (copy-recursively "plugin" plugin) + #t)))))) + (home-page "https://github.com/tpope/vim-fugitive") + (synopsis "Vim plugin to work with Git") + (description "Vim-fugitive is a wrapper for Vim that complements the +command window, where you can stage and review your changes before the next +commit or run any Git arbitrary command.") + (license license:vim)))) ; distributed under the same license as vim + (define-public vim-airline (package (name "vim-airline") -- cgit v1.2.3 From 1aace3dc34d703ebabc47057dc7efb98e38d2340 Mon Sep 17 00:00:00 2001 From: ng0 Date: Mon, 27 Nov 2017 15:53:02 +0000 Subject: gnu: gnurl: Update to 7.56.1-2. * gnu/packages/gnunet.scm (gnurl): Update to 7.56.1-2. [arguments]: Adjust the #:configure-flags. Signed-off-by: Leo Famulari --- gnu/packages/gnunet.scm | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index b17a39ccf9..7e1e1d902c 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015 Efraim Flashner ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Mark H Weaver -;;; Copyright © 2016, 2017 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -186,14 +186,14 @@ (define-public libmicrohttpd (define-public gnurl (package (name "gnurl") - (version "7.56.1") + (version "7.56.1-2") (source (origin (method url-fetch) (uri (string-append "https://gnunet.org/sites/default/files/" name "-" version ".tar.bz2")) (sha256 (base32 - "0phbs3lw0a561fqsj4fyngmpaznjlnx4qx9n9xzglivy69r9j1n8")))) + "092lpwjdg0z5bbf6i331ydm49qy05xrb3vagggmpi8pl7v3zv88j")))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 1.5 MiB of man3 pages @@ -207,17 +207,7 @@ (define-public gnurl ("pkg-config" ,pkg-config) ("python" ,python-2))) (arguments - `(#:configure-flags '("--enable-ipv6" "--with-gnutls" "--without-libssh2" - "--without-libmetalink" "--without-winidn" - "--without-librtmp" "--without-nghttp2" - "--without-nss" "--without-cyassl" - "--without-polarssl" "--without-ssl" - "--without-winssl" "--without-darwinssl" - "--disable-sspi" "--disable-ntlm-wb" - "--disable-ldap" "--disable-rtsp" "--disable-dict" - "--disable-telnet" "--disable-tftp" "--disable-pop3" - "--disable-imap" "--disable-smtp" "--disable-gopher" - "--disable-file" "--disable-ftp" "--disable-smb") + `(#:configure-flags (list "--disable-ntlm-wb") #:test-target "test" #:parallel-tests? #f #:phases -- cgit v1.2.3 From 149b2c439e226c62e549bad7eecd649e1a3b8021 Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Sat, 25 Nov 2017 03:12:07 +0100 Subject: gnu: lua-lpeg: Avoid code repetition. * gnu/packages/lua.scm (make-lua-lpeg): New procedure. (lua-lpeg, lua5.2-lpeg): Call make-lua-lpeg. --- gnu/packages/lua.scm | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 1667bad8dc..d5f55b9631 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -356,9 +356,9 @@ (define-public lua-lgi Notable examples are GTK+, GStreamer and Webkit.") (license license:expat))) -(define-public lua-lpeg +(define (make-lua-lpeg name lua) (package - (name "lua-lpeg") + (name name) (version "1.0.1") (source (origin (method url-fetch) @@ -390,29 +390,11 @@ (define-public lua-lpeg (home-page "http://www.inf.puc-rio.br/~roberto/lpeg") (license license:expat))) +(define-public lua-lpeg + (make-lua-lpeg "lua-lpeg" lua)) + (define-public lua5.2-lpeg - (package (inherit lua-lpeg) - (name "lua5.2-lpeg") - ;; XXX: The arguments field is almost an exact copy of the field in - ;; "lua-lpeg", except for the version string, which was derived from "lua" - ;; and now is taken from "lua-5.2". See this discussion for context: - ;; http://lists.gnu.org/archive/html/guix-devel/2017-01/msg02048.html - (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'configure) - ;; `make install` isn't available, so we have to do it manually - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (lua-version ,(version-major+minor (package-version lua-5.2)))) - (install-file "lpeg.so" - (string-append out "/lib/lua/" lua-version)) - (install-file "re.lua" - (string-append out "/share/lua/" lua-version)) - #t)))) - #:test-target "test")) - (inputs `(("lua", lua-5.2))))) + (make-lua-lpeg "lua5.2-lpeg" lua-5.2)) ;; Lua 5.3 is not supported. (define (make-lua-bitop name lua) -- cgit v1.2.3 From 19ff1f2687ab5ceeee6335dce2794590d0f4aa27 Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Fri, 24 Nov 2017 22:55:28 +0100 Subject: services: configuration: Show default values of list types. * doc/guix.texi (Messaging Services): Regenerate it. * gnu/services/configuration.scm (show-default?): Check VAL rather than DEFAULT. * gnu/services/messaging.scm (show-default?): Check VAL rather than DEFAULT. (prosody-configuration)[modules-enabled]: Remove default value from docstring. --- doc/guix.texi | 7 +++++-- gnu/services/configuration.scm | 3 ++- gnu/services/messaging.scm | 6 +++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2a68256823..17a8f4df47 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13991,8 +13991,9 @@ Defaults to @samp{#f}. @deftypevr {@code{prosody-configuration} parameter} module-list modules-enabled This is the list of modules Prosody will load on startup. It looks for @code{mod_modulename.lua} in the plugins folder, so make sure that exists too. -Documentation on modules can be found at: @url{http://prosody.im/doc/modules}. -Defaults to @samp{%default-modules-enabled}. +Documentation on modules can be found at: +@url{http://prosody.im/doc/modules}. +Defaults to @samp{("roster" "saslauth" "tls" "dialback" "disco" "carbons" "private" "blocklist" "vcard" "version" "uptime" "time" "ping" "pep" "register" "admin_adhoc")}. @end deftypevr @deftypevr {@code{prosody-configuration} parameter} string-list modules-disabled @@ -14096,6 +14097,7 @@ Defaults to @samp{#f}. @deftypevr {@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms Set of mechanisms that will never be offered. See @url{https://prosody.im/doc/modules/mod_saslauth}. +Defaults to @samp{("DIGEST-MD5")}. @end deftypevr @deftypevr {@code{prosody-configuration} parameter} boolean s2s-require-encryption? @@ -14263,6 +14265,7 @@ Hostname of the component. @deftypevr {@code{prosody-configuration} parameter} non-negative-integer-list component-ports Port(s) Prosody listens on for component connections. +Defaults to @samp{(5347)}. @end deftypevr @deftypevr {@code{prosody-configuration} parameter} string component-interface diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm index 0a2219e743..c45340f02f 100644 --- a/gnu/services/configuration.scm +++ b/gnu/services/configuration.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Andy Wingo ;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -165,7 +166,7 @@ (define (generate configuration-name) (configuration-field-default-value-thunk f) (lambda _ '%invalid)))) (define (show-default? val) - (or (string? default) (number? default) (boolean? default) + (or (string? val) (number? val) (boolean? val) (and (symbol? val) (not (eq? val '%invalid))) (and (list? val) (and-map show-default? val)))) `(deftypevr (% (category diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index c75c715850..d57a7562a2 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -354,8 +354,8 @@ (define-all-configurations prosody-configuration (module-list %default-modules-enabled) "This is the list of modules Prosody will load on startup. It looks for @code{mod_modulename.lua} in the plugins folder, so make sure that exists too. -Documentation on modules can be found at: @url{http://prosody.im/doc/modules}. -Defaults to @samp{%default-modules-enabled}." +Documentation on modules can be found at: +@url{http://prosody.im/doc/modules}." common) (modules-disabled @@ -722,7 +722,7 @@ (define (escape-chars str chars escape) (display c)) str)))) (define (show-default? val) - (or (string? default) (number? default) (boolean? default) + (or (string? val) (number? val) (boolean? val) (and (list? val) (and-map show-default? val)))) (format #t "@deftypevr {@code{~a} parameter} ~a ~a\n~a\n" configuration-name field-type field-name field-docs) -- cgit v1.2.3 From 769e715508c28c9e8a3c8a79e238e24ad4902bee Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Sun, 26 Nov 2017 17:53:34 +0100 Subject: gnu: emacs-org-contrib: Fix sha256 checksum due to emacs-org update. * gnu/packages/emacs.scm (emacs-org-contrib)[source]: Fix sha256 checksum. --- gnu/packages/emacs.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index acd6ec30ad..d6c4e2ef0e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4203,6 +4203,8 @@ (define-public emacs-neotree (define-public emacs-org (package (name "emacs-org") + ;; emacs-org-contrib inherits from this package. Please update its sha256 + ;; checksum as well. (version "20171116") (source (origin (method url-fetch) @@ -4230,7 +4232,7 @@ (define-public emacs-org-contrib (package-version emacs-org) ".tar")) (sha256 (base32 - "0xy2xrndlhs4kyvh6mmv24dnh3fn5p63d2gaimnrypf1p8znwzh4")))) + "071vqv6hdyjp85ap39930782ks07ypjzch81r8kax3ybwfrf0chx")))) (arguments `(#:modules ((guix build emacs-build-system) (guix build utils) -- cgit v1.2.3 From 62028e91252e4bdf659d1d5ad391e3a29b161291 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 28 Nov 2017 09:31:58 +0200 Subject: gnu: nano: Update to 2.9.1. * gnu/packages/nano.scm (nano): Update to 2.9.1. --- gnu/packages/nano.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index b8acaa27ef..c96c74bdcf 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -29,7 +29,7 @@ (define-module (gnu packages nano) (define-public nano (package (name "nano") - (version "2.9.0") + (version "2.9.1") (source (origin (method url-fetch) @@ -37,7 +37,7 @@ (define-public nano version ".tar.xz")) (sha256 (base32 - "17hjgvig59a2ha2b0494bprrci3d33sayjqvxjhsnlzgr8whrlyj")))) + "0z5sxji8jh8sh0g3inbzndhsrbm4qyqlvjrxl5wkxbr61lnxa5k3")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) -- cgit v1.2.3 From ff6dcc1ae9ea79c4e91b58fc8547ae62138bf8f4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 28 Nov 2017 09:35:27 +0200 Subject: gnu: libmicrohttpd: Update to 0.9.57. * gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.57. [description]: Fix line breaks. --- gnu/packages/gnunet.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 7e1e1d902c..91e2e3f245 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2014 Sree Harsha Totakura ;;; Copyright © 2015, 2017 Ludovic Courtès -;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2015, 2017 Efraim Flashner ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Mark H Weaver ;;; Copyright © 2016, 2017 ng0 @@ -144,14 +144,14 @@ (define-public libextractor (define-public libmicrohttpd (package (name "libmicrohttpd") - (version "0.9.55") + (version "0.9.57") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-" version ".tar.gz")) (sha256 (base32 - "1y6h1slav5l6k8zyb01dpw65dscdgxxgfa3a0z9qnn7jr66sn70c")))) + "0kmgkk9sjg1n3q7rbzw5y4qmgh51zn5qi2j69gbqmr6phxjaghfy")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) @@ -177,9 +177,8 @@ (define-public libmicrohttpd C library. It makes it easy to run an HTTP server as part of another application. The library is fully HTTP 1.1 compliant. It can listen on multiple ports, supports four different threading models, and supports -IPv6. It -also features security features such as basic and digest authentication -and support for SSL3 and TLS.") +IPv6. It also features security features such as basic and digest +authentication and support for SSL3 and TLS.") (license license:lgpl2.1+) (home-page "https://www.gnu.org/software/libmicrohttpd/"))) -- cgit v1.2.3 From 797d238789f7635bdd55aae103db1a7c4ff33798 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Sat, 25 Nov 2017 20:34:12 -0500 Subject: gnu: node: Update to 8.9.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/node.scm (node): Update to 8.9.1. [source]: Apply 'node-test-http2-server-rst-stream.patch'. [arguments]: Skip 'doc-only' target in 'check', which attempts to use npm to retrieve 'js-yaml' package. Remove test/doctool/test-make-doc.js. Do not remove now-missing test case. Remove new test case that fails in containers due to networking. * gnu/packages/patches/node-test-http2-server-rst-stream.patch: New file. Signed-off-by: Ludovic Courtès --- gnu/packages/node.scm | 23 +++- .../node-test-http2-server-rst-stream.patch | 131 +++++++++++++++++++++ 2 files changed, 151 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/node-test-http2-server-rst-stream.patch diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index e354130ad2..fade8b23da 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015, 2016 David Thompson ;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2017 Mike Gerwitz ;;; ;;; This file is part of GNU Guix. ;;; @@ -40,14 +41,18 @@ (define-module (gnu packages node) (define-public node (package (name "node") - (version "8.7.0") + (version "8.9.1") (source (origin (method url-fetch) (uri (string-append "http://nodejs.org/dist/v" version "/node-v" version ".tar.gz")) (sha256 (base32 - "1a0ginagx3pav6v7adyp76jisia4qgbsq6pz3als4kshwlk4a667")))) + "1qbiz7hgwlirhwpd71c8yzcbwsyi5bjlfp6lxb6v55j6rizinj9j")) + ;; See https://github.com/nodejs/node/issues/16688 + ;; Remove this next update (>8.9.1). + (patches + (search-patches "node-test-http2-server-rst-stream.patch")))) (build-system gnu-build-system) (arguments ;; TODO: Purge the bundled copies from the source. @@ -76,6 +81,10 @@ (define-public node (("'/usr/bin/env'") (string-append "'" (which "env") "'"))) + + ;; test-make-doc needs doc-only target, which is inhibited below + (for-each delete-file + '("test/doctool/test-make-doc.js")) ;; FIXME: This test seems to depends on files that are not ;; available in the bundled v8. See ;; https://github.com/nodejs/node/issues/13344 @@ -88,12 +97,12 @@ (define-public node "test/parallel/test-util-inspect.js" "test/parallel/test-v8-serdes.js" "test/parallel/test-dgram-membership.js" - "test/parallel/test-dgram-multicast-set-interface-lo.js" "test/parallel/test-dns-cancel-reverse-lookup.js" "test/parallel/test-dns-resolveany.js" "test/parallel/test-cluster-master-error.js" "test/parallel/test-cluster-master-kill.js" "test/parallel/test-npm-install.js" + "test/parallel/test-regress-GH-746.js" "test/sequential/test-child-process-emfile.js" "test/sequential/test-benchmark-child-process.js" "test/sequential/test-http-regr-gh-2928.js")) @@ -115,6 +124,14 @@ (define-public node (string-append (assoc-ref inputs "python") "/bin/python") "configure" flags))))) + (add-before 'check 'skip-check-doc-only + (lambda _ + (substitute* "Makefile" + ;; requires js-yaml, which is not part of the distribution, + ;; and falls back to using npm to download it + (("\\$\\(MAKE\\) doc-only" all) + (string-append "#" all))) + #t)) (add-after 'patch-shebangs 'patch-npm-shebang (lambda* (#:key outputs #:allow-other-keys) (let* ((bindir (string-append (assoc-ref outputs "out") diff --git a/gnu/packages/patches/node-test-http2-server-rst-stream.patch b/gnu/packages/patches/node-test-http2-server-rst-stream.patch new file mode 100644 index 0000000000..c2f85010b1 --- /dev/null +++ b/gnu/packages/patches/node-test-http2-server-rst-stream.patch @@ -0,0 +1,131 @@ +From a41cc020fd6e40b358103425edfa50e6a10fc973 Mon Sep 17 00:00:00 2001 +From: Anatoli Papirovski +Date: Thu, 2 Nov 2017 12:46:31 -0400 +Subject: [PATCH] test: fix flaky test-http2-server-rst-stream.js + +PR-URL: https://github.com/nodejs/node/pull/16690 +Fixes: https://github.com/nodejs/node/issues/16688 +Reviewed-By: James M Snell +Reviewed-By: Matteo Collina +--- + test/parallel/test-http2-server-rst-stream.js | 93 ++++++++++----------------- + 1 file changed, 35 insertions(+), 58 deletions(-) + +diff --git a/test/parallel/test-http2-server-rst-stream.js b/test/parallel/test-http2-server-rst-stream.js +index b92217dc99..dd38efb42f 100644 +--- a/test/parallel/test-http2-server-rst-stream.js ++++ b/test/parallel/test-http2-server-rst-stream.js +@@ -5,11 +5,9 @@ if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); + const http2 = require('http2'); ++const Countdown = require('../common/countdown'); + + const { +- HTTP2_HEADER_METHOD, +- HTTP2_HEADER_PATH, +- HTTP2_METHOD_POST, + NGHTTP2_CANCEL, + NGHTTP2_NO_ERROR, + NGHTTP2_PROTOCOL_ERROR, +@@ -17,63 +15,42 @@ const { + NGHTTP2_INTERNAL_ERROR + } = http2.constants; + +-const errCheck = common.expectsError({ code: 'ERR_HTTP2_STREAM_ERROR' }, 6); ++const tests = [ ++ ['rstStream', NGHTTP2_NO_ERROR, false], ++ ['rstWithNoError', NGHTTP2_NO_ERROR, false], ++ ['rstWithProtocolError', NGHTTP2_PROTOCOL_ERROR, true], ++ ['rstWithCancel', NGHTTP2_CANCEL, false], ++ ['rstWithRefuse', NGHTTP2_REFUSED_STREAM, true], ++ ['rstWithInternalError', NGHTTP2_INTERNAL_ERROR, true] ++]; ++ ++const server = http2.createServer(); ++server.on('stream', (stream, headers) => { ++ const method = headers['rstmethod']; ++ stream[method](); ++}); ++ ++server.listen(0, common.mustCall(() => { ++ const client = http2.connect(`http://localhost:${server.address().port}`); ++ ++ const countdown = new Countdown(tests.length, common.mustCall(() => { ++ client.destroy(); ++ server.close(); ++ })); + +-function checkRstCode(rstMethod, expectRstCode) { +- const server = http2.createServer(); +- server.on('stream', (stream, headers, flags) => { +- stream.respond({ +- 'content-type': 'text/html', +- ':status': 200 ++ tests.forEach((test) => { ++ const req = client.request({ ++ ':method': 'POST', ++ rstmethod: test[0] + }); +- stream.write('test'); +- if (rstMethod === 'rstStream') +- stream[rstMethod](expectRstCode); +- else +- stream[rstMethod](); +- +- if (expectRstCode !== NGHTTP2_NO_ERROR && +- expectRstCode !== NGHTTP2_CANCEL) { +- stream.on('error', common.mustCall(errCheck)); +- } else { +- stream.on('error', common.mustNotCall()); +- } +- }); +- +- server.listen(0, common.mustCall(() => { +- const port = server.address().port; +- const client = http2.connect(`http://localhost:${port}`); +- +- const headers = { +- [HTTP2_HEADER_PATH]: '/', +- [HTTP2_HEADER_METHOD]: HTTP2_METHOD_POST +- }; +- const req = client.request(headers); +- +- req.setEncoding('utf8'); +- req.on('streamClosed', common.mustCall((actualRstCode) => { +- assert.strictEqual( +- expectRstCode, actualRstCode, `${rstMethod} is not match rstCode`); +- server.close(); +- client.destroy(); ++ req.on('streamClosed', common.mustCall((code) => { ++ assert.strictEqual(code, test[1]); ++ countdown.dec(); + })); +- req.on('data', common.mustCall()); + req.on('aborted', common.mustCall()); +- req.on('end', common.mustCall()); +- +- if (expectRstCode !== NGHTTP2_NO_ERROR && +- expectRstCode !== NGHTTP2_CANCEL) { +- req.on('error', common.mustCall(errCheck)); +- } else { ++ if (test[2]) ++ req.on('error', common.mustCall()); ++ else + req.on('error', common.mustNotCall()); +- } +- +- })); +-} +- +-checkRstCode('rstStream', NGHTTP2_NO_ERROR); +-checkRstCode('rstWithNoError', NGHTTP2_NO_ERROR); +-checkRstCode('rstWithProtocolError', NGHTTP2_PROTOCOL_ERROR); +-checkRstCode('rstWithCancel', NGHTTP2_CANCEL); +-checkRstCode('rstWithRefuse', NGHTTP2_REFUSED_STREAM); +-checkRstCode('rstWithInternalError', NGHTTP2_INTERNAL_ERROR); ++ }); ++})); +-- +2.15.0 + -- cgit v1.2.3 From 0d2ecf8b5091eee4fde47f21a9a19ac9d4e38a90 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 10:18:40 +0100 Subject: ui: Avoid "pkg:out" syntax when reporting collisions. * guix/ui.scm (call-with-error-handling)[manifest-entry-output*]: New procedure. Use it when reporting collisions. --- guix/ui.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index ae727eb837..b65702474d 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -550,19 +550,24 @@ (define (report-parent-entries entry) (manifest-entry-version parent)) (report-parent-entries parent)))) + (define (manifest-entry-output* entry) + (match (manifest-entry-output entry) + ("out" "") + (output (string-append ":" output)))) + (report-error (G_ "profile contains conflicting entries for ~a:~a~%") (manifest-entry-name entry) (manifest-entry-output entry)) - (report-error (G_ " first entry: ~a@~a:~a ~a~%") + (report-error (G_ " first entry: ~a@~a~a ~a~%") (manifest-entry-name entry) (manifest-entry-version entry) - (manifest-entry-output entry) + (manifest-entry-output* entry) (manifest-entry-item entry)) (report-parent-entries entry) - (report-error (G_ " second entry: ~a@~a:~a ~a~%") + (report-error (G_ " second entry: ~a@~a~a ~a~%") (manifest-entry-name conflict) (manifest-entry-version conflict) - (manifest-entry-output conflict) + (manifest-entry-output* conflict) (manifest-entry-item conflict)) (report-parent-entries conflict) (exit 1))) -- cgit v1.2.3 From b32596ecfce029627cc76660aa86ff3debf96069 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Mon, 27 Nov 2017 23:54:31 +1100 Subject: gnu: Add perl-file-basedir. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm: (perl-file-basedir): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index c82fc62932..bb932864ee 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -32,6 +32,7 @@ (define-module (gnu packages freedesktop) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (gnu packages acl) #:use-module (gnu packages admin) @@ -60,6 +61,8 @@ (define-module (gnu packages freedesktop) #:use-module (gnu packages m4) #:use-module (gnu packages polkit) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages python) #:use-module (gnu packages w3m) #:use-module (gnu packages xml) @@ -1113,3 +1116,33 @@ (define-public xdg-user-dirs automatically run when a user logs in, xdg-user-dirs can also be run manually by a user.") (license license:gpl2))) + +(define-public perl-file-basedir + (package + (name "perl-file-basedir") + (version "0.07") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/K/KI/KIMRYAN/" + "File-BaseDir-" version ".tar.gz")) + (sha256 + (base32 + "0aq8d4hsaxqibp36f773y6dfck7zd82v85sp8vhi6pjkg3pmf2hj")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-file-which" ,perl-file-which) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage) + ("xdg-user-dirs" ,xdg-user-dirs))) + (propagated-inputs + `(("perl-ipc-system-simple" ,perl-ipc-system-simple))) + (home-page "http://search.cpan.org/dist/File-BaseDir/") + (synopsis "Use the Freedesktop.org base directory specification") + (description + "@code{File::Basedir} can be used to find directories and files as +specified by the Freedesktop.org Base Directory Specification. This +specifications gives a mechanism to locate directories for configuration, +application data and cache data.") + (license license:perl-license))) -- cgit v1.2.3 From 825cebdb33989e9b97d92cae9336ba8425eacc58 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Mon, 27 Nov 2017 23:54:32 +1100 Subject: gnu: Add perl-file-desktopentry. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (perl-file-desktopentry): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index bb932864ee..e1beee4ed2 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2017 Mark H Weaver ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017 Rutger Helling +;;; Copyright © 2017 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -59,12 +60,15 @@ (define-module (gnu packages freedesktop) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages m4) + #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages polkit) #:use-module (gnu packages pkg-config) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages python) #:use-module (gnu packages w3m) + #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg)) @@ -1146,3 +1150,30 @@ (define-public perl-file-basedir specifications gives a mechanism to locate directories for configuration, application data and cache data.") (license license:perl-license))) + +(define-public perl-file-desktopentry + (package + (name "perl-file-desktopentry") + (version "0.22") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/" + "File-DesktopEntry-" version ".tar.gz")) + (sha256 + (base32 + "1f1maqix2kbfg2rf008m7mqnvv6nvcf9y6pcgdv2kxp2vbih370n")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-file-basedir" ,perl-file-basedir) + ("perl-uri" ,perl-uri))) + (home-page "http://search.cpan.org/~michielb/File-DesktopEntry/") + (synopsis "Handle @file{.desktop} files") + (description + "@code{File::DesktopEntry} parses @file{.desktop} files defined by the +Freedesktop.org @dfn{Desktop Entry} specification. It can also run the +applications define in those files.") + (license license:perl-license))) -- cgit v1.2.3 From d0ce96bc17e4eff616c8a1c8cd07c00c396b58d9 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Mon, 27 Nov 2017 23:54:33 +1100 Subject: gnu: Add perl-file-mimeinfo. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (perl-file-mimeinfo): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index e1beee4ed2..ee108bb153 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -1177,3 +1177,53 @@ (define-public perl-file-desktopentry Freedesktop.org @dfn{Desktop Entry} specification. It can also run the applications define in those files.") (license license:perl-license))) + +(define-public perl-file-mimeinfo + (package + (name "perl-file-mimeinfo") + (version "0.28") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/" + "File-MimeInfo-" version ".tar.gz")) + (sha256 + (base32 + "1ipbh63bkh1r2gy5g7q4bzhki8j29mm1jkhbv60p9vwsdys5s91a")))) + (build-system perl-build-system) + ;; If the tests are fixed, add perl-test-pod, perl-test-pod-coverage, and + ;; perl-test-tiny as native-inputs. + (propagated-inputs + `(("shared-mime-info" ,shared-mime-info) + ("perl-file-desktopentry" ,perl-file-desktopentry))) + (arguments + ;; Some tests fail due to requiring the mimetype of perl files to be + ;; text/plain when they are actually application/x-perl. + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-programs + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (for-each (lambda (prog) + (wrap-program (string-append out "/bin/" prog) + `("PERL5LIB" ":" prefix + (,(string-append (getenv "PERL5LIB") ":" out + "/lib/perl5/site_perl"))))) + '("mimeopen" "mimetype"))) + #t))))) + (home-page "http://search.cpan.org/dist/File-MimeInfo/") + (synopsis "Determine file type from the file name") + (description + "@code{File::Mimeinfo} can be used to determine the MIME type of a file. +It tries to implement the Freedesktop specification for a shared MIME +database. + +This package also contains two related utilities: + +@itemize +@item @command{mimetype} determines a file's MIME type; +@item @command{mimeopen} opens files in an appropriate program according to +their MIME type. +@end itemize") + (license license:perl-license))) -- cgit v1.2.3 From 04c35737268059ae45e68206e508f0af951ef295 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Mon, 27 Nov 2017 23:54:34 +1100 Subject: gnu: xdg-utils: Add perl-file-mimeinfo as an input. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/freedesktop.scm (perl-file-mimeinfo) [input]: Add perl-file-mimeinfo. Signed-off-by: Ludovic Courtès --- gnu/packages/freedesktop.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index ee108bb153..9b6d7fa111 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -94,7 +94,8 @@ (define-public xdg-utils ("w3m" ,w3m) ("xmlto" ,xmlto))) (propagated-inputs - `(("xprop" ,xprop) ; for Xfce detecting + `(("perl-file-mimeinfo" ,perl-file-mimeinfo) ; for mimeopen fallback + ("xprop" ,xprop) ; for Xfce detecting ("xset" ,xset))) ; for xdg-screensaver (arguments `(#:tests? #f ; no check target -- cgit v1.2.3 From d344f5a528791cc8ee46b4506ff4ec49489108ee Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 25 Nov 2017 18:28:08 +0100 Subject: services: xorg: Allow users to specify a list of modules. * gnu/services/xorg.scm (%default-xorg-fonts): New variable. (xorg-configuration-file): Add #:modules and #:fonts. Rewrite to return a 'computed-file' that honors MODULES and FONTS. (xorg-wrapper): Pass #:modules to 'xorg-configuration-file'. (xorg-start-command): Add #:fonts. Pass #:fonts and #:modules to 'xorg-configuration-file'. * doc/guix.texi (X Window): Adjust documentation of 'xorg-start-command' and 'xorg-configuration-file'. --- doc/guix.texi | 26 ++++--- gnu/services/xorg.scm | 185 ++++++++++++++++++++++++++++++++------------------ 2 files changed, 136 insertions(+), 75 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 17a8f4df47..4a32cdff5d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11142,31 +11142,41 @@ The G-Expression denoting the default SLiM theme and its name. @end defvr @deffn {Scheme Procedure} xorg-start-command [#:guile] @ - [#:configuration-file #f] [#:xorg-server @var{xorg-server}] -Return a derivation that builds a @var{guile} script to start the X server -from @var{xorg-server}. @var{configuration-file} is the server configuration -file or a derivation that builds it; when omitted, the result of -@code{xorg-configuration-file} is used. + [#:modules %default-xorg-modules] @ + [#:fonts %default-xorg-fonts] @ + [#:configuration-file (xorg-configuration-file @dots{})] @ + [#:xorg-server @var{xorg-server}] +Return a @code{startx} script in which @var{modules}, a list of X module +packages, and @var{fonts}, a list of X font directories, are available. See +@code{xorg-wrapper} for more details on the arguments. The result should be +used in place of @code{startx}. Usually the X server is started by a login manager. @end deffn @deffn {Scheme Procedure} xorg-configuration-file @ + [#:modules %default-xorg-modules] @ + [#:fonts %default-xorg-fonts] @ [#:drivers '()] [#:resolutions '()] [#:extra-config '()] Return a configuration file for the Xorg server containing search paths for all the common drivers. +@var{modules} must be a list of @dfn{module packages} loaded by the Xorg +server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on. +@var{fonts} must be a list of font directories to add to the server's +@dfn{font path}. + @var{drivers} must be either the empty list, in which case Xorg chooses a graphics driver automatically, or a list of driver names that will be tried in -this order---e.g., @code{(\"modesetting\" \"vesa\")}. +this order---e.g., @code{("modesetting" "vesa")}. Likewise, when @var{resolutions} is the empty list, Xorg chooses an appropriate screen resolution; otherwise, it must be a list of resolutions---e.g., @code{((1024 768) (640 480))}. Last, @var{extra-config} is a list of strings or objects appended to the -@code{text-file*} argument list. It is used to pass extra text to be added -verbatim to the configuration file. +configuration file. It is used to pass extra text to be +added verbatim to the configuration file. @end deffn @deffn {Scheme Procedure} screen-locker-service @var{package} [@var{name}] diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index c5a1a0d423..c712793875 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Andy Wingo -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015 Sou Bunnbu ;;; ;;; This file is part of GNU Guix. @@ -45,6 +45,7 @@ (define-module (gnu services xorg) #:use-module (ice-9 match) #:export (xorg-configuration-file %default-xorg-modules + %default-xorg-fonts xorg-wrapper xorg-start-command xinitrc @@ -70,11 +71,50 @@ (define-module (gnu services xorg) ;;; ;;; Code: -(define* (xorg-configuration-file #:key (drivers '()) (resolutions '()) +(define %default-xorg-modules + ;; Default list of modules loaded by the server. Note that the order + ;; matters since it determines which driver is going to be used when there's + ;; a choice. + (list xf86-video-vesa + xf86-video-fbdev + xf86-video-ati + xf86-video-cirrus + xf86-video-intel + xf86-video-mach64 + xf86-video-nouveau + xf86-video-nv + xf86-video-sis + + ;; Libinput is the new thing and is recommended over evdev/synaptics: + ;; . + xf86-input-libinput + + xf86-input-evdev + xf86-input-keyboard + xf86-input-mouse + xf86-input-synaptics)) + +(define %default-xorg-fonts + ;; Default list of fonts available to the X server. + (list (file-append font-alias "/share/fonts/X11/75dpi") + (file-append font-alias "/share/fonts/X11/100dpi") + (file-append font-alias "/share/fonts/X11/misc") + (file-append font-alias "/share/fonts/X11/cyrillic") + (file-append font-adobe75dpi "/share/fonts/X11/75dpi"))) + +(define* (xorg-configuration-file #:key + (modules %default-xorg-modules) + (fonts %default-xorg-fonts) + (drivers '()) (resolutions '()) (extra-config '())) "Return a configuration file for the Xorg server containing search paths for all the common drivers. +@var{modules} must be a list of @dfn{module packages} loaded by the Xorg +server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on. +@var{fonts} must be a list of font directories to add to the server's +@dfn{font path}. + @var{drivers} must be either the empty list, in which case Xorg chooses a graphics driver automatically, or a list of driver names that will be tried in this order---e.g., @code{(\"modesetting\" \"vesa\")}. @@ -84,17 +124,32 @@ (define* (xorg-configuration-file #:key (drivers '()) (resolutions '()) resolutions---e.g., @code{((1024 768) (640 480))}. Last, @var{extra-config} is a list of strings or objects appended to the -@code{mixed-text-file} argument list. It is used to pass extra text to be +configuration file. It is used to pass extra text to be added verbatim to the configuration file." - (define (device-section driver) - (string-append " + (define all-modules + ;; 'xorg-server' provides 'fbdevhw.so' etc. + (append modules (list xorg-server))) + + (define build + #~(begin + (use-modules (ice-9 match) + (srfi srfi-1) + (srfi srfi-26)) + + (call-with-output-file #$output + (lambda (port) + (define drivers + '#$drivers) + + (define (device-section driver) + (string-append " Section \"Device\" Identifier \"device-" driver "\" Driver \"" driver "\" EndSection")) - (define (screen-section driver resolutions) - (string-append " + (define (screen-section driver resolutions) + (string-append " Section \"Screen\" Identifier \"screen-" driver "\" Device \"device-" driver "\" @@ -108,65 +163,56 @@ (define (screen-section driver resolutions) EndSubSection EndSection")) - (apply mixed-text-file "xserver.conf" " -Section \"Files\" - FontPath \"" font-alias "/share/fonts/X11/75dpi\" - FontPath \"" font-alias "/share/fonts/X11/100dpi\" - FontPath \"" font-alias "/share/fonts/X11/misc\" - FontPath \"" font-alias "/share/fonts/X11/cyrillic\" - FontPath \"" font-adobe75dpi "/share/fonts/X11/75dpi\" - ModulePath \"" xf86-video-vesa "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-fbdev "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-ati "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-cirrus "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-intel "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-mach64 "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-nouveau "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-nv "/lib/xorg/modules/drivers\" - ModulePath \"" xf86-video-sis "/lib/xorg/modules/drivers\" - - # Libinput is the new thing and is recommended over evdev/synaptics - # by those who know: - # . - ModulePath \"" xf86-input-libinput "/lib/xorg/modules/input\" - - ModulePath \"" xf86-input-evdev "/lib/xorg/modules/input\" - ModulePath \"" xf86-input-keyboard "/lib/xorg/modules/input\" - ModulePath \"" xf86-input-mouse "/lib/xorg/modules/input\" - ModulePath \"" xf86-input-synaptics "/lib/xorg/modules/input\" - ModulePath \"" xorg-server "/lib/xorg/modules\" - ModulePath \"" xorg-server "/lib/xorg/modules/drivers\" - ModulePath \"" xorg-server "/lib/xorg/modules/extensions\" - ModulePath \"" xorg-server "/lib/xorg/modules/multimedia\" -EndSection - + (define (expand modules) + ;; Append to MODULES the relevant /lib/xorg/modules + ;; sub-directories. + (append-map (lambda (module) + (filter-map (lambda (directory) + (let ((full (string-append module + directory))) + (and (file-exists? full) + full))) + '("/lib/xorg/modules/drivers" + "/lib/xorg/modules/input" + "/lib/xorg/modules/multimedia" + "/lib/xorg/modules/extensions"))) + modules)) + + (display "Section \"Files\"\n" port) + (for-each (lambda (font) + (format port " FontPath \"~a\"~%" font)) + '#$fonts) + (for-each (lambda (module) + (format port + " ModulePath \"~a\"~%" + module)) + (append (expand '#$all-modules) + + ;; For fbdevhw.so and so on. + (list #$(file-append xorg-server + "/lib/xorg/modules")))) + (display "EndSection\n" port) + (display " Section \"ServerFlags\" Option \"AllowMouseOpenFail\" \"on\" -EndSection -" - (string-join (map device-section drivers) "\n") "\n" - (string-join (map (cut screen-section <> resolutions) - drivers) - "\n") +EndSection\n" port) - "\n" - extra-config)) + (display (string-join (map device-section drivers) "\n") + port) + (newline port) + (display (string-join + (map (cut screen-section <> '#$resolutions) + drivers) + "\n") + port) + (newline port) + + (for-each (lambda (config) + (display config port)) + '#$extra-config))))) + + (computed-file "xserver.conf" build)) -(define %default-xorg-modules - (list xf86-video-vesa - xf86-video-fbdev - xf86-video-ati - xf86-video-cirrus - xf86-video-intel - xf86-video-mach64 - xf86-video-nouveau - xf86-video-nv - xf86-video-sis - xf86-input-libinput - xf86-input-evdev - xf86-input-keyboard - xf86-input-mouse - xf86-input-synaptics)) (define (xorg-configuration-directory modules) "Return a directory that contains the @code{.conf} files for X.org that @@ -196,8 +242,9 @@ (define files (define* (xorg-wrapper #:key (guile (canonical-package guile-2.0)) - (configuration-file (xorg-configuration-file)) (modules %default-xorg-modules) + (configuration-file (xorg-configuration-file + #:modules modules)) (xorg-server xorg-server)) "Return a derivation that builds a @var{guile} script to start the X server from @var{xorg-server}. @var{configuration-file} is the server configuration @@ -221,12 +268,16 @@ (define exp (define* (xorg-start-command #:key (guile (canonical-package guile-2.0)) - (configuration-file (xorg-configuration-file)) (modules %default-xorg-modules) + (fonts %default-xorg-fonts) + (configuration-file + (xorg-configuration-file #:modules modules + #:fonts fonts)) (xorg-server xorg-server)) - "Return a derivation that builds a @code{startx} script in which a number of -X modules are available. See @code{xorg-wrapper} for more details on the -arguments. The result should be used in place of @code{startx}." + "Return a @code{startx} script in which @var{modules}, a list of X module +packages, and @var{fonts}, a list of X font directories, are available. See +@code{xorg-wrapper} for more details on the arguments. The result should be +used in place of @code{startx}." (define X (xorg-wrapper #:guile guile #:configuration-file configuration-file -- cgit v1.2.3 From 94b9abd9429932a7d5c9f855c7333ebb55d5c726 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 11:02:29 +0100 Subject: services: slim: Remove unused 'bash' configuration field. * gnu/services/xorg.scm ()[bash]: Remove. (slim-service): Adjust accordingly. --- gnu/services/xorg.scm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index c712793875..e7b9d9adc5 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -364,8 +364,6 @@ (define-record-type* (default xauth)) (shepherd slim-configuration-shepherd (default shepherd)) - (bash slim-configuration-bash - (default bash)) (auto-login-session slim-configuration-auto-login-session) (startx slim-configuration-startx)) @@ -449,7 +447,7 @@ (define* (slim-service #:key (slim slim) (default-user "") (theme %default-slim-theme) (theme-name %default-slim-theme-name) - (xauth xauth) (shepherd shepherd) (bash bash) + (xauth xauth) (shepherd shepherd) (auto-login-session (file-append windowmaker "/bin/wmaker")) (startx (xorg-start-command))) @@ -484,7 +482,7 @@ (define* (slim-service #:key (slim slim) (allow-empty-passwords? allow-empty-passwords?) (auto-login? auto-login?) (default-user default-user) (theme theme) (theme-name theme-name) - (xauth xauth) (shepherd shepherd) (bash bash) + (xauth xauth) (shepherd shepherd) (auto-login-session auto-login-session) (startx startx)))) -- cgit v1.2.3 From b37f86d7a31c654e894faf47c233503231b2c6eb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 11:10:08 +0100 Subject: services: xorg: Document 'slim-configuration' and deprecate 'slim-service'. * gnu/services/xorg.scm (): Provide default values for all fields. (slim-service-type)[default-value]: New field. * doc/guix.texi (X Window): Remove 'slim-service' documentation. Document 'slim-service-type' and 'slim-configuration'. * gnu/services/desktop.scm (%desktop-services): Use 'slim-service-type'. --- doc/guix.texi | 96 ++++++++++++++++++++++++++++++------------------ gnu/services/desktop.scm | 2 +- gnu/services/xorg.scm | 39 +++++++++++++++----- 3 files changed, 91 insertions(+), 46 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 4a32cdff5d..c3b97cea1f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11001,6 +11001,65 @@ Xorg---is provided by the @code{(gnu services xorg)} module. Note that there is no @code{xorg-service} procedure. Instead, the X server is started by the @dfn{login manager}, currently SLiM. +@defvr {Scheme Variable} slim-service-type +This is the type for the SLiM graphical login manager for X11. + +@cindex session types (X11) +@cindex X11 session types +SLiM looks for @dfn{session types} described by the @file{.desktop} files in +@file{/run/current-system/profile/share/xsessions} and allows users to +choose a session from the log-in screen using @kbd{F1}. Packages such +as @code{xfce}, @code{sawfish}, and @code{ratpoison} provide +@file{.desktop} files; adding them to the system-wide set of packages +automatically makes them available at the log-in screen. + +In addition, @file{~/.xsession} files are honored. When available, +@file{~/.xsession} must be an executable that starts a window manager +and/or other X clients. +@end defvr + +@deftp {Data Type} slim-configuration +Data type representing the configuration of @code{slim-service-type}. + +@table @asis +@item @code{allow-empty-passwords?} (default: @code{#t}) +Whether to allow logins with empty passwords. + +@item @code{auto-login?} (default: @code{#f}) +@itemx @code{default-user} (default: @code{""}) +When @code{auto-login?} is false, SLiM presents a log-in screen. + +When @code{auto-login?} is true, SLiM logs in directly as +@code{default-user}. + +@item @code{theme} (default: @code{%default-slim-theme}) +@itemx @code{theme-name} (default: @code{%default-slim-theme-name}) +The graphical theme to use and its name. + +@item @code{auto-login-session} (default: @code{windowmaker}) +The default session to use when none is specified. + +@item @code{startx} (default: @code{(xorg-start-command)}) +The command used to start the X11 graphical server. + +@item @code{xauth} (default: @code{xauth}) +The XAuth package to use. + +@item @code{shepherd} (default: @code{shepherd}) +The Shepherd package used when invoking @command{halt} and +@command{reboot}. + +@item @code{slim} (default: @code{slim}) +The SLiM package to use. +@end table +@end deftp + +@defvr {Scheme Variable} %default-theme +@defvrx {Scheme Variable} %default-theme-name +The default SLiM theme and its name. +@end defvr + + @deftp {Data Type} sddm-configuration This is the data type representing the sddm service configuration. @@ -11094,6 +11153,7 @@ Relogin after logout. @end deftp @cindex login manager +@cindex X11 login @deffn {Scheme Procedure} sddm-service config Return a service that spawns the SDDM graphical login manager for config of type @code{}. @@ -11105,42 +11165,6 @@ type @code{}. @end example @end deffn -@deffn {Scheme Procedure} slim-service [#:allow-empty-passwords? #f] @ - [#:auto-login? #f] [#:default-user ""] [#:startx] @ - [#:theme @var{%default-slim-theme}] @ - [#:theme-name @var{%default-slim-theme-name}] -Return a service that spawns the SLiM graphical login manager, which in -turn starts the X display server with @var{startx}, a command as returned by -@code{xorg-start-command}. - -@cindex X session - -SLiM automatically looks for session types described by the @file{.desktop} -files in @file{/run/current-system/profile/share/xsessions} and allows users -to choose a session from the log-in screen using @kbd{F1}. Packages such as -@var{xfce}, @var{sawfish}, and @var{ratpoison} provide @file{.desktop} files; -adding them to the system-wide set of packages automatically makes them -available at the log-in screen. - -In addition, @file{~/.xsession} files are honored. When available, -@file{~/.xsession} must be an executable that starts a window manager -and/or other X clients. - -When @var{allow-empty-passwords?} is true, allow logins with an empty -password. When @var{auto-login?} is true, log in automatically as -@var{default-user}. - -If @var{theme} is @code{#f}, use the default log-in theme; otherwise -@var{theme} must be a gexp denoting the name of a directory containing the -theme to use. In that case, @var{theme-name} specifies the name of the -theme. -@end deffn - -@defvr {Scheme Variable} %default-theme -@defvrx {Scheme Variable} %default-theme-name -The G-Expression denoting the default SLiM theme and its name. -@end defvr - @deffn {Scheme Procedure} xorg-start-command [#:guile] @ [#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index ec33e1d5ec..78530b3454 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -854,7 +854,7 @@ (define* (xfce-desktop-service #:key (config (xfce-desktop-configuration))) (define %desktop-services ;; List of services typically useful for a "desktop" use case. - (cons* (slim-service) + (cons* (service slim-service-type) ;; Screen lockers are a pretty useful thing and these are small. (screen-locker-service slock) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index e7b9d9adc5..c1955e0b65 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -52,7 +52,20 @@ (define-module (gnu services xorg) %default-slim-theme %default-slim-theme-name + slim-configuration + slim-configuration? + slim-configuration-slim + slim-configuration-allow-empty-passwords? + slim-configuration-auto-login? + slim-configuration-default-user + slim-configuration-theme + slim-configuration-theme-name + slim-configuration-xauth + slim-configuration-shepherd + slim-configuration-auto-login-session + slim-configuration-startx + slim-service-type slim-service @@ -355,17 +368,24 @@ (define-record-type* slim-configuration? (slim slim-configuration-slim (default slim)) - (allow-empty-passwords? slim-configuration-allow-empty-passwords?) - (auto-login? slim-configuration-auto-login?) - (default-user slim-configuration-default-user) - (theme slim-configuration-theme) - (theme-name slim-configuration-theme-name) + (allow-empty-passwords? slim-configuration-allow-empty-passwords? + (default #t)) + (auto-login? slim-configuration-auto-login? + (default #f)) + (default-user slim-configuration-default-user + (default "")) + (theme slim-configuration-theme + (default %default-slim-theme)) + (theme-name slim-configuration-theme-name + (default %default-slim-theme-name)) (xauth slim-configuration-xauth (default xauth)) (shepherd slim-configuration-shepherd (default shepherd)) - (auto-login-session slim-configuration-auto-login-session) - (startx slim-configuration-startx)) + (auto-login-session slim-configuration-auto-login-session + (default (file-append windowmaker "/bin/wmaker"))) + (startx slim-configuration-startx + (default (xorg-start-command)))) (define (slim-pam-service config) "Return a PAM service for @command{slim}." @@ -440,9 +460,10 @@ (define slim-service-type ;; Unconditionally add xterm to the system profile, to ;; avoid bad surprises. (service-extension profile-service-type - (const (list xterm))))))) + (const (list xterm))))) + (default-value (slim-configuration)))) -(define* (slim-service #:key (slim slim) +(define* (slim-service #:key (slim slim) ;deprecated (allow-empty-passwords? #t) auto-login? (default-user "") (theme %default-slim-theme) -- cgit v1.2.3 From 65c0f43649b455db94f1e8b0a244a889cb961b25 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 25 Nov 2017 23:19:31 +0100 Subject: services: xorg: Remove WindowMaker as a default fallback. * gnu/services/xorg.scm (xinitrc)[builder](system-profile) (user-profile): New variables. (xsession-command, find-session): New procedures. When FALLBACK-SESSION is #f, find a valid session at run time. * doc/guix.texi (X Window): Adjust accordingly, and insist that one or more window managers must be installed. --- doc/guix.texi | 24 ++++++++++++++++--- gnu/services/xorg.scm | 65 ++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 77 insertions(+), 12 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index c3b97cea1f..05042cb205 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10996,10 +10996,17 @@ Package object of the Open vSwitch. @cindex X11 @cindex X Window System +@cindex login manager Support for the X Window graphical display system---specifically Xorg---is provided by the @code{(gnu services xorg)} module. Note that there is no @code{xorg-service} procedure. Instead, the X server is -started by the @dfn{login manager}, currently SLiM. +started by the @dfn{login manager}, by default SLiM. + +@cindex window manager +To use X11, you must install at least one @dfn{window manager}---for +example the @code{windowmaker} or @code{openbox} packages---preferably +by adding it to the @code{packages} field of your operating system +definition (@pxref{operating-system Reference, system-wide packages}). @defvr {Scheme Variable} slim-service-type This is the type for the SLiM graphical login manager for X11. @@ -11036,8 +11043,19 @@ When @code{auto-login?} is true, SLiM logs in directly as @itemx @code{theme-name} (default: @code{%default-slim-theme-name}) The graphical theme to use and its name. -@item @code{auto-login-session} (default: @code{windowmaker}) -The default session to use when none is specified. +@item @code{auto-login-session} (default: @code{#f}) +If true, this must be the name of the executable to start as the default +session---e.g., @code{(file-append windowmaker "/bin/windowmaker")}. + +If false, a session described by one of the available @file{.desktop} +files in @code{/run/current-system/profile} and @code{~/.guix-profile} +will be used. + +@quotation Note +You must install at least one window manager in the system profile or in +your user profile. Failing to do that, if @code{auto-login-session} is +false, you will be unable to log in. +@end quotation @item @code{startx} (default: @code{(xorg-start-command)}) The command used to start the X11 graphical server. diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index c1955e0b65..0da3397da3 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -309,10 +309,15 @@ (define* (xinitrc #:key fallback-session) "Return a system-wide xinitrc script that starts the specified X session, which should be passed to this script as the first argument. If not, the -@var{fallback-session} will be used." +@var{fallback-session} will be used or, if @var{fallback-session} is false, a +desktop session from the system or user profile will be used." (define builder #~(begin - (use-modules (ice-9 match)) + (use-modules (ice-9 match) + (ice-9 regex) + (ice-9 ftw) + (srfi srfi-1) + (srfi srfi-26)) (define (close-all-fdes) ;; Close all the open file descriptors except 0 to 2. @@ -336,16 +341,59 @@ (define (exec-from-login-shell command . args) (execl shell shell "--login" "-c" (string-join (cons command args))))) + (define system-profile + "/run/current-system/profile") + + (define user-profile + (and=> (getpw (getuid)) + (lambda (pw) + (string-append (passwd:dir pw) "/.guix-profile")))) + + (define (xsession-command desktop-file) + ;; Read from DESKTOP-FILE its X session command and return it as a + ;; list. + (define exec-regexp + (make-regexp "^[[:blank:]]*Exec=(.*)$")) + + (call-with-input-file desktop-file + (lambda (port) + (let loop () + (match (read-line port) + ((? eof-object?) #f) + ((= (cut regexp-exec exec-regexp <>) result) + (if result + (string-tokenize (match:substring result 1)) + (loop)))))))) + + (define (find-session profile) + ;; Return an X session command from PROFILE or #f if none was found. + (let ((directory (string-append profile "/share/xsessions"))) + (match (scandir directory + (cut string-suffix? ".desktop" <>)) + ((or () #f) + #f) + ((sessions ...) + (any xsession-command + (map (cut string-append directory "/" <>) + sessions)))))) + (let* ((home (getenv "HOME")) (xsession-file (string-append home "/.xsession")) (session (match (command-line) - ((_) (list #$fallback-session)) - ((_ x ..1) x)))) + ((_) + #$(if fallback-session + #~(list #$fallback-session) + #f)) + ((_ x ..1) + x)))) (if (file-exists? xsession-file) ;; Run ~/.xsession when it exists. (apply exec-from-login-shell xsession-file session) - ;; Otherwise, start the specified session. - (apply exec-from-login-shell session))))) + ;; Otherwise, start the specified session or a fallback. + (apply exec-from-login-shell + (or session + (find-session user-profile) + (find-session system-profile))))))) (program-file "xinitrc" builder)) @@ -383,7 +431,7 @@ (define-record-type* (shepherd slim-configuration-shepherd (default shepherd)) (auto-login-session slim-configuration-auto-login-session - (default (file-append windowmaker "/bin/wmaker"))) + (default #f)) (startx slim-configuration-startx (default (xorg-start-command)))) @@ -469,8 +517,7 @@ (define* (slim-service #:key (slim slim) ;deprecated (theme %default-slim-theme) (theme-name %default-slim-theme-name) (xauth xauth) (shepherd shepherd) - (auto-login-session (file-append windowmaker - "/bin/wmaker")) + (auto-login-session #f) (startx (xorg-start-command))) "Return a service that spawns the SLiM graphical login manager, which in turn starts the X display server with @var{startx}, a command as returned by -- cgit v1.2.3 From 91c619ebdfd065f0becbbcc742dc412dc41e77a1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 13:25:04 +0100 Subject: gnu: guix: Provide the correct version string. Fixes . Reported by Arun Isaac . * gnu/packages/package-management.scm (guix)[arguments]: Move 'bootstrap' phase before 'configure'. Create '.tarball-version' file. --- gnu/packages/package-management.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 15c310d6e6..6d18fa0782 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -136,13 +136,17 @@ (define-public guix (ice-9 rdelim)) #:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (add-before 'configure 'bootstrap (lambda _ ;; Make sure 'msgmerge' can modify the PO files. (for-each (lambda (po) (chmod po #o666)) (find-files "." "\\.po$")) + (call-with-output-file ".tarball-version" + (lambda (port) + (display ,version port))) + (zero? (system* "sh" "bootstrap")))) (add-before 'configure 'copy-bootstrap-guile -- cgit v1.2.3 From dd1640eed606e21c09c4028dfa8aaeb1a071c6cf Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 13:29:47 +0100 Subject: gnu: guix: Add guile-bytestructures to the search path. * gnu/packages/package-management.scm (guix)[arguments]: In 'wrap-program' phase, add guile-bytestructures to the path. --- gnu/packages/package-management.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 6d18fa0782..307e17d15e 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -196,15 +196,17 @@ (define (copy arch) #t)) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Make sure the 'guix' command finds GnuTLS and - ;; Guile-JSON automatically. + ;; Make sure the 'guix' command finds GnuTLS, + ;; Guile-JSON, and Guile-Git automatically. (let* ((out (assoc-ref outputs "out")) (guile (assoc-ref inputs "guile")) (json (assoc-ref inputs "guile-json")) (git (assoc-ref inputs "guile-git")) + (bs (assoc-ref inputs + "guile-bytestructures")) (ssh (assoc-ref inputs "guile-ssh")) (gnutls (assoc-ref inputs "gnutls")) - (deps (list json gnutls git ssh)) + (deps (list json gnutls git bs ssh)) (effective (read-line (open-pipe* OPEN_READ -- cgit v1.2.3 From c397dfca033c2212abdd012a28c562cc3eaa942c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 13:40:04 +0100 Subject: build: Explicitly flush the "LOAD" and "GUILEC" lines. * build-aux/compile-all.scm : Add calls to 'force-output' in the #:report-load and #:report-compilation procedures. Fixes a regression introduced in 2890ad332fcdfd4bc92b127d783975437c8b718b whereby compilation output would be buffered, leading to a weird visual effect. --- build-aux/compile-all.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm index c7ca5a6f67..d2afbdab02 100644 --- a/build-aux/compile-all.scm +++ b/build-aux/compile-all.scm @@ -92,8 +92,10 @@ (define* (parallel-job-count #:optional (flags (getenv "MAKEFLAGS"))) #:host host #:report-load (lambda (file total completed) (when file - (format #t " LOAD ~a~%" file))) + (format #t " LOAD ~a~%" file) + (force-output))) #:report-compilation (lambda (file total completed) (when file (format #t " GUILEC ~a~%" - (scm->go file))))))) + (scm->go file)) + (force-output)))))) -- cgit v1.2.3 From 1da3d2a3a1b53bdd71774194f4afc13f35bb18e3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 14:57:16 +0100 Subject: gnu: perl-markdown-discount: Use a shorter patch file name. * gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch: Rename to... * gnu/packages/patches/perl-text-markdown-discount-unbundle.patch: ... this. * gnu/packages/markup.scm (perl-text-markdown-discount): Adjust accordingly. --- gnu/packages/markup.scm | 2 +- .../perl-text-markdown-discount-unbundle.patch | 32 ++++++++++++++++++++++ ...ext-markdown-discount-use-system-markdown.patch | 32 ---------------------- 3 files changed, 33 insertions(+), 33 deletions(-) create mode 100644 gnu/packages/patches/perl-text-markdown-discount-unbundle.patch delete mode 100644 gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm index 6a0902c03e..4426258db6 100644 --- a/gnu/packages/markup.scm +++ b/gnu/packages/markup.scm @@ -161,7 +161,7 @@ (define-public perl-text-markdown-discount (base32 "1xx7v3wnla7m6wa3h33whxw3vvincaicg4yra1b9wbzf2aix9rnw")) (patches - (search-patches "perl-text-markdown-discount-use-system-markdown.patch")))) + (search-patches "perl-text-markdown-discount-unbundle.patch")))) (build-system perl-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/perl-text-markdown-discount-unbundle.patch b/gnu/packages/patches/perl-text-markdown-discount-unbundle.patch new file mode 100644 index 0000000000..e0df632a04 --- /dev/null +++ b/gnu/packages/patches/perl-text-markdown-discount-unbundle.patch @@ -0,0 +1,32 @@ +Description: Use the markdown library provided by the libmarkdown2 package. +Author: Alessandro Ghedini +Origin: vendor +Forwarded: not-needed +Last-Update: 2012-01-01 + +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -57,12 +57,6 @@ + + + +-sub MY::postamble { +- return sprintf(' +-$(MYEXTLIB): +- %s +-', qq{( cd $extdir; CC='cc -fPIC' sh configure.sh; make )\n}); +-} + + WriteMakefile( + NAME => 'Text::Markdown::Discount', +@@ -71,8 +65,6 @@ + ($] >= 5.005 ? + (ABSTRACT_FROM => 'lib/Text/Markdown/Discount.pm', + AUTHOR => 'Masayoshi Sekimura ') : ()), +- LIBS => '-L' . $extdir, +- INC => '-I. -I' . $extdir, +- MYEXTLIB => $myextlib, +- clean => { FILES => $clean_files }, ++ LIBS => '-lmarkdown', ++ INC => '-I.', + ); diff --git a/gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch b/gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch deleted file mode 100644 index e0df632a04..0000000000 --- a/gnu/packages/patches/perl-text-markdown-discount-use-system-markdown.patch +++ /dev/null @@ -1,32 +0,0 @@ -Description: Use the markdown library provided by the libmarkdown2 package. -Author: Alessandro Ghedini -Origin: vendor -Forwarded: not-needed -Last-Update: 2012-01-01 - ---- a/Makefile.PL -+++ b/Makefile.PL -@@ -57,12 +57,6 @@ - - - --sub MY::postamble { -- return sprintf(' --$(MYEXTLIB): -- %s --', qq{( cd $extdir; CC='cc -fPIC' sh configure.sh; make )\n}); --} - - WriteMakefile( - NAME => 'Text::Markdown::Discount', -@@ -71,8 +65,6 @@ - ($] >= 5.005 ? - (ABSTRACT_FROM => 'lib/Text/Markdown/Discount.pm', - AUTHOR => 'Masayoshi Sekimura ') : ()), -- LIBS => '-L' . $extdir, -- INC => '-I. -I' . $extdir, -- MYEXTLIB => $myextlib, -- clean => { FILES => $clean_files }, -+ LIBS => '-lmarkdown', -+ INC => '-I.', - ); -- cgit v1.2.3 From eef01cfe8eac8dee8ecf727e4ca459ae065e15ea Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 15:05:55 +0100 Subject: lint: 'patch-file-names' checks for file name length. Reported at by Danny Milosavljevic . * guix/scripts/lint.scm (%distro-directory): New variable. (check-patch-file-names): Add check for the file name length. * tests/lint.scm ("patches: file name too long"): New test. --- guix/scripts/lint.scm | 28 +++++++++++++++++++++++++--- tests/lint.scm | 15 ++++++++++++++- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 8840b1acb5..7300e55de2 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -587,24 +587,46 @@ (define (check-home-page package) (package-home-page package)) 'home-page))))) +(define %distro-directory + (dirname (search-path %load-path "gnu.scm"))) + (define (check-patch-file-names package) "Emit a warning if the patches requires by PACKAGE are badly named or if the patch could not be found." (guard (c ((message-condition? c) ;raised by 'search-patch' (emit-warning package (condition-message c) 'patch-file-names))) + (define patches + (or (and=> (package-source package) origin-patches) + '())) + (unless (every (match-lambda ;patch starts with package name? ((? string? patch) (and=> (string-contains (basename patch) (package-name package)) zero?)) (_ #f)) ;must be an or something like that. - (or (and=> (package-source package) origin-patches) - '())) + patches) (emit-warning package (G_ "file names of patches should start with the package name") - 'patch-file-names)))) + 'patch-file-names)) + + ;; Check whether we're reaching tar's maximum file name length. + (let ((prefix (string-length %distro-directory)) + (margin (string-length "guix-0.13.0-10-123456789/")) + (max 99)) + (for-each (match-lambda + ((? string? patch) + (when (> (+ margin (- (string-length patch) prefix)) + max) + (emit-warning + package + (format #f (G_ "~a: file name is too long") + (basename patch)) + 'patch-file-names))) + (_ #f)) + patches)))) (define (escape-quotes str) "Replace any quote character in STR by an escaped quote character." diff --git a/tests/lint.scm b/tests/lint.scm index 1d0fc4708c..064f3d177e 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 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Alex Kost @@ -331,6 +331,19 @@ (define-syntax-rule (with-warnings body ...) (check-patch-file-names pkg))) "file names of patches should start with the package name"))) +(test-assert "patches: file name too long" + (->bool + (string-contains + (with-warnings + (let ((pkg (dummy-package "x" + (source + (dummy-origin + (patches (list (string-append "x-" + (make-string 100 #\a) + ".patch")))))))) + (check-patch-file-names pkg))) + "file name is too long"))) + (test-assert "patches: not found" (->bool (string-contains -- cgit v1.2.3 From 0a154c15a81ef80bf512a38ae8473a5bc511302b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 15:52:01 +0100 Subject: lint: Adjust file-name length test for out-of-tree file names. * guix/scripts/lint.scm (check-patch-file-names): Adjust file-name-length calculation. --- guix/scripts/lint.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 7300e55de2..1b43b0a63c 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -618,7 +618,10 @@ (define patches (max 99)) (for-each (match-lambda ((? string? patch) - (when (> (+ margin (- (string-length patch) prefix)) + (when (> (+ margin (if (string-prefix? %distro-directory + patch) + (- (string-length patch) prefix) + (string-length patch))) max) (emit-warning package -- cgit v1.2.3 From 07f3b3794cfa83c8a81bccade67d324a5fde536d Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Mon, 5 Jun 2017 13:42:45 -0400 Subject: gnu: Add roguebox-adventures. * gnu/packages/games.scm (roguebox-adventures): New variable. --- gnu/packages/games.scm | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 458f8ca351..565c0e8229 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -580,6 +580,92 @@ (define-public retux license:gpl2+ license:gpl3+)))) +(define-public roguebox-adventures + (let ((commit "19a2c340b34d5b4e7cc89118c7aedc058babbd93") + (revision "1")) + (package + (name "roguebox-adventures") + (version (git-version "2.1.2" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://git.postactiv.com/themightyglider/RogueBoxAdventures.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0afmg8fjdcs3sqdp5rc7irgr7riil8jwysfjn1imfxslf1wcx5ah")))) + (build-system python-build-system) + (arguments + '(#:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + ;; no setup.py script + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (data (string-append + out "/share/games/roguebox-adventures"))) + ;; Use the correct data directory. + (substitute* '("main.py" "LIB/getch.py" "LIB/getch_gcwz.py") + (("basic_path + os\\.sep + 'DATA'") + (string-append "'" data "'")) + (("^basic_path.*$") + (string-append "basic_path ='" data "'\n"))) + (substitute* "LIB/gra_files.py" + (("basic_path = b_path\\.replace\\('/LIB',''\\)") + (string-append "basic_path ='" data "'\n"))) + + ;; The game must save in the user's home directory because + ;; the store is read-only. + (substitute* "main.py" + (("home_save = False") "home_save = True") + (("'icon_small.png'") + (string-append "'" data "/icon_small.png'")))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (data (string-append + out "/share/games/roguebox-adventures")) + (doc (string-append + out "/share/doc/roguebox-adventures"))) + (mkdir-p bin) + (mkdir-p doc) + (copy-file "main.py" + (string-append bin "/roguebox-adventures")) + (chmod (string-append bin "/roguebox-adventures") #o555) + + (for-each (lambda (file) + (copy-recursively file + (string-append data "/" file))) + '("AUDIO" "FONT" "GRAPHIC" "LIB" "LICENSE" + "icon_big.png" "icon_small.png")) + + (copy-recursively "DOC" doc) + + (wrap-program (string-append bin "/roguebox-adventures") + `("PYTHONPATH" ":" prefix (,(string-append data "/LIB"))))) + #t))))) + (inputs + `(("python-pygame" ,python-pygame) + ("python-tmx" ,python-tmx))) + (home-page "https://rogueboxadventures.tuxfamily.org") + (synopsis "A classical roguelike/sandbox game") + (description + "RogueBox Adventures is a graphical roguelike with strong influences +from sandbox games like Minecraft or Terraria. The main idea of RogueBox +Adventures is to offer the player a kind of roguelike toy-world. This world +can be explored and changed freely.") + ;; The GPL3+ is for code, the rest are for art. + (license (list license:cc0 + license:cc-by3.0 + license:gpl3+ + license:silofl1.1))))) + (define-public xshogi (package (name "xshogi") -- cgit v1.2.3 From a6d02fc168e83ee89f3f37704425a0dd8e643fe2 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sat, 25 Nov 2017 14:16:31 +0300 Subject: gnu: Add eless. * gnu/packages/emacs.scm (eless): New variable. --- gnu/packages/emacs.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index d6c4e2ef0e..78728a5b9c 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -6300,3 +6300,61 @@ (define-public emacs-transmission @item Toggle downloading and set priorities for individual files. @end itemize\n") (license license:gpl3+))) + +(define-public eless + (package + (name "eless") + (version "0.3") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/kaushalmodi/eless/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h")))) + (build-system trivial-build-system) + (inputs + `(("bash" ,bash))) + (native-inputs + `(("tar" ,tar) + ("gzip" ,gzip))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (setenv "PATH" (string-append + (assoc-ref %build-inputs "tar") "/bin" ":" + (assoc-ref %build-inputs "gzip") "/bin")) + (system* "tar" "xvf" (assoc-ref %build-inputs "source")) + (chdir (string-append "eless" "-" ,version)) + (substitute* "eless" (("/usr/bin/env bash") + (string-append (assoc-ref %build-inputs "bash") + "/bin/bash"))) + (install-file "eless" (string-append %output "/bin")) + (install-file "doc/eless.info" (string-append %output "/share/info")) + #t))) + (home-page "https://github.com/kaushalmodi/eless") + (synopsis "Use Emacs as a paginator") + (description "@code{eless} provides a combination of Bash script +and a minimal Emacs view-mode. + +Feautures: + +@itemize +@item Independent of a user’s Emacs config. +@item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config. +@item Not require an Emacs server to be already running. +@item Syntax highlighting. +@item Org-mode file rendering. +@item @code{man} page viewer. +@item Info viewer. +@item Dired, wdired, (batch edit symbolic links). +@item Colored diffs, git diff, git log, ls with auto ANSI detection. +@item Filter log files lines matching a regexp. +@item Auto-revert log files similar to @code{tail -f}. +@item Quickly change frame and font sizes. +@end itemize\n") + (license license:expat))) -- cgit v1.2.3 From e463a94ce781a8cd09019e0d11af64e6c1e44915 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 18:14:04 +0100 Subject: gnu: guix: Update snapshot to 0a154c1. * gnu/packages/package-management.scm (guix): Update to commit 0a154c1. --- 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 307e17d15e..ac697512d6 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -86,8 +86,8 @@ (define-public guix ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.13.0") - (commit "953c2de7061f18f55d8c51b72eb24945f436e80e") - (revision 11)) + (commit "0a154c15a81ef80bf512a38ae8473a5bc511302b") + (revision 12)) (package (name "guix") @@ -103,7 +103,7 @@ (define-public guix (commit commit))) (sha256 (base32 - "1nnsang4wv6c63sdm3r7i06wqgzmq9ijpz5y00cxajbsqjzl07c7")) + "0w7sk6b0jaklr0sx8rnljr3xc2jznr4w54dh9fnhwa3hdcsj6xfw")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 25fa22a99b31c91dba398935ef9457a7664d8156 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sat, 25 Nov 2017 11:11:40 +0300 Subject: gnu: python-internetarchive: Update to 1.7.4. * gnu/packages/web.scm (python-internetarchive): Update to 1.7.4. --- 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 b84bbdddd3..9ea7c14dd7 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5160,7 +5160,7 @@ (define-public jo (define-public python-internetarchive (package (name "python-internetarchive") - (version "1.7.1") + (version "1.7.4") (source (origin (method url-fetch) @@ -5169,7 +5169,7 @@ (define-public python-internetarchive (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1lj4r0y67mwjns2gcjvw0y7m5x0vqir2iv7s4q2y93492azli1qh")))) + "0sdbb2ag6vmybi8zmbjszi492a587giaaqxyy1p6gy03cb8mc512")))) (build-system python-build-system) (arguments `(#:tests? #f ; 11 tests of 105 fail to mock "requests". -- cgit v1.2.3 From 2cdf78df2d3d5d88c7e6908754233cf37cce1e61 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sat, 25 Nov 2017 11:12:08 +0300 Subject: gnu: python-internetarchive: Enable tests. * gnu/packages/web.scm (python-internetarchive): Enable tests. --- gnu/packages/web.scm | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 9ea7c14dd7..33689042ab 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5172,21 +5172,20 @@ (define-public python-internetarchive "0sdbb2ag6vmybi8zmbjszi492a587giaaqxyy1p6gy03cb8mc512")))) (build-system python-build-system) (arguments - `(#:tests? #f ; 11 tests of 105 fail to mock "requests". - #:phases + `(#:phases (modify-phases %standard-phases (delete 'check) (add-after 'install 'check - (lambda* (#:key inputs outputs target (tests? (not target)) #:allow-other-keys) - (if tests? - (begin - (add-installed-pythonpath inputs outputs) - (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin" - ":" (getenv "PATH"))) - (zero? (system* "py.test"))) - (begin - (format #t "test suite not run~%") - #t))))))) + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin" + ":" (getenv "PATH"))) + (zero? (system* "py.test" "-v" "-k" + (string-append + ;; These tests attempt to make a connection to + ;; an external web service. + "not test_get_item_with_kwargs" + " and not test_ia")))))))) (propagated-inputs `(("python-requests" ,python-requests) ("python-jsonpatch" ,python-jsonpatch-0.4) -- cgit v1.2.3 From 142535c3c25ed4c10de6d5442202159304f0be98 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 28 Nov 2017 08:44:38 +0100 Subject: gnu: you-get: Update to 0.4.985. * gnu/packages/video.scm (you-get): Update to 0.4.985. Signed-off-by: Leo Famulari --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index ca733297b8..a353d88d00 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1259,7 +1259,7 @@ (define-public youtube-dl-gui (define-public you-get (package (name "you-get") - (version "0.4.964") + (version "0.4.985") (source (origin (method url-fetch) (uri (string-append @@ -1268,7 +1268,7 @@ (define-public you-get (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1icxi4f2yli74zyvwfcdrpp56g81kdkan31dc2brs4p0rj567kfx")))) + "0a11z8bq4b4pgibrrx6hwjkg9hn8vx01ql9jxa73s6d7ry5nhmwm")))) (build-system python-build-system) (arguments ;; no tests -- cgit v1.2.3 From fbf5ca3c5e23a4f48e6d91d7229edca283fa86b9 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 27 Nov 2017 19:57:53 +0100 Subject: gnu: libressl: Update to 2.6.3. * gnu/packages/tls.scm (libressl): Update to 2.6.3. --- gnu/packages/tls.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 595524506a..23b5cc9931 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -484,14 +485,14 @@ (define-public openssl-next (define-public libressl (package (name "libressl") - (version "2.5.5") + (version "2.6.3") (source (origin (method url-fetch) (uri (string-append "mirror://openbsd/LibreSSL/" name "-" version ".tar.gz")) (sha256 (base32 - "1i77viqy1afvbr392npk9v54k9zhr9zq2vhv6pliza22b0ymwzz5")))) + "162wgzmg4zzqj5cxrsrmkfv1623dc4g8h3fsf1lvjw9i4sc6bbdf")))) (build-system gnu-build-system) (arguments ;; Do as if 'getentropy' was missing since older Linux kernels lack it -- cgit v1.2.3 From 4440e40c6a950a3ccd5696c0227705b4688a56a1 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 27 Nov 2017 21:10:31 -0500 Subject: gnu: zsh: Update to 5.4.2. * gnu/packages/shells.scm (zsh): Update to 5.4.2. [arguments]: Add a 'patch-test' build phase. --- gnu/packages/shells.scm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 7ea521a083..62934646cc 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -317,7 +317,7 @@ (define-public tcsh (define-public zsh (package (name "zsh") - (version "5.2") + (version "5.4.2") (source (origin (method url-fetch) (uri (list (string-append @@ -328,7 +328,7 @@ (define-public zsh ".tar.gz"))) (sha256 (base32 - "0dsr450v8nydvpk8ry276fvbznlrjgddgp7zvhcw4cv69i9lr4ps")))) + "1jdcfinzmki2w963msvsanv29vqqfmdfm4rncwpw0r3zqnrcsywm")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre") #:phases @@ -351,7 +351,17 @@ (define-public zsh "Test/B02typeset.ztst" "Completion/Unix/Command/_init_d" "Util/preconfig") - (("/bin/sh") (which "sh"))))))))) + (("/bin/sh") (which "sh")))))) + (add-before 'check 'patch-test + (lambda _ + ;; In Zsh, `command -p` searches a predefined set of + ;; paths that don't exist in the build environment. See + ;; the assignment of 'path' in Src/init.c' + (substitute* "Test/A01grammar.ztst" + (("command -pv") "command -v") + (("command -p") "command ") + (("'command' -p") "'command' ")) + #t))))) (native-inputs `(("autoconf" ,autoconf))) (inputs `(("ncurses" ,ncurses) ("pcre" ,pcre) -- cgit v1.2.3 From 27a10775805df96a5c6a77e8e03cbc172c50f5c7 Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 28 Nov 2017 14:16:17 -0500 Subject: gnu: Add font-dosis. * gnu/packages/fonts.scm (font-dosis): New variable. Signed-off-by: Leo Famulari --- gnu/packages/fonts.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 4acebeb405..dbb3418e15 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -1070,3 +1070,52 @@ (define-public font-open-dyslexic "The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself.")))) + +(define-public font-dosis + (package + (name "font-dosis") + (version "1.7") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.impallari.com/media/releases/dosis-" + "v" version ".zip")) + (sha256 + (base32 + "1qhci68f68mf87jd69vjf9qjq3wydgw1q7ivn3amjb65ls1s0c4s")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils) + (srfi srfi-26)) + + (let ((PATH (string-append (assoc-ref %build-inputs + "unzip") + "/bin")) + (ttf-dir (string-append %output + "/share/fonts/truetype")) + (otf-dir (string-append %output + "/share/fonts/opentype"))) + (setenv "PATH" PATH) + (system* "unzip" (assoc-ref %build-inputs "source")) + + (mkdir-p ttf-dir) + (mkdir-p otf-dir) + (for-each (lambda (ttf) + (install-file ttf ttf-dir)) + (find-files "." "\\.ttf$")) + (for-each (lambda (otf) + (install-file otf otf-dir)) + (find-files "." "\\.otf$")))))) + (native-inputs `(("unzip" ,unzip))) + (home-page "http://www.impallari.com/dosis") + (synopsis "Very simple, rounded, sans serif family") + (description + "Dosis is a very simple, rounded, sans serif family. +The lighter weights are minimalist. The bolder weights have more personality. +The medium weight is nice and balanced. The overall result is a family +that's clean and modern, and can express a wide range of voices & feelings. +It comes in 7 incremental weights: +ExtraLight, Light, Book, Medium, Semibold, Bold & ExtraBold") + (license license:silofl1.1))) -- cgit v1.2.3 From 4eb4742060b378071158bdd8794370a12ab04701 Mon Sep 17 00:00:00 2001 From: ng0 Date: Sat, 5 Aug 2017 17:21:23 +0000 Subject: gnu: Add font-lato. * gnu/packages/fonts.scm (font-lato): New variable. Signed-off-by: Leo Famulari --- gnu/packages/fonts.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index dbb3418e15..092b70e587 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -170,6 +170,45 @@ (define-public font-cantarell sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.") (license license:silofl1.1))) +(define-public font-lato + (package + (name "font-lato") + (version "2.010") + (source (origin + (method url-fetch) + (uri (string-append "http://www.latofonts.com/download/Lato2OFL.zip")) + (sha256 + (base32 + "1f5540g0ja1nx3ddd3ywn77xc81ssrxpq8n3gyb9sabyq2b4xda2")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils) + (srfi srfi-26)) + + (let ((PATH (string-append (assoc-ref %build-inputs + "unzip") + "/bin")) + (font-dir (string-append %output + "/share/fonts/truetype"))) + (setenv "PATH" PATH) + (system* "unzip" (assoc-ref %build-inputs "source")) + + (mkdir-p font-dir) + (for-each (lambda (ttf) + (install-file ttf font-dir)) + (find-files "." "\\.ttf$")))))) + + (native-inputs `(("unzip" ,unzip))) + (home-page "http://www.latofonts.com/lato-free-fonts/") + (synopsis "Lato sans-serif typeface") + (description + "Lato is a sanserif typeface family. It covers over 3000 glyphs per style. +The Lato 2.010 family supports more than 100 Latin-based languages, over +50 Cyrillic-based languages as well as Greek and IPA phonetics.") + (license license:silofl1.1))) + (define-public font-gnu-freefont-ttf (package (name "font-gnu-freefont-ttf") -- cgit v1.2.3 From 0ee27df06be40ec63e393f1120ecb87dc825df17 Mon Sep 17 00:00:00 2001 From: ng0 Date: Fri, 4 Aug 2017 19:13:51 +0000 Subject: gnu: add font-fira-sans. * gnu/packages/fonts.scm (font-fira-sans): New variable. Signed-off-by: Leo Famulari --- gnu/packages/fonts.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 092b70e587..0f123c3ab1 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -870,6 +870,24 @@ (define-public font-fira-mono (description "This is the typeface used by Mozilla in Firefox OS.") (license license:silofl1.1))) +(define-public font-fira-sans + (package + (name "font-fira-sans") + (version "4.202") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mozilla/Fira/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1r6zdnqqp4bgq5nmgqbj0vvj7x1h9w912851ggbl9wc7fdjnjqnq")))) + (build-system font-build-system) + (home-page "http://mozilla.github.io/Fira/") + (synopsis "Mozilla's Fira Sans Font") + (description "This is the typeface used by Mozilla in Firefox OS.") + (license license:silofl1.1))) + (define-public font-awesome (package (name "font-awesome") -- cgit v1.2.3 From 427a51fd8f3d2b24a08b4c0cbc4977fbd42b933b Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 20 Sep 2017 11:39:29 +0000 Subject: gnu: Add python2-ufolib. * gnu/packages/fontutils.scm (python2-ufolib): New variable. Signed-off-by: Leo Famulari --- gnu/packages/fontutils.scm | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index ae370f4b52..1425045823 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2017 Rene Saavedra ;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ (define-module (gnu packages fontutils) #:use-module (gnu packages) #:use-module (gnu packages compression) + #:use-module (gnu packages check) #:use-module (gnu packages ghostscript) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -44,7 +46,8 @@ (define-module (gnu packages fontutils) #:use-module (guix svn-download) #:use-module (guix git-download) #:use-module (guix build-system cmake) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (guix build-system python)) (define-public freetype (package @@ -556,3 +559,29 @@ (define-public fontforge generate bitmaps.") (license license:gpl3+) (home-page "https://fontforge.github.io/en-US/"))) + +(define-public python2-ufolib + (package + (name "python2-ufolib") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ufoLib" version ".zip")) + (sha256 + (base32 "1njin1465qqzshnrvcl5sbv0bsy15gj6fycbw4lmcnwkx5sldgyx")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + (propagated-inputs + `(("python2-fonttools" ,python2-fonttools))) + (native-inputs + `(("unzip" ,unzip) + ("python2-pytest-3.0" ,python2-pytest-3.0) + ("python2-pytest-runner" ,python2-pytest-runner))) + (home-page "https://github.com/unified-font-object/ufoLib") + (synopsis "Low-level UFO reader and writer") + (description + "UfoLib reads and writes Unified Font Object (UFO) +files. UFO is a file format that stores fonts source files.") + (license license:bsd-3))) -- cgit v1.2.3 From 9b3c7520eb8fde918660745ded8dc0574f019442 Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 28 Nov 2017 14:42:42 -0500 Subject: gnu: Add python-setuptools-scm-git-archive. * gnu/packages/python.scm (python-setuptools-scm-git-archive, python2-setuptools-scm-git-archive): New variables. Signed-off-by: Leo Famulari --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7b2268d133..f5575034da 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -11856,3 +11856,30 @@ (define-public python-jsonrpclib-pelix (define-public python2-jsonrpclib-pelix (package-with-python2 python-jsonrpclib-pelix)) + +(define-public python-setuptools-scm-git-archive + (package + (name "python-setuptools-scm-git-archive") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "setuptools_scm_git_archive" version)) + (sha256 + (base32 + "1nii1sz5jq75ilf18bjnr11l9rz1lvdmyk66bxl7q90qan85yhjj")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest-3.0" ,python-pytest-3.0))) + (propagated-inputs + `(("python-setuptools-scm" ,python-setuptools-scm))) + (home-page "https://github.com/Changaco/setuptools_scm_git_archive/") + (synopsis "Setuptools_scm plugin for git archives") + (description + "The setuptools_scm_git_archive package is a plugin to +setuptools_scm, which supports obtaining versions from git archives that +belong to tagged versions.") + (license license:expat))) + +(define-public python2-setuptools-scm-git-archive + (package-with-python2 python-setuptools-scm-git-archive)) -- cgit v1.2.3 From a39211febd46fdc7c55340693abe1e7dd1110dbb Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 28 Nov 2017 14:48:08 -0500 Subject: gnu: Add python-pyclipper. * gnu/packages/python.scm (python-pyclipper, python2-pyclipper): New variables. Signed-off-by: Leo Famulari --- gnu/packages/python.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f5575034da..9bff57a562 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -11883,3 +11883,31 @@ (define-public python-setuptools-scm-git-archive (define-public python2-setuptools-scm-git-archive (package-with-python2 python-setuptools-scm-git-archive)) + +(define-public python-pyclipper + (package + (name "python-pyclipper") + (version "1.0.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyclipper" version ".zip")) + (sha256 + (base32 + "1zpmwv3bya3j984y5cf9x9d5108kf6mxldcba68wiq0frv5qrssw")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)); 8 Tests fail, 37 succeed + (propagated-inputs + `(("python-setuptools-scm-git-archive" ,python-setuptools-scm-git-archive))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "https://github.com/greginvm/pyclipper") + (synopsis "Wrapper for Angus Johnson's Clipper library") + (description + "Pyclipper is a Cython wrapper for the C++ translation of the + Angus Johnson's polygon clipping Clipper library (ver. 6.2.1).") + (license license:expat))) + +(define-public python2-pyclipper + (package-with-python2 python-pyclipper)) -- cgit v1.2.3 From 76040f71f116b4f788d6748a523eaa4ea18d1cf0 Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 28 Nov 2017 14:51:45 -0500 Subject: gnu: Add python2-booleanoperations. * gnu/packages/python.scm (python2-booleanoperations): New variable. Signed-off-by: Leo Famulari --- gnu/packages/python.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9bff57a562..9e89e0d111 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -11911,3 +11911,32 @@ (define-public python-pyclipper (define-public python2-pyclipper (package-with-python2 python-pyclipper)) + +(define-public python2-booleanoperations + (package + (name "python2-booleanoperations") + (version "0.7.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "booleanOperations" version ".zip")) + (sha256 + (base32 + "1hw42fazdpvsn77glx96hwsj9l17mvx37sc5707s08y5w6fx16mn")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + (native-inputs + `(("unzip" ,unzip) + ("python2-pytest-3.0" ,python2-pytest-3.0) + ("python2-pytest-runner" ,python2-pytest-runner))) + (propagated-inputs + `(("python-fonttools" ,python2-fonttools) + ("python-pyclipper" ,python2-pyclipper) + ("python-ufolib" ,python2-ufolib))) + (home-page "https://github.com/typemytype/booleanOperations") + (synopsis "Boolean operations on paths") + (description + "BooleanOperations provides a Python library that enables +boolean operations on paths.") + (license license:expat))) -- cgit v1.2.3 From 3715aff59ba232a7c9beae3978891530b8777f5d Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 28 Nov 2017 14:52:58 -0500 Subject: gnu: Add python2-defcon. * gnu/packages/fontutils.scm (python2-defcon): New variable. Signed-off-by: Leo Famulari --- gnu/packages/fontutils.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 1425045823..de6293aacd 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -585,3 +585,36 @@ (define-public python2-ufolib "UfoLib reads and writes Unified Font Object (UFO) files. UFO is a file format that stores fonts source files.") (license license:bsd-3))) + +(define-public python2-defcon + (package + (name "python2-defcon") + (version "0.3.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "defcon" version ".zip")) + (sha256 + (base32 + "1f41w54fdjy9izxcwzqa142kd56whqsg9nq5k4508jb6iip84h89")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + (native-inputs + `(("unzip" ,unzip) + ("python2-pytest-3.0" ,python2-pytest-3.0) + ("python2-pytest-runner" ,python2-pytest-runner))) + (propagated-inputs + `(("python2-fonttools" ,python2-fonttools) + ("python2-ufolib" ,python2-ufolib))) + (home-page "https://pypi.python.org/pypi/defcon") + (synopsis "Flexible objects for representing @acronym{UFO, unified font object} data") + (description + "Defcon is a set of @acronym{UFO, unified font object} based objects +optimized for use in font editing applications. The objects are built to +be lightweight, fast and flexible. The objects are very bare-bones and +they are not meant to be end-all, be-all objects. Rather, they are meant +to provide base functionality so that you can focus on your application’s +behavior, not object observing or maintaining cached data. Defcon +implements UFO3 as described by the UFO font format.") + (license license:expat))) -- cgit v1.2.3 From 20d2c6e749bb65707b90623e495b0e8d32bd92e6 Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 28 Nov 2017 14:54:19 -0500 Subject: gnu: Add nototools. * gnu/packages/fontutils.scm (nototools): New variable. Signed-off-by: Leo Famulari --- gnu/packages/fontutils.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index de6293aacd..d2306a9423 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -618,3 +618,44 @@ (define-public python2-defcon behavior, not object observing or maintaining cached data. Defcon implements UFO3 as described by the UFO font format.") (license license:expat))) + +(define-public nototools + (package + (name "nototools") + (version "20170925") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/googlei18n/nototools/" + "archive/v2017-09-25-tooling-for-phase3-" + "update.tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1pvacw18cm9l4sb66pqyjc7hc74xhhfxc7kd5ald8lixf4wzg0s8")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + (propagated-inputs + `(("python2-booleanoperations" ,python2-booleanoperations) + ("python2-defcon" ,python2-defcon) + ("python2-fonttools" ,python2-fonttools) + ("python2-pillow" ,python2-pillow) + ("python2-pyclipper" ,python2-pyclipper) + ("python2-ufolib" ,python2-ufolib))) + (home-page "https://github.com/googlei18n/nototools") + (synopsis "Noto fonts support tools and scripts") + (description + "Nototools is a Python package containing Python scripts used to +maintain the Noto Fonts project.") + (license (list license:asl2.0 + ;; Sample texts are attributed to UN and OHCHR. + ;; The permissions on the UDHR are pretty lax: + ;; http://www.ohchr.org/EN/UDHR/Pages/Introduction.aspx + ;; "If UDHR translations or materials are reproduced, users + ;; should make reference to this website as a source by + ;; providing a link." + license:public-domain + (license:non-copyleft + "file://sample_texts/attributions.txt" + "See sample_texts/attributions.txt in the distribution."))))) -- cgit v1.2.3 From f612992999d5174a69711ebbf5fcf42cc5db0345 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 22:04:00 +0100 Subject: build: Add missing patch. This is a followup to 797d238789f7635bdd55aae103db1a7c4ff33798. * gnu/local.mk (dist_patch_DATA): Add 'node-test-http2-server-rst-stream.patch'. --- gnu/local.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/local.mk b/gnu/local.mk index ebff7084ba..f94bdaa3df 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -917,6 +917,7 @@ dist_patch_DATA = \ %D%/packages/patches/newsbeuter-CVE-2017-14500.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ninja-zero-mtime.patch \ + %D%/packages/patches/node-test-http2-server-rst-stream.patch \ %D%/packages/patches/nss-increase-test-timeout.patch \ %D%/packages/patches/nss-pkgconfig.patch \ %D%/packages/patches/nvi-assume-preserve-path.patch \ -- cgit v1.2.3 From 1115f140179b8fafb5a0f7c91a22dfdb7d6b21cc Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 27 Apr 2017 14:09:16 +0200 Subject: services: Add certbot service. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/certbot.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add new file. * doc/guix.texi (Certificate Services): New section. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 84 ++++++++++++++++++++++++++++++- gnu/local.mk | 1 + gnu/services/certbot.scm | 128 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 212 insertions(+), 1 deletion(-) create mode 100644 gnu/services/certbot.scm diff --git a/doc/guix.texi b/doc/guix.texi index 05042cb205..704a726dbc 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -41,7 +41,8 @@ Copyright @copyright{} 2017 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017 Tobias Geerinckx-Rice@* -Copyright @copyright{} 2017 George Clemmer +Copyright @copyright{} 2017 George Clemmer@* +Copyright @copyright{} 2017 Andy Wingo Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -235,6 +236,7 @@ Services * Monitoring Services:: Monitoring services. * Kerberos Services:: Kerberos services. * Web Services:: Web servers. +* Certificate Services:: TLS certificates via Let's Encrypt. * DNS Services:: DNS daemons. * VPN Services:: VPN daemons. * Network File System:: NFS related services. @@ -9393,6 +9395,7 @@ declaration. * Monitoring Services:: Monitoring services. * Kerberos Services:: Kerberos services. * Web Services:: Web servers. +* Certificate Services:: TLS certificates via Let's Encrypt. * DNS Services:: DNS daemons. * VPN Services:: VPN daemons. * Network File System:: NFS related services. @@ -15090,6 +15093,84 @@ capability also has to be configured on the front-end as well. @end table @end deftp +@node Certificate Services +@subsubsection Certificate Services + +@cindex Web +@cindex HTTP, HTTPS +@cindex Let's Encrypt +@cindex TLS certificates +The @code{(gnu services certbot)} module provides a service to +automatically obtain a valid TLS certificate from the Let's Encrypt +certificate authority. These certificates can then be used to serve +content securely over HTTPS or other TLS-based protocols, with the +knowledge that the client will be able to verify the server's +authenticity. + +@url{https://letsencrypt.org/, Let's Encrypt} provides the +@code{certbot} tool to automate the certification process. This tool +first securely generates a key on the server. It then makes a request +to the Let's Encrypt certificate authority (CA) to sign the key. The CA +checks that the request originates from the host in question by using a +challenge-response protocol, requiring the server to provide its +response over HTTP. If that protocol completes successfully, the CA +signs the key, resulting in a certificate. That certificate is valid +for a limited period of time, and therefore to continue to provide TLS +services, the server needs to periodically ask the CA to renew its +signature. + +The certbot service automates this process: the initial key +generation, the initial certification request to the Let's Encrypt +service, the web server challenge/response integration, writing the +certificate to disk, and the automated periodic renewals. + +@defvr {Scheme Variable} certbot-service-type +A service type for the @code{certbot} Let's Encrypt client. +@end defvr + +@deftp {Data Type} certbot-configuration +Data type representing the configuration of the @code{certbot} serice. +This type has the following parameters: + +@table @asis +@item @code{package} (default: @code{certbot}) +The certbot package to use. + +@item @code{webroot} (default: @code{/var/www}) +The directory from which to serve the Let's Encrypt challenge/response +files. + +@item @code{hosts} (default: @code{()}) +A list of hosts for which to generate certificates and request +signatures. + +@item @code{default-location} (default: @i{see below}) +The default @code{nginx-location-configuration}. Because @code{certbot} +needs to be able to serve challenges and responses, it needs to be able +to run a web server. It does so by extending the @code{nginx} web +service with an @code{nginx-server-configuration} listening on the +@var{hosts} on port 80, and which has a +@code{nginx-location-configuration} for the @code{/.well-known/} URI +path subspace used by Let's Encrypt. @xref{Web Services}, for more on +these nginx configuration data types. + +Requests to other URL paths will be matched by the +@code{default-location}, which if present is added to all +@code{nginx-server-configuration}s. + +By default, the @code{default-location} will issue a redirect from +@code{http://@var{host}/...} to @code{https://@var{host}/...}, leaving +you to define what to serve on your site via @code{https}. + +Pass @code{#f} to not issue a default location. +@end table +@end deftp + +The public key and its signatures will be written to +@code{/etc/letsencrypt/live/@var{host}/fullchain.pem}, for each +@var{host} in the configuration. The private key is written to +@code{/etc/letsencrypt/live/@var{host}/privkey.pem}. + @node DNS Services @subsubsection DNS Services @@ -15494,6 +15575,7 @@ The list of knot-zone-configuration used by this configuration. @end table @end deftp + @node VPN Services @subsubsection VPN Services @cindex VPN (virtual private network) diff --git a/gnu/local.mk b/gnu/local.mk index f94bdaa3df..b361f1a4bc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -444,6 +444,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/audio.scm \ %D%/services/avahi.scm \ %D%/services/base.scm \ + %D%/services/certbot.scm \ %D%/services/configuration.scm \ %D%/services/cuirass.scm \ %D%/services/cups.scm \ diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm new file mode 100644 index 0000000000..c11c9a66bd --- /dev/null +++ b/gnu/services/certbot.scm @@ -0,0 +1,128 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 ng0 +;;; Copyright © 2016 Sou Bunnbu +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu services certbot) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu services shepherd) + #:use-module (gnu services mcron) + #:use-module (gnu services web) + #:use-module (gnu system shadow) + #:use-module (gnu packages tls) + #:use-module (guix records) + #:use-module (guix gexp) + #:use-module (srfi srfi-1) + #:use-module (ice-9 match) + #:export (certbot-service-type + certbot-configuration + certbot-configuration?)) + +;;; Commentary: +;;; +;;; Automatically obtaining TLS certificates from Let's Encrypt. +;;; +;;; Code: + + +(define-record-type* + certbot-configuration make-certbot-configuration + certbot-configuration? + (package certbot-configuration-package + (default certbot)) + (webroot certbot-configuration-webroot + (default "/var/www")) + (hosts certbot-configuration-hosts + (default '())) + (default-location certbot-configuration-default-location + (default + (nginx-location-configuration + (uri "/") + (body + (list "return 301 https://$host$request_uri;")))))) + +(define certbot-renewal-jobs + (match-lambda + (($ package webroot hosts default-location) + (match hosts + ;; Avoid pinging certbot if we have no hosts. + (() '()) + (_ + (list + ;; Attempt to renew the certificates twice a week. + #~(job (lambda (now) + (next-day-from (next-hour-from now '(3)) + '(2 5))) + (string-append #$package "/bin/certbot renew" + (string-concatenate + (map (lambda (host) + (string-append " -d " host)) + #$hosts)))))))))) + +(define certbot-activation + (match-lambda + (($ package webroot hosts default-location) + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (mkdir-p #$webroot) + (for-each + (lambda (host) + (unless (file-exists? (in-vicinity "/etc/letsencrypt/live" host)) + (unless (zero? (system* + (string-append #$certbot "/bin/certbot") + "certonly" "--webroot" "-w" #$webroot + "-d" host)) + (error "failed to acquire cert for host" host)))) + '#$hosts)))))) + +(define certbot-nginx-server-configurations + (match-lambda + (($ package webroot hosts default-location) + (map + (lambda (host) + (nginx-server-configuration + (http-port 80) + (https-port #f) + (ssl-certificate #f) + (ssl-certificate-key #f) + (server-name (list host)) + (locations + (filter identity + (list + (nginx-location-configuration + (uri "/.well-known") + (body (list (list "root " webroot ";")))) + default-location))))) + hosts)))) + +(define certbot-service-type + (service-type (name 'certbot) + (extensions + (list (service-extension nginx-service-type + certbot-nginx-server-configurations) + (service-extension activation-service-type + certbot-activation) + (service-extension mcron-service-type + certbot-renewal-jobs))) + (compose concatenate) + (extend (lambda (config additional-hosts) + (certbot-configuration + (inherit config) + (hosts (append (certbot-configuration-hosts config) + additional-hosts))))))) -- cgit v1.2.3 From 05f1cb3cdaf9f8bf4c50de6c0464641678e5b50f Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 27 Apr 2017 10:59:44 +0200 Subject: doc: Create "Version Control Services" section. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Version Control Services): Move to its own node. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 124 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 64 insertions(+), 60 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 704a726dbc..f90bb3dfbe 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -244,6 +244,7 @@ Services * Power management Services:: The TLP tool. * Audio Services:: The MPD. * Virtualization Services:: Virtualization services. +* Version Control Services:: Providing remote access to Git repositories. * Miscellaneous Services:: Other services. Defining Services @@ -9403,6 +9404,7 @@ declaration. * Power management Services:: The TLP tool. * Audio Services:: The MPD. * Virtualization Services:: Virtualization services. +* Version Control Services:: Providing remote access to Git repositories. * Miscellaneous Services:: Other services. @end menu @@ -17430,6 +17432,68 @@ Defaults to @samp{3} @end deftypevr +@node Version Control Services +@subsubsection Version Control Services + +The @code{(gnu services version-control)} module provides a service to +allow remote access to local Git repositories. + +@deffn {Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)] + +Return a service that runs @command{git daemon}, a simple TCP server to +expose repositories over the Git protocol for anonymous access. + +The optional @var{config} argument should be a +@code{} object, by default it allows read-only +access to exported@footnote{By creating the magic file +"git-daemon-export-ok" in the repository directory.} repositories under +@file{/srv/git}. + +@end deffn + +@deftp {Data Type} git-daemon-configuration +Data type representing the configuration for @code{git-daemon-service}. + +@table @asis +@item @code{package} (default: @var{git}) +Package object of the Git distributed version control system. + +@item @code{export-all?} (default: @var{#f}) +Whether to allow access for all Git repositories, even if they do not +have the @file{git-daemon-export-ok} file. + +@item @code{base-path} (default: @file{/srv/git}) +Whether to remap all the path requests as relative to the given path. +If you run git daemon with @var{(base-path "/srv/git")} on example.com, +then if you later try to pull @code{git://example.com/hello.git}, git +daemon will interpret the path as @code{/srv/git/hello.git}. + +@item @code{user-path} (default: @var{#f}) +Whether to allow @code{~user} notation to be used in requests. When +specified with empty string, requests to @code{git://host/~alice/foo} is +taken as a request to access @code{foo} repository in the home directory +of user @code{alice}. If @var{(user-path "path")} is specified, the +same request is taken as a request to access @code{path/foo} repository +in the home directory of user @code{alice}. + +@item @code{listen} (default: @var{'()}) +Whether to listen on specific IP addresses or hostnames, defaults to +all. + +@item @code{port} (default: @var{#f}) +Whether to listen on an alternative port, which defaults to 9418. + +@item @code{whitelist} (default: @var{'()}) +If not empty, only allow access to this list of directories. + +@item @code{extra-options} (default: @var{'()}) +Extra options will be passed to @code{git daemon}, please run +@command{man git-daemon} for more information. + +@end table +@end deftp + + @node Miscellaneous Services @subsubsection Miscellaneous Services @@ -17591,66 +17655,6 @@ The following is an example @code{dicod-service} configuration. %dicod-database:gcide)))) @end example -@subsubsection Version Control - -The @code{(gnu services version-control)} module provides the following services: - -@subsubheading Git daemon service - -@deffn {Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)] - -Return a service that runs @command{git daemon}, a simple TCP server to -expose repositories over the Git protocol for anonymous access. - -The optional @var{config} argument should be a -@code{} object, by default it allows read-only -access to exported@footnote{By creating the magic file -"git-daemon-export-ok" in the repository directory.} repositories under -@file{/srv/git}. - -@end deffn - -@deftp {Data Type} git-daemon-configuration -Data type representing the configuration for @code{git-daemon-service}. - -@table @asis -@item @code{package} (default: @var{git}) -Package object of the Git distributed version control system. - -@item @code{export-all?} (default: @var{#f}) -Whether to allow access for all Git repositories, even if they do not -have the @file{git-daemon-export-ok} file. - -@item @code{base-path} (default: @file{/srv/git}) -Whether to remap all the path requests as relative to the given path. -If you run git daemon with @var{(base-path "/srv/git")} on example.com, -then if you later try to pull @code{git://example.com/hello.git}, git -daemon will interpret the path as @code{/srv/git/hello.git}. - -@item @code{user-path} (default: @var{#f}) -Whether to allow @code{~user} notation to be used in requests. When -specified with empty string, requests to @code{git://host/~alice/foo} is -taken as a request to access @code{foo} repository in the home directory -of user @code{alice}. If @var{(user-path "path")} is specified, the -same request is taken as a request to access @code{path/foo} repository -in the home directory of user @code{alice}. - -@item @code{listen} (default: @var{'()}) -Whether to listen on specific IP addresses or hostnames, defaults to -all. - -@item @code{port} (default: @var{#f}) -Whether to listen on an alternative port, which defaults to 9418. - -@item @code{whitelist} (default: @var{'()}) -If not empty, only allow access to this list of directories. - -@item @code{extra-options} (default: @var{'()}) -Extra options will be passed to @code{git daemon}, please run -@command{man git-daemon} for more information. - -@end table -@end deftp @subsubheading Cgit Service -- cgit v1.2.3 From 410349347a7f38b7052d7574a629dd2660d018e0 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 27 Apr 2017 15:02:19 +0200 Subject: services: Add Git HTTP(S) service support. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Version Control Services): Add documentation on the HTTP backend for git. * gnu/services/version-control.scm (): New data type. (git-http-nginx-location-configuration): New helper function. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 81 +++++++++++++++++++++++++++++++++++++++- gnu/services/version-control.scm | 52 +++++++++++++++++++++++++- 2 files changed, 131 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index f90bb3dfbe..777ca2738b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -17436,7 +17436,11 @@ Defaults to @samp{3} @subsubsection Version Control Services The @code{(gnu services version-control)} module provides a service to -allow remote access to local Git repositories. +allow remote access to local Git repositories. There are two options: +the @code{git-daemon-service}, which provides access to repositories via +the @code{git://} unsecured TCP-based protocol, or extending the +@code{nginx} web server to proxy some requests to +@code{git-http-backend}. @deffn {Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)] @@ -17493,6 +17497,81 @@ Extra options will be passed to @code{git daemon}, please run @end table @end deftp +The @code{git://} protocol lacks authentication. When you pull from a +repository fetched via @code{git://}, you don't know that the data you +receive was modified is really coming from the specified host, and you +have your connection is subject to eavesdropping. It's better to use an +authenticated and encrypted transport, such as @code{https}. Although Git allows you +to serve repositories using unsophisticated file-based web servers, +there is a faster protocol implemented by the @code{git-http-backend} +program. This program is the back-end of a proper Git web service. It +is designed to sit behind a FastCGI proxy. @xref{Web Services}, for more +on running the necessary @code{fcgiwrap} daemon. + +Guix has a separate configuration data type for serving Git repositories +over HTTP. + +@deftp {Data Type} git-http-configuration +Data type representing the configuration for @code{git-http-service}. + +@table @asis +@item @code{package} (default: @var{git}) +Package object of the Git distributed version control system. + +@item @code{git-root} (default: @file{/srv/git}) +Directory containing the Git repositories to expose to the world. + +@item @code{export-all?} (default: @var{#f}) +Whether to expose access for all Git repositories in @var{git-root}, +even if they do not have the @file{git-daemon-export-ok} file. + +@item @code{uri-path} (default: @file{/git/}) +Path prefix for Git access. With the default @code{/git/} prefix, this +will map @code{http://@var{server}/git/@var{repo}.git} to +@code{/srv/git/@var{repo}.git}. Requests whose URI paths do not begin +with this prefix are not passed on to this Git instance. + +@item @code{fcgiwrap-socket} (default: @code{127.0.0.1:9000}) +The socket on which the @code{fcgiwrap} daemon is listening. @xref{Web +Services}. +@end table +@end deftp + +There is no @code{git-http-service-type}, currently; instead you can +create an @code{nginx-location-configuration} from a +@code{git-http-configuration} and then add that location to a web +server. + +@deffn {Scheme Procedure} git-http-nginx-location-configuration @ + [config=(git-http-configuration)] +Compute an @code{nginx-location-configuration} that corresponds to the +given Git http configuration. An example nginx service definition to +serve the default @file{/srv/git} over HTTPS might be: + +@example +(service nginx-service-type + (nginx-configuration + (server-blocks + (list + (nginx-server-configuration + (http-port #f) + (server-name "git.my-host.org") + (ssl-certificate + "/etc/letsencrypt/live/git.my-host.org/fullchain.pem") + (ssl-certificate-key + "/etc/letsencrypt/live/git.my-host.org/privkey.pem") + (locations + (list + (git-http-nginx-location-configuration + (git-http-configuration (uri-path "/")))))))))) +@end example + +This example assumes that you are using Let's Encrypt to get your TLS +certificate. @xref{Certificate Services}. The default @code{certbot} +service will redirect all HTTP traffic on @code{git.my-host.org} to +HTTPS. You will also need to add an @code{fcgiwrap} proxy to your +system services. @xref{Web Services}. +@end deffn @node Miscellaneous Services @subsubsection Miscellaneous Services diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm index e39f4411fd..388038e7bc 100644 --- a/gnu/services/version-control.scm +++ b/gnu/services/version-control.scm @@ -55,7 +55,11 @@ (define-module (gnu services version-control) %cgit-configuration-nginx cgit-configuration-nginx-config - cgit-service-type)) + cgit-service-type + + git-http-configuration + git-http-configuration? + git-http-nginx-location-configuration)) ;;; Commentary: ;;; @@ -256,3 +260,49 @@ (define cgit-service-type (service-extension nginx-service-type cgit-configuration-nginx-config))) (default-value (cgit-configuration)))) + + +;;; +;;; HTTP access. Add the result of calling +;;; git-http-nginx-location-configuration to an nginx-server-configuration's +;;; "locations" field. +;;; + +(define-record-type* + git-http-configuration + make-git-http-configuration + git-http-configuration? + (package git-http-configuration-package ;package + (default git)) + (git-root git-http-configuration-git-root ;string + (default "/srv/git")) + (export-all? git-http-configuration-export-all? ;boolean + (default #f)) + (uri-path git-http-configuration-uri-path ;string + (default "/git/")) + (fcgiwrap-socket git-http-configuration-fcgiwrap-socket ;string + (default "127.0.0.1:9000"))) + +(define* (git-http-nginx-location-configuration #:optional + (config + (git-http-configuration))) + (match config + (($ package git-root export-all? + uri-path fcgiwrap-socket) + (nginx-location-configuration + (uri (string-append "~ /" (string-trim-both uri-path #\/) "(/.*)")) + (body + (list + (list "fastcgi_pass " fcgiwrap-socket ";") + (list "fastcgi_param SCRIPT_FILENAME " + package "/libexec/git-core/git-http-backend" + ";") + "fastcgi_param QUERY_STRING $query_string;" + "fastcgi_param REQUEST_METHOD $request_method;" + "fastcgi_param CONTENT_TYPE $content_type;" + "fastcgi_param CONTENT_LENGTH $content_length;" + (if export-all? + "fastcgi_param GIT_HTTP_EXPORT_ALL \"\";" + "") + (list "fastcgi_param GIT_PROJECT_ROOT " git-root ";") + "fastcgi_param PATH_INFO $1;")))))) -- cgit v1.2.3 From e755692bc1795382b2f91fc9763a690c02899954 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 22:41:57 +0100 Subject: tests: cgit: Add a file to the test repository. * gnu/tests/version-control.scm (README-contents): New variable. (%make-git-repository): Add a 'README' file to the repo. (%test-repository-service): New variable. (%cgit-os): Use it. (run-cgit-test): Test /test/tree/README and /test/tree/does-not-exist. --- gnu/tests/version-control.scm | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm index 5a3937cfed..405b786d08 100644 --- a/gnu/tests/version-control.scm +++ b/gnu/tests/version-control.scm @@ -30,14 +30,38 @@ (define-module (gnu tests version-control) #:use-module (gnu packages version-control) #:use-module (guix gexp) #:use-module (guix store) + #:use-module (guix modules) #:export (%test-cgit)) +(define README-contents + "Hello! This is what goes inside the 'README' file.") + (define %make-git-repository ;; Create Git repository in /srv/git/test. - #~(begin - (mkdir-p "/srv/git/test") - (system* (string-append #$git "/bin/git") "-C" "/srv/git/test" - "init" "--bare"))) + (with-imported-modules (source-module-closure + '((guix build utils))) + #~(begin + (use-modules (guix build utils)) + + (let ((git (string-append #$git "/bin/git"))) + (mkdir-p "/tmp/test-repo") + (with-directory-excursion "/tmp/test-repo" + (call-with-output-file "/tmp/test-repo/README" + (lambda (port) + (display #$README-contents port))) + (invoke git "config" "--global" "user.email" "charlie@example.org") + (invoke git "config" "--global" "user.name" "A U Thor") + (invoke git "init") + (invoke git "add" ".") + (invoke git "commit" "-m" "That's a commit.")) + + (mkdir-p "/srv/git") + (rename-file "/tmp/test-repo/.git" "/srv/git/test"))))) + +(define %test-repository-service + ;; Service that creates /srv/git/test. + (simple-service 'make-git-repository activation-service-type + %make-git-repository)) (define %cgit-configuration-nginx (list @@ -68,8 +92,7 @@ (define %cgit-os (service cgit-service-type (cgit-configuration (nginx %cgit-configuration-nginx))) - (simple-service 'make-git-repository activation-service-type - %make-git-repository)))) + %test-repository-service))) (operating-system (inherit base-os) (packages (cons* git @@ -161,7 +184,9 @@ (define marionette (test-url "/test") (test-url "/test/log") (test-url "/test/tree") + (test-url "/test/tree/README") (test-url "/test/does-not-exist" 404) + (test-url "/test/tree/does-not-exist" 404) (test-url "/does-not-exist" 404)) (test-end) -- cgit v1.2.3 From 87dad874c929702192ece2d38a7a583b8202f348 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 23:18:35 +0100 Subject: tests: Add 'git-http' test. * gnu/tests/version-control.scm (%git-nginx-configuration) (%git-http-os, %test-git-http): New variables. (run-git-http-test): New procedure. --- gnu/tests/version-control.scm | 94 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm index 405b786d08..2cbacf0ef9 100644 --- a/gnu/tests/version-control.scm +++ b/gnu/tests/version-control.scm @@ -31,7 +31,8 @@ (define-module (gnu tests version-control) #:use-module (guix gexp) #:use-module (guix store) #:use-module (guix modules) - #:export (%test-cgit)) + #:export (%test-cgit + %test-git-http)) (define README-contents "Hello! This is what goes inside the 'README' file.") @@ -199,3 +200,94 @@ (define %test-cgit (name "cgit") (description "Connect to a running Cgit server.") (value (run-cgit-test)))) + + +;;; +;;; Git server. +;;; + +(define %git-nginx-configuration + (nginx-configuration + (server-blocks + (list + (nginx-server-configuration + (http-port 19418) + (https-port #f) + (ssl-certificate #f) + (ssl-certificate-key #f) + (locations + (list (git-http-nginx-location-configuration + (git-http-configuration (export-all? #t) + (uri-path "/git")))))))))) + +(define %git-http-os + (simple-operating-system + (dhcp-client-service) + (service fcgiwrap-service-type) + (service nginx-service-type %git-nginx-configuration) + %test-repository-service)) + +(define* (run-git-http-test #:optional (http-port 19418)) + (define os + (marionette-operating-system + %git-http-os + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm + (virtual-machine + (operating-system os) + (port-forwardings `((8080 . ,http-port))))) + + (define test + (with-imported-modules '((gnu build marionette) + (guix build utils)) + #~(begin + (use-modules (srfi srfi-64) + (rnrs io ports) + (gnu build marionette) + (guix build utils)) + + (define marionette + (make-marionette (list #$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "git-http") + + ;; Wait for nginx to be up and running. + (test-eq "nginx running" + 'running! + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'nginx) + 'running!) + marionette)) + + ;; Make sure Git test repository is created. + (test-assert "Git test repository" + (marionette-eval + '(file-exists? "/srv/git/test") + marionette)) + + ;; Make sure we can clone the repo from the host. + (test-equal "clone" + '#$README-contents + (begin + (invoke #$(file-append git "/bin/git") "clone" "-v" + "http://localhost:8080/git/test" "/tmp/clone") + (call-with-input-file "/tmp/clone/README" + get-string-all))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "git-http" test)) + +(define %test-git-http + (system-test + (name "git-http") + (description "Connect to a running Git HTTP server.") + (value (run-git-http-test)))) -- cgit v1.2.3 From a222b734b38f93b014b21e4d538002a5fec71b8a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 23:24:17 +0100 Subject: services: cgit, git-daemon: Add description and default value. * gnu/services/version-control.scm (git-daemon-service-type) [description, default-value]: New fields. (cgit-service-type)[default-value]: New field. * po/packages/POTFILES.in: Add version-control.scm. --- gnu/services/version-control.scm | 11 +++++++++-- po/packages/POTFILES.in | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm index 388038e7bc..fce2ce1c25 100644 --- a/gnu/services/version-control.scm +++ b/gnu/services/version-control.scm @@ -156,7 +156,11 @@ (define git-daemon-service-type (service-extension account-service-type (const %git-daemon-accounts)) (service-extension activation-service-type - git-daemon-activation))))) + git-daemon-activation))) + (description + "Expose Git respositories over the insecure @code{git://} TCP-based +protocol.") + (default-value (git-daemon-configuration)))) (define* (git-daemon-service #:key (config (git-daemon-configuration))) "Return a service that runs @command{git daemon}, a simple TCP server to @@ -259,7 +263,10 @@ (define cgit-service-type cgit-activation) (service-extension nginx-service-type cgit-configuration-nginx-config))) - (default-value (cgit-configuration)))) + (default-value (cgit-configuration)) + (description + "Run the Cgit web interface, which allows users to browse Git +repositories."))) ;;; diff --git a/po/packages/POTFILES.in b/po/packages/POTFILES.in index cfc542f50e..83a13c1dab 100644 --- a/po/packages/POTFILES.in +++ b/po/packages/POTFILES.in @@ -59,3 +59,4 @@ gnu/packages/wordnet.scm gnu/packages/xiph.scm gnu/services/base.scm gnu/services/networking.scm +gnu/services/version-control.scm -- cgit v1.2.3 From 3af03e5967cf49ed1a4382dad7d75daa95ec5217 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Nov 2017 23:31:48 +0100 Subject: services: certbot: Add default value and description. * gnu/services/certbot.scm (certbot-service-type) [default-value, description]: New fields. * po/packages/POTFILES.in: Add it. --- gnu/services/certbot.scm | 7 ++++++- po/packages/POTFILES.in | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm index c11c9a66bd..dc072ea8da 100644 --- a/gnu/services/certbot.scm +++ b/gnu/services/certbot.scm @@ -125,4 +125,9 @@ (define certbot-service-type (certbot-configuration (inherit config) (hosts (append (certbot-configuration-hosts config) - additional-hosts))))))) + additional-hosts))))) + (default-value (certbot-configuration)) + (description + "Automatically renew @url{https://letsencrypt.org, Let's +Encrypt} HTTPS certificates by adjusting the nginx web server configuration +and periodically invoking @command{certbot}."))) diff --git a/po/packages/POTFILES.in b/po/packages/POTFILES.in index 83a13c1dab..9a178edfa6 100644 --- a/po/packages/POTFILES.in +++ b/po/packages/POTFILES.in @@ -58,5 +58,6 @@ gnu/packages/web.scm gnu/packages/wordnet.scm gnu/packages/xiph.scm gnu/services/base.scm +gnu/services/certbot.scm gnu/services/networking.scm gnu/services/version-control.scm -- cgit v1.2.3 From 38faa2b54663f253cdb18f414f13b249b346d767 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 28 Nov 2017 16:53:07 -0500 Subject: gnu: qemu: Fix CVE-2017-{15118,15119}. * gnu/packages/patches/qemu-CVE-2017-15118.patch, gnu/packages/patches/qemu-CVE-2017-15119.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/virtualization.scm (qemu)[source]: Use them. --- gnu/local.mk | 2 + gnu/packages/patches/qemu-CVE-2017-15118.patch | 58 ++++++++++++++++++++++ gnu/packages/patches/qemu-CVE-2017-15119.patch | 68 ++++++++++++++++++++++++++ gnu/packages/virtualization.scm | 2 + 4 files changed, 130 insertions(+) create mode 100644 gnu/packages/patches/qemu-CVE-2017-15118.patch create mode 100644 gnu/packages/patches/qemu-CVE-2017-15119.patch diff --git a/gnu/local.mk b/gnu/local.mk index b361f1a4bc..eaf7514931 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1033,6 +1033,8 @@ dist_patch_DATA = \ %D%/packages/patches/python2-subprocess32-disable-input-test.patch \ %D%/packages/patches/python2-unittest2-remove-argparse.patch \ %D%/packages/patches/qemu-CVE-2017-15038.patch \ + %D%/packages/patches/qemu-CVE-2017-15118.patch \ + %D%/packages/patches/qemu-CVE-2017-15119.patch \ %D%/packages/patches/qemu-CVE-2017-15268.patch \ %D%/packages/patches/qemu-CVE-2017-15289.patch \ %D%/packages/patches/qt4-ldflags.patch \ diff --git a/gnu/packages/patches/qemu-CVE-2017-15118.patch b/gnu/packages/patches/qemu-CVE-2017-15118.patch new file mode 100644 index 0000000000..d427317be9 --- /dev/null +++ b/gnu/packages/patches/qemu-CVE-2017-15118.patch @@ -0,0 +1,58 @@ +Fix CVE-2017-15118: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15118 +https://bugzilla.redhat.com/show_bug.cgi?id=1516922 + +Patch copied from upstream source repository: + +https://git.qemu.org/?p=qemu.git;a=commitdiff;h=51ae4f8455c9e32c54770c4ebc25bf86a8128183 + +From 51ae4f8455c9e32c54770c4ebc25bf86a8128183 Mon Sep 17 00:00:00 2001 +From: Eric Blake +Date: Wed, 22 Nov 2017 15:07:22 -0600 +Subject: [PATCH] nbd/server: CVE-2017-15118 Stack smash on large export name + +Introduced in commit f37708f6b8 (2.10). The NBD spec says a client +can request export names up to 4096 bytes in length, even though +they should not expect success on names longer than 256. However, +qemu hard-codes the limit of 256, and fails to filter out a client +that probes for a longer name; the result is a stack smash that can +potentially give an attacker arbitrary control over the qemu +process. + +The smash can be easily demonstrated with this client: +$ qemu-io f raw nbd://localhost:10809/$(printf %3000d 1 | tr ' ' a) + +If the qemu NBD server binary (whether the standalone qemu-nbd, or +the builtin server of QMP nbd-server-start) was compiled with +-fstack-protector-strong, the ability to exploit the stack smash +into arbitrary execution is a lot more difficult (but still +theoretically possible to a determined attacker, perhaps in +combination with other CVEs). Still, crashing a running qemu (and +losing the VM) is bad enough, even if the attacker did not obtain +full execution control. + +CC: qemu-stable@nongnu.org +Signed-off-by: Eric Blake +--- + nbd/server.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/nbd/server.c b/nbd/server.c +index a81801e3bc..92c0fdd03b 100644 +--- a/nbd/server.c ++++ b/nbd/server.c +@@ -386,6 +386,10 @@ static int nbd_negotiate_handle_info(NBDClient *client, uint32_t length, + msg = "name length is incorrect"; + goto invalid; + } ++ if (namelen >= sizeof(name)) { ++ msg = "name too long for qemu"; ++ goto invalid; ++ } + if (nbd_read(client->ioc, name, namelen, errp) < 0) { + return -EIO; + } +-- +2.15.0 + diff --git a/gnu/packages/patches/qemu-CVE-2017-15119.patch b/gnu/packages/patches/qemu-CVE-2017-15119.patch new file mode 100644 index 0000000000..6265ecf8d6 --- /dev/null +++ b/gnu/packages/patches/qemu-CVE-2017-15119.patch @@ -0,0 +1,68 @@ +Fix CVE-2017-15119: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15119 +https://bugzilla.redhat.com/show_bug.cgi?id=1516925 + +Patch copied from upstream source repository: + +https://git.qemu.org/?p=qemu.git;a=commitdiff;h=fdad35ef6c5839d50dfc14073364ac893afebc30 + +From fdad35ef6c5839d50dfc14073364ac893afebc30 Mon Sep 17 00:00:00 2001 +From: Eric Blake +Date: Wed, 22 Nov 2017 16:25:16 -0600 +Subject: [PATCH] nbd/server: CVE-2017-15119 Reject options larger than 32M + +The NBD spec gives us permission to abruptly disconnect on clients +that send outrageously large option requests, rather than having +to spend the time reading to the end of the option. No real +option request requires that much data anyways; and meanwhile, we +already have the practice of abruptly dropping the connection on +any client that sends NBD_CMD_WRITE with a payload larger than 32M. + +For comparison, nbdkit drops the connection on any request with +more than 4096 bytes; however, that limit is probably too low +(as the NBD spec states an export name can theoretically be up +to 4096 bytes, which means a valid NBD_OPT_INFO could be even +longer) - even if qemu doesn't permit exports longer than 256 +bytes. + +It could be argued that a malicious client trying to get us to +read nearly 4G of data on a bad request is a form of denial of +service. In particular, if the server requires TLS, but a client +that does not know the TLS credentials sends any option (other +than NBD_OPT_STARTTLS or NBD_OPT_EXPORT_NAME) with a stated +payload of nearly 4G, then the server was keeping the connection +alive trying to read all the payload, tying up resources that it +would rather be spending on a client that can get past the TLS +handshake. Hence, this warranted a CVE. + +Present since at least 2.5 when handling known options, and made +worse in 2.6 when fixing support for NBD_FLAG_C_FIXED_NEWSTYLE +to handle unknown options. + +CC: qemu-stable@nongnu.org +Signed-off-by: Eric Blake +--- + nbd/server.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/nbd/server.c b/nbd/server.c +index 7d6801b427..a81801e3bc 100644 +--- a/nbd/server.c ++++ b/nbd/server.c +@@ -673,6 +673,12 @@ static int nbd_negotiate_options(NBDClient *client, uint16_t myflags, + } + length = be32_to_cpu(length); + ++ if (length > NBD_MAX_BUFFER_SIZE) { ++ error_setg(errp, "len (%" PRIu32" ) is larger than max len (%u)", ++ length, NBD_MAX_BUFFER_SIZE); ++ return -EINVAL; ++ } ++ + trace_nbd_negotiate_options_check_option(option, + nbd_opt_lookup(option)); + if (client->tlscreds && +-- +2.15.0 + diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 140b2528d3..b28a44a93c 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -84,6 +84,8 @@ (define-public qemu (uri (string-append "https://download.qemu.org/qemu-" version ".tar.xz")) (patches (search-patches "qemu-CVE-2017-15038.patch" + "qemu-CVE-2017-15118.patch" + "qemu-CVE-2017-15119.patch" "qemu-CVE-2017-15268.patch" "qemu-CVE-2017-15289.patch")) (sha256 -- cgit v1.2.3 From 48adc61c148a30f3fe7bcd6a2dea82b21694a8c9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 28 Nov 2017 18:20:58 -0500 Subject: gnu: exim: Fix CVE-2017-16944. * gnu/packages/patches/exim-CVE-2017-16944.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/mail.scm (exim)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/mail.scm | 1 + gnu/packages/patches/exim-CVE-2017-16944.patch | 87 ++++++++++++++++++++++++++ 3 files changed, 89 insertions(+) create mode 100644 gnu/packages/patches/exim-CVE-2017-16944.patch diff --git a/gnu/local.mk b/gnu/local.mk index eaf7514931..13acb6797c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -616,6 +616,7 @@ dist_patch_DATA = \ %D%/packages/patches/eudev-rules-directory.patch \ %D%/packages/patches/evilwm-lost-focus-bug.patch \ %D%/packages/patches/exim-CVE-2017-16943.patch \ + %D%/packages/patches/exim-CVE-2017-16944.patch \ %D%/packages/patches/exim-CVE-2017-1000369.patch \ %D%/packages/patches/exiv2-CVE-2017-14860.patch \ %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch \ diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index fbe39bef76..b9656c7dd8 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1043,6 +1043,7 @@ (define-public exim (string-append "ftp://ftp.exim.org/pub/exim/exim4/old/exim-" version ".tar.bz2"))) (patches (search-patches "exim-CVE-2017-16943.patch" + "exim-CVE-2017-16944.patch" "exim-CVE-2017-1000369.patch")) (sha256 (base32 diff --git a/gnu/packages/patches/exim-CVE-2017-16944.patch b/gnu/packages/patches/exim-CVE-2017-16944.patch new file mode 100644 index 0000000000..e4e8313c9c --- /dev/null +++ b/gnu/packages/patches/exim-CVE-2017-16944.patch @@ -0,0 +1,87 @@ +Fix CVE-2017-16944: + +https://bugs.exim.org/show_bug.cgi?id=2201 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16944 + +Patch copied from upstream source repository: + +https://git.exim.org/exim.git/commit/4804c62909a62a3ac12ec4777ebd48c541028965 + +From 4804c62909a62a3ac12ec4777ebd48c541028965 Mon Sep 17 00:00:00 2001 +From: "Heiko Schlittermann (HS12-RIPE)" +Date: Mon, 27 Nov 2017 22:42:33 +0100 +Subject: [PATCH] Chunking: do not treat the first lonely dot special. + CVE-2017-16944, Bug 2201 + +(cherry picked from commit 178ecb70987f024f0e775d87c2f8b2cf587dd542) + +Change log update + +(cherry picked from commit b488395f4d99d44a950073a64b35ec8729102782) +--- + doc/doc-txt/ChangeLog | 6 +++++- + src/src/receive.c | 2 +- + src/src/smtp_in.c | 7 +++++++ + 3 files changed, 13 insertions(+), 2 deletions(-) + +#diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog +#index a2d9339..541ebaf 100644 +#--- a/doc/doc-txt/ChangeLog +#+++ b/doc/doc-txt/ChangeLog +#@@ -61,7 +61,11 @@ JH/30 Fix a logging bug on aarch64: an unsafe routine was previously used for +# +# JH/34 Bug 2199: fix a use-after-free while reading smtp input for header lines. +# A crafted sequence of BDAT commands could result in in-use memory beeing +#- freed. +#+ freed. CVE-2017-16943. +#+ +#+HS/03 Bug 2201: Fix checking for leading-dot on a line during headers reading +#+ from SMTP input. Previously it was always done; now only done for DATA +#+ and not BDAT commands. CVE-2017-16944. +# +# +# Exim version 4.89 +diff --git a/src/src/receive.c b/src/src/receive.c +index 20672db..2812ea2 100644 +--- a/src/receive.c ++++ b/src/receive.c +@@ -1827,7 +1827,7 @@ for (;;) + prevent further reading), and break out of the loop, having freed the + empty header, and set next = NULL to indicate no data line. */ + +- if (ptr == 0 && ch == '.' && (smtp_input || dot_ends)) ++ if (ptr == 0 && ch == '.' && dot_ends) + { + ch = (receive_getc)(GETC_BUFFER_UNLIMITED); + if (ch == '\r') +diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c +index 1b45f84..0207540 100644 +--- a/src/smtp_in.c ++++ b/src/smtp_in.c +@@ -4955,16 +4955,23 @@ while (done <= 0) + DEBUG(D_receive) debug_printf("chunking state %d, %d bytes\n", + (int)chunking_state, chunking_data_left); + ++ /* push the current receive_* function on the "stack", and ++ replace them by bdat_getc(), which in turn will use the lwr_receive_* ++ functions to do the dirty work. */ + lwr_receive_getc = receive_getc; + lwr_receive_ungetc = receive_ungetc; ++ + receive_getc = bdat_getc; + receive_ungetc = bdat_ungetc; + ++ dot_ends = FALSE; ++ + goto DATA_BDAT; + } + + case DATA_CMD: + HAD(SCH_DATA); ++ dot_ends = TRUE; + + DATA_BDAT: /* Common code for DATA and BDAT */ + if (!discarded && recipients_count <= 0) +-- +1.9.1 + -- cgit v1.2.3 From d2bdee8a69d3316c91fab68fe0cfb2a533db9ce6 Mon Sep 17 00:00:00 2001 From: Ben Sturmfels Date: Wed, 29 Nov 2017 09:28:43 +1100 Subject: gnu: synergy: Fix install test/install error. * gnu/packages/synergy.scm (synergy)[arguments]: Adjust the build directory in accordance with the package's new upstream name. Signed-off-by: Leo Famulari --- gnu/packages/synergy.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm index 8e863149c3..ec1872cc00 100644 --- a/gnu/packages/synergy.scm +++ b/gnu/packages/synergy.scm @@ -68,7 +68,7 @@ (define-public synergy ("xinput" ,xinput))) (arguments `(#:phases - (let ((srcdir (string-append "../synergy-" ,version "-stable"))) + (let ((srcdir (string-append "../synergy-core-" ,version "-stable"))) (modify-phases %standard-phases (add-before 'configure 'unpack-aux-src ;; TODO: package and use from system -- cgit v1.2.3 From 3519f2841d459271600bd1a41f0f3c6eb8b009aa Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 29 Nov 2017 01:05:47 -0500 Subject: gnu: libtorrent-rasterbar: Update to 1.1.4. * gnu/packages/bittorrent.scm (libtorrent-rasterbar): Update to 1.1.4. [source]: Remove 'libtorrent-rasterbar-boost-compat.patch'. * gnu/packages/patches/libtorrent-rasterbar-boost-compat.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/bittorrent.scm | 6 ++--- .../libtorrent-rasterbar-boost-compat.patch | 27 ---------------------- 3 files changed, 2 insertions(+), 32 deletions(-) delete mode 100644 gnu/packages/patches/libtorrent-rasterbar-boost-compat.patch diff --git a/gnu/local.mk b/gnu/local.mk index 13acb6797c..5ea975c4f4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -835,7 +835,6 @@ dist_patch_DATA = \ %D%/packages/patches/libtiff-tiffycbcrtorgb-integer-overflow.patch \ %D%/packages/patches/libtiff-tiffycbcrtorgbinit-integer-overflow.patch \ %D%/packages/patches/libtirpc-CVE-2017-8779.patch \ - %D%/packages/patches/libtorrent-rasterbar-boost-compat.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libunistring-gnulib-multi-core.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index cad8b667bb..90ce33eafd 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -382,7 +382,7 @@ (define-public mktorrent (define-public libtorrent-rasterbar (package (name "libtorrent-rasterbar") - (version "1.1.2") + (version "1.1.4") (source (origin (method url-fetch) (uri @@ -390,11 +390,9 @@ (define-public libtorrent-rasterbar "https://github.com/arvidn/libtorrent/releases/download/libtorrent-" (string-join (string-split version #\.) "_") "/libtorrent-rasterbar-" version ".tar.gz")) - (patches - (search-patches "libtorrent-rasterbar-boost-compat.patch")) (sha256 (base32 - "16im9qsmfrmmkhfjpij9739nqpn4s6wgc9cikdxbcyshfhimzra5")))) + "19pb9sn71m4gnnrm3f1kxic63km9s3vx2mj7rznzfv9sh1kj7x6c")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/patches/libtorrent-rasterbar-boost-compat.patch b/gnu/packages/patches/libtorrent-rasterbar-boost-compat.patch deleted file mode 100644 index 85bea76efe..0000000000 --- a/gnu/packages/patches/libtorrent-rasterbar-boost-compat.patch +++ /dev/null @@ -1,27 +0,0 @@ -Fix compatibility with Boost 1.63. - -Patch copied from upstream source repository: - -https://github.com/arvidn/libtorrent/commit/6d2d736cecce0af274dd651dd1f562716b625d92 - -From 6d2d736cecce0af274dd651dd1f562716b625d92 Mon Sep 17 00:00:00 2001 -From: arvidn -Date: Sun, 12 Mar 2017 13:03:26 -0400 -Subject: [PATCH] fix test_ssl.cpp build with newer versions of boost - ---- - test/test_ssl.cpp | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/test/test_ssl.cpp b/test/test_ssl.cpp -index 01c5bc7..2903332 100644 ---- a/test/test_ssl.cpp -+++ b/test/test_ssl.cpp -@@ -51,7 +51,6 @@ POSSIBILITY OF SUCH DAMAGE. - #include - - #ifdef TORRENT_USE_OPENSSL --#include // for asio::error::get_ssl_category() - #include - - #include "libtorrent/aux_/disable_warnings_pop.hpp" -- cgit v1.2.3 From 94989d4baee8c7e02f7f39256be559e2d653ad4a Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 29 Nov 2017 12:15:33 +0100 Subject: gnu: cran: Add r-rmpi. * gnu/packages/cran.scm (r-rmpi): New variable. --- gnu/packages/cran.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 9eb54c0358..4de3066834 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus +;;; Copyright © 2017 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ (define-module (gnu packages cran) #:use-module (gnu packages gcc) #:use-module (gnu packages machine-learning) #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) #:use-module (gnu packages perl) #:use-module (gnu packages statistics) #:use-module (gnu packages web)) @@ -601,6 +603,29 @@ (define-public r-rmtstat matrices.") (license license:bsd-3))) +(define-public r-rmpi + (package + (name "r-rmpi") + (version "0.6-6") + (source (origin + (method url-fetch) + (uri (cran-uri "Rmpi" version)) + (sha256 + (base32 + "0fm6z049aaq2c9xagm8n64d9560hg9d8hyb0m359fii672nhkz6q")))) + (properties `((upstream-name . "Rmpi"))) + (build-system r-build-system) + (arguments + `(#:configure-flags '("--configure-args=\"--with-Rmpi-type=OPENMPI\""))) + (inputs + `(("openmpi" ,openmpi))) + (home-page "http://www.stats.uwo.ca/faculty/yu/Rmpi") + (synopsis "R interface to message-passing interface (MPI)") + (description + "This package provides an interface (wrapper) to MPI APIs. It also +provides an interactive R manager and worker environment.") + (license license:gpl2+))) + (define-public r-lmoments (package (name "r-lmoments") -- cgit v1.2.3 From efa6a1ddb57d8a949484ba828effab4c59374f09 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 29 Nov 2017 12:46:17 +0100 Subject: gnu: Add r-copynumber. * gnu/packages/bioinformatics.scm (r-copynumber): New variable. --- gnu/packages/bioinformatics.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 833376ac21..923100b7ba 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -5909,6 +5909,29 @@ (define-public r-annotate microarrays.") (license license:artistic2.0))) +(define-public r-copynumber + (package + (name "r-copynumber") + (version "1.18.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "copynumber" version)) + (sha256 + (base32 + "01kcwzl485yjrkgyg8117b1il957ss0v6rq4bbxf4ksd5fzcjmyx")))) + (build-system r-build-system) + (propagated-inputs + `(("r-s4vectors" ,r-s4vectors) + ("r-iranges" ,r-iranges) + ("r-genomicranges" ,r-genomicranges) + ("r-biocgenerics" ,r-biocgenerics))) + (home-page "https://bioconductor.org/packages/copynumber") + (synopsis "Segmentation of single- and multi-track copy number data") + (description + "This package segments single- and multi-track copy number data by a +penalized least squares regression method.") + (license license:artistic2.0))) + (define-public r-geneplotter (package (name "r-geneplotter") -- cgit v1.2.3 From 0e7fb0cd9b91e873b5f9d04c49472b06aff6911f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 28 Nov 2017 17:41:33 +0100 Subject: gnu: optipng: Fix CVE-2017-1000229. * gnu/packages/image.scm (optipng)[source](patches): New field. * gnu/packages/patches/optipng-CVE-2017-1000229.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/image.scm | 1 + .../patches/optipng-CVE-2017-1000229.patch | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 gnu/packages/patches/optipng-CVE-2017-1000229.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5ea975c4f4..19db3c44ca 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -940,6 +940,7 @@ dist_patch_DATA = \ %D%/packages/patches/openssl-runpath.patch \ %D%/packages/patches/openssl-1.1.0-c-rehash-in.patch \ %D%/packages/patches/openssl-c-rehash-in.patch \ + %D%/packages/patches/optipng-CVE-2017-1000229.patch \ %D%/packages/patches/orpheus-cast-errors-and-includes.patch \ %D%/packages/patches/osip-CVE-2017-7853.patch \ %D%/packages/patches/ots-no-include-missing-file.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 0e1f025563..b9f1ef2344 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1095,6 +1095,7 @@ (define-public optipng (method url-fetch) (uri (string-append "http://prdownloads.sourceforge.net/optipng/optipng-" version ".tar.gz")) + (patches (search-patches "optipng-CVE-2017-1000229.patch")) (sha256 (base32 "105yk5qykvhiahzag67gm36s2kplxf6qn5hay02md0nkrcgn6w28")))) diff --git a/gnu/packages/patches/optipng-CVE-2017-1000229.patch b/gnu/packages/patches/optipng-CVE-2017-1000229.patch new file mode 100644 index 0000000000..2cb3b2f21c --- /dev/null +++ b/gnu/packages/patches/optipng-CVE-2017-1000229.patch @@ -0,0 +1,22 @@ +Fix CVE-2017-1000229: + +https://security-tracker.debian.org/tracker/CVE-2017-1000229 +https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-1000229.html +https://nvd.nist.gov/vuln/detail/CVE-2017-1000229 + +Patch copied from upstream bug tracker: +https://sourceforge.net/p/optipng/bugs/65/ + +diff --git a/src/minitiff/tiffread.c b/src/minitiff/tiffread.c +index b4910ec..5f9b376 100644 +--- a/src/minitiff/tiffread.c ++++ b/src/minitiff/tiffread.c +@@ -350,6 +350,8 @@ minitiff_read_info(struct minitiff_info *tiff_ptr, FILE *fp) + count = tiff_ptr->strip_offsets_count; + if (count == 0 || count > tiff_ptr->height) + goto err_invalid; ++ if (count > (size_t)-1 / sizeof(long)) ++ goto err_memory; + tiff_ptr->strip_offsets = (long *)malloc(count * sizeof(long)); + if (tiff_ptr->strip_offsets == NULL) + goto err_memory; -- cgit v1.2.3 From 4fc61dac3ce201c72b312a6cfed5b3d4b96850f7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 28 Nov 2017 17:51:05 +0100 Subject: gnu: libxcursor: Replace with 1.1.15 [fixes CVE-2017-16612]. * gnu/packages/xorg.scm (libxcursor-1.1.15): New public variable. (libxcursor)[replacement]: New field. --- gnu/packages/xorg.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 994476ed63..1c1ddd4bf1 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5307,6 +5307,7 @@ (define-public libxcursor (package (name "libxcursor") (version "1.1.14") + (replacement libxcursor-1.1.15) (source (origin (method url-fetch) @@ -5339,6 +5340,18 @@ (define-public libxcursor (description "Xorg Cursor management library.") (license license:x11))) +;; For CVE-2017-16612. +(define-public libxcursor-1.1.15 + (package + (inherit libxcursor) + (version "1.1.15") + (source (origin + (method url-fetch) + (uri (string-append "mirror://xorg/individual/lib/libXcursor-" + version ".tar.bz2")) + (sha256 + (base32 + "0syzlfvh29037p0vnlc8f3jxz8nl55k65blswsakklkwsc6nfki9")))))) (define-public libxt (package -- cgit v1.2.3 From 1ec0b7407f27a12adc6978d98832c41226465101 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 28 Nov 2017 17:58:21 +0100 Subject: gnu: libxfont@2: Update replacement to 2.0.3 [fixes CVE-2017-16611]. * gnu/packages/xorg.scm (libxfont2/fixed): Rename to ... (libxfont2-2.0.3): ... this. Make public. [version]: New field. [source]: Add URI and SHA256. Remove patches. (libxfont2)[replacement]: Change LIBXFONT2/FIXED to LIBXFONT2-2.0.3. * gnu/packages/patches/libxfont-CVE-2017-13720.patch, gnu/packages/patches/libxfont-CVE-2017-13722.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 2 - gnu/packages/patches/libxfont-CVE-2017-13720.patch | 36 --------------- gnu/packages/patches/libxfont-CVE-2017-13722.patch | 53 ---------------------- gnu/packages/xorg.scm | 16 +++++-- 4 files changed, 12 insertions(+), 95 deletions(-) delete mode 100644 gnu/packages/patches/libxfont-CVE-2017-13720.patch delete mode 100644 gnu/packages/patches/libxfont-CVE-2017-13722.patch diff --git a/gnu/local.mk b/gnu/local.mk index 19db3c44ca..4e41678615 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -842,8 +842,6 @@ dist_patch_DATA = \ %D%/packages/patches/libvirt-CVE-2017-1000256.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ %D%/packages/patches/libxcb-python-3.5-compat.patch \ - %D%/packages/patches/libxfont-CVE-2017-13720.patch \ - %D%/packages/patches/libxfont-CVE-2017-13722.patch \ %D%/packages/patches/libxml2-CVE-2016-4658.patch \ %D%/packages/patches/libxml2-CVE-2016-5131.patch \ %D%/packages/patches/libxml2-CVE-2017-0663.patch \ diff --git a/gnu/packages/patches/libxfont-CVE-2017-13720.patch b/gnu/packages/patches/libxfont-CVE-2017-13720.patch deleted file mode 100644 index 0936171060..0000000000 --- a/gnu/packages/patches/libxfont-CVE-2017-13720.patch +++ /dev/null @@ -1,36 +0,0 @@ -Fix CVE-2017-13720. - -Copied from upstream source repository: - - - -From d1e670a4a8704b8708e493ab6155589bcd570608 Mon Sep 17 00:00:00 2001 -From: Michal Srb -Date: Thu, 20 Jul 2017 13:38:53 +0200 -Subject: Check for end of string in PatternMatch (CVE-2017-13720) - -If a pattern contains '?' character, any character in the string is skipped, -even if it is '\0'. The rest of the matching then reads invalid memory. - -Reviewed-by: Peter Hutterer -Signed-off-by: Julien Cristau - -diff --git a/src/fontfile/fontdir.c b/src/fontfile/fontdir.c -index 4ce2473..996b7d1 100644 ---- a/src/fontfile/fontdir.c -+++ b/src/fontfile/fontdir.c -@@ -400,8 +400,10 @@ PatternMatch(char *pat, int patdashes, char *string, int stringdashes) - } - } - case '?': -- if (*string++ == XK_minus) -+ if ((t = *string++) == XK_minus) - stringdashes--; -+ if (!t) -+ return 0; - break; - case '\0': - return (*string == '\0'); --- -cgit v0.10.2 - diff --git a/gnu/packages/patches/libxfont-CVE-2017-13722.patch b/gnu/packages/patches/libxfont-CVE-2017-13722.patch deleted file mode 100644 index 458fdfd1a7..0000000000 --- a/gnu/packages/patches/libxfont-CVE-2017-13722.patch +++ /dev/null @@ -1,53 +0,0 @@ -Fix CVE-2017-13722. - -Copied from upstream source repository: - - -From 672bb944311392e2415b39c0d63b1e1902905bcd Mon Sep 17 00:00:00 2001 -From: Michal Srb -Date: Thu, 20 Jul 2017 17:05:23 +0200 -Subject: pcfGetProperties: Check string boundaries (CVE-2017-13722) - -Without the checks a malformed PCF file can cause the library to make -atom from random heap memory that was behind the `strings` buffer. -This may crash the process or leak information. - -Signed-off-by: Julien Cristau - -diff --git a/src/bitmap/pcfread.c b/src/bitmap/pcfread.c -index dab1c44..ae34c28 100644 ---- a/src/bitmap/pcfread.c -+++ b/src/bitmap/pcfread.c -@@ -45,6 +45,7 @@ from The Open Group. - - #include - #include -+#include - - void - pcfError(const char* message, ...) -@@ -311,11 +312,19 @@ pcfGetProperties(FontInfoPtr pFontInfo, FontFilePtr file, - if (IS_EOF(file)) goto Bail; - position += string_size; - for (i = 0; i < nprops; i++) { -+ if (props[i].name >= string_size) { -+ pcfError("pcfGetProperties(): String starts out of bounds (%ld/%d)\n", props[i].name, string_size); -+ goto Bail; -+ } - props[i].name = MakeAtom(strings + props[i].name, -- strlen(strings + props[i].name), TRUE); -+ strnlen(strings + props[i].name, string_size - props[i].name), TRUE); - if (isStringProp[i]) { -+ if (props[i].value >= string_size) { -+ pcfError("pcfGetProperties(): String starts out of bounds (%ld/%d)\n", props[i].value, string_size); -+ goto Bail; -+ } - props[i].value = MakeAtom(strings + props[i].value, -- strlen(strings + props[i].value), TRUE); -+ strnlen(strings + props[i].value, string_size - props[i].value), TRUE); - } - } - free(strings); --- -cgit v0.10.2 - diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 1c1ddd4bf1..8c32608f8f 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4892,7 +4892,7 @@ (define-public libxfont2 (package (inherit libxfont) (version "2.0.1") - (replacement libxfont2/fixed) + (replacement libxfont2-2.0.3) (source (origin (method url-fetch) (uri (string-append "mirror://xorg/individual/lib/libXfont2-" @@ -4901,14 +4901,22 @@ (define-public libxfont2 (base32 "0znvwk36nhmyqpmhbm9mzisgixp1mp5qkfald8x1n5yxbm3vpyz9")))))) -(define libxfont2/fixed +;; Fixes the following security vulnerabilities: +;; https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13720 +;; https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13722 +;; https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16612 +(define-public libxfont2-2.0.3 (package (inherit libxfont2) + (version "2.0.3") (source (origin (inherit (package-source libxfont2)) - (patches (search-patches "libxfont-CVE-2017-13720.patch" - "libxfont-CVE-2017-13722.patch")))))) + (uri (string-append "mirror://xorg/individual/lib/libXfont2-" + version ".tar.bz2")) + (sha256 + (base32 + "0klwmimmhm3axpj8pwn5l41lbggh47r5aazhw63zxkbwfgyvg2hf")))))) (define-public libxi (package -- cgit v1.2.3 From b3e53aae085324db8c194436d87b92286c5bb37f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 28 Nov 2017 18:03:23 +0100 Subject: gnu: libxfont@1: Update to 1.5.4 [fixes CVE-2017-16611]. * gnu/packages/xorg.scm (libxfont): Update to 1.5.4. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 8c32608f8f..d70226930f 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4855,7 +4855,7 @@ (define-public libxfixes (define-public libxfont (package (name "libxfont") - (version "1.5.3") + (version "1.5.4") (source (origin (method url-fetch) @@ -4865,7 +4865,7 @@ (define-public libxfont ".tar.bz2")) (sha256 (base32 - "1l4k3i3xzqdmaszykh6bb2ah78p6c3z7fak7xzgq2d38s87w31db")))) + "0hiji1bvpl78aj3a3141hkk353aich71wv8l5l2z51scfy878zqs")))) (build-system gnu-build-system) (propagated-inputs `(("fontsproto" ,fontsproto) -- cgit v1.2.3 From d5feb0920ee783023d8d5a78dbeec7cc1af5bf5e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 28 Nov 2017 00:45:14 +0100 Subject: gnu: limnoria: Update to 2017.10.01. * gnu/packages/irc.scm (limnoria): Update to 2017.10.01. --- gnu/packages/irc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index f23d57df7a..1e3bdebaea 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -297,14 +297,14 @@ (define-public sic (define-public limnoria (package (name "limnoria") - (version "2017.08.18") + (version "2017.10.01") (source (origin (method url-fetch) (uri (pypi-uri "limnoria" version)) (sha256 (base32 - "1hij444l45mjli8i67iyd3syf263ijj1l0cm3irqjjxv5r3f9zjj")))) + "1hd8h257x7a0s4rvb4aqvfi77qfcyv6jaz70nndg7y6p4yhvjmy6")))) (build-system python-build-system) (inputs `(("python-pytz" ,python-pytz) -- cgit v1.2.3 From 60c8a14b8a2dddf9ef00624fcd9b607863987e56 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 29 Nov 2017 13:42:06 +0100 Subject: gnu: ghc-tasty-rerun: Update to 1.1.7. * gnu/packages/haskell-check.scm (ghc-tasty-rerun): Update to 1.1.7. --- gnu/packages/haskell-check.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm index 190ee7cc93..871e0b9790 100644 --- a/gnu/packages/haskell-check.scm +++ b/gnu/packages/haskell-check.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 David Craven ;;; Copyright © 2017 Danny Milosavljevic ;;; Copyright © 2017 rsiddharth +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -283,7 +284,7 @@ (define-public ghc-tasty-th (define-public ghc-tasty-rerun (package (name "ghc-tasty-rerun") - (version "1.1.6") + (version "1.1.7") (source (origin (method url-fetch) (uri (string-append @@ -291,7 +292,7 @@ (define-public ghc-tasty-rerun "tasty-rerun-" version ".tar.gz")) (sha256 (base32 - "0ycxg7whabgcxyzy6gr536x8ykzx45whh1wrbsc7c58zi862fczd")))) + "18hz1xqinf59mzvd68ygj9333v0a32qxfcas7crn4iniq5zv71kj")))) (build-system haskell-build-system) (inputs `(("ghc-mtl" ,ghc-mtl) -- cgit v1.2.3 From 1fd904fb38c263afedb44915471833d4b550604a Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 29 Nov 2017 14:56:28 +0100 Subject: gnu: Update r-mutationalpatterns to 1.4.1. * gnu/packages/bioinformatics.scm (r-mutationalpatterns): Update to 1.4.1. --- 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 923100b7ba..4036286ac7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -8330,14 +8330,14 @@ (define-public rcas-web (define-public r-mutationalpatterns (package (name "r-mutationalpatterns") - (version "1.4.0") + (version "1.4.1") (source (origin (method url-fetch) (uri (bioconductor-uri "MutationalPatterns" version)) (sha256 (base32 - "0sqbrswg8ylkjb9q3vqcb5ggwixynwj6hyv2n4sk7snyk61z3fq9")))) + "1qhxlfl85ifr30wrsidcn3kca3vs8fd8cmwd82gvgx9ppww8vs06")))) (build-system r-build-system) (propagated-inputs `(("r-biocgenerics" ,r-biocgenerics) -- cgit v1.2.3 From 56f0feb6781e3680541d7adc21d6b3b4746a33ca Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Tue, 28 Nov 2017 10:25:00 +0100 Subject: gnu: grub: Disable tests on ARM platforms. * gnu/packages/bootloaders (grub): Disable tests on ARM platforms. Half of the tests are failing on ARM. --- gnu/packages/bootloaders.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 20f38b2d0d..dea9366f58 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -75,7 +75,7 @@ (define-public grub "03vvdfhdmf16121v7xs8is2krwnv15wpkhkf16a4yf8nsfc3f2w1")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'patch-stuff (lambda* (#:key inputs #:allow-other-keys) (substitute* "grub-core/Makefile.in" @@ -102,7 +102,10 @@ (define-public grub (substitute* "Makefile.in" (("grub_cmd_date grub_cmd_set_date grub_cmd_sleep") "grub_cmd_date grub_cmd_sleep")) - #t))))) + #t))) + ;; Disable tests on ARM platforms. + #:tests? ,(not (string-prefix? "arm" (or (%current-target-system) + (%current-system)))))) (inputs `(("gettext" ,gettext-minimal) -- cgit v1.2.3 From 06d91fd944e58ce787048f5c1b7804b210ad1f82 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 7 May 2017 01:19:12 +0200 Subject: gnu: Add vpnc-scripts. * gnu/packages/vpn.scm (vpnc-scripts): New variable. --- gnu/packages/vpn.scm | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 6b626f0d26..44fd441f37 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2015 Jeff Mickey ;;; Copyright © 2016, 2017 Efraim Flashner -;;; Copyright © 2016 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Julien Lepiller ;;; ;;; This file is part of GNU Guix. @@ -26,9 +26,11 @@ (define-module (gnu packages vpn) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages gettext) @@ -117,6 +119,93 @@ (define-public vpnc (license license:gpl2+) ; some file are bsd-2, see COPYING (home-page "http://www.unix-ag.uni-kl.de/~massar/vpnc/"))) +(define-public vpnc-scripts + (let ((commit "6f87b0fe7b20d802a0747cc310217920047d58d3")) + (package + (name "vpnc-scripts") + (version (string-append "20161214." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri + (git-reference + (url "git://git.infradead.org/users/dwmw2/vpnc-scripts.git") + (commit commit))) + (sha256 + (base32 + "0pa36w4wlyyvfb66cayhans99wsr2j5si2fvfr7ldfm512ajwn8h")))) + (build-system gnu-build-system) + (inputs `(("coreutils" ,coreutils) + ("grep" ,grep) + ("iproute2" ,iproute) ; for ‘ip’ + ("net-tools" ,net-tools) ; for ‘ifconfig’, ‘route’ + ("sed" ,sed) + ("which" ,which))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'use-relative-paths + ;; Patch the scripts to work with and use relative paths. + (lambda* _ + (for-each (lambda (script) + (substitute* script + (("^PATH=.*") "") + (("(/usr|)/s?bin/") "") + (("\\[ +-x +([^]]+) +\\]" _ command) + (string-append "command -v >/dev/null 2>&1 " + command)))) + (find-files "." "^vpnc-script")) + #t)) + (delete 'configure) ; no configure script + (replace 'build + (lambda _ + (zero? (system* "gcc" "-o" "netunshare" "netunshare.c")))) + (replace 'install + ;; There is no Makefile; manually install the relevant files. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (etc (string-append out "/etc/vpnc"))) + (for-each (lambda (file) + (install-file file etc)) + (append (find-files "." "^vpnc-script") + (list "netunshare" + "xinetd.netns.conf"))) + #t))) + (add-after 'install 'wrap-scripts + ;; Wrap scripts with paths to their common hard dependencies. + ;; Optional dependencies will need to be installed by the user. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (for-each + (lambda (script) + (wrap-program script + `("PATH" ":" prefix + ,(map (lambda (name) + (let ((input (assoc-ref inputs name))) + (string-append input "/bin:" + input "/sbin"))) + (list "coreutils" + "grep" + "iproute2" + "net-tools" + "sed" + "which"))))) + (find-files (string-append out "/etc/vpnc/vpnc-script") + "^vpnc-script")))))) + #:tests? #f)) ; no tests + (home-page "http://git.infradead.org/users/dwmw2/vpnc-scripts.git") + (synopsis "Network configuration scripts for Cisco VPN clients") + (description + "This set of scripts configures routing and name services when invoked +by the VPNC or OpenConnect Cisco @dfn{Virtual Private Network} (VPN) clients. + +The default @command{vpnc-script} automatically configures most common +connections, and provides hooks for performing custom actions at various stages +of the connection or disconnection process. + +Alternative scripts are provided for more complicated set-ups, or to serve as an +example for writing your own. For example, @command{vpnc-script-sshd} contains +the entire VPN in a network namespace accessible only through SSH.") + (license license:gpl2+)))) (define-public openconnect (package -- cgit v1.2.3 From 101e67ac200a8e91007f0dd614ab19aba9a50015 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 7 May 2017 01:56:41 +0200 Subject: gnu: vpnc: Use newer vpnc-scripts. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/vpn.scm (vpnc)[source]: Remove patch. [inputs]: Remove net-tools and iproute2. Add vpnc-scripts. [arguments]: Delete ‘configure’ and ‘wrap-vpnc-script’ #:phases. Add ‘use-store-paths’ phase. * gnu/packages/patches/vpnc-script.patch: Delete patch. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/patches/vpnc-script.patch | 15 ------------ gnu/packages/vpn.scm | 42 ++++++++++++---------------------- 3 files changed, 15 insertions(+), 43 deletions(-) delete mode 100644 gnu/packages/patches/vpnc-script.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4e41678615..1dcebc9921 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1126,7 +1126,6 @@ dist_patch_DATA = \ %D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch \ %D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \ %D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \ - %D%/packages/patches/vpnc-script.patch \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ diff --git a/gnu/packages/patches/vpnc-script.patch b/gnu/packages/patches/vpnc-script.patch deleted file mode 100644 index a0d9481952..0000000000 --- a/gnu/packages/patches/vpnc-script.patch +++ /dev/null @@ -1,15 +0,0 @@ -This patch adapts the vpnc script to newer kernel versions, see - https://lkml.org/lkml/2011/3/24/645 - -diff -u a/vpnc-script.in b/vpnc-script.in ---- a/vpnc-script.in 2013-03-03 13:55:16.000000000 +0100 -+++ b/vpnc-script.in 2013-03-03 13:56:11.000000000 +0100 -@@ -116,7 +116,7 @@ - - if [ -n "$IPROUTE" ]; then - fix_ip_get_output () { -- sed 's/cache//;s/metric \?[0-9]\+ [0-9]\+//g;s/hoplimit [0-9]\+//g' -+ sed 's/cache//;s/metric \?[0-9]\+ [0-9]\+//g;s/hoplimit [0-9]\+//g;s/ipid 0x....//g' - } - - set_vpngateway_route() { diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 44fd441f37..395b5d1376 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -74,41 +74,29 @@ (define-public vpnc (uri (string-append "https://www.unix-ag.uni-kl.de/~massar/vpnc/vpnc-" version ".tar.gz")) (sha256 (base32 - "1128860lis89g1s21hqxvap2nq426c9j4bvgghncc1zj0ays7kj6")) - (patches (search-patches "vpnc-script.patch")))) + "1128860lis89g1s21hqxvap2nq426c9j4bvgghncc1zj0ays7kj6")))) (build-system gnu-build-system) (inputs `(("libgcrypt" ,libgcrypt) ("perl" ,perl) - - ;; The following packages provide commands that 'vpnc-script' - ;; expects. - ("net-tools" ,net-tools) ;ifconfig, route - ("iproute2" ,iproute))) ;ip + ("vpnc-scripts" ,vpnc-scripts))) (arguments `(#:tests? #f ; there is no check target #:phases (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "Makefile" - (("PREFIX=/usr/local") (string-append "PREFIX=" out))) - (substitute* "Makefile" - (("ETCDIR=/etc/vpnc") (string-append "ETCDIR=" out - "/etc/vpnc")))))) - (add-after 'install 'wrap-vpnc-script + (add-after 'unpack 'use-store-paths (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Wrap 'etc/vpnc/vpnc-script' so that it finds the commands it - ;; needs. Assume coreutils/grep/sed are in $PATH. - (let ((out (assoc-ref outputs "out"))) - (wrap-program (string-append out "/etc/vpnc/vpnc-script") - `("PATH" ":" prefix - (,(string-append (assoc-ref inputs "net-tools") - "/sbin") - ,(string-append (assoc-ref inputs "net-tools") - "/bin") - ,(string-append (assoc-ref inputs "iproute2") - "/sbin")))))))))) + (let ((out (assoc-ref outputs "out")) + (vpnc-scripts (assoc-ref inputs "vpnc-scripts"))) + (substitute* "config.c" + (("/etc/vpnc/vpnc-script") + (string-append vpnc-scripts "/etc/vpnc/vpnc-script"))) + (substitute* "Makefile" + (("ETCDIR=.*") + (string-append "ETCDIR=" out "/etc/vpnc\n")) + (("PREFIX=.*") + (string-append "PREFIX=" out "\n"))) + #t))) + (delete 'configure)))) ; no configure script (synopsis "Client for Cisco VPN concentrators") (description "vpnc is a VPN client compatible with Cisco's EasyVPN equipment. -- cgit v1.2.3 From a6d06e86122bd1a711ff3ab1912fb78f261136d5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 3 Jul 2017 06:02:57 +0200 Subject: gnu: openconnect: Use only vpnc-scripts. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/vpn.scm (openconnect)[inputs, arguments]: Substitute ‘vpnc-scripts’ for ‘vpnc’ --- gnu/packages/vpn.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 395b5d1376..c8e82cf869 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -209,7 +209,7 @@ (define-public openconnect (inputs `(("libxml2" ,libxml2) ("gnutls" ,gnutls) - ("vpnc" ,vpnc) + ("vpnc-scripts" ,vpnc-scripts) ("zlib" ,zlib))) (native-inputs `(("gettext" ,gettext-minimal) @@ -217,7 +217,7 @@ (define-public openconnect (arguments `(#:configure-flags `(,(string-append "--with-vpnc-script=" - (assoc-ref %build-inputs "vpnc") + (assoc-ref %build-inputs "vpnc-scripts") "/etc/vpnc/vpnc-script")))) (synopsis "Client for Cisco VPN") (description -- cgit v1.2.3 From 748d4a84d13eb14ad0b434dbd94df43d51864048 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 29 Nov 2017 11:31:56 +0100 Subject: linux-boot: Ensure /etc exists on the root file system. Fixes a regression introduced in c8289690365887ca1dd122645e479a89cf7cd969 whereby /etc would no longer be created as a result of calling 'mark-as-not-killable'. This would affect ISO images because 'make-iso9660-image' does not create /etc by default. In particular, the ISO installation image as created by the "iso-image-installer" test would fail to boot while creating the /root/etc/mtab symlink: . * gnu/build/linux-boot.scm (mount-root-file-system): Make sure /root/etc exists. --- gnu/build/linux-boot.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index a1ff4dd1ea..8ac99af66c 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -270,6 +270,7 @@ (define* (mount-root-file-system root type ;; Make sure /root/etc/mtab is a symlink to /proc/self/mounts. (false-if-exception (delete-file "/root/etc/mtab")) + (mkdir-p "/root/etc") (symlink "/proc/self/mounts" "/root/etc/mtab")) (define (switch-root root) -- cgit v1.2.3 From 15c2ddc12460c9d1e26fb89639b460b8a0b3ffc0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 29 Nov 2017 15:14:17 +0100 Subject: vm: ISO9660 images include /etc and other standard files. * gnu/build/vm.scm (make-iso9660-image): Call 'populate-root-file-system' instead of a series of 'mkdir-p' calls. Add /etc to the arguments of xorriso. --- gnu/build/vm.scm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 7537f81509..20ee12709b 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -378,11 +378,8 @@ (define* (make-iso9660-image grub config-file os-drv target GRUB configuration and OS-DRV as the stuff in it." (let ((grub-mkrescue (string-append grub "/bin/grub-mkrescue")) (target-store (string-append "/tmp/root" (%store-directory)))) - (mkdir-p "/tmp/root/var/run") - (mkdir-p "/tmp/root/run") - (mkdir-p "/tmp/root/mnt") + (populate-root-file-system os-drv "/tmp/root") - (mkdir-p target-store) (mount (%store-directory) target-store "" MS_BIND) (when register-closures? @@ -399,6 +396,7 @@ (define* (make-iso9660-image grub config-file os-drv target `(,grub-mkrescue "-o" ,target ,(string-append "boot/grub/grub.cfg=" config-file) ,(string-append "gnu/store=" os-drv "/..") + "etc=/tmp/root/etc" "var=/tmp/root/var" "run=/tmp/root/run" ;; /mnt is used as part of the installation -- cgit v1.2.3 From a912c723f76d9762072ce27204a9227a64bcb625 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 29 Nov 2017 16:38:13 +0100 Subject: gexp: 'compiled-modules' disables deprecation warnings by default. This avoids repeated deprecation messages, particularly while running 'guix system build' or similar. * guix/gexp.scm (gexp->derivation): Add #:deprecation-warnings. Pass it to 'compiled-modules'. (compiled-modules): Add #:deprecation-warnings and honor it. * doc/guix.texi (G-Expressions): Update 'gexp->derivation' documentation. * guix/packages.scm (patch-and-repack): Pass #:deprecation-warnings #t. --- doc/guix.texi | 4 ++++ guix/gexp.scm | 21 ++++++++++++++++++--- guix/packages.scm | 1 + 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 777ca2738b..ddbb6c8939 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4879,6 +4879,7 @@ information about monads.) [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} "-builder")] @ + [#:deprecation-warnings #f] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on @var{system}; @var{exp} is @@ -4919,6 +4920,9 @@ refer to. Any reference to another store item will lead to a build error. Similarly for @var{disallowed-references}, which can list items that must not be referenced by the outputs. +@var{deprecation-warnings} determines whether to show deprecation warnings while +compiling modules. It can be @code{#f}, @code{#t}, or @code{'detailed}. + The other arguments are as for @code{derivation} (@pxref{Derivations}). @end deffn diff --git a/guix/gexp.scm b/guix/gexp.scm index 3781a1e6ee..27a8f35a58 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -564,6 +564,7 @@ (define* (gexp->derivation name exp allowed-references disallowed-references leaked-env-vars local-build? (substitutable? #t) + deprecation-warnings (script-name (string-append name "-builder"))) "Return a derivation NAME that runs EXP (a gexp) with GUILE-FOR-BUILD (a derivation) on SYSTEM; EXP is stored in a file called SCRIPT-NAME. When @@ -599,6 +600,9 @@ (define* (gexp->derivation name exp Similarly for DISALLOWED-REFERENCES, which can list items that must not be referenced by the outputs. +DEPRECATION-WARNINGS determines whether to show deprecation warnings while +compiling modules. It can be #f, #t, or 'detailed. + The other arguments are as for 'derivation'." (define %modules (delete-duplicates @@ -648,7 +652,9 @@ (define (graphs-file-names graphs) (compiled-modules %modules #:system system #:module-path module-path - #:guile guile-for-build) + #:guile guile-for-build + #:deprecation-warnings + deprecation-warnings) (return #f))) (graphs (if references-graphs (lower-reference-graphs references-graphs @@ -1023,7 +1029,8 @@ (define* (compiled-modules modules #:key (name "module-import-compiled") (system (%current-system)) (guile (%guile-for-build)) - (module-path %load-path)) + (module-path %load-path) + (deprecation-warnings #f)) "Return a derivation that builds a tree containing the `.go' files corresponding to MODULES. All the MODULES are built in a context where they can refer to each other." @@ -1073,7 +1080,15 @@ (define (process-directory directory output) (gexp->derivation name build #:system system #:guile-for-build guile - #:local-build? #t))) + #:local-build? #t + #:env-vars + (case deprecation-warnings + ((#f) + '(("GUILE_WARN_DEPRECATED" . "no"))) + ((detailed) + '(("GUILE_WARN_DEPRECATED" . "detailed"))) + (else + '()))))) ;;; diff --git a/guix/packages.scm b/guix/packages.scm index f619d9b370..d68af1569f 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -608,6 +608,7 @@ (define (first-file directory) (gexp->derivation name build #:graft? #f #:system system + #:deprecation-warnings #t ;to avoid a rebuild #:guile-for-build guile-for-build)))) (define (transitive-inputs inputs) -- cgit v1.2.3 From 63087721bb54a14dc04ec424474386ae98f7771b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 29 Nov 2017 20:34:15 +0200 Subject: gnu: grub :Disable tests on aarch64. * gnu/packages/bootloaders.scm (grub)[arguments]: Add aarch64 to the architectures where the test suite is not run. --- gnu/packages/bootloaders.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index dea9366f58..273aeb3823 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -50,7 +50,9 @@ (define-module (gnu packages bootloaders) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) - #:use-module (guix utils)) + #:use-module (guix utils) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) (define unifont ;; GNU Unifont, . @@ -103,9 +105,10 @@ (define-public grub (("grub_cmd_date grub_cmd_set_date grub_cmd_sleep") "grub_cmd_date grub_cmd_sleep")) #t))) - ;; Disable tests on ARM platforms. - #:tests? ,(not (string-prefix? "arm" (or (%current-target-system) - (%current-system)))))) + ;; Disable tests on ARM and AARCH64 platforms. + #:tests? ,(not (any (cute string-prefix? <> (or (%current-target-system) + (%current-system))) + '("arm" "aarch64"))))) (inputs `(("gettext" ,gettext-minimal) -- cgit v1.2.3 From 2c646b7d52e9dcff9c6adc0d37148d20db017610 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 29 Nov 2017 01:35:36 -0500 Subject: gnu: libtorrent-rasterbar: Update to 1.1.5. * gnu/packages/bittorrent.scm (libtorrent-rasterbar): Update to 1.1.5. --- gnu/packages/bittorrent.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index 90ce33eafd..02a687cda7 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -382,7 +382,7 @@ (define-public mktorrent (define-public libtorrent-rasterbar (package (name "libtorrent-rasterbar") - (version "1.1.4") + (version "1.1.5") (source (origin (method url-fetch) (uri @@ -392,7 +392,7 @@ (define-public libtorrent-rasterbar "/libtorrent-rasterbar-" version ".tar.gz")) (sha256 (base32 - "19pb9sn71m4gnnrm3f1kxic63km9s3vx2mj7rznzfv9sh1kj7x6c")))) + "0c398b7hsa5dvj4m0jc8h7mn0m3nawmagb6c5c7ml5c9hc338c8h")))) (build-system gnu-build-system) (arguments `(#:configure-flags -- cgit v1.2.3 From e6e83523824fb9a9f2ff8af5ae5c99323f126cfe Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 29 Nov 2017 12:45:12 -0500 Subject: gnu: curl: Update to 7.57.0 [fixes CVE-2017-{8816,8817,8818}]. * gnu/packages/curl.scm (curl): Update replacement to 7.57.0. (curl-7.56.1): Replace with ... (curl-7.57.0): ... new variable. --- gnu/packages/curl.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 2e4a48d1ef..49703c0925 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -43,7 +43,7 @@ (define-public curl (package (name "curl") (version "7.55.1") - (replacement curl-7.56.1) + (replacement curl-7.57.0) (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" @@ -123,10 +123,10 @@ (define-public curl "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) -(define-public curl-7.56.1 +(define-public curl-7.57.0 (package (inherit curl) - (version "7.56.1") + (version "7.57.0") (source (origin (method url-fetch) @@ -134,4 +134,4 @@ (define-public curl-7.56.1 version ".tar.xz")) (sha256 (base32 - "1l9r386qz7l7h4n5lysrf1wq93lyc72a7shgg9b8s5d0ycn2ivcf")))))) + "0y3qbjjcxhcvm1yawp3spfssjbskv0g6gyzld6ckif5pf8ygvxpm")))))) -- cgit v1.2.3 From ead48d05233af6c6ffea1338561a8189f81102ca Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 29 Nov 2017 21:57:27 +0100 Subject: gnu: ghc-happy: Update to 1.19.8. * gnu/packages/haskell.scm (ghc-happy): Update to 1.19.8. [arguments]: Delete; run all tests. --- gnu/packages/haskell.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9ea54c5022..f1302f0e60 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2017 Peter Mikkelsen ;;; Copyright © 2017 Alex Vong ;;; Copyright © 2017 rsiddharth +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -875,7 +876,7 @@ (define-public ghc-concatenative (define-public ghc-happy (package (name "ghc-happy") - (version "1.19.5") + (version "1.19.8") (source (origin (method url-fetch) @@ -885,10 +886,8 @@ (define-public ghc-happy ".tar.gz")) (sha256 (base32 - "1nj353q4z1g186fpjzf0dnsg71qhxqpamx8jy89rjjvv3p0kmw32")))) + "186ky3bly0i3cc56qk3r7j7pxh2108aackq4n2lli7jmbnb3kxsd")))) (build-system haskell-build-system) - (arguments `(#:tests? #f)) ;; cannot satisfy -package mtl. Possible Cabal - ;; issue. (inputs `(("ghc-mtl" ,ghc-mtl))) (home-page "https://hackage.haskell.org/package/happy") -- cgit v1.2.3 From 32008a75dc9f7584eb6c065e96fc6fcabafb312e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 23 Nov 2017 18:40:35 +0100 Subject: gnu: spectrwm: Fix description. * gnu/packages/wm.scm (spectrwm)[description]: Fix typo and use @dfn. --- gnu/packages/wm.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 62a5b54608..6912d6f2d9 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -785,8 +785,8 @@ (define-public spectrwm @item Quick launch menu @item Many screen layouts possible with a few simple key strokes @item Move/resize floating windows -@item Extended Window Manager Hints (EWMH) support -@item Configureable tiling +@item Extended Window Manager Hints (@dfn{EWMH}) support +@item Configurable tiling @item Adjustable tile gap allows for a true one pixel border @item Customizable colors and border width @end itemize\n") -- cgit v1.2.3 From 6ee797f326274284ac60dad50688f877a93711d2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 29 Nov 2017 22:29:26 +0100 Subject: gexp: Default to 'guile-2.2' for 'program-file'. Previously things returned by 'program-file', such as %MODPROBE-WRAPPER in (gnu services), would refer to 'guile-final'. This would introduce 'guile-final' in the system closure, which is otherwise absent. By referring to 'guile-2.2' we remove that extra Guile. * guix/gexp.scm (default-guile): Refer to GUILE-2.2 instead of GUILE-FINAL. --- guix/gexp.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index 27a8f35a58..1929947d95 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1096,10 +1096,12 @@ (define (process-directory directory output) ;;; (define (default-guile) - ;; Lazily resolve 'guile-final'. This module must not refer to (gnu …) + ;; Lazily resolve 'guile-2.2' (not 'guile-final' because this is for + ;; programs returned by 'program-file' and we don't want to keep references + ;; to several Guile packages). This module must not refer to (gnu …) ;; modules directly, to avoid circular dependencies, hence this hack. - (module-ref (resolve-interface '(gnu packages commencement)) - 'guile-final)) + (module-ref (resolve-interface '(gnu packages guile)) + 'guile-2.2)) (define (load-path-expression modules) "Return as a monadic value a gexp that sets '%load-path' and -- cgit v1.2.3 From 53d26163c6ec1a1c48a1ec775e67b739b9005270 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 29 Nov 2017 23:05:54 +0100 Subject: gnu: libgit2: Avoid dependency on cURL. This reduces the closure size from 225 MiB to 80 MiB, while still supporting HTTP(S) access. * gnu/packages/version-control.scm (libgit2)[source](modules, snippet): New fields. [inputs]: Remove CURL; add HTTP-PARSER. --- gnu/packages/version-control.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 9de660f090..21ea90be72 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -370,7 +370,11 @@ (define-public libgit2 (sha256 (base32 "1b3figbhp5l83vd37vq6j2narrq4yl9pfw6mw0px0dzb1hz3jqka")) - (patches (search-patches "libgit2-0.25.1-mtime-0.patch")))) + (patches (search-patches "libgit2-0.25.1-mtime-0.patch")) + + ;; Remove bundled software. + (snippet '(delete-file-recursively "deps")) + (modules '((guix build utils))))) (build-system cmake-build-system) (outputs '("out" "debug")) (arguments @@ -390,7 +394,7 @@ (define-public libgit2 (lambda _ (zero? (system* "./libgit2_clar" "-v" "-Q"))))))) (inputs `(("libssh2" ,libssh2) - ("libcurl" ,curl) + ("http-parser" ,http-parser) ("python" ,python-wrapper))) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 3e9013562c90e4c3279de7d5781eade6b4c27b53 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 30 Nov 2017 02:25:37 +0100 Subject: gnu: exim: Update to 4.89.1. * gnu/packages/mail.scm (exim): Update to 4.89.1. [source]: Remove patches for fixed CVEs (all of them). * gnu/packages/patches/exim-CVE-2017-16943.patch: Delete file... * gnu/packages/patches/exim-CVE-2017-16944.patch: ...as well as this file... * gnu/packages/patches/exim-CVE-2017-1000369.patch: ...and this file. * gnu/local.mk (dist_patch_DATA): Remove all of them. --- gnu/local.mk | 3 - gnu/packages/mail.scm | 7 +- gnu/packages/patches/exim-CVE-2017-1000369.patch | 59 ---------------- gnu/packages/patches/exim-CVE-2017-16943.patch | 65 ------------------ gnu/packages/patches/exim-CVE-2017-16944.patch | 87 ------------------------ 5 files changed, 2 insertions(+), 219 deletions(-) delete mode 100644 gnu/packages/patches/exim-CVE-2017-1000369.patch delete mode 100644 gnu/packages/patches/exim-CVE-2017-16943.patch delete mode 100644 gnu/packages/patches/exim-CVE-2017-16944.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1dcebc9921..926f03ddba 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -615,9 +615,6 @@ dist_patch_DATA = \ %D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/eudev-rules-directory.patch \ %D%/packages/patches/evilwm-lost-focus-bug.patch \ - %D%/packages/patches/exim-CVE-2017-16943.patch \ - %D%/packages/patches/exim-CVE-2017-16944.patch \ - %D%/packages/patches/exim-CVE-2017-1000369.patch \ %D%/packages/patches/exiv2-CVE-2017-14860.patch \ %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch \ %D%/packages/patches/fastcap-mulGlobal.patch \ diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index b9656c7dd8..114b1a21bb 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1034,7 +1034,7 @@ (define-public msmtp (define-public exim (package (name "exim") - (version "4.89") + (version "4.89.1") (source (origin (method url-fetch) @@ -1042,12 +1042,9 @@ (define-public exim version ".tar.bz2") (string-append "ftp://ftp.exim.org/pub/exim/exim4/old/exim-" version ".tar.bz2"))) - (patches (search-patches "exim-CVE-2017-16943.patch" - "exim-CVE-2017-16944.patch" - "exim-CVE-2017-1000369.patch")) (sha256 (base32 - "1c0syp7yxngmq7y8vqsrvijinzin5m941vn0ljihdfld7kh2wbwi")))) + "133sjkcm9wlhpcxflr5v865varc1995bqa1y3vjs1w6zc34kp18w")))) (build-system gnu-build-system) (inputs `(("bdb" ,bdb) diff --git a/gnu/packages/patches/exim-CVE-2017-1000369.patch b/gnu/packages/patches/exim-CVE-2017-1000369.patch deleted file mode 100644 index a67a8afb0e..0000000000 --- a/gnu/packages/patches/exim-CVE-2017-1000369.patch +++ /dev/null @@ -1,59 +0,0 @@ -Fix CVE-2017-1000369: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000369 -https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt - -Patch adapted from upstream source repository: - -https://git.exim.org/exim.git/commit/65e061b76867a9ea7aeeb535341b790b90ae6c21 - -From 65e061b76867a9ea7aeeb535341b790b90ae6c21 Mon Sep 17 00:00:00 2001 -From: "Heiko Schlittermann (HS12-RIPE)" -Date: Wed, 31 May 2017 23:08:56 +0200 -Subject: [PATCH] Cleanup (prevent repeated use of -p/-oMr to avoid mem leak) - ---- - doc/doc-docbook/spec.xfpt | 3 ++- - src/src/exim.c | 19 +++++++++++++++++-- - 2 files changed, 19 insertions(+), 3 deletions(-) - -diff --git a/src/src/exim.c b/src/src/exim.c -index 67583e58..88e11977 100644 ---- a/src/exim.c -+++ b/src/exim.c -@@ -3106,7 +3106,14 @@ for (i = 1; i < argc; i++) - - /* -oMr: Received protocol */ - -- else if (Ustrcmp(argrest, "Mr") == 0) received_protocol = argv[++i]; -+ else if (Ustrcmp(argrest, "Mr") == 0) -+ -+ if (received_protocol) -+ { -+ fprintf(stderr, "received_protocol is set already\n"); -+ exit(EXIT_FAILURE); -+ } -+ else received_protocol = argv[++i]; - - /* -oMs: Set sender host name */ - -@@ -3202,7 +3209,15 @@ for (i = 1; i < argc; i++) - - if (*argrest != 0) - { -- uschar *hn = Ustrchr(argrest, ':'); -+ uschar *hn; -+ -+ if (received_protocol) -+ { -+ fprintf(stderr, "received_protocol is set already\n"); -+ exit(EXIT_FAILURE); -+ } -+ -+ hn = Ustrchr(argrest, ':'); - if (hn == NULL) - { - received_protocol = argrest; --- -2.13.1 - diff --git a/gnu/packages/patches/exim-CVE-2017-16943.patch b/gnu/packages/patches/exim-CVE-2017-16943.patch deleted file mode 100644 index 3a3e5d27fa..0000000000 --- a/gnu/packages/patches/exim-CVE-2017-16943.patch +++ /dev/null @@ -1,65 +0,0 @@ -Fix CVE-2017-16943: - -https://bugs.exim.org/show_bug.cgi?id=2199 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16943 - -Patch copied from upstream source repository: - -https://git.exim.org/exim.git/commit/4090d62a4b25782129cc1643596dc2f6e8f63bde - -From 4090d62a4b25782129cc1643596dc2f6e8f63bde Mon Sep 17 00:00:00 2001 -From: Jeremy Harris -Date: Fri, 24 Nov 2017 20:22:33 +0000 -Subject: [PATCH] Avoid release of store if there have been later allocations. - Bug 2199 - ---- - doc/doc-txt/ChangeLog | 4 ++++ - src/src/receive.c | 7 ++++--- - 2 files changed, 8 insertions(+), 3 deletions(-) - -#diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog -#index e937ba2..a2d9339 100644 -#--- a/doc/doc-txt/ChangeLog -#+++ b/doc/doc-txt/ChangeLog -#@@ -59,6 +59,10 @@ JH/30 Fix a logging bug on aarch64: an unsafe routine was previously used for -# connection in response to HELO" was logged instead of the actual 4xx -# error for the HELO. -# -#+JH/34 Bug 2199: fix a use-after-free while reading smtp input for header lines. -#+ A crafted sequence of BDAT commands could result in in-use memory beeing -#+ freed. -#+ -# - Exim version 4.89 - ----------------- -diff --git a/src/src/receive.c b/src/src/receive.c -index 95cf13e..20672db 100644 ---- a/src/receive.c -+++ b/src/receive.c -@@ -1772,8 +1772,8 @@ for (;;) - (and sometimes lunatic messages can have ones that are 100s of K long) we - call store_release() for strings that have been copied - if the string is at - the start of a block (and therefore the only thing in it, because we aren't -- doing any other gets), the block gets freed. We can only do this because we -- know there are no other calls to store_get() going on. */ -+ doing any other gets), the block gets freed. We can only do this release if -+ there were no allocations since the once that we want to free. */ - - if (ptr >= header_size - 4) - { -@@ -1782,9 +1782,10 @@ for (;;) - header_size *= 2; - if (!store_extend(next->text, oldsize, header_size)) - { -+ BOOL release_ok = store_last_get[store_pool] == next->text; - uschar *newtext = store_get(header_size); - memcpy(newtext, next->text, ptr); -- store_release(next->text); -+ if (release_ok) store_release(next->text); - next->text = newtext; - } - } --- -1.9.1 - diff --git a/gnu/packages/patches/exim-CVE-2017-16944.patch b/gnu/packages/patches/exim-CVE-2017-16944.patch deleted file mode 100644 index e4e8313c9c..0000000000 --- a/gnu/packages/patches/exim-CVE-2017-16944.patch +++ /dev/null @@ -1,87 +0,0 @@ -Fix CVE-2017-16944: - -https://bugs.exim.org/show_bug.cgi?id=2201 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16944 - -Patch copied from upstream source repository: - -https://git.exim.org/exim.git/commit/4804c62909a62a3ac12ec4777ebd48c541028965 - -From 4804c62909a62a3ac12ec4777ebd48c541028965 Mon Sep 17 00:00:00 2001 -From: "Heiko Schlittermann (HS12-RIPE)" -Date: Mon, 27 Nov 2017 22:42:33 +0100 -Subject: [PATCH] Chunking: do not treat the first lonely dot special. - CVE-2017-16944, Bug 2201 - -(cherry picked from commit 178ecb70987f024f0e775d87c2f8b2cf587dd542) - -Change log update - -(cherry picked from commit b488395f4d99d44a950073a64b35ec8729102782) ---- - doc/doc-txt/ChangeLog | 6 +++++- - src/src/receive.c | 2 +- - src/src/smtp_in.c | 7 +++++++ - 3 files changed, 13 insertions(+), 2 deletions(-) - -#diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog -#index a2d9339..541ebaf 100644 -#--- a/doc/doc-txt/ChangeLog -#+++ b/doc/doc-txt/ChangeLog -#@@ -61,7 +61,11 @@ JH/30 Fix a logging bug on aarch64: an unsafe routine was previously used for -# -# JH/34 Bug 2199: fix a use-after-free while reading smtp input for header lines. -# A crafted sequence of BDAT commands could result in in-use memory beeing -#- freed. -#+ freed. CVE-2017-16943. -#+ -#+HS/03 Bug 2201: Fix checking for leading-dot on a line during headers reading -#+ from SMTP input. Previously it was always done; now only done for DATA -#+ and not BDAT commands. CVE-2017-16944. -# -# -# Exim version 4.89 -diff --git a/src/src/receive.c b/src/src/receive.c -index 20672db..2812ea2 100644 ---- a/src/receive.c -+++ b/src/receive.c -@@ -1827,7 +1827,7 @@ for (;;) - prevent further reading), and break out of the loop, having freed the - empty header, and set next = NULL to indicate no data line. */ - -- if (ptr == 0 && ch == '.' && (smtp_input || dot_ends)) -+ if (ptr == 0 && ch == '.' && dot_ends) - { - ch = (receive_getc)(GETC_BUFFER_UNLIMITED); - if (ch == '\r') -diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c -index 1b45f84..0207540 100644 ---- a/src/smtp_in.c -+++ b/src/smtp_in.c -@@ -4955,16 +4955,23 @@ while (done <= 0) - DEBUG(D_receive) debug_printf("chunking state %d, %d bytes\n", - (int)chunking_state, chunking_data_left); - -+ /* push the current receive_* function on the "stack", and -+ replace them by bdat_getc(), which in turn will use the lwr_receive_* -+ functions to do the dirty work. */ - lwr_receive_getc = receive_getc; - lwr_receive_ungetc = receive_ungetc; -+ - receive_getc = bdat_getc; - receive_ungetc = bdat_ungetc; - -+ dot_ends = FALSE; -+ - goto DATA_BDAT; - } - - case DATA_CMD: - HAD(SCH_DATA); -+ dot_ends = TRUE; - - DATA_BDAT: /* Common code for DATA and BDAT */ - if (!discarded && recipients_count <= 0) --- -1.9.1 - -- cgit v1.2.3 From 46ff2dbb4ae6f85554aaf2a16c2e6dc2edf244da Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 30 Nov 2017 10:17:09 +0200 Subject: gnu: grub-efi: Disable tests on all platforms. This is a follow-up to 56f0feb6781e3680541d7adc21d6b3b4746a33ca and 63087721bb54a14dc04ec424474386ae98f7771b, which accidentally enabled tests for grub-efi on other platforms. * gnu/packages/bootloaders.scm (grub-efi)[arguments]: Override inherited tests field and disable on all platforms. --- gnu/packages/bootloaders.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 273aeb3823..7d42ff3ebc 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -164,8 +164,8 @@ (define-public grub-efi `(;; TODO: Tests need a UEFI firmware for qemu. There is one at ;; https://github.com/tianocore/edk2/tree/master/OvmfPkg . ;; Search for 'OVMF' in "tests/util/grub-shell.in". - #:tests? #f ,@(substitute-keyword-arguments (package-arguments grub) + ((#:tests? _ #f) #f) ((#:configure-flags flags ''()) `(cons "--with-platform=efi" ,flags)) ((#:phases phases) -- cgit v1.2.3 From d65d7759f0b8bc3068de7beda319da3877c678fc Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 30 Nov 2017 10:34:04 +0100 Subject: doc: Give the absolute file name of 'hydra.gnu.org.pub' in snippets. * doc/guix.texi (Substitute Server Authorization): Give the absolute file name of 'hydra.gnu.org.pub' in the snippet. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index ddbb6c8939..b20848da5e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2197,7 +2197,7 @@ make sure you checked the GPG signature of Then, you can run something like this: @example -# guix archive --authorize < hydra.gnu.org.pub +# guix archive --authorize < @var{prefix}/share/guix/hydra.gnu.org.pub @end example Once this is in place, the output of a command like @code{guix build} -- cgit v1.2.3 From 8833a647bbe444b7a981d0ff977f8132b7d6fddb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 30 Nov 2017 11:14:34 +0100 Subject: gnu: guix: Move 'bootstrap' phase after 'unpack'. Suggested by Mark H Weaver at . * gnu/packages/package-management.scm (guix)[arguments]: Move 'bootstrap' phase back after 'unpack'. --- gnu/packages/package-management.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index ac697512d6..3bc0473b9f 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -136,13 +136,15 @@ (define-public guix (ice-9 rdelim)) #:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-after 'unpack 'bootstrap (lambda _ ;; Make sure 'msgmerge' can modify the PO files. (for-each (lambda (po) (chmod po #o666)) (find-files "." "\\.po$")) + (patch-shebang "build-aux/git-version-gen") + (call-with-output-file ".tarball-version" (lambda (port) (display ,version port))) -- cgit v1.2.3 From cbe1314a7e45ac1676404b3ca84a25889c8e72c1 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Thu, 30 Nov 2017 12:50:23 +0100 Subject: gnu: Update r-minimal to 3.4.3. * gnu/packages/statistics.scm (r-minimal): Update to 3.4.3. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index c1f4426f2f..6a5b09cfcb 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -110,7 +110,7 @@ (define-public pspp (define-public r-minimal (package (name "r-minimal") - (version "3.4.2") + (version "3.4.3") (source (origin (method url-fetch) (uri (string-append "mirror://cran/src/base/R-" @@ -118,7 +118,7 @@ (define-public r-minimal version ".tar.gz")) (sha256 (base32 - "0r0cv2kc3x5z9xycpnxx6fbvv22psw2m342jhpslbxkc8g1307lp")))) + "09pl0w01fr09bsrwd7nz2r5psysj0z93w4chz3hm2havvqqvhg3s")))) (build-system gnu-build-system) (arguments `(#:disallowed-references (,tzdata-2017a) -- cgit v1.2.3 From c71558ffed7932aa62fd5021beab522647370d80 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Thu, 30 Nov 2017 12:51:54 +0100 Subject: gnu: Update r-cluster to 2.0.6. * gnu/packages/statistics.scm (r-cluster): Update to 2.0.6. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 6a5b09cfcb..19958a19bd 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -359,14 +359,14 @@ (define-public r-class (define-public r-cluster (package (name "r-cluster") - (version "2.0.5") + (version "2.0.6") (source (origin (method url-fetch) (uri (cran-uri "cluster" version)) (sha256 (base32 - "1bkvqmv8h2c423q9ag2afb6s9j2vcdlxsf559zzbimraphrr2c2b")))) + "1z4gbz7chxxi4ly6c0yjlikwgf8aa8dlg05cn5cd6pjr21zvh97l")))) (build-system r-build-system) (inputs `(("gfortran" ,gfortran))) -- cgit v1.2.3 From 8937abefb25d67e63e2a4271c5d75806be0d38b6 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Thu, 30 Nov 2017 12:52:25 +0100 Subject: gnu: Update r-matrix to 1.2-12. * gnu/packages/statistics.scm (r-matrix): Update to 1.2-12. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 19958a19bd..99fa03e7b9 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -464,14 +464,14 @@ (define-public r-lattice (define-public r-matrix (package (name "r-matrix") - (version "1.2-11") + (version "1.2-12") (source (origin (method url-fetch) (uri (cran-uri "Matrix" version)) (sha256 (base32 - "1yvd6fx3n99j4gvzrng43ji38pr5h8y03kijccgjdalym2hcp36g")))) + "1wm45hg4x5ay15y03k6rmgkd1n9r01da72mszk24vafwd7pimr8n")))) (properties `((upstream-name . "Matrix"))) (build-system r-build-system) (propagated-inputs -- cgit v1.2.3 From c5b2905d92e7c34616fca2dc12d9df991f2d7d06 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Tue, 28 Nov 2017 10:19:56 +0100 Subject: gnu: dtc: Fix build on 32 bits platforms. * gnu/packages/bootloaders.scm (dtc)[patches]: Add dtc-32-bits-check.patch and dtc-format-modifier.patch to fix build and tests on 32 bits platforms. * gnu/packages/patches/dtc-32-bits-check.patch : New file. * gnu/packages/patches/dtc-format-modifier.patch : New file. * gnu/local.mk (dist_patch_DATA): Add two above patches. --- gnu/local.mk | 2 + gnu/packages/bootloaders.scm | 6 +- gnu/packages/patches/dtc-32-bits-check.patch | 134 +++++++++++++++++++++++++ gnu/packages/patches/dtc-format-modifier.patch | 38 +++++++ 4 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/dtc-32-bits-check.patch create mode 100644 gnu/packages/patches/dtc-format-modifier.patch diff --git a/gnu/local.mk b/gnu/local.mk index 926f03ddba..05a86ac177 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -603,6 +603,8 @@ dist_patch_DATA = \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ %D%/packages/patches/doxygen-test.patch \ + %D%/packages/patches/dtc-format-modifier.patch \ + %D%/packages/patches/dtc-32-bits-check.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elixir-disable-failing-tests.patch \ diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 7d42ff3ebc..cee1b17019 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -302,7 +302,11 @@ (define-public dtc "dtc-" version ".tar.xz")) (sha256 (base32 - "08gnl39i4xy3dm8iqwlz2ygx0ml1bgc5kpiys5ll1wvah1j72b04")))) + "08gnl39i4xy3dm8iqwlz2ygx0ml1bgc5kpiys5ll1wvah1j72b04")) + ;; Fix build and tests on 32 bits platforms. + ;; Will probably be fixed in 1.4.6 release. + (patches (search-patches "dtc-format-modifier.patch" + "dtc-32-bits-check.patch")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) diff --git a/gnu/packages/patches/dtc-32-bits-check.patch b/gnu/packages/patches/dtc-32-bits-check.patch new file mode 100644 index 0000000000..cf15be3404 --- /dev/null +++ b/gnu/packages/patches/dtc-32-bits-check.patch @@ -0,0 +1,134 @@ +This fixes tests on 32 bits platforms. Patch taken from upstream. + +commit f8872e29ce06d78d3db71b3ab26a7465fc8a9586 +Author: David Gibson +Date: Fri Oct 6 23:07:30 2017 +1100 + + tests: Avoid 64-bit arithmetic in assembler + + For testing we (ab)use the assembler to build us a sample dtb, independent + of the other tools (dtc and libfdt) that we're trying to test. In a few + places this uses 64-bit arithmetic to decompose 64-bit constants into + the individual bytes in the blob. + + Unfortunately, it seems that some builds of GNU as don't support >32 bit + arithmetic, though it's not entirely clear to me which do and which don't + (Fedora i386 does support 64-bit, Debian arm32 doesn't). + + Anyway, to be safe, this avoids 64-bit arithmetic in assembler at the cost + of some extra awkwardness because we have to define the values in 32-bit + halves. + + Signed-off-by: David Gibson + +diff --git a/tests/testdata.h b/tests/testdata.h +index 3588778..f6bbe1d 100644 +--- a/tests/testdata.h ++++ b/tests/testdata.h +@@ -4,15 +4,25 @@ + #define ASM_CONST_LL(x) (x##ULL) + #endif + +-#define TEST_ADDR_1 ASM_CONST_LL(0xdeadbeef00000000) +-#define TEST_SIZE_1 ASM_CONST_LL(0x100000) +-#define TEST_ADDR_2 ASM_CONST_LL(123456789) +-#define TEST_SIZE_2 ASM_CONST_LL(010000) ++#define TEST_ADDR_1H ASM_CONST_LL(0xdeadbeef) ++#define TEST_ADDR_1L ASM_CONST_LL(0x00000000) ++#define TEST_ADDR_1 ((TEST_ADDR_1H << 32) | TEST_ADDR_1L) ++#define TEST_SIZE_1H ASM_CONST_LL(0x00000000) ++#define TEST_SIZE_1L ASM_CONST_LL(0x00100000) ++#define TEST_SIZE_1 ((TEST_SIZE_1H << 32) | TEST_SIZE_1L) ++#define TEST_ADDR_2H ASM_CONST_LL(0) ++#define TEST_ADDR_2L ASM_CONST_LL(123456789) ++#define TEST_ADDR_2 ((TEST_ADDR_2H << 32) | TEST_ADDR_2L) ++#define TEST_SIZE_2H ASM_CONST_LL(0) ++#define TEST_SIZE_2L ASM_CONST_LL(010000) ++#define TEST_SIZE_2 ((TEST_SIZE_2H << 32) | TEST_SIZE_2L) + + #define TEST_VALUE_1 0xdeadbeef + #define TEST_VALUE_2 123456789 + +-#define TEST_VALUE64_1 ASM_CONST_LL(0xdeadbeef01abcdef) ++#define TEST_VALUE64_1H ASM_CONST_LL(0xdeadbeef) ++#define TEST_VALUE64_1L ASM_CONST_LL(0x01abcdef) ++#define TEST_VALUE64_1 ((TEST_VALUE64_1H << 32) | TEST_VALUE64_1L) + + #define PHANDLE_1 0x2000 + #define PHANDLE_2 0x2001 +diff --git a/tests/trees.S b/tests/trees.S +index 9854d1d..9859914 100644 +--- a/tests/trees.S ++++ b/tests/trees.S +@@ -7,16 +7,6 @@ + .byte ((val) >> 8) & 0xff ; \ + .byte (val) & 0xff ; + +-#define FDTQUAD(val) \ +- .byte ((val) >> 56) & 0xff ; \ +- .byte ((val) >> 48) & 0xff ; \ +- .byte ((val) >> 40) & 0xff ; \ +- .byte ((val) >> 32) & 0xff ; \ +- .byte ((val) >> 24) & 0xff ; \ +- .byte ((val) >> 16) & 0xff ; \ +- .byte ((val) >> 8) & 0xff ; \ +- .byte (val) & 0xff ; +- + #define TREE_HDR(tree) \ + .balign 8 ; \ + .globl _##tree ; \ +@@ -33,14 +23,16 @@ tree: \ + FDTLONG(tree##_strings_end - tree##_strings) ; \ + FDTLONG(tree##_struct_end - tree##_struct) ; + +-#define RSVMAP_ENTRY(addr, len) \ +- FDTQUAD(addr) ; \ +- FDTQUAD(len) ; \ ++#define RSVMAP_ENTRY(addrh, addrl, lenh, lenl) \ ++ FDTLONG(addrh) ; \ ++ FDTLONG(addrl) ; \ ++ FDTLONG(lenh) ; \ ++ FDTLONG(lenl) + + #define EMPTY_RSVMAP(tree) \ + .balign 8 ; \ + tree##_rsvmap: ; \ +- RSVMAP_ENTRY(0, 0) \ ++ RSVMAP_ENTRY(0, 0, 0, 0) \ + tree##_rsvmap_end: ; + + #define PROPHDR(tree, name, len) \ +@@ -52,9 +44,10 @@ tree##_rsvmap_end: ; + PROPHDR(tree, name, 4) \ + FDTLONG(val) ; + +-#define PROP_INT64(tree, name, val) \ ++#define PROP_INT64(tree, name, valh, vall) \ + PROPHDR(tree, name, 8) \ +- FDTQUAD(val) ; ++ FDTLONG(valh) ; \ ++ FDTLONG(vall) ; + + #define PROP_STR(tree, name, str) \ + PROPHDR(tree, name, 55f - 54f) \ +@@ -81,16 +74,16 @@ tree##_##name: ; \ + + .balign 8 + test_tree1_rsvmap: +- RSVMAP_ENTRY(TEST_ADDR_1, TEST_SIZE_1) +- RSVMAP_ENTRY(TEST_ADDR_2, TEST_SIZE_2) +- RSVMAP_ENTRY(0, 0) ++ RSVMAP_ENTRY(TEST_ADDR_1H, TEST_ADDR_1L, TEST_SIZE_1H, TEST_SIZE_1L) ++ RSVMAP_ENTRY(TEST_ADDR_2H, TEST_ADDR_2L, TEST_SIZE_2H, TEST_SIZE_2L) ++ RSVMAP_ENTRY(0, 0, 0, 0) + test_tree1_rsvmap_end: + + test_tree1_struct: + BEGIN_NODE("") + PROP_STR(test_tree1, compatible, "test_tree1") + PROP_INT(test_tree1, prop_int, TEST_VALUE_1) +- PROP_INT64(test_tree1, prop_int64, TEST_VALUE64_1) ++ PROP_INT64(test_tree1, prop_int64, TEST_VALUE64_1H, TEST_VALUE64_1L) + PROP_STR(test_tree1, prop_str, TEST_STRING_1) + PROP_INT(test_tree1, address_cells, 1) + PROP_INT(test_tree1, size_cells, 0) diff --git a/gnu/packages/patches/dtc-format-modifier.patch b/gnu/packages/patches/dtc-format-modifier.patch new file mode 100644 index 0000000000..c33d16857f --- /dev/null +++ b/gnu/packages/patches/dtc-format-modifier.patch @@ -0,0 +1,38 @@ +This fixes build on 32 bits platforms. This patch is taken from upstream. + +commit 497432fd2131967f349e69dc5d259072151cc4b4 +Author: Thierry Reding +Date: Wed Sep 27 15:04:09 2017 +0200 + + checks: Use proper format modifier for size_t + + The size of size_t can vary between architectures, so using %ld isn't + going to work on 32-bit builds. Use the %zu modifier to make sure it is + always correct. + + Signed-off-by: Thierry Reding + Acked-by: Rob Herring + Signed-off-by: David Gibson + +diff --git a/checks.c b/checks.c +index 902f2e3..08a3a29 100644 +--- a/checks.c ++++ b/checks.c +@@ -972,7 +972,7 @@ static void check_property_phandle_args(struct check *c, + int cell, cellsize = 0; + + if (prop->val.len % sizeof(cell_t)) { +- FAIL(c, dti, "property '%s' size (%d) is invalid, expected multiple of %ld in node %s", ++ FAIL(c, dti, "property '%s' size (%d) is invalid, expected multiple of %zu in node %s", + prop->name, prop->val.len, sizeof(cell_t), node->fullpath); + return; + } +@@ -1163,7 +1163,7 @@ static void check_interrupts_property(struct check *c, + return; + + if (irq_prop->val.len % sizeof(cell_t)) +- FAIL(c, dti, "property '%s' size (%d) is invalid, expected multiple of %ld in node %s", ++ FAIL(c, dti, "property '%s' size (%d) is invalid, expected multiple of %zu in node %s", + irq_prop->name, irq_prop->val.len, sizeof(cell_t), + node->fullpath); + -- cgit v1.2.3 From bf630276a1c853ec7484f5422d0595a11f51a58b Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 18 Nov 2017 10:25:40 +0530 Subject: gnu: scons: Update to 3.0.1. * gnu/packages/python.scm (scons): Update to 3.0.1. (scons-python2): New variable. --- gnu/packages/python.scm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9e89e0d111..01b4e2cd29 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1365,19 +1365,17 @@ (define-public python2-polib (define-public scons (package (name "scons") - (version "2.5.1") + (version "3.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/scons/scons/" version "/scons-" version ".tar.gz")) (sha256 (base32 - "1wji1z9jdkhnmm99apx6fhld9cs52rr56aigniyrcsmlwy52298b")))) + "0wzid419mlwqw9llrg8gsx4nkzhqy16m4m40r0xnh6cwscw5wir4")))) (build-system python-build-system) (arguments - ;; With Python 3.x, fails to build with a syntax error. - `(#:python ,python-2 - #:use-setuptools? #f ; still relies on distutils + `(#:use-setuptools? #f ; still relies on distutils #:tests? #f)) ; no 'python setup.py test' command (home-page "http://scons.org/") (synopsis "Software construction tool written in Python") @@ -1389,6 +1387,11 @@ (define-public scons software.") (license license:x11))) +(define-public scons-python2 + (package + (inherit (package-with-python2 scons)) + (name "scons-python2"))) + (define-public python-extras (package (name "python-extras") -- cgit v1.2.3 From 3d0aa7f70bed99fd04c7b2c2a8d7a4486e0a1364 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 31 Aug 2017 17:03:02 +0530 Subject: build-system: Add scons-build-system. * guix/build-system/scons.scm: New file. * guix/build/scons-build-system.scm: New file. * Makefile.am (MODULES): Register them. * doc/guix.texi (Build Systems): Add scons-build-system. --- Makefile.am | 3 + doc/guix.texi | 16 ++++- guix/build-system/scons.scm | 134 ++++++++++++++++++++++++++++++++++++++ guix/build/scons-build-system.scm | 65 ++++++++++++++++++ 4 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 guix/build-system/scons.scm create mode 100644 guix/build/scons-build-system.scm diff --git a/Makefile.am b/Makefile.am index eab49181ad..24a803a21a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,6 +8,7 @@ # Copyright © 2017 Leo Famulari # Copyright © 2017 Ricardo Wurmus # Copyright © 2017 Jan Nieuwenhuizen +# Copyright © 2017 Arun Isaac # # This file is part of GNU Guix. # @@ -94,6 +95,7 @@ MODULES = \ guix/build-system/waf.scm \ guix/build-system/r.scm \ guix/build-system/ruby.scm \ + guix/build-system/scons.scm \ guix/build-system/texlive.scm \ guix/build-system/trivial.scm \ guix/ftp-client.scm \ @@ -127,6 +129,7 @@ MODULES = \ guix/build/ocaml-build-system.scm \ guix/build/r-build-system.scm \ guix/build/ruby-build-system.scm \ + guix/build/scons-build-system.scm \ guix/build/texlive-build-system.scm \ guix/build/waf-build-system.scm \ guix/build/haskell-build-system.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index b20848da5e..88764437a6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -42,7 +42,8 @@ Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* -Copyright @copyright{} 2017 Andy Wingo +Copyright @copyright{} 2017 Andy Wingo@* +Copyright @copyright{} 2017 Arun Isaac Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -3868,6 +3869,19 @@ Python package is used to run the script can be specified with the @code{#:python} parameter. @end defvr +@defvr {Scheme Variable} scons-build-system +This variable is exported by @code{(guix build-system scons)}. It +implements the build procedure used by the SCons software construction +tool. This build system runs @code{scons} to build the package, +@code{scons test} to run tests, and then @code{scons install} to install +the package. + +Additional flags to be passed to @code{scons} can be specified with the +@code{#:scons-flags} parameter. The version of Python used to run SCons +can be specified by selecting the appropriate SCons package with the +@code{#:scons} parameter. +@end defvr + @defvr {Scheme Variable} haskell-build-system This variable is exported by @code{(guix build-system haskell)}. It implements the Cabal build procedure used by Haskell packages, which diff --git a/guix/build-system/scons.scm b/guix/build-system/scons.scm new file mode 100644 index 0000000000..da09cc7ded --- /dev/null +++ b/guix/build-system/scons.scm @@ -0,0 +1,134 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Arun Isaac +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system scons) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (ice-9 match) + #:export (%scons-build-system-modules + scons-build + scons-build-system)) + +;; Commentary: +;; +;; Standard build procedure for applications using SCons. This is implemented +;; as an extension of 'gnu-build-system'. +;; +;; Code: + +(define %scons-build-system-modules + ;; Build-side modules imported by default. + `((guix build scons-build-system) + ,@%gnu-build-system-modules)) + +(define (default-scons) + "Return the default SCons package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((python (resolve-interface '(gnu packages python)))) + (module-ref python 'scons))) + +(define* (lower name + #:key source inputs native-inputs outputs system target + (scons (default-scons)) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + '(#:source #:target #:scons #:inputs #:native-inputs)) + + (and (not target) ;XXX: no cross-compilation + (bag + (name name) + (system system) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (build-inputs `(("scons" ,scons) + ,@native-inputs)) + (outputs outputs) + (build scons-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define* (scons-build store name inputs + #:key + (tests? #t) + (scons-flags ''()) + (test-target "test") + (phases '(@ (guix build scons-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules %scons-build-system-modules) + (modules '((guix build scons-build-system) + (guix build utils)))) + "Build SOURCE using SCons, and with INPUTS. This assumes that SOURCE +provides a 'SConstruct' file as its build system." + (define builder + `(begin + (use-modules ,@modules) + (scons-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:scons-flags ,scons-flags + #:system ,system + #:test-target ,test-target + #:tests? ,tests? + #:phases ,phases + #:outputs %outputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:inputs %build-inputs))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system #:graft? #f))))) + + (build-expression->derivation store name builder + #:inputs inputs + #:system system + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + +(define scons-build-system + (build-system + (name 'scons) + (description "The standard SCons build system") + (lower lower))) + +;;; scons.scm ends here diff --git a/guix/build/scons-build-system.scm b/guix/build/scons-build-system.scm new file mode 100644 index 0000000000..a8760968d8 --- /dev/null +++ b/guix/build/scons-build-system.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Arun Isaac +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build scons-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:export (%standard-phases + scons-build)) + +;; Commentary: +;; +;; Builder-side code of the SCons build system. +;; +;; Code: + +(define* (build #:key outputs (scons-flags '()) (parallel-build? #t) #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p out) + (zero? (apply system* "scons" + (append (if parallel-build? + (list "-j" (number->string + (parallel-job-count))) + (list)) + scons-flags))))) + +(define* (check #:key tests? test-target (scons-flags '()) #:allow-other-keys) + "Run the test suite of a given SCons application." + (cond (tests? + (zero? (apply system* "scons" test-target scons-flags))) + (else + (format #t "test suite not run~%") + #t))) + +(define* (install #:key outputs (scons-flags '()) #:allow-other-keys) + "Install a given SCons application." + (zero? (apply system* "scons" "install" scons-flags))) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'configure) + (replace 'build build) + (replace 'check check) + (replace 'install install))) + +(define* (scons-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build a given SCons application, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; scons-build-system.scm ends here -- cgit v1.2.3 From 2b1a5ed854d3d373b960ef922eb71c52937263c0 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 31 Aug 2017 17:06:28 +0530 Subject: gnu: linuxdcpp: Use scons-build-system. * gnu/packages/direct-connect.scm (linuxdcpp): Switch to scons-build-system. --- gnu/packages/direct-connect.scm | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/gnu/packages/direct-connect.scm b/gnu/packages/direct-connect.scm index 6796bf3bc8..ac0a490520 100644 --- a/gnu/packages/direct-connect.scm +++ b/gnu/packages/direct-connect.scm @@ -17,7 +17,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages direct-connect) - #:use-module (guix build-system python) + #:use-module (guix build-system scons) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -44,23 +44,11 @@ (define-public linuxdcpp (sha256 (base32 "12i92hirmwryl1qy0n3jfrpziwzb82f61xca9jcjwyilx502f0b6")))) - (build-system python-build-system) + (build-system scons-build-system) (arguments - `(#:python ,python-2 - #:tests? #f ; no tests - #:phases - ;; TODO: Add scons-build-system and use it here. - (modify-phases %standard-phases - (delete 'configure) - (replace 'build - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p out) - (zero? (system* "scons" (string-append "PREFIX=" out) - "-j" (number->string (parallel-job-count))))))) - (replace 'install - (lambda _ - (zero? (system* "scons" "install"))))))) + `(#:scons ,scons-python2 + #:scons-flags (list (string-append "PREFIX=" %output)) + #:tests? #f)) ; no tests (inputs `(("boost" ,boost) ("bzip2" ,bzip2) @@ -71,8 +59,7 @@ (define-public linuxdcpp (native-inputs `(("bazaar" ,bazaar) ("gettext-minimal" ,gettext-minimal) - ("pkg-config" ,pkg-config) - ("scons" ,scons))) + ("pkg-config" ,pkg-config))) (home-page "https://launchpad.net/linuxdcpp/") (synopsis "Direct Connect client") (description "LinuxDC++ is a Direct Connect (DC) client. Direct Connect -- cgit v1.2.3 From 2235abb2a25e9ae15ab1e6cb213a54d097b758a2 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 31 Aug 2017 17:07:21 +0530 Subject: gnu: gpick: Use scons-build-system. * gnu/packages/image.scm (gpick): Switch to scons-build-system. --- gnu/packages/image.scm | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index b9f1ef2344..2bcfdf7e1a 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2016 Eric Bavier -;;; Copyright © 2016 Arun Isaac +;;; Copyright © 2016, 2017 Arun Isaac ;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Hartmut Goebel @@ -67,6 +67,7 @@ (define-module (gnu packages image) #:use-module (guix build-system cmake) #:use-module (guix build-system python) #:use-module (guix build-system r) + #:use-module (guix build-system scons) #:use-module (srfi srfi-1)) (define-public libpng @@ -1205,33 +1206,26 @@ (define-public gpick (sha256 (base32 "0mxvxk15xhk2i5vfavjhnkk4j3bnii0gpf8di14rlbpq070hd5rs")))) - (build-system python-build-system) + (build-system scons-build-system) (native-inputs `(("boost" ,boost) ("gettext" ,gnu-gettext) - ("pkg-config" ,pkg-config) - ("scons" ,scons))) + ("pkg-config" ,pkg-config))) (inputs `(("expat" ,expat) ("gtk2" ,gtk+-2) ("lua" ,lua-5.2))) (arguments `(#:tests? #f + #:scons ,scons-python2 + #:scons-flags (list (string-append "DESTDIR=" %output)) #:phases (modify-phases %standard-phases (add-before 'build 'fix-lua-reference (lambda _ (substitute* "SConscript" (("lua5.2") "lua-5.2")) - #t)) - (replace 'build - (lambda _ - (zero? (system* "scons")))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((dest (assoc-ref outputs "out"))) - (zero? (system* "scons" "install" - (string-append "DESTDIR=" dest))))))))) + #t))))) (home-page "http://www.gpick.org/") (synopsis "Color picker") (description "Gpick is an advanced color picker and palette editing tool.") -- cgit v1.2.3 From 82cc8253de717046eaf0938d4ccf08fafbb53404 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 31 Aug 2017 17:08:27 +0530 Subject: gnu: serf: Use scons-build-system. * gnu/packages/web.scm (serf): Switch to scons-build-system. --- gnu/packages/web.scm | 37 ++++++++++--------------------------- 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 33689042ab..eb3257362b 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -56,6 +56,7 @@ (define-module (gnu packages web) #:use-module (guix build-system trivial) #:use-module (guix build-system python) #:use-module (guix build-system ant) + #:use-module (guix build-system scons) #:use-module (gnu packages) #:use-module (gnu packages apr) #:use-module (gnu packages check) @@ -1068,10 +1069,7 @@ (define-public serf version ".tar.bz2")) (sha256 (base32 "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l")))) - (build-system gnu-build-system) - (native-inputs - `(("scons" ,scons) - ("python" ,python-2))) + (build-system scons-build-system) (propagated-inputs `(("apr" ,apr) ("apr-util" ,apr-util) @@ -1081,13 +1079,15 @@ (define-public serf ;;("gss" ,gss) ("zlib" ,zlib))) (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)) + `(#:scons ,scons-python2 + #:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr")) + (string-append "APU=" (assoc-ref %build-inputs "apr-util")) + (string-append "OPENSSL=" (assoc-ref %build-inputs "openssl")) + ;; (string-append "GSSAPI=" (assoc-ref %build-inputs "gss")) + (string-append "ZLIB=" (assoc-ref %build-inputs "zlib")) + (string-append "PREFIX=" %output)) #:phases - ;; TODO: Add scons-build-system and use it here. (modify-phases %standard-phases - (delete 'configure) (add-after 'unpack 'scons-propagate-environment (lambda _ ;; By design, SCons does not, by default, propagate @@ -1098,21 +1098,6 @@ (define-public serf (substitute* "SConstruct" (("^env = Environment\\(") "env = Environment(ENV=os.environ, ")))) - (replace 'build - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (apr (assoc-ref inputs "apr")) - (apr-util (assoc-ref inputs "apr-util")) - (openssl (assoc-ref inputs "openssl")) - ;;(gss (assoc-ref inputs "gss")) - (zlib (assoc-ref inputs "zlib"))) - (zero? (system* "scons" - (string-append "APR=" apr) - (string-append "APU=" apr-util) - (string-append "OPENSSL=" openssl) - ;;(string-append "GSSAPI=" gss) - (string-append "ZLIB=" zlib) - (string-append "PREFIX=" out)))))) (add-before 'check 'disable-broken-tests (lambda _ ;; These tests rely on SSL certificates that expired 2017-04-18. @@ -1139,9 +1124,7 @@ (define-public serf (substitute* "test/test_context.c" (((string-append "SUITE_ADD_TEST\\(suite, " test "\\);")) ""))) broken-tests) - #t))) - (replace 'check (lambda _ (zero? (system* "scons" "check")))) - (replace 'install (lambda _ (zero? (system* "scons" "install"))))))) + #t)))))) (home-page "https://serf.apache.org/") (synopsis "High-performance asynchronous HTTP client library") (description -- cgit v1.2.3 From 9364a520ce617424b7548f3688787a66b89d6a05 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 17 Nov 2017 13:20:21 +0530 Subject: gnu: metabat: Use scons-build-system. * gnu/packages/bioinformatics.scm (metabat): Switch to scons-build-system. --- gnu/packages/bioinformatics.scm | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 4036286ac7..59eedb1e12 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2016 Raoul Bonnal ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,6 +40,7 @@ (define-module (gnu packages bioinformatics) #:use-module (guix build-system python) #:use-module (guix build-system r) #:use-module (guix build-system ruby) + #:use-module (guix build-system scons) #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages autotools) @@ -3643,9 +3645,14 @@ (define-public metabat (base32 "1hmvdalz3zj5sqqklg0l4npjdv37cv2hsdi1al9iby2ndxjs1b73")) (patches (search-patches "metabat-fix-compilation.patch")))) - (build-system gnu-build-system) + (build-system scons-build-system) (arguments - `(#:phases + `(#:scons ,scons-python2 + #:scons-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "BOOST_ROOT=" (assoc-ref %build-inputs "boost"))) + #:tests? #f ;; Tests are run during the build phase. + #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-includes (lambda _ @@ -3675,30 +3682,13 @@ (define-public metabat "/lib'")) ;; Do not distribute README. (("^env\\.Install\\(idir_prefix, 'README\\.md'\\)") "")) - #t)) - (delete 'configure) - (replace 'build - (lambda* (#:key inputs outputs #:allow-other-keys) - (mkdir (assoc-ref outputs "out")) - (zero? (system* "scons" - (string-append - "PREFIX=" - (assoc-ref outputs "out")) - (string-append - "BOOST_ROOT=" - (assoc-ref inputs "boost")) - "install")))) - ;; Check and install are carried out during build phase. - (delete 'check) - (delete 'install)))) + #t))))) (inputs `(("zlib" ,zlib) ("perl" ,perl) ("samtools" ,samtools) ("htslib" ,htslib) ("boost" ,boost))) - (native-inputs - `(("scons" ,scons))) (home-page "https://bitbucket.org/berkeleylab/metabat") (synopsis "Reconstruction of single genomes from complex microbial communities") -- cgit v1.2.3 From 92b51d127fa66a9f6cb59a2a295518c3487d705c Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 17 Nov 2017 14:47:46 +0530 Subject: gnu: godot: Use scons-build-system. * gnu/packages/game-development.scm (godot): Switch to scons-build-system. --- gnu/packages/game-development.scm | 45 +++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index be241cbd31..3c544f5546 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -37,6 +37,7 @@ (define-module (gnu packages game-development) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system python) + #:use-module (guix build-system scons) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages boost) @@ -1063,12 +1064,26 @@ (define-public godot (file-name (string-append name "-" version)) (sha256 (base32 "1mz89nafc1m7srbqvy7iagxrxmqvf5hbqi7i0lwaapkx6q0kpkq7")))) - (build-system gnu-build-system) + (build-system scons-build-system) (arguments - `(#:tests? #f ; There are no tests + `(#:scons ,scons-python2 + #:scons-flags (list "platform=x11" + ;; Avoid using many of the bundled libs. + ;; Note: These options can be found in the SConstruct file. + "builtin_freetype=no" + "builtin_glew=no" + "builtin_libmpdec=no" + "builtin_libogg=no" + "builtin_libpng=no" + "builtin_libtheora=no" + "builtin_libvorbis=no" + "builtin_libwebp=no" + "builtin_openssl=no" + "builtin_opus=no" + "builtin_zlib=no") + #:tests? #f ; There are no tests #:phases (modify-phases %standard-phases - (delete 'configure) (add-after 'unpack 'scons-use-env (lambda _ ;; Scons does not use the environment variables by default, @@ -1079,24 +1094,6 @@ (define-public godot "env_base = Environment(tools=custom_tools)\n" "env_base = Environment(ENV=os.environ)"))) #t)) - (replace 'build - (lambda _ - (zero? (system* - "scons" - "platform=x11" - ;; Avoid using many of the bundled libs. - ;; Note: These options can be found in the SConstruct file. - "builtin_freetype=no" - "builtin_glew=no" - "builtin_libmpdec=no" - "builtin_libogg=no" - "builtin_libpng=no" - "builtin_libtheora=no" - "builtin_libvorbis=no" - "builtin_libwebp=no" - "builtin_openssl=no" - "builtin_opus=no" - "builtin_zlib=no")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -1128,8 +1125,7 @@ (define-public godot Type=Application~%" out))) #t)))))) - (native-inputs `(("pkg-config" ,pkg-config) - ("scons" ,scons))) + (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("alsa-lib" ,alsa-lib) ("freetype" ,freetype) ("glew" ,glew) @@ -1144,8 +1140,7 @@ (define-public godot ("mesa" ,mesa) ("openssl" ,openssl) ("opusfile" ,opusfile) - ("pulseaudio" ,pulseaudio) - ("python2" ,python-2))) + ("pulseaudio" ,pulseaudio))) (home-page "https://godotengine.org/") (synopsis "Advanced 2D and 3D game engine") (description -- cgit v1.2.3 From 3f3f8f494e97cea5c9c408fcd4051302a7b7eebe Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 17 Nov 2017 14:51:23 +0530 Subject: gnu: pingus: Use scons-build-system. * gnu/packages/games.scm (pingus): Switch to scons-build-system. --- gnu/packages/games.scm | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 565c0e8229..a699fadc2a 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -808,7 +808,7 @@ (define-public pingus (patches (search-patches "pingus-sdl-libs-config.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) - ("scons" ,scons))) + ("scons-python2" ,scons-python2))) (inputs `(("sdl" ,sdl) ("sdl-image" ,sdl-image) ("sdl-mixer" ,sdl-mixer) @@ -817,15 +817,11 @@ (define-public pingus ("libpng" ,libpng) ("boost" ,boost))) (arguments - '(#:tests? #f ; no check target + '(#:make-flags (list (string-append "PREFIX=" %output)) + #:tests? #f ; no check target #:phases (modify-phases %standard-phases - (delete 'configure) ; no configure script - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (zero? (system* "make" "install" - (string-append "PREFIX=" - (assoc-ref outputs "out"))))))))) + (delete 'configure)))) ; no configure script (home-page "http://pingus.seul.org/welcome.html") (synopsis "Lemmings clone") (description -- cgit v1.2.3 From bc27eb3b56bbe251b32b810d3d899951e61b476a Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 17 Nov 2017 14:54:15 +0530 Subject: gnu: klick: Use scons-build-system. * gnu/packages/music.scm (klick): Switch to scons-build-system. --- gnu/packages/music.scm | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 40eab5ba68..9055f6613c 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2017 Rodger Fox ;;; Copyright © 2017 Nicolas Goaziou ;;; Copyright © 2017 Pierre Langlois +;;; Copyright © 2017 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,6 +39,7 @@ (define-module (gnu packages music) #:use-module (guix build-system ant) #:use-module (guix build-system cmake) #:use-module (guix build-system python) + #:use-module (guix build-system scons) #:use-module (guix build-system waf) #:use-module (gnu packages) #:use-module (gnu packages algebra) @@ -508,19 +510,10 @@ (define-public klick (sha256 (base32 "0hmcaywnwzjci3pp4xpvbijnnwvibz7gf9xzcdjbdca910y5728j")))) - (build-system gnu-build-system) + (build-system scons-build-system) (arguments - `(#:tests? #f ;no "check" target - #:phases - ;; TODO: Add scons-build-system and use it here. - (modify-phases %standard-phases - (delete 'configure) - (replace 'build - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p out) - (zero? (system* "scons" (string-append "PREFIX=" out)))))) - (replace 'install (lambda _ (zero? (system* "scons" "install"))))))) + `(#:scons-flags (list (string-append "PREFIX=" %output)) + #:tests? #f)) ;no "check" target (inputs `(("boost" ,boost) ("jack" ,jack-1) @@ -529,9 +522,7 @@ (define-public klick ("liblo" ,liblo) ("rubberband" ,rubberband))) (native-inputs - `(("scons" ,scons) - ("python" ,python-2) - ("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config))) (home-page "http://das.nasophon.de/klick/") (synopsis "Metronome for JACK") (description -- cgit v1.2.3 From 6e385b76e666bdf26fe4eebaffa93e48c123e5ef Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 22 Nov 2017 10:36:59 +0530 Subject: gnu: mongodb: Use scons-build-system. * gnu/packages/databases.scm (mongodb): Switch to scons-build-system. --- gnu/packages/databases.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index ab4d17479c..56749320b3 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -98,6 +98,7 @@ (define-module (gnu packages databases) #:use-module (guix build-system ruby) #:use-module (guix build-system cmake) #:use-module (guix build-system r) + #:use-module (guix build-system scons) #:use-module ((guix build utils) #:hide (which)) #:use-module (guix utils) #:use-module (srfi srfi-1) @@ -398,7 +399,7 @@ (define-public mongodb (patches (list (search-patch "mongodb-support-unknown-linux-distributions.patch"))))) - (build-system gnu-build-system) + (build-system scons-build-system) (inputs `(("openssl" ,openssl) ("pcre" ,pcre) @@ -410,12 +411,11 @@ (define-public mongodb ("zlib" ,zlib) ("snappy" ,snappy))) (native-inputs - `(("scons" ,scons) - ("python" ,python-2) - ("valgrind" ,valgrind) + `(("valgrind" ,valgrind) ("perl" ,perl))) (arguments - `(#:phases + `(#:scons ,scons-python2 + #:phases (let ((common-options `(;; "--use-system-tcmalloc" TODO: Missing gperftools "--use-system-pcre" @@ -437,7 +437,6 @@ (define-public mongodb ,(format #f "--jobs=~a" (parallel-job-count)) "--ssl"))) (modify-phases %standard-phases - (delete 'configure) ; There is no configure phase (add-after 'unpack 'scons-propagate-environment (lambda _ ;; Modify the SConstruct file to arrange for -- cgit v1.2.3 From cdc129dc53b1c04e9a6577f7d2b9641a0a03c32f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 14:58:01 +0100 Subject: gnu: Add r-psych. * gnu/packages/cran.scm (r-psych): New variable. --- gnu/packages/cran.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 4de3066834..a8de21ed76 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1208,6 +1208,40 @@ (define-public r-ipred problems as well as resampling based estimators of prediction error.") (license license:gpl2+))) +(define-public r-psych + (package + (name "r-psych") + (version "1.7.8") + (source + (origin + (method url-fetch) + (uri (cran-uri "psych" version)) + (sha256 + (base32 + "0daismb8pdk392vdy304hqx0m3jx62gx3a0hygjygc125rhfla7k")))) + (build-system r-build-system) + (propagated-inputs + `(("r-foreign" ,r-foreign) + ("r-lattice" ,r-lattice) + ("r-mnormt" ,r-mnormt) + ("r-nlme" ,r-nlme))) + (home-page "http://cran.r-project.org/web/packages/psych/") + (synopsis "Procedures for psychological, psychometric, and personality research") + (description + "This package provides a general purpose toolbox for personality, +psychometric theory and experimental psychology. Functions are primarily for +multivariate analysis and scale construction using factor analysis, principal +component analysis, cluster analysis and reliability analysis, although others +provide basic descriptive statistics. Item Response Theory is done using +factor analysis of tetrachoric and polychoric correlations. Functions for +analyzing data at multiple levels include within and between group statistics, +including correlations and factor analysis. Functions for simulating and +testing particular item and test structures are included. Several functions +serve as a useful front end for structural equation modeling. Graphical +displays of path diagrams, factor analysis and structural equation models are +created using basic graphics.") + (license license:gpl2+))) + (define-public r-recipes (package (name "r-recipes") -- cgit v1.2.3 From 6c8c8c6b759cd64382c7ede2aff8580bcbfb9f95 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 14:58:38 +0100 Subject: gnu: Add r-broom. * gnu/packages/cran.scm (r-broom): New variable. --- gnu/packages/cran.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index a8de21ed76..0e1a45af46 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1242,6 +1242,39 @@ (define-public r-psych created using basic graphics.") (license license:gpl2+))) +(define-public r-broom + (package + (name "r-broom") + (version "0.4.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "broom" version)) + (sha256 + (base32 + "119pc2jnxvm13cvd77c7d14p3bn68f4jm310vj3yfck40101n9if")))) + (build-system r-build-system) + (propagated-inputs + `(("r-dplyr" ,r-dplyr) + ("r-nlme" ,r-nlme) + ("r-plyr" ,r-plyr) + ("r-psych" ,r-psych) + ("r-reshape2" ,r-reshape2) + ("r-stringr" ,r-stringr) + ("r-tidyr" ,r-tidyr))) + (home-page "http://github.com/tidyverse/broom") + (synopsis "Convert statistical analysis objects into tidy data frames") + (description + "This package provides tools to convert statistical analysis objects from +R into tidy data frames, so that they can more easily be combined, reshaped +and otherwise processed with tools like @code{dplyr}, @code{tidyr} and +@code{ggplot2}. The package provides three S3 generics: @code{tidy}, which +summarizes a model's statistical findings such as coefficients of a +regression; @code{augment}, which adds columns to the original data such as +predictions, residuals and cluster assignments; and @code{glance}, which +provides a one-row summary of model-level statistics.") + (license license:expat))) + (define-public r-recipes (package (name "r-recipes") -- cgit v1.2.3 From 18a11c6d6204fb7a4ed719f96bbd2308a18777d1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 14:58:53 +0100 Subject: gnu: r-recipes: Update to 0.1.1. * gnu/packages/cran.scm (r-recipes): Update to 0.1.1. [propagated-inputs]: Add r-broom and r-matrix. --- gnu/packages/cran.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 0e1a45af46..fb27395095 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1278,23 +1278,25 @@ (define-public r-broom (define-public r-recipes (package (name "r-recipes") - (version "0.1.0") + (version "0.1.1") (source (origin (method url-fetch) (uri (cran-uri "recipes" version)) (sha256 (base32 - "0rydk403qihxmcv3zz323r3ywk4g1v7ibvj452rxhm0z22sqk9kb")))) + "0id46c7iaf49miw4kxpidsbg3hdywav43n1lh2zd1vg5946bzg04")))) (build-system r-build-system) (propagated-inputs - `(("r-ddalpha" ,r-ddalpha) + `(("r-broom" ,r-broom) + ("r-ddalpha" ,r-ddalpha) ("r-dimred" ,r-dimred) ("r-dplyr" ,r-dplyr) ("r-gower" ,r-gower) ("r-ipred" ,r-ipred) ("r-lubridate" ,r-lubridate) ("r-magrittr" ,r-magrittr) + ("r-matrix" ,r-matrix) ("r-purrr" ,r-purrr) ("r-rcpproll" ,r-rcpproll) ("r-rlang" ,r-rlang) -- cgit v1.2.3 From 6c84c735a5bf6b4d046f625cfffbe8fb5daae2e3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 15:00:31 +0100 Subject: gnu: r-dendextend: Update to 1.6.0. * gnu/packages/cran.scm (r-dendextend): Update to 1.6.0. --- gnu/packages/cran.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index fb27395095..46a85ca259 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -320,14 +320,14 @@ (define-public r-compare (define-public r-dendextend (package (name "r-dendextend") - (version "1.5.2") + (version "1.6.0") (source (origin (method url-fetch) (uri (cran-uri "dendextend" version)) (sha256 (base32 - "04jz58apibfrkjcrdmw2hmsav6qpb5cs6qdai81k1v1iznfcya42")))) + "0pichh08zi12lpxzc061dmv4smj6lizygd1xymln8wfz18sf7923")))) (build-system r-build-system) (propagated-inputs `(("r-fpc" ,r-fpc) -- cgit v1.2.3 From 09c0107f75fb412e7f6496be600d7fc4263d6afe Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:38:48 +0100 Subject: gnu: r-hms: Update to 0.4.0. * gnu/packages/statistics.scm (r-hms): Update to 0.4.0. [propagated-inputs]: Add r-rlang and r-pkgconfig. --- gnu/packages/statistics.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 99fa03e7b9..4222ee2228 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2367,15 +2367,18 @@ (define-public r-withr (define-public r-hms (package (name "r-hms") - (version "0.3") + (version "0.4.0") (source (origin (method url-fetch) (uri (cran-uri "hms" version)) (sha256 (base32 - "127znf522r5mn3k6frhdd7pqh063bs3l85gn9h7cx50hpjf2as4k")))) + "07sh75flp15lx2b00s3nxh04xr9gk4qhlbh125qx25isf71zw6zl")))) (build-system r-build-system) + (propagated-inputs + `(("r-rlang" ,r-rlang) + ("r-pkgconfig" ,r-pkgconfig))) (home-page "https://github.com/rstats-db/hms") (synopsis "Pretty time of day") (description -- cgit v1.2.3 From b796f9e6be896cd2c194fb57912fcbc6e229a270 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:39:29 +0100 Subject: gnu: r-openssl: Update to 0.9.9. * gnu/packages/statistics.scm (r-openssl): Update to 0.9.9. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 4222ee2228..5c4c81a92a 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2221,14 +2221,14 @@ (define-public r-roxygen2 (define-public r-openssl (package (name "r-openssl") - (version "0.9.8") + (version "0.9.9") (source (origin (method url-fetch) (uri (cran-uri "openssl" version)) (sha256 (base32 - "0wm7pkm5yfsxmpyr8n0pvj1398wqg5gzp5clqrg5nb2mflxv2nlc")))) + "1ir7ggs0rxgn83h40r6jg9dzhb7hbcwhkcj5nsdzj7jz61sfgv77")))) (build-system r-build-system) (inputs `(("libressl" ,libressl))) -- cgit v1.2.3 From c8fb59350234f5bc5c9ab016bd769720a667c69d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:49:03 +0100 Subject: gnu: r-sn: Update to 1.5-1. * gnu/packages/statistics.scm (r-sn): Update to 1.5-1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 5c4c81a92a..e65708bf30 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -5214,14 +5214,14 @@ (define-public r-numderiv (define-public r-sn (package (name "r-sn") - (version "1.5-0") + (version "1.5-1") (source (origin (method url-fetch) (uri (cran-uri "sn" version)) (sha256 (base32 - "0fh7xjsfd2x8d9lbnss7raldh24b72b3pvcv7zqa1qprzg7zfr01")))) + "0l7qlah6dwkp8jswnr2mn3phlm15naba5zkmv0g5pcqy5ix0gz7w")))) (build-system r-build-system) (propagated-inputs `(("r-mnormt" ,r-mnormt) -- cgit v1.2.3 From a0a3184925b22a0a6626f785b9ee780afc17abdb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:49:21 +0100 Subject: gnu: r-car: Update to 2.1-6. * gnu/packages/statistics.scm (r-car): Update to 2.1-6. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index e65708bf30..c1363f4373 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -5094,14 +5094,14 @@ (define-public r-pbkrtest (define-public r-car (package (name "r-car") - (version "2.1-5") + (version "2.1-6") (source (origin (method url-fetch) (uri (cran-uri "car" version)) (sha256 (base32 - "1bm0ks9ga60z3izgq0d4kvirr9v4yf1820d1wznkihnbb55bc3m6")))) + "14l4d9j87xnb0bz2wgqqbxnlnbcdfb5vx2fw6kdxj91kyrk6lhnj")))) (build-system r-build-system) (propagated-inputs `(("r-mass" ,r-mass) -- cgit v1.2.3 From 6d4aed8d98952625adda7e6da39508f292ca00b8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:49:38 +0100 Subject: gnu: r-rcppeigen: Update to 0.3.3.3.1. * gnu/packages/statistics.scm (r-rcppeigen): Update to 0.3.3.3.1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index c1363f4373..11cf820fd2 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -4916,14 +4916,14 @@ (define-public r-minqa (define-public r-rcppeigen (package (name "r-rcppeigen") - (version "0.3.3.3.0") + (version "0.3.3.3.1") (source (origin (method url-fetch) (uri (cran-uri "RcppEigen" version)) (sha256 (base32 - "0zz9v0f8nnlvhhqv91lkyfblvjnmav84l89mr6vmbqjc2hzqd3n8")))) + "093g2wmqyk86693l0lzh2va8119w3k7rvw5q24p842jdfv5x5z8l")))) (properties `((upstream-name . "RcppEigen"))) (build-system r-build-system) (propagated-inputs -- cgit v1.2.3 From 20b0f8a5ec9bed596201e77069178c7a1a69a91b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:50:00 +0100 Subject: gnu: r-mclust: Update to 5.4. * gnu/packages/statistics.scm (r-mclust): Update to 5.4. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 11cf820fd2..6c34f67a75 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -4574,14 +4574,14 @@ (define-public r-flexmix (define-public r-mclust (package (name "r-mclust") - (version "5.3") + (version "5.4") (source (origin (method url-fetch) (uri (cran-uri "mclust" version)) (sha256 (base32 - "0h5syvpg3azrz5d10z2afilaa27jb4azi38idzlv05mfcs16s6rb")))) + "1i3v1q8qq0al3ifvjhcvxfsg68cx9mq8jz67jwmiqai78mw0aqvk")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) -- cgit v1.2.3 From 3e11bddcc716ea7cd5a1c7df79014597a24011cc Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:50:20 +0100 Subject: gnu: r-devtools: Update to 1.13.4. * gnu/packages/statistics.scm (r-devtools): Update to 1.13.4. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 6c34f67a75..a38dae096d 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2320,13 +2320,13 @@ (define-public r-rstudioapi (define-public r-devtools (package (name "r-devtools") - (version "1.13.3") + (version "1.13.4") (source (origin (method url-fetch) (uri (cran-uri "devtools" version)) (sha256 (base32 - "146wb09cmfh10vhn1ps2nmzx104zldb3nj9qv2ic0gbcikbbryp6")))) + "1az1qf50vyhm4w6k2a6wqw3pqc8jv2iqzdhs36cg079hx9swm0mb")))) (build-system r-build-system) (propagated-inputs `(("r-digest" ,r-digest) -- cgit v1.2.3 From 87313f64d92274d5308e47261b69f80b527270fa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:50:35 +0100 Subject: gnu: r-stringi: Update to 1.1.6. * gnu/packages/statistics.scm (r-stringi): Update to 1.1.6. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index a38dae096d..f2ee16f30e 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -937,14 +937,14 @@ (define-public r-sendmailr (define-public r-stringi (package (name "r-stringi") - (version "1.1.5") + (version "1.1.6") (source (origin (method url-fetch) (uri (cran-uri "stringi" version)) (sha256 (base32 - "1wh20is24lmzhcd9487ckv7r19009fyz4is3ianp3ky69vy8a7k5")))) + "122im5m8x9bqpahc0hbxmvdq6hnsmgnxwwyjpvbihyv2jq5kd44m")))) (build-system r-build-system) (inputs `(("icu4c" ,icu4c))) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 26007cd5eee57fa109dfb9199757828514932c42 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:51:03 +0100 Subject: gnu: r-timedate: Update to 3042.101. * gnu/packages/cran.scm (r-timedate): Update to 3042.101. --- gnu/packages/cran.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 46a85ca259..653aad6c8b 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1084,14 +1084,14 @@ (define-public r-dimred (define-public r-timedate (package (name "r-timedate") - (version "3012.100") + (version "3042.101") (source (origin (method url-fetch) (uri (cran-uri "timeDate" version)) (sha256 (base32 - "0cn4h23y2y2bbg62qgm79xx4cvfla5xbpmi9hbdvkvpmm5yfyqk2")))) + "0vcckaw1gqz3j4v69r9jn41vlmk5a5c7572xam1nl75ki5v4r3bc")))) (properties `((upstream-name . "timeDate"))) (build-system r-build-system) (home-page "https://www.rmetrics.org") -- cgit v1.2.3 From d76f987c420016103c1552acded60497b16023fb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:51:20 +0100 Subject: gnu: r-rcpp: Update to 0.12.14. * gnu/packages/cran.scm (r-rcpp): Update to 0.12.14. --- gnu/packages/cran.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 653aad6c8b..c928a0aa3c 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -94,13 +94,13 @@ (define-public r-plogr (define-public r-rcpp (package (name "r-rcpp") - (version "0.12.13") + (version "0.12.14") (source (origin (method url-fetch) (uri (cran-uri "Rcpp" version)) (sha256 - (base32 "1bm84yc48475plgsnnbvzi6nzkixpnfw8ry86ax63f9g524asw55")))) + (base32 "0qvyxggddyg87lza45hjl0a2prabdyshkqzkz418vi777zygqa6s")))) (build-system r-build-system) (home-page "http://www.rcpp.org") (synopsis "Seamless R and C++ integration") -- cgit v1.2.3 From 814fd32670522dcf6f0fffcfbdf179a9c4320afa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:51:38 +0100 Subject: gnu: r-circlize: Update to 0.4.2. * gnu/packages/cran.scm (r-circlize): Update to 0.4.2. --- gnu/packages/cran.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index c928a0aa3c..11d30815cf 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -244,14 +244,14 @@ (define-public r-globaloptions (define-public r-circlize (package (name "r-circlize") - (version "0.4.1") + (version "0.4.2") (source (origin (method url-fetch) (uri (cran-uri "circlize" version)) (sha256 (base32 - "1w7i3jgxgq510axglzmw54ma9kq7k4c86i9ccndz10mrwc51fji0")))) + "0py82f5v25mi0s4626zbl5br1frdrj3diz2dakar1rz5yn956mdi")))) (build-system r-build-system) (propagated-inputs `(("r-colorspace" ,r-colorspace) -- cgit v1.2.3 From 654c29acebcf158c5b1031b0abdebb2e94517fa1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:52:17 +0100 Subject: gnu: r-annotate: Update to 1.56.1. * gnu/packages/bioinformatics.scm (r-annotate): Update to 1.56.1. --- 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 59eedb1e12..8a735fe92d 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -5875,14 +5875,14 @@ (define-public r-vegan (define-public r-annotate (package (name "r-annotate") - (version "1.56.0") + (version "1.56.1") (source (origin (method url-fetch) (uri (bioconductor-uri "annotate" version)) (sha256 (base32 - "0wlrp3v2jxw9is98ap39dfi7z97kmw1wv1xi4h7yfh12zpj2r8l0")))) + "14c5xd9kasvcwg5gbjys2c1vizxhlqlzxakqc2kml0kw97hmx0rq")))) (build-system r-build-system) (propagated-inputs `(("r-annotationdbi" ,r-annotationdbi) -- cgit v1.2.3 From 058644c0f2dff63f070307001492466646eedc64 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:52:32 +0100 Subject: gnu: r-deseq2: Update to 1.18.1. * gnu/packages/bioinformatics.scm (r-deseq2): Update to 1.18.1. --- 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 8a735fe92d..3df051e127 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -5977,14 +5977,14 @@ (define-public r-genefilter (define-public r-deseq2 (package (name "r-deseq2") - (version "1.18.0") + (version "1.18.1") (source (origin (method url-fetch) (uri (bioconductor-uri "DESeq2" version)) (sha256 (base32 - "1hcxnkkjfvz4hj8iqidshwsjq7jnl1z7wj63dvcwlx1zx5aichyh")))) + "1iyimg1s0x5pdmvl8x08s8h0v019y0nhjzs50chagbpk2x91fsmv")))) (properties `((upstream-name . "DESeq2"))) (build-system r-build-system) (propagated-inputs -- cgit v1.2.3 From d259932ca8b07c23dcdcc96c4cfc3a2a9c2d056b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:52:46 +0100 Subject: gnu: r-dexseq: Update to 1.24.1. * gnu/packages/bioinformatics.scm (r-dexseq): Update to 1.24.1. --- 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 3df051e127..9b391347cc 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -6014,14 +6014,14 @@ (define-public r-deseq2 (define-public r-dexseq (package (name "r-dexseq") - (version "1.24.0") + (version "1.24.1") (source (origin (method url-fetch) (uri (bioconductor-uri "DEXSeq" version)) (sha256 (base32 - "0qxwnz2ffhav9slcn095k206cfza9i3i5l7w1154plf08gpy1d1d")))) + "1hwckj4ijgpdchbakvh60nmcaz4fwd5yplhn0880z3dnlsrp8ik3")))) (properties `((upstream-name . "DEXSeq"))) (build-system r-build-system) (propagated-inputs -- cgit v1.2.3 From 4220ab0c8196ff33186b5391df8215403e11d9ba Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:53:01 +0100 Subject: gnu: r-gseabase: Update to 1.40.1. * gnu/packages/bioinformatics.scm (r-gseabase): Update to 1.40.1. --- 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 9b391347cc..96b22e4d32 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -6108,14 +6108,14 @@ (define-public r-rbgl (define-public r-gseabase (package (name "r-gseabase") - (version "1.40.0") + (version "1.40.1") (source (origin (method url-fetch) (uri (bioconductor-uri "GSEABase" version)) (sha256 (base32 - "0kpkl6c5lrar6ip7wlhvd5axqlb9lb5l3lgbdb3dlih32c3nz0yq")))) + "10cmjxahg2plwacfan6g0k8cwyzya96ypc7m1r79gwqkyykxw5fz")))) (properties `((upstream-name . "GSEABase"))) (build-system r-build-system) (propagated-inputs -- cgit v1.2.3 From d2081a17ed42f1bbae6682d944f4fbfb42ca2432 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:53:14 +0100 Subject: gnu: r-getopt: Update to 1.20.1. * gnu/packages/bioinformatics.scm (r-getopt): Update to 1.20.1. --- 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 96b22e4d32..56134e1532 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -6763,14 +6763,14 @@ (define-public r-bioccheck (define-public r-getopt (package (name "r-getopt") - (version "1.20.0") + (version "1.20.1") (source (origin (method url-fetch) (uri (cran-uri "getopt" version)) (sha256 (base32 - "00f57vgnzmg7cz80rjmjz1556xqcmx8nhrlbbhaq4w7gl2ibl87r")))) + "0m463mcvixh54i3ng42n0vxmdlf97dgbfs2sf9wnjm782ddw68hm")))) (build-system r-build-system) (home-page "https://github.com/trevorld/getopt") (synopsis "Command-line option processor for R") -- cgit v1.2.3 From 8131cf41621895796a64c3dfc053149209a44ca5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:53:26 +0100 Subject: gnu: r-variantannotation: Update to 1.24.2. * gnu/packages/bioinformatics.scm (r-variantannotation): Update to 1.24.2. --- 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 56134e1532..db7538c6dc 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -6990,13 +6990,13 @@ (define-public r-edger (define-public r-variantannotation (package (name "r-variantannotation") - (version "1.24.0") + (version "1.24.2") (source (origin (method url-fetch) (uri (bioconductor-uri "VariantAnnotation" version)) (sha256 (base32 - "1lllp2vgyfbrar1yg28ji7am470hfzrzxm1bgdk68xpnrwcgcl25")))) + "19wgb2kcqy97pm3xgqc781id9fbmzp1hdwzkkhdzpvyf29w4n29j")))) (properties `((upstream-name . "VariantAnnotation"))) (inputs -- cgit v1.2.3 From 1ce5d32b49d7cee2f16e3f95f9b9965cd691c4bc Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:53:47 +0100 Subject: gnu: r-limma: Update to 3.34.2. * gnu/packages/bioinformatics.scm (r-limma): Update to 3.34.2. --- 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 db7538c6dc..03ea817151 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7028,13 +7028,13 @@ (define-public r-variantannotation (define-public r-limma (package (name "r-limma") - (version "3.34.0") + (version "3.34.2") (source (origin (method url-fetch) (uri (bioconductor-uri "limma" version)) (sha256 (base32 - "0a15gsaky0hfrkx8wrrmp0labzxpq6m2hrd33zl206wyas8bqzcs")))) + "1zyw01z9crm1jc86fva4pqxd9zxfsbsqwjq6ry39gag9pfb7pwcz")))) (build-system r-build-system) (home-page "http://bioinf.wehi.edu.au/limma") (synopsis "Package for linear models for microarray and RNA-seq data") -- cgit v1.2.3 From 06e8e0fc6c07aae4e5761f45653fb4e758214a95 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:54:22 +0100 Subject: gnu: r-genomicalignments: Update to 1.14.1. * gnu/packages/bioinformatics.scm (r-genomicalignments): Update to 1.14.1. --- 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 03ea817151..376dbbe772 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7349,13 +7349,13 @@ (define-public r-summarizedexperiment (define-public r-genomicalignments (package (name "r-genomicalignments") - (version "1.14.0") + (version "1.14.1") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicAlignments" version)) (sha256 (base32 - "0sw30lj11wv7ifzypqm04lcah987crqwvj48wz3flaw3biw41zfi")))) + "033p6fw46sn7w2yyn14nb9qcnkf30cl0nv6zh014ixflm3iifz39")))) (properties `((upstream-name . "GenomicAlignments"))) (build-system r-build-system) -- cgit v1.2.3 From 439492654bc39954745ffd444375bcf608db30c4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:54:42 +0100 Subject: gnu: r-maldiquant: Update to 1.17. * gnu/packages/bioinformatics.scm (r-maldiquant): Update to 1.17. --- 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 376dbbe772..6ba65f330a 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9068,14 +9068,14 @@ (define-public r-raremetals2 (define-public r-maldiquant (package (name "r-maldiquant") - (version "1.16.4") + (version "1.17") (source (origin (method url-fetch) (uri (cran-uri "MALDIquant" version)) (sha256 (base32 - "1pmhsfvd45a44xdiml4zx3zd5fhygqyziqvygahkk9yibnyhv4cv")))) + "047s6007ydc38x8wm027mlb4mngz15n0d4238fr8h43wyll5zy0z")))) (properties `((upstream-name . "MALDIquant"))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/MALDIquant") -- cgit v1.2.3 From 87e91a9fffd47ee32cc2aa02f0117fe9cedfb05d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:54:55 +0100 Subject: gnu: r-msnid: Update to 1.12.1. * gnu/packages/bioinformatics.scm (r-msnid): Update to 1.12.1. --- 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 6ba65f330a..053029a21e 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9349,14 +9349,14 @@ (define-public r-msnbase (define-public r-msnid (package (name "r-msnid") - (version "1.11.0") + (version "1.12.1") (source (origin (method url-fetch) (uri (bioconductor-uri "MSnID" version)) (sha256 (base32 - "1vi4ngwbayrv2jkfb4pbmdp37xn04y07rh1jcklqfh0fcrm1jdig")))) + "1zw508kk4f8brg69674wp18gqkpx2kpya5f6x9cl3qng7v4h5pxx")))) (properties `((upstream-name . "MSnID"))) (build-system r-build-system) (propagated-inputs -- cgit v1.2.3 From 9b8d02011fd5a5b1350cfc6f986a83f53e1b3090 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:55:12 +0100 Subject: gnu: r-annotationhub: Update to 2.10.1. * gnu/packages/bioinformatics.scm (r-annotationhub): Update to 2.10.1. --- 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 053029a21e..03054c91d1 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9587,14 +9587,14 @@ (define-public r-interactivedisplaybase (define-public r-annotationhub (package (name "r-annotationhub") - (version "2.10.0") + (version "2.10.1") (source (origin (method url-fetch) (uri (bioconductor-uri "AnnotationHub" version)) (sha256 (base32 - "1arfka3czw8hkv6n2d85bgibq81s2rgkwhmpaxzhy6nw39vv7y8b")))) + "14v8g44a6zg9j2rwn9x9y8509k0wr2cw8yccliz24glplb40wva4")))) (properties `((upstream-name . "AnnotationHub"))) (build-system r-build-system) (propagated-inputs -- cgit v1.2.3 From 05fd8e6b467866a47cf15dea2b6194338bba7157 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:55:34 +0100 Subject: gnu: r-pracma: Update to 2.1.1. * gnu/packages/maths.scm (r-pracma): Update to 2.1.1. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 5d158dfa50..620c3a91e2 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1893,12 +1893,12 @@ (define-public r-quadprog (define-public r-pracma (package (name "r-pracma") - (version "2.0.7") + (version "2.1.1") (source (origin (method url-fetch) (uri (cran-uri "pracma" version)) (sha256 - (base32 "0hxa0rbbp54j0c05qj7vfwhqfdmiz5ax8vhqxd09g33x7c0hqbc5")))) + (base32 "1mylrrkyycaw9m01mmg6xkn5wgdlabs5l0qyws60r0n2ycblp897")))) (build-system r-build-system) (propagated-inputs `(("r-quadprog" ,r-quadprog))) -- cgit v1.2.3 From e35cac95818e130bfc3178c92218dbd0a29f13b5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:55:50 +0100 Subject: gnu: r-batchjobs: Update to 1.7. * gnu/packages/statistics.scm (r-batchjobs): Update to 1.7. [propagated-inputs]: Add r-backports, r-data-table, and r-stringi; remove r-fail and r-stringr. --- gnu/packages/statistics.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index f2ee16f30e..c9d089b721 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2095,26 +2095,27 @@ (define-public r-fail (define-public r-batchjobs (package (name "r-batchjobs") - (version "1.6") + (version "1.7") (source (origin (method url-fetch) (uri (cran-uri "BatchJobs" version)) (sha256 (base32 - "1kb99024jih5bycc226bl4jyvbbl1sg72q3m2wnlshl7s8p6vva0")))) + "035658marnw57p4f38g99rwmvmb6hpbq0fhlxp3qbw22zfnnkvs9")))) (properties `((upstream-name . "BatchJobs"))) (build-system r-build-system) (propagated-inputs - `(("r-bbmisc" ,r-bbmisc) + `(("r-backports" ,r-backports) + ("r-bbmisc" ,r-bbmisc) ("r-brew" ,r-brew) ("r-checkmate" ,r-checkmate) + ("r-data-table" ,r-data-table) ("r-dbi" ,r-dbi) ("r-digest" ,r-digest) - ("r-fail" ,r-fail) ("r-rsqlite" ,r-rsqlite) ("r-sendmailr" ,r-sendmailr) - ("r-stringr" ,r-stringr))) + ("r-stringi" ,r-stringi))) (home-page "https://github.com/tudo-r/BatchJobs") (synopsis "Batch computing with R") (description -- cgit v1.2.3 From 0382d377345c79ba178266641fbb6592d1a11a57 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 16:58:51 +0100 Subject: gnu: r-rmarkdown: Update to 1.8. * gnu/packages/statistics.scm (r-rmarkdown): Update to 1.8. [propagated-inputs]: Remove r-catools; add r-mime and r-stringr. --- gnu/packages/statistics.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index c9d089b721..2164e465e5 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2567,24 +2567,25 @@ (define-public r-rprojroot (define-public r-rmarkdown (package (name "r-rmarkdown") - (version "1.6") + (version "1.8") (source (origin (method url-fetch) (uri (cran-uri "rmarkdown" version)) (sha256 (base32 - "0p8ph5z5pifk1nxc1bppkfs1ir5gjc6ap9n64b4255m2fdaqfrc7")))) + "0q1y1qx87xp6vf9h7mfl77rqhmd01xl53l9ap9qj99bfvpabb572")))) (properties `((upstream-name . "rmarkdown"))) (build-system r-build-system) (propagated-inputs - `(("r-catools" ,r-catools) + `(("r-base64enc" ,r-base64enc) ("r-evaluate" ,r-evaluate) ("r-htmltools" ,r-htmltools) ("r-jsonlite" ,r-jsonlite) - ("r-base64enc" ,r-base64enc) ("r-knitr" ,r-knitr) + ("r-mime" ,r-mime) ("r-rprojroot" ,r-rprojroot) + ("r-stringr" ,r-stringr) ("r-yaml" ,r-yaml) ("ghc-pandoc" ,ghc-pandoc))) (home-page "http://rmarkdown.rstudio.com") -- cgit v1.2.3 From a3ae2fa5370c980018be632eab63cc012753ac78 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 17:13:30 +0100 Subject: gnu: r-rcppprogress: Update to 0.4. * gnu/packages/statistics.scm (r-rcppprogress): Update to 0.4. [propagated-inputs]: Add r-devtools. --- gnu/packages/statistics.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 2164e465e5..400af9001c 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -5150,18 +5150,19 @@ (define-public r-caret (define-public r-rcppprogress (package (name "r-rcppprogress") - (version "0.3") + (version "0.4") (source (origin (method url-fetch) (uri (cran-uri "RcppProgress" version)) (sha256 (base32 - "0796g11w7iv3ix1wfm3fh09qq7jki4r4cp1mjagq77igri3xrr9x")))) + "09ayw6d69i0lplmaj5md25p5hn1nmiyp6a4sh60v93nrrs1cq7iv")))) (properties `((upstream-name . "RcppProgress"))) (build-system r-build-system) (propagated-inputs - `(("r-rcpp" ,r-rcpp))) + `(("r-devtools" ,r-devtools) + ("r-rcpp" ,r-rcpp))) (home-page "https://github.com/kforner/rcpp_progress") (synopsis "Interruptible progress bar for C++ in R packages") (description -- cgit v1.2.3 From b50a4b13910f2484f6f8f1a551e930e6f9b4f42f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 17:14:32 +0100 Subject: gnu: r-cowplot: Update to 0.9.1. * gnu/packages/statistics.scm (r-cowplot): Update to 0.9.1. [propagated-inputs]: Add r-scales. --- gnu/packages/statistics.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 400af9001c..d1b73ea1ca 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -4394,19 +4394,20 @@ (define-public r-compquadform (define-public r-cowplot (package (name "r-cowplot") - (version "0.8.0") + (version "0.9.1") (source (origin (method url-fetch) (uri (cran-uri "cowplot" version)) (sha256 (base32 - "03bh0r6ynr95gk4lc8asfi3kpmskm59vfzwn417pdziha3igs5x6")))) + "0iq0wsi7467cj8hqml06whk3xsiv89x8dvm9ynwp411pzzbdjgwm")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) ("r-gtable" ,r-gtable) - ("r-plyr" ,r-plyr))) + ("r-plyr" ,r-plyr) + ("r-scales" ,r-scales))) (home-page "https://github.com/wilkelab/cowplot") (synopsis "Streamlined plot theme and plot annotations for ggplot2") (description -- cgit v1.2.3 From f1b90a2b58aca0875ebfff78434478ea4b580c30 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 30 Nov 2017 17:15:23 +0100 Subject: gnu: r-bigmemory: Update to 4.5.31. * gnu/packages/statistics.scm (r-bigmemory): Update to 4.5.31. [propagated-inputs]: Remove r-r-utils. --- gnu/packages/statistics.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index d1b73ea1ca..fc18719f32 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3278,20 +3278,19 @@ (define-public r-synchronicity (define-public r-bigmemory (package (name "r-bigmemory") - (version "4.5.19") + (version "4.5.31") (source (origin (method url-fetch) (uri (cran-uri "bigmemory" version)) (sha256 (base32 - "191gbzca557kpk7mdsg716vfyqpr7j5din6qb8hin4g1nkzzwmg6")))) + "0wv0p746zz5a6r1yd0fgpj2kfcyzk2f4rxqz92p6lp9jzakv4lfs")))) (build-system r-build-system) (propagated-inputs `(("r-bh" ,r-bh) ("r-rcpp" ,r-rcpp) - ("r-bigmemory-sri" ,r-bigmemory-sri) - ("r-r-utils" ,r-r-utils))) + ("r-bigmemory-sri" ,r-bigmemory-sri))) (home-page "http://www.bigmemory.org") (synopsis "Manage large matrices with shared memory or memory-mapped files") (description "This package provides methods to create, store, access, and -- cgit v1.2.3 From 117d8cc40e9983098a080fe41cce7684b312351c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 27 Nov 2017 16:21:54 +0100 Subject: gnu: jellyfish: Update to 2.2.7. * gnu/packages/bioinformatics.scm (jellyfish): Update to 2.2.7. [native-inputs]: Add pkg-config. [inputs]: Add htslib. --- gnu/packages/bioinformatics.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 03054c91d1..5b3eec86db 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3292,7 +3292,7 @@ (define-public idr (define-public jellyfish (package (name "jellyfish") - (version "2.2.4") + (version "2.2.7") (source (origin (method url-fetch) (uri (string-append "https://github.com/gmarcais/Jellyfish/" @@ -3300,7 +3300,7 @@ (define-public jellyfish "/jellyfish-" version ".tar.gz")) (sha256 (base32 - "0a6xnynqy2ibfbfz86b9g2m2dgm7f1469pmymkpam333gi3p26nk")))) + "1a1iwq9pq54k2m9ypvwl5s0bqfl64gwh9dx5af9i382ajas2016q")))) (build-system gnu-build-system) (outputs '("out" ;for library "ruby" ;for Ruby bindings @@ -3323,7 +3323,10 @@ (define-public jellyfish `(("bc" ,bc) ("time" ,time) ("ruby" ,ruby) - ("python" ,python-2))) + ("python" ,python-2) + ("pkg-config" ,pkg-config))) + (inputs + `(("htslib" ,htslib))) (synopsis "Tool for fast counting of k-mers in DNA") (description "Jellyfish is a tool for fast, memory-efficient counting of k-mers in -- cgit v1.2.3 From e42f026eb52bb77039bac6b6a96dfc2ed2f86cc1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 30 Nov 2017 11:42:30 +0100 Subject: ui: Present 'use-modules' hints with a question mark. Suggested by myglc2 . * guix/ui.scm (report-load-error): Write "Did you forget" rather than "Try adding." --- guix/ui.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/ui.scm b/guix/ui.scm index b65702474d..13cbe3a0f7 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -313,7 +313,7 @@ (define* (report-load-error file args #:optional frame) (#f (display-hint (G_ "Did you forget a @code{use-modules} form?"))) (module - (display-hint (format #f (G_ "Try adding @code{(use-modules ~a)}.") + (display-hint (format #f (G_ "Did you forget @code{(use-modules ~a)}?") (module-name module)))))) (('srfi-34 obj) (if (message-condition? obj) -- cgit v1.2.3 From 1d752e43452baffd35d1780872bab7bf03a4750b Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Mon, 27 Nov 2017 21:45:11 -0500 Subject: gnu: Add xautolock. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/xdisorg.scm (xautolock): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/xdisorg.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index f4c03c144e..2e1ed2ee9e 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Marek Benc +;;; Copyright © 2017 Mike Gerwitz ;;; ;;; This file is part of GNU Guix. ;;; @@ -1329,3 +1330,53 @@ (define-public nxbelld or playing a PCM encoded WAVE file.") (home-page "https://github.com/dusxmt/nxbelld") (license license:gpl3+))) + +(define-public xautolock + (package + (name "xautolock") + (version "2.2") + (source (origin + (method url-fetch) + (uri (string-append "http://www.ibiblio.org/pub/linux/X11/screensavers/" + name "-" version ".tgz")) + (sha256 + (base32 + "18jd3k3pvlm5x1adyqw63z2b3f4ixh9mfvz9asvnskk3fm8jgw0i")))) + (build-system gnu-build-system) + (native-inputs + `(("imake" ,imake))) + (inputs + `(("libx11" ,libx11) + ("libxext" ,libxext) + ("libxscrnsaver" ,libxscrnsaver))) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((imake (assoc-ref inputs "imake")) + (out (assoc-ref outputs "out"))) + ;; Generate Makefile + (invoke "xmkmf") + (substitute* "Makefile" + ;; These imake variables somehow remain undefined + (("DefaultGcc2[[:graph:]]*Opt") "-O2") + ;; Reset a few variable defaults that are set in imake templates + ((imake) out) + (("(MANPATH = )[[:graph:]]*" _ front) + (string-append front out "/share/man"))) + ;; Old BSD-style 'union wait' is unneeded (defining + ;; _USE_BSD did not seem to fix it) + (substitute* "src/engine.c" + (("union wait status") "int status = 0")) + #t))) + (add-after 'install 'install/man + (lambda _ + (zero? (system* "make" "install.man"))))))) + (home-page "http://ibiblio.org/pub/Linux/X11/screensavers/") + (synopsis "Program launcher for idle X sessions") + (description "Xautolock monitors input devices under the X Window +System, and launches a program of your choice if there is no activity after +a user-configurable period of time.") + (license license:gpl2))) -- cgit v1.2.3 From 1d0865c19a5a715d96b396fdb75b0b0b9c2389bb Mon Sep 17 00:00:00 2001 From: Vasile Dumitrascu Date: Thu, 30 Nov 2017 12:12:04 +0100 Subject: gnu: monero-core: Fix missing dependency. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/finance.scm (monero-core)[inputs]: Add readline. Signed-off-by: Ludovic Courtès --- gnu/packages/finance.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 9492376ba3..788f7c0d7c 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -49,6 +49,7 @@ (define-module (gnu packages finance) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages qt) + #:use-module (gnu packages readline) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) @@ -439,6 +440,7 @@ (define-public monero-core ("libunwind" ,libunwind) ("openssl" ,openssl) ("qt" ,qt) + ("readline" ,readline) ("unbound" ,unbound))) (propagated-inputs `(("monero" ,monero))) -- cgit v1.2.3 From f00515b4831cbeef7ef4ee9dcc0079ecdadb705b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 30 Nov 2017 16:14:12 +0100 Subject: vm: Filter out file systems that refer to UUIDs or labels. * gnu/system/vm.scm (virtualized-operating-system)[user-file-systems]: Filter out things that refer to file system UUIDs or labels. --- gnu/system/vm.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 3ddb41d9a6..a5fe48e8f1 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -554,7 +554,13 @@ (define user-file-systems (or (string=? target (%store-prefix)) (string=? target "/") (and (eq? 'device (file-system-title fs)) - (string-prefix? "/dev/" source))))) + (string-prefix? "/dev/" source)) + + ;; Labels and UUIDs are necessarily invalid in the VM. + (and (file-system-mount? fs) + (or (eq? 'label (file-system-title fs)) + (eq? 'uuid (file-system-title fs)) + (uuid? source)))))) (operating-system-file-systems os))) (define virtual-file-systems -- cgit v1.2.3 From e33904336f5692eeeb4031d35341036a6bc46052 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 30 Nov 2017 14:22:17 +0000 Subject: gnu: fish-guix: Update to 0.1.2.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/shells.scm (fish-guix): Update to 0.1.2.1. (license): Switch to bsd-3. Signed-off-by: Ludovic Courtès --- gnu/packages/shells.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 62934646cc..1f076999cb 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; Copyright © 2016 Stefan Reichör ;;; Copyright © 2017 Ricardo Wurmus -;;; Copyright © 2017 ng0 +;;; Copyright © 2017 ng0 ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017 Arun Isaac ;;; @@ -149,7 +149,7 @@ (define-public fish (define-public fish-guix (package (name "fish-guix") - (version "0.1.1") + (version "0.1.2.1") (source (origin (method url-fetch) @@ -157,7 +157,7 @@ (define-public fish-guix name "-" version ".tar.xz")) (sha256 (base32 - "0xi0j9lvzh43lrj82gz52n2cjln0i0pgayngrg4hy5w4449biy0z")))) + "0k71hcn7nr523w74jw2i68x52s9hv6vmasnvnn7yr3xxvzn4kqgf")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No checks. @@ -170,7 +170,7 @@ (define-public fish-guix (synopsis "Fish completions for Guix") (description "Fish-guix provides completions for Guix for users of the fish shell.") - (license public-domain))) + (license bsd-3))) (define-public rc (package -- cgit v1.2.3 From 34a28c13f55ef25423662c72473a1247f7e21375 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 28 Nov 2017 08:42:06 +0100 Subject: gnu: qemu: Enable seccomp support. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/virtualization.scm (qemu)[inputs]: Add libseccomp. Signed-off-by: Ludovic Courtès --- gnu/packages/virtualization.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index b28a44a93c..184ba0155c 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; Copyright © 2017 Alex Vong ;;; Copyright © 2017 Andy Patterson +;;; Copyright © 2017 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -158,6 +159,7 @@ (define-public qemu ("libepoxy" ,libepoxy) ("libjpeg" ,libjpeg-turbo) ("libpng" ,libpng) + ("libseccomp" ,libseccomp) ("libusb" ,libusb) ;USB pass-through support ("mesa" ,mesa) ("ncurses" ,ncurses) -- cgit v1.2.3 From 9ce07f2dbafe068aea81e79decc4cfc146a48259 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Tue, 28 Nov 2017 18:28:48 -0500 Subject: doc: Update the example VCS snapshot package definition. In commit ee17a9e06e636400e3354796a42ac445dbcc8f96, the helpers git-version and git-file-name removed the need to build version and file name strings manually for packages that use VCS snapshots. doc/guix.texi (Version Numbers): Use git-version and git-file-name. --- doc/guix.texi | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 88764437a6..cad2b86e76 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -19898,16 +19898,14 @@ definition may look like this: (let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7") (revision "1")) ;Guix package revision (package - (version (string-append "0.9-" revision "." - (string-take commit 7))) + (version (git-version "0.9" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "git://example.org/my-package.git") (commit commit))) (sha256 (base32 "1mbikn@dots{}")) - (file-name (string-append "my-package-" version - "-checkout")))) + (file-name (git-file-name name version)))) ;; @dots{} ))) @end example -- cgit v1.2.3 From 8b8600022c174693db210730531bf7e13778ecc4 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 1 Dec 2017 01:35:44 -0500 Subject: gnu: linux-libre@4.4: Update to 4.4.103. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.103. --- 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 a4ceede51c..53bec7eef3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -389,8 +389,8 @@ (define-public linux-libre-4.9 #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.102" - "16jl383v71zxpgrab30z6m3jzcg42i2zwh9vfy8k5li0xnal4437" + (make-linux-libre "4.4.103" + "1x2pyrjz8myja77nz0zg2k74yrcbiq7g1caqjnafbgc8qwh31fp8" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 6850c9ced56b91989ebc69f9d56f66025b079e41 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 1 Dec 2017 01:36:21 -0500 Subject: gnu: linux-libre@4.9: Update to 4.9.66. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.66. --- 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 53bec7eef3..5b4e5e6724 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -383,8 +383,8 @@ (define-public linux-libre #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.65" - "12a03kf79xdzqnb1cv0fxdn2dasn68hici5pw3qgxdbb65p1kxq7" + (make-linux-libre "4.9.66" + "0k29i5wnljck4nwkzcjxjfzrddwifj2pb6zxqh7f522j9cw2g4zd" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 1776d5cd184402895ec420d916a7171a2052c473 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 1 Dec 2017 01:37:08 -0500 Subject: gnu: linux-libre: Update to 4.14.3. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.14.3. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5b4e5e6724..995864f33e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -369,8 +369,8 @@ (define* (make-linux-libre version hash supported-systems (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) (define %linux-compatible-systems '("x86_64-linux" "i686-linux" "armhf-linux")) -(define %linux-libre-version "4.14.2") -(define %linux-libre-hash "10bbajas0xk4xvyvyx51dpc7xc5qjxz2nsf361gl1yfsrb6mbkhw") +(define %linux-libre-version "4.14.3") +(define %linux-libre-hash "1hs94lj2bryci4m75bfrhhj9aqrjpq6a57nhxic63zj6xjhi53l7") ;; linux-libre configuration for armhf-linux is derived from Debian armmp. It ;; supports qemu "virt" machine and possibly a large number of ARM boards. -- cgit v1.2.3 From f8446df663fecb5aa34e5c6dfa477544d3271d1e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 1 Dec 2017 00:04:22 +0100 Subject: gnu: elogind: Remove "uaccess" tag usage in "seat-late" rules. * gnu/packages/freedesktop.scm (elogind)[arguments]: Add 'remove-uaccess-tag' phase. --- gnu/packages/freedesktop.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 9b6d7fa111..fa77fe2649 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -278,7 +278,16 @@ (define-public elogind (substitute* (string-append out "/lib/libelogind.la") (("-lcap") (string-append "-L" libcap "/lib -lcap"))) - #t)))))) + #t))) + (add-after 'unpack 'remove-uaccess-tag + (lambda _ + ;; systemd supports a "uaccess" built-in tag, but eudev currently + ;; doesn't. This leads to eudev warnings that we'd rather not + ;; see, so remove the reference to "uaccess." + (substitute* "src/login/73-seat-late.rules.in" + (("^TAG==\"uaccess\".*" line) + (string-append "# " line "\n"))) + #t))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) -- cgit v1.2.3 From c03ba83c17c91e34e811a909fae0f63aab701ff9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 1 Dec 2017 10:45:39 +0100 Subject: gnu: git: Run tests sequentially. Fixes . Reported by George myglc2 Clemmer . * gnu/packages/version-control.scm (git)[arguments]: Add #:parallel-tests?. --- gnu/packages/version-control.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 21ea90be72..22b296f4a0 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -188,6 +188,9 @@ (define-public git "NO_INSTALL_HARDLINKS=indeed") #:test-target "test" + ;; Tests fail randomly when parallel: . + #:parallel-tests? #f + ;; The explicit --with-tcltk forces the build system to hardcode the ;; absolute file name to 'wish'. #:configure-flags (list (string-append "--with-tcltk=" -- cgit v1.2.3 From 491cbd3553f36983555bd0aa22124dc580f6484b Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Wed, 29 Nov 2017 22:42:36 -0500 Subject: gnu: Add emacs-evil-matchit. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-evil-matchit): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 78728a5b9c..e5e6cf0979 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -30,6 +30,7 @@ ;;; Copyright © 2017 Mekeor Melire ;;; Copyright © 2017 Peter Mikkelsen ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017 Mike Gerwitz ;;; ;;; This file is part of GNU Guix. ;;; @@ -6358,3 +6359,25 @@ (define-public eless @item Quickly change frame and font sizes. @end itemize\n") (license license:expat))) + +(define-public emacs-evil-matchit + (package + (name "emacs-evil-matchit") + (version "2.2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/redguardtoo/evil-matchit/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1hm0k53m7d8zv2pk4p93k5mmilsv1mz7y2z6dqf7r6f0zmncs31a")))) + (build-system emacs-build-system) + (home-page "https://github.com/redguardtoo/evil-matchit") + (synopsis "Vim matchit ported into Emacs") + (description + "@code{evil-matchit} is a minor mode for jumping between matching tags in +evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.") + (license license:gpl3+))) -- cgit v1.2.3 From 6101cad4d19cf1c32d6abf7c9ef2a86ad9d986c5 Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 9 May 2017 18:52:31 +0000 Subject: gnu: Add geomyidae. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/web.scm (geomyidae): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/web.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index eb3257362b..eb0436cb35 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -6113,3 +6113,38 @@ (define-public perl-html-tidy object. It's meant as a replacement for @code{HTML::Lint}, which is written in Perl but is not nearly as capable as @code{HTML::Tidy}.") (license l:artistic2.0))) + +(define-public geomyidae + (package + (name "geomyidae") + (version "0.29") + (source + (origin + (method url-fetch) + (uri (string-append "http://git.r-36.net/geomyidae/snapshot/" + "geomyidae-" version ".tar.bz2")) + (sha256 + (base32 + "0qxgxp6psfrgfqhndyq2z54nb1qrmvvljddnxdwp207jbz366bja")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list "CC=gcc" + (string-append "PREFIX=" + (assoc-ref %outputs "out"))) + #:tests? #f ;no tests + #:phases (modify-phases %standard-phases + (delete 'configure)))) + (home-page "http://git.r-36.net/geomyidae") + (synopsis "Small Gopher server") + (description + "Geomyidae is a server for distributed hypertext protocol Gopher. Its +features include: + +@enumerate +@item Gopher menus (see @file{index.gph} for an example); +@item directory listings (if no @file{index.gph} was found); +@item CGI support (@file{.cgi} files are executed); +@item search support in CGI files; +@item logging with multiple log levels. +@end enumerate\n") + (license l:expat))) -- cgit v1.2.3 From f1de0e37d579dc7834be0c9e80654e9f2067c3ed Mon Sep 17 00:00:00 2001 From: Dave Love Date: Sat, 21 Oct 2017 17:20:42 +0100 Subject: gnu: openfoam: Clean up to reduce closure. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This saves ~1GB. * gnu/packages/simulation.scm (openfoam)[outputs]: Add debug. [arguments]: Clean up .o and src after build. Signed-off-by: Ludovic Courtès --- gnu/packages/simulation.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index de07b68440..a5b661e34d 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -84,6 +84,8 @@ (define-public openfoam `(("gzip" ,gzip) ("gnuplot" ,gnuplot) ("openmpi" ,openmpi))) + (outputs '("debug" ;~60MB + "out")) (arguments `( ;; Executable files and shared libraries are located in the 'platforms' ;; subdirectory. @@ -171,6 +173,15 @@ (define-public openfoam (("lockDir=.*$") "lockDir=$HOME/.$WM_PROJECT/.wmake\n")) #t)) + (add-after 'build 'cleanup + ;; Avoid unncessary, voluminous object and dep files. + (lambda _ + (delete-file-recursively + "platforms/linux64GccDPInt32Opt/src") + (delete-file-recursively + "platforms/linux64GccDPInt32OptSYSTEMOPENMPI") + (for-each delete-file (find-files "." "\\.o$")) + #t)) (replace 'install (lambda _ ;; use 'OpenFOAM-version' convention -- cgit v1.2.3 From e45b573c2d4f251d57caccb01ff19078b4f2e8e7 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 29 Nov 2017 15:10:12 +0100 Subject: utils: Add target-arm32? procedure. * guix/utils.scm (target-arm32?): New exported procedure. --- guix/utils.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/guix/utils.scm b/guix/utils.scm index c0ffed172a..fed31f4ca4 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Mathieu Lirzin ;;; Copyright © 2015 David Thompson ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -75,6 +76,7 @@ (define-module (guix utils) %current-target-system package-name->name+version target-mingw? + target-arm32? version-compare version>? version>=? @@ -467,6 +469,9 @@ (define* (target-mingw? #:optional (target (%current-target-system))) (and target (string-suffix? "-mingw32" target))) +(define (target-arm32?) + (string-prefix? "arm" (or (%current-target-system) (%current-system)))) + (define version-compare (let ((strverscmp (let ((sym (or (dynamic-func "strverscmp" (dynamic-link)) -- cgit v1.2.3 From 00e39b2ea466f5627b6eb85e70c98d44b73a0516 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 29 Nov 2017 15:12:01 +0100 Subject: system: vm: Do not add EFI partition on ARM system. * gnu/system/vm.scm (qemu-img): Do not add EFI partition if we are targetting ARM. UEFI support on u-boot is still experimental, so do not add EFI partition on ARM for now. --- gnu/system/vm.scm | 50 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index a5fe48e8f1..8cd4c064f9 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -29,6 +29,7 @@ (define-module (gnu system vm) #:use-module (guix monads) #:use-module (guix records) #:use-module (guix modules) + #:use-module (guix utils) #:use-module ((gnu build vm) #:select (qemu-command)) @@ -312,26 +313,35 @@ (define* (qemu-image #:key graphs))) (- disk-image-size (* 50 (expt 2 20))))) - (partitions (list (partition - (size root-size) - (label #$file-system-label) - (uuid #$(and=> file-system-uuid - uuid-bytevector)) - (file-system #$file-system-type) - (flags '(boot)) - (initializer initialize)) - ;; Append a small EFI System Partition for - ;; use with UEFI bootloaders. - (partition - ;; The standalone grub image is about 10MiB, but - ;; leave some room for custom or multiple images. - (size (* 40 (expt 2 20))) - (label "GNU-ESP") ;cosmetic only - ;; Use "vfat" here since this property is used - ;; when mounting. The actual FAT-ness is based - ;; on filesystem size (16 in this case). - (file-system "vfat") - (flags '(esp)))))) + (partitions + (append + (list (partition + (size root-size) + (label #$file-system-label) + (uuid #$(and=> file-system-uuid + uuid-bytevector)) + (file-system #$file-system-type) + (flags '(boot)) + (initializer initialize))) + ;; Append a small EFI System Partition for use with UEFI + ;; bootloaders if we are not targetting ARM because UEFI + ;; support in U-Boot is experimental. + ;; + ;; FIXME: ‘target-arm32?’ may be not operate on the right + ;; system/target values. Rewrite using ‘let-system’ when + ;; available. + (if #$(target-arm32?) + '() + (list (partition + ;; The standalone grub image is about 10MiB, but + ;; leave some room for custom or multiple images. + (size (* 40 (expt 2 20))) + (label "GNU-ESP") ;cosmetic only + ;; Use "vfat" here since this property is used + ;; when mounting. The actual FAT-ness is based + ;; on filesystem size (16 in this case). + (file-system "vfat") + (flags '(esp)))))))) (initialize-hard-disk "/dev/vda" #:partitions partitions #:grub-efi #$grub-efi -- cgit v1.2.3 From fb5569b0c802a701eb67f6f659e25d19c8597f5c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 14:48:55 +0100 Subject: gnu: man-pages: Update to 4.14. * gnu/packages/man.scm (man-pages): Update to 4.14. --- gnu/packages/man.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index fed7d08aee..4f6ed15750 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Alex Kost ;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -138,7 +139,7 @@ (define-public man-db (define-public man-pages (package (name "man-pages") - (version "4.13") + (version "4.14") (source (origin (method url-fetch) (uri @@ -151,7 +152,7 @@ (define-public man-pages "man-pages-" version ".tar.xz"))) (sha256 (base32 - "1gri0rm9i3a6w5dvsmwawhwzywl5x80dwq05d2v8l92knv2hbh6m")))) + "0wf9ymqxk1k5xwcl3n919p66a1aayif3x4cahj4w04y3k1wbhlih")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) -- cgit v1.2.3 From e695d79dc692e8e4829f6e5ce627113b328332eb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 23 Nov 2017 18:38:35 +0100 Subject: gnu: ghc-edisoncore: Fix typo in synopsis. * gnu/packages/haskell.scm (ghc-edisoncore)[synopsis]: Fix typo. --- gnu/packages/haskell.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index f1302f0e60..6ba5642101 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3328,7 +3328,7 @@ (define-public ghc-edisoncore ("ghc-quickcheck" ,ghc-quickcheck) ("ghc-edisonapi" ,ghc-edisonapi))) (home-page "http://rwd.rdockins.name/edison/home/") - (synopsis "Library of efficent, purely-functional data structures") + (synopsis "Library of efficient, purely-functional data structures") (description "This package provides the core Edison data structure implementations, including multiple sequence, set, bag, and finite map concrete implementations -- cgit v1.2.3 From 1252dd325bbb71387092e9e89ff1ede8ef3f1d5f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 22 Nov 2017 14:05:35 +0100 Subject: progress: Factorize erase-in-line. * guix/progress.scm (erase-in-line): New procedure. (progress-reporter/file): Use it. --- guix/progress.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/guix/progress.scm b/guix/progress.scm index beca2c22a6..1993c74030 100644 --- a/guix/progress.scm +++ b/guix/progress.scm @@ -153,6 +153,11 @@ (define* (progress-bar % #:optional (bar-width 20)) (make-string filled #\#) (make-string empty #\space)))) +(define (erase-in-line port) + "Write an ANSI erase-in-line sequence to PORT to erase the whole line and +move the cursor to the beginning of the line." + (display "\r\x1b[K" port)) + (define* (progress-reporter/file file size #:optional (log-port (current-output-port)) #:key (abbreviation basename)) @@ -176,7 +181,7 @@ (define elapsed (byte-count->string throughput) (seconds->string elapsed) (progress-bar %) %))) - (display "\r\x1b[K" log-port) + (erase-in-line log-port) (display (string-pad-middle left right (current-terminal-columns)) log-port) @@ -188,7 +193,7 @@ (define elapsed (byte-count->string throughput) (seconds->string elapsed) (byte-count->string transferred)))) - (display "\r\x1b[K" log-port) + (erase-in-line log-port) (display (string-pad-middle left right (current-terminal-columns)) log-port) -- cgit v1.2.3 From 5ed534ccc352cea9fd7920e820c8e5f47ea456ba Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 22 Nov 2017 14:36:20 +0100 Subject: progress: 'progress-bar' accounts for brackets. * guix/progress.scm (progress-bar): Subtract 2 to BAR-WIDTH to account for brackets. --- guix/progress.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/progress.scm b/guix/progress.scm index 1993c74030..ba7944214b 100644 --- a/guix/progress.scm +++ b/guix/progress.scm @@ -146,7 +146,8 @@ (define current-terminal-columns (define* (progress-bar % #:optional (bar-width 20)) "Return % as a string representing an ASCII-art progress bar. The total width of the bar is BAR-WIDTH." - (let* ((fraction (/ % 100)) + (let* ((bar-width (max 3 (- bar-width 2))) + (fraction (/ % 100)) (filled (inexact->exact (floor (* fraction bar-width)))) (empty (- bar-width filled))) (format #f "[~a~a]" -- cgit v1.2.3 From 4cdb27af48c83b7d036c4d8cccb792a51d766790 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 22 Nov 2017 14:39:00 +0100 Subject: progress: Add 'progress-reporter/bar'. * guix/progress.scm (progress-reporter/bar): New procedure. --- guix/progress.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/guix/progress.scm b/guix/progress.scm index ba7944214b..1ee7ec319f 100644 --- a/guix/progress.scm +++ b/guix/progress.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Sou Bunnbu ;;; Copyright © 2015 Steve Sprang +;;; Copyright © 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +33,7 @@ (define-module (guix progress) progress-reporter/silent progress-reporter/file + progress-reporter/bar byte-count->string current-terminal-columns @@ -212,6 +214,39 @@ (define elapsed ;; Don't miss the last report. (stop render)))) +(define* (progress-reporter/bar total + #:optional + (prefix "") + (port (current-error-port))) + "Return a reporter that shows a progress bar every time one of the TOTAL +tasks is performed. Write PREFIX at the beginning of the line." + (define done 0) + + (define (report-progress) + (set! done (+ 1 done)) + (unless (> done total) + (let* ((ratio (* 100. (/ done total)))) + (erase-in-line port) + (if (string-null? prefix) + (display (progress-bar ratio (current-terminal-columns)) port) + (let ((width (- (current-terminal-columns) + (string-length prefix) 3))) + (display prefix port) + (display " " port) + (display (progress-bar ratio width) port))) + (force-output port)))) + + (progress-reporter + (start (lambda () + (set! done 0))) + (report report-progress) + (stop (lambda () + (erase-in-line port) + (unless (string-null? prefix) + (display prefix port) + (newline port)) + (force-output port))))) + ;; TODO: replace '(@ (guix build utils) dump-port))'. (define* (dump-port* in out #:key (buffer-size 16384) -- cgit v1.2.3 From 1fafa2f58732a3fb75258be342c92a2772af2860 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 22 Nov 2017 14:39:26 +0100 Subject: weather: Use (guix progress) for progress report. * guix/progress.scm (start-progress-reporter!, stop-progress-reporter!) (progress-reporter-report!): New procedures. * guix/scripts/weather.scm (call-with-progress-reporter): New procedure. (package-outputs)[update-progress!]: Remove. Use 'call-with-progress-reporter' instead. (guix-weather): Parameterize 'current-terminal-columns'. --- .dir-locals.el | 3 +- guix/progress.scm | 22 ++++++++++ guix/scripts/weather.scm | 106 +++++++++++++++++++++++------------------------ 3 files changed, 76 insertions(+), 55 deletions(-) diff --git a/.dir-locals.el b/.dir-locals.el index 04b58d2ce0..949f7e0bc8 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -77,7 +77,8 @@ (eval . (put 'container-excursion 'scheme-indent-function 1)) (eval . (put 'eventually 'scheme-indent-function 1)) - ;; Recognize '~', '+', and '$', as used for gexps, as quotation symbols. + (eval . (put 'call-with-progress-reporter 'scheme-indent-function 1)) + ;; This notably allows '(' in Paredit to not insert a space when the ;; preceding symbol is one of these. (eval . (modify-syntax-entry ?~ "'")) diff --git a/guix/progress.scm b/guix/progress.scm index 1ee7ec319f..0ca5c08782 100644 --- a/guix/progress.scm +++ b/guix/progress.scm @@ -31,6 +31,10 @@ (define-module (guix progress) progress-reporter? call-with-progress-reporter + start-progress-reporter! + stop-progress-reporter! + progress-reporter-report! + progress-reporter/silent progress-reporter/file progress-reporter/bar @@ -60,6 +64,24 @@ (define (call-with-progress-reporter reporter proc) (($ start report stop) (dynamic-wind start (lambda () (proc report)) stop)))) +(define (start-progress-reporter! reporter) + "Low-level procedure to start REPORTER." + (match reporter + (($ start report stop) + (start)))) + +(define (progress-reporter-report! reporter) + "Low-level procedure to lead REPORTER to emit a report." + (match reporter + (($ start report stop) + (report)))) + +(define (stop-progress-reporter! reporter) + "Low-level procedure to stop REPORTER." + (match reporter + (($ start report stop) + (stop)))) + (define progress-reporter/silent (make-progress-reporter noop noop noop)) diff --git a/guix/scripts/weather.scm b/guix/scripts/weather.scm index 0d4a7fa26b..2e782e36ce 100644 --- a/guix/scripts/weather.scm +++ b/guix/scripts/weather.scm @@ -23,10 +23,11 @@ (define-module (guix scripts weather) #:use-module (guix packages) #:use-module (guix profiles) #:use-module (guix derivations) + #:use-module (guix progress) #:use-module (guix monads) #:use-module (guix store) #:use-module (guix grafts) - #:use-module (guix build syscalls) + #:use-module ((guix build syscalls) #:select (terminal-columns)) #:use-module (guix scripts substitute) #:use-module (gnu packages) #:use-module (web uri) @@ -48,42 +49,38 @@ (define (all-packages) (cons package result)))) '())) +(define (call-with-progress-reporter reporter proc) + "This is a variant of 'call-with-progress-reporter' that works with monadic +scope." + ;; TODO: Move to a more appropriate place. + (with-monad %store-monad + (start-progress-reporter! reporter) + (mlet* %store-monad ((report -> (lambda () + (progress-reporter-report! reporter))) + (result (proc report))) + (stop-progress-reporter! reporter) + (return result)))) + (define* (package-outputs packages #:optional (system (%current-system))) "Return the list of outputs of all of PACKAGES for the given SYSTEM." (let ((packages (filter (cut supported-package? <> system) packages))) - - (define update-progress! - (let ((total (length packages)) - (done 0) - (width (max 10 (- (terminal-columns) 10)))) - (lambda () - (set! done (+ 1 done)) - (let* ((ratio (/ done total 1.)) - (done (inexact->exact (round (* width ratio)))) - (left (- width done))) - (format (current-error-port) "~5,1f% [~a~a]\r" - (* ratio 100.) - (make-string done #\#) - (make-string left #\space)) - (when (>= done total) - (newline (current-error-port))) - (force-output (current-error-port)))))) - (format (current-error-port) (G_ "computing ~h package derivations for ~a...~%") (length packages) system) - (foldm %store-monad - (lambda (package result) - (mlet %store-monad ((drv (package->derivation package system - #:graft? #f))) - (update-progress!) - (match (derivation->output-paths drv) - (((names . items) ...) - (return (append items result)))))) - '() - packages))) + (call-with-progress-reporter (progress-reporter/bar (length packages)) + (lambda (report) + (foldm %store-monad + (lambda (package result) + (mlet %store-monad ((drv (package->derivation package system + #:graft? #f))) + (report) + (match (derivation->output-paths drv) + (((names . items) ...) + (return (append items result)))))) + '() + packages))))) (cond-expand (guile-2.2 @@ -204,31 +201,32 @@ (define (load-manifest file) (define (guix-weather . args) (with-error-handling - (let* ((opts (parse-command-line args %options - (list %default-options) - #:build-options? #f)) - (urls (assoc-ref opts 'substitute-urls)) - (systems (match (filter-map (match-lambda - (('system . system) system) - (_ #f)) - opts) - (() (list (%current-system))) - (systems systems))) - (packages (let ((file (assoc-ref opts 'manifest))) - (if file - (load-manifest file) - (all-packages)))) - (items (with-store store - (parameterize ((%graft? #f)) - (concatenate - (run-with-store store - (mapm %store-monad - (lambda (system) - (package-outputs packages system)) - systems))))))) - (for-each (lambda (server) - (report-server-coverage server items)) - urls)))) + (parameterize ((current-terminal-columns (terminal-columns))) + (let* ((opts (parse-command-line args %options + (list %default-options) + #:build-options? #f)) + (urls (assoc-ref opts 'substitute-urls)) + (systems (match (filter-map (match-lambda + (('system . system) system) + (_ #f)) + opts) + (() (list (%current-system))) + (systems systems))) + (packages (let ((file (assoc-ref opts 'manifest))) + (if file + (load-manifest file) + (all-packages)))) + (items (with-store store + (parameterize ((%graft? #f)) + (concatenate + (run-with-store store + (mapm %store-monad + (lambda (system) + (package-outputs packages system)) + systems))))))) + (for-each (lambda (server) + (report-server-coverage server items)) + urls))))) ;;; Local Variables: ;;; eval: (put 'let/time 'scheme-indent-function 1) -- cgit v1.2.3 From e4ecd51e239adba226709a793240cc6f1a396858 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 30 Nov 2017 14:17:24 +0100 Subject: guix system: Simplify closure copy. * guix/scripts/system.scm (copy-item): Add 'references' argument and remove 'references*' call. Turn into a non-monadic procedure. (copy-closure): Remove initial call to 'references*'. Only pass ITEM to 'topologically-sorted*' since that's equivalent. Compute the list of references corresponding to TO-COPY and pass it to 'copy-item'. --- guix/scripts/system.scm | 67 +++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index e50f1d8ac7..acfa5fdbfd 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -107,47 +107,44 @@ (define topologically-sorted* (store-lift topologically-sorted)) -(define* (copy-item item target +(define* (copy-item item references target #:key (log-port (current-error-port))) - "Copy ITEM to the store under root directory TARGET and register it." - (mlet* %store-monad ((refs (references* item))) - (let ((dest (string-append target item)) - (state (string-append target "/var/guix"))) - (format log-port "copying '~a'...~%" item) - - ;; Remove DEST if it exists to make sure that (1) we do not fail badly - ;; while trying to overwrite it (see ), and - ;; (2) we end up with the right contents. - (when (file-exists? dest) - (delete-file-recursively dest)) - - (copy-recursively item dest - #:log (%make-void-port "w")) - - ;; Register ITEM; as a side-effect, it resets timestamps, etc. - ;; Explicitly use "TARGET/var/guix" as the state directory, to avoid - ;; reproducing the user's current settings; see - ;; . - (unless (register-path item - #:prefix target - #:state-directory state - #:references refs) - (leave (G_ "failed to register '~a' under '~a'~%") - item target)) - - (return #t)))) + "Copy ITEM to the store under root directory TARGET and register it with +REFERENCES as its set of references." + (let ((dest (string-append target item)) + (state (string-append target "/var/guix"))) + (format log-port "copying '~a'...~%" item) + + ;; Remove DEST if it exists to make sure that (1) we do not fail badly + ;; while trying to overwrite it (see ), and + ;; (2) we end up with the right contents. + (when (file-exists? dest) + (delete-file-recursively dest)) + + (copy-recursively item dest + #:log (%make-void-port "w")) + + ;; Register ITEM; as a side-effect, it resets timestamps, etc. + ;; Explicitly use "TARGET/var/guix" as the state directory, to avoid + ;; reproducing the user's current settings; see + ;; . + (unless (register-path item + #:prefix target + #:state-directory state + #:references references) + (leave (G_ "failed to register '~a' under '~a'~%") + item target)))) (define* (copy-closure item target #:key (log-port (current-error-port))) "Copy ITEM and all its dependencies to the store under root directory TARGET, and register them." - (mlet* %store-monad ((refs (references* item)) - (to-copy (topologically-sorted* - (delete-duplicates (cons item refs) - string=?)))) - (sequence %store-monad - (map (cut copy-item <> target #:log-port log-port) - to-copy)))) + (mlet* %store-monad ((to-copy (topologically-sorted* (list item))) + (refs (mapm %store-monad references* to-copy))) + (for-each (cut copy-item <> <> target #:log-port log-port) + to-copy refs) + + (return *unspecified*))) (define* (install-bootloader installer-drv #:key -- cgit v1.2.3 From e261e27676c018f23fb6c6fdc282e2dd40fa1985 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 30 Nov 2017 14:38:13 +0100 Subject: guix system: 'init' displays a progress bar while copying. Until now it would print the name of each store item being copied, which was verbose and unhelpful. * guix/scripts/system.scm (copy-closure): Use 'progress-reporter/bar' and 'call-with-progress-reporter'. (guix-system): Parameterize 'current-terminal-columns'. --- guix/scripts/system.scm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index acfa5fdbfd..91d151d22b 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -36,6 +36,8 @@ (define-module (guix scripts system) #:use-module (guix graph) #:use-module (guix scripts graph) #:use-module (guix build utils) + #:use-module (guix progress) + #:use-module ((guix build syscalls) #:select (terminal-columns)) #:use-module (gnu build install) #:autoload (gnu build file-systems) (find-partition-by-label find-partition-by-uuid) @@ -141,8 +143,18 @@ (define* (copy-closure item target TARGET, and register them." (mlet* %store-monad ((to-copy (topologically-sorted* (list item))) (refs (mapm %store-monad references* to-copy))) - (for-each (cut copy-item <> <> target #:log-port log-port) - to-copy refs) + (define progress-bar + (progress-reporter/bar (length to-copy) + (format #f (G_ "copying to '~a'...") + target))) + + (call-with-progress-reporter progress-bar + (lambda (report) + (let ((void (%make-void-port "w"))) + (for-each (lambda (item refs) + (copy-item item refs target #:log-port void) + (report)) + to-copy refs)))) (return *unspecified*))) @@ -1092,7 +1104,8 @@ (define (fail) parse-sub-command)) (args (option-arguments opts)) (command (assoc-ref opts 'action))) - (parameterize ((%graft? (assoc-ref opts 'graft?))) + (parameterize ((%graft? (assoc-ref opts 'graft?)) + (current-terminal-columns (terminal-columns))) (process-command command args opts))))) ;;; Local Variables: -- cgit v1.2.3 From 4afc903a8c1b9cb19c0341b5cd2ea80a34974f25 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 1 Dec 2017 15:25:15 +0100 Subject: services: xorg: Add 'font-misc-misc' to the default font set. Fixes . Reported by John Darrington . * gnu/services/xorg.scm (%default-xorg-fonts): Add FONT-MISC-MISC. --- gnu/services/xorg.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 0da3397da3..8f285b29a3 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -113,6 +113,8 @@ (define %default-xorg-fonts (file-append font-alias "/share/fonts/X11/100dpi") (file-append font-alias "/share/fonts/X11/misc") (file-append font-alias "/share/fonts/X11/cyrillic") + (file-append font-misc-misc ;default fonts for xterm + "/share/fonts/X11/misc") (file-append font-adobe75dpi "/share/fonts/X11/75dpi"))) (define* (xorg-configuration-file #:key -- cgit v1.2.3 From 8ad4f0aa315d69ff6b2df50e21ef01a60b0d2aec Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 1 Dec 2017 15:37:08 +0100 Subject: gnu: gnome-default-applications: Add Evince for PDF and PS. * gnu/packages/gnome.scm (gnome-default-applications)[propagated-inputs]: Add EVINCE. [arguments]: Associate Evince with application/pdf and application/postscript. --- gnu/packages/gnome.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9a46495f10..2ea681e14e 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5870,7 +5870,8 @@ (define-public gnome-default-applications (build-system trivial-build-system) (source #f) (propagated-inputs - `(("nautilus" ,nautilus))) + `(("nautilus" ,nautilus) + ("evince" ,evince))) (arguments `(#:modules ((guix build utils)) #:builder @@ -5882,7 +5883,9 @@ (define-public gnome-default-applications (call-with-output-file (string-append apps "/defaults.list") (lambda (port) (format port "[Default Applications]\n") - (format port "inode/directory=org.gnome.Nautilus.desktop\n"))) + (format port "inode/directory=org.gnome.Nautilus.desktop\n") + (format port "application/pdf=evince.desktop\n") + (format port "application/postscript=evince.desktop\n"))) #t)))) (synopsis "Default MIME type associations for the GNOME desktop") (description -- cgit v1.2.3 From c7ffbfe9f9209d7290489af77d6476cca8f55201 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 1 Dec 2017 15:59:31 +0100 Subject: gnu: guile: Add version 2.2.3. * gnu/packages/guile.scm (guile-2.2.3): New variable. --- gnu/packages/guile.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index fef15b4dc4..03c7f70523 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -221,7 +221,7 @@ (define-public guile-2.0 (define-public guile-2.2 (package (inherit guile-2.0) (name "guile") - (version "2.2.2") + (version "2.2.2") ;TODO: Update to 2.2.3 (see below). (source (origin (method url-fetch) @@ -251,6 +251,21 @@ (define-public guile-2.2 (files '("lib/guile/2.2/site-ccache" "share/guile/site/2.2"))))))) +(define-public guile-2.2.3 + ;; TODO: Make it the new 'guile-2.2' on the next rebuild cycle. + (package + (inherit guile-2.2) + (version "2.2.3") + (source (origin (inherit (package-source guile-2.2)) + (uri (list (string-append "mirror://gnu/guile/guile-" + version ".tar.xz") + (string-append + "https://wingolog.org/priv/guile-" + version ".tar.xz"))) + (sha256 + (base32 + "11j01agvnci2cx32wwpqs9078856yxmvs15gcsz7ganpkj2ahlw3")))))) + (define-public guile-2.2/fixed ;; A package of Guile 2.2 that's rarely changed. It is the one used ;; in the `base' module, and thus changing it entails a full rebuild. -- cgit v1.2.3 From f4548394d4f7fa8679f297f92f6b10f5623017b7 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 15:16:05 +0100 Subject: gnu: java: Fix several synopses & descriptions. * gnu/packages/java.scm (java-plexus-classworlds)[description]: Fix typo and use @code. (java-plexus-container-default-bootstrap)[synopsis]: Hyphenate for clarity, as done in the description. [description]: Fix typo and use @dfn. (java-jmh)[description]: Fix typo. (java-xerial-core)[synopsis, description]: Fix typos. --- gnu/packages/java.scm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index e2b30e355c..c9fbbb0a45 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2016, 2017 Alex Vong +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -2479,8 +2480,8 @@ (define-public java-plexus-classworlds `(("java-junit" ,java-junit))) (home-page "http://codehaus-plexus.github.io/plexus-classworlds/") (synopsis "Java class loader framework") - (description "Plexus classworlds replaces the native ClassLoader mechanism -of Java. It is especially usefull for dynamic loading of application + (description "Plexus classworlds replaces the native @code{ClassLoader} +mechanism of Java. It is especially useful for dynamic loading of application components.") (license license:asl2.0))) @@ -2517,9 +2518,9 @@ (define-public java-plexus-container-default-bootstrap ("junit" ,java-junit) ("guava" ,java-guava))) (home-page "https://github.com/codehaus-plexus/plexus-containers") - (synopsis "Inversion of controll container") + (synopsis "Inversion-of-control container") (description "Plexus-default-container is Plexus' inversion-of-control -(IoC) container. It is composed of its public API and its default +(@dfn{IoC}) container. It is composed of its public API and its default implementation.") (license license:asl2.0))) @@ -3084,7 +3085,7 @@ (define-public java-jmh (synopsis "Benchmark harness for the JVM") (description "JMH is a Java harness for building, running, and analysing nano/micro/milli/macro benchmarks written in Java and other languages -targetting the JVM.") +targeting the JVM.") ;; GPLv2 only (license license:gpl2))) @@ -7363,9 +7364,9 @@ (define-public java-xerial-core `(("junit" ,java-junit) ("hamcrest" ,java-hamcrest-core))) (home-page "https://github.com/xerial/xerial-java") - (synopsis "Data managment libraries for Java") + (synopsis "Data management libraries for Java") (description "Xerial is a set of data management libraries for the Java -programming language. The ulitimate goal of the Xerial project is to manage +programming language. The ultimate goal of the Xerial project is to manage everything as database, including class objects, text format data, data streams, etc.") (license license:asl2.0))) -- cgit v1.2.3 From 1a1cf03f2488232a3f3bf6d543b512c5efc80c9f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 30 Nov 2017 14:33:36 +0100 Subject: gnu: ghc-aeson-qq: Update to 0.8.2. * gnu/packages/haskell-web.scm (ghc-aeson-qq): Update to 0.8.2. --- gnu/packages/haskell-web.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index 7a786bfe82..bbbbfba53c 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2016 Ludovic Courtès ;;; Copyright © 2017 rsiddharth +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -791,14 +792,14 @@ (define-public ghc-aeson-pretty (define-public ghc-aeson-qq (package (name "ghc-aeson-qq") - (version "0.8.1") + (version "0.8.2") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" "aeson-qq/aeson-qq-" version ".tar.gz")) (sha256 (base32 - "1z8kh3qjc4khadz1ijdqm7fbk7dh17sisqhpwd3c9aibj2927k9d")))) + "0ln13jqyfh5726hdrk1rad9a6cgrrj201plmwcfcpvq18v4m5ckd")))) (build-system haskell-build-system) (inputs `(("ghc-base-compat" ,ghc-base-compat) -- cgit v1.2.3 From 92cd94648c7da546dc1c643505e6dfda4396256d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 30 Nov 2017 15:33:36 +0100 Subject: gnu: ghc-array: Update to 0.5.2.0. * gnu/packages/haskell.scm (ghc-array): Update to 0.5.2.0. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 6ba5642101..eee5e9206d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -6084,7 +6084,7 @@ (define-public ghc-graphviz (define-public ghc-array (package (name "ghc-array") - (version "0.5.1.1") + (version "0.5.2.0") (source (origin (method url-fetch) @@ -6093,7 +6093,7 @@ (define-public ghc-array version ".tar.gz")) (sha256 (base32 - "08r2rq4blvc737mrg3xhlwiw13jmsz5dlf2fd0ghb9cdaxc6kjc9")))) + "12v83s2imxb3p2crnlzrpjh0nk6lpysw9bdk9yahs6f37csa5jaj")))) (build-system haskell-build-system) (home-page "http://hackage.haskell.org/package/array") -- cgit v1.2.3 From c24bfc3d2c74465b5c243e4e0f7d04789f8a784e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 30 Nov 2017 17:38:31 +0100 Subject: gnu: ghc-asn1-encoding: Update to 0.9.5. * gnu/packages/haskell-crypto.scm (ghc-asn1-encoding): Update to 0.9.5. --- gnu/packages/haskell-crypto.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm index 9501fb2c39..c45d23b076 100644 --- a/gnu/packages/haskell-crypto.scm +++ b/gnu/packages/haskell-crypto.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015, 2017 Ricardo Wurmus ;;; Copyright © 2016 ng0 ;;; Copyright © 2017 rsiddharth +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,7 +57,7 @@ (define-public ghc-asn1-types (define-public ghc-asn1-encoding (package (name "ghc-asn1-encoding") - (version "0.9.3") + (version "0.9.5") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -64,7 +65,7 @@ (define-public ghc-asn1-encoding version ".tar.gz")) (sha256 (base32 - "01ki5msrpccgdbdiaaa5a9zw0icp1hki4hca8qx6hzlp0rcf1mwh")))) + "0adgbamyq0mj1l1hdq4zyyllay714bac1wl0rih3fv1z6vykp1hy")))) (build-system haskell-build-system) (inputs `(("ghc-hourglass" ,ghc-hourglass) -- cgit v1.2.3 From 17c3a50dfdf0816660206cf11bd077e4f095a80d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 30 Nov 2017 19:26:57 +0100 Subject: gnu: ghc-asn1-types: Update to 0.3.2. * gnu/packages/haskell-crypto.scm (ghc-asn1-types): Update to 0.3.2. --- gnu/packages/haskell-crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm index c45d23b076..f1c9b9f26c 100644 --- a/gnu/packages/haskell-crypto.scm +++ b/gnu/packages/haskell-crypto.scm @@ -34,7 +34,7 @@ (define-module (gnu packages haskell-crypto) (define-public ghc-asn1-types (package (name "ghc-asn1-types") - (version "0.3.1") + (version "0.3.2") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -42,7 +42,7 @@ (define-public ghc-asn1-types version ".tar.gz")) (sha256 (base32 - "1iif9yrh4mmj249gyvam0zb2vb3jnlz777gahh2z9sx00dsx9rja")))) + "05vjchyqiy9n275cygffhn0ma7fz7jx52j0dcdm9qm8h9bziymqc")))) (build-system haskell-build-system) (inputs `(("ghc-memory" ,ghc-memory) -- cgit v1.2.3 From 3f691f71965f35891932a32b54a8ca4c32e3221f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 06:24:35 +0100 Subject: gnu: ghc-blaze-builder: Update to 0.4.0.2. * gnu/packages/haskell.scm (ghc-blaze-builder): Update to 0.4.0.2. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index eee5e9206d..e9a86e25e5 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3481,7 +3481,7 @@ (define-public ghc-base-compat (define-public ghc-blaze-builder (package (name "ghc-blaze-builder") - (version "0.4.0.1") + (version "0.4.0.2") (source (origin (method url-fetch) @@ -3491,7 +3491,7 @@ (define-public ghc-blaze-builder ".tar.gz")) (sha256 (base32 - "1id3w33x9f7q5m3xpggmvzw03bkp94bpfyz81625bldqgf3yqdn1")))) + "1m33y6p5xldni8p4fzg8fmsyqvkfmnimdamr1xjnsmgm3dkf9lws")))) (build-system haskell-build-system) (arguments `(#:tests? #f)) ; FIXME: Missing test libraries. (inputs -- cgit v1.2.3 From b59a8fd49afa79bb9c3bf5e71dce6f3eec2a0808 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 30 Nov 2017 03:10:35 +0100 Subject: gnu: Add mtr. * gnu/packages/networking.scm (mtr): New public variable. --- gnu/packages/networking.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 1f4906b7b5..755f76b153 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1536,3 +1536,34 @@ (define-public libnet functionality. Using libnet, quick and simple packet assembly applications can be whipped up with little effort.") (license license:bsd-2))) + +(define-public mtr + (package + (name "mtr") + (version "0.92") + (source + (origin + (method url-fetch) + (uri (string-append "ftp://ftp.bitwizard.nl/" name "/" + name "-" version ".tar.gz")) + (sha256 + (base32 "10j3ds3p27jygys4x08kj8fi3zlsgiv72xsfazkah6plwawrv5zj")))) + (build-system gnu-build-system) + (inputs + `(("libcap" ,libcap) + ("ncurses" ,ncurses))) + (native-inputs + ;; The 0.92 release tarball still requires the ‘autoheader’ tool. + `(("autoconf" ,autoconf))) + (arguments + `(#:tests? #f)) ; tests require network access + (home-page "https://www.bitwizard.nl/mtr/") + (synopsis "Network diagnostic tool") + (description + "@dfn{mtr} (My TraceRoute) combines the functionality of the +@command{traceroute} and @command{ping} programs in a single network diagnostic +tool. @command{mtr} uses ICMP ECHO packets to detect intermediate routers (or +@dfn{hops}) between the local host and a user-specified destination. It then +continually measures the response time and packet loss at each hop, and +displays the results in real time.") + (license license:gpl2+))) -- cgit v1.2.3 From b9fb70ca65f2f76919a093cb73150082466f4203 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 1 Dec 2017 16:39:08 +0100 Subject: gnu: glusterfs: Replace hardcoded FHS references. * gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/file-systems.scm (glusterfs)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/file-systems.scm | 4 +- .../glusterfs-use-PATH-instead-of-hardcodes.patch | 140 +++++++++++++++++++++ 3 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch diff --git a/gnu/local.mk b/gnu/local.mk index 05a86ac177..2e74c4d813 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -691,6 +691,7 @@ dist_patch_DATA = \ %D%/packages/patches/glibc-o-largefile.patch \ %D%/packages/patches/glibc-vectorized-strcspn-guards.patch \ %D%/packages/patches/glibc-versioned-locpath.patch \ + %D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch \ %D%/packages/patches/glog-gcc-5-demangling.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 6c5e427aa4..621c70b0d5 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -150,7 +150,9 @@ (define-public glusterfs "/glusterfs-" version ".tar.gz")) (sha256 (base32 - "02sn9s3jjva2i1l47y3in326n8jgp57rbykz5s8m87y4bzpw0ym1")))) + "02sn9s3jjva2i1l47y3in326n8jgp57rbykz5s8m87y4bzpw0ym1")) + (patches + (search-patches "glusterfs-use-PATH-instead-of-hardcodes.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch b/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch new file mode 100644 index 0000000000..d05b4351b3 --- /dev/null +++ b/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch @@ -0,0 +1,140 @@ +This patch was taken from Nixpkgs. + +From 616381bc25b0e90198683fb049f994e82d467d96 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= +Date: Sat, 13 May 2017 02:45:49 +0200 +Subject: [PATCH] Don't use hardcoded /sbin, /usr/bin etc. paths. Fixes + #1450546. + +Instead, rely on programs to be in PATH, as gluster already +does in many places across its code base. + +Change-Id: Id21152fe42f5b67205d8f1571b0656c4d5f74246 +--- + contrib/fuse-lib/mount-common.c | 8 ++++---- + xlators/mgmt/glusterd/src/glusterd-ganesha.c | 6 +++--- + xlators/mgmt/glusterd/src/glusterd-quota.c | 6 +++--- + xlators/mgmt/glusterd/src/glusterd-snapshot.c | 4 ++-- + xlators/mgmt/glusterd/src/glusterd-utils.c | 14 +------------- + 5 files changed, 13 insertions(+), 25 deletions(-) + +diff --git a/contrib/fuse-lib/mount-common.c b/contrib/fuse-lib/mount-common.c +index e9f80fe81..6380dd867 100644 +--- a/contrib/fuse-lib/mount-common.c ++++ b/contrib/fuse-lib/mount-common.c +@@ -255,16 +255,16 @@ fuse_mnt_umount (const char *progname, const char *abs_mnt, + exit (1); + } + #ifdef GF_LINUX_HOST_OS +- execl ("/bin/umount", "/bin/umount", "-i", rel_mnt, ++ execl ("umount", "umount", "-i", rel_mnt, + lazy ? "-l" : NULL, NULL); +- GFFUSE_LOGERR ("%s: failed to execute /bin/umount: %s", ++ GFFUSE_LOGERR ("%s: failed to execute umount: %s", + progname, strerror (errno)); + #elif __NetBSD__ + /* exitting the filesystem causes the umount */ + exit (0); + #else +- execl ("/sbin/umount", "/sbin/umount", "-f", rel_mnt, NULL); +- GFFUSE_LOGERR ("%s: failed to execute /sbin/umount: %s", ++ execl ("umount", "umount", "-f", rel_mnt, NULL); ++ GFFUSE_LOGERR ("%s: failed to execute umount: %s", + progname, strerror (errno)); + #endif /* GF_LINUX_HOST_OS */ + exit (1); +diff --git a/xlators/mgmt/glusterd/src/glusterd-quota.c b/xlators/mgmt/glusterd/src/glusterd-quota.c +index 0e6629cf0..fcb4738b7 100644 +--- a/xlators/mgmt/glusterd/src/glusterd-quota.c ++++ b/xlators/mgmt/glusterd/src/glusterd-quota.c +@@ -30,7 +30,7 @@ + + #ifndef _PATH_SETFATTR + # ifdef GF_LINUX_HOST_OS +-# define _PATH_SETFATTR "/usr/bin/setfattr" ++# define _PATH_SETFATTR "setfattr" + # endif + # ifdef __NetBSD__ + # define _PATH_SETFATTR "/usr/pkg/bin/setfattr" +@@ -335,7 +335,7 @@ _glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv, + + if (type == GF_QUOTA_OPTION_TYPE_ENABLE || + type == GF_QUOTA_OPTION_TYPE_ENABLE_OBJECTS) +- runner_add_args (&runner, "/usr/bin/find", ".", NULL); ++ runner_add_args (&runner, "find", ".", NULL); + + else if (type == GF_QUOTA_OPTION_TYPE_DISABLE) { + +@@ -351,7 +351,7 @@ _glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv, + VIRTUAL_QUOTA_XATTR_CLEANUP_KEY, "1", + "{}", "\\", ";", NULL); + #else +- runner_add_args (&runner, "/usr/bin/find", ".", ++ runner_add_args (&runner, "find", ".", + "-exec", _PATH_SETFATTR, "-n", + VIRTUAL_QUOTA_XATTR_CLEANUP_KEY, "-v", + "1", "{}", "\\", ";", NULL); +diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot.c b/xlators/mgmt/glusterd/src/glusterd-snapshot.c +index da0152366..f0d135350 100644 +--- a/xlators/mgmt/glusterd/src/glusterd-snapshot.c ++++ b/xlators/mgmt/glusterd/src/glusterd-snapshot.c +@@ -121,7 +121,7 @@ glusterd_build_snap_device_path (char *device, char *snapname, + } + + runinit (&runner); +- runner_add_args (&runner, "/sbin/lvs", "--noheadings", "-o", "vg_name", ++ runner_add_args (&runner, "lvs", "--noheadings", "-o", "vg_name", + device, NULL); + runner_redir (&runner, STDOUT_FILENO, RUN_PIPE); + snprintf (msg, sizeof (msg), "Get volume group for device %s", device); +@@ -1982,7 +1982,7 @@ glusterd_is_thinp_brick (char *device, uint32_t *op_errno) + + runinit (&runner); + +- runner_add_args (&runner, "/sbin/lvs", "--noheadings", "-o", "pool_lv", ++ runner_add_args (&runner, "lvs", "--noheadings", "-o", "pool_lv", + device, NULL); + runner_redir (&runner, STDOUT_FILENO, RUN_PIPE); + runner_log (&runner, this->name, GF_LOG_DEBUG, msg); +diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c +index 51db13df0..6fa7b92f9 100644 +--- a/xlators/mgmt/glusterd/src/glusterd-utils.c ++++ b/xlators/mgmt/glusterd/src/glusterd-utils.c +@@ -6027,7 +6027,6 @@ static struct fs_info { + char *fs_tool_pattern; + char *fs_tool_pkg; + } glusterd_fs[] = { +- /* some linux have these in /usr/sbin/and others in /sbin/? */ + { "xfs", "xfs_info", NULL, "isize=", "xfsprogs" }, + { "ext3", "tune2fs", "-l", "Inode size:", "e2fsprogs" }, + { "ext4", "tune2fs", "-l", "Inode size:", "e2fsprogs" }, +@@ -6048,7 +6047,6 @@ glusterd_add_inode_size_to_dict (dict_t *dict, int count) + char *trail = NULL; + runner_t runner = {0, }; + struct fs_info *fs = NULL; +- char fs_tool_name[256] = {0, }; + static dict_t *cached_fs = NULL; + + memset (key, 0, sizeof (key)); +@@ -6085,17 +6083,7 @@ glusterd_add_inode_size_to_dict (dict_t *dict, int count) + cur_word = "N/A"; + goto cached; + } +- +- snprintf (fs_tool_name, sizeof (fs_tool_name), +- "/usr/sbin/%s", fs->fs_tool_name); +- if (sys_access (fs_tool_name, R_OK|X_OK) == 0) +- runner_add_arg (&runner, fs_tool_name); +- else { +- snprintf (fs_tool_name, sizeof (fs_tool_name), +- "/sbin/%s", fs->fs_tool_name); +- if (sys_access (fs_tool_name, R_OK|X_OK) == 0) +- runner_add_arg (&runner, fs_tool_name); +- } ++ runner_add_arg (&runner, fs->fs_tool_name); + break; + } + } +-- +2.12.0 + -- cgit v1.2.3 From 27c4796ef957a854c619c948abf0fd276f8d5ccb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 16:40:25 +0100 Subject: gnu: tor: Update to 3.1.9 [security fixes]. This release contains fixes for TROVE-2017-{009,010,011,012,013}. * gnu/packages/tor.scm (tor): Update to 3.1.9. --- gnu/packages/tor.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 6cf833464c..055916a9a0 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -47,14 +47,14 @@ (define-module (gnu packages tor) (define-public tor (package (name "tor") - (version "0.3.1.8") + (version "0.3.1.9") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "18dinpj03d036rashlad16lv7j2hba8gg742z07l37x5c242kxkx")))) + "09ixizsr635qyshvrn1m5asjkaz4fm8dx80lc3ajyy0fi7vh86vf")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-gcc-hardening" -- cgit v1.2.3 From 2e7825bc7b73f6634724ffeb104a6a98d430c5ab Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 1 Dec 2017 16:25:35 +0100 Subject: gnu: guile-sly: Do not propagate Guile. * gnu/packages/guile.scm (guile-sly)[propagated-inputs]: Move GUILE-2.2 to... [inputs]: ... here. --- gnu/packages/guile.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 03c7f70523..c314acb817 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1386,11 +1386,11 @@ (define-public guile-sly (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs - `(("guile" ,guile-2.2) - ("guile-sdl" ,guile-sdl) + `(("guile-sdl" ,guile-sdl) ("guile-opengl" ,guile-opengl))) (inputs - `(("gsl" ,gsl) + `(("guile" ,guile-2.2) + ("gsl" ,gsl) ("freeimage" ,freeimage) ("mesa" ,mesa))) (synopsis "2D/3D game engine for GNU Guile") -- cgit v1.2.3 From cea25b08bfd22bda940e5ac7ea29d4fa035d8303 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 1 Dec 2017 18:09:22 +0100 Subject: records: Use 'make-struct/no-tail'. * guix/records.scm (make-syntactic-constructor): Use 'make-struct/no-tail' as 'make-struct' is deprecated as of 2.2.3. --- guix/records.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/records.scm b/guix/records.scm index 1f00e16603..c02395f2ae 100644 --- a/guix/records.scm +++ b/guix/records.scm @@ -81,7 +81,7 @@ (define (field-inherited-value f) (record-error 'name s "extraneous field initializers ~a" unexpected))) - #`(make-struct type 0 + #`(make-struct/no-tail type #,@(map (lambda (field index) (or (field-inherited-value field) (if (innate-field? field) -- cgit v1.2.3 From 2a4050341f10d9d3e3db0c64ff94279f3fa4d37c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 1 Dec 2017 18:30:07 +0100 Subject: tests: Avoid double slash in URIs. * tests/publish.scm ("with cache"): Remove extra slash in NAR-URL. This would lead to a 'uri-error' exception on Guile 2.2.3. --- tests/publish.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/publish.scm b/tests/publish.scm index f33898fd58..352caf5325 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -352,7 +352,7 @@ (define (wait-for-file file) (let* ((base "http://localhost:6797/") (part (store-path-hash-part %item)) (url (string-append base part ".narinfo")) - (nar-url (string-append base "/nar/gzip/" (basename %item))) + (nar-url (string-append base "nar/gzip/" (basename %item))) (cached (string-append cache "/gzip/" (basename %item) ".narinfo")) (nar (string-append cache "/gzip/" -- cgit v1.2.3 From e2721a05e7d778bdf845b7cb7a42fd9f76095b69 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 1 Dec 2017 18:31:16 +0100 Subject: Do not set '%fresh-auto-compile'. * guix/scripts/offload.scm (build-machines): Comment out '(set! %fresh-auto-compile #t)' since with Guile 2.2.3 it could lead to an actual rebuild of everything that gets loaded from there on. See . * guix/ui.scm (load*): Likewise. --- guix/scripts/offload.scm | 2 +- guix/ui.scm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index 6a2485a007..ebd0bf783d 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -118,7 +118,7 @@ (define* (build-machines #:optional (file %machine-file)) (catch #t (lambda () ;; Avoid ABI incompatibility with the record. - (set! %fresh-auto-compile #t) + ;; (set! %fresh-auto-compile #t) (save-module-excursion (lambda () diff --git a/guix/ui.scm b/guix/ui.scm index 13cbe3a0f7..9ed8f37521 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -195,7 +195,7 @@ (define tag (catch #t (lambda () ;; XXX: Force a recompilation to avoid ABI issues. - (set! %fresh-auto-compile #t) + ;; (set! %fresh-auto-compile #t) (set! %load-should-auto-compile #t) (save-module-excursion -- cgit v1.2.3 From 31e557c1d99520e63b98010a249f446cbb5e841e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 01:58:11 +0100 Subject: gnu: nss-certs: Update to 3.34.1. * gnu/packages/certs.scm (nss-certs): Update to 3.34.1. --- gnu/packages/certs.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index f266d75b62..30e53e3458 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016, 2017 Ludovic Courtès ;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -74,7 +75,7 @@ (define certdata2pem (define-public nss-certs (package (name "nss-certs") - (version "3.34") + (version "3.34.1") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -85,7 +86,7 @@ (define-public nss-certs "nss-" version ".tar.gz"))) (sha256 (base32 - "1x9acn47iva9j42kxfamgvn99lrnqv47fgn3rz3j6c1ph50rai8d")))) + "186x33wsk4mzjz7dzbn8p0py9a0nzkgzpfkdv4rlyy5gghv5vhd3")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs -- cgit v1.2.3 From 763269f9ace31e265132aa06fc282a250d6acf3e Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Sat, 2 Dec 2017 13:45:36 +0200 Subject: gnu: keepassxc: Update to 2.2.2. * password-utils.scm (keepassxc): Update to 2.2.2. --- gnu/packages/password-utils.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index a75881701a..64168cc9d6 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2017 Jelle Licht ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2017 Nicolas Goaziou +;;; Copyright © 2017 Manolis Fragkiskos Ragkousis ;;; ;;; This file is part of GNU Guix. ;;; @@ -86,7 +87,7 @@ (define-public pwgen (define-public keepassxc (package (name "keepassxc") - (version "2.2.1") + (version "2.2.2") (source (origin (method url-fetch) @@ -95,7 +96,7 @@ (define-public keepassxc version "-src.tar.xz")) (sha256 (base32 - "1gkxsv3g4pkzbjkd1c27k15m2b5y2fqnnijphnaiv542yk7csqb7")))) + "0wrl8kxb16wzdgfjj057yv18cfg0b8z8lxp1fl2q8fkdgr7phm9g")))) (build-system cmake-build-system) (inputs `(("libgcrypt" ,libgcrypt) -- cgit v1.2.3 From 04bbd07218b5e67068219b90ff99df9580c47c0e Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sat, 2 Dec 2017 13:58:05 +0100 Subject: system: vm: Fix typo in comment. * gnu/system/vm.scm (qemu-image): Fix typo targetting -> targeting. --- gnu/system/vm.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 8cd4c064f9..b68cce3eb5 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -324,7 +324,7 @@ (define* (qemu-image #:key (flags '(boot)) (initializer initialize))) ;; Append a small EFI System Partition for use with UEFI - ;; bootloaders if we are not targetting ARM because UEFI + ;; bootloaders if we are not targeting ARM because UEFI ;; support in U-Boot is experimental. ;; ;; FIXME: ‘target-arm32?’ may be not operate on the right -- cgit v1.2.3 From 63b31b567e4716e6dacb764847f5cdebcb9ed8e5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 2 Dec 2017 11:02:24 +0100 Subject: gnu: xfig: Don't ignore 'xmkmf' exit code. Suggested by Mike Gerwitz . * gnu/packages/xfig.scm (xfig)[arguments]: Use 'invoke' when invoking 'xmkmf'. --- gnu/packages/xfig.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xfig.scm b/gnu/packages/xfig.scm index 64ca57028f..e51558e0be 100644 --- a/gnu/packages/xfig.scm +++ b/gnu/packages/xfig.scm @@ -90,7 +90,7 @@ (define-public xfig (("XCOMM USEINLINE") "USEINLINE")) ;; The -a argument is required in order to pick up the correct paths ;; to several X header files. - (zero? (system* "xmkmf" "-a")) + (invoke "xmkmf" "-a") ;; Reset some variables that are inherited from imake templates (substitute* "Makefile" ;; These imake variables somehow remain undefined -- cgit v1.2.3 From 3c97322a6e44cfb5aadf6dadfbed65170786a913 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 1 Dec 2017 10:46:53 +0100 Subject: gnu: Add groff-minimal. * gnu/packages/groff.scm (groff-minimal): New variable. --- gnu/packages/groff.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/groff.scm b/gnu/packages/groff.scm index 67dd1dbfa6..9b949f8ff3 100644 --- a/gnu/packages/groff.scm +++ b/gnu/packages/groff.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,6 +66,52 @@ (define-public groff (license gpl3+) (home-page "https://www.gnu.org/software/groff/"))) +(define-public groff-minimal + ;; Minimialist groff for use by man-db. Its closure size is less than half + ;; that of the full-blown groff. + (package + (inherit groff) + (name "groff-minimal") + (synopsis "Minimalist variant of Groff for use by man-db") + (outputs '("out")) + + ;; Omit the DVI, PS, PDF, and HTML backends. + (inputs '()) + (native-inputs `(("bison" ,bison) + ("perl" ,perl))) + + (arguments + `(#:disallowed-references (,perl) + + #:configure-flags '("--docdir=/tmp/trash/doc") + + #:phases (modify-phases %standard-phases + (add-after 'install 'remove-non-essential-programs + (lambda* (#:key outputs #:allow-other-keys) + ;; Keep only the programs that man-db needs at run time, + ;; and make sure we don't pull in Perl. + (let ((out (assoc-ref outputs "out")) + (kept '("eqn" "neqn" "pic" "tbl" "refer" + "nroff" "groff" "troff" "grotty"))) + (for-each (lambda (file) + (unless (member (basename file) kept) + (delete-file file))) + (find-files (string-append out "/bin"))) + + ;; Remove a bunch of unneeded Perl scripts. + (for-each delete-file (find-files out "\\.pl$")) + (for-each delete-file + (find-files out "BuildFoundries")) + + ;; Remove ~3 MiB from share/groff/X.Y/font/devBACKEND + ;; corresponding to the unused backends. + (for-each delete-file-recursively + (find-files out "^dev(dvi|ps|pdf|html|lj4)$" + #:directories? #t)) + #t)))) + + ,@(package-arguments groff))))) + ;; There are no releases, so we take the latest commit. (define-public roffit (let ((commit "e5228388e3faf2b7f1ae5bd048ad46ed565304c6") -- cgit v1.2.3 From c85f069148b33115f67f260e6ef2f10e4e80707e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 1 Dec 2017 10:49:47 +0100 Subject: gnu: man-db: Use 'groff-minimal' at run time. This reduces the closure of man-db from 175 MiB to 97 MiB. * gnu/packages/man.scm (man-db)[native-inputs]: Add GROFF. [inputs]: Replace GROFF with GROFF-MINIMAL. [arguments]: #:configure-flags now refers to GROFF-MINIMAL. Add #:disallowed-references. --- gnu/packages/man.scm | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 4f6ed15750..8abdaf48f6 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2014, 2015 Ludovic Courtès +;;; Copyright © 2012, 2014, 2015, 2017 Ludovic Courtès ;;; Copyright © 2014 David Thompson ;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Alex Kost @@ -68,7 +68,7 @@ (define-public man-db "0gqgs4zc3r87apns0k5qp689p2ylxx2596s2mkmkxjjay99brv88")))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases (add-after 'patch-source-shebangs 'patch-test-shebangs (lambda* (#:key outputs #:allow-other-keys) @@ -88,6 +88,7 @@ (define-public man-db #t))) #:configure-flags (let ((groff (assoc-ref %build-inputs "groff")) + (groff-minimal (assoc-ref %build-inputs "groff-minimal")) (less (assoc-ref %build-inputs "less")) (gzip (assoc-ref %build-inputs "gzip")) (bzip2 (assoc-ref %build-inputs "bzip2")) @@ -110,17 +111,24 @@ (define-public man-db (string-append "--with-systemdtmpfilesdir=" %output "/lib/tmpfiles.d")) (map (lambda (prog) - (string-append "--with-" prog "=" groff "/bin/" prog)) + (string-append "--with-" prog "=" groff-minimal + "/bin/" prog)) '("nroff" "eqn" "neqn" "tbl" "refer" "pic")))) + + ;; At run time we should refer to GROFF-MINIMAL, not GROFF (the latter + ;; pulls in Perl.) + #:disallowed-references (,groff) + #:modules ((guix build gnu-build-system) (guix build utils) (srfi srfi-1)))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("groff" ,groff))) ;needed at build time (troff, grops, soelim, etc.) (inputs `(("flex" ,flex) ("gdbm" ,gdbm) - ("groff" ,groff) + ("groff-minimal" ,groff-minimal) ("less" ,less) ("libpipeline" ,libpipeline) ("util-linux" ,util-linux))) -- cgit v1.2.3 From 63f5656c786b5ad502b9bd795d3449221b7e1fc1 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 14:17:16 +0100 Subject: gnu: mtr: Don't mention only ICMP ECHO. * gnu/packages/networking.scm (mtr)[description]: Allude to the fact that mtr can send more than mere ICMP. --- gnu/packages/networking.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 755f76b153..086bbe6085 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1562,8 +1562,8 @@ (define-public mtr (description "@dfn{mtr} (My TraceRoute) combines the functionality of the @command{traceroute} and @command{ping} programs in a single network diagnostic -tool. @command{mtr} uses ICMP ECHO packets to detect intermediate routers (or -@dfn{hops}) between the local host and a user-specified destination. It then -continually measures the response time and packet loss at each hop, and +tool. @command{mtr} can use several network protocols to detect intermediate +routers (or @dfn{hops}) between the local host and a user-specified destination. +It then continually measures the response time and packet loss at each hop, and displays the results in real time.") (license license:gpl2+))) -- cgit v1.2.3 From 5247e79e5f095624a6795b607d9e4f7843d8f05a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 16:18:34 +0100 Subject: gnu: youtube-dl: Update to 2017.12.02. * gnu/packages/video.scm (youtube-dl): Update to 2017.12.02. --- 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 a353d88d00..7777b60aac 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1142,7 +1142,7 @@ (define-public libvpx (define-public youtube-dl (package (name "youtube-dl") - (version "2017.11.26") + (version "2017.12.02") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1150,7 +1150,7 @@ (define-public youtube-dl version ".tar.gz")) (sha256 (base32 - "0nidgmi003my4ypl833hsavnmxg41rncc9khxsvmc96di7n0mls7")))) + "1qf5gz00cnxzab3cwh9kxzhs08mddm0nwvb7j5z5xxzhi6wkslha")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion -- cgit v1.2.3 From 72f6caadcbde79417592ccf68fbb14e5ee58ebfe Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 2 Dec 2017 22:41:27 +0200 Subject: gnu: elogind: Add file-name for source. * gnu/packages/freedesktop.scm (elogind)[source]: Add file-name field. --- gnu/packages/freedesktop.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index fa77fe2649..6a4e118f76 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -221,6 +221,7 @@ (define-public elogind (method url-fetch) (uri (string-append "https://github.com/elogind/elogind/" "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1qcxian48z2dj5gfmp7brrngdydqf2jm00f4rjr5sy1myh8fy931")) -- cgit v1.2.3 From bf57e1c7089e5337d5c8dc2a2ad3d018b95df6a8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 2 Dec 2017 18:05:21 +0100 Subject: uuid: Fix typo in comment. * gnu/system/uuid.scm: Fix typo in comment. --- gnu/system/uuid.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm index eaddfaed05..73695ddeb8 100644 --- a/gnu/system/uuid.scm +++ b/gnu/system/uuid.scm @@ -237,7 +237,7 @@ (define* (string->uuid str #:optional (type 'dce)) ;; This is necessary to serialize bytevectors with the right printer in some ;; circumstances. For instance, GRUB "search --fs-uuid" command compares the ;; string representation of UUIDs, not the raw bytes; thus, when emitting a -;; GRUB 'search' command, we need to procedure the right string representation +;; GRUB 'search' command, we need to produce the right string representation ;; (see ). (define-record-type (make-uuid type bv) -- cgit v1.2.3 From 7bf74638ee0827a61c2fc69fdc69a68242966f1b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 2 Dec 2017 20:52:15 +0100 Subject: build: Do not compile (gnu build shepherd). * gnu/local.mk (GNU_SYSTEM_MODULES): Move 'build/shepherd.scm' to... (MODULES_NOT_COMPILED): ... here. --- gnu/local.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/local.mk b/gnu/local.mk index 2e74c4d813..9dd0ce4f8a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -497,7 +497,6 @@ GNU_SYSTEM_MODULES = \ %D%/build/linux-initrd.scm \ %D%/build/linux-modules.scm \ %D%/build/marionette.scm \ - %D%/build/shepherd.scm \ %D%/build/vm.scm \ \ %D%/tests.scm \ @@ -520,6 +519,7 @@ GNU_SYSTEM_MODULES = \ # Modules that do not need to be compiled. MODULES_NOT_COMPILED += \ + %D%/build/shepherd.scm \ %D%/build/svg.scm patchdir = $(guilemoduledir)/%D%/packages/patches -- cgit v1.2.3 From 22bf86a6712d3440fa7463c2f2b55c65bf40595a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 2 Dec 2017 20:53:17 +0100 Subject: linux-boot: Remove unneeded import. * gnu/build/linux-boot.scm: Remove unnecessary autoload of (system base compile). --- gnu/build/linux-boot.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index 8ac99af66c..2547f1e0af 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -21,7 +21,6 @@ (define-module (gnu build linux-boot) #:use-module (rnrs io ports) #:use-module (system repl error-handling) #:autoload (system repl repl) (start-repl) - #:autoload (system base compile) (compile-file) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 match) -- cgit v1.2.3 From 211e804758632d65b98a561a5c339938994e9247 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 3 Dec 2017 08:46:11 +0200 Subject: gnu: u-boot: Update to 2017.11. * gnu/packages/bootloaders.scm (u-boot): Update to 2017.11. --- gnu/packages/bootloaders.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index cee1b17019..3cffbcfeb6 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -333,7 +333,7 @@ (define-public dtc (define u-boot (package (name "u-boot") - (version "2017.07") + (version "2017.11") (source (origin (method url-fetch) (uri (string-append @@ -341,7 +341,7 @@ (define u-boot "u-boot-" version ".tar.bz2")) (sha256 (base32 - "1zzywk0fgngm1mfnhkp8d0v57rs51zr1y6rp4p03i6nbibfbyx2k")))) + "01bcsah5imy6m3fbjwhqywxg0pfk5fl8ks9ylb7kv3zmrb9qy0ba")))) (native-inputs `(("bc" ,bc) ("dtc" ,dtc) -- cgit v1.2.3 From 8c94393c6a6645d65d808a7bc59a69976e4a9325 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 3 Dec 2017 08:47:09 +0200 Subject: gnu: mescc-tools: Update to 0.3. * gnu/packages/mes.scm (mescc-tools): Update to 0.3. [supported-systems]: Remove field. --- gnu/packages/mes.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index dfa4211773..5b6c87992a 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Jan Nieuwenhuizen +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -106,7 +107,7 @@ (define-public mes (define-public mescc-tools (package (name "mescc-tools") - (version "0.2") + (version "0.3") (source (origin (method url-fetch) (uri (string-append @@ -116,9 +117,8 @@ (define-public mescc-tools (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0gmyczh88xcsmrmxqksbpaqidchj5hfqxqk7apx40k9r3vav6mnz")))) + "04lvyyp7isamgddrnfpi92lgqdflzdzx5kc2x8fxmgsjisy0dgr4")))) (build-system gnu-build-system) - (supported-systems '("i686-linux" "x86_64-linux")) (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:test-target "test" -- cgit v1.2.3 From 8c80f8ef9b6b40f7508bf7c9b6b79adbcf1d9203 Mon Sep 17 00:00:00 2001 From: Alex Sassmannshausen Date: Sun, 3 Dec 2017 14:17:46 +0100 Subject: gnu: guile-dsv: Update to 0.2.1 & correct sha256. * gnu/packages/guile.scm (guile-dsv): Update to 0.2.1. --- gnu/packages/guile.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index c314acb817..90630e8a36 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1507,16 +1507,16 @@ (define-public guile-dbd-sqlite3 (define-public guile-dsv (package (name "guile-dsv") - (version "0.2.0") + (version "0.2.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/artyom-poptsov/guile-dsv") - (commit "7d2e06a15e1d8478cd0e8fb4c79aec519dc4cfd0"))) + (commit "bdc5267d007478abc20ea96d7c459b7dd9560b3d"))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0ywb0hdbs4lcjag8b3id43fpyn5s6gscg7dk0n9ryigyvch80wxj")))) + "1irw6mz8998nwyhzrw9g94jcz60b9zljgqfmipaz1ybn8579qjx0")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) -- cgit v1.2.3 From 993490d3014b0882ca3e03457de62d8ad27aba5e Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 3 Dec 2017 14:40:24 +0100 Subject: gnu: giac-xcas: Update to 1.4.9-33. * gnu/packages/algebra.scm (giac-xcas): Update to 1.4.9-33. --- gnu/packages/algebra.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index ede137b22c..a7336066ef 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -207,7 +207,7 @@ (define-public gp2c (define-public giac-xcas (package (name "giac-xcas") - (version "1.4.9-17") + (version "1.4.9-33") (source (origin (method url-fetch) ;; "~parisse/giac" is not used because the maintainer regularly @@ -219,7 +219,7 @@ (define-public giac-xcas "source/giac_" version ".tar.gz")) (sha256 (base32 - "0fabw706hixp4da4pgkbjrlf9gk4xrmv404f884jb24bnmb5hbax")))) + "1f071j4l9ayri2cxka6bfdb6c0fsdl7q7wk345r7hxjfga69g9mv")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From 4016de5e7ceb42f9cfafd3e9c969b0ac36e8948a Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 3 Dec 2017 15:27:23 +0100 Subject: gnu: wireshark: Update to 2.4.3. * gnu/packages/networking.scm (wireshark): Update to 2.4.3. --- 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 086bbe6085..c60f255c3d 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -489,7 +489,7 @@ (define-public whois (define-public wireshark (package (name "wireshark") - (version "2.4.2") + (version "2.4.3") (source (origin (method url-fetch) @@ -497,7 +497,7 @@ (define-public wireshark version ".tar.xz")) (sha256 (base32 - "0zglapd3sz08p2z9x8a5va3jnz17b3n5a1bskf7f2dgx6m3v5b6i")))) + "0bpiby916k3k8bm7q8b1dflva6zs0a4ircskrck0d538dfcrb50q")))) (build-system gnu-build-system) (inputs `(("c-ares" ,c-ares) ("glib" ,glib) -- cgit v1.2.3 From 3d0ffa6cae4dd66e0994888c9510fef5652aeb96 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Dec 2017 15:46:40 +0100 Subject: gnu: git: Update to 2.15.1. * gnu/packages/version-control.scm (git): Update to 2.15.1. --- gnu/packages/version-control.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 22b296f4a0..f7550cb5c8 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -130,14 +130,14 @@ (define-public git (name "git") ;; XXX When updating Git, check if the special 'git:src' input to cgit needs ;; to be updated as well. - (version "2.15.0") + (version "2.15.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0siyxg1ppg6szjp8xp37zfq1fj97kbdxpigi3asmidqhkx41cw8h")))) + "0p04linqdywdf7m1hqa904fzqvgzplsxlzdqrn96j1j5gpyr174r")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -149,9 +149,8 @@ (define-public git "mirror://kernel.org/software/scm/git/git-manpages-" version ".tar.xz")) (sha256 - (base32 - "0xqwfg9xz5nw3ifaki87ahbz0xk5zmkgqs0ig357pxwh2i20kb92")))))) + "0mi609plzqqwx271hr9m5j4syggqx255bbzml6ca9j5fadywysvc")))))) (inputs `(("curl" ,curl) ("expat" ,expat) -- cgit v1.2.3 From d0d666f97b8f27746fc990cfe427301c45a30caa Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Dec 2017 16:33:15 +0100 Subject: gnu: libwebp: Update to 0.6.1. * gnu/packages/image.scm (libwebp): Update to 0.6.1. --- gnu/packages/image.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 2bcfdf7e1a..e220ac242a 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -802,7 +802,7 @@ (define-public vigra (define-public libwebp (package (name "libwebp") - (version "0.6.0") + (version "0.6.1") (source (origin (method url-fetch) @@ -811,7 +811,7 @@ (define-public libwebp ".tar.gz")) (sha256 (base32 - "0h1brwkyxc7lb8lc53aacdks5vc1y9hzngqi41gg7y6l56912a69")))) + "1ayq2zq0zbgf5yizbm32zh7p1vb8kibw74am6am1n5cz5mw3ql06")))) (build-system gnu-build-system) (inputs `(("freeglut" ,freeglut) -- cgit v1.2.3 From 0a3b5bb3e143e06b2557878f4e6cb4dd74797518 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 3 Dec 2017 15:37:45 +0100 Subject: gnu: weechat: Update to 2.0. * gnu/packages/irc.scm (weechat): Update to 2.0. --- gnu/packages/irc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 1e3bdebaea..fbcc0b6f1b 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -153,14 +153,14 @@ (define-public irssi (define-public weechat (package (name "weechat") - (version "1.9.1") + (version "2.0") (source (origin (method url-fetch) (uri (string-append "https://weechat.org/files/src/weechat-" version ".tar.xz")) (sha256 (base32 - "1z92hprvgp128svfbr25x8j9kd114j9929bzbqasrcd92v31z6f2")) + "1ix2izrlr5jx5vl49kz9jbib7cq9mr6i7iyxkcz6xjfrryx2s5x9")) (patches (search-patches "weechat-python.patch")))) (build-system cmake-build-system) (native-inputs `(("gettext" ,gettext-minimal) -- cgit v1.2.3 From 518957128f8c473fe762c1f41b254d6b7968eea1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 3 Dec 2017 11:37:15 +0100 Subject: gnu: Add gst123. * gnu/packages/gstreamer.scm (gst123): New variable. --- gnu/packages/gstreamer.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index a57676fdf3..3333ca87fd 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Leo Famulari +;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +46,7 @@ (define-module (gnu packages gstreamer) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages mp3) + #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages qt) @@ -469,3 +471,31 @@ (define-public python2-gst (propagated-inputs `(("gst-plugins-base" ,gst-plugins-base) ("python-pygobject" ,python2-pygobject))))) + +(define-public gst123 + (package + (name "gst123") + (version "0.3.5") + (source (origin + (method url-fetch) + (uri (string-append "http://space.twc.de/~stefan/gst123/gst123-" + version ".tar.bz2")) + (sha256 + (base32 + "0zaa117n4wkya9p903vkj8hj58lmdb66pxsdx5wwcv7nffbp5d67")))) + (build-system gnu-build-system) + (inputs + `(("gtk+" ,gtk+-2) + ("ncurses" ,ncurses) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://space.twc.de/~stefan/gst123.php") + (synopsis "Flexible command line media player based on gstreamer") + (description "The program gst123 is designed to be a more flexible command +line player in the spirit of ogg123 and mpg123, based on the gstreamer media +framework. It plays all file formats gstreamer supports, so if you have a +music collection which contains different file formats, like flac, ogg and +mp3, you can use gst123 to play all your music files.") + (license license:lgpl2.0+))) -- cgit v1.2.3 From a36047422fedae1629f973a975e08d9c6941d0b4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 3 Dec 2017 17:21:43 +0100 Subject: gnu: faust: Update to 0.9.90. * gnu/packages/audio.scm (faust): Update to 0.9.90. [source]: Download sources via git-fetch. [arguments]: Add phase "fix-permissions". --- gnu/packages/audio.scm | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index da93143924..2407f00796 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1100,17 +1100,19 @@ (define-public faad2 (define-public faust (package (name "faust") - (version "0.9.67") + (version "0.9.90") (source (origin - (method url-fetch) - (uri (string-append - "mirror://sourceforge/faudiostream/faust-" version ".zip")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/grame-cncm/faust.git") + (commit (string-append "v" + (string-map (lambda (c) + (if (char=? c #\.) #\- c)) + version))))) + (file-name (string-append "faust-" version "-checkout")) (sha256 (base32 - "068vl9536zn0j4pknwfcchzi90rx5pk64wbcbd67z32w0csx8xm1")) - (snippet - ;; Remove prebuilt library - '(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so")))) + "0qc6iwjd3i80jdyjc186c6ywipmjzl8wlsp4050pbr56q4rlkd4z")))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) @@ -1118,7 +1120,16 @@ (define-public faust #:phases (modify-phases %standard-phases ;; no "configure" script - (delete 'configure)))) + (delete 'configure) + ;; Files appear under $out/share/faust that are read-only. The + ;; install phase tries to overwrite them and fails, so we change + ;; the permissions first. + (add-before 'install 'fix-permissions + (lambda _ + (for-each (lambda (file) + (chmod file #o644)) + (find-files "architecture/max-msp" ".*")) + #t))))) (native-inputs `(("unzip" ,unzip))) (home-page "http://faust.grame.fr/") -- cgit v1.2.3 From 75bbc3c2e2403da47bd41eb40c1f6f65101e225c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 3 Dec 2017 17:22:41 +0100 Subject: gnu: faust-2: Remove inherited phase. * gnu/packages/audio.scm (faust-2)[arguments]: Remove build phase "fix-permissions". --- gnu/packages/audio.scm | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 2407f00796..78ea3613ae 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1158,18 +1158,7 @@ (define-public faust-2 (substitute-keyword-arguments (package-arguments faust) ((#:make-flags flags) `(list (string-append "prefix=" (assoc-ref %outputs "out")) - "world")) - ((#:phases phases) - `(modify-phases ,phases - ;; Files appear under $out/share/faust that are read-only. The - ;; install phase tries to overwrite them and fails, so we change - ;; the permissions first. - (add-before 'install 'fix-permissions - (lambda* (#:key outputs #:allow-other-keys) - (for-each (lambda (file) - (chmod file #o644)) - (find-files "architecture/max-msp" ".*")) - #t)))))) + "world")))) (native-inputs `(("llvm" ,llvm-with-rtti) ("which" ,which) -- cgit v1.2.3 From 952837c824c51657dad576b74b59295dda74ec4a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 3 Dec 2017 17:24:57 +0100 Subject: gnu: guitarix: Update to 0.36.1. * gnu/packages/audio.scm (guitarix): Update to 0.36.1. --- gnu/packages/audio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 78ea3613ae..28575142c5 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1214,7 +1214,7 @@ (define-public freepats (define-public guitarix (package (name "guitarix") - (version "0.36.0") + (version "0.36.1") (source (origin (method url-fetch) (uri (string-append @@ -1222,7 +1222,7 @@ (define-public guitarix version ".tar.xz")) (sha256 (base32 - "0nb0gwcmvc9xjh9pjasjbaqgpadanv4rw1njccpcmmin9xvicsqn")))) + "1g5949jwh2n755xjs3kcbdb8a1wxr5mn0m115wdnk27dxcdn93b0")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no "check" target -- cgit v1.2.3 From a4527622ee1170b8bbf89a0bf5dc0f176e96c7ad Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 3 Dec 2017 17:53:52 +0100 Subject: gnu: jack-2: Update to 1.9.11-RC1. * gnu/packages/audio.scm (jack-2): Update to 1.9.11-RC1. --- gnu/packages/audio.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 28575142c5..54fdecf4c8 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1416,17 +1416,16 @@ (define-public jack-1 (define-public jack-2 (package (inherit jack-1) (name "jack2") - (version "1.9.10") + (version "1.9.11-RC1") (source (origin (method url-fetch) - (uri (string-append - "https://github.com/jackaudio/jack2/archive/v" - version - ".tar.gz")) + (uri (string-append "https://github.com/jackaudio/jack2/releases/" + "download/v" version "/jack2-" + version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8")))) + "0ks72xxv8qrpwjc2ksr74rnp178h62g5vdplb2rn4vhkw86yw3kk")))) (build-system waf-build-system) (arguments `(#:python ,python-2 -- cgit v1.2.3 From 803a9d5c37479c67734c4518a018c8795471ac12 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 3 Dec 2017 18:23:47 +0100 Subject: gnu: calf: Update to 0.90.0. * gnu/packages/audio.scm (calf): Update to 0.90.0. --- gnu/packages/audio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 54fdecf4c8..8e0ad0a874 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -453,14 +453,14 @@ (define-public azr3 (define-public calf (package (name "calf") - (version "0.0.60") + (version "0.90.0") (source (origin (method url-fetch) (uri (string-append "http://calf-studio-gear.org/files/calf-" version ".tar.gz")) (sha256 (base32 - "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9")))) + "0dijv2j7vlp76l10s4v8gbav26ibaqk8s24ci74vrc398xy00cib")))) (build-system gnu-build-system) (inputs `(("fluidsynth" ,fluidsynth) -- cgit v1.2.3 From d112e5a8c2cfc3ff32b143f5a92964e849631ca2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 1 Dec 2017 10:52:55 +0100 Subject: gnu: Add kallisto. * gnu/packages/bioinformatics.scm (kallisto): New variable. --- gnu/packages/bioinformatics.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 5b3eec86db..f0b589b6c0 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -11079,3 +11079,32 @@ (define-public paml using nucleotide or amino-acid sequence data.") ;; GPLv3 only (license license:gpl3))) + +(define-public kallisto + (package + (name "kallisto") + (version "0.43.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/pachterlab/" + "kallisto/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "03j3iqhvq7ya3c91gidly3k3jvgm97vjq4scihrlxh315j696r11")))) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) ; no "check" target + (inputs + `(("hdf5" ,hdf5) + ("zlib" ,zlib))) + (home-page "http://pachterlab.github.io/kallisto/") + (synopsis "Near-optimal RNA-Seq quantification") + (description + "Kallisto is a program for quantifying abundances of transcripts from +RNA-Seq data, or more generally of target sequences using high-throughput +sequencing reads. It is based on the novel idea of pseudoalignment for +rapidly determining the compatibility of reads with targets, without the need +for alignment. Pseudoalignment of reads preserves the key information needed +for quantification, and kallisto is therefore not only fast, but also as +accurate as existing quantification tools.") + (license license:bsd-2))) -- cgit v1.2.3 From cdc938daf91f159e082c5b81a44b074f7bf6d991 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 3 Dec 2017 17:14:41 +0100 Subject: profiles: Do not import the host's srfi-{19,26}.scm files. Previously the "manual-database" derivation would always import the host's srfi-{19,26}.scm files in the build side. In practice this means that different users could get different manual-database.drv depending on the Guile version they're using in the host. For example, the (gnu tests install) tests would fail if the host was running Guile 2.2.3 because the guest is running 2.2.2, and thus has different srfi-{19,26}.scm files. The manual-database.drv would need to be built from source, which would fail because prerequisites were missing. Reported by Mathieu Othacehe at . * guix/profiles.scm (manual-database): Do not pass #:modules to 'gexp->derivation'. Wrap 'build' gexp in 'with-imported-modules' form. --- guix/profiles.scm | 144 +++++++++++++++++++++++++++--------------------------- 1 file changed, 71 insertions(+), 73 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 0eb99f40de..5ef84e8a0b 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1117,82 +1117,80 @@ (define man-db ;lazy reference (module-ref (resolve-interface '(gnu packages man)) 'man-db)) (define build - #~(begin - (use-modules (guix build utils) - (srfi srfi-1) - (srfi srfi-19) - (srfi srfi-26)) - - (define entries - (filter-map (lambda (directory) - (let ((man (string-append directory "/share/man"))) - (and (directory-exists? man) - man))) - '#$(manifest-inputs manifest))) - - (define manpages-collection-dir - (string-append (getenv "PWD") "/manpages-collection")) - - (define man-directory - (string-append #$output "/share/man")) - - (define (get-manpage-tail-path manpage-path) - (let ((index (string-contains manpage-path "/share/man/"))) - (unless index - (error "Manual path doesn't contain \"/share/man/\":" - manpage-path)) - (string-drop manpage-path (+ index (string-length "/share/man/"))))) - - (define (populate-manpages-collection-dir entries) - (let ((manpages (append-map (cut find-files <> #:stat stat) entries))) - (for-each (lambda (manpage) - (let* ((dest-file (string-append - manpages-collection-dir "/" - (get-manpage-tail-path manpage)))) - (mkdir-p (dirname dest-file)) - (catch 'system-error - (lambda () - (symlink manpage dest-file)) - (lambda args - ;; Different packages may contain the same - ;; manpage. Simply ignore the symlink error. - #t)))) - manpages))) - - (mkdir-p manpages-collection-dir) - (populate-manpages-collection-dir entries) - - ;; Create a mandb config file which contains a custom made - ;; manpath. The associated catpath is the location where the database - ;; gets generated. - (copy-file #+(file-append man-db "/etc/man_db.conf") - "man_db.conf") - (substitute* "man_db.conf" - (("MANDB_MAP /usr/man /var/cache/man/fsstnd") - (string-append "MANDB_MAP " manpages-collection-dir " " - man-directory))) - - (mkdir-p man-directory) - (setenv "MANPATH" (string-join entries ":")) - - (format #t "Creating manual page database for ~a packages... " - (length entries)) - (force-output) - (let* ((start-time (current-time)) - (exit-status (system* #+(file-append man-db "/bin/mandb") - "--quiet" "--create" - "-C" "man_db.conf")) - (duration (time-difference (current-time) start-time))) - (format #t "done in ~,3f s~%" - (+ (time-second duration) - (* (time-nanosecond duration) (expt 10 -9)))) + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils) + (srfi srfi-1) + (srfi srfi-19) + (srfi srfi-26)) + + (define entries + (filter-map (lambda (directory) + (let ((man (string-append directory "/share/man"))) + (and (directory-exists? man) + man))) + '#$(manifest-inputs manifest))) + + (define manpages-collection-dir + (string-append (getenv "PWD") "/manpages-collection")) + + (define man-directory + (string-append #$output "/share/man")) + + (define (get-manpage-tail-path manpage-path) + (let ((index (string-contains manpage-path "/share/man/"))) + (unless index + (error "Manual path doesn't contain \"/share/man/\":" + manpage-path)) + (string-drop manpage-path (+ index (string-length "/share/man/"))))) + + (define (populate-manpages-collection-dir entries) + (let ((manpages (append-map (cut find-files <> #:stat stat) entries))) + (for-each (lambda (manpage) + (let* ((dest-file (string-append + manpages-collection-dir "/" + (get-manpage-tail-path manpage)))) + (mkdir-p (dirname dest-file)) + (catch 'system-error + (lambda () + (symlink manpage dest-file)) + (lambda args + ;; Different packages may contain the same + ;; manpage. Simply ignore the symlink error. + #t)))) + manpages))) + + (mkdir-p manpages-collection-dir) + (populate-manpages-collection-dir entries) + + ;; Create a mandb config file which contains a custom made + ;; manpath. The associated catpath is the location where the database + ;; gets generated. + (copy-file #+(file-append man-db "/etc/man_db.conf") + "man_db.conf") + (substitute* "man_db.conf" + (("MANDB_MAP /usr/man /var/cache/man/fsstnd") + (string-append "MANDB_MAP " manpages-collection-dir " " + man-directory))) + + (mkdir-p man-directory) + (setenv "MANPATH" (string-join entries ":")) + + (format #t "Creating manual page database for ~a packages... " + (length entries)) (force-output) - (zero? exit-status)))) + (let* ((start-time (current-time)) + (exit-status (system* #+(file-append man-db "/bin/mandb") + "--quiet" "--create" + "-C" "man_db.conf")) + (duration (time-difference (current-time) start-time))) + (format #t "done in ~,3f s~%" + (+ (time-second duration) + (* (time-nanosecond duration) (expt 10 -9)))) + (force-output) + (zero? exit-status))))) (gexp->derivation "manual-database" build - #:modules '((guix build utils) - (srfi srfi-19) - (srfi srfi-26)) #:local-build? #t)) (define %default-profile-hooks -- cgit v1.2.3 From af4a761e97c309e3dce8ddf0cbbc1a369573199a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 3 Dec 2017 17:29:10 +0100 Subject: install: Add the prerequisites of 'profile-derivation' as GC roots. * gnu/system/install.scm (%installation-services): Add GLIBC-UTF8-LOCALES, TEXINFO, and GUILE-FINAL as GC roots. --- gnu/system/install.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 3a34df26c3..4f0beef2bf 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -30,6 +30,7 @@ (define-module (gnu system install) #:use-module (gnu packages admin) #:use-module (gnu packages bash) #:use-module (gnu packages bootloaders) + #:use-module (gnu packages guile) #:use-module (gnu packages linux) #:use-module (gnu packages ssh) #:use-module (gnu packages cryptsetup) @@ -275,8 +276,14 @@ (define bare-bones-os "/bin/sh")))) ;; Keep a reference to BARE-BONES-OS to make sure it can be - ;; installed without downloading/building anything. - (service gc-root-service-type (list bare-bones-os))))) + ;; installed without downloading/building anything. Also keep the + ;; things needed by 'profile-derivation' to minimize the amount of + ;; download. + (service gc-root-service-type + (list bare-bones-os + glibc-utf8-locales + texinfo + (canonical-package guile-2.2)))))) (define %issue ;; Greeting. -- cgit v1.2.3 From 350cb5ba84d1f23adfa3bde976fd99f695baf74c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 3 Dec 2017 17:31:51 +0100 Subject: doc: Link to work on bootstrapping. * doc/guix.texi (Reducing the Set of Bootstrap Binaries): New section. --- doc/guix.texi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index cad2b86e76..2b1b89fbea 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -20302,6 +20302,28 @@ unknown, but if you would like to investigate further (and have significant computational and storage resources to do so), then let us know. +@unnumberedsubsec Reducing the Set of Bootstrap Binaries + +Our bootstrap binaries currently include GCC, Guile, etc. That's a lot +of binary code! Why is that a problem? It's a problem because these +big chunks of binary code are practically non-auditable, which makes it +hard to establish what source code produced them. Every unauditable +binary also leaves us vulnerable to compiler backdoors as described by +Ken Thompson in the 1984 paper @emph{Reflections on Trusting Trust}. + +This is mitigated by the fact that our bootstrap binaries were generated +from an earlier Guix revision. Nevertheless it lacks the level of +transparency that we get in the rest of the package dependency graph, +where Guix always gives us a source-to-binary mapping. Thus, our goal +is to reduce the set of bootstrap binaries to the bare minimum. + +The @uref{http://bootstrappable.org, Bootstrappable.org web site} lists +on-going projects to do that. One of these is about replacing the +bootstrap GCC with a sequence of assemblers, interpreters, and compilers +of increasing complexity, which could be built from source starting from +a simple and auditable assembler. Your help is welcome! + + @node Porting @section Porting to a New Platform -- cgit v1.2.3 From 2f60084f77815f454d1521396c2a383390ea2865 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 3 Dec 2017 17:32:50 +0100 Subject: profiles: Avoid _IO* in profile builder. * guix/profiles.scm (profile-derivation)[builder]: Avoid the deprecated _IO* constants. --- guix/profiles.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 5ef84e8a0b..011bc54d23 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1268,8 +1268,8 @@ (define builder (guix search-paths) (srfi srfi-1)) - (setvbuf (current-output-port) _IOLBF) - (setvbuf (current-error-port) _IOLBF) + (setvbuf (current-output-port) 'line) + (setvbuf (current-error-port) 'line) #+(if locales? set-utf8-locale #t) -- cgit v1.2.3 From 8638362f138101d36064e8fd5e9115c250cdfec4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 3 Dec 2017 17:44:38 +0100 Subject: install: Add colors in 'motd' and 'issue'. * gnu/system/install.scm (%installation-services)[motd]: Add colors. [services]: Use the "lat9u-16" font. (%issue): Add colors. --- gnu/system/install.scm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 4f0beef2bf..78f2bf3a13 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -188,13 +188,13 @@ (define %nscd-minimal-caches (define %installation-services ;; List of services of the installation system. (let ((motd (plain-file "motd" " -Welcome to the installation of the Guix System Distribution! +\x1b[1;37mWelcome to the installation of the Guix System Distribution!\x1b[0m -There is NO WARRANTY, to the extent permitted by law. In particular, you may +\x1b[2mThere is NO WARRANTY, to the extent permitted by law. In particular, you may LOSE ALL YOUR DATA as a side effect of the installation process. Furthermore, it is 'beta' software, so it may contain bugs. -You have been warned. Thanks for being so brave. +You have been warned. Thanks for being so brave.\x1b[0m "))) (define (normal-tty tty) (mingetty-service (mingetty-configuration (tty tty) @@ -245,10 +245,12 @@ (define bare-bones-os ;; since it takes the installation directory as an argument. (cow-store-service) - ;; Install Unicode support and a suitable font. + ;; Install Unicode support and a suitable font. Use a font that + ;; doesn't have more than 256 glyphs so that we can use colors with + ;; varying brightness levels (see note in setfont(8)). (service console-font-service-type (map (lambda (tty) - (cons tty %default-console-font)) + (cons tty "lat9u-16")) '("tty1" "tty2" "tty3" "tty4" "tty5" "tty6"))) ;; To facilitate copy/paste. @@ -288,9 +290,9 @@ (define bare-bones-os (define %issue ;; Greeting. " -This is an installation image of the GNU system. Welcome. +\x1b[1;37mThis is an installation image of the GNU system. Welcome.\x1b[0m -Use Alt-F2 for documentation. +\x1b[1;33mUse Alt-F2 for documentation.\x1b[0m ") (define installation-os -- cgit v1.2.3 From 2815fca1423cf72e6f3d0e774f1058bcbf8dfdbf Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 3 Dec 2017 21:50:46 +0100 Subject: profile: Use _IO* but disable deprecation warning. This fixes a regression introduced in 2f60084f77815f454d1521396c2a383390ea2865, whereby the profile derivation would fail to run on Guile 2.0 (as is the case with "guix package --bootstrap"). Reported by Christopher Baines. * guix/profiles.scm (profile-derivation)[builder]: Use _IO* but add 'debug-disable' call. --- guix/profiles.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 011bc54d23..d8b83bf730 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1268,8 +1268,11 @@ (define builder (guix search-paths) (srfi srfi-1)) - (setvbuf (current-output-port) 'line) - (setvbuf (current-error-port) 'line) + ;; Don't complain about _IO* on Guile 2.2. + (debug-disable 'warn-deprecated) + + (setvbuf (current-output-port) _IOLBF) + (setvbuf (current-error-port) _IOLBF) #+(if locales? set-utf8-locale #t) -- cgit v1.2.3 From 4a7b1add2a20852388159ed8dac0943bc21a4dec Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 3 Dec 2017 23:09:57 +0100 Subject: gnu: synthv1: Update to 0.8.5. * gnu/packages/music.scm (synthv1): Update to 0.8.5. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 9055f6613c..89b3d560b6 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1081,7 +1081,7 @@ (define-public jalv-select (define-public synthv1 (package (name "synthv1") - (version "0.8.4") + (version "0.8.5") (source (origin (method url-fetch) (uri @@ -1089,7 +1089,7 @@ (define-public synthv1 "/synthv1-" version ".tar.gz")) (sha256 (base32 - "0awk2zx0xa6vl6ah24zz0k2mwsx50hh5g1rh32mp790fp4x7l5s8")))) + "0mvrqk6jy7h2wg442ixwm49w7x15rs4066c2ljrz4kvxlzp5z69i")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. -- cgit v1.2.3 From 54c76c2603fe273eea64628b71ddb4a1c863ec0b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 3 Dec 2017 23:10:13 +0100 Subject: gnu: drumkv1: Update to 0.8.5. * gnu/packages/music.scm (drumkv1): Update to 0.8.5. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 89b3d560b6..9a438510f6 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1115,7 +1115,7 @@ (define-public synthv1 (define-public drumkv1 (package (name "drumkv1") - (version "0.8.4") + (version "0.8.5") (source (origin (method url-fetch) (uri @@ -1123,7 +1123,7 @@ (define-public drumkv1 "/drumkv1-" version ".tar.gz")) (sha256 (base32 - "0qqpklzy4wgw9jy0v2810j06712q90bwc69fp7da82536ba058a9")))) + "06xqqm1ylmpp2s7xk7xav325gc50kxlvh9vf1343b0n3i8xkgjfg")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. -- cgit v1.2.3 From 98a26dc889268e2b79d7693ddf17b2323765394c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 3 Dec 2017 23:10:28 +0100 Subject: gnu: samplv1: Update to 0.8.5. * gnu/packages/music.scm (samplv1): Update to 0.8.5. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 9a438510f6..173fdfaad1 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1150,7 +1150,7 @@ (define-public drumkv1 (define-public samplv1 (package (name "samplv1") - (version "0.8.4") + (version "0.8.5") (source (origin (method url-fetch) (uri @@ -1158,7 +1158,7 @@ (define-public samplv1 "/samplv1-" version ".tar.gz")) (sha256 (base32 - "107p2xsj066q2bil0xcgqrrn7lawp02wzf7qmlajcbnd79jhsi6i")))) + "1gscwybsbaqbnylmgf2baf71cm2g7a0pd11rqmk3cz9hi3lyjric")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. -- cgit v1.2.3 From d9721c2096525747c7fbbe008c8100846aefd392 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 3 Dec 2017 22:13:33 +0100 Subject: scripts: Default to Guile 2.2 as the guile-for-build. * guix/scripts/environment.scm (guix-environment): '%guile-for-build' now defaults to GUILE-2.2 instead of GUILE-2.0. * guix/scripts/package.scm (guix-package): Likewise. * guix/scripts/pull.scm (guix-pull): Likewise. --- guix/scripts/environment.scm | 2 +- guix/scripts/package.scm | 4 ++-- guix/scripts/pull.scm | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 0d69218338..e1b7feecfa 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -586,7 +586,7 @@ (define (guix-environment . args) store (if bootstrap? %bootstrap-guile - (canonical-package guile-2.0))))) + (canonical-package guile-2.2))))) (run-with-store store ;; Containers need a Bourne shell at /bin/sh. (mlet* %store-monad ((bash (environment-bash container? diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index f972ca2ef7..0a4a07ae2a 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -49,7 +49,7 @@ (define-module (guix scripts package) #:use-module (srfi srfi-37) #:use-module (gnu packages) #:autoload (gnu packages base) (canonical-package) - #:autoload (gnu packages guile) (guile-2.0) + #:autoload (gnu packages guile) (guile-2.2) #:autoload (gnu packages bootstrap) (%bootstrap-guile) #:export (build-and-use-profile delete-generations @@ -918,5 +918,5 @@ (define (handle-argument arg result arg-handler) (%store) (if (assoc-ref opts 'bootstrap?) %bootstrap-guile - (canonical-package guile-2.0))))) + (canonical-package guile-2.2))))) (process-actions (%store) opts))))))) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 3e95bd511f..be0c168444 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -275,7 +275,7 @@ (define (use-le-certs? url) store (if (assoc-ref opts 'bootstrap?) %bootstrap-guile - (canonical-package guile-2.0))))) + (canonical-package guile-2.2))))) (run-with-store store (build-and-install checkout (config-directory) #:commit commit -- cgit v1.2.3 From cbb76780ef5e4aed113a1065d96fd6e035f60eaf Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 3 Dec 2017 22:14:50 +0100 Subject: profiles: Really disable deprecation warnings for 'profile-derivation'. This is a followup to 2815fca1423cf72e6f3d0e774f1058bcbf8dfdbf. * guix/profiles.scm (profile-derivation)[builder]: Remove 'debug-disable' call, which was ineffective. Pass #:env-vars to 'gexp->derivation'. --- guix/profiles.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index d8b83bf730..cedf9faa82 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1268,9 +1268,6 @@ (define builder (guix search-paths) (srfi srfi-1)) - ;; Don't complain about _IO* on Guile 2.2. - (debug-disable 'warn-deprecated) - (setvbuf (current-output-port) _IOLBF) (setvbuf (current-error-port) _IOLBF) @@ -1293,6 +1290,9 @@ (define search-paths #:system system #:target target + ;; Don't complain about _IO* on Guile 2.2. + #:env-vars '(("GUILE_WARN_DEPRECATED" . "no")) + ;; Not worth offloading. #:local-build? #t -- cgit v1.2.3 From 4bd70904c7f555a953808a9a4f892f462ffd352f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 3 Dec 2017 22:36:17 +0100 Subject: gnu: shepherd: Avoid "Bad file descriptor" warnings. * gnu/packages/patches/shepherd-close-fds.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/admin.scm (shepherd)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/admin.scm | 3 ++- gnu/packages/patches/shepherd-close-fds.patch | 36 +++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/shepherd-close-fds.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9dd0ce4f8a..434bbb016a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1061,6 +1061,7 @@ dist_patch_DATA = \ %D%/packages/patches/scotch-test-threading.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/seq24-rename-mutex.patch \ + %D%/packages/patches/shepherd-close-fds.patch \ %D%/packages/patches/shishi-fix-libgcrypt-detection.patch \ %D%/packages/patches/slim-session.patch \ %D%/packages/patches/slim-config.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index d4215ead18..221d583bb4 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -162,7 +162,8 @@ (define-public shepherd version ".tar.gz")) (sha256 (base32 - "174q1qg7yg6w1hfvlfv720hr6hid4h5xzw15y3ycfpspllzldhcb")))) + "174q1qg7yg6w1hfvlfv720hr6hid4h5xzw15y3ycfpspllzldhcb")) + (patches (search-patches "shepherd-close-fds.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--localstatedir=/var"))) diff --git a/gnu/packages/patches/shepherd-close-fds.patch b/gnu/packages/patches/shepherd-close-fds.patch new file mode 100644 index 0000000000..2078b15265 --- /dev/null +++ b/gnu/packages/patches/shepherd-close-fds.patch @@ -0,0 +1,36 @@ +commit 3e346a2a84b099766ea8a3a4a4549f6172483062 +Author: Ludovic Courtès +Date: Sun Dec 3 22:30:03 2017 +0100 + + service: In 'exec-command', close open ports before 'execl'. + + This gets rid of annoying "Bad file descriptor" warnings from shepherd. + + * modules/shepherd/service.scm (exec-command): In 'loop', invoke + 'close-port' and the ports returned by (fdes->ports i). + +diff --git a/modules/shepherd/service.scm b/modules/shepherd/service.scm +index b2d8bc5..0ad28a0 100644 +--- a/modules/shepherd/service.scm ++++ b/modules/shepherd/service.scm +@@ -1,5 +1,5 @@ + ;; service.scm -- Representation of services. +-;; Copyright (C) 2013, 2014, 2015, 2016 Ludovic Courtès ++;; Copyright (C) 2013, 2014, 2015, 2016, 2017 Ludovic Courtès + ;; Copyright (C) 2002, 2003 Wolfgang Järling + ;; Copyright (C) 2014 Alex Sassmannshausen + ;; Copyright (C) 2016 Alex Kost +@@ -744,6 +744,14 @@ false." + + (let loop ((i 3)) + (when (< i max-fd) ++ ;; First try to close any ports associated with file descriptor I. ++ ;; Otherwise the finalization thread might get around to closing ++ ;; those ports eventually, which will raise an EBADF exception (on ++ ;; 2.2), leading to messages like "error in the finalization ++ ;; thread: Bad file descriptor". ++ (for-each (lambda (port) ++ (catch-system-error (close-port port))) ++ (fdes->ports i)) + (catch-system-error (close-fdes i)) + (loop (+ i 1))))) -- cgit v1.2.3 From 3fb6464ba43141b671481ce5ba158b6e6d1badfe Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 3 Dec 2017 23:17:26 +0100 Subject: ui: Tweak conflicting profile entry error message. * guix/ui.scm (call-with-error-handling): Use 'manifest-entry-output*' when reporting conflicting profile entries. --- guix/ui.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 9ed8f37521..e40fe576ba 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -555,9 +555,9 @@ (define (manifest-entry-output* entry) ("out" "") (output (string-append ":" output)))) - (report-error (G_ "profile contains conflicting entries for ~a:~a~%") + (report-error (G_ "profile contains conflicting entries for ~a~a~%") (manifest-entry-name entry) - (manifest-entry-output entry)) + (manifest-entry-output* entry)) (report-error (G_ " first entry: ~a@~a~a ~a~%") (manifest-entry-name entry) (manifest-entry-version entry) -- cgit v1.2.3 From b901043604b99058287bd44ec1ae4e5229d5250d Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sat, 2 Dec 2017 15:58:13 +0100 Subject: gnu: you-get: Update to 0.4.990. * gnu/packages/video.scm (you-get): Update to 0.4.990. Signed-off-by: Ricardo Wurmus --- 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 7777b60aac..708a56d914 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1259,7 +1259,7 @@ (define-public youtube-dl-gui (define-public you-get (package (name "you-get") - (version "0.4.985") + (version "0.4.990") (source (origin (method url-fetch) (uri (string-append @@ -1268,7 +1268,7 @@ (define-public you-get (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0a11z8bq4b4pgibrrx6hwjkg9hn8vx01ql9jxa73s6d7ry5nhmwm")))) + "1758drgp2wq6d8nz8bpfark2cli9sj0qd8srdhn0rx3rd4l5n7nj")))) (build-system python-build-system) (arguments ;; no tests -- cgit v1.2.3 From 8d7f1d73687be1fbbfa6e6ed58336a1862140c47 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Dec 2017 00:00:37 +0100 Subject: gnu: guix: Update snapshot to 3fb6464. * gnu/packages/package-management.scm (guix): Update to 3fb6464. --- 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 3bc0473b9f..a1fb3b9cf7 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -86,8 +86,8 @@ (define-public guix ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.13.0") - (commit "0a154c15a81ef80bf512a38ae8473a5bc511302b") - (revision 12)) + (commit "3fb6464ba43141b671481ce5ba158b6e6d1badfe") + (revision 13)) (package (name "guix") @@ -103,7 +103,7 @@ (define-public guix (commit commit))) (sha256 (base32 - "0w7sk6b0jaklr0sx8rnljr3xc2jznr4w54dh9fnhwa3hdcsj6xfw")) + "0nx3nvr3myjhg7zyyrvxfs63ddmb7yv0ndzn1dq4gp2is65n3krr")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From d3cdb25d1792c648222233706425501982db2413 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Nov 2017 23:49:55 +0100 Subject: gnu: python-scikit-learn: Update to 0.19.1. * gnu/packages/machine-learning.scm (python-scikit-learn): Update to 0.19.1. --- gnu/packages/machine-learning.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index a32ea36e6c..cf400a0eed 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -611,7 +611,7 @@ (define-public dlib (define-public python-scikit-learn (package (name "python-scikit-learn") - (version "0.19.0") + (version "0.19.1") (source (origin (method url-fetch) @@ -621,7 +621,7 @@ (define-public python-scikit-learn (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0g7q4ri75mj93wpa9bp83a3jmrf3dm5va9h7k4zkbcxr6bgqka15")))) + "18n8775kyfwbvcjjjzda9c5sqy4737c0hrmj6qj1ps2jmlqzair9")))) (build-system python-build-system) (arguments `(#:phases -- cgit v1.2.3 From 440c4273b829350c6b0dcc12b90472a9862ce73e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Nov 2017 23:56:08 +0100 Subject: gnu: coda: Update to 2.18.3. * gnu/packages/maths.scm (coda): Update to 2.18.3. --- gnu/packages/maths.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 620c3a91e2..7216db0bda 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2017 Ben Woodcroft ;;; Copyright © 2017 Theodoros Foradis ;;; Copyright © 2017 Arun Isaac +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -152,14 +153,14 @@ (define-public c-graph (define-public coda (package (name "coda") - (version "2.18.2") + (version "2.18.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/stcorp/coda/releases/download/" version "/coda-" version ".tar.gz")) (sha256 - (base32 "01fnqcby9jijvf3jxr1fk4bny059lvvq5wbqm7ns60ilykfdnm6a")) + (base32 "1zlzgcvwmmjm8mw8w4rg2rqy0pjilz7kyyxm0y4p8cbljbbjxxz0")) (patches (search-patches "coda-use-system-libs.patch")) (modules '((guix build utils))) (snippet -- cgit v1.2.3 From 1d3c059bbf3d02ec67a3335b3b2d84e85f5f5474 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Nov 2017 22:35:20 +0100 Subject: gnu: eolie: Update to 0.9.13. * gnu/packages/gnome.scm (eolie): Update to 0.9.13. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2ea681e14e..2c07d7bd91 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4055,7 +4055,7 @@ (define-public simple-scan (define-public eolie (package (name "eolie") - (version "0.9.12") + (version "0.9.13") (source (origin (method url-fetch) (uri (string-append "https://github.com/gnumdk/eolie/" @@ -4063,7 +4063,7 @@ (define-public eolie "/eolie-" version ".tar.xz")) (sha256 (base32 - "1qlaxczs82vyww06v5m8zwhvaiilp5zhxp5yp632a8947cg5blnz")))) + "1khpc6x40y5gm0a3p5fxiva9p1djijxmsh74xinigddnyqbjqw69")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases -- cgit v1.2.3 From f7459997737371c06cdc6b99150ac9684ab343dd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 27 Nov 2017 23:57:32 +0100 Subject: gnu: di: Update to 4.44. * gnu/packages/admin.scm (di): Update to 4.44. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 221d583bb4..67d1026dfb 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1773,13 +1773,13 @@ (define-public thefuck (define-public di (package (name "di") - (version "4.43") + (version "4.44") (source (origin (method url-fetch) (uri (string-append "https://gentoo.com/di/di-" version ".tar.gz")) (sha256 - (base32 "1q25jy51qfzsym9b2w0cqzscq2j492gn60dy6gbp88m8nwm4sdy8")))) + (base32 "0803lp8kd3mp1jcm17i019xiqxdy85hhs6xk67zib8gmvg500gcn")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; Obscure test failures. -- cgit v1.2.3 From 7e95d0fda7f7f17f9c1431bbe1c3f021b9805328 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Dec 2017 19:58:04 +0100 Subject: gnu: ghc-comonad: Remove duplicate input. * gnu/packages/haskell.scm (ghc-comonad)[inputs]: Remove ghc-contravariant. Order alphabetically to make this less likely to happen again. --- gnu/packages/haskell.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e9a86e25e5..e8c6b25dfd 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2370,12 +2370,11 @@ (define-public ghc-comonad (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy ; -package contravariant-1.3.3" (inputs - `(("ghc-distributive" ,ghc-distributive) - ("ghc-transformers-compat" ,ghc-transformers-compat) - ("ghc-contravariant" ,ghc-contravariant) + `(("ghc-contravariant" ,ghc-contravariant) + ("ghc-distributive" ,ghc-distributive) ("ghc-semigroups" ,ghc-semigroups) ("ghc-tagged" ,ghc-tagged) - ("ghc-contravariant" ,ghc-contravariant))) + ("ghc-transformers-compat" ,ghc-transformers-compat))) (home-page "https://github.com/ekmett/comonad/") (synopsis "Comonads for Haskell") (description "This library provides @code{Comonad}s for Haskell.") -- cgit v1.2.3 From 8301d739fa61ad97bd991123a870dd1e1480d90a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 30 Nov 2017 14:49:10 +0100 Subject: gnu: ghc-alex: Update to 3.2.3. * gnu/packages/haskell.scm (ghc-alex): Update to 3.2.3. [arguments]: Run tests. --- gnu/packages/haskell.scm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e8c6b25dfd..ce5a191360 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -772,7 +772,7 @@ (define-public ghc-haskell-src (define-public ghc-alex (package (name "ghc-alex") - (version "3.1.4") + (version "3.2.3") (source (origin (method url-fetch) @@ -782,11 +782,8 @@ (define-public ghc-alex ".tar.gz")) (sha256 (base32 - "17x13nbbr79xgdlzywjqw19vcl6iygjnssjnxnajgijkv764wknn")))) + "0bi1cs9b8ir33h1fl6x2xw4ymygapqbr713ridpf7rmk2wa7jqqs")))) (build-system haskell-build-system) - (arguments `(#:tests? #f)) ; FIXME: Tests broken for GHC 7.10. Fixed - ; upstream, see - ; (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) (home-page "http://www.haskell.org/alex/") (synopsis -- cgit v1.2.3 From 1740cb779ad02d43ba467cb3214ab66d54b5677a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 01:55:28 +0100 Subject: gnu: ghc-async: Update to 2.1.1.1. * gnu/packages/haskell.scm (ghc-async): Update to 2.1.1.1. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index ce5a191360..4804f1b5f8 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3551,7 +3551,7 @@ (define-public ghc-easy-file (define-public ghc-async (package (name "ghc-async") - (version "2.0.2") + (version "2.1.1.1") (source (origin (method url-fetch) @@ -3561,7 +3561,7 @@ (define-public ghc-async ".tar.gz")) (sha256 (base32 - "0azx4qk65a9a2gvqsfmz3w89m6shzr2iz0i5lly2zvly4n2d6m6v")))) + "1qj4fp1ynwg0l453gmm27vgkzb5k5m2hzdlg5rdqi9kf8rqy90yd")))) (build-system haskell-build-system) (inputs `(("ghc-stm" ,ghc-stm) -- cgit v1.2.3 From 74327874a5604fef4231589b4d5c6ec3229cb092 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 4 Dec 2017 04:48:26 +0100 Subject: gnu: you-get: Update to 0.4.995. * gnu/packages/video.scm (you-get): Update to 0.4.995. --- gnu/packages/video.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 708a56d914..2c25eb8780 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1259,7 +1259,7 @@ (define-public youtube-dl-gui (define-public you-get (package (name "you-get") - (version "0.4.990") + (version "0.4.995") (source (origin (method url-fetch) (uri (string-append @@ -1268,11 +1268,10 @@ (define-public you-get (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1758drgp2wq6d8nz8bpfark2cli9sj0qd8srdhn0rx3rd4l5n7nj")))) + "0i89mn8v8znn3csgzfg8dz5vcn3ld66xj02az6137bljhgivjxra")))) (build-system python-build-system) (arguments - ;; no tests - '(#:tests? #f)) + '(#:tests? #f)) ; no tests (inputs `(("ffmpeg" ,ffmpeg))) (synopsis "Download videos, audios, or images from Web sites") -- cgit v1.2.3 From 78bae62a25d2f29886a27699f5a07afa375192c0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 4 Dec 2017 06:44:19 +0100 Subject: gnu: protobuf: Update to 3.5.0. * gnu/packages/protobuf.scm (protobuf): Update to 3.5.0. --- gnu/packages/protobuf.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm index 1ed813b761..0e7c5f3244 100644 --- a/gnu/packages/protobuf.scm +++ b/gnu/packages/protobuf.scm @@ -71,7 +71,7 @@ (define-public fstrm (define-public protobuf (package (name "protobuf") - (version "3.4.1") + (version "3.5.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/google/protobuf/releases/" @@ -79,7 +79,7 @@ (define-public protobuf version ".tar.gz")) (sha256 (base32 - "0y6cr4l7bwa6zvjv5flzr4cx28shk5h8dz99xw90v8qih954pcrb")))) + "0lc5d5cnhsaiazc5gnsnv19bikk22rgcqlqzzrfvk6mkq98v1mld")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) (outputs (list "out" -- cgit v1.2.3 From 617e87bff13c38d01d9d16ac9f96b0078e2813fe Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Dec 2017 09:59:11 +0100 Subject: services: xorg: Properly handle the case where ~/.xession is used. Fixes a regression introduced in 65c0f43649b455db94f1e8b0a244a889cb961b25 in the case where users provide ~/.xsession and SESSION is #f. * gnu/services/xorg.scm (xinitrc): In the XSESSION-FILE case, check whether SESSION is #f. --- gnu/services/xorg.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 8f285b29a3..cef0d60b59 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -390,7 +390,8 @@ (define (find-session profile) x)))) (if (file-exists? xsession-file) ;; Run ~/.xsession when it exists. - (apply exec-from-login-shell xsession-file session) + (apply exec-from-login-shell xsession-file + (or session '())) ;; Otherwise, start the specified session or a fallback. (apply exec-from-login-shell (or session -- cgit v1.2.3 From 8cbb58918c4e5fe236a1cf34ff46477f4932fb01 Mon Sep 17 00:00:00 2001 From: nee Date: Sun, 3 Dec 2017 15:37:28 +0100 Subject: gnu: erlang: Update to 20.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/erlang.scm (erlang): Update to 20.1. Signed-off-by: Ludovic Courtès --- gnu/packages/erlang.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 1a575a0fd0..770ed715bc 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -35,7 +35,7 @@ (define-module (gnu packages erlang) (define-public erlang (package (name "erlang") - (version "20.0") + (version "20.1") (source (origin (method url-fetch) ;; The tarball from http://erlang.org/download contains many @@ -46,7 +46,7 @@ (define-public erlang (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "11xp6vv1v7iay9dg1xc6xm7izfsanbn5pgwp96ba0j1fmlkhjw92")) + "0r4g8ag7nlpw06y4c39fgcyccykj2sbyhv5jgp4qmrjci2ydgns8")) (patches (search-patches "erlang-man-path.patch")))) (build-system gnu-build-system) (native-inputs @@ -62,7 +62,7 @@ (define-public erlang version ".tar.gz")) (sha256 (base32 - "1k25p37w1l1j20qd8rga4j4q7s7r0rbsi02x3xwzhw51jhm59wdp")))))) + "0ikvdpn4z7az6szg176l1r2yxhgs3msa3wgb3gmy45jkz0pzik05")))))) (inputs `(("ncurses" ,ncurses) ("openssl" ,openssl) -- cgit v1.2.3 From 6de3d1762beba47a7a94de452a48c4b256c12333 Mon Sep 17 00:00:00 2001 From: nee Date: Sun, 3 Dec 2017 15:39:40 +0100 Subject: gnu: elixir: Update to 1.5.2 and disable failing tests. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elixir.scm (elixir)[origin]: Update to 1.5.2. [arguments]: Patch the shebang of mix. Disable failing tests. Signed-off-by: Ludovic Courtès --- gnu/packages/elixir.scm | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 7425b49a43..553c5fa5ae 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016, 2017 Pjotr Prins ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2017 nee ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,7 +31,7 @@ (define-module (gnu packages elixir) (define-public elixir (package (name "elixir") - (version "1.4.2") + (version "1.5.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/elixir-lang/elixir" @@ -38,7 +39,7 @@ (define-public elixir (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0gsmgx4h6rvxilcbsx2z6yirm6g2g5bsxdvr0608ng4bsv22wknb")) + "0v7z0avs3gir7qdfgysfw88l3z9p5f7p7pjnrnsz5gmmsflvf5vk")) ;; FIXME: 27 tests (out of 4K) had to be disabled as ;; they fail in the build environment. Common failures ;; are: @@ -55,14 +56,18 @@ (define-public elixir #:phases (modify-phases %standard-phases (add-after 'unpack 'replace-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* '("lib/elixir/lib/system.ex" - "lib/mix/lib/mix/scm/git.ex") - (("(cmd\\(['\"])git" _ prefix) - (string-append prefix (which "git")))) - (substitute* "bin/elixir" - (("ERL_EXEC=\"erl\"") - (string-append "ERL_EXEC=" (which "erl")))) + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* '("lib/elixir/lib/system.ex" + "lib/mix/lib/mix/scm/git.ex") + (("(cmd\\(['\"])git" _ prefix) + (string-append prefix (which "git")))) + (substitute* "bin/elixir" + (("ERL_EXEC=\"erl\"") + (string-append "ERL_EXEC=" (which "erl")))) + (substitute* "bin/mix" + (("#!/usr/bin/env elixir") + (string-append "#!" out "/bin/elixir")))) #t)) (add-after 'unpack 'fix-or-disable-tests (lambda* (#:key inputs #:allow-other-keys) @@ -75,6 +80,15 @@ (define-public elixir ;; FIXME: Mix.Shell.cmd() always fails with error code 130. (delete-file "lib/mix/test/mix/shell_test.exs") + + ;; FIXME: + ;; disabled failing impure tests to make it build again. + ;; related discussion: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28034#14 + (delete-file "lib/elixir/test/elixir/kernel/cli_test.exs") + (delete-file "lib/elixir/test/elixir/kernel/dialyzer_test.exs") + (delete-file "lib/iex/test/iex/helpers_test.exs") + (delete-file "lib/ex_unit/test/ex_unit/capture_io_test.exs") + #t)) (add-before 'build 'make-current ;; The Elixir compiler checks whether or not to compile files by -- cgit v1.2.3 From b9aab870e5d224f5ae9499a4aa6053f692d7852c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Dec 2017 10:23:37 +0100 Subject: nls: Update 'fr' translation. --- po/guix/fr.po | 1706 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 1029 insertions(+), 677 deletions(-) diff --git a/po/guix/fr.po b/po/guix/fr.po index b566d58c0b..f9ae7d288e 100644 --- a/po/guix/fr.po +++ b/po/guix/fr.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the guix package. # Rémy Chevalier , 2013, 2014. # Frédéric Marchal , 2017 +# Julien Lepiller , 2017 # # Note de Frédéric Marchal: Le nom « shepherd » est le nom d'un démon (voir # https://www.gnu.org/software/shepherd/). Je ne l'ai pas traduit dans les @@ -10,11 +11,11 @@ # msgid "" msgstr "" -"Project-Id-Version: guix 0.13.0\n" +"Project-Id-Version: guix 0.14.0\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2017-05-10 23:29+0200\n" -"PO-Revision-Date: 2017-05-11 19:11+0200\n" -"Last-Translator: Frédéric Marchal \n" +"POT-Creation-Date: 2017-11-28 08:56+0100\n" +"PO-Revision-Date: 2017-11-30 13:46+0100\n" +"Last-Translator: Julien Lepiller \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -22,86 +23,127 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.0.3\n" -#: gnu/packages.scm:90 +#: gnu.scm:82 +#, scheme-format +msgid "module ~a not found" +msgstr "module « ~a » introuvable" + +#: gnu.scm:100 +msgid "" +"You may use @command{guix package --show=foo | grep location} to search\n" +"for the location of package @code{foo}.\n" +"If you get the line @code{location: gnu/packages/bar.scm:174:2},\n" +"add @code{bar} to the @code{use-package-modules} form." +msgstr "" +"Vous pouvez utiliser @command{guix package --show=foo | grep location} pour\n" +"chercher l'emplacement du paquet @code{foo}.\n" +"Si vous voyez la ligne @code{location: gnu/packages/bar.scm:174:2},\n" +"ajoutez @code{bar} dans @code{use-package-modules}." + +#: gnu.scm:108 +#, scheme-format +msgid "Try adding @code{(use-package-modules ~a)}." +msgstr "Essayez d'ajouter @code{(use-package-modules ~a)}." + +#: gnu.scm:123 +#, scheme-format +msgid "" +"You may use @command{guix system search ~a} to search for a service\n" +"matching @code{~a}.\n" +"If you get the line @code{location: gnu/services/foo.scm:188:2},\n" +"add @code{foo} to the @code{use-service-modules} form." +msgstr "" +"Vous pouvez utiliser @commande{guix system search ~a} pour chercher un\n" +"service qui correspond à @code{~a}.\n" +"Si vous voyez la ligne @code{location: gnu/services/foo.scm:188:2},\n" +"ajoutez @code{foo} dans @code{use-service-modules}." + +#: gnu.scm:132 +#, scheme-format +msgid "Try adding @code{(use-service-modules ~a)}." +msgstr "Essayez d'ajouter @code{(use-service-modules ~a)}." + +#: gnu/packages.scm:92 #, scheme-format msgid "~a: patch not found" -msgstr "~a: correctif introuvable" +msgstr "~a : correctif introuvable" -#: gnu/packages.scm:106 +#: gnu/packages.scm:108 #, scheme-format msgid "could not find bootstrap binary '~a' for system '~a'" msgstr "impossible de trouver le binaire d'initialisation « ~a » pour le système « ~a »" -#: gnu/packages.scm:236 +#: gnu/packages.scm:240 #, scheme-format msgid "ambiguous package specification `~a'~%" msgstr "spécification du paquet « ~a » ambiguë~%" -#: gnu/packages.scm:237 +#: gnu/packages.scm:241 #, scheme-format msgid "choosing ~a@~a from ~a~%" msgstr "choix de ~a@~a parmi ~a~%" -#: gnu/packages.scm:242 guix/scripts/package.scm:272 +#: gnu/packages.scm:246 guix/scripts/package.scm:271 #, scheme-format msgid "package '~a' has been superseded by '~a'~%" msgstr "le paquet « ~a » a été remplacé par « ~a »~%" -#: gnu/packages.scm:249 +#: gnu/packages.scm:253 #, scheme-format msgid "~A: package not found for version ~a~%" -msgstr "~A: paquet introuvable pour la version ~a~%" +msgstr "~A : paquet introuvable pour la version ~a~%" -#: gnu/packages.scm:250 +#: gnu/packages.scm:254 #, scheme-format msgid "~A: unknown package~%" -msgstr "~A: paquet inconnu~%" +msgstr "~A : paquet inconnu~%" -#: gnu/packages.scm:278 +#: gnu/packages.scm:282 #, scheme-format msgid "package `~a' lacks output `~a'~%" msgstr "le paquet « ~a » requiert la sortie « ~a »~%" -#: gnu/services.scm:186 +#: gnu/services.scm:235 #, scheme-format msgid "~a: no value specified for service of type '~a'" -msgstr "~a: aucune valeur spécifiée pour le service de type « ~a »" +msgstr "~a : aucune valeur spécifiée pour le service de type « ~a »" -#: gnu/services.scm:627 +#: gnu/services.scm:650 #, scheme-format -msgid "no target of type '~a' for service ~s" -msgstr "pas de cible de type « ~a » pour le service ~s" +msgid "no target of type '~a' for service '~a'" +msgstr "pas de cible de type « ~a » pour le service « ~a »" -#: gnu/services.scm:638 gnu/services.scm:699 +#: gnu/services.scm:662 gnu/services.scm:723 #, scheme-format msgid "more than one target service of type '~a'" msgstr "plus d'un service cible de type « ~a »" -#: gnu/services.scm:689 +#: gnu/services.scm:713 #, scheme-format msgid "service of type '~a' not found" msgstr "service de type « ~a » pas trouvé" -#: gnu/system.scm:270 +#: gnu/system.scm:305 #, scheme-format msgid "unrecognized boot parameters for '~a'~%" msgstr "paramètres de démarrage non reconnus pour « ~a »~%" -#: gnu/system.scm:633 +#: gnu/system.scm:695 #, scheme-format msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%" -msgstr "l'utilisation d'une chaîne pour le fichier « ~a » est dépréciée. Utilisez plutôt « plain-file »~%" +msgstr "l'utilisation d'une chaîne pour le fichier « ~a » est obsolète. Utilisez plutôt « plain-file »~%" -#: gnu/system.scm:649 +#: gnu/system.scm:711 #, scheme-format msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%" -msgstr "l'utilisation d'une valeur monadic pour « ~a » est dépréciée. Utilisez plutôt « plain-file »~%" +msgstr "l'utilisation d'une valeur monadic pour « ~a » est obsolète. Utilisez plutôt « plain-file »~%" -#: gnu/system.scm:791 +#: gnu/system.scm:856 #, scheme-format msgid "~a: invalid locale name" -msgstr "~a: nom d'environnement linguistique non valide" +msgstr "~a : nom d'environnement linguistique non valide" #: gnu/services/shepherd.scm:166 #, scheme-format @@ -113,12 +155,12 @@ msgstr "service « ~a » fourni plus d'une fois" msgid "service '~a' requires '~a', which is not provided by any service" msgstr "le service « ~a » requiert « ~a » qui n'est fourni pas aucun service" -#: gnu/system/shadow.scm:223 +#: gnu/system/shadow.scm:231 #, scheme-format msgid "supplementary group '~a' of user '~a' is undeclared" msgstr "le groupe supplémentaire « ~a » de l'utilisateur « ~a » n'est pas déclaré" -#: gnu/system/shadow.scm:233 +#: gnu/system/shadow.scm:241 #, scheme-format msgid "primary group '~a' of user '~a' is undeclared" msgstr "le groupe primaire « ~a » de l'utilisateur « ~a » n'est pas déclaré" @@ -126,24 +168,23 @@ msgstr "le groupe primaire « ~a » de l'utilisateur « ~a » n'est pas déc #: guix/scripts.scm:56 #, scheme-format msgid "invalid argument: ~a~%" -msgstr "argument non valide: ~a~%" +msgstr "argument non valide : ~a~%" -#: guix/scripts.scm:82 guix/scripts/download.scm:133 guix/scripts/gc.scm:164 +#: guix/scripts.scm:84 guix/scripts/download.scm:135 #: guix/scripts/import/cran.scm:82 guix/scripts/import/elpa.scm:77 -#: guix/scripts/lint.scm:1061 guix/scripts/publish.scm:811 -#: guix/scripts/edit.scm:81 guix/scripts/graph.scm:456 +#: guix/scripts/publish.scm:844 guix/scripts/edit.scm:81 #, scheme-format msgid "~A: unrecognized option~%" -msgstr "~A: option non reconnue~%" +msgstr "~A : option non reconnue~%" -#: guix/scripts.scm:174 +#: guix/scripts.scm:179 #, scheme-format msgid "Your Guix installation is ~a day old.\n" msgid_plural "Your Guix installation is ~a days old.\n" msgstr[0] "Votre installation Guix est vieille de ~a jour.\n" msgstr[1] "Votre installation Guix est vieille de ~a jours.\n" -#: guix/scripts.scm:179 +#: guix/scripts.scm:184 #, scheme-format msgid "" "Consider running 'guix pull' followed by\n" @@ -155,12 +196,12 @@ msgstr "" #: guix/scripts/build.scm:124 #, scheme-format msgid "failed to create GC root `~a': ~a~%" -msgstr "impossible de créer la racine du GC « ~a »: ~a~%" +msgstr "impossible de créer la racine du GC « ~a » : ~a~%" #: guix/scripts/build.scm:206 #, scheme-format msgid "invalid replacement specification: ~s~%" -msgstr "spécification de remplacement invalide: ~s~%" +msgstr "spécification de remplacement invalide : ~s~%" #: guix/scripts/build.scm:263 msgid "" @@ -203,7 +244,7 @@ msgid "" " -L, --load-path=DIR prepend DIR to the package module search path" msgstr "" "\n" -" -L, --load-path=REP préfixer le chemin de recherche par REP " +" -L, --load-path=REP préfixer le chemin de recherche par REP" #: guix/scripts/build.scm:314 msgid "" @@ -245,7 +286,7 @@ msgstr "" "\n" " --no-substitutes compiler plutôt que recourir à des substituts pré-compilés" -#: guix/scripts/build.scm:324 guix/scripts/size.scm:222 +#: guix/scripts/build.scm:324 guix/scripts/size.scm:232 msgid "" "\n" " --substitute-urls=URLS\n" @@ -324,7 +365,7 @@ msgstr "" #: guix/scripts/build.scm:448 guix/scripts/build.scm:455 #, scheme-format msgid "not a number: '~a' option argument: ~a~%" -msgstr "pas un nombre: argument d'option « ~a »: ~a~%" +msgstr "pas un nombre: argument d'option « ~a » : ~a~%" #: guix/scripts/build.scm:474 msgid "" @@ -332,7 +373,7 @@ msgid "" "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n" msgstr "" "Usage: guix build [OPTION]... PAQUET-OU-DERIVATION...\n" -"Compiler le PAQUET-OU-DERIVATION donné et retourner leur chemin de sortie.\n" +"Compiler le PAQUET-OU-DERIVATION donné et retourner leurs chemins de sortie.\n" #: guix/scripts/build.scm:476 msgid "" @@ -370,7 +411,7 @@ msgstr "" " --sources[=TYPE] compiler les dérivations sources. TYPE peut optionnellement\n" " être « package », « all » (défaut) ou « transitive »" -#: guix/scripts/build.scm:486 guix/scripts/pack.scm:330 +#: guix/scripts/build.scm:486 guix/scripts/pack.scm:338 msgid "" "\n" " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" @@ -378,7 +419,7 @@ msgstr "" "\n" " -s, --system=SYSTÈME essayer de compiler pour le SYSTÈME donné, par exemple « i686-linux »" -#: guix/scripts/build.scm:488 guix/scripts/pack.scm:332 +#: guix/scripts/build.scm:488 guix/scripts/pack.scm:340 msgid "" "\n" " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" @@ -436,16 +477,17 @@ msgstr "" "\n" " --log-file retourner les fichiers de journalisation pour les dérivations données" -#: guix/scripts/build.scm:508 guix/scripts/download.scm:81 -#: guix/scripts/package.scm:419 guix/scripts/gc.scm:74 +#: guix/scripts/build.scm:508 guix/scripts/download.scm:83 +#: guix/scripts/package.scm:425 guix/scripts/gc.scm:74 #: guix/scripts/hash.scm:59 guix/scripts/import.scm:92 -#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:94 -#: guix/scripts/substitute.scm:810 guix/scripts/system.scm:742 -#: guix/scripts/lint.scm:1010 guix/scripts/publish.scm:93 -#: guix/scripts/edit.scm:44 guix/scripts/size.scm:230 -#: guix/scripts/graph.scm:436 guix/scripts/challenge.scm:227 -#: guix/scripts/copy.scm:121 guix/scripts/pack.scm:341 -#: guix/scripts/container.scm:33 guix/scripts/container/exec.scm:43 +#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:110 +#: guix/scripts/substitute.scm:889 guix/scripts/system.scm:870 +#: guix/scripts/lint.scm:1090 guix/scripts/publish.scm:94 +#: guix/scripts/edit.scm:44 guix/scripts/size.scm:243 +#: guix/scripts/graph.scm:432 guix/scripts/challenge.scm:241 +#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:349 +#: guix/scripts/weather.scm:156 guix/scripts/container.scm:33 +#: guix/scripts/container/exec.scm:43 msgid "" "\n" " -h, --help display this help and exit" @@ -453,16 +495,17 @@ msgstr "" "\n" " -h, --help afficher cette aide et quitter" -#: guix/scripts/build.scm:510 guix/scripts/download.scm:83 -#: guix/scripts/package.scm:421 guix/scripts/gc.scm:76 +#: guix/scripts/build.scm:510 guix/scripts/download.scm:85 +#: guix/scripts/package.scm:427 guix/scripts/gc.scm:76 #: guix/scripts/hash.scm:61 guix/scripts/import.scm:94 -#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:96 -#: guix/scripts/substitute.scm:812 guix/scripts/system.scm:744 -#: guix/scripts/lint.scm:1014 guix/scripts/publish.scm:95 -#: guix/scripts/edit.scm:46 guix/scripts/size.scm:232 -#: guix/scripts/graph.scm:438 guix/scripts/challenge.scm:229 -#: guix/scripts/copy.scm:123 guix/scripts/pack.scm:343 -#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:45 +#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:112 +#: guix/scripts/substitute.scm:891 guix/scripts/system.scm:872 +#: guix/scripts/lint.scm:1094 guix/scripts/publish.scm:96 +#: guix/scripts/edit.scm:46 guix/scripts/size.scm:245 +#: guix/scripts/graph.scm:434 guix/scripts/challenge.scm:243 +#: guix/scripts/copy.scm:124 guix/scripts/pack.scm:351 +#: guix/scripts/weather.scm:158 guix/scripts/container.scm:35 +#: guix/scripts/container/exec.scm:45 msgid "" "\n" " -V, --version display version information and exit" @@ -476,30 +519,30 @@ msgid "" "invalid argument: '~a' option argument: ~a, ~\n" "must be one of 'package', 'all', or 'transitive'~%" msgstr "" -"argument invalide: argument en option « ~a »: ~a, ~\n" +"argument invalide: argument en option « ~a » : ~a, ~\n" "doit être « package », « all » ou « transitive »~%" #: guix/scripts/build.scm:590 #, scheme-format msgid "~s: not something we can build~%" -msgstr "~s: pas quelque chose qu'on sait compiler~%" +msgstr "~s : pas quelque chose qu'on sait compiler~%" #: guix/scripts/build.scm:644 #, scheme-format msgid "~a: warning: package '~a' has no source~%" -msgstr "~a: attention: le paquet « ~a » n'a pas de source~%" +msgstr "~a : attention : le paquet « ~a » n'a pas de source~%" #: guix/scripts/build.scm:678 #, scheme-format msgid "no build log for '~a'~%" msgstr "aucun journal de compilation pour « ~a »~%" -#: guix/discovery.scm:56 +#: guix/discovery.scm:88 #, scheme-format msgid "cannot access `~a': ~a~%" -msgstr "impossible d'accéder à « ~a »: ~a~%" +msgstr "impossible d'accéder à « ~a » : ~a~%" -#: guix/scripts/download.scm:67 +#: guix/scripts/download.scm:69 msgid "" "Usage: guix download [OPTION] URL\n" "Download the file at URL to the store or to the given file, and print its\n" @@ -513,10 +556,10 @@ msgstr "" "au fichier spécifié puis afficher son nom de fichier et l'empreinte de son\n" "contenu.\n" "\n" -"Formats supportés: 'nix-base32' (défaut), 'base32', et 'base16'\n" -"('hex' et 'hexadecimal' peuvent aussi être utilisés).\n" +"Formats supportés : « nix-base32 » (par défaut), « base32 », et « base16 »\n" +"(« hex » et « hexadecimal » peuvent aussi être utilisés).\n" -#: guix/scripts/download.scm:73 guix/scripts/hash.scm:54 +#: guix/scripts/download.scm:75 guix/scripts/hash.scm:54 msgid "" "\n" " -f, --format=FMT write the hash in the given format" @@ -524,7 +567,7 @@ msgstr "" "\n" " -f, --format=FORMAT écrire l'empreinte dans le FORMAT donné" -#: guix/scripts/download.scm:75 +#: guix/scripts/download.scm:77 msgid "" "\n" " --no-check-certificate\n" @@ -532,9 +575,9 @@ msgid "" msgstr "" "\n" " --no-check-certificate\n" -" ne valide pas les certificats des serveurs HTTPS " +" ne pas valider les certificats des serveurs HTTPS " -#: guix/scripts/download.scm:78 +#: guix/scripts/download.scm:80 msgid "" "\n" " -o, --output=FILE download to FILE" @@ -542,99 +585,104 @@ msgstr "" "\n" " -o, --output=FICHIER télécharge dans le FICHIER" -#: guix/scripts/download.scm:101 guix/scripts/hash.scm:82 +#: guix/scripts/download.scm:103 guix/scripts/hash.scm:82 #, scheme-format msgid "unsupported hash format: ~a~%" -msgstr "format d'empreinte non supporté: ~a~%" +msgstr "format d'empreinte non supporté : ~a~%" -#: guix/scripts/download.scm:136 guix/scripts/package.scm:882 -#: guix/scripts/publish.scm:813 +#: guix/scripts/download.scm:138 guix/scripts/package.scm:906 +#: guix/scripts/publish.scm:846 #, scheme-format msgid "~A: extraneous argument~%" -msgstr "~A: argument superflu~%" +msgstr "~A : argument superflu~%" -#: guix/scripts/download.scm:144 +#: guix/scripts/download.scm:146 #, scheme-format msgid "no download URI was specified~%" msgstr "aucune URI de téléchargement spécifiée~%" -#: guix/scripts/download.scm:146 +#: guix/scripts/download.scm:151 #, scheme-format msgid "~a: failed to parse URI~%" -msgstr "~a: impossible d'évaluer l'URI~%" +msgstr "~a : impossible d'évaluer l'URI~%" -#: guix/scripts/download.scm:156 +#: guix/scripts/download.scm:161 #, scheme-format msgid "~a: download failed~%" -msgstr "~a: le téléchargement a échoué~%" +msgstr "~a : le téléchargement a échoué~%" -#: guix/scripts/package.scm:107 +#: guix/scripts/package.scm:112 #, scheme-format msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" msgstr "Essayez « info '(guix) Invoking guix package' » pour plus d'information.~%" -#: guix/scripts/package.scm:129 +#: guix/scripts/package.scm:134 #, scheme-format msgid "error: while creating directory `~a': ~a~%" -msgstr "erreur: pendant la création du répertoire « ~a »: ~a~%" +msgstr "erreur : pendant la création du répertoire « ~a » : ~a~%" -#: guix/scripts/package.scm:133 +#: guix/scripts/package.scm:138 #, scheme-format msgid "Please create the `~a' directory, with you as the owner.~%" msgstr "Veuillez créer le répertoire « ~a » dont vous êtes le propriétaire.~%" -#: guix/scripts/package.scm:140 +#: guix/scripts/package.scm:145 #, scheme-format msgid "error: directory `~a' is not owned by you~%" -msgstr "erreur: vous ne possédez pas le répertoire « ~a »" +msgstr "erreur : vous ne possédez pas le répertoire « ~a »~%" -#: guix/scripts/package.scm:143 +#: guix/scripts/package.scm:148 #, scheme-format msgid "Please change the owner of `~a' to user ~s.~%" msgstr "Veuillez définir ~s comme propriétaire de « ~a ».~%" -#: guix/scripts/package.scm:178 +#: guix/scripts/package.scm:183 #, scheme-format msgid "not removing generation ~a, which is current~%" msgstr "la génération ~a n'est pas supprimée car elle est actuelle~%" -#: guix/scripts/package.scm:185 +#: guix/scripts/package.scm:190 #, scheme-format msgid "no matching generation~%" msgstr "aucune génération correspondante~%" -#: guix/scripts/package.scm:188 guix/scripts/package.scm:700 -#: guix/scripts/system.scm:530 +#: guix/scripts/package.scm:193 guix/scripts/package.scm:716 +#: guix/scripts/system.scm:558 #, scheme-format msgid "invalid syntax: ~a~%" -msgstr "syntaxe non valide: ~a~%" +msgstr "syntaxe non valide : ~a~%" -#: guix/scripts/package.scm:214 +#: guix/scripts/package.scm:219 #, scheme-format msgid "nothing to be done~%" msgstr "aucune action à faire~%" -#: guix/scripts/package.scm:228 +#: guix/scripts/package.scm:233 #, scheme-format msgid "~a package in profile~%" msgid_plural "~a packages in profile~%" msgstr[0] "~a paquet dans le profile~%" msgstr[1] "~a paquets dans le profile~%" -#: guix/scripts/package.scm:344 +#: guix/scripts/package.scm:313 +#, scheme-format +msgid "package '~a' no longer exists~%" +msgstr "le paquet « ~a » n'existe plus~%" + +#: guix/scripts/package.scm:351 #, scheme-format msgid "The following environment variable definitions may be needed:~%" -msgstr "Il pourrait être nécessaire de définir les variables d'environnement suivantes:~%" +msgstr "Il pourrait être nécessaire de définir les variables d'environnement suivantes :~%" -#: guix/scripts/package.scm:360 +#: guix/scripts/package.scm:366 msgid "" "Usage: guix package [OPTION]...\n" "Install, remove, or upgrade packages in a single transaction.\n" msgstr "" -"Usage: guix package [OPTION]...\n" +"Usage : guix package [OPTION]...\n" "Installer, supprimer ou mettre à jour les paquets en une seule transaction.\n" -#: guix/scripts/package.scm:362 +#: guix/scripts/package.scm:368 msgid "" "\n" " -i, --install PACKAGE ...\n" @@ -642,9 +690,9 @@ msgid "" msgstr "" "\n" " -i, --install=PAQUET ...\n" -" installer PAQUETs" +" installer les PAQUETs" -#: guix/scripts/package.scm:365 +#: guix/scripts/package.scm:371 msgid "" "\n" " -e, --install-from-expression=EXP\n" @@ -654,7 +702,7 @@ msgstr "" " -e, --install-from-expression=EXP\n" " installer le paquet évalué par EXP" -#: guix/scripts/package.scm:368 +#: guix/scripts/package.scm:374 msgid "" "\n" " -f, --install-from-file=FILE\n" @@ -666,7 +714,7 @@ msgstr "" " installer le paquet évalué par le code dans\n" " FICHIER" -#: guix/scripts/package.scm:372 +#: guix/scripts/package.scm:378 msgid "" "\n" " -r, --remove PACKAGE ...\n" @@ -674,9 +722,9 @@ msgid "" msgstr "" "\n" " -r, --remove=PAQUET ...\n" -" supprimer PAQUETs" +" supprimer les PAQUETs" -#: guix/scripts/package.scm:375 +#: guix/scripts/package.scm:381 msgid "" "\n" " -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" @@ -684,7 +732,7 @@ msgstr "" "\n" " -u, --upgrade[=REGEXP] mettre à jour tous les paquets installés correspondant à REGEXP" -#: guix/scripts/package.scm:377 +#: guix/scripts/package.scm:383 msgid "" "\n" " -m, --manifest=FILE create a new profile generation with the manifest\n" @@ -694,7 +742,7 @@ msgstr "" " -m, --manifest=FICHIER créer une nouvelle génération de profil avec le\n" " manifeste dans FICHIER" -#: guix/scripts/package.scm:380 +#: guix/scripts/package.scm:386 msgid "" "\n" " --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP" @@ -702,7 +750,7 @@ msgstr "" "\n" " --do-not-upgrade[=REGEXP] ne pas mettre à jour les paquets correspondant à REGEXP" -#: guix/scripts/package.scm:382 +#: guix/scripts/package.scm:388 msgid "" "\n" " --roll-back roll back to the previous generation" @@ -710,7 +758,7 @@ msgstr "" "\n" " --roll-back revenir à la génération antérieure" -#: guix/scripts/package.scm:384 +#: guix/scripts/package.scm:390 msgid "" "\n" " --search-paths[=KIND]\n" @@ -720,7 +768,7 @@ msgstr "" " --search-paths=[GENRE]\n" " afficher les définitions de variables d'environnement requises" -#: guix/scripts/package.scm:387 +#: guix/scripts/package.scm:393 msgid "" "\n" " -l, --list-generations[=PATTERN]\n" @@ -730,7 +778,7 @@ msgstr "" " -l, --list-generations[=MOTIF]\n" " lister les générations correspondant à MOTIF" -#: guix/scripts/package.scm:390 +#: guix/scripts/package.scm:396 msgid "" "\n" " -d, --delete-generations[=PATTERN]\n" @@ -740,7 +788,7 @@ msgstr "" " -d, --delete-generations[=MOTIF]\n" " supprimer les générations correspondant à MOTIF" -#: guix/scripts/package.scm:393 +#: guix/scripts/package.scm:399 msgid "" "\n" " -S, --switch-generation=PATTERN\n" @@ -750,7 +798,7 @@ msgstr "" " -S, --switch-generation=MOTIF\n" " basculer vers une génération correspondant à MOTIF" -#: guix/scripts/package.scm:396 +#: guix/scripts/package.scm:402 msgid "" "\n" " -p, --profile=PROFILE use PROFILE instead of the user's default profile" @@ -758,7 +806,7 @@ msgstr "" "\n" " -p, --profile=PROFIL utiliser PROFIL au lieu du profil par défaut de l'utilisateur" -#: guix/scripts/package.scm:399 +#: guix/scripts/package.scm:405 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the profile" @@ -766,7 +814,7 @@ msgstr "" "\n" " --bootstrap utiliser le programme d'amorçage Guile pour compiler le profil" -#: guix/scripts/package.scm:401 guix/scripts/pull.scm:86 +#: guix/scripts/package.scm:407 guix/scripts/pull.scm:98 msgid "" "\n" " --verbose produce verbose output" @@ -774,7 +822,7 @@ msgstr "" "\n" " --verbose produire une sortie verbeuse" -#: guix/scripts/package.scm:404 +#: guix/scripts/package.scm:410 msgid "" "\n" " -s, --search=REGEXP search in synopsis and description using REGEXP" @@ -782,7 +830,7 @@ msgstr "" "\n" " -s, --search=REGEXP chercher dans le synopsis et la description en utilisant REGEXP" -#: guix/scripts/package.scm:406 +#: guix/scripts/package.scm:412 msgid "" "\n" " -I, --list-installed[=REGEXP]\n" @@ -792,7 +840,7 @@ msgstr "" " -I, --list-installed[=REGEXP]\n" " lister les paquets installés correspondant à REGEXP" -#: guix/scripts/package.scm:409 +#: guix/scripts/package.scm:415 msgid "" "\n" " -A, --list-available[=REGEXP]\n" @@ -802,7 +850,7 @@ msgstr "" " -A, --list-available[=REGEXP]\n" " lister les paquets disponibles correspondant à REGEXP" -#: guix/scripts/package.scm:412 +#: guix/scripts/package.scm:418 msgid "" "\n" " --show=PACKAGE show details about PACKAGE" @@ -810,22 +858,32 @@ msgstr "" "\n" " --show=PAQUET montrer des détails du PAQUET" -#: guix/scripts/package.scm:507 +#: guix/scripts/package.scm:470 +#, scheme-format +msgid "upgrade regexp '~a' looks like a command-line option~%" +msgstr "l'expression régulière « ~a » ressemble à une option de la ligne de commande~%" + +#: guix/scripts/package.scm:473 +#, scheme-format +msgid "is this intended?~%" +msgstr "est-ce intentionnel ?~%" + +#: guix/scripts/package.scm:518 #, scheme-format msgid "~a: unsupported kind of search path~%" -msgstr "~a: type de chemin de recherche non supporté~%" +msgstr "~a : type de chemin de recherche non supporté~%" -#: guix/scripts/package.scm:791 +#: guix/scripts/package.scm:815 #, scheme-format msgid "cannot switch to generation '~a'~%" msgstr "impossible de passer à la génération « ~a »~%" -#: guix/scripts/package.scm:807 +#: guix/scripts/package.scm:831 #, scheme-format msgid "would install new manifest from '~a' with ~d entries~%" msgstr "installerait le nouveau manifeste depuis « ~a » avec ~d entrées~%" -#: guix/scripts/package.scm:809 +#: guix/scripts/package.scm:833 #, scheme-format msgid "installing new manifest from '~a' with ~d entries~%" msgstr "installation du nouveau manifeste depuis « ~a » avec ~d entrées~%" @@ -835,8 +893,8 @@ msgid "" "Usage: guix gc [OPTION]... PATHS...\n" "Invoke the garbage collector.\n" msgstr "" -"Usage: guix gc [OPTION]... CHEMINS...\n" -"Appeler le garbage collector.\n" +"Usage : guix gc [OPTION]... CHEMINS...\n" +"Appeler le ramasse-miettes (GC).\n" #: guix/scripts/gc.scm:44 msgid "" @@ -846,7 +904,7 @@ msgid "" msgstr "" "\n" " -C, --collect-garbage[=MIN]\n" -" collecter au moins MIN octets dans le garbage-collector" +" collecter au moins MIN octets dans le ramasse-miettes" #: guix/scripts/gc.scm:47 msgid "" @@ -854,7 +912,7 @@ msgid "" " -F, --free-space=FREE attempt to reach FREE available space in the store" msgstr "" "\n" -" -F, --free-space=LIBRE essayer d'atteindre LIBRE espace dans le stockage" +" -F, --free-space=LIBRE essayer d'atteindre LIBRE espace dans le dépôt" #: guix/scripts/gc.scm:49 msgid "" @@ -870,7 +928,7 @@ msgid "" " --optimize optimize the store by deduplicating identical files" msgstr "" "\n" -" --optimize optimise le stockage en supprimant les doublons des fichiers identiques" +" --optimize optimise le dépôt en supprimant les doublons des fichiers identiques" #: guix/scripts/gc.scm:53 msgid "" @@ -943,22 +1001,22 @@ msgstr "" #: guix/scripts/gc.scm:100 #, scheme-format msgid "invalid amount of storage: ~a~%" -msgstr "quantité de stockage non valide: ~a~%" +msgstr "quantité de stockage non valide : ~a~%" -#: guix/scripts/gc.scm:191 +#: guix/scripts/gc.scm:185 msgid "already ~h bytes available on ~a, nothing to do~%" msgstr "déjà ~h octets disponibles sur ~a, rien à faire~%" -#: guix/scripts/gc.scm:194 +#: guix/scripts/gc.scm:188 msgid "freeing ~h bytes~%" msgstr "libération de ~h octets~%" -#: guix/scripts/gc.scm:206 +#: guix/scripts/gc.scm:200 #, scheme-format msgid "extraneous arguments: ~{~a ~}~%" -msgstr "arguments superflus: ~{~a ~}~%" +msgstr "arguments superflus : ~{~a ~}~%" -#: guix/scripts/gc.scm:226 guix/scripts/gc.scm:229 +#: guix/scripts/gc.scm:220 guix/scripts/gc.scm:223 msgid "freed ~h bytes~%" msgstr "~h octets libérés~%" @@ -970,10 +1028,10 @@ msgid "" "Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n" "and 'hexadecimal' can be used as well).\n" msgstr "" -"Usage: guix hash [OPTION] FICHIER\n" +"Usage : guix hash [OPTION] FICHIER\n" "Retourner l'empreinte cryptographique du FICHIER.\n" "\n" -"Formats supportés: « nix-base32 » (défaut), « base32 », et « base16 » (« hex »\n" +"Formats supportés: « nix-base32 » (par défaut), « base32 », et « base16 » (« hex »\n" "et « hexadecimal » peuvent également être utilisés).\n" #: guix/scripts/hash.scm:52 @@ -992,18 +1050,13 @@ msgstr "" "\n" " -r, --recursive calculer l'empreinte de FICHIER de manière récursive" -#: guix/scripts/hash.scm:109 -#, scheme-format -msgid "unrecognized option: ~a~%" -msgstr "option non reconnue: ~a~%" - -#: guix/scripts/hash.scm:155 guix/ui.scm:264 guix/ui.scm:498 guix/ui.scm:551 +#: guix/scripts/hash.scm:150 guix/ui.scm:326 guix/ui.scm:601 guix/ui.scm:654 #, scheme-format msgid "~a~%" msgstr "~a~%" -#: guix/scripts/hash.scm:158 guix/scripts/system.scm:879 -#: guix/scripts/system.scm:886 guix/scripts/system.scm:893 +#: guix/scripts/hash.scm:153 guix/scripts/system.scm:1022 +#: guix/scripts/system.scm:1031 guix/scripts/system.scm:1038 #, scheme-format msgid "wrong number of arguments~%" msgstr "nombre d'arguments incorrect~%" @@ -1013,7 +1066,7 @@ msgid "" "Usage: guix import IMPORTER ARGS ...\n" "Run IMPORTER with ARGS.\n" msgstr "" -"Usage: guix import IMPORTEUR ARGS...\n" +"Usage : guix import IMPORTATEUR ARGS...\n" "Lancer IMPORTATEUR avec ARGS.\n" #: guix/scripts/import.scm:89 @@ -1033,15 +1086,15 @@ msgstr "l'importateur « ~a » a échoué~%" #: guix/scripts/import.scm:124 #, scheme-format msgid "~a: invalid importer~%" -msgstr "~a: importateur non valide~%" +msgstr "~a : importateur non valide~%" #: guix/scripts/import/cran.scm:43 msgid "" "Usage: guix import cran PACKAGE-NAME\n" "Import and convert the CRAN package for PACKAGE-NAME.\n" msgstr "" -"Usage: guix import cran PAQUET-NOM\n" -"Importer et convertir le paquet CAN pour PAQUET-NOM.\n" +"Usage : guix import cran NOM-DU-PAQUET\n" +"Importer et convertir le paquet CAN pour NOM-DU-PAQUET.\n" #: guix/scripts/import/cran.scm:45 msgid "" @@ -1059,7 +1112,7 @@ msgstr "échec lors du téléchargement de la description du paquet « ~a »~% #: guix/scripts/import/cran.scm:112 guix/scripts/import/elpa.scm:95 #, scheme-format msgid "too few arguments~%" -msgstr "trop peux d'arguments~%" +msgstr "trop peu d'arguments~%" #: guix/scripts/import/cran.scm:114 guix/scripts/import/elpa.scm:97 #, scheme-format @@ -1071,8 +1124,8 @@ msgid "" "Usage: guix import elpa PACKAGE-NAME\n" "Import the latest package named PACKAGE-NAME from an ELPA repository.\n" msgstr "" -"Usage: guix import elpa PAQUET-NOM\n" -"Importer le dernier paquet nommé PAQUET-NOM d'un dépôt ELPA.\n" +"Usage : guix import elpa NOM-DU-PAQUET\n" +"Importer le dernier paquet nommé NOM-DU-PAQUET d'un dépôt ELPA.\n" #: guix/scripts/import/elpa.scm:43 msgid "" @@ -1103,190 +1156,223 @@ msgstr "" msgid "failed to download package '~a'~%" msgstr "échec lors du téléchargement du paquet « ~a »~%" -#: guix/scripts/pull.scm:84 +#: guix/scripts/pull.scm:60 +#, scheme-format +msgid "" +"Guile-Git is missing but it is now required by 'guix pull'.\n" +"Install it by running:\n" +"\n" +" guix package -i ~a\n" +" export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/~a:$GUILE_LOAD_PATH\n" +" export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n" +"\n" +msgstr "" +"Il vous manque Guile-Git qui est désormais requis par « guix pull ».\n" +"Installez-le en lançant :\n" +"\n" +" guix package -i ~a\n" +" export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/~a:$GUILE_LOAD_PATH\n" +" export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n" +"\n" + +#: guix/scripts/pull.scm:96 msgid "" "Usage: guix pull [OPTION]...\n" "Download and deploy the latest version of Guix.\n" msgstr "" -"Usage: guix pull [OPTION]...\n" +"Usage : guix pull [OPTION]...\n" "Télécharger et déployer la dernière version de Guix.\n" -#: guix/scripts/pull.scm:88 +#: guix/scripts/pull.scm:100 msgid "" "\n" -" --url=URL download the Guix tarball from URL" +" --url=URL download from the Git repository at URL" msgstr "" "\n" -" --url=URL télécharger le tarball de Guix depuis URL" +" --url=URL télécharger le dépôt Git depuis URL" -#: guix/scripts/pull.scm:90 +#: guix/scripts/pull.scm:102 msgid "" "\n" -" --bootstrap use the bootstrap Guile to build the new Guix" +" --commit=COMMIT download the specified COMMIT" msgstr "" "\n" -" --bootstrap utiliser le programme d'amorçage Guile pour compiler le nouveau Guix" - -#: guix/scripts/pull.scm:150 -msgid "tarball did not produce a single source directory" -msgstr "la tarball n'a produit aucun répertoire source" +" --commit=COMMIT télécharger le COMMIT indiqué" -#: guix/scripts/pull.scm:168 -#, scheme-format -msgid "unpacking '~a'...~%" -msgstr "dépaquetage « ~a »...~%" +#: guix/scripts/pull.scm:104 +msgid "" +"\n" +" --branch=BRANCH download the tip of the specified BRANCH" +msgstr "" +"\n" +" --branch=BRANCHE télécharger le bout de la BRANCHE indiquée" -#: guix/scripts/pull.scm:177 -msgid "failed to unpack source code" -msgstr "échec du dépaquetage du code source" +#: guix/scripts/pull.scm:106 +msgid "" +"\n" +" --bootstrap use the bootstrap Guile to build the new Guix" +msgstr "" +"\n" +" --bootstrap utiliser le programme d'amorçage Guile pour compiler le nouveau Guix" -#: guix/scripts/pull.scm:220 +#: guix/scripts/pull.scm:192 msgid "Guix already up to date\n" msgstr "Guix est déjà à jour\n" -#: guix/scripts/pull.scm:225 +#: guix/scripts/pull.scm:197 #, scheme-format msgid "updated ~a successfully deployed under `~a'~%" msgstr "~a a été mis à jour et déployé avec succès sous « ~a »~%" -#: guix/scripts/pull.scm:228 +#: guix/scripts/pull.scm:200 #, scheme-format msgid "failed to update Guix, check the build log~%" -msgstr "échec de la mise à jour de Guix; consultez le journal de compilation~%" +msgstr "échec de la mise à jour de Guix ; consultez le journal de compilation~%" -#: guix/scripts/pull.scm:255 -msgid "failed to download up-to-date source, exiting\n" -msgstr "impossible de télécharger une source à jour; fin\n" +#: guix/scripts/pull.scm:216 +#, scheme-format +msgid "cannot enforce use of the Let's Encrypt certificates~%" +msgstr "impossible d'imposer l'utilisation des certificats Let's Encrypt~%" -#: guix/scripts/substitute.scm:114 +#: guix/scripts/pull.scm:218 +#, scheme-format +msgid "please upgrade Guile-Git~%" +msgstr "veuillez mettre à jour Guile-Git~%" + +#: guix/scripts/pull.scm:226 +#, scheme-format +msgid "Git error ~a~%" +msgstr "Erreur Git : ~a~%" + +#: guix/scripts/pull.scm:228 +#, scheme-format +msgid "Git error: ~a~%" +msgstr "Erreur Git : ~a~%" + +#: guix/scripts/pull.scm:262 +#, scheme-format +msgid "Updating from Git repository at '~a'...~%" +msgstr "Mise à jour depuis le dépôt Git « ~a »...~%" + +#: guix/scripts/pull.scm:271 +#, scheme-format +msgid "Building from Git commit ~a...~%" +msgstr "Construction depuis le commit Git « ~a »...~%" + +#: guix/scripts/substitute.scm:125 #, scheme-format msgid "authentication and authorization of substitutes disabled!~%" msgstr "authentification et autorisation des substituts désactivées !~%" -#: guix/scripts/substitute.scm:189 +#: guix/scripts/substitute.scm:200 #, scheme-format msgid "download from '~a' failed: ~a, ~s~%" -msgstr "le téléchargement depuis « ~a » a échoué: ~a, ~s~%" +msgstr "le téléchargement depuis « ~a » a échoué : ~a, ~s~%" -#: guix/scripts/substitute.scm:202 +#: guix/scripts/substitute.scm:213 #, scheme-format msgid "while fetching ~a: server is somewhat slow~%" -msgstr "pendant la récupération de ~a: le serveur est plutôt lent~%" +msgstr "pendant la récupération de ~a : le serveur est plutôt lent~%" -#: guix/scripts/substitute.scm:204 +#: guix/scripts/substitute.scm:215 #, scheme-format msgid "try `--no-substitutes' if the problem persists~%" msgstr "essayez l'option « --no-substitutes » si le problème persiste~%" -#: guix/scripts/substitute.scm:222 +#: guix/scripts/substitute.scm:233 #, scheme-format msgid "unsupported substitute URI scheme: ~a~%" -msgstr "schéma de substitution URI non supporté: ~a~%" +msgstr "schéma de substitution URI non supporté : ~a~%" -#: guix/scripts/substitute.scm:257 +#: guix/scripts/substitute.scm:268 #, scheme-format msgid "while fetching '~a': ~a (~s)~%" -msgstr "pendant la récupération de « ~a »: ~a (~s)~%" +msgstr "pendant la récupération de « ~a » : ~a (~s)~%" -#: guix/scripts/substitute.scm:262 +#: guix/scripts/substitute.scm:273 #, scheme-format msgid "ignoring substitute server at '~s'~%" msgstr "ignore le serveur de substitution à « ~s »~%" -#: guix/scripts/substitute.scm:312 +#: guix/scripts/substitute.scm:323 #, scheme-format msgid "signature version must be a number: ~s~%" msgstr "la version de la signature doit être un nombre: ~s~%" -#: guix/scripts/substitute.scm:316 +#: guix/scripts/substitute.scm:327 #, scheme-format msgid "unsupported signature version: ~a~%" -msgstr "version de signature non supportée: ~a~%" +msgstr "version de signature non supportée : ~a~%" -#: guix/scripts/substitute.scm:324 +#: guix/scripts/substitute.scm:335 #, scheme-format msgid "signature is not a valid s-expression: ~s~%" -msgstr "la signature n'est pas une s-expression valide: ~s~%" +msgstr "la signature n'est pas une s-expression valide : ~s~%" -#: guix/scripts/substitute.scm:328 +#: guix/scripts/substitute.scm:339 #, scheme-format msgid "invalid format of the signature field: ~a~%" -msgstr "format invalide du champ de signature: ~a~%" +msgstr "format invalide du champ de signature : ~a~%" -#: guix/scripts/substitute.scm:363 +#: guix/scripts/substitute.scm:374 #, scheme-format msgid "invalid signature for '~a'~%" msgstr "signature non valide pour « ~a »~%" -#: guix/scripts/substitute.scm:365 +#: guix/scripts/substitute.scm:376 #, scheme-format msgid "hash mismatch for '~a'~%" msgstr "l'empreinte ne correspond pas pour « ~a »~%" -#: guix/scripts/substitute.scm:367 +#: guix/scripts/substitute.scm:378 #, scheme-format msgid "'~a' is signed with an unauthorized key~%" msgstr "« ~a » est signé avec une clé non autorisée~%" -#: guix/scripts/substitute.scm:369 +#: guix/scripts/substitute.scm:380 #, scheme-format msgid "signature on '~a' is corrupt~%" msgstr "la signature de « ~a » est corrompue~%" -#: guix/scripts/substitute.scm:407 -#, scheme-format -msgid "substitute at '~a' lacks a signature~%" -msgstr "le substitut à « ~a » n'a pas de signature~%" - -#: guix/scripts/substitute.scm:414 -#, scheme-format -msgid "Found valid signature for ~a~%" -msgstr "Signature valide trouvée pour ~a~%" - -#: guix/scripts/substitute.scm:417 -#, scheme-format -msgid "From ~a~%" -msgstr "De ~a~%" - -#: guix/scripts/substitute.scm:451 +#: guix/scripts/substitute.scm:465 #, scheme-format msgid "'~a' does not name a store item~%" msgstr "« ~a » ne nomme pas un élément du stockage~%" -#: guix/scripts/substitute.scm:599 +#: guix/scripts/substitute.scm:629 #, scheme-format msgid "updating list of substitutes from '~a'... ~5,1f%" msgstr "mise à jour de la liste des substituts depuis « ~a »... ~5,1f%" -#: guix/scripts/substitute.scm:654 +#: guix/scripts/substitute.scm:693 #, scheme-format msgid "~s: unsupported server URI scheme~%" -msgstr "~s: schéma de URI serveur non supporté~%" +msgstr "~s : schéma de URI serveur non supporté~%" -#: guix/scripts/substitute.scm:664 +#: guix/scripts/substitute.scm:703 #, scheme-format msgid "'~a' uses different store '~a'; ignoring it~%" msgstr "« ~a » utilise un stockage « ~a » différent. Il est ignoré~%" -#: guix/scripts/substitute.scm:784 +#: guix/scripts/substitute.scm:863 #, scheme-format msgid "host name lookup error: ~a~%" -msgstr "erreur lors de la consultation du nom d'hôte: ~a~%" +msgstr "erreur lors de la consultation du nom d'hôte : ~a~%" -#: guix/scripts/substitute.scm:789 +#: guix/scripts/substitute.scm:868 #, scheme-format msgid "TLS error in procedure '~a': ~a~%" -msgstr "erreur TLS dans la procédure « ~a »: ~a~%" +msgstr "Erreur TLS dans la procédure « ~a » : ~a~%" -#: guix/scripts/substitute.scm:800 +#: guix/scripts/substitute.scm:879 msgid "" "Usage: guix substitute [OPTION]...\n" "Internal tool to substitute a pre-built binary to a local build.\n" msgstr "" -"Usage: guix substitute [OPTION]...\n" +"Usage : guix substitute [OPTION]...\n" "Outil interne pour substituer un binaire pré-compilé à une compilation locale.\n" -#: guix/scripts/substitute.scm:802 +#: guix/scripts/substitute.scm:881 msgid "" "\n" " --query report on the availability of substitutes for the\n" @@ -1297,7 +1383,7 @@ msgstr "" " noms de fichiers de dépôt passés sur l'entrée\n" " standard" -#: guix/scripts/substitute.scm:805 +#: guix/scripts/substitute.scm:884 msgid "" "\n" " --substitute STORE-FILE DESTINATION\n" @@ -1309,27 +1395,29 @@ msgstr "" " télécharger FICHIER-DÉPÔT et l'enregistrer comme un Nar\n" " dans le fichier DESTINATION" -#. TRANSLATORS: The second part of this message looks like -#. "(4.1MiB installed)"; it shows the size of the package once -#. installed. -#: guix/scripts/substitute.scm:878 +#: guix/scripts/substitute.scm:949 +#, scheme-format +msgid "no valid substitute for '~a'~%" +msgstr "pas de substitut valide pour « ~a »~%" + +#: guix/scripts/substitute.scm:956 #, scheme-format -msgid "Downloading ~a~:[~*~; (~a installed)~]...~%" -msgstr "Téléchargement de ~a~:[~*~; (~a installé)~]...~%" +msgid "Downloading ~a...~%" +msgstr "Téléchargement de « ~a »...~%" -#: guix/scripts/substitute.scm:935 +#: guix/scripts/substitute.scm:1012 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n" -msgstr "l'ACL pour l'import d'archives ne semble pas initialisée ; les substituts pourraient être indisponibles\n" +msgstr "L'ACL pour l'import d'archives ne semble pas initialisée ; les substituts pourraient être indisponibles\n" -#: guix/scripts/substitute.scm:985 +#: guix/scripts/substitute.scm:1066 #, scheme-format msgid "~a: invalid URI~%" -msgstr "~a: URI invalide~%" +msgstr "~a : URI invalide~%" -#: guix/scripts/substitute.scm:1043 +#: guix/scripts/substitute.scm:1126 #, scheme-format msgid "~a: unrecognized options~%" -msgstr "~a: options non reconnues~%" +msgstr "~a : options non reconnues~%" #: guix/scripts/authenticate.scm:59 #, scheme-format @@ -1339,17 +1427,17 @@ msgstr "impossible de trouver la clé publique correspondant à la clé secrète #: guix/scripts/authenticate.scm:79 #, scheme-format msgid "error: invalid signature: ~a~%" -msgstr "erreur: signature non valide: ~a~%" +msgstr "erreur : signature non valide: ~a~%" #: guix/scripts/authenticate.scm:81 #, scheme-format msgid "error: unauthorized public key: ~a~%" -msgstr "erreur: clé publique non autorisée: ~a~%" +msgstr "erreur : clé publique non autorisée: ~a~%" #: guix/scripts/authenticate.scm:83 #, scheme-format msgid "error: corrupt signature data: ~a~%" -msgstr "erreur: signature corrompue: ~a~%" +msgstr "erreur : signature corrompue : ~a~%" #: guix/scripts/authenticate.scm:121 msgid "" @@ -1357,211 +1445,225 @@ msgid "" "Sign or verify the signature on the given file. This tool is meant to\n" "be used internally by 'guix-daemon'.\n" msgstr "" -"Usage: guix authenticate OPTION...\n" -"Signer ou vérifier la signature du fichier donné. Cet outil est destiné\n" +"Usage : guix authenticate OPTION...\n" +"Signer ou vérifier la signature du fichier donné. Cet outil est destiné\n" "à être utilisé en interne par « guix-daemon ».\n" #: guix/scripts/authenticate.scm:127 msgid "wrong arguments" msgstr "mauvais arguments" -#: guix/scripts/system.scm:133 +#: guix/scripts/system.scm:135 #, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "impossible d'enregistrer « ~a » sous « ~a »~%" -#: guix/scripts/system.scm:166 +#: guix/scripts/system.scm:174 #, scheme-format -msgid "failed to install GRUB on device '~a'~%" -msgstr "échec de l'installation de GRUB sur le périphérique « ~a »~%" +msgid "failed to install bootloader ~a~%" +msgstr "impossible d'installer le chargeur de démarrage : ~a~%" -#: guix/scripts/system.scm:184 +#: guix/scripts/system.scm:194 #, scheme-format msgid "initializing the current root file system~%" msgstr "initialisation du système de fichier racine courant~%" -#: guix/scripts/system.scm:198 +#: guix/scripts/system.scm:208 #, scheme-format msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%" msgstr "n'est pas exécuté en tant que « root » donc le propriétaire de « ~a » pourrait être incorrect !~%" -#: guix/scripts/system.scm:239 +#: guix/scripts/system.scm:253 #, scheme-format msgid "while talking to shepherd: ~a~%" -msgstr "en parlant à shepherd: ~a~%" +msgstr "en parlant à shepherd : ~a~%" -#: guix/scripts/system.scm:246 +#: guix/scripts/system.scm:260 #, scheme-format msgid "service '~a' could not be found~%" msgstr "service: « ~a » introuvable~%" -#: guix/scripts/system.scm:249 +#: guix/scripts/system.scm:263 #, scheme-format msgid "service '~a' does not have an action '~a'~%" msgstr "le service « ~a » n'a pas d'action « ~a »~%" -#: guix/scripts/system.scm:253 +#: guix/scripts/system.scm:267 #, scheme-format msgid "exception caught while executing '~a' on service '~a':~%" msgstr "exception interceptée pendant l'exécution de « ~a » sur le service « ~a »:~%" -#: guix/scripts/system.scm:261 +#: guix/scripts/system.scm:275 #, scheme-format msgid "something went wrong: ~s~%" -msgstr "quelque chose s'est mal passé: ~s~%" +msgstr "quelque chose s'est mal passé : ~s~%" -#: guix/scripts/system.scm:264 +#: guix/scripts/system.scm:278 #, scheme-format msgid "shepherd error~%" msgstr "erreur de shepherd~%" -#: guix/scripts/system.scm:281 +#: guix/scripts/system.scm:295 #, scheme-format msgid "failed to obtain list of shepherd services~%" msgstr "erreur en essayant d'obtenir la liste des services de shepherd~%" -#: guix/scripts/system.scm:301 +#: guix/scripts/system.scm:315 #, scheme-format msgid "unloading service '~a'...~%" msgstr "déchargement du service « ~a »...~%" -#: guix/scripts/system.scm:309 +#: guix/scripts/system.scm:323 #, scheme-format msgid "loading new services:~{ ~a~}...~%" -msgstr "Chargement des nouveaux services:~{ ~a~}...~%" +msgstr "chargement des nouveaux services :~{ ~a~}...~%" -#: guix/scripts/system.scm:333 +#: guix/scripts/system.scm:347 #, scheme-format msgid "activating system...~%" msgstr "activation du système...~%" -#: guix/scripts/system.scm:408 +#: guix/scripts/system.scm:423 #, scheme-format msgid "cannot switch to system generation '~a'~%" msgstr "impossible de passer à la génération « ~a » du système~%" -#: guix/scripts/system.scm:441 -#, scheme-format -msgid "failed to re-install GRUB configuration file: '~a'~%" -msgstr "échec à la ré-installation du fichier de configuration de GRUB: « ~a »~%" - -#: guix/scripts/system.scm:471 +#: guix/scripts/system.scm:494 msgid "the DAG of services" msgstr "le graphe orienté acyclique (DAG) des services" -#: guix/scripts/system.scm:484 +#: guix/scripts/system.scm:507 msgid "the dependency graph of shepherd services" msgstr "le graphique des dépendances des services de shepherd" -#: guix/scripts/system.scm:507 +#: guix/scripts/system.scm:531 #, scheme-format msgid " file name: ~a~%" msgstr " nom de fichier: ~a~%" -#: guix/scripts/system.scm:508 +#: guix/scripts/system.scm:532 #, scheme-format msgid " canonical file name: ~a~%" -msgstr " nom de fichier canonique: ~a~%" +msgstr " nom de fichier canonique : ~a~%" #. TRANSLATORS: Please preserve the two-space indentation. -#: guix/scripts/system.scm:510 +#: guix/scripts/system.scm:534 #, scheme-format msgid " label: ~a~%" -msgstr " étiquette: ~a~%" +msgstr " étiquette : ~a~%" -#: guix/scripts/system.scm:511 +#: guix/scripts/system.scm:535 +#, scheme-format +msgid " bootloader: ~a~%" +msgstr " chargeur de démarrage : ~a~%" + +#: guix/scripts/system.scm:536 #, scheme-format msgid " root device: ~a~%" -msgstr " périphérique racine: ~a~%" +msgstr " périphérique racine : ~a~%" -#: guix/scripts/system.scm:512 +#: guix/scripts/system.scm:540 #, scheme-format msgid " kernel: ~a~%" -msgstr " noyau: ~a~%" +msgstr " noyau : ~a~%" + +#: guix/scripts/system.scm:600 +#, scheme-format +msgid "~a: error: file system with label '~a' not found~%" +msgstr "~a : erreur : le système de fichier étiqueté « ~a » est introuvable~%" -#: guix/scripts/system.scm:569 +#: guix/scripts/system.scm:606 +#, scheme-format +msgid "~a: error: file system with UUID '~a' not found~%" +msgstr "~a : erreur : le système de fichier avec l'UUID « ~a » est introuvable~%" + +#: guix/scripts/system.scm:658 #, scheme-format msgid "~a not found: 'guix pull' was never run~%" -msgstr "~a pas trouvé: « guix pull » n'a jamais été exécuté~%" +msgstr "~a pas trouvé : « guix pull » n'a jamais été exécuté~%" -#: guix/scripts/system.scm:570 +#: guix/scripts/system.scm:659 #, scheme-format msgid "Consider running 'guix pull' before 'reconfigure'.~%" msgstr "Envisagez d'exécuter « guix pull » avant « reconfigure ».~%" -#: guix/scripts/system.scm:571 +#: guix/scripts/system.scm:660 #, scheme-format msgid "Failing to do that may downgrade your system!~%" msgstr "Si vous ne le faites pas, votre système pourrait être amené à une version inférieure !~%" -#: guix/scripts/system.scm:646 +#: guix/scripts/system.scm:767 #, scheme-format msgid "initializing operating system under '~a'...~%" msgstr "initialisation du système d'exploitation sous « ~a »...~%" -#: guix/scripts/system.scm:690 +#: guix/scripts/system.scm:812 msgid "" "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n" "Build the operating system declared in FILE according to ACTION.\n" "Some ACTIONS support additional ARGS.\n" msgstr "" -"Usage: guix system [OPTION ...] ACTION [ARG ...] [FICHIER]\n" +"Usage : guix system [OPTION ...] ACTION [ARG ...] [FICHIER]\n" "Compiler le système d'exploitation déclaré dans FICHER en suivant ACTION.\n" "Certaines ACTIONS supportent des ARGUMENTS supplémentaires.\n" -#: guix/scripts/system.scm:694 guix/scripts/container.scm:28 +#: guix/scripts/system.scm:816 guix/scripts/container.scm:28 msgid "The valid values for ACTION are:\n" -msgstr "Les valeurs possibles pour ACTION sont:\n" +msgstr "Les valeurs possibles pour ACTION sont :\n" -#: guix/scripts/system.scm:696 +#: guix/scripts/system.scm:818 +msgid " search search for existing service types\n" +msgstr " search chercher des types de services existants\n" + +#: guix/scripts/system.scm:820 msgid " reconfigure switch to a new operating system configuration\n" msgstr " reconfigure basculer vers une nouvelle configuration du système d'exploitation\n" -#: guix/scripts/system.scm:698 +#: guix/scripts/system.scm:822 msgid " roll-back switch to the previous operating system configuration\n" msgstr " roll-back basculer vers la configuration du système d'exploitation précédente\n" -#: guix/scripts/system.scm:700 +#: guix/scripts/system.scm:824 msgid " switch-generation switch to an existing operating system configuration\n" msgstr " switch-generation basculer vers une configuration du système d'exploitation existante\n" -#: guix/scripts/system.scm:702 +#: guix/scripts/system.scm:826 msgid " list-generations list the system generations\n" msgstr " list-generations lister les générations du système\n" -#: guix/scripts/system.scm:704 +#: guix/scripts/system.scm:828 msgid " build build the operating system without installing anything\n" msgstr " build compiler le système d'exploitation sans rien installer\n" -#: guix/scripts/system.scm:706 +#: guix/scripts/system.scm:830 msgid " container build a container that shares the host's store\n" -msgstr " container compiler un conteneur qui partage le stockage de l'hôte\n" +msgstr " container compiler un conteneur qui partage le dépôt de l'hôte\n" -#: guix/scripts/system.scm:708 +#: guix/scripts/system.scm:832 msgid " vm build a virtual machine image that shares the host's store\n" msgstr " vm compiler une machine virtuelle partageant le dépôt de l'hôte\n" -#: guix/scripts/system.scm:710 +#: guix/scripts/system.scm:834 msgid " vm-image build a freestanding virtual machine image\n" msgstr " vm-image compiler une image autonome de machine virtuelle\n" -#: guix/scripts/system.scm:712 +#: guix/scripts/system.scm:836 msgid " disk-image build a disk image, suitable for a USB stick\n" msgstr " disk-image compiler une image disque adaptée pour une clé USB\n" -#: guix/scripts/system.scm:714 +#: guix/scripts/system.scm:838 msgid " init initialize a root file system to run GNU\n" msgstr " init initialiser un système de fichier racine pour lancer GNU.\n" -#: guix/scripts/system.scm:716 +#: guix/scripts/system.scm:840 msgid " extension-graph emit the service extension graph in Dot format\n" -msgstr " extension-graph produire le graphique d'extension de service au format Dot\n" +msgstr " extension-graph produire le graphique des extensions de service au format Dot\n" -#: guix/scripts/system.scm:718 +#: guix/scripts/system.scm:842 msgid " shepherd-graph emit the graph of shepherd services in Dot format\n" msgstr " shepherd-graph produire le graphique des services de shepherd au format Dot\n" -#: guix/scripts/system.scm:722 +#: guix/scripts/system.scm:846 msgid "" "\n" " -d, --derivation return the derivation of the given system" @@ -1569,7 +1671,7 @@ msgstr "" "\n" " -d, --derivation retourner les dérivations pour le système donné" -#: guix/scripts/system.scm:724 +#: guix/scripts/system.scm:848 msgid "" "\n" " --on-error=STRATEGY\n" @@ -1579,7 +1681,19 @@ msgstr "" " --on-error=STRATÉGIE\n" " appliquer la STRATÉGIE quand une erreur survient en lisant le FICHIER" -#: guix/scripts/system.scm:727 +#: guix/scripts/system.scm:851 +msgid "" +"\n" +" --file-system-type=TYPE\n" +" for 'disk-image', produce a root file system of TYPE\n" +" (one of 'ext4', 'iso9660')" +msgstr "" +"\n" +" --file-system-type=TYPE\n" +" avec « disk-image », produit un système de fichiers racine de TYPE\n" +" (parmis « ext4» et « iso9660 »)" + +#: guix/scripts/system.scm:855 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" @@ -1588,7 +1702,7 @@ msgstr "" " --image-size=TAILLE\n" " pour « vm-image », produire une image de TAILLE" -#: guix/scripts/system.scm:729 +#: guix/scripts/system.scm:857 msgid "" "\n" " --no-bootloader for 'init', do not install a bootloader" @@ -1596,7 +1710,7 @@ msgstr "" "\n" " --no-bootloader pour « init », ne pas installer un chargeur de démarrage" -#: guix/scripts/system.scm:731 +#: guix/scripts/system.scm:859 msgid "" "\n" " --share=SPEC for 'vm', share host file system according to SPEC" @@ -1605,7 +1719,7 @@ msgstr "" " --share=SPEC pour « vm », partager le système de fichiers hôte selon\n" " SPEC" -#: guix/scripts/system.scm:733 +#: guix/scripts/system.scm:861 msgid "" "\n" " -r, --root=FILE for 'vm', 'vm-image', 'disk-image', 'container',\n" @@ -1618,7 +1732,7 @@ msgstr "" " sur le résultat et l'enregistrer en tant que racine du\n" " ramasse-miettes" -#: guix/scripts/system.scm:737 +#: guix/scripts/system.scm:865 msgid "" "\n" " --expose=SPEC for 'vm', expose host file system according to SPEC" @@ -1627,7 +1741,7 @@ msgstr "" " --expose=SPEC pour « vm », exposer le système de fichiers hôte selon\n" " SPEC" -#: guix/scripts/system.scm:739 +#: guix/scripts/system.scm:867 msgid "" "\n" " --full-boot for 'vm', make a full boot sequence" @@ -1635,45 +1749,49 @@ msgstr "" "\n" " --full-boot pour « vm », accomplir une séquence complète de démarrage" -#: guix/scripts/system.scm:827 +#: guix/scripts/system.scm:959 #, scheme-format msgid "no configuration file specified~%" msgstr "aucun fichier de configuration spécifié~%" -#: guix/scripts/system.scm:912 +#: guix/scripts/system.scm:1057 #, scheme-format msgid "~a: unknown action~%" -msgstr "~a: action inconnue~%" +msgstr "~a : action inconnue~%" -#: guix/scripts/system.scm:927 +#: guix/scripts/system.scm:1072 #, scheme-format msgid "wrong number of arguments for action '~a'~%" msgstr "nombre d'arguments incorrect pour l'action « ~a »~%" -#: guix/scripts/system.scm:932 +#: guix/scripts/system.scm:1077 #, scheme-format msgid "guix system: missing command name~%" -msgstr "système guix: nom de commande manquant~%" +msgstr "guix system : nom de commande manquant~%" -#: guix/scripts/system.scm:934 +#: guix/scripts/system.scm:1079 #, scheme-format msgid "Try 'guix system --help' for more information.~%" msgstr "Essayez « guix system --help » pour plus d'informations.~%" -#: guix/scripts/lint.scm:135 +#: guix/scripts/system/search.scm:64 guix/ui.scm:1057 guix/ui.scm:1071 +msgid "unknown" +msgstr "inconnu" + +#: guix/scripts/lint.scm:138 #, scheme-format msgid "Available checkers:~%" -msgstr "Vérificateurs disponibles:~%" +msgstr "Vérificateurs disponibles :~%" -#: guix/scripts/lint.scm:159 +#: guix/scripts/lint.scm:162 msgid "description should not be empty" msgstr "la description ne devrait pas être vide" -#: guix/scripts/lint.scm:169 +#: guix/scripts/lint.scm:172 msgid "Texinfo markup in description is invalid" -msgstr "l'utilisation de balises Texinfo dans la description est invalide" +msgstr "lL'utilisation de balises Texinfo dans la description est invalide" -#: guix/scripts/lint.scm:179 +#: guix/scripts/lint.scm:182 #, scheme-format msgid "" "description should not contain ~\n" @@ -1684,15 +1802,15 @@ msgstr "" #. TRANSLATORS: '@code' is Texinfo markup and must be kept #. as is. -#: guix/scripts/lint.scm:192 +#: guix/scripts/lint.scm:195 msgid "use @code or similar ornament instead of quotes" msgstr "utiliser @code ou une décoration similaire au lieu des guillemets" -#: guix/scripts/lint.scm:199 +#: guix/scripts/lint.scm:202 msgid "description should start with an upper-case letter or digit" -msgstr "La description devrait commencer par une majuscule ou un chiffre" +msgstr "la description devrait commencer par une majuscule ou un chiffre" -#: guix/scripts/lint.scm:215 +#: guix/scripts/lint.scm:218 #, scheme-format msgid "" "sentences in description should be followed ~\n" @@ -1701,239 +1819,266 @@ msgstr "" "les phrases dans la description devraient être suivies ~\n" "par deux espaces. Infraction probable~p à ~{~a~^, ~}" -#: guix/scripts/lint.scm:233 +#: guix/scripts/lint.scm:236 #, scheme-format msgid "invalid description: ~s" -msgstr "description invalide: ~s" +msgstr "description invalide : ~s" -#: guix/scripts/lint.scm:277 +#: guix/scripts/lint.scm:281 #, scheme-format msgid "'~a' should probably be a native input" msgstr "« ~a » devrait sans doute être une entrée native" -#: guix/scripts/lint.scm:293 +#: guix/scripts/lint.scm:297 #, scheme-format msgid "'~a' should probably not be an input at all" msgstr "« ~a » ne devrait probablement pas être une entrée du tout" -#: guix/scripts/lint.scm:310 +#: guix/scripts/lint.scm:314 msgid "synopsis should not be empty" msgstr "le synopsis ne devrait pas être vide" -#: guix/scripts/lint.scm:318 +#: guix/scripts/lint.scm:322 msgid "no period allowed at the end of the synopsis" msgstr "un point n'est pas autorisé à la fin du synopsis" -#: guix/scripts/lint.scm:330 +#: guix/scripts/lint.scm:334 msgid "no article allowed at the beginning of the synopsis" msgstr "les articles ne sont pas permis au début du synopsis" -#: guix/scripts/lint.scm:337 +#: guix/scripts/lint.scm:341 msgid "synopsis should be less than 80 characters long" msgstr "le synopsis devrait être plus court que 80 caractères" -#: guix/scripts/lint.scm:343 +#: guix/scripts/lint.scm:347 msgid "synopsis should start with an upper-case letter or digit" msgstr "le synopsis devrait commencer par une majuscule ou un chiffre" -#: guix/scripts/lint.scm:350 +#: guix/scripts/lint.scm:354 msgid "synopsis should not start with the package name" msgstr "le synopsis ne devrait pas commencer par un nom de paquet" -#: guix/scripts/lint.scm:360 +#: guix/scripts/lint.scm:364 msgid "Texinfo markup in synopsis is invalid" -msgstr "la balise Texinfo dans le synopsis est invalide" +msgstr "La balise Texinfo dans le synopsis est invalide" -#: guix/scripts/lint.scm:379 +#: guix/scripts/lint.scm:383 #, scheme-format msgid "invalid synopsis: ~s" -msgstr "synopsis non valide: ~s" +msgstr "synopsis non valide : ~s" -#: guix/scripts/lint.scm:479 +#: guix/scripts/lint.scm:502 #, scheme-format msgid "URI ~a returned suspiciously small file (~a bytes)" -msgstr "l'URI ~a a renvoyé un fichier étrangement petit (~a octets)" +msgstr "L'URI ~a a renvoyé un fichier étrangement petit (~a octets)" + +#: guix/scripts/lint.scm:512 +#, scheme-format +msgid "permanent redirect from ~a to ~a" +msgstr "redirection permanente de ~a vers ~a" + +#: guix/scripts/lint.scm:519 +#, scheme-format +msgid "invalid permanent redirect from ~a" +msgstr "redirection permanente invalide : ~a" -#: guix/scripts/lint.scm:488 guix/scripts/lint.scm:500 +#: guix/scripts/lint.scm:526 guix/scripts/lint.scm:538 #, scheme-format msgid "URI ~a not reachable: ~a (~s)" -msgstr "l'URI ~a n'a pu être atteinte: ~a (~s)" +msgstr "L'URI ~a n'a pu être atteinte : ~a (~s)" -#: guix/scripts/lint.scm:507 +#: guix/scripts/lint.scm:545 #, scheme-format msgid "URI ~a domain not found: ~a" -msgstr "le domaine de l'URI ~a pas trouvé: ~a" +msgstr "Le domaine de l'URI ~a n'a pas été trouvé : ~a" -#: guix/scripts/lint.scm:515 +#: guix/scripts/lint.scm:553 #, scheme-format msgid "URI ~a unreachable: ~a" -msgstr "l'URI ~a n'a pu être atteinte: ~a" +msgstr "L'URI ~a n'a pu être atteinte : ~a" -#: guix/scripts/lint.scm:524 guix/scripts/lint.scm:780 +#: guix/scripts/lint.scm:562 #, scheme-format msgid "TLS certificate error: ~a" -msgstr "erreur de certificat TLS: ~a" +msgstr "Erreur de certificat TLS : ~a" -#: guix/scripts/lint.scm:545 +#: guix/scripts/lint.scm:583 msgid "invalid value for home page" msgstr "valeur invalide pour la page d'accueil" -#: guix/scripts/lint.scm:548 +#: guix/scripts/lint.scm:586 #, scheme-format msgid "invalid home page URL: ~s" -msgstr "URL de la page d'accueil invalide: ~s" +msgstr "URL de la page d'accueil invalide : ~s" -#: guix/scripts/lint.scm:568 +#: guix/scripts/lint.scm:606 msgid "file names of patches should start with the package name" msgstr "les noms de fichiers des correctifs devraient commencer par le nom du paquet" -#: guix/scripts/lint.scm:606 +#: guix/scripts/lint.scm:644 #, scheme-format msgid "~a: ~a: proposed synopsis: ~s~%" -msgstr "~a: ~a: synopsis proposé: ~s~%" +msgstr "~a : ~a : synopsis proposé : ~s~%" -#: guix/scripts/lint.scm:619 +#: guix/scripts/lint.scm:657 #, scheme-format msgid "~a: ~a: proposed description:~% \"~a\"~%" -msgstr "~a: ~a: description proposée:~% « ~a »~%" +msgstr "~a : ~a : description proposée :~% « ~a »~%" -#: guix/scripts/lint.scm:661 +#: guix/scripts/lint.scm:699 msgid "all the source URIs are unreachable:" -msgstr "toutes les URI sources sont inatteignables:" +msgstr "toutes les URI sources sont inatteignables :" -#: guix/scripts/lint.scm:684 +#: guix/scripts/lint.scm:721 msgid "the source file name should contain the package name" msgstr "le nom du fichier source devrait contenir le nom du paquet" -#: guix/scripts/lint.scm:700 +#: guix/scripts/lint.scm:737 #, scheme-format msgid "URL should be 'mirror://~a/~a'" -msgstr "l'URL devrait être « mirror://~a/~a »" +msgstr "L'URL devrait être « mirror://~a/~a »" -#: guix/scripts/lint.scm:718 guix/scripts/lint.scm:722 +#: guix/scripts/lint.scm:755 guix/scripts/lint.scm:759 #, scheme-format msgid "failed to create derivation: ~a" -msgstr "échec à la création de la dérivation: ~a" +msgstr "échec à la création de la dérivation : ~a" -#: guix/scripts/lint.scm:736 +#: guix/scripts/lint.scm:773 #, scheme-format msgid "failed to create derivation: ~s~%" -msgstr "échec à la création de la dérivation: ~s~%" +msgstr "échec à la création de la dérivation : ~s~%" -#: guix/scripts/lint.scm:746 +#: guix/scripts/lint.scm:783 msgid "invalid license field" msgstr "champ de licence invalide" -#: guix/scripts/lint.scm:763 +#: guix/scripts/lint.scm:799 #, scheme-format -msgid "failed to retrieve CVE vulnerabilities from ~s: ~a (~s)~%" -msgstr "échec de récupération des vulnérabilités CVE depuis ~s: ~a (~s)~%" +msgid "~a: HTTP GET error for ~a: ~a (~s)~%" +msgstr "~a : erreur HTTP GET pour ~a : ~a (~s)~%" -#: guix/scripts/lint.scm:768 guix/scripts/lint.scm:777 -#: guix/scripts/lint.scm:782 +#: guix/scripts/lint.scm:809 #, scheme-format -msgid "assuming no CVE vulnerabilities~%" -msgstr "on suppose qu'il n'y a pas de vulnérabilités CVE~%" +msgid "~a: host lookup failure: ~a~%" +msgstr "~a : erreur lors de la consultation du nom d'hôte : ~a~%" -#: guix/scripts/lint.scm:775 +#: guix/scripts/lint.scm:814 #, scheme-format -msgid "failed to lookup NIST host: ~a~%" -msgstr "impossible de trouver l'hôte NIST: ~a~%" +msgid "~a: TLS certificate error: ~a" +msgstr "~a : erreur de certificat TLS : ~a" + +#: guix/scripts/lint.scm:829 +msgid "while retrieving CVE vulnerabilities" +msgstr "pendant la récupération des vulnérabilités CVE" -#: guix/scripts/lint.scm:820 +#: guix/scripts/lint.scm:866 #, scheme-format msgid "probably vulnerable to ~a" msgstr "probablement vulnérable à ~a" -#: guix/scripts/lint.scm:835 +#: guix/scripts/lint.scm:873 +#, scheme-format +msgid "while retrieving upstream info for '~a'" +msgstr "pendant la récupération des informations en amont de « ~a »" + +#: guix/scripts/lint.scm:881 +#, scheme-format +msgid "can be upgraded to ~a" +msgstr "peut être mis à jour vers ~a" + +#: guix/scripts/lint.scm:896 #, scheme-format msgid "tabulation on line ~a, column ~a" msgstr "tabulation à la ligne ~a, colonne ~a" -#: guix/scripts/lint.scm:844 +#: guix/scripts/lint.scm:905 #, scheme-format msgid "trailing white space on line ~a" msgstr "espace à la fin de la ligne ~a" -#: guix/scripts/lint.scm:854 +#: guix/scripts/lint.scm:915 #, scheme-format msgid "line ~a is way too long (~a characters)" msgstr "la ligne ~a est beaucoup trop longue (~a caractères)" -#: guix/scripts/lint.scm:865 +#: guix/scripts/lint.scm:926 #, scheme-format msgid "line ~a: parentheses feel lonely, move to the previous or next line" -msgstr "ligne ~a: des parenthèses se sentent seules. À déplacer à la ligne suivante ou précédente" +msgstr "ligne ~a : des parenthèses se sentent seules. À déplacer à la ligne suivante ou précédente" -#: guix/scripts/lint.scm:920 +#: guix/scripts/lint.scm:996 msgid "Validate package descriptions" msgstr "Valider des descriptions de paquets" -#: guix/scripts/lint.scm:924 +#: guix/scripts/lint.scm:1000 msgid "Validate synopsis & description of GNU packages" msgstr "Valider le synopsis et la description de paquets GNU" -#: guix/scripts/lint.scm:928 +#: guix/scripts/lint.scm:1004 msgid "Identify inputs that should be native inputs" msgstr "Identifier les entrées qui devraient être natives" -#: guix/scripts/lint.scm:932 +#: guix/scripts/lint.scm:1008 msgid "Identify inputs that should be inputs at all" msgstr "Identifier les entrées qui devraient être des entrées" -#: guix/scripts/lint.scm:936 +#: guix/scripts/lint.scm:1012 msgid "Validate file names and availability of patches" msgstr "Valider les noms de fichiers et la disponibilité de correctifs" -#: guix/scripts/lint.scm:940 +#: guix/scripts/lint.scm:1016 msgid "Validate home-page URLs" msgstr "Valider les URL des pages d'accueil" #. TRANSLATORS: is the name of a data type and must not be #. translated. -#: guix/scripts/lint.scm:946 +#: guix/scripts/lint.scm:1022 msgid "Make sure the 'license' field is a or a list thereof" msgstr "Assurez vous que le champ « licence » est une ou une telle liste" -#: guix/scripts/lint.scm:951 +#: guix/scripts/lint.scm:1027 msgid "Validate source URLs" msgstr "Valider les URL sources" -#: guix/scripts/lint.scm:955 +#: guix/scripts/lint.scm:1031 msgid "Suggest 'mirror://' URLs" msgstr "Suggérer les URLs « mirror:// »" -#: guix/scripts/lint.scm:959 +#: guix/scripts/lint.scm:1035 msgid "Validate file names of sources" msgstr "Valider les noms des fichiers des sources" -#: guix/scripts/lint.scm:963 +#: guix/scripts/lint.scm:1039 msgid "Report failure to compile a package to a derivation" msgstr "Signaler l'échec de la compilation d'un paquet d'une dérivation" -#: guix/scripts/lint.scm:967 +#: guix/scripts/lint.scm:1043 msgid "Validate package synopses" msgstr "Valider les synopsis des paquets" -#: guix/scripts/lint.scm:971 +#: guix/scripts/lint.scm:1047 msgid "Check the Common Vulnerabilities and Exposures (CVE) database" msgstr "Vérifier la base de données des vulnérabilités et failles connues (CVE)" -#: guix/scripts/lint.scm:976 +#: guix/scripts/lint.scm:1052 +msgid "Check the package for new upstream releases" +msgstr "Vérifier s'il y a une nouvelle version en amont pour le paquet" + +#: guix/scripts/lint.scm:1056 msgid "Look for formatting issues in the source" msgstr "Rechercher des problèmes de format dans la source" -#: guix/scripts/lint.scm:1004 +#: guix/scripts/lint.scm:1084 msgid "" "Usage: guix lint [OPTION]... [PACKAGE]...\n" "Run a set of checkers on the specified package; if none is specified,\n" "run the checkers on all packages.\n" msgstr "" -"Usage: guix lint [OPTION]... [PAQUET]...\n" -"Lancer un ensemble de vérificateurs sur le paquet spécifié; si aucun n'est spécifié,\n" +"Usage : guix lint [OPTION]... [PAQUET]...\n" +"Lancer un ensemble de vérificateurs sur le paquet spécifié ; si aucun n'est spécifié,\n" "lancer les vérificateurs sur tous les paquets.\n" -#: guix/scripts/lint.scm:1007 +#: guix/scripts/lint.scm:1087 msgid "" "\n" " -c, --checkers=CHECKER1,CHECKER2...\n" @@ -1943,7 +2088,7 @@ msgstr "" " -c, --checkers=CHECKER1,CHECKER2...\n" " lancer uniquement les vérificateurs spécifiés" -#: guix/scripts/lint.scm:1012 +#: guix/scripts/lint.scm:1092 msgid "" "\n" " -l, --list-checkers display the list of available lint checkers" @@ -1951,21 +2096,21 @@ msgstr "" "\n" " -l, --list-checkers afficher la liste des vérificateurs disponibles" -#: guix/scripts/lint.scm:1032 +#: guix/scripts/lint.scm:1112 #, scheme-format msgid "~a: invalid checker~%" -msgstr "~a: vérificateur non valide~%" +msgstr "~a : vérificateur non valide~%" -#: guix/scripts/publish.scm:67 +#: guix/scripts/publish.scm:68 #, scheme-format msgid "" "Usage: guix publish [OPTION]...\n" "Publish ~a over HTTP.\n" msgstr "" -"Usage: guix publish [OPTION]...\n" +"Usage : guix publish [OPTION]...\n" "Diffuser ~a via HTTP.\n" -#: guix/scripts/publish.scm:69 +#: guix/scripts/publish.scm:70 msgid "" "\n" " -p, --port=PORT listen on PORT" @@ -1973,7 +2118,7 @@ msgstr "" "\n" " -p, --port=PORT écouter sur le PORT" -#: guix/scripts/publish.scm:71 +#: guix/scripts/publish.scm:72 msgid "" "\n" " --listen=HOST listen on the network interface for HOST" @@ -1981,7 +2126,7 @@ msgstr "" "\n" " --listen=HÔTE écouter sur l'interface réseau HÔTE" -#: guix/scripts/publish.scm:73 +#: guix/scripts/publish.scm:74 msgid "" "\n" " -u, --user=USER change privileges to USER as soon as possible" @@ -1991,7 +2136,7 @@ msgstr "" " changer les privilèges de UTILISATEUR aussi vite\n" " que possible" -#: guix/scripts/publish.scm:75 +#: guix/scripts/publish.scm:76 msgid "" "\n" " -C, --compression[=LEVEL]\n" @@ -2001,7 +2146,7 @@ msgstr "" " -C, --compression[=NIVEAU]\n" " compresser les archives au NIVEAU" -#: guix/scripts/publish.scm:78 +#: guix/scripts/publish.scm:79 msgid "" "\n" " -c, --cache=DIRECTORY cache published items to DIRECTORY" @@ -2009,7 +2154,7 @@ msgstr "" "\n" " -c, --cache=RÉPERTOIRE mettre les éléments publiés en cache dans le RÉPERTOIRE" -#: guix/scripts/publish.scm:80 +#: guix/scripts/publish.scm:81 msgid "" "\n" " --workers=N use N workers to bake items" @@ -2017,7 +2162,7 @@ msgstr "" "\n" " --workers=N utiliser N travailleurs pour préparer les éléments" -#: guix/scripts/publish.scm:82 +#: guix/scripts/publish.scm:83 msgid "" "\n" " --ttl=TTL announce narinfos can be cached for TTL seconds" @@ -2026,7 +2171,7 @@ msgstr "" " --ttl=TTL les annonces narinfos peuvent être mises en cache\n" " pendant TTL secondes" -#: guix/scripts/publish.scm:84 +#: guix/scripts/publish.scm:85 msgid "" "\n" " --nar-path=PATH use PATH as the prefix for nar URLs" @@ -2034,7 +2179,7 @@ msgstr "" "\n" " --nar-path=CHEMIN utiliser le CHEMIN comme préfixe pour les URL nar" -#: guix/scripts/publish.scm:86 +#: guix/scripts/publish.scm:87 msgid "" "\n" " --public-key=FILE use FILE as the public key for signatures" @@ -2042,7 +2187,7 @@ msgstr "" "\n" " --public-key=FICHIER utiliser le FICHIER comme clé publique pour les signatures" -#: guix/scripts/publish.scm:88 +#: guix/scripts/publish.scm:89 msgid "" "\n" " --private-key=FILE use FILE as the private key for signatures" @@ -2050,7 +2195,7 @@ msgstr "" "\n" " --private-key=FICHIER utiliser le FICHIER comme clé privée pour les signatures" -#: guix/scripts/publish.scm:90 +#: guix/scripts/publish.scm:91 msgid "" "\n" " -r, --repl[=PORT] spawn REPL server on PORT" @@ -2058,37 +2203,37 @@ msgstr "" "\n" " -r, --repl[=PORT] créer le serveur REPL sur le PORT" -#: guix/scripts/publish.scm:106 +#: guix/scripts/publish.scm:107 #, scheme-format msgid "lookup of host '~a' failed: ~a~%" -msgstr "la recherche de l'hôte « ~a » a échoué: ~a~%" +msgstr "la recherche de l'hôte « ~a » a échoué : ~a~%" -#: guix/scripts/publish.scm:151 +#: guix/scripts/publish.scm:152 #, scheme-format msgid "lookup of host '~a' returned nothing" msgstr "la recherche de l'hôte « ~a » n'a rien retourné" -#: guix/scripts/publish.scm:164 +#: guix/scripts/publish.scm:165 #, scheme-format msgid "zlib support is missing; compression disabled~%" msgstr "le support zlib est manquant. La compression est désactivée~%" -#: guix/scripts/publish.scm:178 +#: guix/scripts/publish.scm:179 #, scheme-format msgid "~a: invalid duration~%" -msgstr "~a: durée non valide~%" +msgstr "~a : durée non valide~%" -#: guix/scripts/publish.scm:799 +#: guix/scripts/publish.scm:832 #, scheme-format msgid "user '~a' not found: ~a~%" -msgstr "utilisateur « ~a » pas trouvé: ~a~%" +msgstr "utilisateur « ~a » non trouvé : ~a~%" -#: guix/scripts/publish.scm:840 +#: guix/scripts/publish.scm:873 #, scheme-format msgid "server running as root; consider using the '--user' option!~%" msgstr "le serveur tourne en tant que root. Envisagez d'utiliser l'option « --user » !~%" -#: guix/scripts/publish.scm:845 +#: guix/scripts/publish.scm:878 #, scheme-format msgid "publishing ~a on ~a, port ~d~%" msgstr "diffusion de ~a sur ~a, port ~d~%" @@ -2098,7 +2243,7 @@ msgid "" "Usage: guix edit PACKAGE...\n" "Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n" msgstr "" -"Usage: guix edit PAQUET...\n" +"Usage : guix edit PAQUET...\n" "Démarrer $VISUAL ou $EDITOR pour éditer la définition de PAQUET...\n" #: guix/scripts/edit.scm:62 @@ -2114,46 +2259,46 @@ msgstr "l'emplacement source du paquet « ~a » est inconnue~%" #: guix/scripts/edit.scm:103 #, scheme-format msgid "failed to launch '~a': ~a~%" -msgstr "impossible de démarrer « ~a »: ~a~%" +msgstr "impossible de démarrer « ~a » : ~a~%" #: guix/scripts/size.scm:77 #, scheme-format msgid "no available substitute information for '~a'~%" msgstr "pas d'information de substitution disponible pour « ~a »~%" -#: guix/scripts/size.scm:85 +#: guix/scripts/size.scm:99 msgid "store item" msgstr "élément stockage" -#: guix/scripts/size.scm:85 +#: guix/scripts/size.scm:99 msgid "total" msgstr "total" -#: guix/scripts/size.scm:85 +#: guix/scripts/size.scm:99 msgid "self" msgstr "lui-même" -#: guix/scripts/size.scm:97 +#: guix/scripts/size.scm:107 #, scheme-format msgid "total: ~,1f MiB~%" -msgstr "total: ~,1f MiB~%" +msgstr "total : ~,1f MiB~%" #. TRANSLATORS: This is the title of a graph, meaning that the graph #. represents a profile of the store (the "store" being the place where #. packages are stored.) -#: guix/scripts/size.scm:211 +#: guix/scripts/size.scm:221 msgid "store profile" -msgstr "profil stockage" +msgstr "profil du dépôt" -#: guix/scripts/size.scm:220 +#: guix/scripts/size.scm:230 msgid "" "Usage: guix size [OPTION]... PACKAGE\n" "Report the size of PACKAGE and its dependencies.\n" msgstr "" -"Usage: guix size [OPTION]... PAQUET\n" +"Usage : guix size [OPTION]... PAQUET\n" "Rapporter la taille du PAQUET et de ses dépendances.\n" -#: guix/scripts/size.scm:225 +#: guix/scripts/size.scm:235 msgid "" "\n" " -s, --system=SYSTEM consider packages for SYSTEM--e.g., \"i686-linux\"" @@ -2161,7 +2306,16 @@ msgstr "" "\n" " -s, --system=SYSTÈME prend en compte les paquets pour le SYSTÈME, par exemple « i686-linux »" -#: guix/scripts/size.scm:227 +#. TRANSLATORS: "closure" and "self" must not be translated. +#: guix/scripts/size.scm:238 +msgid "" +"\n" +" --sort=KEY sort according to KEY--\"closure\" or \"self\"" +msgstr "" +"\n" +" --sort=CLEF tri en fonction de la CLEF : « closure » ou « self »" + +#: guix/scripts/size.scm:240 msgid "" "\n" " -m, --map-file=FILE write to FILE a graphical map of disk usage" @@ -2169,14 +2323,19 @@ msgstr "" "\n" " -m, --map-file=FICHIER écrit dans le FICHIER une carte graphique de l'utilisation du disque" -#: guix/scripts/size.scm:281 +#: guix/scripts/size.scm:271 +#, scheme-format +msgid "~a: invalid sorting key~%" +msgstr "~a : clef de tri invalide~%" + +#: guix/scripts/size.scm:306 msgid "missing store item argument\n" msgstr "argument d'élément de stockage manquant\n" #: guix/scripts/graph.scm:84 #, scheme-format msgid "~a: invalid argument (package name expected)" -msgstr "~a: argument invalide (nom de paquet attendu)" +msgstr "~a : argument invalide (nom de paquet attendu)" #: guix/scripts/graph.scm:95 msgid "the DAG of packages, excluding implicit inputs" @@ -2198,60 +2357,60 @@ msgstr "le DAG des paquets et origines en incluant les entrées implicites" msgid "same as 'bag', but without the bootstrap nodes" msgstr "comme « bag » mais sans les nœuds d'amorçage" -#: guix/scripts/graph.scm:257 +#: guix/scripts/graph.scm:253 msgid "the DAG of derivations" msgstr "le DAG des dérivations" -#: guix/scripts/graph.scm:269 +#: guix/scripts/graph.scm:265 msgid "unsupported argument for derivation graph" msgstr "argument non supporté pour le graphe de dérivation" -#: guix/scripts/graph.scm:295 +#: guix/scripts/graph.scm:291 msgid "unsupported argument for this type of graph" msgstr "argument non supporté pour ce type de graphe" -#: guix/scripts/graph.scm:308 +#: guix/scripts/graph.scm:304 #, scheme-format msgid "references for '~a' are not known~%" msgstr "les références pour « ~a » sont inconnues~%" -#: guix/scripts/graph.scm:315 +#: guix/scripts/graph.scm:311 msgid "the DAG of run-time dependencies (store references)" msgstr "le DAG des dépendances à l'exécution (stockage des références)" -#: guix/scripts/graph.scm:331 +#: guix/scripts/graph.scm:327 msgid "the DAG of referrers in the store" msgstr "le graphe orienté acyclique (DAG) des référents dans le stockage" -#: guix/scripts/graph.scm:358 +#: guix/scripts/graph.scm:354 #, scheme-format msgid "~a: unknown node type~%" -msgstr "~a: type de nœud inconnu~%" +msgstr "~a : type de nœud inconnu~%" -#: guix/scripts/graph.scm:365 +#: guix/scripts/graph.scm:361 #, scheme-format msgid "~a: unknown backend~%" -msgstr "~a: moteur de graphe inconnu~%" +msgstr "~a : moteur de graphe inconnu~%" -#: guix/scripts/graph.scm:369 +#: guix/scripts/graph.scm:365 msgid "The available node types are:\n" -msgstr "Les types de nœuds disponibles sont:\n" +msgstr "Les types de nœuds disponibles sont :\n" -#: guix/scripts/graph.scm:379 +#: guix/scripts/graph.scm:375 msgid "The available backend types are:\n" -msgstr "Les types de moteurs de graphes disponibles sont:\n" +msgstr "Les types de moteurs de graphes disponibles sont :\n" #. TRANSLATORS: Here 'dot' is the name of a program; it must not be #. translated. -#: guix/scripts/graph.scm:423 +#: guix/scripts/graph.scm:419 msgid "" "Usage: guix graph PACKAGE...\n" -"Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n" +"Emit a representation of the dependency graph of PACKAGE...\n" msgstr "" -"Usage: guix graph PAQUET...\n" -"Produit une représentation Graphviz (dot) des dépendances de PAQUET...\n" +"Usage : guix graph PAQUET...\n" +"Produit une représentation du graphe des dépendances de PAQUET...\n" -#: guix/scripts/graph.scm:425 +#: guix/scripts/graph.scm:421 msgid "" "\n" " -b, --backend=TYPE produce a graph with the given backend TYPE" @@ -2259,7 +2418,7 @@ msgstr "" "\n" " -t, --backend=TYPE produire un graphe avec le TYPE de moteur donné" -#: guix/scripts/graph.scm:427 +#: guix/scripts/graph.scm:423 msgid "" "\n" " --list-backends list the available graph backends" @@ -2267,7 +2426,7 @@ msgstr "" "\n" " --list-backends lister les types de moteurs de graphes disponibles" -#: guix/scripts/graph.scm:429 +#: guix/scripts/graph.scm:425 msgid "" "\n" " -t, --type=TYPE represent nodes of the given TYPE" @@ -2275,7 +2434,7 @@ msgstr "" "\n" " -t, --type=TYPE représenter les nœuds du TYPE donné" -#: guix/scripts/graph.scm:431 +#: guix/scripts/graph.scm:427 msgid "" "\n" " --list-types list the available graph types" @@ -2283,7 +2442,7 @@ msgstr "" "\n" " --list-types lister les types de graphes disponibles" -#: guix/scripts/graph.scm:433 guix/scripts/pack.scm:328 +#: guix/scripts/graph.scm:429 guix/scripts/pack.scm:336 msgid "" "\n" " -e, --expression=EXPR consider the package EXPR evaluates to" @@ -2294,7 +2453,7 @@ msgstr "" #: guix/scripts/challenge.scm:191 #, scheme-format msgid " local hash: ~a~%" -msgstr " hachage local: ~a~%" +msgstr " empreinte locale : ~a~%" #: guix/scripts/challenge.scm:192 #, scheme-format @@ -2304,22 +2463,22 @@ msgstr " aucune compilation locale pour « ~a »~%" #: guix/scripts/challenge.scm:194 #, scheme-format msgid " ~50a: ~a~%" -msgstr " ~50a: ~a~%" +msgstr " ~50a : ~a~%" #: guix/scripts/challenge.scm:202 #, scheme-format msgid "~a contents differ:~%" -msgstr "le contenu de ~a diffère:~%" +msgstr "le contenu de ~a diffère :~%" #: guix/scripts/challenge.scm:205 #, scheme-format msgid "could not challenge '~a': no local build~%" -msgstr "impossible de mettre « ~a » au défi: aucune construction locale~%" +msgstr "impossible de mettre « ~a » au défi : aucune construction locale~%" #: guix/scripts/challenge.scm:207 #, scheme-format msgid "could not challenge '~a': no substitutes~%" -msgstr "impossible de mettre « ~a » au défi: aucune substitution~%" +msgstr "impossible de mettre « ~a » au défi : aucune substitution~%" #: guix/scripts/challenge.scm:210 #, scheme-format @@ -2327,14 +2486,30 @@ msgid "~a contents match:~%" msgstr "le contenu de ~a correspond:~%" #: guix/scripts/challenge.scm:219 +msgid "~h store items were analyzed:~%" +msgstr "~h éléments du dépôt ont été analysés :~%" + +#: guix/scripts/challenge.scm:220 +msgid " - ~h (~,1f%) were identical~%" +msgstr " - ~h (~,1f%) étaient identiques~%" + +#: guix/scripts/challenge.scm:222 +msgid " - ~h (~,1f%) differed~%" +msgstr " - ~h (~,1f%) étaient différents~%" + +#: guix/scripts/challenge.scm:224 +msgid " - ~h (~,1f%) were inconclusive~%" +msgstr " - ~h (~,1f%) étaient impossibles à évaluer~%" + +#: guix/scripts/challenge.scm:233 msgid "" "Usage: guix challenge [PACKAGE...]\n" "Challenge the substitutes for PACKAGE... provided by one or more servers.\n" msgstr "" -"Usage: guix challenge [PAQUET...]\n" +"Usage : guix challenge [PAQUET...]\n" "Contrôle les substituts du PAQUET... fourni par un ou plusieurs serveurs.\n" -#: guix/scripts/challenge.scm:221 +#: guix/scripts/challenge.scm:235 msgid "" "\n" " --substitute-urls=URLS\n" @@ -2344,7 +2519,7 @@ msgstr "" " --substitute-urls=URLS\n" " comparer les résultats de compilation avec ceux aux URLS" -#: guix/scripts/challenge.scm:224 +#: guix/scripts/challenge.scm:238 msgid "" "\n" " -v, --verbose show details about successful comparisons" @@ -2355,14 +2530,14 @@ msgstr "" #: guix/scripts/copy.scm:59 #, scheme-format msgid "~a: invalid TCP port number~%" -msgstr "~a: numéro de port TCP invalide~%" +msgstr "~a : numéro de port TCP invalide~%" #: guix/scripts/copy.scm:61 #, scheme-format msgid "~a: invalid SSH specification~%" -msgstr "~a: spécification SSH invalide~%" +msgstr "~a : spécification SSH invalide~%" -#: guix/scripts/copy.scm:112 +#: guix/scripts/copy.scm:113 msgid "" "Usage: guix copy [OPTION]... ITEMS...\n" "Copy ITEMS to or from the specified host over SSH.\n" @@ -2370,7 +2545,7 @@ msgstr "" "Usage: guix copy [OPTION]... ÉLÉMENTS...\n" "Copier les ÉLÉMENTS vers ou depuis l'hôte spécifié en SSH.\n" -#: guix/scripts/copy.scm:114 +#: guix/scripts/copy.scm:115 msgid "" "\n" " --to=HOST send ITEMS to HOST" @@ -2378,7 +2553,7 @@ msgstr "" "\n" " --to=HÔTE envoyer les ÉLÉMENTS vers l'HÔTE" -#: guix/scripts/copy.scm:116 +#: guix/scripts/copy.scm:117 msgid "" "\n" " --from=HOST receive ITEMS from HOST" @@ -2391,17 +2566,17 @@ msgstr "" msgid "use '--to' or '--from'~%" msgstr "utilisez « --to » ou « --from »~%" -#: guix/scripts/pack.scm:74 +#: guix/scripts/pack.scm:76 #, scheme-format msgid "~a: compressor not found~%" -msgstr "~a: compresseur introuvable~%" +msgstr "~a : compresseur introuvable~%" -#: guix/scripts/pack.scm:310 +#: guix/scripts/pack.scm:318 #, scheme-format msgid "~a: invalid symlink specification~%" -msgstr "~a: spécification de lien symbolique invalide~%" +msgstr "~a : spécification de lien symbolique invalide~%" -#: guix/scripts/pack.scm:320 +#: guix/scripts/pack.scm:328 msgid "" "Usage: guix pack [OPTION]... PACKAGE...\n" "Create a bundle of PACKAGE.\n" @@ -2409,7 +2584,7 @@ msgstr "" "Usage: guix pack [OPTION]... PAQUET...\n" "Créer un paquet de PAQUET.\n" -#: guix/scripts/pack.scm:326 +#: guix/scripts/pack.scm:334 msgid "" "\n" " -f, --format=FORMAT build a pack in the given FORMAT" @@ -2417,7 +2592,7 @@ msgstr "" "\n" " -f, --format=FORMAT créer un paquet dans le FORMAT donné" -#: guix/scripts/pack.scm:334 +#: guix/scripts/pack.scm:342 msgid "" "\n" " -C, --compression=TOOL compress using TOOL--e.g., \"lzip\"" @@ -2425,7 +2600,7 @@ msgstr "" "\n" " -C, --compression=OUTIL compresser en utilisant l'OUTIL, par ex, « lzip »" -#: guix/scripts/pack.scm:336 +#: guix/scripts/pack.scm:344 msgid "" "\n" " -S, --symlink=SPEC create symlinks to the profile according to SPEC" @@ -2433,7 +2608,7 @@ msgstr "" "\n" " -S, --symlink=SPEC créer des liens symboliques vers le profil selon la SPEC" -#: guix/scripts/pack.scm:338 +#: guix/scripts/pack.scm:346 msgid "" "\n" " --localstatedir include /var/guix in the resulting pack" @@ -2441,28 +2616,106 @@ msgstr "" "\n" " --localstatedir inclure /var/guix dans le paquet résultant" -#: guix/scripts/pack.scm:382 +#: guix/scripts/pack.scm:390 #, scheme-format msgid "~a: unknown pack format" -msgstr "~a: format de paquet inconnu" +msgstr "~a : format de paquet inconnu" + +#: guix/scripts/weather.scm:74 +msgid "computing ~h package derivations for ~a...~%" +msgstr "calcul de ~h dérivations de paquets pour ~a…~%" + +#: guix/scripts/weather.scm:110 +msgid "looking for ~h store items on ~a...~%" +msgstr "recherche de ~h éléments du dépôt sur ~a...~%" + +#: guix/scripts/weather.scm:120 +msgid " ~2,1f% substitutes available (~h out of ~h)~%" +msgstr " ~2,1f% substituts disponibles (~h sur ~h)~%" + +#: guix/scripts/weather.scm:126 +#, scheme-format +msgid " unknown substitute sizes~%" +msgstr " taille des substituts inconnue~%" + +#: guix/scripts/weather.scm:129 +msgid " ~,1h MiB of nars (compressed)~%" +msgstr " ~,1h Mo de fichiers nar (compressés)~%" + +#: guix/scripts/weather.scm:130 +msgid " at least ~,1h MiB of nars (compressed)~%" +msgstr " au moins ~,1h Mo de fichiers nar (compressés)~%" + +#: guix/scripts/weather.scm:132 +msgid " ~,1h MiB on disk (uncompressed)~%" +msgstr " ~,1h Mo sur le disque (décompressé)~%" + +#: guix/scripts/weather.scm:134 +msgid " ~,3h seconds per request (~,1h seconds in total)~%" +msgstr " ~,3h secondes par requête (~,1h secondesen tout)~%" + +#: guix/scripts/weather.scm:136 +msgid " ~,1h requests per second~%" +msgstr " ~,1h requêtes par seconde~%" -#: guix/gnu-maintenance.scm:562 +#: guix/scripts/weather.scm:145 +msgid "" +"Usage: guix weather [OPTIONS]\n" +"Report the availability of substitutes.\n" +msgstr "" +"Usage : guix weather [OPTIONS]\n" +"Rapporte la disponibilité des substituts.\n" + +#: guix/scripts/weather.scm:147 +msgid "" +"\n" +" --substitute-urls=URLS\n" +" check for available substitutes at URLS" +msgstr "" +"\n" +" --substitute-urls=URLS\n" +" vérifie la disponibilité des substituts aux URLS" + +#: guix/scripts/weather.scm:150 +msgid "" +"\n" +" -m, --manifest=MANIFEST\n" +" look up substitutes for packages specified in MANIFEST" +msgstr "" +"\n" +" -m, --manifest=MANIFESTE\n" +" recherche les substituts des paquets du MANIFESTE" + +#: guix/scripts/weather.scm:153 +msgid "" +"\n" +" -s, --system=SYSTEM consider substitutes for SYSTEM--e.g., \"i686-linux\"" +msgstr "" +"\n" +" -s, --system=SYSTÈME prend en compte les substituts pour le SYSTÈME, par exemple « i686-linux »" + +#: guix/scripts/weather.scm:177 +#, scheme-format +msgid "~a: invalid URL~%" +msgstr "~a : URL invalide~%" + +#: guix/gnu-maintenance.scm:567 msgid "Updater for GNU packages" msgstr "Logiciel de mise à jour des paquets GNU" -#: guix/gnu-maintenance.scm:569 -msgid "Updater for GNOME packages" -msgstr "Logiciel de mise à jour des paquets GNOME" - #: guix/gnu-maintenance.scm:576 +msgid "Updater for GNU packages only available via FTP" +msgstr "Logiciel de mise à jour des paquets GNU disponibles uniquement par FTP" + +#: guix/gnu-maintenance.scm:585 msgid "Updater for KDE packages" msgstr "Logiciel de mise à jour des paquets KDE" -#: guix/gnu-maintenance.scm:583 +#: guix/gnu-maintenance.scm:592 msgid "Updater for X.org packages" msgstr "Logiciel de mise à jour des paquets X.org" -#: guix/gnu-maintenance.scm:590 +#: guix/gnu-maintenance.scm:599 msgid "Updater for packages hosted on kernel.org" msgstr "Logiciel de mise à jour des paquets hébergés sur kernel.org" @@ -2471,7 +2724,7 @@ msgid "" "Usage: guix container ACTION ARGS...\n" "Build and manipulate Linux containers.\n" msgstr "" -"Usage: guix container ACTION ARGS...\n" +"Usage : guix container ACTION ARGS...\n" "Compile et manipule des containers Linux.\n" #: guix/scripts/container.scm:30 @@ -2481,25 +2734,25 @@ msgstr " exec exécuter une commande dans un container existant\n" #: guix/scripts/container.scm:53 #, scheme-format msgid "guix container: missing action~%" -msgstr "guix container: action manquante~%" +msgstr "guix container : action manquante~%" #: guix/scripts/container.scm:63 #, scheme-format msgid "guix container: invalid action~%" -msgstr "guix container: action invalide~%" +msgstr "guix container : action invalide~%" #: guix/scripts/container/exec.scm:40 msgid "" "Usage: guix container exec PID COMMAND [ARGS...]\n" "Execute COMMMAND within the container process PID.\n" msgstr "" -"Usage: guix container exec PID COMMANDE [ARGS...]\n" +"Usage : guix container exec PID COMMANDE [ARGS...]\n" "Exécuter la COMMANDE dans le container du processus PID.\n" #: guix/scripts/container/exec.scm:69 #, scheme-format msgid "~a: extraneous argument~%" -msgstr "~a: argument superflu~%" +msgstr "~a : argument superflu~%" #: guix/scripts/container/exec.scm:87 #, scheme-format @@ -2521,91 +2774,115 @@ msgstr "aucun processus ~d~%" msgid "exec failed with status ~d~%" msgstr "exec a échoué avec le statut ~d~%" -#: guix/upstream.scm:212 +#: guix/upstream.scm:249 #, scheme-format msgid "signature verification failed for `~a'~%" msgstr "la vérification de la signature a échoué pour « ~a »~%" -#: guix/upstream.scm:214 +#: guix/upstream.scm:251 #, scheme-format msgid "(could be because the public key is not in your keyring)~%" msgstr "(il est possible que la clé publique ne soit pas dans dans votre trousseau)~%" -#: guix/upstream.scm:293 +#: guix/upstream.scm:330 #, scheme-format msgid "~a: could not locate source file" -msgstr "~a: le fichier source est introuvable" +msgstr "~a : le fichier source est introuvable" -#: guix/upstream.scm:298 +#: guix/upstream.scm:335 #, scheme-format msgid "~a: ~a: no `version' field in source; skipping~%" -msgstr "~a: ~a: aucun champ « version » dans la source; ignoré~%" +msgstr "~a : ~a : aucun champ « version » dans la source ; ignoré~%" + +#: guix/ui.scm:159 +#, scheme-format +msgid "~a: unbound variable" +msgstr "~a : variable non liée" -#: guix/ui.scm:241 +#: guix/ui.scm:235 msgid "entering debugger; type ',bt' for a backtrace\n" -msgstr "entrée dans le débogueur; tapez « ,bt » pour la trace inverse\n" +msgstr "entrée dans le débogueur; tapez « ,bt » pour la trace d'exécution\n" -#: guix/ui.scm:257 guix/ui.scm:278 guix/ui.scm:285 +#: guix/ui.scm:284 +#, scheme-format +msgid "hint: ~a~%" +msgstr "conseil : ~a~%" + +#: guix/ui.scm:294 guix/ui.scm:342 guix/ui.scm:349 #, scheme-format msgid "failed to load '~a': ~a~%" -msgstr "impossible de charger « ~a »: ~a~%" +msgstr "impossible de charger « ~a » : ~a~%" + +#: guix/ui.scm:301 +#, scheme-format +msgid "~amissing closing parenthesis~%" +msgstr "~a parenthèses fermantes manquantes~%" -#: guix/ui.scm:260 +#: guix/ui.scm:306 guix/ui.scm:322 guix/ui.scm:596 #, scheme-format msgid "~a: error: ~a~%" -msgstr "~a: erreur: ~a~%" +msgstr "~a : erreur: ~a~%" -#: guix/ui.scm:267 guix/ui.scm:554 +#: guix/ui.scm:314 +msgid "Did you forget a @code{use-modules} form?" +msgstr "Auriez-vous oublié un @code{use-modules} ?" + +#: guix/ui.scm:316 +#, scheme-format +msgid "Try adding @code{(use-modules ~a)}." +msgstr "Essayez d'ajouter @code{(use-modules ~a)}." + +#: guix/ui.scm:329 guix/ui.scm:657 #, scheme-format msgid "exception thrown: ~s~%" -msgstr "exception générée: ~s~%" +msgstr "exception générée : ~s~%" -#: guix/ui.scm:269 guix/ui.scm:291 +#: guix/ui.scm:333 guix/ui.scm:355 #, scheme-format msgid "failed to load '~a':~%" -msgstr "échec lors du chargement de « ~a »:~%" +msgstr "échec lors du chargement de « ~a » :~%" -#: guix/ui.scm:281 +#: guix/ui.scm:345 #, scheme-format msgid "~a: warning: ~a~%" -msgstr "~a: avertissement: ~a~%" +msgstr "~a : avertissement : ~a~%" -#: guix/ui.scm:288 +#: guix/ui.scm:352 #, scheme-format msgid "failed to load '~a': exception thrown: ~s~%" -msgstr "échec lors du chargement de « ~a »: exception générée: ~s~%" +msgstr "échec lors du chargement de « ~a » : exception générée : ~s~%" -#: guix/ui.scm:300 +#: guix/ui.scm:364 #, scheme-format msgid "failed to install locale: ~a~%" -msgstr "impossible d'installer l'environnement linguistique: ~a~%" +msgstr "impossible d'installer l'environnement linguistique : ~a~%" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. */ -#: guix/ui.scm:323 +#: guix/ui.scm:394 msgid "(C)" msgstr "©" -#: guix/ui.scm:324 +#: guix/ui.scm:395 msgid "the Guix authors\n" msgstr "les auteurs de Guix\n" -#: guix/ui.scm:325 +#: guix/ui.scm:396 msgid "" "License GPLv3+: GNU GPL version 3 or later \n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -"Licence GPLv3+: GNU GPL version 3 ou ultérieure \n" -"Ceci est un logiciel libre: vous êtes libre de le modifier et de le redistribuer.\n" +"Licence GPLv3+ : GNU GPL version 3 ou ultérieure \n" +"Ceci est un logiciel libre : vous êtes libre de le modifier et de le redistribuer.\n" "Il n'y a AUCUNE GARANTIE, dans les limites permises par la loi.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address for this #. package. Please add another line saying "Report translation bugs to #. ...\n" with the address for translation bugs (typically your translation #. team's web or email address). -#: guix/ui.scm:337 +#: guix/ui.scm:408 #, scheme-format msgid "" "\n" @@ -2615,221 +2892,248 @@ msgstr "" "Signalez toute anomalie à : ~a.\n" "Signalez toute erreur de traduction à : traduc@traduc.org" -#: guix/ui.scm:339 +#: guix/ui.scm:410 #, scheme-format msgid "" "\n" "~a home page: <~a>" msgstr "" "\n" -"~a page d'accueil: <~a>" +"~a page d'accueil : <~a>" -#: guix/ui.scm:341 +#: guix/ui.scm:412 msgid "" "\n" "General help using GNU software: " msgstr "" "\n" -"Aide générale sur l'utilisation des logiciels GNU: " +"Aide générale sur l'utilisation des logiciels GNU : " -#: guix/ui.scm:386 +#: guix/ui.scm:457 #, scheme-format msgid "'~a' is not a valid regular expression: ~a~%" -msgstr "« ~a » n'est pas une expression rationnelle valide: ~a~%" +msgstr "« ~a » n'est pas une expression rationnelle valide : ~a~%" -#: guix/ui.scm:392 +#: guix/ui.scm:463 #, scheme-format msgid "~a: invalid number~%" -msgstr "~a: nombre non valide~%" +msgstr "~a : nombre non valide~%" -#: guix/ui.scm:409 +#: guix/ui.scm:480 #, scheme-format msgid "invalid number: ~a~%" -msgstr "nombre non valide: ~a~%" +msgstr "nombre non valide : ~a~%" -#: guix/ui.scm:432 +#: guix/ui.scm:503 #, scheme-format msgid "unknown unit: ~a~%" -msgstr "unité inconnue: ~a~%" +msgstr "unité inconnue : ~a~%" -#: guix/ui.scm:449 +#: guix/ui.scm:520 #, scheme-format msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" -msgstr "~a:~a:~a: le paquet « ~a » a une entrée non valide: ~s~%" +msgstr "~a :~a :~a : le paquet « ~a » a une entrée non valide : ~s~%" -#: guix/ui.scm:456 +#: guix/ui.scm:527 #, scheme-format msgid "~a: ~a: build system `~a' does not support cross builds~%" -msgstr "~a: ~a: le système de compilation « ~a » ne supporte pas la compilation croisée~%" +msgstr "~a : ~a : le système de compilation « ~a » ne supporte pas la compilation croisée~%" -#: guix/ui.scm:462 +#: guix/ui.scm:533 #, scheme-format msgid "~s: invalid G-expression input~%" -msgstr "~s: entrée G-expression invalide~%" +msgstr "~s : entrée G-expression invalide~%" -#: guix/ui.scm:465 +#: guix/ui.scm:536 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "le profile « ~a » n'existe pas~%" -#: guix/ui.scm:468 +#: guix/ui.scm:539 #, scheme-format msgid "generation ~a of profile '~a' does not exist~%" msgstr "la génération ~a du profile « ~a » n'existe pas~%" -#: guix/ui.scm:475 +#: guix/ui.scm:548 +#, scheme-format +msgid " ... propagated from ~a@~a~%" +msgstr " ... propagé depuis ~a@~a~%" + +#: guix/ui.scm:553 +#, scheme-format +msgid "profile contains conflicting entries for ~a:~a~%" +msgstr "le profil contient des entrées en conflit pour ~a :~a~%" + +#: guix/ui.scm:556 +#, scheme-format +msgid " first entry: ~a@~a:~a ~a~%" +msgstr " première entrée : ~a@~a:~a ~a~%" + +#: guix/ui.scm:562 +#, scheme-format +msgid " second entry: ~a@~a:~a ~a~%" +msgstr " deuxième entrée : ~a@~a:~a ~a~%" + +#: guix/ui.scm:573 #, scheme-format msgid "corrupt input while restoring '~a' from ~s~%" msgstr "entrée corrompue en restaurant « ~a » depuis ~s~%" -#: guix/ui.scm:477 +#: guix/ui.scm:575 #, scheme-format msgid "corrupt input while restoring archive from ~s~%" msgstr "entrée corrompue en restaurant l'archive depuis ~s~%" -#: guix/ui.scm:480 +#: guix/ui.scm:578 #, scheme-format msgid "failed to connect to `~a': ~a~%" -msgstr "impossible de se connecter à « ~a »: ~a~%" +msgstr "impossible de se connecter à « ~a » : ~a~%" -#: guix/ui.scm:485 +#: guix/ui.scm:583 #, scheme-format msgid "build failed: ~a~%" -msgstr "la compilation a échoué: ~a~%" +msgstr "la compilation a échoué : ~a~%" -#: guix/ui.scm:488 +#: guix/ui.scm:586 #, scheme-format msgid "reference to invalid output '~a' of derivation '~a'~%" msgstr "référence à la sortie invalide « ~a » de la dérivation « ~a »~%" -#: guix/ui.scm:492 +#: guix/ui.scm:590 #, scheme-format msgid "file '~a' could not be found in these directories:~{ ~a~}~%" -msgstr "le fichier « ~a » n'a pas été trouvé dans ces répertoires:~{ ~a~}~%" +msgstr "le fichier « ~a » n'a pas été trouvé dans ces répertoires :~{ ~a~}~%" -#: guix/ui.scm:504 +#: guix/ui.scm:607 #, scheme-format msgid "~a: ~a~%" msgstr "~a: ~a~%" -#: guix/ui.scm:539 +#: guix/ui.scm:642 #, scheme-format msgid "failed to read expression ~s: ~s~%" -msgstr "impossible de lire l'expression ~s: ~s~%" +msgstr "impossible de lire l'expression ~s : ~s~%" -#: guix/ui.scm:545 +#: guix/ui.scm:648 #, scheme-format msgid "failed to evaluate expression '~a':~%" -msgstr "impossible d'évaluer l'expression « ~a »:~%" +msgstr "impossible d'évaluer l'expression « ~a » :~%" -#: guix/ui.scm:548 +#: guix/ui.scm:651 #, scheme-format msgid "syntax error: ~a~%" -msgstr "erreur de syntaxe: ~a~%" +msgstr "erreur de syntaxe : ~a~%" -#: guix/ui.scm:566 +#: guix/ui.scm:669 #, scheme-format msgid "expression ~s does not evaluate to a package~%" msgstr "l'expression ~s ne correspond à aucun paquet~%" -#: guix/ui.scm:628 +#: guix/ui.scm:688 +msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%" +msgstr "au moins ~,1h Mo sont nécessaires mais seulement ~,1h Mo sont disponibles dans ~a~%" + +#: guix/ui.scm:756 #, scheme-format msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]" -msgstr[0] "~:[La dérivation suivante serait compilée:~%~{ ~a~%~}~;~]" -msgstr[1] "~:[Les dérivations suivantes seraient compilées:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[La dérivation suivante serait compilée :~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Les dérivations suivantes seraient compilées :~%~{ ~a~%~}~;~]" -#: guix/ui.scm:633 +#. TRANSLATORS: "MB" is for "megabyte"; it should be +#. translated to the corresponding abbreviation. +#: guix/ui.scm:764 +msgid "~:[~,1h MB would be downloaded:~%~{ ~a~%~}~;~]" +msgstr "~:[~,1h Mo seraient téléchargés :~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:769 #, scheme-format msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" -msgstr[0] "~:[Le fichier suivant serait téléchargé:~%~{ ~a~%~}~;~]" -msgstr[1] "~:[Les fichiers suivants seraient téléchargés:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[Le fichier suivant serait téléchargé :~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Les fichiers suivants seraient téléchargés :~%~{ ~a~%~}~;~]" -#: guix/ui.scm:639 +#: guix/ui.scm:776 #, scheme-format msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]" -msgstr[0] "~:[La dérivation suivante sera compilée:~%~{ ~a~%~}~;~]" -msgstr[1] "~:[Les dérivations suivantes seront compilées:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[La dérivation suivante sera compilée :~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Les dérivations suivantes seront compilées :~%~{ ~a~%~}~;~]" + +#. TRANSLATORS: "MB" is for "megabyte"; it should be +#. translated to the corresponding abbreviation. +#: guix/ui.scm:784 +msgid "~:[~,1h MB will be downloaded:~%~{ ~a~%~}~;~]" +msgstr "~:[~,1h Mo seront téléchargés :~%~{ ~a~%~}~;~]" -#: guix/ui.scm:644 +#: guix/ui.scm:789 #, scheme-format msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" -msgstr[0] "~:[Le fichier suivant sera téléchargé:~%~{ ~a~%~}~;~]" -msgstr[1] "~:[Les fichiers suivants seront téléchargés:~%~{ ~a~%~}~;~]" +msgstr[0] "~:[Le fichier suivant sera téléchargé :~%~{ ~a~%~}~;~]" +msgstr[1] "~:[Les fichiers suivants seront téléchargés :~%~{ ~a~%~}~;~]" -#: guix/ui.scm:700 +#: guix/ui.scm:849 #, scheme-format msgid "The following package would be removed:~%~{~a~%~}~%" msgid_plural "The following packages would be removed:~%~{~a~%~}~%" -msgstr[0] "Le paquet suivant serait supprimé:~%~{~a~%~}~%" -msgstr[1] "Les paquets suivants seraient supprimés:~%~{~a~%~}~%" +msgstr[0] "Le paquet suivant serait supprimé :~%~{~a~%~}~%" +msgstr[1] "Les paquets suivants seraient supprimés :~%~{~a~%~}~%" -#: guix/ui.scm:705 +#: guix/ui.scm:854 #, scheme-format msgid "The following package will be removed:~%~{~a~%~}~%" msgid_plural "The following packages will be removed:~%~{~a~%~}~%" -msgstr[0] "Le paquet suivant sera supprimé:~%~{~a~%~}~%" -msgstr[1] "Les paquets suivants seront supprimés:~%~{~a~%~}~%" +msgstr[0] "Le paquet suivant sera supprimé :~%~{~a~%~}~%" +msgstr[1] "Les paquets suivants seront supprimés :~%~{~a~%~}~%" -#: guix/ui.scm:718 +#: guix/ui.scm:867 #, scheme-format msgid "The following package would be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%" -msgstr[0] "Le paquet suivant serait mis à une version inférieure:~%~{~a~%~}~%" -msgstr[1] "Les paquets suivants seraient mis à des versions inférieures:~%~{~a~%~}~%" +msgstr[0] "Le paquet suivant serait mis à une version inférieure :~%~{~a~%~}~%" +msgstr[1] "Les paquets suivants seraient mis à des versions inférieures :~%~{~a~%~}~%" -#: guix/ui.scm:723 +#: guix/ui.scm:872 #, scheme-format msgid "The following package will be downgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%" -msgstr[0] "Le paquet suivant sera mis à une version inférieure:~%~{~a~%~}~%" -msgstr[1] "Les paquets suivants seront mis à des versions inférieures:~%~{~a~%~}~%" +msgstr[0] "Le paquet suivant sera mis à une version inférieure :~%~{~a~%~}~%" +msgstr[1] "Les paquets suivants seront mis à des versions inférieures :~%~{~a~%~}~%" -#: guix/ui.scm:736 +#: guix/ui.scm:885 #, scheme-format msgid "The following package would be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%" -msgstr[0] "Le paquet suivant serait mis à jour:~%~{~a~%~}~%" -msgstr[1] "Les paquets suivants seraient mis à jour:~%~{~a~%~}~%" +msgstr[0] "Le paquet suivant serait mis à jour :~%~{~a~%~}~%" +msgstr[1] "Les paquets suivants seraient mis à jour :~%~{~a~%~}~%" -#: guix/ui.scm:741 +#: guix/ui.scm:890 #, scheme-format msgid "The following package will be upgraded:~%~{~a~%~}~%" msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%" -msgstr[0] "Le paquet suivant sera mis à jour:~%~{~a~%~}~%" -msgstr[1] "Les paquets suivants seront mis à jour:~%~{~a~%~}~%" +msgstr[0] "Le paquet suivant sera mis à jour :~%~{~a~%~}~%" +msgstr[1] "Les paquets suivants seront mis à jour :~%~{~a~%~}~%" -#: guix/ui.scm:752 +#: guix/ui.scm:901 #, scheme-format msgid "The following package would be installed:~%~{~a~%~}~%" msgid_plural "The following packages would be installed:~%~{~a~%~}~%" -msgstr[0] "Le paquet suivant serait installé:~%~{~a~%~}~%" -msgstr[1] "Les paquets suivants seraient installés:~%~{~a~%~}~%" +msgstr[0] "Le paquet suivant serait installé :~%~{~a~%~}~%" +msgstr[1] "Les paquets suivants seraient installés :~%~{~a~%~}~%" -#: guix/ui.scm:757 +#: guix/ui.scm:906 #, scheme-format msgid "The following package will be installed:~%~{~a~%~}~%" msgid_plural "The following packages will be installed:~%~{~a~%~}~%" -msgstr[0] "Le paquet suivant sera installé:~%~{~a~%~}~%" -msgstr[1] "Les paquets suivants seront installés:~%~{~a~%~}~%" +msgstr[0] "Le paquet suivant sera installé :~%~{~a~%~}~%" +msgstr[1] "Les paquets suivants seront installés :~%~{~a~%~}~%" -#: guix/ui.scm:774 +#: guix/ui.scm:923 msgid "" msgstr "" -#: guix/ui.scm:793 -#, scheme-format -msgid "failed to create configuration directory `~a': ~a~%" -msgstr "impossible de créer le répertoire de configuration « ~a »: ~a~%" - -#: guix/ui.scm:924 guix/ui.scm:938 -msgid "unknown" -msgstr "inconnu" - -#: guix/ui.scm:1097 +#: guix/ui.scm:1285 #, scheme-format msgid "Generation ~a\t~a" msgstr "Génération ~a\t~a" @@ -2837,62 +3141,62 @@ msgstr "Génération ~a\t~a" #. TRANSLATORS: The word "current" here is an adjective for #. "Generation", as in "current generation". Use the appropriate #. gender where applicable. -#: guix/ui.scm:1107 +#: guix/ui.scm:1295 #, scheme-format msgid "~a\t(current)~%" msgstr "~a\t(actuel)~%" -#: guix/ui.scm:1150 +#: guix/ui.scm:1338 #, scheme-format msgid "switched from generation ~a to ~a~%" msgstr "passé de la génération ~a à ~a~%" -#: guix/ui.scm:1166 +#: guix/ui.scm:1354 #, scheme-format msgid "deleting ~a~%" msgstr "suppression de ~a~%" -#: guix/ui.scm:1197 +#: guix/ui.scm:1385 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Essayez « guix --help » pour plus d'informations.~%" -#: guix/ui.scm:1225 +#: guix/ui.scm:1413 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" msgstr "" -"Usage: guix COMMANDE ARGS...\n" +"Usage : guix COMMANDE ARGS...\n" "Lance la COMMANDE avec les arguments ARGS.\n" -#: guix/ui.scm:1228 +#: guix/ui.scm:1416 msgid "COMMAND must be one of the sub-commands listed below:\n" -msgstr "COMMANDE doit être une des sous-commandes listées ci-dessous:\n" +msgstr "COMMANDE doit être une des sous-commandes listées ci-dessous :\n" -#: guix/ui.scm:1248 +#: guix/ui.scm:1436 #, scheme-format msgid "guix: ~a: command not found~%" -msgstr "guix: ~a: commande introuvable~%" +msgstr "guix : ~a : commande introuvable~%" -#: guix/ui.scm:1267 +#: guix/ui.scm:1466 #, scheme-format msgid "guix: missing command name~%" -msgstr "guix: nom de commande manquant~%" +msgstr "guix : nom de commande manquant~%" -#: guix/ui.scm:1275 +#: guix/ui.scm:1474 #, scheme-format msgid "guix: unrecognized option '~a'~%" -msgstr "guix: option « ~a » non reconnue ~%" +msgstr "guix : option « ~a » non reconnue ~%" -#: guix/http-client.scm:265 +#: guix/http-client.scm:269 #, scheme-format msgid "following redirection to `~a'...~%" msgstr "redirection vers « ~a »...~%" -#: guix/http-client.scm:277 +#: guix/http-client.scm:281 #, scheme-format msgid "~a: HTTP download failed: ~a (~s)" -msgstr "~a: le téléchargement HTTP a échoué: ~a (~s)" +msgstr "~a : le téléchargement HTTP a échoué : ~a (~s)" #: guix/nar.scm:155 msgid "signature is not a valid s-expression" @@ -2936,114 +3240,171 @@ msgstr "les fichiers importés requièrent une signature" msgid "invalid inter-file archive mark" msgstr "marque d'archive inter-fichier non valide" -#: nix/nix-daemon/guix-daemon.cc:61 +#: nix/nix-daemon/guix-daemon.cc:66 msgid "guix-daemon -- perform derivation builds and store accesses" msgstr "guix-daemon -- réalise les compilations des dérivations et les accès au stockage" -#: nix/nix-daemon/guix-daemon.cc:63 +#: nix/nix-daemon/guix-daemon.cc:68 msgid "This program is a daemon meant to run in the background. It serves requests sent over a Unix-domain socket. It accesses the store, and builds derivations on behalf of its clients." msgstr "Ce programme est un démon qui tourne en tâche de fond. Il répond aux requêtes envoyées via des socket de type Unix-domain. Il accède au stockage et compile les dérivations pour le compte de ses clients." -#: nix/nix-daemon/guix-daemon.cc:87 +#: nix/nix-daemon/guix-daemon.cc:94 msgid "SYSTEM" msgstr "SYSTÈME" -#: nix/nix-daemon/guix-daemon.cc:88 +#: nix/nix-daemon/guix-daemon.cc:95 msgid "assume SYSTEM as the current system type" msgstr "suppose que SYSTÈME est le type de système actuel" -#: nix/nix-daemon/guix-daemon.cc:89 nix/nix-daemon/guix-daemon.cc:92 +#: nix/nix-daemon/guix-daemon.cc:96 nix/nix-daemon/guix-daemon.cc:99 msgid "N" msgstr "N" -#: nix/nix-daemon/guix-daemon.cc:90 +#: nix/nix-daemon/guix-daemon.cc:97 msgid "use N CPU cores to build each derivation; 0 means as many as available" -msgstr "utilise N cœurs CPU pour compiler chaque dérivation; 0 signifie autant que disponible" +msgstr "utilise N cœurs CPU pour compiler chaque dérivation ; 0 signifie autant que disponible" -#: nix/nix-daemon/guix-daemon.cc:93 +#: nix/nix-daemon/guix-daemon.cc:100 msgid "allow at most N build jobs" msgstr "autorise au plus N tâches de compilation" -#: nix/nix-daemon/guix-daemon.cc:95 +#: nix/nix-daemon/guix-daemon.cc:101 nix/nix-daemon/guix-daemon.cc:103 +msgid "SECONDS" +msgstr "SECONDES" + +#: nix/nix-daemon/guix-daemon.cc:102 +msgid "mark builds as failed after SECONDS of activity" +msgstr "marque les constructions comme ayant échoué après SECONDES d'activité" + +#: nix/nix-daemon/guix-daemon.cc:104 +msgid "mark builds as failed after SECONDS of silence" +msgstr "marque les constructions comme ayant échoué après SECONDES de silence" + +#: nix/nix-daemon/guix-daemon.cc:106 msgid "disable chroot builds" msgstr "désactive les compilations chroot" -#: nix/nix-daemon/guix-daemon.cc:96 +#: nix/nix-daemon/guix-daemon.cc:107 msgid "DIR" msgstr "RÉP" -#: nix/nix-daemon/guix-daemon.cc:97 +#: nix/nix-daemon/guix-daemon.cc:108 msgid "add DIR to the build chroot" msgstr "ajoute RÉP au chroot de compilation" -#: nix/nix-daemon/guix-daemon.cc:98 +#: nix/nix-daemon/guix-daemon.cc:109 msgid "GROUP" msgstr "GROUPE" -#: nix/nix-daemon/guix-daemon.cc:99 +#: nix/nix-daemon/guix-daemon.cc:110 msgid "perform builds as a user of GROUP" msgstr "réalise les compilations en tant qu'un utilisateur du GROUPE" -#: nix/nix-daemon/guix-daemon.cc:101 +#: nix/nix-daemon/guix-daemon.cc:112 msgid "do not use substitutes" msgstr "ne pas utiliser de substituts" -#: nix/nix-daemon/guix-daemon.cc:102 +#: nix/nix-daemon/guix-daemon.cc:113 msgid "URLS" msgstr "URLS" -#: nix/nix-daemon/guix-daemon.cc:103 +#: nix/nix-daemon/guix-daemon.cc:114 msgid "use URLS as the default list of substitute providers" msgstr "utilise URLS comme liste par défaut de fournisseurs de substituts" -#: nix/nix-daemon/guix-daemon.cc:105 +#: nix/nix-daemon/guix-daemon.cc:116 msgid "do not use the 'build hook'" msgstr "n'utilise pas le « build hook »" -#: nix/nix-daemon/guix-daemon.cc:107 +#: nix/nix-daemon/guix-daemon.cc:118 msgid "cache build failures" msgstr "garde les fonctionnalités de compilation en cache" -#: nix/nix-daemon/guix-daemon.cc:109 +#: nix/nix-daemon/guix-daemon.cc:120 msgid "build each derivation N times in a row" msgstr "compile chaque dérivation N fois de suite" -#: nix/nix-daemon/guix-daemon.cc:111 +#: nix/nix-daemon/guix-daemon.cc:122 msgid "do not keep build logs" msgstr "ne conserve pas les journaux de compilation" -#: nix/nix-daemon/guix-daemon.cc:113 +#: nix/nix-daemon/guix-daemon.cc:124 msgid "disable compression of the build logs" msgstr "désactive la compression des journaux de compilation" -#: nix/nix-daemon/guix-daemon.cc:118 +#: nix/nix-daemon/guix-daemon.cc:129 msgid "disable automatic file \"deduplication\" in the store" msgstr "désactive la « déduplication » automatique des fichiers dans le stockage" -#: nix/nix-daemon/guix-daemon.cc:128 +#: nix/nix-daemon/guix-daemon.cc:139 msgid "impersonate Linux 2.6" msgstr "se faire passer pour Linux 2.6" -#: nix/nix-daemon/guix-daemon.cc:132 +#: nix/nix-daemon/guix-daemon.cc:143 msgid "tell whether the GC must keep outputs of live derivations" msgstr "indique si le GC doit garder les sorties des dérivations en temps réel" -#: nix/nix-daemon/guix-daemon.cc:135 +#: nix/nix-daemon/guix-daemon.cc:146 msgid "tell whether the GC must keep derivations corresponding to live outputs" msgstr "indique si le GC doit garder les dérivations correspondant aux sorties en temps réel" -#: nix/nix-daemon/guix-daemon.cc:138 +#: nix/nix-daemon/guix-daemon.cc:149 msgid "SOCKET" msgstr "SOCKET" -#: nix/nix-daemon/guix-daemon.cc:139 +#: nix/nix-daemon/guix-daemon.cc:150 msgid "listen for connections on SOCKET" msgstr "écoute sur SOCKET pour des connexions" -#: nix/nix-daemon/guix-daemon.cc:141 +#: nix/nix-daemon/guix-daemon.cc:152 msgid "produce debugging output" msgstr "produit une sortie de déboguage" +#~ msgid "unrecognized option: ~a~%" +#~ msgstr "option non reconnue: ~a~%" + +#~ msgid "tarball did not produce a single source directory" +#~ msgstr "la tarball n'a produit aucun répertoire source" + +#~ msgid "unpacking '~a'...~%" +#~ msgstr "dépaquetage « ~a »...~%" + +#~ msgid "failed to unpack source code" +#~ msgstr "échec du dépaquetage du code source" + +#~ msgid "failed to download up-to-date source, exiting\n" +#~ msgstr "impossible de télécharger une source à jour; fin\n" + +#~ msgid "substitute at '~a' lacks a signature~%" +#~ msgstr "le substitut à « ~a » n'a pas de signature~%" + +#~ msgid "Found valid signature for ~a~%" +#~ msgstr "Signature valide trouvée pour ~a~%" + +#~ msgid "From ~a~%" +#~ msgstr "De ~a~%" + +#~ msgid "Downloading ~a~:[~*~; (~a installed)~]...~%" +#~ msgstr "Téléchargement de ~a~:[~*~; (~a installé)~]...~%" + +#~ msgid "failed to install GRUB on device '~a'~%" +#~ msgstr "échec de l'installation de GRUB sur le périphérique « ~a »~%" + +#~ msgid "failed to re-install GRUB configuration file: '~a'~%" +#~ msgstr "échec à la ré-installation du fichier de configuration de GRUB: « ~a »~%" + +#~ msgid "assuming no CVE vulnerabilities~%" +#~ msgstr "on suppose qu'il n'y a pas de vulnérabilités CVE~%" + +#~ msgid "failed to lookup NIST host: ~a~%" +#~ msgstr "impossible de trouver l'hôte NIST: ~a~%" + +#~ msgid "Updater for GNOME packages" +#~ msgstr "Logiciel de mise à jour des paquets GNOME" + +#~ msgid "failed to create configuration directory `~a': ~a~%" +#~ msgstr "impossible de créer le répertoire de configuration « ~a »: ~a~%" + #~ msgid "deprecated NAME-VERSION syntax; use NAME@VERSION instead~%" #~ msgstr "syntaxe NOM-VERSION dépréciée. Utilisez plutôt NOM@VERSION~%" @@ -3056,12 +3417,6 @@ msgstr "produit une sortie de déboguage" #~ msgid "~a: no substitute at '~a'~%" #~ msgstr "~a: pas de substitut à « ~a »~%" -#~ msgid "no substitutes for '~a'~%" -#~ msgstr "pas de substitut pour « ~a »~%" - -#~ msgid " ~50a: unavailable~%" -#~ msgstr " ~50a: non disponible~%" - #~ msgid "gz" #~ msgstr "gz" @@ -3083,9 +3438,6 @@ msgstr "produit une sortie de déboguage" #~ msgid "unsupported argument for reference graph" #~ msgstr "argument non supporté pour le graphe de référence" -#~ msgid "looking for the latest release of GNU ~a..." -#~ msgstr "recherche de la dernière version de GNU ~a..." - #~ msgid "~a: note: using ~a but ~a is available upstream~%" #~ msgstr "~a: note: utilisation de ~a mais ~a est disponible en amont" -- cgit v1.2.3 From 42d16037d857aac02add38513bfa58535c1ddcfe Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Mon, 4 Dec 2017 04:30:28 -0600 Subject: tests: Look for multi-digit column numbers in unbound variable test. * tests/guix-system.sh: Match one or more digits in unbound-variable test. --- tests/guix-system.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/guix-system.sh b/tests/guix-system.sh index 4bb866adfa..213864833a 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -123,9 +123,9 @@ else then # FIXME: With Guile 2.2.0 the error is reported on line 4. # See . - grep "$tmpfile:[49]:[0-9]: GRUB-config.*[Uu]nbound variable" "$errorfile" + grep "$tmpfile:[49]:[0-9]\+: GRUB-config.*[Uu]nbound variable" "$errorfile" else - grep "$tmpfile:9:[0-9]: GRUB-config.*[Uu]nbound variable" "$errorfile" + grep "$tmpfile:9:[0-9]\+: GRUB-config.*[Uu]nbound variable" "$errorfile" fi fi -- cgit v1.2.3 From 2626062b250e0833f2acdf80ef4b8b70c8757673 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Dec 2017 15:13:00 +0100 Subject: doc: Merge "USB Stick Installation" and "DVD Installation". * doc/guix.texi (USB Stick Installation): Rename to... (USB Stick and DVD Installation): ... this. Merge contents with... (DVD Installation): ... this node. Remove. --- doc/guix.texi | 70 ++++++++++++++--------------------------------------------- 1 file changed, 16 insertions(+), 54 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2b1b89fbea..182dcd82ee 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -197,7 +197,7 @@ System Installation * Limitations:: What you can expect. * Hardware Considerations:: Supported hardware. -* USB Stick Installation:: Preparing the installation medium. +* USB Stick and DVD Installation:: Preparing the installation medium. * Preparing for Installation:: Networking, partitioning, etc. * Proceeding with the Installation:: The real thing. * Installing GuixSD in a VM:: GuixSD playground. @@ -7764,8 +7764,7 @@ available. @menu * Limitations:: What you can expect. * Hardware Considerations:: Supported hardware. -* USB Stick Installation:: Preparing the installation medium. -* DVD Installation:: Preparing the installation medium. +* USB Stick and DVD Installation:: Preparing the installation medium. * Preparing for Installation:: Networking, partitioning, etc. * Proceeding with the Installation:: The real thing. * Installing GuixSD in a VM:: GuixSD playground. @@ -7851,10 +7850,11 @@ web site. It contains a catalog of hardware devices with information about their support in GNU/Linux. -@node USB Stick Installation -@subsection USB Stick Installation +@node USB Stick and DVD Installation +@subsection USB Stick and DVD Installation -An installation image for USB sticks can be downloaded from +An ISO-9660 installation image that can be written to a USB stick or +burnt to a DVD can be downloaded from @indicateurl{ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.xz}, where @var{system} is one of: @@ -7889,6 +7889,8 @@ and rerun the @code{gpg --verify} command. This image contains the tools necessary for an installation. It is meant to be copied @emph{as is} to a large-enough USB stick or DVD. +@unnumberedsubsubsec Copying to a USB Stick + To copy the image to a USB stick, follow these steps: @enumerate @@ -7905,57 +7907,14 @@ its device name. Assuming that the USB stick is known as @file{/dev/sdX}, copy the image with: @example -dd if=guixsd-install-@value{VERSION}.x86_64 of=/dev/sdX +dd if=guixsd-install-@value{VERSION}.x86_64-linux of=/dev/sdX sync @end example Access to @file{/dev/sdX} usually requires root privileges. @end enumerate -Once this is done, you should be able to reboot the system and boot from -the USB stick. The latter usually requires you to get in the BIOS or -UEFI boot menu, where you can choose to boot from the USB stick. - -@xref{Installing GuixSD in a VM}, if, instead, you would like to install -GuixSD in a virtual machine (VM). - -@node DVD Installation -@subsection DVD Installation - -An installation image for DVDs can be downloaded from -@indicateurl{ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.xz}, -where @var{system} is one of: - -@table @code -@item x86_64-linux -for a GNU/Linux system on Intel/AMD-compatible 64-bit CPUs; - -@item i686-linux -for a 32-bit GNU/Linux system on Intel-compatible CPUs. -@end table - -@c start duplication of authentication part from ``Binary Installation'' -Make sure to download the associated @file{.sig} file and to verify the -authenticity of the image against it, along these lines: - -@example -$ wget ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.xz.sig -$ gpg --verify guixsd-install-@value{VERSION}.@var{system}.xz.sig -@end example - -If that command fails because you do not have the required public key, -then run this command to import it: - -@example -$ gpg --keyserver pgp.mit.edu --recv-keys @value{OPENPGP-SIGNING-KEY-ID} -@end example - -@noindent -and rerun the @code{gpg --verify} command. -@c end duplication - -This image contains the tools necessary for an installation. -It is meant to be copied @emph{as is} to a large-enough USB stick or DVD. +@unnumberedsubsubsec Burning on a DVD To copy the image to a DVD, follow these steps: @@ -7979,13 +7938,16 @@ growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.x86_64 Access to @file{/dev/srX} usually requires root privileges. @end enumerate +@unnumberedsubsubsec Booting + Once this is done, you should be able to reboot the system and boot from -the DVD. The latter usually requires you to get in the BIOS or -UEFI boot menu, where you can choose to boot from the DVD. +the USB stick or DVD. The latter usually requires you to get in the +BIOS or UEFI boot menu, where you can choose to boot from the USB stick. @xref{Installing GuixSD in a VM}, if, instead, you would like to install GuixSD in a virtual machine (VM). + @node Preparing for Installation @subsection Preparing for Installation @@ -8336,7 +8298,7 @@ disk image, follow these steps: @enumerate @item First, retrieve and decompress the GuixSD installation image as -described previously (@pxref{USB Stick Installation}). +described previously (@pxref{USB Stick and DVD Installation}). @item Create a disk image that will hold the installed system. To make a -- cgit v1.2.3 From 3b6e7c703cff14020cfcdaa316875b28282c3477 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Dec 2017 15:17:23 +0100 Subject: maint: Add the '.iso' extension to installation images. * Makefile.am (release): Add the '.iso' suffix to image files. * doc/guix.texi (USB Stick and DVD Installation): Adjust accordingly. --- Makefile.am | 6 +++--- doc/guix.texi | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Makefile.am b/Makefile.am index 24a803a21a..35d72f36fe 100644 --- a/Makefile.am +++ b/Makefile.am @@ -655,9 +655,9 @@ release: dist echo "failed to produced GuixSD installation image for $$system" >&2 ; \ exit 1 ; \ fi ; \ - xz < "$$image" > "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz.tmp" ; \ - mv "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz.tmp" \ - "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz" ; \ + xz < "$$image" > "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.iso.xz.tmp" ; \ + mv "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.iso.xz.tmp" \ + "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.iso.xz" ; \ done for system in $(GUIXSD_VM_SYSTEMS) ; do \ image=`$(top_builddir)/pre-inst-env \ diff --git a/doc/guix.texi b/doc/guix.texi index 182dcd82ee..c39e495060 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7855,7 +7855,7 @@ about their support in GNU/Linux. An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from -@indicateurl{ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.xz}, +@indicateurl{ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is one of: @table @code @@ -7871,8 +7871,8 @@ Make sure to download the associated @file{.sig} file and to verify the authenticity of the image against it, along these lines: @example -$ wget ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.xz.sig -$ gpg --verify guixsd-install-@value{VERSION}.@var{system}.xz.sig +$ wget ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig +$ gpg --verify guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig @end example If that command fails because you do not have the required public key, @@ -7898,7 +7898,7 @@ To copy the image to a USB stick, follow these steps: Decompress the image using the @command{xz} command: @example -xz -d guixsd-install-@value{VERSION}.@var{system}.xz +xz -d guixsd-install-@value{VERSION}.@var{system}.iso.xz @end example @item @@ -7907,7 +7907,7 @@ its device name. Assuming that the USB stick is known as @file{/dev/sdX}, copy the image with: @example -dd if=guixsd-install-@value{VERSION}.x86_64-linux of=/dev/sdX +dd if=guixsd-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX sync @end example @@ -7923,7 +7923,7 @@ To copy the image to a DVD, follow these steps: Decompress the image using the @command{xz} command: @example -xz -d guixsd-install-@value{VERSION}.@var{system}.xz +xz -d guixsd-install-@value{VERSION}.@var{system}.iso.xz @end example @item @@ -7932,7 +7932,7 @@ its device name. Assuming that the DVD drive is known as @file{/dev/srX}, copy the image with: @example -growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.x86_64 +growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.x86_64.iso @end example Access to @file{/dev/srX} usually requires root privileges. @@ -8317,7 +8317,7 @@ Boot the USB installation image in an VM: @example qemu-system-x86_64 -m 1024 -smp 1 \ -net user -net nic,model=virtio -boot menu=on \ - -drive file=guixsd-install-@value{VERSION}.@var{system} \ + -drive file=guixsd-install-@value{VERSION}.@var{system}.iso \ -drive file=guixsd.img @end example -- cgit v1.2.3 From 9d163ec133c55abf4d63b4f6e242d8da731d91eb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Dec 2017 15:25:40 +0100 Subject: maint: Add 'aarch64-linux' to the supported systems. * Makefile.am (SUPPORTED_SYSTEMS): Add aarch64-linux. --- Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 35d72f36fe..6d340f5720 100644 --- a/Makefile.am +++ b/Makefile.am @@ -584,7 +584,7 @@ SOURCE_TARBALLS = \ $(foreach ext,tar.gz,$(PACKAGE_FULL_TARNAME).$(ext)) # Systems supported by Guix. -SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux +SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux aarch64-linux # Guix binary tarballs. BINARY_TARBALLS = \ -- cgit v1.2.3 From aa1d47e72ee23aa38bbd9d216d68c8ebef351420 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Dec 2017 15:28:16 +0100 Subject: maint: Let 'guix system vm-image' determine the right size. * Makefile.am (GUIXSD_VM_IMAGE_BASE): Remove. (release): Remoev --image-size argument to 'guix system vm-image'. --- Makefile.am | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Makefile.am b/Makefile.am index 6d340f5720..7cc46d4ac2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -602,9 +602,6 @@ GUIXSD_IMAGE_BASE = guixsd-install-$(PACKAGE_VERSION) # Prefix of the GuixSD VM image file name. GUIXSD_VM_IMAGE_BASE = guixsd-vm-image-$(PACKAGE_VERSION) -# Size of the VM image (for x86_64 typically). -GUIXSD_VM_IMAGE_SIZE ?= 2GiB - # The release process works in several phases: # # 0. We assume the developer created a 'vX.Y' tag. @@ -663,7 +660,6 @@ release: dist image=`$(top_builddir)/pre-inst-env \ guix system vm-image \ --system=$$system \ - --image-size=$(GUIXSD_VM_IMAGE_SIZE) \ gnu/system/examples/vm-image.tmpl` ; \ if [ ! -f "$$image" ] ; then \ echo "failed to produced GuixSD VM image for $$system" >&2 ; \ -- cgit v1.2.3 From c7699ebeb4233d81f294ff7e8b8eb3676119ae4a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Dec 2017 16:33:59 +0100 Subject: gnu: git: Remove unreliable git-svn tests. Reported in by Mark H Weaver . * gnu/packages/version-control.scm (git)[arguments]: In 'patch-tests' phase, delete three git-svn tests. --- gnu/packages/version-control.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index f7550cb5c8..ba985f6078 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -245,6 +245,13 @@ (define-public git ;; FIXME: Some hooks fail with "basename: command not found". ;; See 't/trash directory.t9164.../svn-hook.log'. (delete-file "t/t9164-git-svn-dcommit-concurrent.sh") + + ;; XXX: These tests fail intermittently for unknown reasons: + ;; . + (for-each delete-file + '("t/t9128-git-svn-cmd-branch.sh" + "t/t9167-git-svn-cmd-branch-subproject.sh" + "t/t9141-git-svn-multiple-branches.sh")) #t)) (add-after 'install 'install-shell-completion (lambda* (#:key outputs #:allow-other-keys) -- cgit v1.2.3 From c735e9e6868bb7661f08ffa008f1feaedf2fcb9e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Dec 2017 17:51:11 +0100 Subject: Update NEWS. --- NEWS | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/NEWS b/NEWS index 8280902557..e291b65a31 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,82 @@ Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès Please send Guix bug reports to bug-guix@gnu.org. +* Changes in 0.14.0 (since 0.13.0) + +** Package management + +*** ‘guix package’ displays how much will be downloaded +*** ‘guix package’ warns about insufficient disk space +*** ‘guix package’ now reports package collisions early on +*** ‘guix package --search’ sorts results by relevance +*** ‘guix pull’ now fetches code directly over Git using Guile-Git +*** Substitutes can be downloaded from servers equivalent to the authorized ones +*** New ‘guix weather’ command +*** ‘guix publish --cache’ now also caches uncompressed items +*** ‘guix publish’ no longer removes live items from its cache +*** ‘guix challenge’ now displays an overall summary +*** ‘guix refresh’ no longer uses FTP for GNU and GNOME packages +*** ‘guix refresh’ has a new ‘-m’ or ‘--manifest’ option +*** New ‘refresh’ checker for ‘guix lint’ +*** New ‘json’ importer for ‘guix import’ to simplify first packages +*** New ‘texlive’ importer for ‘guix import’ + +** Distribution + +*** GuixSD installation image is now available as ISO-9660 +*** GuixSD installation image now includes an ‘sshd’ service +*** New (gnu bootloaders) API, with support for U-Boot and extlinux +*** ‘grub-configuration’ is deprecated in favor of ‘bootloader-configuration’ +*** ‘%desktop-services’ now includes NetworkManager instead of Wicd +*** The (uuid …) form can now specify FAT32 and ISO-9660 UUIDs +*** ‘guix system’ now reports missing file system UUIDs and labels +*** ‘guix system’ can provide hints when reporting unbound variables +*** New ‘--file-system-type’ option for ‘guix system disk-image’ +*** ‘guix system disk-image’ can now creates ISO-9660 images +*** ‘guix system vm-image’ & co. automatically estimate the image size +*** ‘guix system vm’ now uses overlayfs instead of unionfs +*** TeX Live is now also available as a set of small ‘texlive-’ packages +*** New ‘guix system search’ command to search for services +*** New services + +certbot, fcgiwrap, gdm, git-http, knot, libvirt, memcached, mongodb, mpd, +murmur, rsync, tailon, sysctl + +*** XXX new packages + +*** XXX package updates + +** Programming interfaces + +*** New build systems: ‘font’, ‘meson’, ‘minify’, ‘scons’, ‘texlive’ +*** ‘cmake-build-system’ now supports cross-compilation +*** Various improvements to ‘asdf-build-system’, ‘emacs-build-system’, + ‘ant-build-system’, and ‘go-build-system’ +*** ‘patches’ field of can now contain any lowerable object +*** (gnu system vm) has a new ‘make-iso9660-image’ procedure +*** ‘openssh-service-type’ can now be extended with new authorized keys +*** ‘rottlog-service-type’ can now be extended with new ‘log-rotation’s +*** ‘network-manager-service-type’ now supports VPN plugins +*** now has a ‘description’ field, used by ‘guix system search’ +*** New ‘virtual-machine’ form in (gnu system vm) +*** New (gnu system uuid) module, which defines a disjoint type +*** New (guix progress) module + +** Noteworthy bug fixes + +*** GuixSD no longer creates setuid binaries in /gnu/store + () +*** /root is no longer world-readable () +*** ‘guix publish’ no longer leaks memory () +*** Missing cursor icons in GNOME could cause crashes + () +*** Setuid programs now honor the system timezone + () + +** Native language support + +Updated translations: da (Danish), fr (French) + * Changes in 0.13.0 (since 0.12.0) ** Package management -- cgit v1.2.3 From be5622e7f1b2f4e4567214b209bfd153dfd59013 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Dec 2017 17:57:37 +0100 Subject: maint: Add 'berlin.guixsd.org.pub'. * bayfront.guixsd.org.pub: Rename to... * berlin.guixsd.org.pub: ... this. * Makefile.am (dist_pkgdata_DATA): Adjust accordingly. * gnu/services/base.scm (%default-authorized-guix-keys): Likewise. --- Makefile.am | 2 +- bayfront.guixsd.org.pub | 6 ------ berlin.guixsd.org.pub | 6 ++++++ gnu/services/base.scm | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 bayfront.guixsd.org.pub create mode 100644 berlin.guixsd.org.pub diff --git a/Makefile.am b/Makefile.am index 7cc46d4ac2..ddbf7a7984 100644 --- a/Makefile.am +++ b/Makefile.am @@ -416,7 +416,7 @@ check-system: $(GOBJECTS) $(BOOTSTRAP_GUILE_TARBALLS) # Public key used to sign substitutes from hydra.gnu.org & co. dist_pkgdata_DATA = \ hydra.gnu.org.pub \ - bayfront.guixsd.org.pub + berlin.guixsd.org.pub # Bash completion file. dist_bashcompletion_DATA = etc/completion/bash/guix diff --git a/bayfront.guixsd.org.pub b/bayfront.guixsd.org.pub deleted file mode 100644 index f156a37b08..0000000000 --- a/bayfront.guixsd.org.pub +++ /dev/null @@ -1,6 +0,0 @@ -(public-key - (ecc - (curve Ed25519) - (q #8D156F295D24B0D9A86FA5741A840FF2D24F60F7B6C4134814AD55625971B394#) - ) - ) diff --git a/berlin.guixsd.org.pub b/berlin.guixsd.org.pub new file mode 100644 index 0000000000..f156a37b08 --- /dev/null +++ b/berlin.guixsd.org.pub @@ -0,0 +1,6 @@ +(public-key + (ecc + (curve Ed25519) + (q #8D156F295D24B0D9A86FA5741A840FF2D24F60F7B6C4134814AD55625971B394#) + ) + ) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 06b2a7d2d8..11f55c588c 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1345,7 +1345,7 @@ (define (hydra-key-authorization key guix) (define %default-authorized-guix-keys ;; List of authorized substitute keys. (list (file-append guix "/share/guix/hydra.gnu.org.pub") - (file-append guix "/share/guix/bayfront.guixsd.org.pub"))) + (file-append guix "/share/guix/berlin.guixsd.org.pub"))) (define-record-type* guix-configuration make-guix-configuration -- cgit v1.2.3 From 39b27f4eae36d155faf466c59629afb5843030e6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 4 Dec 2017 18:14:28 +0100 Subject: doc: Mention berlin.guixsd.org. * doc/guix.texi (Substitute Server Authorization): Add note about berlin.guixsd.org. Nitpick. --- doc/guix.texi | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index c39e495060..2267fadd1d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2151,8 +2151,8 @@ also result from derivation builds, can be available as substitutes. @cindex hydra @cindex build farm -The @code{hydra.gnu.org} server is a front-end to an official build farm -that builds packages from the GNU distribution continuously for some +The @code{mirror.hydra.gnu.org} server is a front-end to an official build farm +that builds packages from Guix continuously for some architectures, and makes them available as substitutes. This is the default source of substitutes; it can be overridden by passing the @option{--substitute-urls} option either to @command{guix-daemon} @@ -2201,6 +2201,17 @@ Then, you can run something like this: # guix archive --authorize < @var{prefix}/share/guix/hydra.gnu.org.pub @end example +@quotation Note +Similarly, the @file{berlin.guixsd.org.pub} file contains the public key +for the project's new build farm, reachable at +@indicateurl{https://berlin.guixsd.org}. + +As of this writing @code{berlin.guixsd.org} is being upgraded so it can +better scale up, but you might want to give it a try. It is backed by +20 x86_64/i686 build nodes and may be able to provide substitutes more +quickly than @code{mirror.hydra.gnu.org}. +@end quotation + Once this is in place, the output of a command like @code{guix build} should change from something like: @@ -2219,7 +2230,7 @@ to something like: @example $ guix build emacs --dry-run -The following files would be downloaded: +112.3 MB would be downloaded: /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3 /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16 -- cgit v1.2.3 From 4307397b5e060b54d69b7d2818654504ebde9c1d Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 1 Dec 2017 14:09:38 +0100 Subject: bootloader: extlinux: Stop using dd binary. * gnu/bootloader/extlinux.scm (dd): Remove it, (install-extlinux): replace dd call by Guile I/O procedures. * gnu/system/vm.scm (qemu-image): Add (ice-9 binary-ports) to used-modules list to provide "get-bytevector-n" and "put-bytevector". * guix/scripts/system.scm (bootloader-installer-derivation): Ditto. --- gnu/bootloader/extlinux.scm | 20 +++++++++----------- gnu/system/vm.scm | 3 ++- guix/scripts/system.scm | 3 ++- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm index 0db5598fc9..9b6e2c7f2a 100644 --- a/gnu/bootloader/extlinux.scm +++ b/gnu/bootloader/extlinux.scm @@ -85,14 +85,6 @@ (define builder ;;; Install procedures. ;;; -(define dd - #~(lambda (bs count if of) - (zero? (system* "dd" - (string-append "bs=" (number->string bs)) - (string-append "count=" (number->string count)) - (string-append "if=" if) - (string-append "of=" of))))) - (define (install-extlinux mbr) #~(lambda (bootloader device mount-point) (let ((extlinux (string-append bootloader "/sbin/extlinux")) @@ -101,9 +93,15 @@ (define (install-extlinux mbr) (for-each (lambda (file) (install-file file install-dir)) (find-files syslinux-dir "\\.c32$")) - - (unless (and (zero? (system* extlinux "--install" install-dir)) - (#$dd 440 1 (string-append syslinux-dir "/" #$mbr) device)) + (unless + (and (zero? (system* extlinux "--install" install-dir)) + (call-with-input-file (string-append syslinux-dir "/" #$mbr) + (lambda (input) + (let ((bv (get-bytevector-n input 440))) + (call-with-output-file device + (lambda (output) + (put-bytevector output bv)) + #:binary #t))))) (error "failed to install SYSLINUX"))))) (define install-extlinux-mbr diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index b68cce3eb5..d754ac76f0 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -278,7 +278,8 @@ (define* (qemu-image #:key #~(begin (use-modules (gnu build vm) (guix build utils) - (srfi srfi-26)) + (srfi srfi-26) + (ice-9 binary-ports)) (let ((inputs '#$(append (list qemu parted e2fsprogs dosfstools) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 91d151d22b..e2ff42693f 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -676,7 +676,8 @@ (define (bootloader-installer-derivation installer (gexp->file "bootloader-installer" (with-imported-modules '((guix build utils)) #~(begin - (use-modules (guix build utils)) + (use-modules (guix build utils) + (ice-9 binary-ports)) (#$installer #$bootloader #$device #$target)))))) (define* (perform-action action os -- cgit v1.2.3 From 982caeab6f33ac7956e97c86426177b5d90cf180 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 1 Dec 2017 13:13:18 -0500 Subject: gnu: bazaar: Fix CVE-2017-14176. * gnu/packages/patches/bazaar-CVE-2017-14176.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/version-control.scm (bazaar)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/patches/bazaar-CVE-2017-14176.patch | 166 +++++++++++++++++++++++ gnu/packages/version-control.scm | 1 + 3 files changed, 168 insertions(+) create mode 100644 gnu/packages/patches/bazaar-CVE-2017-14176.patch diff --git a/gnu/local.mk b/gnu/local.mk index 434bbb016a..36bee31d83 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -552,6 +552,7 @@ dist_patch_DATA = \ %D%/packages/patches/awesome-reproducible-png.patch \ %D%/packages/patches/azr3.patch \ %D%/packages/patches/bash-completion-directories.patch \ + %D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/bcftools-regidx-unsigned-char.patch \ %D%/packages/patches/binutils-ld-new-dtags.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ diff --git a/gnu/packages/patches/bazaar-CVE-2017-14176.patch b/gnu/packages/patches/bazaar-CVE-2017-14176.patch new file mode 100644 index 0000000000..0e9083b97d --- /dev/null +++ b/gnu/packages/patches/bazaar-CVE-2017-14176.patch @@ -0,0 +1,166 @@ +Fix CVE-2017-14176: + +https://bugs.launchpad.net/bzr/+bug/1710979 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14176 + +Patch copied from Debian's Bazaar package version bzr_2.7.0+bzr6619-7+deb9u1: + +https://alioth.debian.org/scm/loggerhead/pkg-bazaar/bzr/2.7/revision/4204 + +Description: Prevent SSH command line options from being specified in bzr+ssh:// URLs +Bug: https://bugs.launchpad.net/brz/+bug/1710979 +Bug-Debian: https://bugs.debian.org/874429 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2017-14176 +Forwarded: no +Author: Jelmer Vernooij +Last-Update: 2017-11-26 + +=== modified file 'bzrlib/tests/test_ssh_transport.py' +--- old/bzrlib/tests/test_ssh_transport.py 2010-10-07 12:45:51 +0000 ++++ new/bzrlib/tests/test_ssh_transport.py 2017-08-20 01:59:20 +0000 +@@ -22,6 +22,7 @@ + SSHCorpSubprocessVendor, + LSHSubprocessVendor, + SSHVendorManager, ++ StrangeHostname, + ) + + +@@ -161,6 +162,19 @@ + + class SubprocessVendorsTests(TestCase): + ++ def test_openssh_command_tricked(self): ++ vendor = OpenSSHSubprocessVendor() ++ self.assertEqual( ++ vendor._get_vendor_specific_argv( ++ "user", "-oProxyCommand=blah", 100, command=["bzr"]), ++ ["ssh", "-oForwardX11=no", "-oForwardAgent=no", ++ "-oClearAllForwardings=yes", ++ "-oNoHostAuthenticationForLocalhost=yes", ++ "-p", "100", ++ "-l", "user", ++ "--", ++ "-oProxyCommand=blah", "bzr"]) ++ + def test_openssh_command_arguments(self): + vendor = OpenSSHSubprocessVendor() + self.assertEqual( +@@ -171,6 +185,7 @@ + "-oNoHostAuthenticationForLocalhost=yes", + "-p", "100", + "-l", "user", ++ "--", + "host", "bzr"] + ) + +@@ -184,9 +199,16 @@ + "-oNoHostAuthenticationForLocalhost=yes", + "-p", "100", + "-l", "user", +- "-s", "host", "sftp"] ++ "-s", "--", "host", "sftp"] + ) + ++ def test_openssh_command_tricked(self): ++ vendor = SSHCorpSubprocessVendor() ++ self.assertRaises( ++ StrangeHostname, ++ vendor._get_vendor_specific_argv, ++ "user", "-oProxyCommand=host", 100, command=["bzr"]) ++ + def test_sshcorp_command_arguments(self): + vendor = SSHCorpSubprocessVendor() + self.assertEqual( +@@ -209,6 +231,13 @@ + "-s", "sftp", "host"] + ) + ++ def test_lsh_command_tricked(self): ++ vendor = LSHSubprocessVendor() ++ self.assertRaises( ++ StrangeHostname, ++ vendor._get_vendor_specific_argv, ++ "user", "-oProxyCommand=host", 100, command=["bzr"]) ++ + def test_lsh_command_arguments(self): + vendor = LSHSubprocessVendor() + self.assertEqual( +@@ -231,6 +260,13 @@ + "--subsystem", "sftp", "host"] + ) + ++ def test_plink_command_tricked(self): ++ vendor = PLinkSubprocessVendor() ++ self.assertRaises( ++ StrangeHostname, ++ vendor._get_vendor_specific_argv, ++ "user", "-oProxyCommand=host", 100, command=["bzr"]) ++ + def test_plink_command_arguments(self): + vendor = PLinkSubprocessVendor() + self.assertEqual( + +=== modified file 'bzrlib/transport/ssh.py' +--- old/bzrlib/transport/ssh.py 2015-07-31 01:04:41 +0000 ++++ new/bzrlib/transport/ssh.py 2017-08-20 01:59:20 +0000 +@@ -46,6 +46,10 @@ + from paramiko.sftp_client import SFTPClient + + ++class StrangeHostname(errors.BzrError): ++ _fmt = "Refusing to connect to strange SSH hostname %(hostname)s" ++ ++ + SYSTEM_HOSTKEYS = {} + BZR_HOSTKEYS = {} + +@@ -360,6 +364,11 @@ + # tests, but beware of using PIPE which may hang due to not being read. + _stderr_target = None + ++ @staticmethod ++ def _check_hostname(arg): ++ if arg.startswith('-'): ++ raise StrangeHostname(hostname=arg) ++ + def _connect(self, argv): + # Attempt to make a socketpair to use as stdin/stdout for the SSH + # subprocess. We prefer sockets to pipes because they support +@@ -424,9 +433,9 @@ + if username is not None: + args.extend(['-l', username]) + if subsystem is not None: +- args.extend(['-s', host, subsystem]) ++ args.extend(['-s', '--', host, subsystem]) + else: +- args.extend([host] + command) ++ args.extend(['--', host] + command) + return args + + register_ssh_vendor('openssh', OpenSSHSubprocessVendor()) +@@ -439,6 +448,7 @@ + + def _get_vendor_specific_argv(self, username, host, port, subsystem=None, + command=None): ++ self._check_hostname(host) + args = [self.executable_path, '-x'] + if port is not None: + args.extend(['-p', str(port)]) +@@ -460,6 +470,7 @@ + + def _get_vendor_specific_argv(self, username, host, port, subsystem=None, + command=None): ++ self._check_hostname(host) + args = [self.executable_path] + if port is not None: + args.extend(['-p', str(port)]) +@@ -481,6 +492,7 @@ + + def _get_vendor_specific_argv(self, username, host, port, subsystem=None, + command=None): ++ self._check_hostname(host) + args = [self.executable_path, '-x', '-a', '-ssh', '-2', '-batch'] + if port is not None: + args.extend(['-P', str(port)]) + diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index ba985f6078..a41ddf8da3 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -98,6 +98,7 @@ (define-public bazaar (uri (string-append "https://launchpad.net/bzr/" (version-major+minor version) "/" version "/+download/bzr-" version ".tar.gz")) + (patches (search-patches "bazaar-CVE-2017-14176.patch")) (sha256 (base32 "1cysix5k3wa6y7jjck3ckq3abls4gvz570s0v0hxv805nwki4i8d")))) -- cgit v1.2.3 From b142756d9c6a2dd6936b7175f120846190f52aaa Mon Sep 17 00:00:00 2001 From: Andy Patterson Date: Sat, 2 Dec 2017 17:23:27 -0500 Subject: gnu: spice: Update to 0.14.0. This is a follow-up to commit 9a187b39b7991463aa6985f5b746fccf69789525. * gnu/packages/spice.scm (spice): Update to 0.14.0. [source]: Remove obsolete patches. Use HTTPS URL. [inputs]: Add orc. [home-page]: Update to use https. * gnu/packages/patches/spice-CVE-2016-9577.patch, gnu/packages/patches/spice-CVE-2016-9578-1.patch, gnu/packages/patches/spice-CVE-2016-9578-2.patch, gnu/packages/patches/spice-CVE-2017-7506.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 4 - gnu/packages/patches/spice-CVE-2016-9577.patch | 33 ----- gnu/packages/patches/spice-CVE-2016-9578-1.patch | 33 ----- gnu/packages/patches/spice-CVE-2016-9578-2.patch | 38 ------ gnu/packages/patches/spice-CVE-2017-7506.patch | 158 ----------------------- gnu/packages/spice.scm | 12 +- 6 files changed, 4 insertions(+), 274 deletions(-) delete mode 100644 gnu/packages/patches/spice-CVE-2016-9577.patch delete mode 100644 gnu/packages/patches/spice-CVE-2016-9578-1.patch delete mode 100644 gnu/packages/patches/spice-CVE-2016-9578-2.patch delete mode 100644 gnu/packages/patches/spice-CVE-2017-7506.patch diff --git a/gnu/local.mk b/gnu/local.mk index 36bee31d83..856ade412c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1071,10 +1071,6 @@ dist_patch_DATA = \ %D%/packages/patches/slim-login.patch \ %D%/packages/patches/slurm-configure-remove-nonfree-contribs.patch \ %D%/packages/patches/sooperlooper-build-with-wx-30.patch \ - %D%/packages/patches/spice-CVE-2016-9577.patch \ - %D%/packages/patches/spice-CVE-2016-9578-1.patch \ - %D%/packages/patches/spice-CVE-2016-9578-2.patch \ - %D%/packages/patches/spice-CVE-2017-7506.patch \ %D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/swish-e-search.patch \ diff --git a/gnu/packages/patches/spice-CVE-2016-9577.patch b/gnu/packages/patches/spice-CVE-2016-9577.patch deleted file mode 100644 index a2cb558cd3..0000000000 --- a/gnu/packages/patches/spice-CVE-2016-9577.patch +++ /dev/null @@ -1,33 +0,0 @@ -Prevent buffer overflow when reading large messages. - -https://bugzilla.redhat.com/show_bug.cgi?id=1401603 -https://access.redhat.com/security/cve/CVE-2016-9577 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9577 -https://security-tracker.debian.org/tracker/CVE-2016-9577 - -Patch copied from upstream source repository: - -https://cgit.freedesktop.org/spice/spice/commit/?h=0.12&id=5f96b596353d73bdf4bb3cd2de61e48a7fd5b4c3 - -From 5f96b596353d73bdf4bb3cd2de61e48a7fd5b4c3 Mon Sep 17 00:00:00 2001 -From: Frediano Ziglio -Date: Tue, 29 Nov 2016 16:46:56 +0000 -Subject: main-channel: Prevent overflow reading messages from client - -diff --git a/server/main_channel.c b/server/main_channel.c -index 0ecc9df..1fc3915 100644 ---- a/server/main_channel.c -+++ b/server/main_channel.c -@@ -1026,6 +1026,9 @@ static uint8_t *main_channel_alloc_msg_rcv_buf(RedChannelClient *rcc, - - if (type == SPICE_MSGC_MAIN_AGENT_DATA) { - return reds_get_agent_data_buffer(mcc, size); -+ } else if (size > sizeof(main_chan->recv_buf)) { -+ /* message too large, caller will log a message and close the connection */ -+ return NULL; - } else { - return main_chan->recv_buf; - } --- -cgit v0.10.2 - diff --git a/gnu/packages/patches/spice-CVE-2016-9578-1.patch b/gnu/packages/patches/spice-CVE-2016-9578-1.patch deleted file mode 100644 index f86cdb4eb1..0000000000 --- a/gnu/packages/patches/spice-CVE-2016-9578-1.patch +++ /dev/null @@ -1,33 +0,0 @@ -Prevent possible DoS during protocol handshake. - -https://bugzilla.redhat.com/show_bug.cgi?id=1399566 -https://access.redhat.com/security/cve/CVE-2016-9578 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9578 -https://security-tracker.debian.org/tracker/CVE-2016-9578 - -Patch copied from upstream source repository: - -https://cgit.freedesktop.org/spice/spice/commit/?h=0.12&id=f66dc643635518e53dfbe5262f814a64eec54e4a - -From 1c6517973095a67c8cb57f3550fc1298404ab556 Mon Sep 17 00:00:00 2001 -From: Frediano Ziglio -Date: Tue, 13 Dec 2016 14:39:48 +0000 -Subject: Prevent possible DoS attempts during protocol handshake - -diff --git a/server/reds.c b/server/reds.c -index f40b65c..86a33d5 100644 ---- a/server/reds.c -+++ b/server/reds.c -@@ -2202,7 +2202,8 @@ static void reds_handle_read_header_done(void *opaque) - - reds->peer_minor_version = header->minor_version; - -- if (header->size < sizeof(SpiceLinkMess)) { -+ /* the check for 4096 is to avoid clients to cause arbitrary big memory allocations */ -+ if (header->size < sizeof(SpiceLinkMess) || header->size > 4096) { - reds_send_link_error(link, SPICE_LINK_ERR_INVALID_DATA); - spice_warning("bad size %u", header->size); - reds_link_free(link); --- -cgit v0.10.2 - diff --git a/gnu/packages/patches/spice-CVE-2016-9578-2.patch b/gnu/packages/patches/spice-CVE-2016-9578-2.patch deleted file mode 100644 index 76f7ec7ffb..0000000000 --- a/gnu/packages/patches/spice-CVE-2016-9578-2.patch +++ /dev/null @@ -1,38 +0,0 @@ -Fixes a potential buffer overflow in the protocol handling. - -https://bugzilla.redhat.com/show_bug.cgi?id=1399566 -https://access.redhat.com/security/cve/CVE-2016-9578 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9578 -https://security-tracker.debian.org/tracker/CVE-2016-9578 - -Patch copied from upstream source repository: - -https://cgit.freedesktop.org/spice/spice/commit/?h=0.12&id=f66dc643635518e53dfbe5262f814a64eec54e4a - -From f66dc643635518e53dfbe5262f814a64eec54e4a Mon Sep 17 00:00:00 2001 -From: Frediano Ziglio -Date: Tue, 13 Dec 2016 14:40:10 +0000 -Subject: Prevent integer overflows in capability checks - -diff --git a/server/reds.c b/server/reds.c -index 86a33d5..9150454 100644 ---- a/server/reds.c -+++ b/server/reds.c -@@ -2110,6 +2110,14 @@ static void reds_handle_read_link_done(void *opaque) - link_mess->num_channel_caps = GUINT32_FROM_LE(link_mess->num_channel_caps); - link_mess->num_common_caps = GUINT32_FROM_LE(link_mess->num_common_caps); - -+ /* Prevent DoS. Currently we defined only 13 capabilities, -+ * I expect 1024 to be valid for quite a lot time */ -+ if (link_mess->num_channel_caps > 1024 || link_mess->num_common_caps > 1024) { -+ reds_send_link_error(link, SPICE_LINK_ERR_INVALID_DATA); -+ reds_link_free(link); -+ return; -+ } -+ - num_caps = link_mess->num_common_caps + link_mess->num_channel_caps; - caps = (uint32_t *)((uint8_t *)link_mess + link_mess->caps_offset); - --- -cgit v0.10.2 - diff --git a/gnu/packages/patches/spice-CVE-2017-7506.patch b/gnu/packages/patches/spice-CVE-2017-7506.patch deleted file mode 100644 index 37d8f02831..0000000000 --- a/gnu/packages/patches/spice-CVE-2017-7506.patch +++ /dev/null @@ -1,158 +0,0 @@ -Fix CVE-2017-7506: - -https://bugzilla.redhat.com/show_bug.cgi?id=1452606 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7506 - -Patches copied from Debian spice package version -'spice_0.12.8-2.1+deb9u1.debian.tar.xz': -http://security.debian.org/debian-security/pool/updates/main/s/spice/spice_0.12.8-2.1+deb9u1.debian.tar.xz - -The patches had to be adapted to apply to the latest spice tarball, and -are based on these upstream commits: - -https://cgit.freedesktop.org/spice/spice/commit/?id=111ab38611cef5012f1565a65fa2d8a8a05cce37 -https://cgit.freedesktop.org/spice/spice/commit/?id=571cec91e71c2aae0d5f439ea2d8439d0c3d75eb -https://cgit.freedesktop.org/spice/spice/commit/?id=fbbcdad773e2791cfb988f4748faa41943551ca6 - -From 257f69d619fed407493156c8a7b952abc8a51314 Mon Sep 17 00:00:00 2001 -Date: Mon, 15 May 2017 15:57:28 +0100 -Subject: [spice-server 1/3] reds: Disconnect when receiving overly big - ClientMonitorsConfig - -Total message size received from the client was unlimited. There is -a 2kiB size check on individual agent messages, but the MonitorsConfig -message can be split in multiple chunks, and the size of the -non-chunked MonitorsConfig message was never checked. This could easily -lead to memory exhaustion on the host. - ---- - server/reds.c | 25 +++++++++++++++++++++++-- - 1 file changed, 23 insertions(+), 2 deletions(-) - -diff --git a/server/reds.c b/server/reds.c -index f439a3668..7be85fdfc 100644 ---- a/server/reds.c -+++ b/server/reds.c -@@ -993,19 +993,34 @@ static void reds_client_monitors_config_cleanup(void) - static void reds_on_main_agent_monitors_config( - MainChannelClient *mcc, void *message, size_t size) - { -+ const unsigned int MAX_MONITORS = 256; -+ const unsigned int MAX_MONITOR_CONFIG_SIZE = -+ sizeof(VDAgentMonitorsConfig) + MAX_MONITORS * sizeof(VDAgentMonConfig); -+ - VDAgentMessage *msg_header; - VDAgentMonitorsConfig *monitors_config; - RedsClientMonitorsConfig *cmc = &reds->client_monitors_config; - -+ // limit size of message sent by the client as this can cause a DoS through -+ // memory exhaustion, or potentially some integer overflows -+ if (sizeof(VDAgentMessage) + MAX_MONITOR_CONFIG_SIZE - cmc->buffer_size < size) { -+ goto overflow; -+ } - cmc->buffer_size += size; - cmc->buffer = realloc(cmc->buffer, cmc->buffer_size); - spice_assert(cmc->buffer); - cmc->mcc = mcc; - memcpy(cmc->buffer + cmc->buffer_pos, message, size); - cmc->buffer_pos += size; -+ if (sizeof(VDAgentMessage) > cmc->buffer_size) { -+ spice_debug("not enough data yet. %d", cmc->buffer_size); -+ return; -+ } - msg_header = (VDAgentMessage *)cmc->buffer; -- if (sizeof(VDAgentMessage) > cmc->buffer_size || -- msg_header->size > cmc->buffer_size - sizeof(VDAgentMessage)) { -+ if (msg_header->size > MAX_MONITOR_CONFIG_SIZE) { -+ goto overflow; -+ } -+ if (msg_header->size > cmc->buffer_size - sizeof(VDAgentMessage)) { - spice_debug("not enough data yet. %d", cmc->buffer_size); - return; - } -@@ -1013,6 +1028,12 @@ static void reds_on_main_agent_monitors_config( - spice_debug("%s: %d", __func__, monitors_config->num_of_monitors); - red_dispatcher_client_monitors_config(monitors_config); - reds_client_monitors_config_cleanup(); -+ return; -+ -+overflow: -+ spice_warning("received invalid MonitorsConfig request from client, disconnecting"); -+ red_channel_client_disconnect(main_channel_client_get_base(mcc)); -+ reds_client_monitors_config_cleanup(); - } - - void reds_on_main_agent_data(MainChannelClient *mcc, void *message, size_t size) --- -2.13.0 -From ff2b4ef70181087d5abd50bad76d026ec5088a93 Mon Sep 17 00:00:00 2001 -Date: Mon, 15 May 2017 15:57:28 +0100 -Subject: [spice-server 2/3] reds: Avoid integer overflows handling monitor - configuration - -Avoid VDAgentMessage::size integer overflows. - ---- - server/reds.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/server/reds.c b/server/reds.c -index 7be85fdfc..e1c8c1086 100644 ---- a/server/reds.c -+++ b/server/reds.c -@@ -1024,6 +1024,9 @@ static void reds_on_main_agent_monitors_config( - spice_debug("not enough data yet. %d", cmc->buffer_size); - return; - } -+ if (msg_header->size < sizeof(VDAgentMonitorsConfig)) { -+ goto overflow; -+ } - monitors_config = (VDAgentMonitorsConfig *)(cmc->buffer + sizeof(*msg_header)); - spice_debug("%s: %d", __func__, monitors_config->num_of_monitors); - red_dispatcher_client_monitors_config(monitors_config); --- -2.13.0 -From 8cc3d7df2792751939cc832f4110c57e2addfca5 Mon Sep 17 00:00:00 2001 -Date: Mon, 15 May 2017 15:57:28 +0100 -Subject: [spice-server 3/3] reds: Avoid buffer overflows handling monitor - configuration - -It was also possible for a malicious client to set -VDAgentMonitorsConfig::num_of_monitors to a number larger -than the actual size of VDAgentMOnitorsConfig::monitors. -This would lead to buffer overflows, which could allow the guest to -read part of the host memory. This might cause write overflows in the -host as well, but controlling the content of such buffers seems -complicated. - ---- - server/reds.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/server/reds.c b/server/reds.c -index e1c8c1086..3a42c3755 100644 ---- a/server/reds.c -+++ b/server/reds.c -@@ -1000,6 +1000,7 @@ static void reds_on_main_agent_monitors_config( - VDAgentMessage *msg_header; - VDAgentMonitorsConfig *monitors_config; - RedsClientMonitorsConfig *cmc = &reds->client_monitors_config; -+ uint32_t max_monitors; - - // limit size of message sent by the client as this can cause a DoS through - // memory exhaustion, or potentially some integer overflows -@@ -1028,6 +1029,12 @@ static void reds_on_main_agent_monitors_config( - goto overflow; - } - monitors_config = (VDAgentMonitorsConfig *)(cmc->buffer + sizeof(*msg_header)); -+ // limit the monitor number to avoid buffer overflows -+ max_monitors = (msg_header->size - sizeof(VDAgentMonitorsConfig)) / -+ sizeof(VDAgentMonConfig); -+ if (monitors_config->num_of_monitors > max_monitors) { -+ goto overflow; -+ } - spice_debug("%s: %d", __func__, monitors_config->num_of_monitors); - red_dispatcher_client_monitors_config(monitors_config); - reds_client_monitors_config_cleanup(); --- -2.13.0 diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm index 7d49f90be9..10f7c6bc57 100644 --- a/gnu/packages/spice.scm +++ b/gnu/packages/spice.scm @@ -203,20 +203,15 @@ (define-public spice-gtk (define-public spice (package (name "spice") - (version "0.12.8") + (version "0.14.0") (source (origin (method url-fetch) (uri (string-append - "http://www.spice-space.org/download/releases/" + "https://www.spice-space.org/download/releases/" "spice-" version ".tar.bz2")) (sha256 (base32 - "0za03i77j8i3g5l2np2j7vy8cqsdbkm9wbv4hjnaqq9xhz2sa0gr")) - (patches - (search-patches "spice-CVE-2017-7506.patch" - "spice-CVE-2016-9577.patch" - "spice-CVE-2016-9578-1.patch" - "spice-CVE-2016-9578-2.patch")))) + "0j5q7cp5p95jk8fp48gz76rz96lifimdsx1wnpmfal0nnnar9nrs")))) (build-system gnu-build-system) (propagated-inputs `(("openssl" ,openssl) @@ -228,6 +223,7 @@ (define-public spice ("libjpeg-turbo" ,libjpeg-turbo) ("lz4" ,lz4) ("opus" ,opus) + ("orc" ,orc) ("zlib" ,zlib))) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From a64d9d56a3d32985c43c9f0fd7829bb105a7bee2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 4 Dec 2017 12:39:37 +0100 Subject: gnu: mbedtls-apache: Build shared library. * gnu/packages/tls.scm (mbedtls-apache)[arguments]: Enable building of shared library. --- gnu/packages/tls.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 23b5cc9931..d8cc1ccbc2 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -815,6 +815,9 @@ (define-public mbedtls-apache (base32 "11wnj34rfqxjggmdgf042i49lr6civgbqwv2p7p8bn6k2919vg4r")))) (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DUSE_SHARED_MBEDTLS_LIBRARY=ON"))) (native-inputs `(("perl" ,perl))) (synopsis "Small TLS library") -- cgit v1.2.3 From 80e2524c9a6ff4a1e89099c09627e35c5b0d2e7a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 4 Dec 2017 12:40:38 +0100 Subject: gnu: Add bctoolbox. * gnu/packages/telephony.scm (bctoolbox): New variable. --- gnu/packages/telephony.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 5df5e9e4ab..6fd40d6179 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Lukas Gradl ;;; Copyright © 2016 Francesco Frassinelli ;;; Copyright © 2016, 2017 ng0 +;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ (define-module (gnu packages telephony) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages boost) + #:use-module (gnu packages check) #:use-module (gnu packages protobuf) #:use-module (gnu packages gnupg) #:use-module (gnu packages linux) @@ -247,6 +249,29 @@ (define-public libsrtp (home-page "https://github.com/cisco/libsrtp") (license license:bsd-3))) +(define-public bctoolbox + (package + (name "bctoolbox") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/linphone/bctoolbox/bctoolbox-" + version ".tar.gz")) + (sha256 + (base32 + "14ivv6bh6qywys6yyb34scy9w78d636xl1f7cyxm3gwx2qv71lx5")))) + (build-system gnu-build-system) + (arguments '(#:make-flags '("CFLAGS=-fPIC"))) + (native-inputs + `(("cunit" ,cunit))) + (inputs + `(("mbedtls" ,mbedtls-apache))) + (home-page "https://www.linphone.org") + (synopsis "Utilities library for linphone software") + (description "BCtoolbox is a utilities library used by Belledonne +Communications softwares like linphone.") + (license license:gpl2+))) + (define-public libiax2 (let ((commit "0e5980f1d78ce462e2d1ed6bc39ff35c8341f201")) ;; This is the commit used by the Ring Project. -- cgit v1.2.3 From 0c45a6a4c85d5cef12973714a26f478832533425 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 4 Dec 2017 12:41:01 +0100 Subject: gnu: Add ortp. * gnu/packages/telephony.scm (ortp): New variable. --- gnu/packages/telephony.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 6fd40d6179..cf1ab93c39 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -272,6 +272,29 @@ (define-public bctoolbox Communications softwares like linphone.") (license license:gpl2+))) +(define-public ortp + (package + (name "ortp") + (version "0.27.0") + (source (origin + (method url-fetch) + (uri (string-append "https://download.savannah.nongnu.org/" + "releases/linphone/ortp/sources/ortp-" + version ".tar.gz")) + (sha256 + (base32 + "1by0dqdqrj5avzcvjws30g8v5sa61wj12x00sxw0kn1smcrshqgb")))) + (build-system gnu-build-system) + (inputs + `(("bctoolbox" ,bctoolbox))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://linphone.org/") + (synopsis "Implementation of the Real-time transport protocol") + (description "oRTP is a library implementing the Real-time transport +protocol (RFC 3550).") + (license license:lgpl2.1+))) + (define-public libiax2 (let ((commit "0e5980f1d78ce462e2d1ed6bc39ff35c8341f201")) ;; This is the commit used by the Ring Project. -- cgit v1.2.3 From dba33ca3da618552f296517ef099da36e61f40bd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 4 Dec 2017 12:41:27 +0100 Subject: gnu: Add bluez-alsa. * gnu/packages/audio.scm (bluez-alsa): New variable. --- gnu/packages/audio.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 8e0ad0a874..37e9826519 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -63,6 +63,7 @@ (define-module (gnu packages audio) #:use-module (gnu packages image) #:use-module (gnu packages ncurses) #:use-module (gnu packages qt) + #:use-module (gnu packages libbsd) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages mp3) ;taglib @@ -72,6 +73,7 @@ (define-module (gnu packages audio) #:use-module (gnu packages python) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) + #:use-module (gnu packages telephony) #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages vim) ;xxd @@ -3028,6 +3030,53 @@ (define-public python-pyalsaaudio (define-public python2-pyalsaaudio (package-with-python2 python-pyalsaaudio)) +(define-public bluez-alsa + (package + (name "bluez-alsa") + (version "1.2.0") + (source (origin + ;; The tarballs are mere snapshots and don't contain a + ;; bootstrapped build system. + (method git-fetch) + (uri (git-reference + (url "https://github.com/Arkq/bluez-alsa.git") + (commit (string-append "v" version)))) + (sha256 + (base32 + "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vif"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("bluez" ,bluez) + ("glib" ,glib) + ("libbsd" ,libbsd) + ("ncurses" ,ncurses) + ("ortp" ,ortp) + ("sbc" ,sbc))) + (home-page "https://github.com/Arkq/bluez-alsa") + (synopsis "Bluetooth ALSA backend") + (description "This project is a rebirth of a direct integration between +Bluez and ALSA. Since Bluez >= 5, the build-in integration has been removed +in favor of 3rd party audio applications. From now on, Bluez acts as a +middleware between an audio application, which implements Bluetooth audio +profile, and a Bluetooth audio device. BlueALSA registers all known Bluetooth +audio profiles in Bluez, so in theory every Bluetooth device (with audio +capabilities) can be connected. In order to access the audio stream, one has +to connect to the ALSA PCM device called @code{bluealsa}. The device is based +on the ALSA software PCM plugin.") + (license license:expat))) + (define-public snd (package (name "snd") -- cgit v1.2.3 From 1fa37d1b55b1d25a9d20c7b50a531b763e7a1398 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 4 Dec 2017 22:25:27 +0200 Subject: gnu: bluez-alsa: Add missing file-name field. * gnu/packages/audio.scm (bluez-alsa)[source]: Add file-name field. --- gnu/packages/audio.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 37e9826519..4f6e4a4095 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -3041,6 +3041,7 @@ (define-public bluez-alsa (uri (git-reference (url "https://github.com/Arkq/bluez-alsa.git") (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x")))) -- cgit v1.2.3 From 43925703e851d9058823b70cbe67b7169558c0a9 Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Sat, 25 Feb 2017 12:20:34 +0000 Subject: gnu: Add libmygpo-qt. * gnu/packages/music.scm (libmygpo-qt): New variable. * gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Ricardo Wurmus --- gnu/local.mk | 1 + gnu/packages/music.scm | 27 ++++++++++++++ .../patches/libmygpo-qt-fix-jsoncreatortest.patch | 41 ++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch diff --git a/gnu/local.mk b/gnu/local.mk index 856ade412c..b7bf36416e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -822,6 +822,7 @@ dist_patch_DATA = \ %D%/packages/patches/libmad-armv7-thumb-pt2.patch \ %D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \ + %D%/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \ %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ %D%/packages/patches/libsndfile-CVE-2017-8362.patch \ diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 173fdfaad1..886c9bac29 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3407,3 +3407,30 @@ (define-public libechonest designed to make a developer's life easy when trying to use the APIs provided by The Echo Nest.") (license license:gpl2+))) + +(define-public libmygpo-qt + (package + (name "libmygpo-qt") + (version "1.0.9") + (source (origin + (method url-fetch) + (uri (string-append "http://stefan.derkits.at/files/" + "libmygpo-qt/libmygpo-qt." version ".tar.gz")) + (sha256 + (base32 + "1wsgh2vjnd52rkvpncj1ycpbp84sj9hh12ija46b42z9mmqf2jm4")) + (patches + (search-patches "libmygpo-qt-fix-jsoncreatortest.patch")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DBUILD_WITH_QT4=OFF"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("qt" ,qtbase))) + (home-page "http://wiki.gpodder.org/wiki/Libmygpo-qt") + (synopsis "Qt/C++ library wrapping the gpodder web service") + (description "@code{libmygpo-qt} is a Qt/C++ library wrapping the +@url{https://gpodder.net} APIs. It allows applications to discover, manage +and track podcasts.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch b/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch new file mode 100644 index 0000000000..c457d592cc --- /dev/null +++ b/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch @@ -0,0 +1,41 @@ +From ebe2323727f8d646590245b0bf06dbc92b5808d6 Mon Sep 17 00:00:00 2001 +From: Golubev Alexander +Date: Tue, 20 Sep 2016 15:33:30 +0400 +Subject: [PATCH] JsonCreatorTest failed due to extra space + +JsonCreatorTest failed with next message: +``` +********* Start testing of mygpo::JsonCreatorTest ********* +Config: Using QTest library 4.8.6, Qt 4.8.6 +PASS : mygpo::JsonCreatorTest::initTestCase() +PASS : mygpo::JsonCreatorTest::testAddRemoveSubsToJSON() +PASS : mygpo::JsonCreatorTest::testSaveSettingsToJSON() +FAIL! : mygpo::JsonCreatorTest::testEpisodeActionListToJSON() Compared values are not the same + Actual (outString2): [{"action":"download","device":"device1","episode":"http://episode.url","podcast":"http://podcast.url","timestamp":"1998-01-01T00:01:02"},{"action":"delete","device":"device3","episode":"http://episode2.url","podcast":"http://podcast2.url","timestamp":"1920-01-01T12:01:02"},{"action":"new","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","timestamp":"1998-01-01T00:01:02"},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","timestamp":"1920-01-01T12:01:02"},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","position":123,"started":10,"timestamp":"1998-01-01T00:01:02","total":321},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","position":10,"timestamp":"1998-01-01T00:01:02"}] + Expected (expected2): [{"action":"download","device":"device1","episode":"http://episode.url","podcast":"http: + Loc: [/var/tmp/portage/media-libs/libmygpo-qt-1.0.9-r1/work/libmygpo-qt-1.0.9/tests/JsonCreatorTest.cpp(138)] +PASS : mygpo::JsonCreatorTest::testRenameDeviceStringToJSON() +PASS : mygpo::JsonCreatorTest::testDeviceSynchronizationListsToJSON() +PASS : mygpo::JsonCreatorTest::cleanupTestCase() +Totals: 6 passed, 1 failed, 0 skipped +********* Finished testing of mygpo::JsonCreatorTest ********* +``` + +This was caused by extra space in the expected string. +--- + tests/JsonCreatorTest.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/JsonCreatorTest.cpp b/tests/JsonCreatorTest.cpp +index b15b006..feb03d5 100644 +--- a/tests/JsonCreatorTest.cpp ++++ b/tests/JsonCreatorTest.cpp +@@ -133,7 +133,7 @@ void JsonCreatorTest::testEpisodeActionListToJSON() + + output = JsonCreator::episodeActionListToJSON(episodeActions); + QString outString2 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") ); +- QString expected2( QLatin1String( "[{\"action\":\"download\",\"device\":\"device1\",\"episode\":\"http://episode.url\",\"podcast\":\"http://podcast.url\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"delete\",\"device\":\"device3\",\"episode\":\"http://episode2.url\",\"podcast\":\"http://podcast2.url\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"new\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1920-01-01T12:01:02\" },{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":123,\"started\":10,\"timestamp\":\"1998-01-01T00:01:02\",\"total\":321},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":10,\"timestamp\":\"1998-01-01T00:01:02\"}]" ) ); ++ QString expected2( QLatin1String( "[{\"action\":\"download\",\"device\":\"device1\",\"episode\":\"http://episode.url\",\"podcast\":\"http://podcast.url\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"delete\",\"device\":\"device3\",\"episode\":\"http://episode2.url\",\"podcast\":\"http://podcast2.url\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"new\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":123,\"started\":10,\"timestamp\":\"1998-01-01T00:01:02\",\"total\":321},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":10,\"timestamp\":\"1998-01-01T00:01:02\"}]" ) ); + + QCOMPARE(outString2, expected2 ); + } -- cgit v1.2.3 From d20b7384b78539236cf7ba02f61c288e5a2dcf85 Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Wed, 25 Oct 2017 19:57:11 +0100 Subject: gnu: Add clementine. * gnu/packages/music.scm (clementine): New variable. * gnu/packages/patches/clementine-use-openssl.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Co-authored-by: Ricardo Wurmus --- gnu/local.mk | 1 + gnu/packages/music.scm | 114 ++++++++++++++++++++++ gnu/packages/patches/clementine-use-openssl.patch | 67 +++++++++++++ 3 files changed, 182 insertions(+) create mode 100644 gnu/packages/patches/clementine-use-openssl.patch diff --git a/gnu/local.mk b/gnu/local.mk index b7bf36416e..c75f1f90d8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -573,6 +573,7 @@ dist_patch_DATA = \ %D%/packages/patches/chmlib-inttypes.patch \ %D%/packages/patches/clang-libc-search-path.patch \ %D%/packages/patches/clang-3.8-libc-search-path.patch \ + %D%/packages/patches/clementine-use-openssl.patch \ %D%/packages/patches/clisp-remove-failing-test.patch \ %D%/packages/patches/clucene-pkgconfig.patch \ %D%/packages/patches/clx-remove-demo.patch \ diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 886c9bac29..479b4f9b2d 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -56,8 +56,11 @@ (define-module (gnu packages music) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) + #:use-module (gnu packages databases) + #:use-module (gnu packages datastructures) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages emacs) @@ -75,12 +78,14 @@ (define-module (gnu packages music) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages graphics) + #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages java) #:use-module (gnu packages libffi) + #:use-module (gnu packages libusb) #:use-module (gnu packages linux) ; for alsa-utils #:use-module (gnu packages lirc) #:use-module (gnu packages llvm) @@ -93,6 +98,7 @@ (define-module (gnu packages music) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages protobuf) #:use-module (gnu packages pulseaudio) ;libsndfile #:use-module (gnu packages python) #:use-module (gnu packages python-web) @@ -179,6 +185,114 @@ (define-public aria-maestosa score, keyboard, guitar, drum and controller views.") (license license:gpl3+))) +;; We don't use the latest release because it depends on Qt4. Instead we +;; download the sources from the tip of the "qt5" branch. +(define-public clementine + (let ((commit "0a59257dc334b8df60a4d7d90b04f1766747efcf") + (revision "1")) + (package + (name "clementine") + (version (string-append "1.3.1-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/clementine-player/Clementine.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0cdcj7di7j9jgzc1ihjna1a5df64f9hnmx7b9kh8rlg76hc0l0hi")) + (modules '((guix build utils))) + (snippet + '(for-each + (lambda (dir) + (delete-file-recursively + (string-append "3rdparty/" dir))) + (list + ;; TODO: The following dependencies are still bundled: + ;; - "qxt": Appears to be unmaintained upstream. + ;; - "qsqlite" + ;; - "qtsingleapplication" + ;; - "qocoa" + ;; - "qtiocompressor" + ;; - "gmock": The tests crash when using our googletest + ;; package instead of the bundled gmock. + "SPMediaKeyTap" + "fancytabwidget" + "google-breakpad" + "libmygpo-qt" + "libmygpo-qt5" + "libprojectm" + "qtwin" + "sha2" ;; Replaced by openssl. + "taglib" + "tinysvcmdns"))) + (patches (search-patches "clementine-use-openssl.patch")))) + (build-system cmake-build-system) + (arguments + '(#:test-target "clementine_test" + #:configure-flags + (let ((crypto (assoc-ref %build-inputs "crypto++"))) + (list "-DENABLE_VISUALISATIONS=OFF" ; requires unpackaged "projectm" + "-DCRYPTOPP_FOUND=TRUE" + (string-append "-DCRYPTOPP_INCLUDE_DIRS=" crypto "/include") + (string-append "-DCRYPTOPP_LIBRARY_DIRS=" crypto "/lib") + (string-append "-DCRYPTOPP_LIBRARIES=" crypto "/lib/libcryptopp.a") + "-DUSE_SYSTEM_SHA2=TRUE")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))) + (wrap-program (string-append out "/bin/clementine") + `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))) + #t)))))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config) + ("qtlinguist" ,qttools))) + (inputs + `(("boost" ,boost) + ("chromaprint" ,chromaprint) + ("crypto++" ,crypto++) + ("fftw" ,fftw) + ("glib" ,glib) + ("glu" ,glu) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ("libcdio" ,libcdio) + ("libmygpo-qt" ,libmygpo-qt) + ("libechonest" ,libechonest) + ;; TODO: Package libgpod. + ("libmtp" ,libmtp) + ("libxml2" ,libxml2) + ("openssl" ,openssl) + ("protobuf" ,protobuf) + ("pulseaudio" ,pulseaudio) + ("qtbase" ,qtbase) + ("qtx11extras" ,qtx11extras) + ("qtwebkit" ,qtwebkit) + ("sqlite" ,sqlite-with-fts3) + ("sparsehash" ,sparsehash) + ("taglib" ,taglib))) + (home-page "http://clementine-player.org") + (synopsis "Music player and library organizer") + (description "Clementine is a multiplatform music player. It is inspired +by Amarok 1.4, focusing on a fast and easy-to-use interface for searching and +playing your music.") + (license (list + ;; clementine and qtiocompressor are under GPLv3. + license:gpl3+ + ;; gmock is under BSD-3. + license:bsd-3 + ;; qxt is under CPL1.0. + license:cpl1.0 + ;; qsqlite and qtsingleapplication are under LGPL2.1+. + license:lgpl2.1+ + ;; qocoa is under MIT and CC by-sa for the icons. + license:cc-by-sa3.0))))) + (define-public cmus (package (name "cmus") diff --git a/gnu/packages/patches/clementine-use-openssl.patch b/gnu/packages/patches/clementine-use-openssl.patch new file mode 100644 index 0000000000..1fbf3d2b8a --- /dev/null +++ b/gnu/packages/patches/clementine-use-openssl.patch @@ -0,0 +1,67 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4022c383b..3202b8b69 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -83,6 +83,7 @@ pkg_check_modules(LIBPULSE libpulse) + pkg_check_modules(LIBXML libxml-2.0) + pkg_check_modules(SPOTIFY libspotify>=12.1.45) + pkg_check_modules(TAGLIB REQUIRED taglib>=1.6) ++pkg_check_modules(OPENSSL REQUIRED openssl) + + if (WIN32) + find_package(ZLIB REQUIRED) +@@ -381,20 +382,6 @@ if(GMOCK_INCLUDE_DIRS) + endif(GTEST_INCLUDE_DIRS) + endif(GMOCK_INCLUDE_DIRS) + +-# Use the system's sha2 if it's available. +-find_path(SHA2_INCLUDE_DIRS sha2.h) +-find_library(SHA2_LIBRARIES sha2) +-if(SHA2_LIBRARIES AND SHA2_INCLUDE_DIRS) +- message(STATUS "Using system sha2 library") +- set(USE_SYSTEM_SHA2 ON) +-else() +- message(STATUS "Using builtin sha2 library") +- set(USE_SYSTEM_SHA2 OFF) +- add_subdirectory(3rdparty/sha2) +- set(SHA2_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/sha2) +- set(SHA2_LIBRARIES sha2) +-endif() +- + # Use the system libmygpo-qt5 if a recent enough version was found + if(LIBMYGPO_QT5_FOUND) + set(MYGPOQT5_LIBRARIES ${LIBMYGPO_QT5_LIBRARIES}) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 6e24c9726..104d044d9 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -29,7 +29,6 @@ include_directories(${LIBPROJECTM_INCLUDE_DIRS}) + include_directories(${QTSINGLEAPPLICATION_INCLUDE_DIRS}) + include_directories(${QTIOCOMPRESSOR_INCLUDE_DIRS}) + include_directories(${QXT_INCLUDE_DIRS}) +-include_directories(${SHA2_INCLUDE_DIRS}) + include_directories(${CHROMAPRINT_INCLUDE_DIRS}) + include_directories(${MYGPOQT5_INCLUDE_DIRS}) + +@@ -1223,7 +1222,7 @@ target_link_libraries(clementine_lib + libclementine-common + libclementine-tagreader + libclementine-remote +- ${SHA2_LIBRARIES} ++ ${OPENSSL_LIBRARIES} + ${TAGLIB_LIBRARIES} + ${MYGPOQT5_LIBRARIES} + ${CHROMAPRINT_LIBRARIES} +diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp +index ce76f22da..80bf623fb 100644 +--- a/src/core/utilities.cpp ++++ b/src/core/utilities.cpp +@@ -52,7 +52,7 @@ + #include "config.h" + #include "timeconstants.h" + +-#include "sha2.h" ++#include + + #if defined(Q_OS_UNIX) + #include -- cgit v1.2.3 From 3433e359e447006dc4cd5ccacd4657192d54550b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 04:11:10 +0100 Subject: gnu: ghc-base-compat: Update to 0.9.3. * gnu/packages/haskell.scm (ghc-base-compat): Update to 0.9.3. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 4804f1b5f8..83b673a4ff 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3451,7 +3451,7 @@ (define-public ghc-byteorder (define-public ghc-base-compat (package (name "ghc-base-compat") - (version "0.8.2") + (version "0.9.3") (source (origin (method url-fetch) @@ -3461,7 +3461,7 @@ (define-public ghc-base-compat ".tar.gz")) (sha256 (base32 - "02m93hzgxg4bcnp7xcc2fdh2hrsc2h6fwl8hix5nx9k864kwf41q")))) + "0452l6zf6fjhy4kxqwv6i6hhg6yfx4wcg450k3axpyj30l7jnq3x")))) (build-system haskell-build-system) (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck) -- cgit v1.2.3 From 2545c92ae5c56a88637c1b86a6ff89b692c212f9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 06:38:28 +0100 Subject: gnu: ghc-bytestring: Update to 0.10.8.2 * gnu/packages/haskell.scm (ghc-bytestring): Update to 0.10.8.2 --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 83b673a4ff..a1e62590d6 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5880,7 +5880,7 @@ (define-public ghc-monads-tf (define-public ghc-bytestring (package (name "ghc-bytestring") - (version "0.10.8.1") + (version "0.10.8.2") (source (origin (method url-fetch) @@ -5889,7 +5889,7 @@ (define-public ghc-bytestring version ".tar.gz")) (sha256 (base32 - "16zwb1p83z7vc5wlhvknpy80b5a2jxc5awx67rk52qnp9idmyq9d")))) + "0fjc5ybxx67l0kh27l6vq4saf88hp1wnssj5ka90ii588y76cvys")))) (build-system haskell-build-system) (inputs `(("ghc-random" ,ghc-random) -- cgit v1.2.3 From df906169d6c6d44da4ac9e00a9c31fa7d930b490 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Dec 2017 16:46:06 +0100 Subject: gnu: ghc-bytestring: Alphabetise inputs. * gnu/packages/haskell.scm (ghc-bytestring)[inputs]: Order alphabetically. --- gnu/packages/haskell.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a1e62590d6..ac22da47ee 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5892,15 +5892,15 @@ (define-public ghc-bytestring "0fjc5ybxx67l0kh27l6vq4saf88hp1wnssj5ka90ii588y76cvys")))) (build-system haskell-build-system) (inputs - `(("ghc-random" ,ghc-random) + `(("ghc-dlist" ,ghc-dlist) + ("ghc-byteorder" ,ghc-byteorder) + ("ghc-hunit" ,ghc-hunit) + ("ghc-mtl" ,ghc-mtl) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) ("ghc-test-framework" ,ghc-test-framework) ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) - ("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) - ("ghc-hunit" ,ghc-hunit) - ("ghc-byteorder" ,ghc-byteorder) - ("ghc-dlist" ,ghc-dlist) - ("ghc-mtl" ,ghc-mtl))) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit))) (arguments `(#:tests? #f)) ; Test number two becomes non-responsive for 20+ minutes (home-page "https://github.com/haskell/bytestring") -- cgit v1.2.3 From 934dc8d2e4d3abd613b96525e528a4e8dbae9b92 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 07:55:39 +0100 Subject: gnu: ghc-bytestring-builder: Update to 0.10.8.1.0. * gnu/packages/haskell.scm (ghc-bytestring-builder): Update to 0.10.8.1.0. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index ac22da47ee..ec505cff63 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3764,7 +3764,7 @@ (define-public ghc-charset (define-public ghc-bytestring-builder (package (name "ghc-bytestring-builder") - (version "0.10.6.0.0") + (version "0.10.8.1.0") (source (origin (method url-fetch) @@ -3773,7 +3773,7 @@ (define-public ghc-bytestring-builder "/bytestring-builder-" version ".tar.gz")) (sha256 (base32 - "1mkg24zl0rapb3gqzkyj5ibp07wx3yzd72hmfczssl0is63rjhww")))) + "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d")))) (build-system haskell-build-system) (arguments `(#:haddock? #f)) ; Package contains no documentation. (home-page "https://hackage.haskell.org/package/bytestring-builder") -- cgit v1.2.3 From 39bcc9328391c9e35856a6d4f1e4acac91498331 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 08:21:17 +0100 Subject: gnu: ghc-bytestring-handle: Update to 0.1.0.6. * gnu/packages/haskell.scm (ghc-bytestring-handle): Update to 0.1.0.6. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index ec505cff63..9cdde32e14 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5689,7 +5689,7 @@ (define-public ghc-sandi (define-public ghc-bytestring-handle (package (name "ghc-bytestring-handle") - (version "0.1.0.4") + (version "0.1.0.6") (source (origin (method url-fetch) @@ -5698,7 +5698,7 @@ (define-public ghc-bytestring-handle version ".tar.gz")) (sha256 (base32 - "0q5yzx90ad9w7qvaix05bynxwlsbqjrgfc4hqb355ibf991wd0rh")))) + "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y")))) (build-system haskell-build-system) (inputs `(("ghc-quickcheck" ,ghc-quickcheck) -- cgit v1.2.3 From 6bfcb59d0251472917058eb99927a96c293be7a6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Dec 2017 16:50:09 +0100 Subject: gnu: ghc-bytestring-handle: Alphabetise inputs. * gnu/packages/haskell.scm (ghc-bytestring-handle)[inputs]: Order alphabetically. --- gnu/packages/haskell.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9cdde32e14..8ee111f2e5 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5701,11 +5701,11 @@ (define-public ghc-bytestring-handle "18f17aja1ivhr3zyg2cccn2m03hdn5jf5410dndkhf12gvgiqs7y")))) (build-system haskell-build-system) (inputs - `(("ghc-quickcheck" ,ghc-quickcheck) - ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) - ("ghc-hunit" ,ghc-hunit) + `(("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-test-framework" ,ghc-test-framework) ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) - ("ghc-test-framework" ,ghc-test-framework))) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) (home-page "http://hub.darcs.net/ganesh/bytestring-handle") (synopsis "ByteString-backed Handles") (description "ByteString-backed Handles") ; There is no description -- cgit v1.2.3 From 2c72272a500682f7d79e7319b48078b1ab6d0133 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 12:34:23 +0100 Subject: gnu: ghc-chasingbottoms: Update to 1.3.1.3. * gnu/packages/haskell.scm (ghc-chasingbottoms): Update to 1.3.1.3. [source]: Remove snippet and its modules. --- gnu/packages/haskell.scm | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 8ee111f2e5..7e665e1af5 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2870,7 +2870,7 @@ (define-public ghc-fgl (define-public ghc-chasingbottoms (package (name "ghc-chasingbottoms") - (version "1.3.0.13") + (version "1.3.1.3") (source (origin (method url-fetch) @@ -2878,14 +2878,7 @@ (define-public ghc-chasingbottoms "ChasingBottoms-" version ".tar.gz")) (sha256 (base32 - "1fb86jd6cdz4rx3fj3r9n8d60kx824ywwy7dw4qnrdran46ja3pl")) - (modules '((guix build utils))) - (snippet - ;; The Hackage page and the cabal file linked there for this package - ;; both list 0.7 as the upper version limit, but the source tarball - ;; specifies 0.6. Assume the Hackage page is correct. - '(substitute* "ChasingBottoms.cabal" - (("syb >= 0.1.0.2 && < 0.6") "syb >= 0.1.0.2 && < 0.7"))))) + "04jwwjs22mqc4hvpp4c3gpb79inrrq5sapks5khknspv2hslm61q")))) (build-system haskell-build-system) (inputs `(("ghc-mtl" ,ghc-mtl) -- cgit v1.2.3 From 751de3d65cf9872cf94ff0b1c7aa64349656a366 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Dec 2017 17:09:44 +0100 Subject: gnu: ghc-cheapskate: Alphabetise inputs. * gnu/packages/haskell.scm (ghc-cheapskate)[inputs]: Order alphabetically. --- gnu/packages/haskell.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 7e665e1af5..288b510863 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3944,17 +3944,17 @@ (define-public ghc-cheapskate "0drx1hlqvdcrij4097q6bxhbfcqm73jsqv1wwhd3hsnjdmr46ch2")))) (build-system haskell-build-system) (inputs - `(("ghc-xss-sanitize" ,ghc-xss-sanitize) + `(("ghc-aeson" ,ghc-aeson) + ("ghc-blaze-html" ,ghc-blaze-html) ("ghc-data-default" ,ghc-data-default) + ("ghc-http-types" ,ghc-http-types) ("ghc-mtl" ,ghc-mtl) - ("ghc-text" ,ghc-text) - ("ghc-blaze-html" ,ghc-blaze-html) ("ghc-syb" ,ghc-syb) + ("ghc-text" ,ghc-text) ("ghc-uniplate" ,ghc-uniplate) - ("ghc-aeson" ,ghc-aeson) ("ghc-wai-extra" ,ghc-wai-extra) ("ghc-wai" ,ghc-wai) - ("ghc-http-types" ,ghc-http-types))) + ("ghc-xss-sanitize" ,ghc-xss-sanitize))) (home-page "https://github.com/jgm/cheapskate") (synopsis "Experimental markdown processor") (description "Cheapskate is an experimental Markdown processor in pure -- cgit v1.2.3 From 4d9cdf3c4e81b42055628338c55196d05a812d21 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Dec 2017 17:10:27 +0100 Subject: gnu: ghc-cheapskate: Expand description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-cheapskate)[description]: Define ‘XSS’. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 288b510863..ccf7c07f32 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3960,8 +3960,8 @@ (define-public ghc-cheapskate (description "Cheapskate is an experimental Markdown processor in pure Haskell. It aims to process Markdown efficiently and in the most forgiving possible way. It is designed to deal with any input, including garbage, with -linear performance. Output is sanitized by default for protection against XSS -attacks.") +linear performance. Output is sanitized by default for protection against +cross-site scripting (@dfn{XSS}) attacks.") (license license:bsd-3))) (define-public ghc-bifunctors -- cgit v1.2.3 From 615abb9550f2f48f2020cf9f962bf31ad0a18f18 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 12:54:04 +0100 Subject: gnu: ghc-clock: Update to 0.7.2. * gnu/packages/haskell.scm (ghc-clock): Update to 0.7.2. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index ccf7c07f32..dd79c89f8c 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3710,7 +3710,7 @@ (define-public ghc-unbounded-delays (define-public ghc-clock (package (name "ghc-clock") - (version "0.5.1") + (version "0.7.2") (source (origin (method url-fetch) @@ -3719,7 +3719,7 @@ (define-public ghc-clock "clock/" "clock-" version ".tar.gz")) (sha256 - (base32 "1ncph7vi2q6ywwc8ysxl1ibw6i5dwfvln88ssfazk8jgpj4iyykw")))) + (base32 "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8")))) (build-system haskell-build-system) (inputs `(("ghc-tasty" ,ghc-tasty) -- cgit v1.2.3 From b84908566d69366b1ad260b83f0eed1b599b5552 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 15:49:12 +0100 Subject: gnu: ghc-cmark: Update to 0.5.6. * gnu/packages/haskell.scm (ghc-cmark): Update to 0.5.6. [description]: Update version information about bundled libcmark, and move it to a source comment. --- gnu/packages/haskell.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index dd79c89f8c..9cc1a1af3d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -4541,14 +4541,16 @@ (define-public ghc-highlighting-kate (define-public ghc-cmark (package (name "ghc-cmark") - (version "0.5.3.1") + (version "0.5.6") (source (origin (method url-fetch) + ;; XXX As of version 0.5.6, this package bundles libcmark 0.28.0. + ;; See cbits/cmark_version.h. (uri (string-append "https://hackage.haskell.org/package/" "cmark/cmark-" version ".tar.gz")) (sha256 (base32 - "09515h9b26az9c2mbl6l7azimaixa6yff8w359k0ml8jwykjvqaa")))) + "1c1j3a8b9qx5zk9myqm3gap8ymz7fipwrdmyfsq9wkkdr9x4np45")))) (build-system haskell-build-system) (inputs `(("ghc-text" ,ghc-text))) @@ -4559,8 +4561,8 @@ (define-public ghc-cmark (description "This package provides Haskell bindings for @uref{https://github.com/jgm/cmark, libcmark}, the reference parser for -CommonMark, a fully specified variant of Markdown. It includes sources for -libcmark (0.21.0) and does not require prior installation of the C library.") +CommonMark, a fully specified variant of Markdown. It includes bundled libcmark +sources, and does not require prior installation of the C library.") (license license:bsd-3))) (define-public ghc-executable-path -- cgit v1.2.3 From bfd2ebda71b28537f68d4486e7c26c6755811aea Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Dec 2017 20:19:23 +0100 Subject: gnu: ghc-cmdargs: Update to 0.10.18. * gnu/packages/haskell.scm (ghc-cmdargs): Update to 0.10.18. --- gnu/packages/haskell.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9cc1a1af3d..f7444ec108 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -829,17 +829,16 @@ (define-public ghc-cgi (define-public ghc-cmdargs (package (name "ghc-cmdargs") - (version "0.10.13") + (version "0.10.18") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/cmdargs/cmdargs-" - version - ".tar.gz")) + version ".tar.gz")) (sha256 (base32 - "0vmz7f0ssrqlp6wzmc0mjqj4qczfgk58g0lr0yz7jamamlgpq4b6")))) + "1lnmcsf6p9yrwwz1zvrw5lbc32xpff7b70yz4ylawaflnlz6wrlh")))) (build-system haskell-build-system) (home-page "http://community.haskell.org/~ndm/cmdargs/") -- cgit v1.2.3 From ab880e6e6c55577c8e80de67627d59f52b075c52 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 02:08:19 +0100 Subject: gnu: ghc-contravariant: Update to 1.4. * gnu/packages/haskell.scm (ghc-contravariant): Update to 1.4. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index f7444ec108..de81e40dcc 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -4026,7 +4026,7 @@ (define-public ghc-semigroupoids (define-public ghc-contravariant (package (name "ghc-contravariant") - (version "1.3.3") + (version "1.4") (source (origin (method url-fetch) @@ -4036,7 +4036,7 @@ (define-public ghc-contravariant ".tar.gz")) (sha256 (base32 - "184hcmhsznqrkmqlc1kza9pb5p591anva574ry8wrh81vqmhwfb5")))) + "117fff8kkrvlmr8cb2jpj71z7lf2pdiyks6ilyx89mry6zqnsrp1")))) (build-system haskell-build-system) (inputs `(("ghc-void" ,ghc-void) -- cgit v1.2.3 From 6d39aee5216b8bac8bf3059a62f84ed3dc3f1032 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 03:51:43 +0100 Subject: gnu: ghc-cookie: Update to 0.4.3. * gnu/packages/haskell-web.scm (ghc-cookie): Update to 0.4.3. --- gnu/packages/haskell-web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index bbbbfba53c..0d4129f8fc 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -65,7 +65,7 @@ (define-public ghc-tagsoup (define-public ghc-cookie (package (name "ghc-cookie") - (version "0.4.1.6") + (version "0.4.3") (source (origin (method url-fetch) @@ -75,7 +75,7 @@ (define-public ghc-cookie ".tar.gz")) (sha256 (base32 - "0b6ym6fn29p5az4dwydy036lxj131kagrmgb93w4bbkqfkds8b9s")))) + "0qpdydhb9gw590ffabqg70x7xvjpg8l74idqnrfbhv5yrr7hryzv")))) (build-system haskell-build-system) (inputs `(("ghc-old-locale" ,ghc-old-locale) -- cgit v1.2.3 From 59e08129666ab3fde11473ed71cfaf8f1539aac7 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 05:46:07 +0100 Subject: gnu: ghc-deepseq-generics: Update to 0.2.0.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-deepseq-generics): Update to 0.2.0.0. [arguments]: Delete ‘relax-ghc-prim-dependency’ phase. --- gnu/packages/haskell.scm | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index de81e40dcc..1024370fe8 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -4375,7 +4375,7 @@ (define-public ghc-boxes (define-public ghc-deepseq-generics (package (name "ghc-deepseq-generics") - (version "0.1.1.2") + (version "0.2.0.0") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -4383,16 +4383,8 @@ (define-public ghc-deepseq-generics version ".tar.gz")) (sha256 (base32 - "01pvigx8n9p8hwbzp2qiq6kzf7cxiam843jz2sjgliacmmp1v7l3")))) + "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh")))) (build-system haskell-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'relax-ghc-prim-dependency - (lambda _ - (substitute* "deepseq-generics.cabal" - (("< 0.4") "< 0.5")) - #t))))) (native-inputs `(("ghc-hunit" ,ghc-hunit) ("ghc-test-framework" ,ghc-test-framework) -- cgit v1.2.3 From b46ebdd86707c7946f77f420aeb1111f18bdb4c5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 06:32:31 +0100 Subject: gnu: ghc-directory: Update to 1.3.1.5. * gnu/packages/haskell.scm (ghc-directory): Update to 1.3.1.5. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 1024370fe8..8d3aca893a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5925,7 +5925,7 @@ (define-public ghc-colour (define-public ghc-directory (package (name "ghc-directory") - (version "1.2.7.0") + (version "1.3.1.5") (source (origin (method url-fetch) @@ -5934,7 +5934,7 @@ (define-public ghc-directory version ".tar.gz")) (sha256 (base32 - "0h3hrqskadmbigaxbz2k5xxjjjlmfaq2zdn2g7jh1wv9k6yrxraa")))) + "0zkqihmdfz7bzv3sxh1p9ijl4vra880kfy3qy9h96flq7d2if0f2")))) (build-system haskell-build-system) (home-page "http://hackage.haskell.org/package/directory") (synopsis "Platform-agnostic library for filesystem operations") -- cgit v1.2.3 From 7c0e5954931efadcf713395e8cb8ab9beaea6293 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 11:37:30 +0100 Subject: gnu: ghc-dlist: Update to 0.8.0.3. * gnu/packages/haskell.scm (ghc-dlist): Update to 0.8.0.3. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 8d3aca893a..1154af56df 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1387,7 +1387,7 @@ (define-public ghc-data-default-instances-old-locale (define-public ghc-dlist (package (name "ghc-dlist") - (version "0.7.1.2") + (version "0.8.0.3") (source (origin (method url-fetch) @@ -1396,7 +1396,7 @@ (define-public ghc-dlist version ".tar.gz")) (sha256 - (base32 "10rp96rryij7d8gz5kv8ygc6chm1624ck5mbnqs2a3fkdzqj2b9k")))) + (base32 "0brgai4vs7xz29p06kd6gzg5bpa8iy3k7yzgcc44izspd74q4rw7")))) (build-system haskell-build-system) (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) -- cgit v1.2.3 From 56aa945e1b95ef1a3842e73042a9fa867d36845e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 13:35:17 +0100 Subject: gnu: ghc-enclosed-exceptions: Update to 2.0.1. * gnu/packages/haskell.scm (ghc-enclosed-exceptions): Update to 2.0.1. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 1154af56df..5b3c1d5358 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -4581,7 +4581,7 @@ (define-public ghc-executable-path (define-public ghc-enclosed-exceptions (package (name "ghc-enclosed-exceptions") - (version "1.0.1.1") + (version "1.0.2") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -4589,7 +4589,7 @@ (define-public ghc-enclosed-exceptions version ".tar.gz")) (sha256 (base32 - "16ax1kqdsk4apg642qxkm2hf9vb5hzmkd14zmkxra8ssp8rn28z5")))) + "1wc9h6zdnb5impvvml6vnjapajjanw7zgpnzg7c0v7115nwfm6vv")))) (build-system haskell-build-system) (inputs `(("ghc-lifted-base" ,ghc-lifted-base) -- cgit v1.2.3 From 092ab12fc3e0fa4465b4a43748837cc75acdfdfb Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 18:55:12 +0100 Subject: gnu: ghc-exceptions: Update to 0.8.3. * gnu/packages/haskell.scm (ghc-exceptions): Update to 0.8.3. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 5b3c1d5358..c5bc8d19a9 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2646,7 +2646,7 @@ (define-public ghc-xml (define-public ghc-exceptions (package (name "ghc-exceptions") - (version "0.8.0.2") + (version "0.8.3") (source (origin (method url-fetch) @@ -2656,7 +2656,7 @@ (define-public ghc-exceptions ".tar.gz")) (sha256 (base32 - "1x1bk1jf42k1gigiqqmkkh38z2ffhx8rsqiszdq3f94m2h6kw2h7")))) + "1gl7xzffsqmigam6zg0jsglncgzxqafld2p6kb7ccp9xirzdjsjd")))) (build-system haskell-build-system) (arguments `(#:tests? #f)) ; FIXME: Missing test-framework package. (inputs -- cgit v1.2.3 From e1e803881c772398712f10cc450031e437df18b6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Dec 2017 18:47:58 +0100 Subject: gnu: ghc-exceptions: Run tests. * gnu/packages/haskell.scm (ghc-exceptions)[arguments]: Delete to run tests. [native-inputs]: Add ghc-test-framework and ghc-test-framework-quickcheck2. --- gnu/packages/haskell.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c5bc8d19a9..f255afb6e9 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2658,7 +2658,9 @@ (define-public ghc-exceptions (base32 "1gl7xzffsqmigam6zg0jsglncgzxqafld2p6kb7ccp9xirzdjsjd")))) (build-system haskell-build-system) - (arguments `(#:tests? #f)) ; FIXME: Missing test-framework package. + (native-inputs + `(("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) (inputs `(("ghc-stm" ,ghc-stm) ("ghc-mtl" ,ghc-mtl) -- cgit v1.2.3 From 1c42bd13874273936a439d5f5e5095ad4226021f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 20:16:16 +0100 Subject: gnu: ghc-executable-path: Update to 0.0.3.1. * gnu/packages/haskell.scm (ghc-executable-path): Update to 0.0.3.1. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index f255afb6e9..287521e032 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -4561,7 +4561,7 @@ (define-public ghc-cmark (define-public ghc-executable-path (package (name "ghc-executable-path") - (version "0.0.3") + (version "0.0.3.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -4569,7 +4569,7 @@ (define-public ghc-executable-path version ".tar.gz")) (sha256 (base32 - "1jg58qf19qz93c60ryglcavwdcysz4fd4qn8kpw5im9w9kniawlc")))) + "0vxwmnsvx13cawcyhbyljkds0l1vr996ijldycx7nj0asjv45iww")))) (build-system haskell-build-system) (home-page "https://hackage.haskell.org/package/executable-path") (synopsis "Find out the full path of the executable") -- cgit v1.2.3 From d4fd8ee4aa095c02536ca007b11d2fedd91942c7 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 21:35:54 +0100 Subject: gnu: ghc-fgl-arbitrary: Update to 0.2.0.3. * gnu/packages/haskell.scm (ghc-fgl-arbitrary): Update to 0.2.0.3. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 287521e032..389cd46031 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5999,7 +5999,7 @@ (define-public ghc-wl-pprint-text (define-public ghc-fgl-arbitrary (package (name "ghc-fgl-arbitrary") - (version "0.2.0.2") + (version "0.2.0.3") (source (origin (method url-fetch) @@ -6008,7 +6008,7 @@ (define-public ghc-fgl-arbitrary version ".tar.gz")) (sha256 (base32 - "12qbsla4vivffris6y3gj29vrafkpyazqdbdy2m55nggypqpf7ah")))) + "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm")))) (build-system haskell-build-system) (inputs `(("ghc-fgl" ,ghc-fgl) -- cgit v1.2.3 From 35deff72863587079b194dcca56368473a8b0e29 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 21:39:09 +0100 Subject: gnu: ghc-fingertree: Update to 0.1.3.0. * gnu/packages/haskell.scm (ghc-fingertree): Update to 0.1.3.0. --- gnu/packages/haskell.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 389cd46031..e483960ff4 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3573,17 +3573,16 @@ (define-public ghc-async (define-public ghc-fingertree (package (name "ghc-fingertree") - (version "0.1.1.0") + (version "0.1.3.0") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/fingertree/fingertree-" - version - ".tar.gz")) + version ".tar.gz")) (sha256 (base32 - "1w6x3kp3by5yjmam6wlrf9vap5l5rrqaip0djbrdp0fpf2imn30n")))) + "1ryjj7qrx70ckcjlr02x9zh86kfp76azbxq05r7hawqkaqg44sfs")))) (build-system haskell-build-system) (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. (home-page "https://hackage.haskell.org/package/fingertree") -- cgit v1.2.3 From ffe8c06e89c9703cad4bdd1dde363042125f1cad Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Dec 2017 19:24:33 +0100 Subject: gnu: ghc-fingertree: Run tests. * gnu/packages/haskell.scm (ghc-fingertree)[arguments]: Delete to run tests. [native-inputs]: Add ghc-hunit, ghc-quickcheck, ghc-test-framework, ghc-test-framework-hunit, and ghc-test-framework-quickcheck2. --- gnu/packages/haskell.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e483960ff4..9e58a6a532 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3584,7 +3584,12 @@ (define-public ghc-fingertree (base32 "1ryjj7qrx70ckcjlr02x9zh86kfp76azbxq05r7hawqkaqg44sfs")))) (build-system haskell-build-system) - (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) (home-page "https://hackage.haskell.org/package/fingertree") (synopsis "Generic finger-tree structure") (description "This library provides finger trees, a general sequence -- cgit v1.2.3 From 93e8c799fadb597b13491648675048634b4e81da Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 22:05:00 +0100 Subject: gnu: ghc-foldl: Update to 1.3.5. * gnu/packages/haskell.scm (ghc-foldl): Update to 1.3.5. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9e58a6a532..11c541ab5b 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -7878,7 +7878,7 @@ (define-public ghc-vector-builder (define-public ghc-foldl (package (name "ghc-foldl") - (version "1.3.2") + (version "1.3.5") (source (origin (method url-fetch) @@ -7887,7 +7887,7 @@ (define-public ghc-foldl "foldl-" version ".tar.gz")) (sha256 (base32 - "1z3xjz4khs2kr3mqkbh7dz4kd6gkdk2r67wjkvrxnmp533aqh90n")))) + "10qsp7dj2xsq4q2xm6x6b12y5pq32qf7my41hnkmdwwbccvhdxb2")))) (build-system haskell-build-system) (inputs `(("ghc-mwc-randam" ,ghc-mwc-random) ("ghc-primitive" ,ghc-primitive) -- cgit v1.2.3 From c18f82dbfb3be5edb8fa08de27f99b0e744bc2ed Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 22:37:56 +0100 Subject: gnu: ghc-free: Update to 4.12.4. * gnu/packages/haskell.scm (ghc-free): Update to 4.12.4. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 11c541ab5b..817acf924e 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -4090,7 +4090,7 @@ (define-public ghc-semigroups (define-public ghc-free (package (name "ghc-free") - (version "4.12.1") + (version "4.12.4") (source (origin (method url-fetch) @@ -4100,7 +4100,7 @@ (define-public ghc-free ".tar.gz")) (sha256 (base32 - "0sr8phvrb4ny8j1wzq55rdn8q4br23q4pw2j276npr844825jr9p")))) + "1147s393442xf4gkpbq0rd1p286vmykgx85mxhk5d1c7wfm4bzn9")))) (build-system haskell-build-system) (inputs `(("ghc-prelude-extras" ,ghc-prelude-extras) -- cgit v1.2.3 From c0fc5003f36bc8ee93ef5460f6d13a4a21d12045 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 23:10:43 +0100 Subject: gnu: ghc-glob: Update to 0.9.1. * gnu/packages/haskell.scm (ghc-glob): Update to 0.9.1. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 817acf924e..fcba57674d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -7123,7 +7123,7 @@ (define-public ghc-psqueues (define-public ghc-glob (package (name "ghc-glob") - (version "0.7.14") + (version "0.9.1") (source (origin (method url-fetch) @@ -7132,7 +7132,7 @@ (define-public ghc-glob "Glob-" version ".tar.gz")) (sha256 (base32 - "0aw43izg8vlvjl40ms6k92w7gxg7n3l6smdvzla47fp82s4vhdr8")))) + "0rzmsknl02p332dxmm36fyrz3dpma7bchn0ymyjipxvqil20pjw0")))) (build-system haskell-build-system) (inputs `(("ghc-dlist" ,ghc-dlist) -- cgit v1.2.3 From 45a608ddc710377047afbc2396f000c1c9215ed9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Dec 2017 19:38:05 +0100 Subject: gnu: ghc-glob: Mark up description. * gnu/packages/haskell.scm (ghc-glob)[description]: This is the ideal spot for a @dfn. Use it. --- gnu/packages/haskell.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index fcba57674d..68ad01b5c7 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -7146,7 +7146,7 @@ (define-public ghc-glob ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) (home-page "http://iki.fi/matti.niemenmaa/glob/") (synopsis "Haskell library matching glob patterns against file paths") - (description "This package providesa Haskell library for globbing: + (description "This package providesa Haskell library for @dfn{globbing}: matching patterns against file paths.") (license license:bsd-3))) -- cgit v1.2.3 From a5f89a633357e7e1da05a6d3300f24286865272c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Dec 2017 19:32:05 +0100 Subject: gnu: ghc-psqueues: Tweak description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix Emacs' syntax highlighting, which got confused by the leading ‘(’. * gnu/packages/haskell.scm (ghc-psqueues)[description]: Slightly adjust. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 68ad01b5c7..1b07556e63 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -7096,8 +7096,8 @@ (define-public ghc-psqueues @item @code{IntPSQ p v} is a far more efficient implementation. It fixes the key type to @code{Int} and uses a -@code{http://en.wikipedia.org/wiki/Radix_tree, radix tree} -(like @code{IntMap}) with an additional min-heap property. +@code{http://en.wikipedia.org/wiki/Radix_tree, radix tree} (like @code{IntMap}) +with an additional min-heap property. @item @code{HashPSQ k p v} is a fairly straightforward extension of @code{IntPSQ}: it simply uses the keys' hashes as indices in the -- cgit v1.2.3 From f1c2aed7df194d37b6f201ae9beb7e71a6847dd2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Dec 2017 23:58:42 +0100 Subject: gnu: ghc-half: Update to 0.2.2.3. * gnu/packages/haskell.scm (ghc-half): Update to 0.2.2.3. --- gnu/packages/haskell.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 1b07556e63..cd0edbe229 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1100,17 +1100,16 @@ (define-public ghc-sdl-image (define-public ghc-half (package (name "ghc-half") - (version "0.2.2.1") + (version "0.2.2.3") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/half/half-" - version - ".tar.gz")) + version ".tar.gz")) (sha256 (base32 - "0zhwc6ps5w4ccnxl8sy623z4rjsafmnry69jpkw4hrbq11l402f1")))) + "0p4sb7vv9cljv48wlx65wgdnkryrk5d6yfh7g4yrm20w1p449hl5")))) (build-system haskell-build-system) (home-page "https://github.com/ekmett/half") (synopsis "Half-precision floating-point computations") -- cgit v1.2.3 From bdd4aa16433a57e4d7bb8980f9e8619d43785b0e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Dec 2017 19:57:15 +0100 Subject: gnu: ghc-comonad: Run tests. * gnu/packages/haskell.scm (ghc-comonad)[arguments]: Delete to enable tests. [native-inputs]: Add ghc-doctest. --- gnu/packages/haskell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index cd0edbe229..66ccbae7f4 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2362,8 +2362,8 @@ (define-public ghc-comonad (base32 "0arvbaxgkawzdp38hh53akkahjg2aa3kj2b4ns0ni8a5ylg2cqmp")))) (build-system haskell-build-system) - (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy - ; -package contravariant-1.3.3" + (native-inputs + `(("ghc-doctest" ,ghc-doctest))) (inputs `(("ghc-contravariant" ,ghc-contravariant) ("ghc-distributive" ,ghc-distributive) -- cgit v1.2.3 From 26c6de8b7112ac30e5884c8c851123a70ba527a0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 4 Dec 2017 19:16:43 +0100 Subject: gnu: di: Streamline description. * gnu/packages/admin.scm (di)[description]: Avoid incongruent prepositions and sentence fragments. --- gnu/packages/admin.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 67d1026dfb..3250be5349 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1795,10 +1795,10 @@ (define-public di (home-page "https://www.gentoo.com/di/") (synopsis "Advanced df like disk information utility") (description - "'di' is a disk information utility, displaying everything -(and more) that your @code{df} command does. It features the ability to -display your disk usage in whatever format you prefer. It is designed to be -highly portable. Great for heterogeneous networks.") + "'di' is a disk information utility, displaying everything that your +@code{df} command does and more. It features the ability to display your disk +usage in whatever format you prefer. It is designed to be highly portable and +produce uniform output across heterogeneous networks.") (license license:zlib))) (define-public cbatticon -- cgit v1.2.3 From 006a245087e95d119e0c3ca94f332f3b9b0d12cd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 4 Dec 2017 21:51:21 +0100 Subject: gnu: libvirt: Update to 3.10.0. * gnu/packages/virtualization.scm (libvirt): Update to 3.10.0. [source]: Remove patches. * gnu/packages/patches/libvirt-CVE-2017-1000256.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - .../patches/libvirt-CVE-2017-1000256.patch | 84 ---------------------- gnu/packages/virtualization.scm | 6 +- 3 files changed, 3 insertions(+), 88 deletions(-) delete mode 100644 gnu/packages/patches/libvirt-CVE-2017-1000256.patch diff --git a/gnu/local.mk b/gnu/local.mk index c75f1f90d8..a0e3f6ebe0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -842,7 +842,6 @@ dist_patch_DATA = \ %D%/packages/patches/libunistring-gnulib-multi-core.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libusb-for-axoloti.patch \ - %D%/packages/patches/libvirt-CVE-2017-1000256.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ %D%/packages/patches/libxcb-python-3.5-compat.patch \ %D%/packages/patches/libxml2-CVE-2016-4658.patch \ diff --git a/gnu/packages/patches/libvirt-CVE-2017-1000256.patch b/gnu/packages/patches/libvirt-CVE-2017-1000256.patch deleted file mode 100644 index d577e1eb50..0000000000 --- a/gnu/packages/patches/libvirt-CVE-2017-1000256.patch +++ /dev/null @@ -1,84 +0,0 @@ -Fix CVE-2017-1000256: - -https://security.libvirt.org/2017/0002.html -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000256 - -Patch copied from upstream source repository: - -https://libvirt.org/git/?p=libvirt.git;a=commit;h=dc6c41798d1eb5c52c75365ffa22f7672709dfa7 - -From dc6c41798d1eb5c52c75365ffa22f7672709dfa7 Mon Sep 17 00:00:00 2001 -From: Daniel P. Berrange -Date: Thu, 5 Oct 2017 17:54:28 +0100 -Subject: [PATCH] qemu: ensure TLS clients always verify the server certificate - -The default_tls_x509_verify (and related) parameters in qemu.conf -control whether the QEMU TLS servers request & verify certificates -from clients. This works as a simple access control system for -servers by requiring the CA to issue certs to permitted clients. -This use of client certificates is disabled by default, since it -requires extra work to issue client certificates. - -Unfortunately the code was using this configuration parameter when -setting up both TLS clients and servers in QEMU. The result was that -TLS clients for character devices and disk devices had verification -turned off, meaning they would ignore errors while validating the -server certificate. - -This allows for trivial MITM attacks between client and server, -as any certificate returned by the attacker will be accepted by -the client. - -This is assigned CVE-2017-1000256 / LSN-2017-0002 - -Reviewed-by: Eric Blake -Signed-off-by: Daniel P. Berrange -(cherry picked from commit 441d3eb6d1be940a67ce45a286602a967601b157) ---- - src/qemu/qemu_command.c | 2 +- - .../qemuxml2argv-serial-tcp-tlsx509-chardev.args | 2 +- - ...xml2argv-serial-tcp-tlsx509-secret-chardev.args | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index 9a27987..ae78cd1 100644 ---- a/src/qemu/qemu_command.c -+++ b/src/qemu/qemu_command.c -@@ -718,7 +718,7 @@ qemuBuildTLSx509BackendProps(const char *tlspath, - if (virJSONValueObjectCreate(propsret, - "s:dir", path, - "s:endpoint", (isListen ? "server": "client"), -- "b:verify-peer", verifypeer, -+ "b:verify-peer", (isListen ? verifypeer : true), - NULL) < 0) - goto cleanup; - -diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-chardev.args b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-chardev.args -index 5aff773..ab5f7e2 100644 ---- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-chardev.args -+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-chardev.args -@@ -26,7 +26,7 @@ server,nowait \ - localport=1111 \ - -device isa-serial,chardev=charserial0,id=serial0 \ - -object tls-creds-x509,id=objcharserial1_tls0,dir=/etc/pki/libvirt-chardev,\ --endpoint=client,verify-peer=no \ -+endpoint=client,verify-peer=yes \ - -chardev socket,id=charserial1,host=127.0.0.1,port=5555,\ - tls-creds=objcharserial1_tls0 \ - -device isa-serial,chardev=charserial1,id=serial1 \ -diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-secret-chardev.args b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-secret-chardev.args -index 91f1fe0..2567abb 100644 ---- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-secret-chardev.args -+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-secret-chardev.args -@@ -31,7 +31,7 @@ localport=1111 \ - data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ - keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ - -object tls-creds-x509,id=objcharserial1_tls0,dir=/etc/pki/libvirt-chardev,\ --endpoint=client,verify-peer=no,passwordid=charserial1-secret0 \ -+endpoint=client,verify-peer=yes,passwordid=charserial1-secret0 \ - -chardev socket,id=charserial1,host=127.0.0.1,port=5555,\ - tls-creds=objcharserial1_tls0 \ - -device isa-serial,chardev=charserial1,id=serial1 \ --- -1.7.1 - diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 184ba0155c..d9fae08b25 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Alex Vong ;;; Copyright © 2017 Andy Patterson ;;; Copyright © 2017 Rutger Helling +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -329,15 +330,14 @@ (define-public lxc (define-public libvirt (package (name "libvirt") - (version "3.7.0") + (version "3.10.0") (source (origin (method url-fetch) (uri (string-append "https://libvirt.org/sources/libvirt-" version ".tar.xz")) - (patches (search-patches "libvirt-CVE-2017-1000256.patch")) (sha256 (base32 - "1fk75cdzg59y9hnfdpdwv83fsc1yffy3lac4ch19zygfkqhcnysf")))) + "03kb37iv3dvvdlslznlc0njvjpmq082lczmsslz5p4fcwb50kwfz")))) (build-system gnu-build-system) (arguments `(;; FAIL: virshtest -- cgit v1.2.3 From be520f199a8dd8cb12819b7704e32ce75c02513a Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 5 Dec 2017 23:18:20 +0100 Subject: gnu: emacs-org: Update to 9.1.4. * gnu/packages/emacs.scm (emacs-org): (emacs-org-contrib): Update to 20171205, aka Org 9.1.4. --- gnu/packages/emacs.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index e5e6cf0979..8b383047cd 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4206,14 +4206,14 @@ (define-public emacs-org (name "emacs-org") ;; emacs-org-contrib inherits from this package. Please update its sha256 ;; checksum as well. - (version "20171116") + (version "20171205") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "04adsyzjb6klai65g481sc964yyqcip7gqy7a1gp7qhfxx53z582")))) + "0a1rm94ci47jf5579sxscily680ysmy3hnxjcs073n45nk76za04")))) (build-system emacs-build-system) (home-page "http://orgmode.org/") (synopsis "Outline-based notes management and organizer") @@ -4233,7 +4233,7 @@ (define-public emacs-org-contrib (package-version emacs-org) ".tar")) (sha256 (base32 - "071vqv6hdyjp85ap39930782ks07ypjzch81r8kax3ybwfrf0chx")))) + "1y61csa284gy8l0fj0mv67mkm4fsi4lz401987qp6a6z260df4n5")))) (arguments `(#:modules ((guix build emacs-build-system) (guix build utils) -- cgit v1.2.3 From 35377cfa908340e51fd22af7369aef15499d4a36 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 5 Dec 2017 23:20:12 +0100 Subject: gnu: emacs-org-contrib: Fix typo. * gnu/packages/emacs.scm (emacs-org-contrib)[synopsis]: Fix typo. --- gnu/packages/emacs.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 8b383047cd..1cf14993c3 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4260,7 +4260,7 @@ (define-public emacs-org-contrib #t)))))) (propagated-inputs `(("emacs-org" ,emacs-org))) - (synopsis "Contributed packages to Org-mode") + (synopsis "Contributed packages to Org mode") (description "Org is an Emacs mode for keeping notes, maintaining TODO lists, and project planning with a fast and effective plain-text system. -- cgit v1.2.3