From 75cc8fe9ea4016336b049b2ecd6cdf58327f01dd Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 11 Jun 2017 15:34:58 +0200 Subject: [PATCH 001/186] gnu: libextractor: Update to 1.4. * gnu/packages/gnunet.scm (libextractor): Update to 1.4. [source]: Remove obsolete patch and snippet. * gnu/packages/patches/libextractor-ffmpeg-3.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/gnunet.scm | 12 +- .../patches/libextractor-ffmpeg-3.patch | 360 ------------------ 3 files changed, 2 insertions(+), 371 deletions(-) delete mode 100644 gnu/packages/patches/libextractor-ffmpeg-3.patch diff --git a/gnu/local.mk b/gnu/local.mk index 70b4a44a13..128cca84e5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -729,7 +729,6 @@ dist_patch_DATA = \ %D%/packages/patches/libevent-2.0-evbuffer-add-use-last-with-datap.patch \ %D%/packages/patches/libevent-2.1-dns-tests.patch \ %D%/packages/patches/libevent-2.1-skip-failing-test.patch \ - %D%/packages/patches/libextractor-ffmpeg-3.patch \ %D%/packages/patches/libgit2-0.25.1-mtime-0.patch \ %D%/packages/patches/libgdata-fix-tests.patch \ %D%/packages/patches/libgdata-glib-duplicate-tests.patch \ diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 44d6129897..540f626625 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -66,22 +66,14 @@ (define-public libextractor (package (name "libextractor") - (version "1.3") + (version "1.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libextractor/libextractor-" version ".tar.gz")) (sha256 (base32 - "0zvv7wd011npcx7yphw9bpgivyxz6mlp87a57n96nv85k96dd2l6")) - (patches (search-patches "libextractor-ffmpeg-3.patch")) - (modules '((guix build utils))) - (snippet - ;; Nowadays libmagic (from 'file') returns 'audio/ogg' and not - ;; 'application/ogg'. Adjust accordingly. - '(substitute* "src/plugins/test_mime.c" - (("application/ogg") - "audio/ogg"))))) + "0v7ns5jhsyp1wzvbaydfgxnva5zd63gkzm9djhckmam9liq824l4")))) (build-system gnu-build-system) ;; WARNING: Checks require /dev/shm to be in the build chroot, especially ;; not to be a symbolic link to /run/shm. diff --git a/gnu/packages/patches/libextractor-ffmpeg-3.patch b/gnu/packages/patches/libextractor-ffmpeg-3.patch deleted file mode 100644 index d0f83f624c..0000000000 --- a/gnu/packages/patches/libextractor-ffmpeg-3.patch +++ /dev/null @@ -1,360 +0,0 @@ -Fix build with ffmpeg-3, based on upstream revisions r35548 and r35549 by LRN -and r36975 by Christian Grothoff, and backported to libextractor-1.3 by -Mark H Weaver - ---- libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c.orig 2013-12-21 11:04:41.000000000 -0500 -+++ libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c 2016-04-04 23:38:46.429041081 -0400 -@@ -59,6 +59,12 @@ - #include - #endif - -+#ifdef PIX_FMT_RGB24 -+#define PIX_OUTPUT_FORMAT PIX_FMT_RGB24 -+#else -+#define PIX_OUTPUT_FORMAT AV_PIX_FMT_RGB24 -+#endif -+ - /** - * Set to 1 to enable debug output. - */ -@@ -153,7 +159,7 @@ - static size_t - create_thumbnail (int src_width, int src_height, - int src_stride[], -- enum PixelFormat src_pixfmt, -+ enum AVPixelFormat src_pixfmt, - const uint8_t * const src_data[], - int dst_width, int dst_height, - uint8_t **output_data, -@@ -189,7 +195,8 @@ - if (NULL == - (scaler_ctx = - sws_getContext (src_width, src_height, src_pixfmt, -- dst_width, dst_height, PIX_FMT_RGB24, -+ dst_width, dst_height, -+ PIX_OUTPUT_FORMAT, - SWS_BILINEAR, NULL, NULL, NULL))) - { - #if DEBUG -@@ -199,7 +206,12 @@ - return 0; - } - -- if (NULL == (dst_frame = avcodec_alloc_frame ())) -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ dst_frame = av_frame_alloc (); -+#else -+ dst_frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == dst_frame) - { - #if DEBUG - fprintf (stderr, -@@ -209,18 +221,24 @@ - return 0; - } - if (NULL == (dst_buffer = -- av_malloc (avpicture_get_size (PIX_FMT_RGB24, dst_width, dst_height)))) -+ av_malloc (avpicture_get_size (PIX_OUTPUT_FORMAT, -+ dst_width, dst_height)))) - { - #if DEBUG - fprintf (stderr, - "Failed to allocate the destination image buffer\n"); - #endif -- av_free (dst_frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&dst_frame); -+#else -+ avcodec_free_frame (&dst_frame); -+#endif - sws_freeContext (scaler_ctx); - return 0; - } - avpicture_fill ((AVPicture *) dst_frame, dst_buffer, -- PIX_FMT_RGB24, dst_width, dst_height); -+ PIX_OUTPUT_FORMAT, -+ dst_width, dst_height); - sws_scale (scaler_ctx, - src_data, - src_stride, -@@ -236,7 +254,11 @@ - "Failed to allocate the encoder output buffer\n"); - #endif - av_free (dst_buffer); -- av_free (dst_frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&dst_frame); -+#else -+ avcodec_free_frame (&dst_frame); -+#endif - sws_freeContext (scaler_ctx); - return 0; - } -@@ -249,13 +271,17 @@ - #endif - av_free (encoder_output_buffer); - av_free (dst_buffer); -- av_free (dst_frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&dst_frame); -+#else -+ avcodec_free_frame (&dst_frame); -+#endif - sws_freeContext (scaler_ctx); - return 0; - } - encoder_codec_ctx->width = dst_width; - encoder_codec_ctx->height = dst_height; -- encoder_codec_ctx->pix_fmt = PIX_FMT_RGB24; -+ encoder_codec_ctx->pix_fmt = PIX_OUTPUT_FORMAT; - opts = NULL; - if (avcodec_open2 (encoder_codec_ctx, encoder_codec, &opts) < 0) - { -@@ -263,10 +289,14 @@ - fprintf (stderr, - "Failed to open the encoder\n"); - #endif -- av_free (encoder_codec_ctx); -+ avcodec_free_context (&encoder_codec_ctx); - av_free (encoder_output_buffer); - av_free (dst_buffer); -- av_free (dst_frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&dst_frame); -+#else -+ avcodec_free_frame (&dst_frame); -+#endif - sws_freeContext (scaler_ctx); - return 0; - } -@@ -295,9 +325,13 @@ - cleanup: - av_dict_free (&opts); - avcodec_close (encoder_codec_ctx); -- av_free (encoder_codec_ctx); -+ avcodec_free_context (&encoder_codec_ctx); - av_free (dst_buffer); -- av_free (dst_frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&dst_frame); -+#else -+ avcodec_free_frame (&dst_frame); -+#endif - sws_freeContext (scaler_ctx); - *output_data = encoder_output_buffer; - -@@ -406,18 +440,23 @@ - fprintf (stderr, - "Failed to open image codec\n"); - #endif -- av_free (codec_ctx); -+ avcodec_free_context (&codec_ctx); - return; - } - av_dict_free (&opts); -- if (NULL == (frame = avcodec_alloc_frame ())) -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ frame = av_frame_alloc (); -+#else -+ frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == frame) - { - #if DEBUG - fprintf (stderr, - "Failed to allocate frame\n"); - #endif - avcodec_close (codec_ctx); -- av_free (codec_ctx); -+ avcodec_free_context (&codec_ctx); - return; - } - -@@ -441,9 +480,13 @@ - fprintf (stderr, - "Failed to decode a complete frame\n"); - #endif -- av_free (frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&frame); -+#else -+ avcodec_free_frame (&frame); -+#endif - avcodec_close (codec_ctx); -- av_free (codec_ctx); -+ avcodec_free_context (&codec_ctx); - return; - } - calculate_thumbnail_dimensions (codec_ctx->width, codec_ctx->height, -@@ -467,9 +510,13 @@ - err); - av_free (encoded_thumbnail); - } -- av_free (frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&frame); -+#else -+ avcodec_free_frame (&frame); -+#endif - avcodec_close (codec_ctx); -- av_free (codec_ctx); -+ avcodec_free_context (&codec_ctx); - } - - -@@ -563,7 +610,12 @@ - return; - } - -- if (NULL == (frame = avcodec_alloc_frame ())) -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ frame = av_frame_alloc (); -+#else -+ frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == frame) - { - #if DEBUG - fprintf (stderr, -@@ -616,7 +668,11 @@ - fprintf (stderr, - "Failed to decode a complete frame\n"); - #endif -- av_free (frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&frame); -+#else -+ avcodec_free_frame (&frame); -+#endif - avcodec_close (codec_ctx); - avformat_close_input (&format_ctx); - av_free (io_ctx); -@@ -643,7 +699,11 @@ - err); - av_free (encoded_thumbnail); - } -- av_free (frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&frame); -+#else -+ avcodec_free_frame (&frame); -+#endif - avcodec_close (codec_ctx); - avformat_close_input (&format_ctx); - av_free (io_ctx); ---- libextractor-1.3/src/plugins/previewopus_extractor.c.orig 2013-12-22 17:44:18.000000000 -0500 -+++ libextractor-1.3/src/plugins/previewopus_extractor.c 2016-04-04 23:39:41.377720710 -0400 -@@ -296,8 +296,13 @@ - /** Initialize one audio frame for reading from the input file */ - static int init_input_frame(AVFrame **frame) - { -- if (!(*frame = avcodec_alloc_frame())) { -- #if DEBUG -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ *frame = av_frame_alloc (); -+#else -+ *frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == *frame) { -+#if DEBUG - fprintf(stderr, "Could not allocate input frame\n"); - #endif - return AVERROR(ENOMEM); -@@ -655,7 +660,11 @@ - av_freep(&converted_input_samples[0]); - free(converted_input_samples); - } -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&input_frame); -+#else - avcodec_free_frame(&input_frame); -+#endif - - return ret; - } -@@ -671,10 +680,15 @@ - int error; - - /** Create a new frame to store the audio samples. */ -- if (!(*frame = avcodec_alloc_frame())) { -- #if DEBUG -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ *frame = av_frame_alloc (); -+#else -+ *frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == *frame) { -+#if DEBUG - fprintf(stderr, "Could not allocate output frame\n"); -- #endif -+#endif - return AVERROR_EXIT; - } - -@@ -699,10 +713,14 @@ - * sure that the audio frame can hold as many samples as specified. - */ - if ((error = av_frame_get_buffer(*frame, 0)) < 0) { -- #if DEBUG -+#if DEBUG - fprintf(stderr, "Could allocate output frame samples (error '%s')\n", get_error_text(error)); -- #endif -+#endif -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (frame); -+#else - avcodec_free_frame(frame); -+#endif - return error; - } - -@@ -780,20 +798,32 @@ - * The samples are stored in the frame temporarily. - */ - if (av_audio_fifo_read(fifo, (void **)output_frame->data, frame_size) < frame_size) { -- #if DEBUG -+#if DEBUG - fprintf(stderr, "Could not read data from FIFO\n"); -- #endif -+#endif -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&output_frame); -+#else - avcodec_free_frame(&output_frame); -+#endif - return AVERROR_EXIT; - } - - /** Encode one frame worth of audio samples. */ - if (encode_audio_frame(output_frame, output_format_context, - output_codec_context, &data_written)) { -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&output_frame); -+#else - avcodec_free_frame(&output_frame); -+#endif - return AVERROR_EXIT; - } -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&output_frame); -+#else - avcodec_free_frame(&output_frame); -+#endif - return 0; - } - /** Write the trailer of the output file container. */ -@@ -907,7 +937,12 @@ - return; - } - -- if (NULL == (frame = avcodec_alloc_frame ())) -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ frame = av_frame_alloc (); -+#else -+ frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == frame) - { - #if DEBUG - fprintf (stderr, From f66ea7b8de91ef95a1119e052045668ef67f11a9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 9 Jun 2017 21:07:44 +0200 Subject: [PATCH 002/186] gnu: exiv2: Update to 0.26. * gnu/packages/image.scm (exiv2): Update to 0.26. [source]: Add new download location. --- gnu/packages/image.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index f6337e0fc2..abac17d6d7 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -881,16 +881,18 @@ channels.") (define-public exiv2 (package (name "exiv2") - (version "0.25") + (version "0.26") (source (origin (method url-fetch) - (uri (list (string-append "http://www.exiv2.org/exiv2-" + (uri (list (string-append "http://www.exiv2.org/builds/exiv2-" + version "-trunk.tar.gz") + (string-append "http://www.exiv2.org/exiv2-" version ".tar.gz") (string-append "https://fossies.org/linux/misc/exiv2-" version ".tar.gz"))) (sha256 (base32 - "197g6vgcpyf9p2cwn5p5hb1r714xsk1v4p96f5pv1z8mi9vzq2y8")))) + "1hsdzlzgkipprqh93yj81mrckl2l7c2mn2i84691pallnjz5qqhc")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; no `check' target (propagated-inputs From b6821ee051443f2379162da833776b2bb41d55ab Mon Sep 17 00:00:00 2001 From: nee Date: Sat, 10 Jun 2017 16:22:43 +0200 Subject: [PATCH 003/186] gnu: Add five-or-more. * gnu/packages/gnome.scm (five-or-more): New variable. Signed-off-by: Kei Kebreau --- gnu/packages/gnome.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index d3f7344508..a4fc2195cb 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Hartmut Goebel +;;; Copyright © 2017 nee ;;; ;;; This file is part of GNU Guix. ;;; @@ -2449,6 +2450,37 @@ and the GLib main loop, to integrate well with GNOME applications.") and other secrets. It communicates with the \"Secret Service\" using DBus.") (license license:lgpl2.1+))) +(define-public five-or-more + (package + (name "five-or-more") + (version "3.22.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1b26afyjr26wqy5j008gzsi3hpblbmabh0192lx6414lml1qxkxs")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("desktop-file-utils" ,desktop-file-utils) + ("intltool" ,intltool) + ("itstool" ,itstool) + ("xmllint" ,libxml2))) + (inputs + `(("gtk+" ,gtk+) + ("librsvg" ,librsvg))) + (home-page "https://wiki.gnome.org/Apps/Five%20or%20more") + (synopsis "Logic puzzle game") + (description "Five or More is a game where you try to align + five or more objects of the same color and shape causing them to disappear. + On every turn more objects will appear, until the board is full. + Try to last as long as possible.") + (license license:gpl2+))) + (define-public gnome-mines (package (name "gnome-mines") From d84f71827194a6e5c1d7e45e1086e5407aabfc73 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 11 Jun 2017 14:41:33 -0400 Subject: [PATCH 004/186] gnu: mate-icon-theme: Update to 1.18.2. * gnu/packages/mate.scm (mate-icon-theme): Update to 1.18.2. --- gnu/packages/mate.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index a39cd25d30..403b70852b 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -37,7 +37,7 @@ (define-public mate-icon-theme (package (name "mate-icon-theme") - (version "1.16.0") + (version "1.18.2") (source (origin (method url-fetch) (uri (string-append "http://pub.mate-desktop.org/releases/" @@ -45,7 +45,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1zldw22p1i76iss8car39pmfagpfxxlfk1fdhvr4x5r6gf36gv7d")))) + "0si3li3kza7s45zhasjvqn5f85zpkn0x8i4kq1dlnqvjjqzkg4ch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From c580ff672425ad7cd6a388178fa5857b6aa15d5f Mon Sep 17 00:00:00 2001 From: eacces Date: Fri, 9 Jun 2017 16:25:59 +1000 Subject: [PATCH 005/186] gnu: mercurial: Update to 4.2.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/version-control.scm (mercurial): Update to 4.2.1. Signed-off-by: Ludovic Courtès --- gnu/packages/version-control.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index cd2576c51a..953440a6fd 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -701,14 +701,14 @@ control to Git repositories.") (define-public mercurial (package (name "mercurial") - (version "3.9") + (version "4.2.1") (source (origin (method url-fetch) (uri (string-append "https://www.mercurial-scm.org/" "release/mercurial-" version ".tar.gz")) (sha256 (base32 - "1g6svg7fc1kyaxq653iwsvdh8hp2lrhs2ywazfc436a4zzf2akw3")))) + "182qh6d0srps2n5sydzy8n3gi78la6m0wi3846zpyyd0b8pmgmfp")))) (build-system python-build-system) (arguments `(;; Restrict to Python 2, as Python 3 would require From c08ea55e7ec25261e4596bf6726a83c1ed056b94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 11 Jun 2017 23:05:23 +0200 Subject: [PATCH 006/186] packages: Add 'specifications->manifest'. * gnu/packages.scm (specifications->manifest): New procedure. * doc/guix.texi (Invoking guix package): Change example from using '(compose list specification->package+output)' to using 'specifications->manifest'. --- doc/guix.texi | 9 ++++----- gnu/packages.scm | 12 +++++++++++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 87aaae8545..83f20c8598 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1742,18 +1742,17 @@ of packages: (list guile-2.0 "debug"))) @end example -@findex specification->package+output +@findex specifications->manifest In this example we have to know which modules define the @code{emacs} and @code{guile-2.0} variables to provide the right @code{use-package-modules} line, which can be cumbersome. We can instead provide regular package specifications and let -@code{specification->package-output} look up the corresponding package +@code{specifications->manifest} look up the corresponding package objects, like this: @example -(packages->manifest - (map (compose list specification->package+output) - '("emacs" "guile@@2.0" "guile@@2.0:debug"))) +(specifications->manifest + '("emacs" "guile@@2.2" "guile@@2.2:debug")) @end example @item --roll-back diff --git a/gnu/packages.scm b/gnu/packages.scm index 57907155fb..5629061788 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -29,6 +29,7 @@ #:use-module ((guix build utils) #:select ((package-name->name+version . hyphen-separated-name->name+version))) + #:autoload (guix profiles) (packages->manifest) #:use-module (ice-9 vlist) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -53,7 +54,8 @@ find-newest-available-packages specification->package - specification->package+output)) + specification->package+output + specifications->manifest)) ;;; Commentary: ;;; @@ -278,3 +280,11 @@ version; if SPEC does not specify an output, return OUTPUT." (leave (G_ "package `~a' lacks output `~a'~%") (package-full-name package) sub-drv)))))) + +(define (specifications->manifest specs) + "Given SPECS, a list of specifications such as \"emacs@25.2\" or +\"guile:debug\", return a profile manifest." + ;; This procedure exists mostly so users of 'guix package -m' don't have to + ;; fiddle with multiple-value returns. + (packages->manifest + (map (compose list specification->package+output) specs))) From b53510e0d09d8c550a123fdca8467ff325c6f68a Mon Sep 17 00:00:00 2001 From: Adam Van Ymeren Date: Sun, 11 Jun 2017 13:01:31 -0400 Subject: [PATCH 007/186] file-systems: Handle EIO error in 'ENOENT-safe' as well. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Trying to boot GuixSD when an audio CD is in the drive will die with an "input/output error" when trying to read the superblock from the cd drive. This patch catches and warns in this case rather than dying. * gnu/build/file-systems.scm (ENOENT-safe): Handle EIO. Signed-off-by: Ludovic Courtès --- gnu/build/file-systems.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 08f7d478ec..f9cc4088bb 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -419,6 +419,10 @@ warning and #f as the result." #f) ((= ENOMEDIUM errno) ;for removable media #f) + ((= EIO errno) ;unreadable hardware like audio CDs + (format (current-error-port) + "warning: failed to read from device '~a'~%" device) + #f) (else (apply throw args)))))))) From 3bbdf6415ae8203ce444966c89b5b09f0192a7d6 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 11 Jun 2017 16:55:06 -0400 Subject: [PATCH 008/186] gnu: mate-desktop: Update to 1.18.0. * gnu/packages/mate.scm (mate-desktop): Update to 1.18.0. [arguments]: Remove obsolete configure flags. [inputs]: Remove python-2. --- gnu/packages/mate.scm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 403b70852b..e5d7b19262 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -92,7 +92,7 @@ themes for both gtk+-2 and gtk+-3.") (define-public mate-desktop (package (name "mate-desktop") - (version "1.16.1") + (version "1.18.0") (source (origin (method url-fetch) (uri (string-append "http://pub.mate-desktop.org/releases/" @@ -100,11 +100,8 @@ themes for both gtk+-2 and gtk+-3.") name "-" version ".tar.xz")) (sha256 (base32 - "1pzncfgrzp2mp9407ivk1113hkadpf110blr058h31jkwsk8syjq")))) + "12iv2y4dan962fs7vkkxbjkp77pbvjnwfa43ggr0zkdsc3ydjbbg")))) (build-system gnu-build-system) - (arguments - `(#:configure-flags '("--with-gtk=3.0" - "--enable-mpaste"))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) @@ -115,7 +112,6 @@ themes for both gtk+-2 and gtk+-3.") (inputs `(("gtk+" ,gtk+) ("libxrandr" ,libxrandr) - ("python2" ,python-2) ("startup-notification" ,startup-notification))) (propagated-inputs `(("dconf" ,dconf))) ; mate-desktop-2.0.pc From d954e569dacb6129fe1802caf6e5d3222e71471a Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 11 Jun 2017 18:01:29 -0400 Subject: [PATCH 009/186] gnu: libmateweather: Update to 1.18.1. * gnu/packages/mate.scm (libmateweather): Update to 1.18.1. [arguments]: Remove obsolete "--with-gtk" flag. --- gnu/packages/mate.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index e5d7b19262..7e91ccd024 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -125,7 +125,7 @@ desktop and the mate-about program.") (define-public libmateweather (package (name "libmateweather") - (version "1.16.1") + (version "1.18.1") (source (origin (method url-fetch) (uri (string-append "http://pub.mate-desktop.org/releases/" @@ -133,14 +133,13 @@ desktop and the mate-about program.") name "-" version ".tar.xz")) (sha256 (base32 - "0w1b8b1ckmkbvwnqi9yh2lwbskzhz99s5yxdkar5xiqylnjrwmm3")))) + "0z6vfh42fv9rqjrraqfpf6h9nd9h662bxy3l3r48j19xvxrwmx3a")))) (build-system gnu-build-system) (arguments `(#:configure-flags - `("--with-gtk=3.0" - ,(string-append "--with-zoneinfo-dir=" - (assoc-ref %build-inputs "tzdata") - "/share/zoneinfo")) + (list (string-append "--with-zoneinfo-dir=" + (assoc-ref %build-inputs "tzdata") + "/share/zoneinfo")) #:phases (modify-phases %standard-phases (add-before From 78a520515296ed33eb2eeb40b651ab51dc083cba Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 11 Jun 2017 18:46:02 -0400 Subject: [PATCH 010/186] gnu: mate-menus: Update to 1.18.0. * gnu/packages/mate.scm (mate-menus): Update to 1.18.0. --- gnu/packages/mate.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 7e91ccd024..316385a6f8 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -173,7 +173,7 @@ the MATE desktop environment.") (define-public mate-menus (package (name "mate-menus") - (version "1.16.0") + (version "1.18.0") (source (origin (method url-fetch) (uri (string-append "http://pub.mate-desktop.org/releases/" @@ -181,7 +181,7 @@ the MATE desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "0crw07iszwsqk54y8znfqdgfz76rjdz8992v4q9kpwwlrl11xmc5")))) + "05kyr37xqv6hm1rlvnqd5ng0x1n883brqynkirkk5drl56axnz7h")))) (build-system gnu-build-system) (arguments `(#:phases From 9cf8d93a9ea1fca9c80bc6b8492c537e52530946 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 11 Jun 2017 19:08:55 -0400 Subject: [PATCH 011/186] gnu: libgweather: Update to 3.24.1. * gnu/packages/gnome.scm (libgweather): Update to 3.24.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 a4fc2195cb..1080ddfeb5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2809,7 +2809,7 @@ service via the system message bus.") (define-public libgweather (package (name "libgweather") - (version "3.24.0") + (version "3.24.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2817,7 +2817,7 @@ service via the system message bus.") name "-" version ".tar.xz")) (sha256 (base32 - "0ggspn3wmlkdxpfv4ym68qn1mzqc3hv666sykv8sv1ah40rbk28h")))) + "0g35xfcw9vh3sfff42blk9ksrlmkrjmj46h3ad0sqgdn6xh329qj")))) (build-system gnu-build-system) (arguments `(#:configure-flags From 783467ae02b6b88081ef0c02af71b28db9729b59 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 11 Jun 2017 22:37:15 +0200 Subject: [PATCH 012/186] gnu: mcelog: Update to 153. * gnu/packages/linux.scm (mcelog): Update to 153. --- 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 1573d9c8d2..9b2a522361 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3391,14 +3391,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (define-public mcelog (package (name "mcelog") - (version "152") + (version "153") (source (origin (method url-fetch) (uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/" "mcelog.git/snapshot/v" version ".tar.gz")) (sha256 (base32 - "0df1kbiw1pl84l6b9g515lpk5a81hmy8r27yakr4hrmi2vwzdfh6")) + "0q40d60p1klzg0aznvxhxgjlddwcxfj2q59s4q86sf9ild6rcdhl")) (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet From cdd85a85e71fafdf6e4d15550fda42e13c9b8a0a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 12 Jun 2017 04:24:10 +0200 Subject: [PATCH 013/186] gnu: youtube-dl: Update to 2017.06.12. * gnu/packages/video.scm (youtube-dl): Update to 2017.06.12. --- 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 702704ed46..1dcb0aa8e1 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1001,7 +1001,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.06.05") + (version "2017.06.12") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1009,7 +1009,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "132f4csbl4bv71b01pnqfkd7hbbc6wclrh1h12fr1182954ahk5m")))) + "1p4d8g44v8vgr4xwvmbvzkjz6zakl2r89spaak6yw1zxmymd9b1w")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion From e3c9ab5f41c887b341da43db6e5cf75a2a0cc783 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 11 Jun 2017 22:16:05 -0400 Subject: [PATCH 014/186] gnu: libmwaw: Update to 0.3.11. * gnu/packages/libreoffice.scm (libmwaw): Update to 0.3.11. --- gnu/packages/libreoffice.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 42e47a5109..afaf8002d8 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -584,14 +584,14 @@ text documents, vector drawings, presentations and spreadsheets.") (define-public libmwaw (package (name "libmwaw") - (version "0.3.5") + (version "0.3.11") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version "/" name "-" version ".tar.xz")) (sha256 (base32 - "1vx9h419fcfcs0yj071hsg9d2qvkacgca6052m8hv3h743cdmzil")))) + "16i9s9p4sjpdpbm3gq6jkc9r3nyfy47ggkdlgh7vr0mydccklj2b")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) From 34a0984e57e549ba441997dce474140ef85b5a43 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 11 Jun 2017 22:18:53 -0400 Subject: [PATCH 015/186] gnu: libmwaw: Fix CVE-2017-9433. * gnu/packages/patches/libmwaw-CVE-2017-9433.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/libreoffice.scm (libmwaw)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/libreoffice.scm | 1 + .../patches/libmwaw-CVE-2017-9433.patch | 33 +++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 gnu/packages/patches/libmwaw-CVE-2017-9433.patch diff --git a/gnu/local.mk b/gnu/local.mk index 128cca84e5..c2a7ba761b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -742,6 +742,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/libmwaw-CVE-2017-9433.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/libreoffice.scm b/gnu/packages/libreoffice.scm index afaf8002d8..809e28e27b 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -590,6 +590,7 @@ text documents, vector drawings, presentations and spreadsheets.") (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version "/" name "-" version ".tar.xz")) + (patches (search-patches "libmwaw-CVE-2017-9433.patch")) (sha256 (base32 "16i9s9p4sjpdpbm3gq6jkc9r3nyfy47ggkdlgh7vr0mydccklj2b")))) (build-system gnu-build-system) diff --git a/gnu/packages/patches/libmwaw-CVE-2017-9433.patch b/gnu/packages/patches/libmwaw-CVE-2017-9433.patch new file mode 100644 index 0000000000..502a11d2a8 --- /dev/null +++ b/gnu/packages/patches/libmwaw-CVE-2017-9433.patch @@ -0,0 +1,33 @@ +Fix CVE-2017-9433: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9433 + +Patch copied from upstream source repository: + +https://sourceforge.net/p/libmwaw/libmwaw/ci/68b3b74569881248bfb6cbb4266177cc253b292f + +From 68b3b74569881248bfb6cbb4266177cc253b292f Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Sat, 8 Apr 2017 14:03:29 +0200 +Subject: [PATCH] ofz#1037 resize vector correctly + +--- + src/lib/MsWrd1Parser.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lib/MsWrd1Parser.cxx b/src/lib/MsWrd1Parser.cxx +index 63547e6..3626064 100644 +--- a/src/lib/MsWrd1Parser.cxx ++++ b/src/lib/MsWrd1Parser.cxx +@@ -902,7 +902,7 @@ bool MsWrd1Parser::readFootnoteCorrespondance(MWAWVec2i limits) + int id = fIt++->second; + fPos[1] = fIt==footnoteMap.end() ? m_state->m_eot : fIt->first; + if (id >= int(m_state->m_footnotesList.size())) +- m_state->m_footnotesList.resize(size_t(id),MWAWVec2l(0,0)); ++ m_state->m_footnotesList.resize(size_t(id)+1,MWAWVec2l(0,0)); + m_state->m_footnotesList[size_t(id)]=fPos; + } + ascii().addDelimiter(input->tell(),'|'); +-- +2.13.1 + From 2606fd6fc9aa725b8ad22294806630b405a6c9bb Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sun, 11 Jun 2017 00:23:17 +0200 Subject: [PATCH 016/186] gnu: stellarium: Fix build with Qt 5.9. * gnu/packages/astronomy.scm (stellarium)[arguments]: Add phase "patch-version-check". --- gnu/packages/astronomy.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 2aa65d5880..6c486469df 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -141,6 +141,14 @@ programs for the manipulation and analysis of astronomical data.") (arguments `(#:test-target "tests" #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-version-check + (lambda _ + ;; Previously-deprecated cmake variable vanished in + ;; Qt 5.9. + ;; See . + (substitute* "CMakeLists.txt" + (("Qt5Core_VERSION_STRING") "Qt5Core_VERSION")) + #t)) (add-before 'check 'set-offscreen-display (lambda _ ;; make Qt render "offscreen", required for tests From 8cd7f430863f8d877cf2ef9981aeea231d9b70eb Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sun, 11 Jun 2017 00:23:18 +0200 Subject: [PATCH 017/186] gnu: stellarium: Update to 0.15.2. * gnu/packages/astronomy.scm (stellarium): Update to 0.15.2. --- gnu/packages/astronomy.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 6c486469df..879c6ba6a6 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -117,7 +117,7 @@ programs for the manipulation and analysis of astronomical data.") (define-public stellarium (package (name "stellarium") - (version "0.15.1") + (version "0.15.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/stellarium/" @@ -125,7 +125,7 @@ programs for the manipulation and analysis of astronomical data.") version "/stellarium-" version ".tar.gz")) (sha256 (base32 - "04avigz8i8mi2x6x71bqr9np85n1p9qnvbj2hxr947f1jv22zr8g")))) + "19nxj482g1hh9qicgskpcgy61pri254jgxnkd10icxbnza4c0hv9")))) (build-system cmake-build-system) (inputs `(("qtbase" ,qtbase) From f37f949dfd3f148431d4f533a3d2297421db5185 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 10 Jun 2017 16:06:34 +0200 Subject: [PATCH 018/186] gnu: Add minicom. * gnu/packages/engineering.scm (minicom): New variable. --- gnu/packages/engineering.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 7ad93653e9..7568a1a9c3 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -57,6 +57,7 @@ #:use-module (gnu packages linux) ;FIXME: for pcb #:use-module (gnu packages m4) #:use-module (gnu packages maths) + #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -812,3 +813,32 @@ the 'showing the effect of'-style of operation.") for mathematical functions. It also provides an machine-independent interface to select the best such procedures to use on a given system.") (license license:gpl3+))) + +(define-public minicom + (package + (name "minicom") + (version "2.7.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://alioth.debian.org/frs/download.php/" + "file/4215/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1wa1l36fa4npd21xa9nz60yrqwkk5cq713fa3p5v0zk7g9mq6bsk")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--enable-lock-dir=/var/lock") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-lock-check + (lambda _ + (substitute* "configure" + (("test -d [$]UUCPLOCK") "true")) + #t))))) + (inputs + `(("ncurses" ,ncurses))) + (home-page "https://alioth.debian.org/projects/minicom/") + (synopsis "Serial terminal emulator") + (description "@code{minicom} is a serial terminal emulator.") + (license license:gpl2+))) From af5faef90f810ca8508f210ec0dab152e812e610 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 12 Jun 2017 10:32:16 +0300 Subject: [PATCH 019/186] gnu: aircrack-ng: Fix building on non-Intel machines. * gnu/packages/networking.scm (aircrack-ng)[arguments]: Only use system optimizations on x86_64 and i686 machines. --- gnu/packages/networking.scm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 57a02e9f4a..d8fd1c80a0 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2016, 2017 Pjotr Prins ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,12 +32,12 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages networking) - #:use-module (guix build-system perl) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) + #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages admin) @@ -64,7 +65,8 @@ #:use-module (gnu packages python) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) - #:use-module (gnu packages valgrind)) + #:use-module (gnu packages valgrind) + #:use-module (ice-9 match)) (define-public macchanger (package @@ -634,7 +636,12 @@ live network and disk I/O bandwidth monitor.") "libnl=true" "pcre=true" "experimental=true" ;build wesside-ng, etc. - "AVX2FLAG=N" "AVX1FLAG=N" "SSEFLAG=Y" + "AVX2FLAG=N" "AVX1FLAG=N" + ,,@(match (%current-system) + ((or "x86_64-linux" "i686-linux") + `("SSEFLAG=Y")) + (_ + `("NEWSSE=false"))) ,(string-append "prefix=" %output)) #:phases (modify-phases %standard-phases (delete 'configure) ;no configure phase From 1243aaac732abc9b02f7dd3788b45e5f8f7b8cf7 Mon Sep 17 00:00:00 2001 From: nee Date: Sat, 10 Jun 2017 20:27:58 +0200 Subject: [PATCH 020/186] gnu: crawl: Fix savegame upgrades. * gnu/packages/patches/crawl-upgrade-saves.patch: New file. * gnu/local.mk (dist_patch_DATA): Add patch. * gnu/packages/games.scm (crawl)[source]: Apply patch. Signed-off-by: Arun Isaac --- gnu/local.mk | 1 + gnu/packages/games.scm | 6 +- .../patches/crawl-upgrade-saves.patch | 83 +++++++++++++++++++ 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/crawl-upgrade-saves.patch diff --git a/gnu/local.mk b/gnu/local.mk index c2a7ba761b..892d1ee26e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -550,6 +550,7 @@ dist_patch_DATA = \ %D%/packages/patches/cpufrequtils-fix-aclocal.patch \ %D%/packages/patches/cracklib-CVE-2016-6318.patch \ %D%/packages/patches/cracklib-fix-buffer-overflow.patch \ + %D%/packages/patches/crawl-upgrade-saves.patch \ %D%/packages/patches/crda-optional-gcrypt.patch \ %D%/packages/patches/crossmap-allow-system-pysam.patch \ %D%/packages/patches/csound-header-ordering.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index a76ab1ddc2..9bbf5d0220 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -4049,7 +4049,8 @@ fish. The whole game is accompanied by quiet, comforting music.") version "-nodeps.tar.xz"))) (sha256 (base32 - "0127dgldij2h4m7cf32yy9ndv4vcz03g4km71lmxrsi5mw7ljgpd")))) + "0127dgldij2h4m7cf32yy9ndv4vcz03g4km71lmxrsi5mw7ljgpd")) + (patches (search-patches "crawl-upgrade-saves.patch")))) (build-system gnu-build-system) (inputs `(("lua51" ,lua-5.1) @@ -4101,6 +4102,9 @@ fabulous Orb of Zot.") license:zlib license:asl2.0)))) +;; The linter here claims that patch file names should start with the package +;; name. But, in this case, the patches are inherited from crawl with the +;; "crawl-" prefix instead of "crawl-tiles-". (define-public crawl-tiles (package (inherit crawl) diff --git a/gnu/packages/patches/crawl-upgrade-saves.patch b/gnu/packages/patches/crawl-upgrade-saves.patch new file mode 100644 index 0000000000..301942dc30 --- /dev/null +++ b/gnu/packages/patches/crawl-upgrade-saves.patch @@ -0,0 +1,83 @@ +Store the crawl version in the textdatabases in SAVEDIR and +upgrade the databases when the crawl version changes. + +By default crawl checks for a mtime difference on files in DATADIR to see if an +upgrade is required, but guix nulls all file dates, +and crawl would never upgrade saves. + +--- a/source/database.cc 2016-05-31 09:56:08.000000000 +0200 ++++ a/source/database.cc 2017-06-05 03:00:19.270632107 +0200 +@@ -25,6 +25,7 @@ + #include "syscalls.h" + #include "threads.h" + #include "unicode.h" ++#include "version.h" + + // TextDB handles dependency checking the db vs text files, creating the + // db, loading, and destroying the DB. +@@ -55,6 +56,7 @@ + vector _input_files; + DBM* _db; + string timestamp; ++ string version; + TextDB *_parent; + const char* lang() { return _parent ? Options.lang_name : 0; } + public: +@@ -165,7 +167,7 @@ + + TextDB::TextDB(const char* db_name, const char* dir, ...) + : _db_name(db_name), _directory(dir), +- _db(nullptr), timestamp(""), _parent(0), translation(0) ++ _db(nullptr), timestamp(""), version(""), _parent(0), translation(0) + { + va_list args; + va_start(args, dir); +@@ -187,7 +189,7 @@ + : _db_name(parent->_db_name), + _directory(parent->_directory + Options.lang_name + "/"), + _input_files(parent->_input_files), // FIXME: pointless copy +- _db(nullptr), timestamp(""), _parent(parent), translation(nullptr) ++ _db(nullptr), timestamp(""), version(""), _parent(parent), translation(nullptr) + { + } + +@@ -202,6 +204,9 @@ + return false; + + timestamp = _query_database(*this, "TIMESTAMP", false, false, true); ++ version = _query_database(*this, "VERSION", false, false, true); ++ if (version.empty()) ++ return false; + if (timestamp.empty()) + return false; + +@@ -245,6 +250,9 @@ + string ts; + bool no_files = true; + ++ if (string(Version::Long) != version) ++ return true; ++ + for (const string &file : _input_files) + { + string full_input_path = _directory + file; +@@ -261,7 +269,7 @@ + ts += buf; + } + +- if (no_files && timestamp.empty()) ++ if (no_files && timestamp.empty() && version.empty()) + { + // No point in empty databases, although for simplicity keep ones + // for disappeared translations for now. +@@ -321,7 +329,10 @@ + _store_text_db(full_input_path, _db); + } + } ++ ++ string current_version = string(Version::Long); + _add_entry(_db, "TIMESTAMP", ts); ++ _add_entry(_db, "VERSION", current_version); + + dbm_close(_db); + _db = 0; From b46712159c15f72fc28b71d17d5a7c74fcb64ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 12 Jun 2017 15:38:49 +0200 Subject: [PATCH 021/186] store: Speed up 'add-to-store'. * guix/store.scm (add-to-store): Remove 'lstat' call. --- guix/store.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index c94dfea959..ed588aae47 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -830,10 +830,11 @@ bits are kept. HASH-ALGO must be a string such as \"sha256\". When RECURSIVE? is true, call (SELECT? FILE STAT) for each directory entry, where FILE is the entry's absolute file name and STAT is the result of 'lstat'; exclude entries for which SELECT? does not return true." - (let* ((st (false-if-exception (lstat file-name))) - (args `(,st ,basename ,recursive? ,hash-algo ,select?)) + ;; Note: We don't stat FILE-NAME at each call, and thus we assume that + ;; the file remains unchanged for the lifetime of SERVER. + (let* ((args `(,file-name ,basename ,recursive? ,hash-algo ,select?)) (cache (nix-server-add-to-store-cache server))) - (or (and st (hash-ref cache args)) + (or (hash-ref cache args) (let ((path (add-to-store server basename recursive? hash-algo file-name #:select? select?))) From 015f17e8b9eff97f656852180ac51c75438d7f9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 12 Jun 2017 17:11:22 +0200 Subject: [PATCH 022/186] derivations: Introduce 'read-derivation-from-file'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This avoids the open/fstat/close syscalls upon a cache hit that we had with the previous idiom: (call-with-input-file file read-derivation) where caching happened in 'read-derivation' itself. * guix/derivations.scm (%read-derivation): Rename to... (read-derivation): ... this. (read-derivation-from-file): New procedure. (derivation-prerequisites, substitution-oracle) (derivation-prerequisites-to-build): (derivation-path->output-path, derivation-path->output-paths): (derivation-path->base16-hash, map-derivation): Use 'read-derivation-from-file' instead of (call-with-input-file … read-derivation). * guix/grafts.scm (item->deriver): Likewise. * guix/scripts/build.scm (log-url, options->things-to-build): Likewise. * guix/scripts/graph.scm (file->derivation): Remove. (derivation-dependencies, %derivation-node-type): Use 'read-derivation-from-file' instead. * guix/scripts/offload.scm (guix-offload): Likewise. * guix/scripts/perform-download.scm (guix-perform-download): Likewise. * guix/scripts/publish.scm (load-derivation): Remove. (narinfo-string): Use 'read-derivation-from-file'. --- guix/derivations.scm | 47 +++++++++++++++---------------- guix/grafts.scm | 2 +- guix/scripts/build.scm | 4 +-- guix/scripts/graph.scm | 8 ++---- guix/scripts/offload.scm | 5 ++-- guix/scripts/perform-download.scm | 4 +-- guix/scripts/publish.scm | 6 +--- 7 files changed, 32 insertions(+), 44 deletions(-) diff --git a/guix/derivations.scm b/guix/derivations.scm index b9ad9c9e8c..07803ca94f 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -82,6 +82,7 @@ derivation-hash read-derivation + read-derivation-from-file write-derivation derivation->output-path derivation->output-paths @@ -241,8 +242,7 @@ result is the set of prerequisites of DRV not already in valid." (append inputs result) (fold set-insert input-set inputs) (map (lambda (i) - (call-with-input-file (derivation-input-path i) - read-derivation)) + (read-derivation-from-file (derivation-input-path i))) inputs))))) (define (offloadable-derivation? drv) @@ -295,9 +295,8 @@ substituter many times." ;; info is not already in cache. ;; Also, skip derivations marked as non-substitutable. (append-map (lambda (input) - (let ((drv (call-with-input-file - (derivation-input-path input) - read-derivation))) + (let ((drv (read-derivation-from-file + (derivation-input-path input)))) (if (substitutable-derivation? drv) (derivation-input-output-paths input) '()))) @@ -400,13 +399,15 @@ one-argument procedure similar to that returned by 'substitution-oracle'." (derivation-inputs drv)) substitute) (map (lambda (i) - (call-with-input-file (derivation-input-path i) - read-derivation)) + (read-derivation-from-file + (derivation-input-path i))) inputs) (map derivation-input-sub-derivations inputs))))))) -(define (%read-derivation drv-port) - ;; Actually read derivation from DRV-PORT. +(define (read-derivation drv-port) + "Read the derivation from DRV-PORT and return the corresponding +object. Most of the time you'll want to use 'read-derivation-from-file', +which caches things as appropriate and is thus more efficient." (define comma (string->symbol ",")) @@ -482,17 +483,16 @@ one-argument procedure similar to that returned by 'substitution-oracle'." ;; XXX: This is redundant with 'atts-cache' in the store. (make-weak-value-hash-table 200)) -(define (read-derivation drv-port) - "Read the derivation from DRV-PORT and return the corresponding +(define (read-derivation-from-file file) + "Read the derivation in FILE, a '.drv' file, and return the corresponding object." - ;; Memoize that operation because `%read-derivation' is quite expensive, + ;; Memoize that operation because 'read-derivation' is quite expensive, ;; and because the same argument is read more than 15 times on average ;; during something like (package-derivation s gdb). - (let ((file (port-filename drv-port))) - (or (and file (hash-ref %derivation-cache file)) - (let ((drv (%read-derivation drv-port))) - (hash-set! %derivation-cache file drv) - drv)))) + (or (and file (hash-ref %derivation-cache file)) + (let ((drv (call-with-input-file file read-derivation))) + (hash-set! %derivation-cache file drv) + drv))) (define-inlinable (write-sequence lst write-item port) ;; Write each element of LST with WRITE-ITEM to PORT, separating them with a @@ -608,8 +608,7 @@ DRV." (define derivation-path->output-path ;; This procedure is called frequently, so memoize it. (let ((memoized (mlambda (path output) - (derivation->output-path (call-with-input-file path - read-derivation) + (derivation->output-path (read-derivation-from-file path) output)))) (lambda* (path #:optional (output "out")) "Read the derivation from PATH (`/gnu/store/xxx.drv'), and return the store @@ -619,7 +618,7 @@ path of its output OUTPUT." (define (derivation-path->output-paths path) "Read the derivation from PATH (`/gnu/store/xxx.drv'), and return the list of name/path pairs of its outputs." - (derivation->output-paths (call-with-input-file path read-derivation))) + (derivation->output-paths (read-derivation-from-file path))) ;;; @@ -630,10 +629,8 @@ list of name/path pairs of its outputs." (mlambda (file) "Return a string containing the base16 representation of the hash of the derivation at FILE." - (call-with-input-file file - (compose bytevector->base16-string - derivation-hash - read-derivation)))) + (bytevector->base16-string + (derivation-hash (read-derivation-from-file file))))) (define derivation-hash ; `hashDerivationModulo' in derivations.cc (mlambda (drv) @@ -896,7 +893,7 @@ recursively." ((_ . replacement) (list replacement)) (#f - (let* ((drv (loop (call-with-input-file path read-derivation)))) + (let* ((drv (loop (read-derivation-from-file path)))) (cons drv sub-drvs)))))))) (let loop ((drv drv)) diff --git a/guix/grafts.scm b/guix/grafts.scm index 11885db226..d6b0e93e8d 100644 --- a/guix/grafts.scm +++ b/guix/grafts.scm @@ -156,7 +156,7 @@ name of the output of that derivation ITEM corresponds to (for example (() ;ITEM is a plain file (values #f #f)) ((drv-file _ ...) - (let ((drv (call-with-input-file drv-file read-derivation))) + (let ((drv (read-derivation-from-file drv-file))) (values drv (any (match-lambda ((name . path) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 558e8e7719..0571b874f1 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -87,7 +87,7 @@ found. Return #f if no build log was found." ;; Usually we'll have more luck with the output file name since ;; the deriver that was used by the server could be different, so ;; try one of the output file names. - (let ((drv (call-with-input-file file read-derivation))) + (let ((drv (read-derivation-from-file file))) (or (find-url (derivation->output-path drv)) (find-url file)))) (lambda args @@ -599,7 +599,7 @@ build---packages, gexps, derivations, and so on." (append-map (match-lambda (('argument . (? string? spec)) (cond ((derivation-path? spec) - (list (call-with-input-file spec read-derivation))) + (list (read-derivation-from-file spec))) ((store-path? spec) ;; Nothing to do; maybe for --log-file. '()) diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm index 0af1fa3ad3..d5be442884 100644 --- a/guix/scripts/graph.scm +++ b/guix/scripts/graph.scm @@ -221,15 +221,11 @@ GNU-BUILD-SYSTEM have zero dependencies." ;;; Derivation DAG. ;;; -(define (file->derivation file) - "Read the derivation from FILE and return it." - (call-with-input-file file read-derivation)) - (define (derivation-dependencies obj) "Return the objects and store items corresponding to the dependencies of OBJ, a or store item." (if (derivation? obj) - (append (map (compose file->derivation derivation-input-path) + (append (map (compose read-derivation-from-file derivation-input-path) (derivation-inputs obj)) (derivation-sources obj)) '())) @@ -263,7 +259,7 @@ a plain store file." ((? derivation-path? item) (mbegin %store-monad ((store-lift add-temp-root) item) - (return (list (file->derivation item))))) + (return (list (read-derivation-from-file item))))) (x (raise (condition (&message (message "unsupported argument for \ diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index 77b340cff6..566d117b02 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -652,9 +652,8 @@ machine." (with-error-handling (process-request (equal? (match:substring match 1) "1") (match:substring match 2) ; system - (call-with-input-file - (match:substring match 3) - read-derivation) + (read-derivation-from-file + (match:substring match 3)) (string-tokenize (match:substring match 4) not-coma) #:print-build-trace? print-build-trace? diff --git a/guix/scripts/perform-download.scm b/guix/scripts/perform-download.scm index aee506af46..18e2fc92f2 100644 --- a/guix/scripts/perform-download.scm +++ b/guix/scripts/perform-download.scm @@ -106,11 +106,11 @@ of GnuTLS over HTTPS, before we have built GnuTLS. See (match args (((? derivation-path? drv) (? store-path? output)) (assert-low-privileges) - (perform-download (call-with-input-file drv read-derivation) + (perform-download (read-derivation-from-file drv) output)) (((? derivation-path? drv)) ;backward compatibility (assert-low-privileges) - (perform-download (call-with-input-file drv read-derivation))) + (perform-download (read-derivation-from-file drv))) (("--version") (show-version-and-exit)) (x diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index c49c0c3e20..a7e3e6d629 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -225,10 +225,6 @@ compression disabled~%")) ("WantMassQuery" . 0) ("Priority" . 100))) -(define (load-derivation file) - "Read the derivation from FILE." - (call-with-input-file file read-derivation)) - (define (signed-string s) "Sign the hash of the string S with the daemon's key." (let* ((public-key (%public-key)) @@ -286,7 +282,7 @@ References: ~a~%~a" base-info (catch 'system-error (lambda () - (let ((drv (load-derivation deriver))) + (let ((drv (read-derivation-from-file deriver))) (format #f "~aSystem: ~a~%Deriver: ~a~%" base-info (derivation-system drv) (basename deriver)))) From c476f029eaab950aea4cd309fec443b1d65432c0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 11 Jun 2017 18:06:11 +0200 Subject: [PATCH 023/186] gnu: libinput: Update to 1.7.3. * gnu/packages/freedesktop.scm (libinput, libinput-minimal): Update to 1.7.3. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index ef07f2d64b..e4b773078f 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -129,14 +129,14 @@ freedesktop.org project.") (define-public libinput (package (name "libinput") - (version "1.7.0") + (version "1.7.3") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" name "-" version ".tar.xz")) (sha256 (base32 - "1a58q60j3456d3qfhkkv319aq2hn4bpimcyhib4yks817pv719hj")))) + "07fbzxddvhjcch43hdxb24sj7ri96zzpcjalvsicmw0i4wnn2v89")))) (build-system gnu-build-system) (native-inputs `(("cairo" ,cairo) From c4395e782ea7c1392c91c3b491742127eb3de485 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 12 Jun 2017 19:22:56 +0200 Subject: [PATCH 024/186] gnu: nspr: Update to 4.15. * gnu/packages/gnuzilla.scm (nspr): Update to 4.15. --- gnu/packages/gnuzilla.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 8d03f0e00d..23d8d73a7e 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -250,7 +250,7 @@ in C/C++.") (define-public nspr (package (name "nspr") - (version "4.14") + (version "4.15") (source (origin (method url-fetch) (uri (string-append @@ -258,7 +258,7 @@ in C/C++.") version "/src/nspr-" version ".tar.gz")) (sha256 (base32 - "1m8p9l3prabhfxz6zs889fl7gmcka72a62i46a8klh2pca11iz34")))) + "101dksqm1z0hzd7ap82ccbxjr48s6q3xhshdl81qkj6hqdmy1p97")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) From a10040e09b29eef72404c1f757fa7e20eb501dbb Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 12 Jun 2017 19:27:02 +0200 Subject: [PATCH 025/186] gnu: nss, nss-certs: Update to 3.31. Release notes: * gnu/packages/certs.scm (nss-certs): Update to 3.31. * gnu/packages/gnuzilla.scm (nss): Likewise. [source]: Remove upstream 'nss-disable-long-b64-tests' patch. [arguments]<#:phases>: Move armhf timeout substitution ... * gnu/packages/patches/nss-increase-test-timeout.patch: ... here. * gnu/packages/patches/nss-disable-long-b64-tests.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/certs.scm | 4 +-- gnu/packages/gnuzilla.scm | 15 ++------ .../patches/nss-disable-long-b64-tests.patch | 34 ------------------- .../patches/nss-increase-test-timeout.patch | 6 ++-- 5 files changed, 7 insertions(+), 53 deletions(-) delete mode 100644 gnu/packages/patches/nss-disable-long-b64-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index 892d1ee26e..f761ad21e4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -852,7 +852,6 @@ dist_patch_DATA = \ %D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ninja-zero-mtime.patch \ %D%/packages/patches/node-9077.patch \ - %D%/packages/patches/nss-disable-long-b64-tests.patch \ %D%/packages/patches/nss-increase-test-timeout.patch \ %D%/packages/patches/nss-pkgconfig.patch \ %D%/packages/patches/ntfs-3g-CVE-2017-0358.patch \ diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index 85a8badc55..2441de6631 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -74,7 +74,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.30.2") + (version "3.31") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -85,7 +85,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "096frzvyp3z257x84rxknscfgsbavzh2a0gyibx7kvmw4vzpfjhd")))) + "0pd643a8ns7q5az5ai3ascrw666i2kbfiyy1c9hlhw9jd8jn21g9")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 23d8d73a7e..e0f80a1868 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -282,7 +282,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.30.2") + (version "3.31") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -293,10 +293,9 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "096frzvyp3z257x84rxknscfgsbavzh2a0gyibx7kvmw4vzpfjhd")) + "0pd643a8ns7q5az5ai3ascrw666i2kbfiyy1c9hlhw9jd8jn21g9")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch" - "nss-disable-long-b64-tests.patch" "nss-increase-test-timeout.patch")))) (build-system gnu-build-system) (outputs '("out" "bin")) @@ -329,16 +328,6 @@ in the Mozilla clients.") `((setenv "USE_64" "1"))) (_ '())) - ;; The timeout values in "increase-test-timeouts" are still - ;; too low, so apply this workaround on armhf for now to avoid - ;; rebuilding on all platforms. This should be incorporated in - ;; the patch for the next update. - ;; https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00472.html - ,@(if (string-prefix? "armhf" (or (%current-target-system) - (%current-system))) - `((substitute* "nss/gtests/ssl_gtest/tls_connect.cc" - (("25000\\);") "300000);"))) - '()) #t)) (replace 'check (lambda _ diff --git a/gnu/packages/patches/nss-disable-long-b64-tests.patch b/gnu/packages/patches/nss-disable-long-b64-tests.patch deleted file mode 100644 index 612d94128d..0000000000 --- a/gnu/packages/patches/nss-disable-long-b64-tests.patch +++ /dev/null @@ -1,34 +0,0 @@ -Disable long b64 tests, which consistently fail on armhf. -This is based on an excerpt of the following upstream patch: - - https://hg.mozilla.org/projects/nss/rev/00b2cc2b33c7 - -(we exclude the part of the upstream patch that reverts -an earlier failed attempt, and adapt the file names) - -diff --git a/gtests/util_gtest/util_b64_unittest.cc b/gtests/util_gtest/util_b64_unittest.cc ---- a/nss/gtests/util_gtest/util_b64_unittest.cc -+++ b/nss/gtests/util_gtest/util_b64_unittest.cc -@@ -63,17 +63,19 @@ TEST_F(B64EncodeDecodeTest, EncDecTest) - - TEST_F(B64EncodeDecodeTest, FakeDecTest) { EXPECT_TRUE(TestFakeDecode(100)); } - - TEST_F(B64EncodeDecodeTest, FakeEncDecTest) { - EXPECT_TRUE(TestFakeEncode(100)); - } - - // These takes a while ... --TEST_F(B64EncodeDecodeTest, LongFakeDecTest1) { -+TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeDecTest1) { - EXPECT_TRUE(TestFakeDecode(0x66666666)); - } --TEST_F(B64EncodeDecodeTest, LongFakeEncDecTest1) { TestFakeEncode(0x3fffffff); } --TEST_F(B64EncodeDecodeTest, LongFakeEncDecTest2) { -+TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeEncDecTest1) { -+ TestFakeEncode(0x3fffffff); -+} -+TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeEncDecTest2) { - EXPECT_FALSE(TestFakeEncode(0x40000000)); - } - - } // namespace nss_test diff --git a/gnu/packages/patches/nss-increase-test-timeout.patch b/gnu/packages/patches/nss-increase-test-timeout.patch index 1e24940322..55117c02e9 100644 --- a/gnu/packages/patches/nss-increase-test-timeout.patch +++ b/gnu/packages/patches/nss-increase-test-timeout.patch @@ -1,4 +1,4 @@ -We've seen some tests take more than 20s to complete on a busy armhf +We've seen some tests take up to 60s to complete on a busy armhf machine. Even a busy x86_64 machine can use more than 5s on some tests. Increase timeouts to increase chances of a successful build. @@ -10,7 +10,7 @@ Increase timeouts to increase chances of a successful build. ASSERT_TRUE_WAIT((client_->state() != TlsAgent::STATE_CONNECTING) && (server_->state() != TlsAgent::STATE_CONNECTING), - 5000); -+ 25000); ++ 300000); } void TlsConnectTestBase::EnableExtendedMasterSecret() { @@ -19,7 +19,7 @@ Increase timeouts to increase chances of a successful build. failing_agent = client_; } - ASSERT_TRUE_WAIT(failing_agent->state() == TlsAgent::STATE_ERROR, 5000); -+ ASSERT_TRUE_WAIT(failing_agent->state() == TlsAgent::STATE_ERROR, 25000); ++ ASSERT_TRUE_WAIT(failing_agent->state() == TlsAgent::STATE_ERROR, 300000); } void TlsConnectTestBase::ConfigureVersion(uint16_t version) { From af842d45b139a1f93a67606feda0e46f10fce50b Mon Sep 17 00:00:00 2001 From: Muriithi Frederick Muriuki Date: Sun, 11 Jun 2017 04:07:16 +0300 Subject: [PATCH 026/186] gnu: python-sphinx-rtd-theme: Update to 0.2.4. * gnu/packages/python.scm (python-sphinx-rtd-theme): Update to 0.2.4. [source]: Use 'pypi-uri'. Signed-off-by: Marius Bakke --- gnu/packages/python.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 03e6bb6567..e0fc7685ab 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3134,16 +3134,14 @@ sources.") (define-public python-sphinx-rtd-theme (package (name "python-sphinx-rtd-theme") - (version "0.1.6") + (version "0.2.4") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/s/" - "sphinx_rtd_theme/sphinx_rtd_theme-" - version ".tar.gz")) + (uri (pypi-uri "sphinx_rtd_theme" version)) (sha256 (base32 - "19nw3rn7awplcdrz63kg1njqwkbymfg9lwn7l2grhdyhyr2gaa8g")))) + "05rlhjzdyapr2w74jjs7mrm8hi69qskcr5vya9f9drpsys7lpxrd")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; No tests. (propagated-inputs From ef74a425e6137e46b7f9f42377620b23291f5b35 Mon Sep 17 00:00:00 2001 From: Muriithi Frederick Muriuki Date: Sun, 11 Jun 2017 04:07:17 +0300 Subject: [PATCH 027/186] gnu: python-rednose: Add the python2 variant. * gnu/packages/python.scm (python2-rednose): New variable. Signed-off-by: Marius Bakke --- gnu/packages/python.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e0fc7685ab..352a5f3334 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -13134,6 +13134,9 @@ asynchronous messaging environments.") @command{nosetests} command of the Python Nose unit test framework.") (license license:bsd-3))) +(define-public python2-rednose + (package-with-python2 python-rednose)) + (define-public python-flask-restplus (package (name "python-flask-restplus") From e831283de80a06e901028d8f3ebc900e6cc96517 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sat, 10 Jun 2017 23:29:16 -0400 Subject: [PATCH 028/186] gnu: emacs-elfeed: Update to 2.1.1. * gnu/packages/emacs.scm (emacs-elfeed): Update to 2.1.1. Signed-off-by: Arun Isaac --- 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 a4cb4a0b3a..e836ec2fb5 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3144,7 +3144,7 @@ If you want to mark a folder manually as a project just create an empty (define-public emacs-elfeed (package (name "emacs-elfeed") - (version "2.1.0") + (version "2.1.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/skeeto/elfeed/archive/" @@ -3152,7 +3152,7 @@ If you want to mark a folder manually as a project just create an empty (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "145glas04zd0s2rmnif46vhyijs4z03v871gfp1dcrwxvvvns8ap")))) + "1wlwc8fbkg6w1c8p856ikc20xm72f51clnzz419p0g8cavy27npw")))) (build-system emacs-build-system) (arguments `(#:phases From 847284e196891d9970279e3ff6e4b37a59b8c40e Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sat, 10 Jun 2017 23:29:17 -0400 Subject: [PATCH 029/186] gnu: emacs-yaml-mode: Update to 0.0.13. * gnu/packages/emacs.scm (emacs-yaml-mode): Update to 0.0.13. Signed-off-by: Arun Isaac --- 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 e836ec2fb5..0dae80867f 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3305,7 +3305,7 @@ that uses the standard completion function completing-read.") (define-public emacs-yaml-mode (package (name "emacs-yaml-mode") - (version "0.0.12") + (version "0.0.13") (source (origin (method url-fetch) (uri (string-append "https://raw.githubusercontent.com/yoshiki" @@ -3313,7 +3313,7 @@ that uses the standard completion function completing-read.") (file-name (string-append "yaml-mode-" version ".el")) (sha256 (base32 - "17wq433ycli0qx4gdhgrmb392qblm6y2dwcyn38j5ja1lasfb0ax")))) + "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj")))) (build-system emacs-build-system) (home-page "https://github.com/yoshiki/yaml-mode") (synopsis "Major mode for editing YAML files") From 9dfc5bb5a9e4b252a7f5bfc1c04bbeca8ac3e4a1 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sat, 10 Jun 2017 23:29:18 -0400 Subject: [PATCH 030/186] gnu: emacs-helm: Update to 2.7.1. * gnu/packages/emacs.scm (emacs-helm): Update to 2.7.1. Signed-off-by: Arun Isaac --- 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 0dae80867f..15b23ee407 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3351,7 +3351,7 @@ Dust.js, React/JSX, Angularjs, ejs, etc.") (define-public emacs-helm (package (name "emacs-helm") - (version "2.7.0") + (version "2.7.1") (source (origin (method url-fetch) (uri (string-append @@ -3360,7 +3360,7 @@ Dust.js, React/JSX, Angularjs, ejs, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1scdirpclgq3pi1j2c90gqaaqg1pgvasp98f4jqw8c5xbqcr7jdw")))) + "0pay8pi3fszykgskfbxsp4byad497cgfz4m886mxnkba1naxf6h7")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-async" ,emacs-async) From f9f77a9ef0eddcf6db2e20a3dbc3c06980565645 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sat, 10 Jun 2017 23:29:19 -0400 Subject: [PATCH 031/186] gnu: emacs-iedit: Update to 0.9.9.9. * gnu/packages/emacs.scm (emacs-iedit): Update to 0.9.9.9. Signed-off-by: Arun Isaac --- 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 15b23ee407..c22a207e21 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2780,7 +2780,7 @@ highlighted. Pressing that character will switch to that window.") (define-public emacs-iedit (package (name "emacs-iedit") - (version "0.9.9") + (version "0.9.9.9") (source (origin (method url-fetch) @@ -2789,7 +2789,7 @@ highlighted. Pressing that character will switch to that window.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00v86zllcsivmiibigbr91qij2zdf1lr9db8z8again1sn63wkdj")))) + "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0")))) (build-system emacs-build-system) (home-page "http://www.emacswiki.org/emacs/Iedit") (synopsis "Edit multiple regions in the same way simultaneously") From d30c4841def56cd1573c83b179b94840a279c4d4 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sat, 10 Jun 2017 23:29:20 -0400 Subject: [PATCH 032/186] gnu: emacs-markdown-mode: Update to 2.2. * gnu/packages/emacs.scm (emacs-markdown-mode): Update to 2.2. Signed-off-by: Arun Isaac --- 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 c22a207e21..8ff2d0ac9b 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3097,7 +3097,7 @@ strings, and code folding.") (define-public emacs-markdown-mode (package (name "emacs-markdown-mode") - (version "2.1") + (version "2.2") (source (origin (method url-fetch) (uri (string-append "https://raw.githubusercontent.com/jrblevin" @@ -3106,7 +3106,7 @@ strings, and code folding.") (file-name (string-append "markdown-mode-" version ".el")) (sha256 (base32 - "1faibar32jnjia9202swblw91q6z1g5s4k9xmypwjahfh8yznl6w")))) + "04isd2sdnms9acpmkd6n7b7y7j0x2kank2kry0zwbxs3bwdavgav")))) (build-system emacs-build-system) (home-page "http://jblevins.org/projects/markdown-mode/") (synopsis "Emacs Major mode for Markdown files") From 81fa2229ecb80a8ae90c8e24771e1df880e75383 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 8 Jun 2017 20:12:38 +0200 Subject: [PATCH 033/186] services: rottlog: Define objects. * gnu/services/admin.scm (): New record type. (syslog-rotation-config, simple-rotation-config): Remove. (%default-rotations): Define as a list of objects. (log-rotation->config, log-rotations->/etc-entries): New procedures. ()[periodic-rotations]: Remove. [rotations]: New field. (rottlog-etc): Use 'log-rotations->/etc-entries'. * doc/guix.texi (Log Rotation): Update accordingly. --- doc/guix.texi | 58 +++++++++++++++------- gnu/services/admin.scm | 110 +++++++++++++++++++++++++++++------------ 2 files changed, 118 insertions(+), 50 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 83f20c8598..b8675bde2a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -9543,7 +9543,7 @@ services admin)} module provides an interface to GNU@tie{}Rot[t]log, a log rotation tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual}). The example below defines an operating system that provides log rotation -with the default settings. +with the default settings, for commonly encountered log files. @lisp (use-modules (guix) (gnu)) @@ -9576,23 +9576,8 @@ The Rottlog package to use. The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual}). -@item @code{periodic-rotations} (default: @code{`(("weekly" %default-rotations))}) -A list of Rottlog period-name/period-config tuples. - -For example, taking an example from the Rottlog manual (@pxref{Period -Related File Examples,,, rottlog, GNU Rot[t]log Manual}), a valid tuple -might be: - -@example -("daily" ,(plain-file "daily" - "\ - /var/log/apache/* @{ - storedir apache-archives - rotate 6 - notifempty - nocompress - @}")) -@end example +@item @code{rotations} (default: @code{%default-rotations}) +A list of @code{log-rotation} objects as defined below. @item @code{jobs} This is a list of gexps where each gexp corresponds to an mcron job @@ -9600,9 +9585,44 @@ specification (@pxref{Scheduled Job Execution}). @end table @end deftp +@deftp {Data Type} log-rotation +Data type representing the rotation of a group of log files. + +Taking an example from the Rottlog manual (@pxref{Period Related File +Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be +defined like this: + +@example +(log-rotation + (frequency 'daily) + (files '("/var/log/apache/*")) + (options '("storedir apache-archives" + "rotate 6" + "notifempty" + "nocompress"))) +@end example + +The list of fields is as follows: + +@table @asis +@item @code{frequency} (default: @code{'weekly}) +The log rotation frequency, a symbol. + +@item @code{files} +The list of files or file glob patterns to rotate. + +@item @code{options} (default: @code{'()}) +The list of rottlog options for this rotation (@pxref{Configuration +parameters,,, rottlog, GNU Rot[t]lg Manual}). + +@item @code{post-rotate} (default: @code{#f}) +Either @code{#f} or a gexp to execute once the rotation has completed. +@end table +@end deftp + @defvr {Scheme Variable} %default-rotations Specifies weekly rotation of @var{%rotated-files} and -@code{"/var/log/shepherd.log"}. +a couple of other files. @end defvr @defvr {Scheme Variable} %rotated-files diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm index 6ac24e32b0..99f3b1da16 100644 --- a/gnu/services/admin.scm +++ b/gnu/services/admin.scm @@ -27,8 +27,17 @@ #:use-module (guix packages) #:use-module (guix records) #:use-module (srfi srfi-1) + #:use-module (ice-9 vlist) #:export (%default-rotations %rotated-files + + log-rotation + log-rotation? + log-rotation-frequency + log-rotation-files + log-rotation-options + log-rotation-post-rotate + rottlog-configuration rottlog-configuration? rottlog-service @@ -40,41 +49,78 @@ ;;; /etc/rottlog/{rc,hourly|daily|weekly}. Example usage ;;; ;;; (mcron-service) -;;; (service rottlog-service-type (rottlog-configuration)) +;;; (service rottlog-service-type) ;;; ;;; Code: +(define-record-type* log-rotation make-log-rotation + log-rotation? + (files log-rotation-files) ;list of strings + (frequency log-rotation-frequency ;symbol + (default 'weekly)) + (post-rotate log-rotation-post-rotate ;#f | gexp + (default #f)) + (options log-rotation-options ;list of strings + (default '()))) + (define %rotated-files ;; Syslog files subject to rotation. '("/var/log/messages" "/var/log/secure" "/var/log/maillog")) -(define (syslog-rotation-config files) - #~(string-append #$(string-join files ",") - " { - sharedscripts - postrotate - " #$coreutils "/bin/kill -HUP $(cat /var/run/syslog.pid) 2> /dev/null - endscript -} -")) - -(define (simple-rotation-config files) - #~(string-append #$(string-join files ",") " { - sharedscripts -} -")) - (define %default-rotations - `(("weekly" - ,(computed-file "rottlog.weekly" - #~(call-with-output-file #$output - (lambda (port) - (display #$(syslog-rotation-config %rotated-files) - port) - (display #$(simple-rotation-config - '("/var/log/shepherd.log" - "/var/log/guix-daemon.log")) - port))))))) + (list (log-rotation ;syslog files + (files %rotated-files) + + ;; Restart syslogd after rotation. + (options '("sharedscripts")) + (post-rotate #~(let ((pid (call-with-input-file "/var/run/syslog.pid" + read))) + (kill pid SIGHUP)))) + (log-rotation + (files '("/var/log/shepherd.log" "/var/log/guix-daemon.log"))))) + +(define (log-rotation->config rotation) + "Return a string-valued gexp representing the rottlog configuration snippet +for ROTATION." + (define post-rotate + (let ((post (log-rotation-post-rotate rotation))) + (and post + (program-file "rottlog-post-rotate.scm" post)))) + + #~(let ((post #$post-rotate)) + (string-append (string-join '#$(log-rotation-files rotation) ",") + " {" + #$(string-join (log-rotation-options rotation) + "\n " 'prefix) + (if post + (string-append "\n postrotate\n " post + "\n endscript\n") + "") + "\n}\n"))) + +(define (log-rotations->/etc-entries rotations) + "Return the list of /etc entries for ROTATIONS, a list of ." + (define (frequency-file frequency rotations) + (computed-file (string-append "rottlog." (symbol->string frequency)) + #~(call-with-output-file #$output + (lambda (port) + (for-each (lambda (str) + (display str port)) + (list #$@(map log-rotation->config + rotations))))))) + + (let* ((frequencies (delete-duplicates + (map log-rotation-frequency rotations))) + (table (fold (lambda (rotation table) + (vhash-consq (log-rotation-frequency rotation) + rotation table)) + vlist-null + rotations))) + (map (lambda (frequency) + `(,(symbol->string frequency) + ,(frequency-file frequency + (vhash-foldq* cons '() frequency table)))) + frequencies))) (define (default-jobs rottlog) (list #~(job '(next-hour '(0)) ;midnight @@ -91,15 +137,17 @@ (default rottlog)) (rc-file rottlog-rc-file ;file-like (default (file-append rottlog "/etc/rc"))) - (periodic-rotations rottlog-periodic-rotations ;list of (name file) tuples + (rotations rottlog-rotations ;list of (default %default-rotations)) (jobs rottlog-jobs ;list of (default #f))) (define (rottlog-etc config) - `(("rottlog" ,(file-union "rottlog" - (cons `("rc" ,(rottlog-rc-file config)) - (rottlog-periodic-rotations config)))))) + `(("rottlog" + ,(file-union "rottlog" + (cons `("rc" ,(rottlog-rc-file config)) + (log-rotations->/etc-entries + (rottlog-rotations config))))))) (define (rottlog-jobs-or-default config) (or (rottlog-jobs config) From 254ea3f945e8bc44f8c3a4159302f24f4fe5f216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 8 Jun 2017 20:23:08 +0200 Subject: [PATCH 034/186] services: rottlog: Make extensible. * gnu/services/admin.scm (rottlog-service-type)[compose, extend]: New fields. * doc/guix.texi (Log Rotation): Mention extension. --- doc/guix.texi | 3 +++ gnu/services/admin.scm | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index b8675bde2a..ffd2028de9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -9561,6 +9561,9 @@ with the default settings, for commonly encountered log files. This is the type of the Rottlog service, whose value is a @code{rottlog-configuration} object. +Other services can extend this one with new @code{log-rotation} objects +(see below), thereby augmenting the set of files to be rotated. + This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to run the rottlog service. @end defvr diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm index 99f3b1da16..b9e3fa70a4 100644 --- a/gnu/services/admin.scm +++ b/gnu/services/admin.scm @@ -164,6 +164,12 @@ for ROTATION." ;; the documentation. (service-extension profile-service-type (compose list rottlog-rottlog)))) + (compose concatenate) + (extend (lambda (config rotations) + (rottlog-configuration + (inherit config) + (rotations (append (rottlog-rotations config) + rotations))))) (default-value (rottlog-configuration)))) ;;; admin.scm ends here From d782de172c68119499202ddac03fdce53ad89a35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 12 Jun 2017 23:30:53 +0200 Subject: [PATCH 035/186] services: cuirass: Extend rottlog with log rotations. * gnu/services/cuirass.scm (cuirass-log-rotations): New procedure. (cuirass-service-type): Use it to extend ROTTLOG-SERVICE-TYPE. --- gnu/services/cuirass.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm index 6beabc4b3b..88a9a86111 100644 --- a/gnu/services/cuirass.scm +++ b/gnu/services/cuirass.scm @@ -26,6 +26,7 @@ #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu services shepherd) + #:use-module (gnu services admin) #:use-module (gnu system shadow) #:export ( cuirass-configuration @@ -138,6 +139,13 @@ (chown #$cache uid gid) (chown #$db uid gid)))))) +(define (cuirass-log-rotations config) + "Return the list of log rotations that corresponds to CONFIG." + (list (log-rotation + (files (list (cuirass-configuration-log-file config))) + (frequency 'weekly) + (options '("rotate 40"))))) ;worth keeping + (define cuirass-service-type (service-type (name 'cuirass) @@ -145,6 +153,7 @@ (list (service-extension profile-service-type ;for 'info cuirass' (compose list cuirass-configuration-cuirass)) + (service-extension rottlog-service-type cuirass-log-rotations) (service-extension activation-service-type cuirass-activation) (service-extension shepherd-root-service-type cuirass-shepherd-service) (service-extension account-service-type cuirass-account))))) From 5fa7cc5335d64a790d7f0f784a11b25b040cc443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 12 Jun 2017 23:21:24 +0200 Subject: [PATCH 036/186] marionette: Factorize 'wait-for-file'. * gnu/build/marionette.scm (wait-for-file): New procedure. * gnu/tests/base.scm (run-mcron-test)[test](wait-for-file): Remove. Pass second argument in 'wait-for-file' calls. * gnu/tests/ssh.scm (run-ssh-test)[test](wait-for-file): Remove. Pass second argument in 'wait-for-file' calls. * gnu/tests/messaging.scm (run-xmpp-test)[test](guest-wait-for-file): Remove. Use 'wait-for-file' instead, with second argument. --- gnu/build/marionette.scm | 17 ++++++++++++++++- gnu/tests/base.scm | 20 +++----------------- gnu/tests/messaging.scm | 18 ++---------------- gnu/tests/ssh.scm | 18 ++---------------- 4 files changed, 23 insertions(+), 50 deletions(-) diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index 506d6da420..424f2b6713 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.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. ;;; @@ -25,6 +25,7 @@ #:export (marionette? make-marionette marionette-eval + wait-for-file marionette-control marionette-screen-text wait-for-screen-text @@ -164,6 +165,20 @@ QEMU monitor and to the guest's backdoor REPL." (newline repl) (read repl)))) +(define* (wait-for-file file marionette #:key (timeout 10)) + "Wait until FILE exists in MARIONETTE; 'read' its content and return it. If +FILE has not shown up after TIMEOUT seconds, raise an error." + (marionette-eval + `(let loop ((i ,timeout)) + (cond ((file-exists? ,file) + (call-with-input-file ,file read)) + ((> i 0) + (sleep 1) + (loop (- i 1))) + (else + (error "file didn't show up" ,file)))) + marionette)) + (define (marionette-control command marionette) "Run COMMAND in the QEMU monitor of MARIONETTE. COMMAND is a string such as \"sendkey ctrl-alt-f1\" or \"screendump foo.ppm\" (info \"(qemu-doc) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index f5bbfafee3..8389b67f68 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -446,20 +446,6 @@ functionality tests.") (define marionette (make-marionette (list #$command))) - (define (wait-for-file file) - ;; Wait until FILE exists in the guest; 'read' its content and - ;; return it. - (marionette-eval - `(let loop ((i 10)) - (cond ((file-exists? ,file) - (call-with-input-file ,file read)) - ((> i 0) - (sleep 1) - (loop (- i 1))) - (else - (error "file didn't show up" ,file)))) - marionette)) - (mkdir #$output) (chdir #$output) @@ -478,12 +464,12 @@ functionality tests.") ;; runs with the right UID/GID. (test-equal "root's job" '(0 0) - (wait-for-file "/root/witness")) + (wait-for-file "/root/witness" marionette)) ;; Likewise for Alice's job. We cannot know what its GID is since ;; it's chosen by 'groupadd', but it's strictly positive. (test-assert "alice's job" - (match (wait-for-file "/home/alice/witness") + (match (wait-for-file "/home/alice/witness" marionette) ((1000 gid) (>= gid 100)))) @@ -492,7 +478,7 @@ functionality tests.") ;; that don't have a read syntax, hence the string.) (test-equal "root's job with command" "#" - (wait-for-file "/root/witness-touch")) + (wait-for-file "/root/witness-touch" marionette)) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) diff --git a/gnu/tests/messaging.scm b/gnu/tests/messaging.scm index cefb52534a..b76b8e8434 100644 --- a/gnu/tests/messaging.scm +++ b/gnu/tests/messaging.scm @@ -80,21 +80,6 @@ (number->string #$port) "-:5222")))) - (define (guest-wait-for-file file) - ;; Wait until FILE exists in the guest; 'read' its content and - ;; return it. - (marionette-eval - `(let loop ((i 10)) - (cond ((file-exists? ,file) - (call-with-input-file ,file read)) - ((> i 0) - (begin - (sleep 1)) - (loop (- i 1))) - (else - (error "file didn't show up" ,file)))) - marionette)) - (define (host-wait-for-file file) ;; Wait until FILE exists in the host. (let loop ((i 60)) @@ -124,7 +109,8 @@ ;; Check XMPP service's PID. (test-assert "service process id" - (let ((pid (number->string (guest-wait-for-file #$pid-file)))) + (let ((pid (number->string (wait-for-file #$pid-file + marionette)))) (marionette-eval `(file-exists? (string-append "/proc/" ,pid)) marionette))) diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm index 5f06151081..9c83a9cd48 100644 --- a/gnu/tests/ssh.scm +++ b/gnu/tests/ssh.scm @@ -69,20 +69,6 @@ When SFTP? is true, run an SFTP server test." (make-marionette (list #$command "-net" "user,hostfwd=tcp::2222-:22"))) - (define (wait-for-file file) - ;; Wait until FILE exists in the guest; 'read' its content and - ;; return it. - (marionette-eval - `(let loop ((i 10)) - (cond ((file-exists? ,file) - (call-with-input-file ,file read)) - ((> i 0) - (sleep 1) - (loop (- i 1))) - (else - (error "file didn't show up" ,file)))) - marionette)) - (define (make-session-for-test) "Make a session with predefined parameters for a test." (make-session #:user "root" @@ -141,7 +127,7 @@ root with an empty password." ;; Check sshd's PID file. (test-equal "sshd PID" - (wait-for-file #$pid-file) + (wait-for-file #$pid-file marionette) (marionette-eval '(begin (use-modules (gnu services herd) @@ -166,7 +152,7 @@ root with an empty password." (channel-open-session channel) (channel-request-exec channel "echo hello > /root/witness") (and (zero? (channel-get-exit-status channel)) - (wait-for-file "/root/witness")))))) + (wait-for-file "/root/witness" marionette)))))) ;; Connect to the guest over SFTP. Make sure we can write and ;; read a file there. From 5144c044c390d47924ddcfd02196c3d13b1a2bcb Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sun, 11 Jun 2017 01:48:35 +0200 Subject: [PATCH 037/186] gnu: ldc-bootstrap: Update ldc to 0.17.4. * gnu/packages/ldc.scm (ldc-bootstrap): Update ldc to 0.17.4. --- gnu/packages/ldc.scm | 196 +++++++++++++++++++++---------------------- 1 file changed, 98 insertions(+), 98 deletions(-) diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm index 59036a5315..5707b9476b 100644 --- a/gnu/packages/ldc.scm +++ b/gnu/packages/ldc.scm @@ -77,105 +77,105 @@ and freshness without requiring additional information from the user.") (license license:boost1.0))) (define-public ldc-bootstrap - (package - (name "ldc") - (version "0.17.3") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/ldc-developers/ldc/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "135rgwwk82ccqp4n3fhqz4696jmvip90fg5ql2kccq5h1r71gb82")))) - (build-system cmake-build-system) - (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-submodule-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((unpack (lambda (source target) - (with-directory-excursion target - (zero? (system* "tar" "xvf" - (assoc-ref inputs source) - "--strip-components=1")))))) - (and (unpack "phobos-src" "runtime/phobos") - (unpack "druntime-src" "runtime/druntime") - (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite"))))) - (add-after 'unpack-submodule-sources 'patch-dmd2 - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "dmd2/root/port.c" - ((" ::isnan") " isnan") - ((" ::isinf") " isinf") - (("#undef isnan") "") - (("#undef isinf") "")) - #t)) - (add-after 'unpack-submodule-sources 'patch-phobos - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "runtime/phobos/std/process.d" - (("/bin/sh") (which "sh")) - (("echo") (which "echo"))) - (substitute* "runtime/phobos/std/datetime.d" - (("/usr/share/zoneinfo/") - (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))) - (substitute* "tests/d2/dmd-testsuite/Makefile" - (("/bin/bash") (which "bash"))) - ;; FIXME: this test cannot be linked. - (delete-file "tests/d2/dmd-testsuite/runnable/cppa.d") - #t))))) - (inputs - `(("libconfig" ,libconfig) - ("libedit" ,libedit) - ("tzdata" ,tzdata) - ("zlib" ,zlib))) - (native-inputs - `(("llvm" ,llvm) - ("clang" ,clang) - ("python-lit" ,python-lit) - ("python-wrapper" ,python-wrapper) - ("unzip" ,unzip) - ("phobos-src" - ,(origin - (method url-fetch) - (uri (string-append - "https://github.com/ldc-developers/phobos/archive/ldc-v" - version ".tar.gz")) - (sha256 - (base32 - "0qywnvnp019mmmr74aw90ir9f03iz0hc7cgzna609agsar0b27jl")) - (patches (search-patches "ldc-disable-tests.patch")))) - ("druntime-src" - ,(origin - (method url-fetch) - (uri (string-append - "https://github.com/ldc-developers/druntime/archive/ldc-v" - version ".tar.gz")) - (sha256 - (base32 - "0z418n6x2fxac07sxpi4rl69069qiym4w6r9sjppn91q58qh8hjs")))) - ("dmd-testsuite-src" - ,(origin - (method url-fetch) - (uri (string-append - "https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v" - version ".tar.gz")) - (sha256 - (base32 - "196mkfax5y3yqm3gz7jhqhnkjwrvr2m4a8nc9k41l0511ldzsk9x")))))) - (home-page "http://wiki.dlang.org/LDC") - (synopsis "LLVM compiler for the D programming language") - (description - "LDC is a compiler for the D programming language. It is based on the + (let ((runtime-version "0.17.3")) + (package + (name "ldc") + (version "0.17.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/ldc-developers/ldc/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1kw0j378k6bh0k66dvx99bjq8ilp8bb24w3jrmibn8rhmqv0d5q8")))) + (build-system cmake-build-system) + (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-submodule-sources + (lambda* (#:key inputs #:allow-other-keys) + (let ((unpack (lambda (source target) + (with-directory-excursion target + (zero? (system* "tar" "xvf" + (assoc-ref inputs source) + "--strip-components=1")))))) + (and (unpack "phobos-src" "runtime/phobos") + (unpack "druntime-src" "runtime/druntime") + (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite"))))) + (add-after 'unpack-submodule-sources 'patch-dmd2 + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "dmd2/root/port.c" + ((" ::isnan") " isnan") + ((" ::isinf") " isinf") + (("#undef isnan") "") + (("#undef isinf") "")) + #t)) + (add-after 'unpack-submodule-sources 'patch-phobos + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "runtime/phobos/std/process.d" + (("/bin/sh") (which "sh")) + (("echo") (which "echo"))) + (substitute* "runtime/phobos/std/datetime.d" + (("/usr/share/zoneinfo/") + (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))) + (substitute* "tests/d2/dmd-testsuite/Makefile" + (("/bin/bash") (which "bash"))) + ;; FIXME: this test cannot be linked. + (delete-file "tests/d2/dmd-testsuite/runnable/cppa.d") + #t))))) + (inputs + `(("libconfig" ,libconfig) + ("libedit" ,libedit) + ("tzdata" ,tzdata) + ("zlib" ,zlib))) + (native-inputs + `(("llvm" ,llvm) + ("clang" ,clang) + ("python-lit" ,python-lit) + ("python-wrapper" ,python-wrapper) + ("unzip" ,unzip) + ("phobos-src" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/ldc-developers/phobos/archive/ldc-v" + runtime-version ".tar.gz")) + (sha256 + (base32 + "0qywnvnp019mmmr74aw90ir9f03iz0hc7cgzna609agsar0b27jl")) + (patches (search-patches "ldc-disable-tests.patch")))) + ("druntime-src" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/ldc-developers/druntime/archive/ldc-v" + runtime-version ".tar.gz")) + (sha256 + (base32 + "0z418n6x2fxac07sxpi4rl69069qiym4w6r9sjppn91q58qh8hjs")))) + ("dmd-testsuite-src" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v" + runtime-version ".tar.gz")) + (sha256 + (base32 + "196mkfax5y3yqm3gz7jhqhnkjwrvr2m4a8nc9k41l0511ldzsk9x")))))) + (home-page "http://wiki.dlang.org/LDC") + (synopsis "LLVM compiler for the D programming language") + (description + "LDC is a compiler for the D programming language. It is based on the latest DMD frontend and uses LLVM as backend.") - ;; Most of the code is released under BSD-3, except for code originally - ;; written for GDC, which is released under GPLv2+, and the DMD frontend, - ;; which is released under the "Boost Software License version 1.0". - (license (list license:bsd-3 - license:gpl2+ - license:boost1.0)))) - + ;; Most of the code is released under BSD-3, except for code originally + ;; written for GDC, which is released under GPLv2+, and the DMD frontend, + ;; which is released under the "Boost Software License version 1.0". + (license (list license:bsd-3 + license:gpl2+ + license:boost1.0))))) (define-public ldc ;; The phobos, druntime and dmd-testsuite dependencies do not have a newer From 70c90903012cbd6a8f798e7534140b3e71d9e680 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sat, 10 Jun 2017 20:59:19 -0400 Subject: [PATCH 038/186] gnu: abiword: Correct the download and home page URL. The old URL redirects to https://abisource.com. * gnu/packages/abiword.scm (abiword)[source]: Change URL. [home-page]: Change URL. --- gnu/packages/abiword.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm index 30c2411df3..9a4acdc384 100644 --- a/gnu/packages/abiword.scm +++ b/gnu/packages/abiword.scm @@ -50,7 +50,7 @@ (origin (method url-fetch) (uri - (string-append "http://abisource.org/downloads/" name "/" version + (string-append "https://www.abisource.com/downloads/" name "/" version "/source/" name "-" version ".tar.gz")) (sha256 (base32 "08imry821g81apdwym3gcs4nss0l9j5blqk31j5rv602zmcd9gxg")) @@ -111,7 +111,7 @@ ("glib:bin" ,glib "bin") ("libtool" ,libtool) ("pkg-config" ,pkg-config))) - (home-page "http://abisource.org/") + (home-page "https://www.abisource.com/") (synopsis "Word processing program") ;; HACKERS: The comment below is here so that it shows up early in the From 5c46c8582f18c80e7628382d91fc604e3bf364fd Mon Sep 17 00:00:00 2001 From: ng0 Date: Sun, 11 Jun 2017 00:00:07 +0000 Subject: [PATCH 039/186] gnu: enlightenment: Fix the inability to switch keyboard layout. * gnu/packages/enlightenment.scm (enlightenment): Add new 'fix-keyboard' phase. (inputs): Add 'xkeyboard-config'. Signed-off-by: Efraim Flashner --- gnu/packages/enlightenment.scm | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 165ca50ce1..6487446336 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015 Tomáš Čech ;;; Copyright © 2015 Daniel Pimentel ;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -208,7 +209,19 @@ Libraries with some extra bells and whistles.") "1xvngjdsa0p901vfhrh2qpa50k32hwwhc8bgi16a9b5d9byzfhvn")))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--enable-mount-eeze"))) + `(#:configure-flags '("--enable-mount-eeze") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-keyboard + (lambda _ + (let ((xkeyboard (assoc-ref %build-inputs "xkeyboard-config"))) + ;; We need to patch the path to 'base.lst' to be able + ;; to switch the keyboard layout in E. + (substitute* "src/modules/xkbswitch/e_mod_parse.c" + (("/usr/share/X11/xkb/rules/xorg.lst") + (string-append xkeyboard + "/share/X11/xkb/rules/base.lst"))) + #t)))))) (native-inputs `(("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) @@ -220,7 +233,8 @@ Libraries with some extra bells and whistles.") ("libxcb" ,libxcb) ("libxext" ,libxext) ("linux-pam" ,linux-pam) - ("xcb-util-keysyms" ,xcb-util-keysyms))) + ("xcb-util-keysyms" ,xcb-util-keysyms) + ("xkeyboard-config" ,xkeyboard-config))) (home-page "https://www.enlightenment.org/about-enlightenment") (synopsis "Lightweight desktop environment") (description From 4ee79f22f5379b201eabca94c3ab34bb00a8a8b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 13 Jun 2017 18:09:30 +0200 Subject: [PATCH 040/186] ui: 'package->recutils' takes #:extra-fields. * guix/ui.scm (package->recutils): Add #:extra-fields and honor it. --- guix/ui.scm | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 5060fd6dc7..b8cfc651a2 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -946,9 +946,10 @@ followed by \"+ \", which makes for a valid multi-line field value in the '() str))) -(define* (package->recutils p port #:optional (width (%text-width))) +(define* (package->recutils p port #:optional (width (%text-width)) + #:key (extra-fields '())) "Write to PORT a `recutils' record of package P, arranging to fit within -WIDTH columns." +WIDTH columns. EXTRA-FIELDS is a list of symbol/value pairs to emit." (define width* ;; The available number of columns once we've taken into account space for ;; the initial "+ " prefix. @@ -993,11 +994,11 @@ WIDTH columns." (G_ "unknown")))) (format port "synopsis: ~a~%" (string-map (match-lambda - (#\newline #\space) - (chr chr)) + (#\newline #\space) + (chr chr)) (or (and=> (package-synopsis-string p) P_) ""))) - (format port "~a~2%" + (format port "~a~%" (string->recutils (string-trim-right (parameterize ((%text-width width*)) @@ -1005,7 +1006,16 @@ WIDTH columns." (string-append "description: " (or (and=> (package-description p) P_) "")))) - #\newline)))) + #\newline))) + (for-each (match-lambda + ((field . value) + (let ((field (symbol->string field))) + (format port "~a: ~a~%" + field + (fill-paragraph (object->string value) width* + (string-length field)))))) + extra-fields) + (newline port)) (define (string->generations str) "Return the list of generations matching a pattern in STR. This function From 4e863eb35fd8337eab48928e7733b7f6b7b2c242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 13 Jun 2017 23:04:05 +0200 Subject: [PATCH 041/186] guix package: '--search' sorts by relevance. * guix/scripts/package.scm (find-packages-by-description): Rewrite to compute a score based on the number of regexps matched and the number of matches for each regexp. Sort according to this score and return it as a second value. (process-query) <'search>: Capture the two return values of 'find-packages-by-description'. Pass #:extra-fields to 'package->recutils'. * doc/guix.texi (Invoking guix package): Mention relevance, give an example. --- doc/guix.texi | 14 +++++--- guix/scripts/package.scm | 72 +++++++++++++++++++++++++--------------- 2 files changed, 56 insertions(+), 30 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index ffd2028de9..b5538e0195 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1854,7 +1854,7 @@ availability of packages: @itemx -s @var{regexp} @cindex searching for packages List the available packages whose name, synopsis, or description matches -@var{regexp}. Print all the metadata of matching packages in +@var{regexp}, sorted by relevance. Print all the metadata of matching packages in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual}). @@ -1862,12 +1862,18 @@ This allows specific fields to be extracted using the @command{recsel} command, for instance: @example -$ guix package -s malloc | recsel -p name,version +$ guix package -s malloc | recsel -p name,version,relevance +name: jemalloc +version: 4.5.0 +relevance: 6 + name: glibc -version: 2.17 +version: 2.25 +relevance: 1 name: libgc -version: 7.2alpha6 +version: 7.6.0 +relevance: 1 @end example Similarly, to show the name of all the packages available under the diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index f050fad976..a6bfb03ae4 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -39,6 +39,7 @@ #:select (directory-exists? mkdir-p)) #:use-module (ice-9 format) #:use-module (ice-9 match) + #:use-module (ice-9 regex) #:use-module (ice-9 vlist) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) @@ -238,32 +239,45 @@ specified in MANIFEST, a manifest object." ;;; (define (find-packages-by-description regexps) - "Return the list of packages whose name matches one of REGEXPS, or whose -synopsis or description matches all of REGEXPS." - (define version=?)) + "Return two values: the list of packages whose name, synopsis, or +description matches at least one of REGEXPS sorted by relevance, and the list +of relevance scores." + (define (score str) + (let ((counts (filter-map (lambda (regexp) + (match (regexp-exec regexp str) + (#f #f) + (m (match:count m)))) + regexps))) + ;; Compute a score that's proportional to the number of regexps matched + ;; and to the number of matches for each regexp. + (* (length counts) (reduce + 0 counts)))) - (define (matches-all? str) - (every (cut regexp-exec <> str) regexps)) + (define (package-score package) + (+ (* 3 (score (package-name package))) + (* 2 (match (package-synopsis package) + ((? string? str) (score (P_ str))) + (#f 0))) + (match (package-description package) + ((? string? str) (score (P_ str))) + (#f 0)))) - (define (matches-one? str) - (find (cut regexp-exec <> str) regexps)) - - (sort - (fold-packages (lambda (package result) - (if (or (matches-one? (package-name package)) - (and=> (package-synopsis package) - (compose matches-all? P_)) - (and=> (package-description package) - (compose matches-all? P_))) - (cons package result) - result)) - '()) - (lambda (p1 p2) - (case (string-compare (package-name p1) (package-name p2) - (const '<) (const '=) (const '>)) - ((=) (version? (package-full-name package1) + (package-full-name package2)) + (> score1 score2))))))))))) (define (transaction-upgrade-entry entry transaction) "Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a @@ -752,8 +766,14 @@ processed, #f otherwise." opts)) (regexps (map (cut make-regexp* <> regexp/icase) patterns))) (leave-on-EPIPE - (for-each (cute package->recutils <> (current-output-port)) - (find-packages-by-description regexps))) + (let-values (((packages scores) + (find-packages-by-description regexps))) + (for-each (lambda (package score) + (package->recutils package (current-output-port) + #:extra-fields + `((relevance . ,score)))) + packages + scores))) #t)) (('show requested-name) From 8e469b67f95cfe5b95405b503b8ee315fdf8ce66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 13 Jun 2017 23:20:25 +0200 Subject: [PATCH 042/186] gnu: guile-ssh: Close RREPL channel ports before they are finalized. Partly fixes . * gnu/packages/patches/guile-ssh-channel-finalization.patch: New file. * gnu/packages/ssh.scm (guile-ssh)[source](patches): Use it. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 3 +- .../guile-ssh-channel-finalization.patch | 28 +++++++++++++++++++ gnu/packages/ssh.scm | 3 +- 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/guile-ssh-channel-finalization.patch diff --git a/gnu/local.mk b/gnu/local.mk index f761ad21e4..608ded7579 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -656,8 +656,9 @@ 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-ssh-rexec-bug.patch \ + gnu/packages/patches/guile-ssh-channel-finalization.patch \ %D%/packages/patches/guile-ssh-double-free.patch \ + %D%/packages/patches/guile-ssh-rexec-bug.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/patches/guile-ssh-channel-finalization.patch b/gnu/packages/patches/guile-ssh-channel-finalization.patch new file mode 100644 index 0000000000..54b5055a20 --- /dev/null +++ b/gnu/packages/patches/guile-ssh-channel-finalization.patch @@ -0,0 +1,28 @@ +Avoid asynchronous channel finalization, which could lead to segfaults due to +libssh not being thread-safe: . + +--- guile-ssh-0.11.0/modules/ssh/dist/node.scm 2017-06-13 14:37:44.861671297 +0200 ++++ guile-ssh-0.11.0/modules/ssh/dist/node.scm 2017-06-13 14:38:02.841580565 +0200 +@@ -391,11 +391,18 @@ listens on an expected port, return #f o + "Evaluate QUOTED-EXP on the node and return the evaluated result." + (let ((repl-channel (node-open-rrepl node))) + (rrepl-skip-to-prompt repl-channel) +- (call-with-values (lambda () (rrepl-eval repl-channel quoted-exp)) +- (lambda vals +- (and (node-stop-repl-server? node) ++ (dynamic-wind ++ (const #t) ++ (lambda () ++ (rrepl-eval repl-channel quoted-exp)) ++ (lambda () ++ (when (node-stop-repl-server? node) + (node-stop-server node)) +- (apply values vals))))) ++ ++ ;; Close REPL-CHANNEL right away to prevent finalization from ++ ;; happening in another thread at the wrong time (see ++ ;; .) ++ (close-port repl-channel))))) + + (define (node-eval-1 node quoted-exp) + "Evaluate QUOTED-EXP on the node and return the evaluated result. The diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index d79663a2b5..d03686c11c 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -229,7 +229,8 @@ Additionally, various channel-specific options can be negotiated.") (base32 "0r261i8kc3avbmbwgyzak2vnqwssjlgz37g2y2fwm80w9bmn2m7j")) (patches (search-patches "guile-ssh-rexec-bug.patch" - "guile-ssh-double-free.patch")) + "guile-ssh-double-free.patch" + "guile-ssh-channel-finalization.patch")) (modules '((guix build utils))) (snippet ;; 'configure.ac' mistakenly tries to link files from examples/ From 449bff2b7979a9ceb8903b11ab225b28a91a4106 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 5 Jun 2017 18:50:39 -0400 Subject: [PATCH 043/186] gnu: icecat: Rename patches to indicate CVE assignments. This documents that we include fixes for the following CVEs: CVE-2017-5472, CVE-2017-7749, CVE-2017-7750, CVE-2017-7751, CVE-2017-7752, CVE-2017-7754, CVE-2017-7756, CVE-2017-7764, CVE-2017-7765, CVE-2017-7778, and that we include 15 out of 20 patches for CVE-2017-5470. * gnu/packages/gnuzilla.scm (icecat)[source]: Rename existing patches to indicate their CVE assignments. --- gnu/packages/gnuzilla.scm | 50 +++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index e0f80a1868..3c914ce16c 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -416,35 +416,35 @@ standards.") (mozilla-patch "icecat-bug-1342366.patch" "fb43f6690a26" "1vnkjpq2bcqwzmjkgyqv8wj0ndrrsyix3qy1rsb5is6pjmi9sbaa") (mozilla-patch "icecat-bug-1343818.patch" "90f870bbec29" "0mbki955f71n4yr9p0yc7kh5jwq7vs4bs4rhaazdncirbr564hm6") (mozilla-patch "icecat-bug-1348454.patch" "c1cd8a02669f" "1wf0107763rw45kxkak7478vlax06ay7076cbm7ysxl7vijbr52w") - (mozilla-patch "icecat-bug-1297111.patch" "2553531f83b9" "0ibf59pa8czdyhc25sas6zhh2gf1k8vr8fklis2b1ms3n1qnzrha") + (mozilla-patch "icecat-CVE-2017-5470-pt01.patch" "2553531f83b9" "0ibf59pa8czdyhc25sas6zhh2gf1k8vr8fklis2b1ms3n1qnzrha") (mozilla-patch "icecat-bug-1355873.patch" "9ee455ddcd68" "0d38hi4556635g9ag805vfyffdgfsp4a8v3d9ldffdp99ypv2ixj") - (mozilla-patch "icecat-bug-1348424-pt1.patch" "6472c7006a73" "1fgydas23fzj49n4g43133bgjn98b2h38bii4knl7z7pm3fs2wws") - (mozilla-patch "icecat-bug-1348424-pt2.patch" "0d5a26b29816" "03mkghl9i83jk1axr8bvw8la6shbggkabf23if8a9vi5jdv8182x") + (mozilla-patch "icecat-CVE-2017-5470-pt02.patch" "6472c7006a73" "1fgydas23fzj49n4g43133bgjn98b2h38bii4knl7z7pm3fs2wws") + (mozilla-patch "icecat-CVE-2017-5470-pt03.patch" "0d5a26b29816" "03mkghl9i83jk1axr8bvw8la6shbggkabf23if8a9vi5jdv8182x") (mozilla-patch "icecat-bug-1357092.patch" "e78c943af07f" "0r830k6hja8z9rjk2nqjg8zfzr0wjcnic8rddh7jmc1inr1w3crm") - (mozilla-patch "icecat-bug-1352093.patch" "d7c06f2d0d13" "1ahyns5v37w91bilvb3pa8kkdzkkn3fcxmi49jr5bycjlawljrm4") - (mozilla-patch "icecat-bug-1349595.patch" "9071c7d4cc9c" "12128sf8s3zwv2w16kfl5jry9d6ky7hvps2006184rg23p32aj6n") + (mozilla-patch "icecat-CVE-2017-5470-pt04.patch" "d7c06f2d0d13" "1ahyns5v37w91bilvb3pa8kkdzkkn3fcxmi49jr5bycjlawljrm4") + (mozilla-patch "icecat-CVE-2017-5470-pt05.patch" "9071c7d4cc9c" "12128sf8s3zwv2w16kfl5jry9d6ky7hvps2006184rg23p32aj6n") (mozilla-patch "icecat-bug-1336979.patch" "8bbc7b586d68" "0c13imyp1nq18in3yb1zcyi41b69svh4fn8msyj0c2lhbf8qnqcw") - (mozilla-patch "icecat-bug-1352556.patch" "6d80ca63ff8b" "0s893fn6v0p323lcnl4cbkg1zd7gs1p0bw76ki6cmiapkn63gs13") - (mozilla-patch "icecat-bug-1359547.patch" "43d7b98d8743" "1dhgy1jkvn3c4k27hbv8p16w7l09b8hd4w9zzpk8dpn4h78ncs3h") + (mozilla-patch "icecat-CVE-2017-5470-pt06.patch" "6d80ca63ff8b" "0s893fn6v0p323lcnl4cbkg1zd7gs1p0bw76ki6cmiapkn63gs13") + (mozilla-patch "icecat-CVE-2017-7752.patch" "43d7b98d8743" "1dhgy1jkvn3c4k27hbv8p16w7l09b8hd4w9zzpk8dpn4h78ncs3h") (mozilla-patch "icecat-CVE-2017-5031.patch" "bd4fcdee9a06" "0xz1r342023a0bsllhjbzn6v75lpqznwacqyikb7q8i4hxkxh78a") (mozilla-patch "icecat-bug-1346499.patch" "747fd6c81983" "00iscyn4wr69205ppiaghlnd32845f5lcsl303v0fcdd4d1v04vc") (mozilla-patch "icecat-bug-1334443-pt1.patch" "16201e8478df" "1k91xaai25vn1svkaldnsd2s8br3fgvnk5l54k3n3lk3m5vj55hv") (mozilla-patch "icecat-bug-1334443-pt2.patch" "f100e5cf3bcb" "1cgbbbnkrd3ydfw99rhnpqdp5zq65537mg8sa1s9ajxkjjd1dkwj") (mozilla-patch "icecat-bug-1354810.patch" "e579ef6e8d11" "0cmrh8dl85lzjxpbni08xbs8qq15sljnpg70a7rsl0jdbgih3mdx") (mozilla-patch "icecat-bug-1356755.patch" "4a3fce67b52d" "126i9nwxsb3sjwb7dvhafacq86glnhx7r7jjv0h9v21s1w0kx4wj") - (mozilla-patch "icecat-bug-1273265.patch" "7902fea300b8" "1jkrl8hdycsi17dd1m1vvl6gm1skhpf10q2m29zwfr8l40fd6a3q") + (mozilla-patch "icecat-CVE-2017-7765.patch" "7902fea300b8" "1jkrl8hdycsi17dd1m1vvl6gm1skhpf10q2m29zwfr8l40fd6a3q") (mozilla-patch "icecat-bug-1353204.patch" "b5a21502aeff" "13rbrhvr37w95av9d4hkgi913nq0j6k2iijydylvprcn18cwibp0") (mozilla-patch "icecat-bug-1028195.patch" "69a5ca2bf867" "0q8cgi6837ikpg7gsvywmzhq0i102845apcbrd6mw0205qqsnw5c") (mozilla-patch "icecat-bug-1347835.patch" "bc635f45af37" "1fny422l6yc80901x6swybr8nk0in1wxfgy97ky4bdkcqlnmzpqv") (mozilla-patch "icecat-bug-1241066.patch" "b922ca70cce5" "09hcf9rm7ng3vj5y267w0c9h6pqinnz8gjlkwx1337xh43mdvqjv") - (mozilla-patch "icecat-bug-1346012.patch" "1ce6d0652921" "163ji64a86h682frh1jq016w1mjf8g24r8cni0irsdmiihis7zxc") + (mozilla-patch "icecat-CVE-2017-5470-pt07.patch" "1ce6d0652921" "163ji64a86h682frh1jq016w1mjf8g24r8cni0irsdmiihis7zxc") (mozilla-patch "icecat-bug-1324140.patch" "8886f9cd5dd3" "0byabs9md8r3pc4r67sv2759427n1za0gfayln40nx47n2p52kmg") - (mozilla-patch "icecat-bug-1342552.patch" "ad995e90916b" "02nq9sg675p26z99nr2pykbz51hi2phf0gmrb1bjpq9pjbll7gsa") - (mozilla-patch "icecat-bug-1355039.patch" "4ae71415fecf" "0yfkkdkkimad9a3w734xx85lb7hrl870c8k8an7w78fq3vl3fjnd") - (mozilla-patch "icecat-bug-1363396.patch" "24cbb7f2e0ff" "006f0zhz5nxs72q9plwzhq4l79b47svzizvv510m5g2krsfrccza") - (mozilla-patch "icecat-bug-1356558.patch" "89c7fb6c5be3" "19650nmc4vn1prbpn5h06kz9d1al279xkc23v39577h4zhdrknkj") + (mozilla-patch "icecat-CVE-2017-5470-pt08.patch" "ad995e90916b" "02nq9sg675p26z99nr2pykbz51hi2phf0gmrb1bjpq9pjbll7gsa") + (mozilla-patch "icecat-CVE-2017-7749.patch" "4ae71415fecf" "0yfkkdkkimad9a3w734xx85lb7hrl870c8k8an7w78fq3vl3fjnd") + (mozilla-patch "icecat-CVE-2017-7751.patch" "24cbb7f2e0ff" "006f0zhz5nxs72q9plwzhq4l79b47svzizvv510m5g2krsfrccza") + (mozilla-patch "icecat-CVE-2017-7750.patch" "89c7fb6c5be3" "19650nmc4vn1prbpn5h06kz9d1al279xkc23v39577h4zhdrknkj") (mozilla-patch "icecat-bug-1337810.patch" "0f6dd3564c76" "1sxajqh6r7fjs45xhvjwg94smpvyvplh3rdvq11d3q5m9v4kg7mz") - (mozilla-patch "icecat-bug-1347748.patch" "145905da25d3" "0c2q9f000snpm9x0qda2y0awrsm313iwxbv0kh33ca0kpza49a76") + (mozilla-patch "icecat-CVE-2017-5470-pt09.patch" "145905da25d3" "0c2q9f000snpm9x0qda2y0awrsm313iwxbv0kh33ca0kpza49a76") (mozilla-patch "icecat-bug-1345355.patch" "c5012009a0b2" "0m772bgrwb8iwv2bdgx694ybg5wgbf58xg5v245x0p7gwhgwiwmr") (mozilla-patch "icecat-bug-1351340.patch" "047f19a1b9a0" "0qjnhybibs3cpcba3ga4g7d4c0w716xa9jf87y2ir8yz7dw1f9vl") (mozilla-patch "icecat-bug-1056322.patch" "f076a30f6c29" "0xgskjl6zmxi3v4l0f3wlas0qb2403fin5lv1hi3jf2142ihpaml") @@ -469,32 +469,32 @@ standards.") (mozilla-patch "icecat-bug-1360574-pt1.patch" "237eee780619" "1iw6z762zdc42kwjvv58a2cjc0s4kzwwy7838apl7y7cq85g0jg2") (mozilla-patch "icecat-bug-1360574-pt2.patch" "46a5a4aac189" "1i553f9qvav0fn5avbp8912995pqbhzbzamxxfz8gn2ik17y3xly") (mozilla-patch "icecat-bug-1358776.patch" "bd35fa23f79a" "12nicgwhcn63knmlcl0c2askn9sj35bfclaab3826pkd9yq5g4p5") - (mozilla-patch "icecat-bug-1362590.patch" "c1314a709b41" "0klgrcyc20fig6rbm9znjpcnfsz6xnlp1v03fbvaww0riy2qm42k") + (mozilla-patch "icecat-CVE-2017-5470-pt10.patch" "c1314a709b41" "0klgrcyc20fig6rbm9znjpcnfsz6xnlp1v03fbvaww0riy2qm42k") (mozilla-patch "icecat-bug-1359859.patch" "e38948fb79d6" "1sfyc5s9ndv6q72k8n9x0rvj4sz40k51iljrs42gwykzkjm2fx5m") (mozilla-patch "icecat-bug-1342057.patch" "278bef1d7a64" "0zk18s9pnbwz9ankmc9mj4197s55j1jvax04ansqymmmc3a5ciif") - (mozilla-patch "icecat-bug-1325513.patch" "218e0963406f" "0wqms5nany4sx2g4p01lbam7la2dyazz87dhv5hcsf8ifxrfww11") + (mozilla-patch "icecat-CVE-2017-5470-pt11.patch" "218e0963406f" "0wqms5nany4sx2g4p01lbam7la2dyazz87dhv5hcsf8ifxrfww11") (mozilla-patch "icecat-bug-1304566.patch" "188e39630fcd" "1bfxfgj5ywx4bcf91kwyrjh5ppiv59gadx4445achyabdi639l8d") (mozilla-patch "icecat-bug-1356601.patch" "8191e403fedf" "1k4zmq0923f5dc3dwbz1q0bkcbm90ldwkczym366hgwadb2305nd") (mozilla-patch "icecat-bug-1334097.patch" "fe2a2c7e88cb" "1rppaivaddigwk65krn8m9f9mcdkiiv28ws9n9zj62n0rc1shyvc") (mozilla-patch "icecat-bug-1359051.patch" "8d7dbe5c6587" "14zh74bbld4s0jy0a48fi9acxkc236mh9wjid3vrf72yj6bi5xnp") (mozilla-patch "icecat-bug-1359697.patch" "ca2b5274549f" "1ns7v70i1hfkxqnjhf9fp0lk9095hdcllg94j3dl1nfaif4w6vbf") (mozilla-patch "icecat-bug-1343256.patch" "a30dd7dd6617" "1k078176fp8vz871wirjz9d3yx9l2lfl8p75c4905n3j3zv2297q") - (mozilla-patch "icecat-bug-1349310.patch" "81b3ce7d37b3" "0ad0wqczy4kpggj6m3b8bzxi6ax340mik1mfawhkq89a1h2sfpxv") + (mozilla-patch "icecat-CVE-2017-7778.patch" "81b3ce7d37b3" "0ad0wqczy4kpggj6m3b8bzxi6ax340mik1mfawhkq89a1h2sfpxv") (mozilla-patch "icecat-bug-1356179.patch" "66d8893f37f0" "0izl31lagvdv4qpb9gkjxvgpmxzw50x5bviap4l7bbnb56cv7d8p") - (mozilla-patch "icecat-bug-1365602.patch" "aad883966edd" "058axnrwrbvy2h9r9pb766lyky45hb92rap142sbp17yz0sxfmww") + (mozilla-patch "icecat-CVE-2017-5472.patch" "aad883966edd" "058axnrwrbvy2h9r9pb766lyky45hb92rap142sbp17yz0sxfmww") (mozilla-patch "icecat-bug-1355520.patch" "7ca2d8839f7a" "1xbmpvr2x720x9ghd5wgbg6lknbnhcyqmkkfamdf97mqcyizyr21") (mozilla-patch "icecat-bug-1358469.patch" "4d432638c0f9" "0qpjmwik3dryjwmgfwmkqk0rs9rb2lafb2k9fc3pkjnrq5y0l9xg") - (mozilla-patch "icecat-bug-1356025.patch" "f5967db0a0f3" "045wbvkm21kbm314dd6lbq2disiaf26kmsxi6brf442fd0028gwq") + (mozilla-patch "icecat-CVE-2017-5470-pt12.patch" "f5967db0a0f3" "045wbvkm21kbm314dd6lbq2disiaf26kmsxi6brf442fd0028gwq") (mozilla-patch "icecat-bug-1345910.patch" "ec6b6720e54e" "0lm15jl46mdlsds6947jsiyvhf9agb8hcdrqj2svc3kn9kzvyr2n") - (mozilla-patch "icecat-bug-1359639.patch" "a4f8d8a12afa" "0d7sjc21af074rvgvijj42gmpjvcb1v1zlpgb3s7ky7w6wjr35vx") - (mozilla-patch "icecat-bug-1357090.patch" "d07f24a72ce4" "1qbwska76b2zslb95wnx9v04znb6k9fqylr4ajyfqpwk1sr363hg") - (mozilla-patch "icecat-bug-1364283.patch" "a6caa7628e36" "1yv5f4h8js9bry9krcx130w6ic8rdmmq4fap6va24kfx8qflg70h") + (mozilla-patch "icecat-CVE-2017-5470-pt13.patch" "a4f8d8a12afa" "0d7sjc21af074rvgvijj42gmpjvcb1v1zlpgb3s7ky7w6wjr35vx") + (mozilla-patch "icecat-CVE-2017-7754.patch" "d07f24a72ce4" "1qbwska76b2zslb95wnx9v04znb6k9fqylr4ajyfqpwk1sr363hg") + (mozilla-patch "icecat-CVE-2017-7764.patch" "a6caa7628e36" "1yv5f4h8js9bry9krcx130w6ic8rdmmq4fap6va24kfx8qflg70h") (mozilla-patch "icecat-bug-1237868.patch" "41138235d4ea" "0mcj4x2kmagwf5hp8xhczf04sxm995pk1zarc9yffk84z7fcrxkj") (mozilla-patch "icecat-bug-1331335.patch" "b724283e3b31" "1xbb1vcdzfpcmrmxm8ihwzslh2vz15k0k601nvyhh6vgx270h1wn") (mozilla-patch "icecat-bug-1367267.patch" "4c2f4d8b693e" "1hrndhfnz0vnjnspwh5mbvgl2j8d1cs62awp04wx2w6z4l4wrmbv") - (mozilla-patch "icecat-bug-1366595.patch" "cce3fd607206" "1z97jw8jpfyx61jxf0j8nsplnna2c5bwihwnl9cvlc2cspp3kgp5") - (mozilla-patch "icecat-bug-1349266.patch" "dc4e3c64d781" "1zd666k4qpdamly3av09k602pmirjcs9l6la6ba0qq9w9vfan3g5") - (mozilla-patch "icecat-bug-1366140.patch" "379c348250e8" "0kvsyhi9j3bjx14ffr13dslqp8ghcgrz6ds2fikdkrrrk4syskd5"))) + (mozilla-patch "icecat-CVE-2017-7756.patch" "cce3fd607206" "1z97jw8jpfyx61jxf0j8nsplnna2c5bwihwnl9cvlc2cspp3kgp5") + (mozilla-patch "icecat-CVE-2017-5470-pt14.patch" "dc4e3c64d781" "1zd666k4qpdamly3av09k602pmirjcs9l6la6ba0qq9w9vfan3g5") + (mozilla-patch "icecat-CVE-2017-5470-pt15.patch" "379c348250e8" "0kvsyhi9j3bjx14ffr13dslqp8ghcgrz6ds2fikdkrrrk4syskd5"))) (modules '((guix build utils))) (snippet '(begin From 89727ada527c9a577ccebda526adc86d70e1efbb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 14 Jun 2017 02:15:59 -0400 Subject: [PATCH 044/186] gnu: icecat: Add security fixes from upstream mozilla-esr52. This adds fixes for CVE-2017-7757, CVE-2017-7758, and the remaining 5 patches for CVE-2017-5470. * gnu/packages/gnuzilla.scm (icecat)[source]: Add selected fixes from the upstream mozilla-esr52 repository, through ESR 52.2. --- gnu/packages/gnuzilla.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 3c914ce16c..6809a696a0 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -494,7 +494,19 @@ standards.") (mozilla-patch "icecat-bug-1367267.patch" "4c2f4d8b693e" "1hrndhfnz0vnjnspwh5mbvgl2j8d1cs62awp04wx2w6z4l4wrmbv") (mozilla-patch "icecat-CVE-2017-7756.patch" "cce3fd607206" "1z97jw8jpfyx61jxf0j8nsplnna2c5bwihwnl9cvlc2cspp3kgp5") (mozilla-patch "icecat-CVE-2017-5470-pt14.patch" "dc4e3c64d781" "1zd666k4qpdamly3av09k602pmirjcs9l6la6ba0qq9w9vfan3g5") - (mozilla-patch "icecat-CVE-2017-5470-pt15.patch" "379c348250e8" "0kvsyhi9j3bjx14ffr13dslqp8ghcgrz6ds2fikdkrrrk4syskd5"))) + (mozilla-patch "icecat-CVE-2017-5470-pt15.patch" "379c348250e8" "0kvsyhi9j3bjx14ffr13dslqp8ghcgrz6ds2fikdkrrrk4syskd5") + (mozilla-patch "icecat-bug-1349531.patch" "70cd711c6ae8" "07hlby5xdvqy6jdqxydv5pwap8hhsycb19fgw5fan2xf9dhrfpb8") + (mozilla-patch "icecat-CVE-2017-5470-pt16.patch" "6e644bc1a57f" "1xp8b74wijfz198q4hdybldnwh3hh0vh33dc5s7489abmz4s5zjg") + (mozilla-patch "icecat-CVE-2017-7758.patch" "279bffa85beb" "0shf77l9id6s8cs8xbc0ii0ccd7n09jv20410kkqqz11m296dcjr") + (mozilla-patch "icecat-CVE-2017-7757.patch" "0abcbc6ef8f3" "045arb1b83a3yv358naznl15bnr4wgxxayv8d5gcxarcbrrvm5q4") + (mozilla-patch "icecat-CVE-2017-5470-pt17.patch" "e0261afd69b9" "0a19b24iq57430kpbsdvka9vyg6kwhnnqis1xsd6wh8gz0bw5l79") + (mozilla-patch "icecat-CVE-2017-5470-pt18.patch" "4ec931d4bf29" "0bq0hq41xhy9aqjra5m0flmpilinlkb088r6w1kly561ckjl1f9f") + (mozilla-patch "icecat-bug-1339826-pt1.patch" "9c29579fffe2" "0yfc764qrynh441wwim18cr6k0sazgrm77frcdnyks0hzf0y44d1") + (mozilla-patch "icecat-bug-1339826-pt2.patch" "be946ea1a75a" "0pw0y1sdckn5brm39sdg47hbda5432aw32c3xq26ism23im85191") + (mozilla-patch "icecat-bug-1339826-pt2.patch" "44b2fe592a90" "1v8mz3b40dp6l5qrgha4yibmrnx80pxsvdll6ky1k937yhbzjk4a") + (mozilla-patch "icecat-CVE-2017-5470-pt19.patch" "f68e0d98a22a" "063z4a7gyhzy85fc2j2yr7kmk2zf7v875hjw4485civazydysw4j") + (mozilla-patch "icecat-bug-1353625.patch" "c41f37d913e2" "1s997c1hj4ywnlfbhvi1y96vd6bxl74wcrb0nly611h51h8xnyxm") + (mozilla-patch "icecat-CVE-2017-5470-pt20.patch" "38273203b827" "12p9r4spdp09d6ic9sqspvdr50lmc1p86ydz2fxdifb1f95njhx0"))) (modules '((guix build utils))) (snippet '(begin From e407310431ca1f9a84546d75151324b840b9c6ee Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 14 Jun 2017 09:31:20 +0200 Subject: [PATCH 045/186] gnu: darktable: Update to 2.2.5. * gnu/packages/photo.scm (darktable): Update to 2.2.5. --- gnu/packages/photo.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index b68aea9d7b..1fae0e4a7c 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -310,7 +310,7 @@ photographic equipment.") (define-public darktable (package (name "darktable") - (version "2.2.4") + (version "2.2.5") (source (origin (method url-fetch) (uri (string-append @@ -319,7 +319,7 @@ photographic equipment.") version "/darktable-" version ".tar.xz")) (sha256 (base32 - "1n7rddkxwcifc3kcdlnar9w562xv4h78fqkkn27jihqzp3b4am5x")))) + "10gjzd4irxhladh4jyss9kgp627k8vgx2divipsb33pp6cms80z3")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; There are no tests. From 6dfbbd2c11f960b796b02d36c97a195d220839e2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 14 Jun 2017 13:07:04 -0400 Subject: [PATCH 046/186] gnu: osip: Update to 5.0.0. * gnu/packages/telephony.scm (osip): Update to 5.0.0. --- gnu/packages/telephony.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 45701bf445..601bfd62a2 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -120,12 +120,13 @@ packet-manipulation library.") (define-public osip (package (name "osip") - (version "4.1.0") + (version "5.0.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/osip/libosip2-" version ".tar.gz")) - (sha256 (base32 - "014503kqv7z63az6lgxr5fbajlrqylm5c4kgbf8p3a0n6cva0slr")))) + (sha256 + (base32 + "00yznbrm9q04wgd4b831km8iwlvwvsnwv87igf79g5vj9yakr88q")))) (build-system gnu-build-system) (synopsis "Library implementing SIP (RFC-3261)") From 75072795bd5239f8f57daf946b4918c3acd37d27 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 14 Jun 2017 13:15:31 -0400 Subject: [PATCH 047/186] gnu: osip: Fix CVE-2017-7853. * gnu/packages/patches/osip-CVE-2017-7853.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/telephony.scm (osip)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/patches/osip-CVE-2017-7853.patch | 40 +++++++++++++++++++ gnu/packages/telephony.scm | 1 + 3 files changed, 42 insertions(+) create mode 100644 gnu/packages/patches/osip-CVE-2017-7853.patch diff --git a/gnu/local.mk b/gnu/local.mk index 608ded7579..8fcd2cab22 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -876,6 +876,7 @@ dist_patch_DATA = \ %D%/packages/patches/openssl-1.1.0-c-rehash-in.patch \ %D%/packages/patches/openssl-c-rehash-in.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 \ %D%/packages/patches/p7zip-CVE-2016-9296.patch \ %D%/packages/patches/p7zip-remove-unused-code.patch \ diff --git a/gnu/packages/patches/osip-CVE-2017-7853.patch b/gnu/packages/patches/osip-CVE-2017-7853.patch new file mode 100644 index 0000000000..33d95cdb0e --- /dev/null +++ b/gnu/packages/patches/osip-CVE-2017-7853.patch @@ -0,0 +1,40 @@ +Fix CVE-2017-7853: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7853 +https://savannah.gnu.org/support/index.php?109265 + +Patch copied from upstream source repository: + +https://git.savannah.gnu.org/cgit/osip.git/commit/?id=1ae06daf3b2375c34af23083394a6f010be24a45 + +From 1ae06daf3b2375c34af23083394a6f010be24a45 Mon Sep 17 00:00:00 2001 +From: Aymeric Moizard +Date: Tue, 21 Feb 2017 17:16:26 +0100 +Subject: [PATCH] * fix bug report: sr #109265: SIP message body length + underflow in libosip2-4.1.0 https://savannah.gnu.org/support/?109265 + also applicable to current latest version + +--- + src/osipparser2/osip_message_parse.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/osipparser2/osip_message_parse.c b/src/osipparser2/osip_message_parse.c +index 1628c60..aa35446 100644 +--- a/src/osipparser2/osip_message_parse.c ++++ b/src/osipparser2/osip_message_parse.c +@@ -784,6 +784,12 @@ msg_osip_body_parse (osip_message_t * sip, const char *start_of_buf, const char + if ('\n' == start_of_body[0] || '\r' == start_of_body[0]) + start_of_body++; + ++ /* if message body is empty or contains a single CR/LF */ ++ if (end_of_body <= start_of_body) { ++ osip_free (sep_boundary); ++ return OSIP_SYNTAXERROR; ++ } ++ + body_len = end_of_body - start_of_body; + + /* Skip CR before end boundary. */ +-- +2.13.1 + diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 601bfd62a2..c3bf203602 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -124,6 +124,7 @@ packet-manipulation library.") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/osip/libosip2-" version ".tar.gz")) + (patches (search-patches "osip-CVE-2017-7853.patch")) (sha256 (base32 "00yznbrm9q04wgd4b831km8iwlvwvsnwv87igf79g5vj9yakr88q")))) From daf3006636ba7aebc9bc44a8ac880b5e54d8b049 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 14 Jun 2017 13:25:00 -0400 Subject: [PATCH 048/186] gnu: curl: Update replacement to 7.54.1 [fixes CVE-2017-9502]. * gnu/packages/curl.scm (curl)[replacement]: Update to 7.54.1. (curl-7.54.0): Replace with ... (curl-7.54.1): ... 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 73d402ce18..a9f219b621 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -40,7 +40,7 @@ (define-public curl (package (name "curl") - (replacement curl-7.54.0) + (replacement curl-7.54.1) (version "7.53.0") (source (origin (method url-fetch) @@ -121,10 +121,10 @@ tunneling, and so on.") "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) -(define curl-7.54.0 +(define curl-7.54.1 (package (inherit curl) - (version "7.54.0") + (version "7.54.1") (source (origin (method url-fetch) @@ -132,4 +132,4 @@ tunneling, and so on.") version ".tar.lzma")) (sha256 (base32 - "02h7qhl8ynp75g1vcaw18ks0gp7nahvvkqck19pb1q0kkw1scsnd")))))) + "0vnv3cz0s1l5cjby86hm0x6pgzqijmdm97qa9q5px200956z6yib")))))) From ed77c68ac968bcc972f4484339cd99b66e1632b4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 14 Jun 2017 19:40:32 +0200 Subject: [PATCH 049/186] gnu: nmap: Update to 7.50. * gnu/packages/admin.scm (nmap): Update to 7.50. --- 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 730fe052cd..4ec401da2a 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1582,14 +1582,14 @@ done with the @code{auditctl} utility.") (define-public nmap (package (name "nmap") - (version "7.40") + (version "7.50") (source (origin (method url-fetch) (uri (string-append "https://nmap.org/dist/nmap-" version ".tar.bz2")) (sha256 (base32 - "121i9mgyc28ra2825akd0ix5qyssv4xc2qlx296mam6hzxgnc54y")) + "1ckl2qxqxkrfa2qxdrqyaa4k1hhj273aqckrc46fijdz0a76mag9")) (modules '((guix build utils))) (snippet '(map delete-file-recursively From 22239ae21f16e55e36fe3dec0e1ec1f3859ae506 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 14 Jun 2017 19:42:27 +0200 Subject: [PATCH 050/186] gnu: whois: Update to 5.2.16. * gnu/packages/networking.scm (whois): Update to 5.2.16. --- 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 d8fd1c80a0..5d1c432da3 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -435,7 +435,7 @@ and up to 1 Mbit/s downstream.") (define-public whois (package (name "whois") - (version "5.2.15") + (version "5.2.16") (source (origin (method url-fetch) @@ -443,7 +443,7 @@ and up to 1 Mbit/s downstream.") name "_" version ".tar.xz")) (sha256 (base32 - "123ingf699javzh8qm6ny10nl28zbjzasa4k5pcn0qzw1dlnnnks")))) + "0fpwac26ja0rdqsbxyjcsk8gxgixfpxk0baj3rhnpaff3jv0ilp9")))) (build-system gnu-build-system) ;; TODO: unbundle mkpasswd binary + its po files. (arguments From bb3df15e5566ee6d5bbf0e787de40cafd7af3dc2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 14 Jun 2017 22:27:45 +0300 Subject: [PATCH 051/186] gnu: ffmpeg: Add vaapi hardware acceleration. * gnu/packages/video.scm (ffmpeg)[inputs]: Add libva. --- gnu/packages/video.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 1dcb0aa8e1..adae0d3d3e 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -482,6 +482,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") ("libcaca" ,libcaca) ("libcdio-paranoia" ,libcdio-paranoia) ("libtheora" ,libtheora) + ("libva" ,libva) ("libvdpau" ,libvdpau) ("libvorbis" ,libvorbis) ("libvpx" ,libvpx) From e0c95301658b994d0819a468221609120e6a12d1 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 14 Jun 2017 00:00:00 -0500 Subject: [PATCH 052/186] gnu: calcurse: Upgrade to 4.2.2. * gnu/packages/calcurse.scm (calcurse): Upgrade to 4.2.2. [inputs]: Add tzdata for tests. [arguments]: Add new 'check-setup' phase. --- gnu/packages/calcurse.scm | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gnu/packages/calcurse.scm b/gnu/packages/calcurse.scm index f66fbdb636..20a9a8fb47 100644 --- a/gnu/packages/calcurse.scm +++ b/gnu/packages/calcurse.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015 Eric Bavier +;;; Copyright © 2014, 2015, 2017 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,12 +22,13 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages ncurses)) (define-public calcurse (package (name "calcurse") - (version "4.0.0") + (version "4.2.2") (source (origin (method url-fetch) @@ -35,14 +36,21 @@ version ".tar.gz")) (sha256 (base32 - "0d33cpkbhyidvm3xx6iw9ljqdvl6477c2kcwix3bs63nj0ch06v2")))) + "0il0y06akdqgy0f9p40m4x6arn66nh7sr1w1i41bszycs7div266")))) (build-system gnu-build-system) - (inputs `(("ncurses" ,ncurses))) + (inputs `(("ncurses" ,ncurses) + ("tzdata" ,tzdata))) (arguments ;; The ical tests all want to create a ".calcurse" directory, and may ;; fail with "cannot create directory '.calcurse': File exists" if run ;; concurently. - '(#:parallel-tests? #f)) + '(#:parallel-tests? #f + #:phases (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda* (#:key inputs #:allow-other-keys) + (setenv "TZDIR" ;for test/ical-007.sh + (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo"))))))) (home-page "http://www.calcurse.org") (synopsis "Text-based calendar and scheduling") (description From 856ca567cfc791abf8fdd236ff8d150ae90a1f1d Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 15 Jun 2017 01:37:31 -0400 Subject: [PATCH 053/186] gnu: network-manager: Update to 1.8.0. * gnu/packages/gnome.scm (network-manager): Update to 1.8.0. [inputs]: Add curl, cyrus-sasl and eudev. --- gnu/packages/gnome.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 1080ddfeb5..a5d7c39387 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4694,7 +4694,7 @@ users.") (define-public network-manager (package (name "network-manager") - (version "1.6.2") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/NetworkManager/" @@ -4702,7 +4702,7 @@ users.") "NetworkManager-" version ".tar.xz")) (sha256 (base32 - "1y96k82rav8if334jl500zc024d210c4pgprh94yqyz3rmanyaxj")) + "17pn7kzilyl0qk525gp9xnbz4x0ssrdmgk1lvw95pyfd6rm5qnps")) (snippet '(begin (use-modules (guix build utils)) @@ -4783,8 +4783,11 @@ users.") ("python-dbus" ,python-dbus) ("python-pygobject" ,python-pygobject))) (inputs - `(("dbus-glib" ,dbus-glib) + `(("curl" ,curl) + ("cyrus-sasl" ,cyrus-sasl) + ("dbus-glib" ,dbus-glib) ("dnsmasq" ,dnsmasq) + ("eudev" ,eudev) ("gnutls" ,gnutls) ("iptables" ,iptables) ("isc-dhcp" ,isc-dhcp) From d56c55fffbe962cf7c44030ae4eac53ffa1e1f85 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 15 Jun 2017 00:37:17 -0500 Subject: [PATCH 054/186] gnu: tomb: Upgrade to 2.4. * gnu/packages/crypto.scm (tomb): Upgrade to 2.4. [inputs]: Remove swish-e. Move "sude" input to... [native-inputs]: ...here. New field. --- gnu/packages/crypto.scm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index f8631a6dbb..6f02d8691d 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2016 Lukas Gradl ;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; Copyright © 2016 ng0 -;;; Copyright © 2016 Eric Bavier +;;; Copyright © 2016, 2017 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -315,18 +315,18 @@ no man page, refer to the home page for usage details.") (define-public tomb (package (name "tomb") - (version "2.3") + (version "2.4") (source (origin (method url-fetch) (uri (string-append "https://files.dyne.org/tomb/" "Tomb-" version ".tar.gz")) (sha256 (base32 - "1j90ab8x4cf10167yw4cs4frz694gb0qwkhgqiz1ly7mnr8ysmby")))) + "1hv1w79as7swqj0n137vz8n8mwvcgwlvd91sdyssz41jarg7f1vr")))) (build-system gnu-build-system) + (native-inputs `(("sudo" ,sudo))) ;presence needed for 'check' phase (inputs `(("zsh" ,zsh) - ("sudo" ,sudo) ("gnupg" ,gnupg) ("cryptsetup" ,cryptsetup) ("e2fsprogs" ,e2fsprogs) ;for mkfs.ext4 @@ -334,8 +334,7 @@ no man page, refer to the home page for usage details.") ("mlocate" ,mlocate) ("pinentry" ,pinentry) ("qrencode" ,qrencode) - ("steghide" ,steghide) - ("swish-e" ,swish-e))) + ("steghide" ,steghide))) (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) ;; TODO: Build and install gtk and qt trays @@ -358,7 +357,7 @@ no man page, refer to the home page for usage details.") (error "program not found:" program))) '("seq" "mkfs.ext4" "pinentry" "sudo" "gpg" "cryptsetup" "gettext" - "qrencode" "steghide" "swish-e"))))) + "qrencode" "steghide"))))) #t))) (delete 'check) (add-after 'wrap 'check From 007993bf0bfc8c7357d0f9ac0be2dd92d46130c1 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 15 Jun 2017 02:09:22 -0400 Subject: [PATCH 055/186] gnu: openttd: Update to 1.7.1. * gnu/packages/games.scm (openttd): Update to 1.7.1. --- 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 9bbf5d0220..565fea8567 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2238,14 +2238,14 @@ and a game metadata scraper.") (define openttd-engine (package (name "openttd-engine") - (version "1.7.0") + (version "1.7.1") (source (origin (method url-fetch) (uri (string-append "http://binaries.openttd.org/releases/" version "/openttd-" version "-source.tar.xz")) (sha256 (base32 - "1q4r5860dpkkw4fpfz3f8mvdd8xjpnwwzr9zybgmgb255bs0g4yz")) + "0dhv5bbbg1dmmq7fi3xss0a9jq2rqgb5sf9fsqzlsjcdm590j6b1")) (modules '((guix build utils))) (snippet ;; The DOS port contains proprietary software. From 4dbef2397f05493e1d59f3112cda94729f5968b5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 15 Jun 2017 09:15:25 +0300 Subject: [PATCH 056/186] gnu: lensfun: Fix building on non-Intel machines. * gnu/packages/photo.scm (lensfun)[arguments]: On non-Intel machines, don't build with architecture specific instructions. --- gnu/packages/photo.scm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 1fae0e4a7c..92513822ce 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Andreas Enge -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2017 Roel Janssen ;;; ;;; This file is part of GNU Guix. @@ -54,7 +54,9 @@ #:use-module (gnu packages tex) #:use-module (gnu packages web) #:use-module (gnu packages xfig) - #:use-module (gnu packages xml)) + #:use-module (gnu packages xml) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) (define-public libraw (package @@ -285,7 +287,14 @@ scene to produce an image that looks much like a tone-mapped image.") (base32 "0cfk8jjhs9nbfjfdy98plrj9ayi59aph0nx6ppslgjhlcvacm2xf")))) (build-system cmake-build-system) - (arguments `(#:tests? #f)) ; There are no tests to run. + (arguments + `(,@(if (any (cute string-prefix? <> (or (%current-system) + (%current-target-system))) + '("x86_64" "i686")) + ;; SSE and SSE2 are supported only on Intel processors. + '() + '(#:configure-flags '("-DBUILD_FOR_SSE=OFF" "-DBUILD_FOR_SSE2=OFF"))) + #:tests? #f)) ; There are no tests to run. (native-inputs `(("pkg-config" ,pkg-config))) (inputs From 9ffc1f0e95743171370e3999bd41eba9ebaada33 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 15 Jun 2017 02:47:00 -0400 Subject: [PATCH 057/186] gnu: libselinux: Propagate libsepol and pcre. Both libsepol and pcre required by libselinux.pc. * gnu/packages/selinux.scm (libselinux)[inputs]: Move libsepol and pcre... [propagated-inputs]: ...here. --- gnu/packages/selinux.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gnu/packages/selinux.scm b/gnu/packages/selinux.scm index 81c899f841..729ae646b2 100644 --- a/gnu/packages/selinux.scm +++ b/gnu/packages/selinux.scm @@ -157,11 +157,13 @@ module into a binary representation.") (add-after 'install 'install-pywrap (lambda* (#:key make-flags #:allow-other-keys) (zero? (apply system* "make" "install-pywrap" make-flags)))))))) - (inputs + ;; These libraries are in "Requires.private" in libselinux.pc. + (propagated-inputs `(("libsepol" ,libsepol) - ("pcre" ,pcre) - ;; For pywrap phase - ("python" ,python-wrapper))) + ("pcre" ,pcre))) + ;; For pywrap phase + (inputs + `(("python" ,python-wrapper))) ;; These inputs are only needed for the pywrap phase. (native-inputs `(("swig" ,swig) From 2c9232ae698c66de0de0bc67251ed95f2bc79491 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 15 Jun 2017 10:17:08 +0300 Subject: [PATCH 058/186] gnu: gemma: Fix building on 32-bit architectures. * gnu/packages/bioinformatics.scm (gemma)[arguments]: On 32-bit architectures add 'FORCE_32BIT' flag. --- gnu/packages/bioinformatics.scm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index b47f136935..21c4d098ad 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -97,7 +97,8 @@ #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages zip) - #:use-module (srfi srfi-1)) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) (define-public r-ape (package @@ -2718,19 +2719,26 @@ comment or quality sections.") ("zlib" ,zlib))) (build-system gnu-build-system) (arguments - `(#:make-flags '("FORCE_DYNAMIC=1") ; use shared libs + `(#:make-flags + '(,@(if (any (cute string-prefix? <> (or (%current-system) + (%current-target-system))) + '("x86_64" "mips64el" "aarch64")) + '("FORCE_DYNAMIC=1") ; use shared libs + '("FORCE_DYNAMIC=1" "FORCE_32BIT=1"))) #:phases (modify-phases %standard-phases (delete 'configure) (add-before 'build 'bin-mkdir (lambda _ - (mkdir-p "bin"))) + (mkdir-p "bin") + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (install-file "bin/gemma" (string-append - out "/bin")))))) + out "/bin"))) + #t))) #:tests? #f)) ; no tests included yet (home-page "https://github.com/xiangzhou/GEMMA") (synopsis "Tool for genome-wide efficient mixed model association") From 07bf6929b904eda4e9d6af22699f75a42e2b2450 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 15 Jun 2017 10:18:17 +0300 Subject: [PATCH 059/186] gnu: gemma: Fix indentation. * gnu/packages/bioinformatics.scm (gemma)[arguments]: Fix indentation. --- gnu/packages/bioinformatics.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 21c4d098ad..cded2dd8c8 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2729,16 +2729,16 @@ comment or quality sections.") (modify-phases %standard-phases (delete 'configure) (add-before 'build 'bin-mkdir - (lambda _ - (mkdir-p "bin") - #t)) + (lambda _ + (mkdir-p "bin") + #t)) (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (install-file "bin/gemma" - (string-append - out "/bin"))) - #t))) + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (install-file "bin/gemma" + (string-append + out "/bin"))) + #t))) #:tests? #f)) ; no tests included yet (home-page "https://github.com/xiangzhou/GEMMA") (synopsis "Tool for genome-wide efficient mixed model association") From c84384cb7cef061f19d0e5aa1b2c543d048b95da Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Wed, 14 Jun 2017 17:46:36 +0200 Subject: [PATCH 060/186] gnu: kdevelop: Update to 5.1.1. * gnu/packages/kde.scm (kdevelop): Update to 5.1.1. [arguments]: Set QT_QPA_PLATFORM_PLUGIN_PATH during the wrap-executable phase. (kdevplatform): Update to 5.1.1. --- gnu/packages/kde.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index a5ad8da062..0a416148cb 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -39,7 +39,7 @@ (define-public kdevelop (package (name "kdevelop") - (version "5.1.0") + (version "5.1.1") (source (origin (method url-fetch) @@ -48,7 +48,7 @@ version ".tar.xz")) (sha256 (base32 - "1s4cbkx2a0p73b52yxmf5dhv08xk9pxgrkjsnbzy76ssfr545g60")))) + "0m6pnmylp1gij5cr75waz8hjry5894qillj5977h467hnbzs808a")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -100,6 +100,7 @@ (kio (assoc-ref inputs "kio")) (kcmutils (assoc-ref inputs "kcmutils")) (qtquickcontrols (assoc-ref inputs "qtquickcontrols")) + (qtbase (assoc-ref inputs "qtbase")) (qtdeclarative (assoc-ref inputs "qtdeclarative")) (profile "$HOME/.guix-profile") (qml "/qml")) @@ -107,6 +108,8 @@ `("XDG_DATA_DIRS" ":" prefix ,(map (lambda (s) (string-append s "/share")) (list profile out kdevplatform kcmutils))) + `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" = + (,(string-append qtbase "/plugins/platforms"))) `("QT_PLUGIN_PATH" ":" prefix ,(map (lambda (s) (string-append s "/lib/plugins")) (list profile out kdevplatform kio))) @@ -148,7 +151,7 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).") (define-public kdevplatform (package (name "kdevplatform") - (version "5.1.0") + (version "5.1.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/kdevelop" @@ -156,7 +159,7 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).") version ".tar.xz")) (sha256 (base32 - "1nxf66vk6p7lmckdsha9fpq3zchwbg79qhy49f4hndlxgj03p7zh")))) + "09p7lvniw55g6x8v8wl3azlps8c13yx03x1m9cd3qdxi282l8n9i")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) From b7aa3f5d2e04800b60ece895c88dd753d2c3dfcc Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 5 Jun 2017 18:18:06 +0200 Subject: [PATCH 061/186] gnu: postgresql: Enable contributed extensions. * gnu/packages/databases.scm (postgresql)[arguments]: Add "build-contrib", "install-contrib" phases. Add configure-flags. [inputs]: Add libuuid. --- gnu/packages/databases.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index c46e917b89..963d209a44 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -459,7 +459,8 @@ as a drop-in replacement of MySQL.") "1imrjp4vfslxj5rrvphcrrk21zv8kqw3gacmwradixh1d5rv6i8n")))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:configure-flags '("--with-uuid=e2fs") + #:phases (modify-phases %standard-phases (add-before 'configure 'patch-/bin/sh (lambda _ @@ -467,9 +468,16 @@ as a drop-in replacement of MySQL.") (substitute* '("src/bin/pg_ctl/pg_ctl.c" "src/bin/psql/command.c") (("/bin/sh") (which "sh"))) - #t))))) + #t)) + (add-after 'build 'build-contrib + (lambda _ + (zero? (system* "make" "-C" "contrib")))) + (add-after 'install 'install-contrib + (lambda _ + (zero? (system* "make" "-C" "contrib" "install"))))))) (inputs `(("readline" ,readline) + ("libuuid" ,util-linux) ("zlib" ,zlib))) (home-page "https://www.postgresql.org/") (synopsis "Powerful object-relational database system") From d1e7ca2df8c0e0dd601079c77f67ba6828cec08a Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 31 May 2017 22:04:15 +0200 Subject: [PATCH 062/186] import: pypi: Always use pypi.io URL with downcased package name. * guix/import/pypi.scm (make-pypi-sexp): Always use pypi.io URL with downcased package name. --- guix/import/pypi.scm | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 9c72e73314..90dbe56128 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -258,11 +258,7 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." ;; Sometimes 'pypi-uri' doesn't quite work due to mixed ;; cases in NAME, for instance, as is the case with ;; "uwsgi". In that case, fall back to a full URL. - (uri ,(if (equal? (pypi-uri name version) source-url) - `(pypi-uri ,name version) - `(string-append - ,@(factorize-uri source-url version)))) - + (uri (pypi-uri ,(string-downcase name) version)) (sha256 (base32 ,(guix-hash-url temp))))) From 324b0040f4ac493ef11f82712db2c9abcc6b92ca Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Mon, 5 Jun 2017 21:22:01 +0200 Subject: [PATCH 063/186] gnu: Move desktop-file-utils to (gnu packages freedesktop). * gnu/packages/gnome.scm (desktop-file-utils): Move from here ... * gnu/packages/freedesktop.scm (desktop-file-utils): ... to here. * gnu/packages/engineering.scm: Import (gnu packages freedesktop). * gnu/packages/game-development.scm: Import (gnu packages freedesktop). * gnu/packages/xfce.scm: Import (gnu packages freedesktop). --- gnu/packages/engineering.scm | 1 + gnu/packages/freedesktop.scm | 32 +++++++++++++++++++++++++++++++ gnu/packages/game-development.scm | 1 + gnu/packages/gnome.scm | 32 ------------------------------- gnu/packages/xfce.scm | 1 + 5 files changed, 35 insertions(+), 32 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 7568a1a9c3..c171e2629a 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -44,6 +44,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gd) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index e4b773078f..a9a7e08da1 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -968,3 +968,35 @@ library to access fingerprint readers, over the D-Bus interprocess communication bus. This daemon layer above libfprint solves problems related to applications simultaneously competing for fingerprint readers.") (license license:gpl2+))) + +(define-public desktop-file-utils + (package + (name "desktop-file-utils") + (version "0.23") + (source (origin + (method url-fetch) + (uri (string-append "https://www.freedesktop.org/software/" name + "/releases/" name "-" version ".tar.xz")) + (sha256 + (base32 + "119kj2w0rrxkhg4f9cf5waa55jz1hj8933vh47vcjipcplql02bc")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib))) + (home-page "http://www.freedesktop.org/wiki/Software/desktop-file-utils/") + (synopsis "Utilities for working with desktop entries") + (description + "This package contains a few command line utilities for working with +desktop entries: + +desktop-file-validate: validates a desktop file and prints warnings/errors + about desktop entry specification violations. + +desktop-file-install: installs a desktop file to the applications directory, + optionally munging it a bit in transit. + +update-desktop-database: updates the database containing a cache of MIME types + handled by desktop files.") + (license license:gpl2+))) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 5253d0c919..89db6427b0 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages databases) #:use-module (gnu packages documentation) #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages fribidi) #:use-module (gnu packages glib) #:use-module (gnu packages gnunet) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index a5d7c39387..20222ed9be 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -736,38 +736,6 @@ Specification, the icon naming utility maps the icon names used by the GNOME and KDE desktops to the icon names proposed in the specification.") (license license:lgpl2.1+))) -(define-public desktop-file-utils - (package - (name "desktop-file-utils") - (version "0.23") - (source (origin - (method url-fetch) - (uri (string-append "https://www.freedesktop.org/software/" name - "/releases/" name "-" version ".tar.xz")) - (sha256 - (base32 - "119kj2w0rrxkhg4f9cf5waa55jz1hj8933vh47vcjipcplql02bc")))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("glib" ,glib))) - (home-page "http://www.freedesktop.org/wiki/Software/desktop-file-utils/") - (synopsis "Utilities for working with desktop entries") - (description - "This package contains a few command line utilities for working with -desktop entries: - -desktop-file-validate: validates a desktop file and prints warnings/errors - about desktop entry specification violations. - -desktop-file-install: installs a desktop file to the applications directory, - optionally munging it a bit in transit. - -update-desktop-database: updates the database containing a cache of MIME types - handled by desktop files.") - (license license:gpl2+))) - (define-public gnome-icon-theme (package (name "gnome-icon-theme") diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index c8786dd69b..d7d1372dd2 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages xdisorg) #:use-module (gnu packages web) #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages image) #:use-module (gnu packages gnome) #:use-module (gnu packages pdf) From a3f8aae4a159baf2de10c1f8860d7128c89fbb0c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 15 Jun 2017 10:26:12 +0200 Subject: [PATCH 064/186] gnu: liburcu: Update to 0.10.0. * gnu/packages/databases.scm (liburcu): Update to 0.10.0. --- gnu/packages/datastructures.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm index 79068a54d0..36318ee04e 100644 --- a/gnu/packages/datastructures.scm +++ b/gnu/packages/datastructures.scm @@ -97,14 +97,14 @@ in between these sequences may be different in both content and length.") (define-public liburcu (package (name "liburcu") - (version "0.9.3") + (version "0.10.0") (source (origin (method url-fetch) (uri (string-append "https://www.lttng.org/files/urcu/" "userspace-rcu-" version ".tar.bz2")) (sha256 (base32 - "01j0xp3f0w147yfyzybkjvb7i67i7prsvnkssgvgwry9lvk35khv")))) + "141imnd1s4bcd4wz0wk7sp3fj649kp8whp82gw49h48mlmxqmdbw")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ; for tests From 603fd6b9a1e93fe62edf81e1ce0d2578b6f393cf Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 14 Jun 2017 17:05:51 +0200 Subject: [PATCH 065/186] gnu: lmdb: Update to 0.9.21. * gnu/packages/databases.scm (lmdb): Update to 0.9.21. --- 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 963d209a44..2197814ad9 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1334,14 +1334,14 @@ trees (LSM), for sustained throughput under random insert workloads.") (define-public lmdb (package (name "lmdb") - (version "0.9.18") + (version "0.9.21") (source (origin (method url-fetch) (uri (string-append "https://github.com/LMDB/lmdb/archive/" "LMDB_" version ".tar.gz")) (sha256 (base32 - "12crvzxky8in99ibh22k4ppmkgqs28yy3v7yy944za7fsrqv8dfx")))) + "0ndmj07hkm2ic60z1f4rdscxs7pq45hk9fibjyv5nhfclhsvd1qi")))) (build-system gnu-build-system) (arguments `(#:test-target "test" From 58e53a046880bb7212d4e0659eba3212284d75bb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 15 Jun 2017 06:21:49 -0400 Subject: [PATCH 066/186] gnu: linux-libre@4.4: Update to 4.4.72. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.72. --- 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 9b2a522361..dbeb0d3f67 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -374,8 +374,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.71" - "0nrd165crx9m9s1px98if6q5dcdqwmas9kh8i4rw51gz2xinh0gx" + (make-linux-libre "4.4.72" + "1xb2hyyw1db1viahi3fxwvch17lgn2yx3qcghrb20hys19pxz0f4" %intel-compatible-systems #:configuration-file kernel-config)) From 8a16df0290a71a516bc18f6af3b8e7bbcad5baec Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 15 Jun 2017 06:22:36 -0400 Subject: [PATCH 067/186] gnu: linux-libre@4.9: Update to 4.9.32. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.32. --- 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 dbeb0d3f67..3e2e5e7530 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -368,8 +368,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.31" - "0amc35c9f2rym6grb277yscnx8ybn8d4fbc2a59sgkg1lsdv7n4q" + (make-linux-libre "4.9.32" + "0xvpbnl9lshhfg56rsdzqqq7kjkrj26jpdfh9w8mm1ap42nbbjph" %intel-compatible-systems #:configuration-file kernel-config)) From 32fdad78c171bdb493aac4bd19164ce657ebd28f Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 15 Jun 2017 06:23:16 -0400 Subject: [PATCH 068/186] gnu: linux-libre: Update to 4.11.5. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.11.5. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 3e2e5e7530..f4f5d50543 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -358,8 +358,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-libre-version "4.11.4") -(define %linux-libre-hash "11nd9pv18vz3g82ja71dkz9mbs0ffb8yamsd44d381szmmm2kpj8") +(define %linux-libre-version "4.11.5") +(define %linux-libre-hash "0rpd0cvbwxa3h1jdx6vgbfs2shyymmc45kw837ksz7q5b0chqn4h") (define-public linux-libre (make-linux-libre %linux-libre-version From bef0db37690201573419f19946494a5e5188c1bd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 11:54:23 +0200 Subject: [PATCH 069/186] guix: Add download-svn-to-store. * guix/svn-download.scm (download-svn-to-store): New procedure. --- guix/svn-download.scm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/guix/svn-download.scm b/guix/svn-download.scm index c1200fa0c5..c118869af1 100644 --- a/guix/svn-download.scm +++ b/guix/svn-download.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014 Sree Harsha Totakura +;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,12 +24,15 @@ #:use-module (guix store) #:use-module (guix monads) #:use-module (guix packages) + #:use-module (guix utils) + #:use-module ((guix build svn) #:prefix build:) #:use-module (ice-9 match) #:export (svn-reference svn-reference? svn-reference-url svn-reference-revision - svn-fetch)) + svn-fetch + download-svn-to-store)) ;;; Commentary: ;;; @@ -79,4 +83,21 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." #:guile-for-build guile #:local-build? #t))) +(define* (download-svn-to-store store ref + #:optional (name (basename (svn-reference-url ref))) + #:key (log (current-error-port))) + "Download from REF, a object to STORE. Write progress +reports to LOG." + (call-with-temporary-directory + (lambda (temp) + (let ((result + (parameterize ((current-output-port log)) + (build:svn-fetch (svn-reference-url ref) + (svn-reference-revision ref) + temp + #:user-name (svn-reference-user-name ref) + #:password (svn-reference-password ref))))) + (and result + (add-to-store store name #t "sha256" temp)))))) + ;;; svn-download.scm ends here From 942c4f812abbaddd429ed1c57113e8c7aa8116ec Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 11:55:44 +0200 Subject: [PATCH 070/186] licenses: Add common TeX and LaTeX licenses. * guix/licenses.scm (knuth, lppl, lppl1.0+, lppl1.2, lppl1.2+, lppl1.3, lppl1.3+, lppl1.3a, lppl1.3a+, lppl1.3b, lppl1.3b+, lppl1.3c, lppl1.3c+): New variables. --- guix/licenses.scm | 71 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/guix/licenses.scm b/guix/licenses.scm index 6845b89d90..1bed56af20 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -60,7 +60,13 @@ ibmpl1.0 imlib2 ipa + knuth lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+ + lppl lppl1.0+ lppl1.2 lppl1.2+ + lppl1.3 lppl1.3+ + lppl1.3a lppl1.3a+ + lppl1.3b lppl1.3b+ + lppl1.3c lppl1.3c+ mpl1.0 mpl1.1 mpl2.0 ms-pl ncsa @@ -351,6 +357,11 @@ at URI, which may be a file:// URI pointing the package's tree." "http://directory.fsf.org/wiki/License:IPA_Font_License" "https://www.gnu.org/licenses/license-list#IPAFONT")) +(define knuth + (license "Donald Knuth's license for TeX" + "http://www.ctan.org/license/knuth" + "Modification are only permitted under a different name.")) + (define lgpl2.0 (license "LGPL 2.0" "https://www.gnu.org/licenses/old-licenses/lgpl-2.0.html" @@ -381,6 +392,66 @@ at URI, which may be a file:// URI pointing the package's tree." "https://www.gnu.org/licenses/lgpl.html" "https://www.gnu.org/licenses/license-list#LGPLv3")) +(define lppl + (license "LPPL (any version)" + "https://www.latex-project.org/lppl/lppl-1-0/" + "LaTeX Project Public License 1.0")) + +(define lppl1.0+ + (license "LPPL 1.0+" + "https://www.latex-project.org/lppl/lppl-1-0/" + "LaTeX Project Public License 1.0")) + +(define lppl1.2 + (license "LPPL 1.2" + "http://directory.fsf.org/wiki/License:LPPLv1.2" + "https://www.gnu.org/licenses/license-list#LPPL-1.2")) + +(define lppl1.2+ + (license "LPPL 1.2+" + "http://directory.fsf.org/wiki/License:LPPLv1.2" + "https://www.gnu.org/licenses/license-list#LPPL-1.2")) + +(define lppl1.3 + (license "LPPL 1.3" + "https://www.latex-project.org/lppl/lppl-1-3/" + "LaTeX Project Public License 1.3")) + +(define lppl1.3+ + (license "LPPL 1.3+" + "https://www.latex-project.org/lppl/lppl-1-3/" + "LaTeX Project Public License 1.3+")) + +(define lppl1.3a + (license "LPPL 1.3a" + "http://directory.fsf.org/wiki/License:LPPLv1.3a" + "https://www.gnu.org/licenses/license-list#LPPL-1.3a")) + +(define lppl1.3a+ + (license "LPPL 1.3a+" + "http://directory.fsf.org/wiki/License:LPPLv1.3a" + "https://www.gnu.org/licenses/license-list#LPPL-1.3a")) + +(define lppl1.3b + (license "LPPL 1.3b" + "https://www.latex-project.org/lppl/lppl-1-3b/" + "LaTeX Project Public License 1.3b")) + +(define lppl1.3b+ + (license "LPPL 1.3b+" + "https://www.latex-project.org/lppl/lppl-1-3b/" + "LaTeX Project Public License 1.3b or later")) + +(define lppl1.3c + (license "LPPL 1.3c" + "https://www.latex-project.org/lppl/lppl-1-3c/" + "LaTeX Project Public License 1.3c")) + +(define lppl1.3c+ + (license "LPPL 1.3c+" + "https://www.latex-project.org/lppl/lppl-1-3c/" + "LaTeX Project Public License 1.3c or later")) + (define mpl1.0 (license "MPL 1.0" "http://www.mozilla.org/MPL/1.0/" From 9d913b251be14f36ec6660b3375758ed191bc2e2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 12:23:07 +0200 Subject: [PATCH 071/186] gnu: Add texlive-dvips. * gnu/packages/tex.scm (%texlive-tag, %texlive-revision, texlive-dvips): New variables. --- gnu/packages/tex.scm | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 7839e16b27..b1adec5d99 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Federico Beffa ;;; Copyright © 2016 Thomas Danckaert -;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +32,7 @@ #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (guix git-download) + #:use-module (guix svn-download) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages bash) @@ -179,6 +180,44 @@ This package contains the binaries.") (license (license:fsf-free "https://www.tug.org/texlive/copying.html")) (home-page "https://www.tug.org/texlive/"))) +;; These variables specify the SVN tag and the matching SVN revision. +(define %texlive-tag "texlive-2017.0") +(define %texlive-revision 44445) + +(define-public texlive-dvips + (package + (name "texlive-dvips") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/dvips")) + (revision %texlive-revision))) + (sha256 + (base32 + "1k11yvz4q95bxyxczwvd4r177h6a2gg03xmf51kmgjgz8an2gq2w")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/dvips"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/dvips") + (synopsis "DVI to PostScript drivers") + (description "This package provides files needed for converting DVI files +to PostScript.") + ;; Various free software licenses apply to individual files. + (license (list license:lppl1.3c+ + license:expat + license:lgpl3+)))) + (define texlive-texmf (package (name "texlive-texmf") From 99952c538b5931bca814b47d840ce83e41e46f4e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 18:25:02 +0200 Subject: [PATCH 072/186] gnu: Add texlive-generic-unicode-data. * gnu/packages/tex.scm (texlive-generic-unicode-date): New variable. --- gnu/packages/tex.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index b1adec5d99..9e05eee516 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -218,6 +218,44 @@ to PostScript.") license:expat license:lgpl3+)))) +(define-public texlive-generic-unicode-data + (package + (name "texlive-generic-unicode-data") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/generic/unicode-data")) + (revision %texlive-revision))) + (sha256 + (base32 + "0ivrhp6jz31pl4z841g4ws41lmvdiwz4sslmhf02inlib79gz6r2")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/generic/unicode-data"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/unicode-data") + (synopsis "Unicode data and loaders for TeX") + (description "This bundle provides generic access to Unicode Consortium +data for TeX use. It contains a set of text files provided by the Unicode +Consortium which are currently all from Unicode 8.0.0, with the exception of +@code{MathClass.txt} which is not currently part of the Unicode Character +Database. Accompanying these source data are generic TeX loader files +allowing this data to be used as part of TeX runs, in particular in building +format files. Currently there are two loader files: one for general character +set up and one for initializing XeTeX character classes as has been carried +out to date by @code{unicode-letters.tex}. ") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") From 9e99b1b41ba007124861092ad4bd0995e25abd2a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 02:57:11 +0200 Subject: [PATCH 073/186] gnu: Add texlive-generic-dehyph-exptl. * gnu/packages/tex.scm (texlive-generic-dehyph-exptl): New variable. --- gnu/packages/tex.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 9e05eee516..7e4d29be53 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -256,6 +256,41 @@ set up and one for initializing XeTeX character classes as has been carried out to date by @code{unicode-letters.tex}. ") (license license:lppl1.3c+))) +(define-public texlive-generic-dehyph-exptl + (package + (name "texlive-generic-dehyph-exptl") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/generic/dehyph-exptl")) + (revision %texlive-revision))) + (sha256 + (base32 + "1l9wgv99qq0ysvlxqpj4g8bl0dywbzra4g8m2kmpg2fb0i0hczap")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/generic/dehyph-exptl"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://projekte.dante.de/Trennmuster/WebHome") + (synopsis "Hyphenation patterns for German") + (description "The package provides experimental hyphenation patterns for +the German language, covering both traditional and reformed orthography. The +patterns can be used with packages Babel and hyphsubst from the Oberdiek +bundle.") + ;; Hyphenation patterns are under the Expat license; documentation is + ;; under LPPL. + (license (list license:expat license:lppl)))) + (define texlive-texmf (package (name "texlive-texmf") From 453aae663b9f601093755f4fa89a342a361c6ded Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 02:57:47 +0200 Subject: [PATCH 074/186] gnu: Add texlive-generic-tex-ini-files. * gnu/packages/tex.scm (texlive-generic-tex-ini-files): New variable. --- gnu/packages/tex.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 7e4d29be53..b798590fe7 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -291,6 +291,40 @@ bundle.") ;; under LPPL. (license (list license:expat license:lppl)))) +(define-public texlive-generic-tex-ini-files + (package + (name "texlive-generic-tex-ini-files") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/generic/tex-ini-files")) + (revision %texlive-revision))) + (sha256 + (base32 + "1wh42n1lmzcvi3g6mm31nm3yd5ha5bl260xqc444jg1m9fdp3wz5")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/generic/tex-ini-files"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://ctan.org/pkg/tex-ini-files") + (synopsis "Files for creating TeX formats") + (description "This bundle provides a collection of model \".ini\" files +for creating TeX formats. These files are commonly used to introduced +distribution-dependent variations in formats. They are also used to +allow existing format source files to be used with newer engines, for example +to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.") + (license license:public-domain))) + (define texlive-texmf (package (name "texlive-texmf") From 9b134da86a67487ded9495d4aac84fc95b1d9bd4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 02:58:16 +0200 Subject: [PATCH 075/186] gnu: Add texlive-generic-hyph-utf8. * gnu/packages/tex.scm (texlive-generic-hyph-utf8): New variable. --- gnu/packages/tex.scm | 56 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index b798590fe7..20b5a35baf 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -325,6 +325,62 @@ allow existing format source files to be used with newer engines, for example to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.") (license license:public-domain))) +(define-public texlive-generic-hyph-utf8 + (package + (name "texlive-generic-hyph-utf8") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/generic/hyph-utf8")) + (revision %texlive-revision))) + (sha256 + (base32 + "0ghizcz7ps16dzfqf66wwg5i181assc6qsm0g7g5dbmp909931vi")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/generic/hyph-utf8"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://ctan.org/pkg/hyph-utf8") + (synopsis "Hyphenation patterns expressed in UTF-8") + (description "Modern native UTF-8 engines such as XeTeX and LuaTeX need +hyphenation patterns in UTF-8 format, whereas older systems require +hyphenation patterns in the 8-bit encoding of the font in use (such encodings +are codified in the LaTeX scheme with names like OT1, T2A, TS1, OML, LY1, +etc). The present package offers a collection of conversions of existing +patterns to UTF-8 format, together with converters for use with 8-bit fonts in +older systems. Since hyphenation patterns for Knuthian-style TeX systems are +only read at iniTeX time, it is hoped that the UTF-8 patterns, with their +converters, will completely supplant the older patterns.") + ;; Individual files each have their own license. Most of these files are + ;; independent hyphenation patterns. + (license (list license:lppl1.0+ + license:lppl1.2+ + license:lppl1.3 + license:lppl1.3+ + license:lppl1.3a+ + license:lgpl2.1 + license:lgpl2.1+ + license:lgpl3+ + license:gpl2+ + license:gpl3+ + license:mpl1.1 + license:asl2.0 + license:expat + license:bsd-3 + license:cc0 + license:public-domain + license:wtfpl2)))) + (define texlive-texmf (package (name "texlive-texmf") From 8ada0f0b3a16390486d83502f35d46d603fe393a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 12:34:02 +0200 Subject: [PATCH 076/186] gnu: Add texlive-metafont-base. * gnu/packages/tex.scm (texlive-metafont-base): New variable. --- gnu/packages/tex.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 20b5a35baf..5a92b3ed14 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -381,6 +381,57 @@ converters, will completely supplant the older patterns.") license:public-domain license:wtfpl2)))) +(define-public texlive-metafont-base + (package + (name "texlive-metafont-base") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/metafont")) + (revision %texlive-revision))) + (sha256 + (base32 + "1yl4n8cn5xqk2nc22zgzq6ymd7bhm6xx1mz3azip7i3ki4bhb5q5")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no test target + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((cwd (getcwd))) + (setenv "MFINPUTS" + (string-append cwd "/base:" + cwd "/misc:" + cwd "/roex:" + cwd "/feynmf:" + cwd "/mfpic:" + cwd "/config"))) + (mkdir "build") + (with-directory-excursion "build" + (zero? (system* "inimf" "mf.mf"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (base (string-append out "/share/texmf-dist/web2c")) + (mf (string-append out "/share/texmf-dist/metafont/base"))) + (mkdir-p base) + (mkdir-p mf) + (install-file "build/mf.base" base) + (copy-recursively "base" mf) + #t)))))) + (native-inputs + `(("texlive-bin" ,texlive-bin))) + (home-page "http://www.ctan.org/pkg/metafont") + (synopsis "Metafont base files") + (description "This package provides the Metafont base files needed to +build fonts using the Metafont system.") + (license license:knuth))) + (define texlive-texmf (package (name "texlive-texmf") From 3c4f1ec754caa9082f8e6e6937790f1c331b6baf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 15:46:07 +0200 Subject: [PATCH 077/186] gnu: Add texlive-fonts-cm. * gnu/packages/tex.scm (texlive-fonts-cm): New variable. --- gnu/packages/tex.scm | 68 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 5a92b3ed14..f3aef6fc4d 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -432,6 +432,74 @@ converters, will completely supplant the older patterns.") build fonts using the Metafont system.") (license license:knuth))) +(define-public texlive-fonts-cm + (package + (name "texlive-fonts-cm") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/source/public/cm")) + (revision %texlive-revision))) + (sha256 + (base32 + "045k5b9rdmbxpy1a3006l1x96z1rd18vg3cwrvnld9bqybw5qz44")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26)) + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((mf (assoc-ref inputs "texlive-metafont-base"))) + ;; Tell mf where to find mf.base + (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c")) + ;; Tell mf where to look for source files + (setenv "MFINPUTS" + (string-append (getcwd) ":" + mf "/share/texmf-dist/metafont/base"))) + (mkdir "build") + (every (lambda (font) + (format #t "building font ~a\n" font) + (zero? (system* "mf" "-progname=mf" + "-output-directory=build" + (string-append "\\" + "mode:=ljfour; " + "mag:=1; " + "batchmode; " + "input " + (basename font ".mf"))))) + (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (tfm (string-append + out "/share/texmf-dist/fonts/tfm/public/cm")) + (mf (string-append + out "/share/texmf-dist/fonts/source/public/cm"))) + (for-each (cut install-file <> tfm) + (find-files "build" "\\.*")) + (for-each (cut install-file <> mf) + (find-files "." "\\.mf")) + #t)))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-metafont-base" ,texlive-metafont-base))) + (home-page "http://www.ctan.org/pkg/cm") + (synopsis "Computer Modern fonts for TeX") + (description "This package provides the Computer Modern fonts by Donald +Knuth. The Computer Modern font family is a large collection of text, +display, and mathematical fonts in a range of styles, based on Monotype Modern +8A.") + (license license:knuth))) + (define texlive-texmf (package (name "texlive-texmf") From 5ebba61a295443951e9954fe1bfea411e645c530 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 03:03:48 +0200 Subject: [PATCH 078/186] gnu: Add texlive-fonts-knuth-lib. * gnu/packages/tex.scm (texlive-fonts-knuth-lib): New variable. --- gnu/packages/tex.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index f3aef6fc4d..41e48d76d0 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -500,6 +500,69 @@ display, and mathematical fonts in a range of styles, based on Monotype Modern 8A.") (license license:knuth))) +(define-public texlive-fonts-knuth-lib + (package + (name "texlive-fonts-knuth-lib") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/source/public/knuth-lib")) + (revision %texlive-revision))) + (sha256 + (base32 + "0in9aqyi8jkyf9d16z0li50z5fpwj1iwgwm83gmvwqcf7chfs04y")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((mf (assoc-ref inputs "texlive-metafont-base"))) + ;; Tell mf where to find mf.base + (setenv "MFBASES" + (string-append mf "/share/texmf-dist/web2c")) + ;; Tell mf where to look for source files + (setenv "MFINPUTS" + (string-append (getcwd) ":" + mf "/share/texmf-dist/metafont/base"))) + (mkdir "build") + (zero? (system* "mf" "-progname=mf" + "-output-directory=build" + (string-append "\\" + "mode:=ljfour; " + "mag:=1; " + "batchmode; " + "input manfnt"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (tfm (string-append + out "/share/texmf-dist/fonts/tfm/public/knuth-lib")) + (mf (string-append + out "/share/texmf-dist/fonts/source/public/knuth-lib"))) + (for-each (cut install-file <> tfm) + (find-files "build" "\\.*")) + (for-each (cut install-file <> mf) + (find-files "." "\\.mf")) + #t)))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-metafont-base" ,texlive-metafont-base))) + (home-page "https://www.ctan.org/pkg/knuth-lib") + (synopsis "Small library of METAFONT sources") + (description "This is a collection of core TeX and METAFONT macro files +from Donald Knuth, including the plain format, plain base, and the MF logo +fonts.") + (license license:knuth))) + (define texlive-texmf (package (name "texlive-texmf") From a00d593315cc14b1cce86f92cf992d10207562ed Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 15:47:17 +0200 Subject: [PATCH 079/186] gnu: Add texlive-fonts-latex. * gnu/packages/tex.scm (texlive-fonts-latex): New variable. --- gnu/packages/tex.scm | 74 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 41e48d76d0..8b6bfe6fac 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -563,6 +563,80 @@ from Donald Knuth, including the plain format, plain base, and the MF logo fonts.") (license license:knuth))) +(define-public texlive-fonts-latex + (package + (name "texlive-fonts-latex") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/source/public/latex-fonts")) + (revision %texlive-revision))) + (sha256 + (base32 + "0ypsm4xv9cw0jckk2qc7gi9hcmhf31mrg56pz3llyx3yd9vq2lps")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26)) + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((mf (assoc-ref inputs "texlive-metafont-base"))) + ;; Tell mf where to find mf.base + (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c")) + ;; Tell mf where to look for source files + (setenv "MFINPUTS" + (string-append (getcwd) ":" + mf "/share/texmf-dist/metafont/base:" + (assoc-ref inputs "texlive-fonts-cm") + "/share/texmf-dist/fonts/source/public/cm"))) + (mkdir "build") + (every (lambda (font) + (format #t "building font ~a\n" font) + (zero? (system* "mf" "-progname=mf" + "-output-directory=build" + (string-append "\\" + "mode:=ljfour; " + "mag:=1; " + "batchmode; " + "input " font)))) + '("icmcsc10" "icmex10" "icmmi8" "icmsy8" "icmtt8" + "ilasy8" "ilcmss8" "ilcmssb8" "ilcmssi8" + "lasy5" "lasy6" "lasy7" "lasy8" "lasy9" "lasy10" "lasyb10" + "lcircle10" "lcirclew10" "lcmss8" "lcmssb8" "lcmssi8" + "line10" "linew10")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (tfm (string-append + out "/share/texmf-dist/fonts/tfm/public/latex-fonts")) + (mf (string-append + out "/share/texmf-dist/fonts/source/public/latex-fonts"))) + (for-each (cut install-file <> tfm) + (find-files "build" "\\.*")) + (for-each (cut install-file <> mf) + (find-files "." "\\.mf")) + #t)))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-metafont-base" ,texlive-metafont-base) + ("texlive-fonts-cm" ,texlive-fonts-cm))) + (home-page "http://www.ctan.org/pkg/latex-fonts") + (synopsis "Collection of fonts used in LaTeX distributions") + (description "This is a collection of fonts for use with standard LaTeX +packages and classes. It includes invisible fonts (for use with the slides +class), line and circle fonts (for use in the picture environment) and LaTeX +symbol fonts.") + (license license:lppl1.2+))) + (define texlive-texmf (package (name "texlive-texmf") From 566e95f7a84cdff440349be074d42a6b250785ca Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 09:26:00 +0200 Subject: [PATCH 080/186] gnu: Add texlive-tex-plain. * gnu/packages/tex.scm (texlive-tex-plain): New variable. --- gnu/packages/tex.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 8b6bfe6fac..294225c4cb 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -637,6 +637,41 @@ class), line and circle fonts (for use in the picture environment) and LaTeX symbol fonts.") (license license:lppl1.2+))) +;; This provides etex.src which is needed to build various formats, including +;; luatex.fmt and pdflatex.fmt +(define-public texlive-tex-plain + (package + (name "texlive-tex-plain") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/plain")) + (revision %texlive-revision))) + (sha256 + (base32 + "1ifmbyl3ir8k0v1g25xjb5rcyy5vhj8a3fa2088nczga09hna5vn")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/plain"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "https://www.ctan.org/pkg/plain") + (synopsis "Plain TeX format and supporting files") + (description + "Contains files used to build the Plain TeX format, as described in the +TeXbook, together with various supporting files (some also discussed in the +book).") + (license license:knuth))) + (define texlive-texmf (package (name "texlive-texmf") From 010f476fda242aa6f05384aee88ba7d37979213f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 10:48:40 +0200 Subject: [PATCH 081/186] gnu: Add texlive-latex-base. * gnu/packages/tex.scm (texlive-latex-base): New variable. (texlive-ref): New procedure. --- gnu/packages/tex.scm | 147 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 294225c4cb..9c791ffa10 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -672,6 +672,153 @@ TeXbook, together with various supporting files (some also discussed in the book).") (license license:knuth))) +(define (texlive-ref component id) + "Return a object for the package ID, which is part of the +given Texlive COMPONENT." + (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "source/" component "/" id)) + (revision %texlive-revision))) + +(define-public texlive-latex-base + (let ((texlive-dir + (lambda (dir hash) + (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + dir)) + (revision %texlive-revision))) + (sha256 (base32 hash)))))) + (package + (name "texlive-latex-base") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "base")) + (sha256 + (base32 + "1h9pir2hz6i9avc4lrl733p3zf4rpkg8537x1zdbhs91hvhikw9k")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 match) + (srfi srfi-1) + (srfi srfi-26)) + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + ;; Find required fonts + (setenv "TFMFONTS" + (string-append (assoc-ref inputs "texlive-fonts-cm") + "/share/texmf-dist/fonts/tfm/public/cm:" + (assoc-ref inputs "texlive-fonts-latex") + "/share/texmf-dist/fonts/tfm/public/latex-fonts:" + (assoc-ref inputs "texlive-fonts-knuth-lib") + "/share/texmf-dist/fonts/tfm/public/knuth-lib")) + (setenv "TEXINPUTS" + (string-append + (getcwd) ":" + (getcwd) "/build:" + (string-join + (append-map (match-lambda + ((_ . dir) + (find-files dir + (lambda (_ stat) + (eq? 'directory (stat:type stat))) + #:directories? #t + #:stat stat))) + inputs) + ":"))) + + ;; Create an empty texsys.cfg, because latex.ltx wants to include + ;; it. This file must exist and it's fine if it's empty. + (with-output-to-file "texsys.cfg" + (lambda _ (format #t "%"))) + + (mkdir "build") + (mkdir "web2c") + (and (zero? (system* "luatex" "-ini" "-interaction=batchmode" + "-output-directory=build" + "unpack.ins")) + ;; LaTeX and XeTeX require e-TeX, which is enabled only in + ;; extended mode (activated with a leading asterisk). We + ;; should not use luatex here, because that would make the + ;; generated format files incompatible with any other TeX + ;; engine. + + ;; FIXME: XeTeX fails to build because neither + ;; \XeTeXuseglyphmetrics nor \XeTeXdashbreakstate are + ;; defined. + (every + (lambda (format) + (zero? (system* "latex" "-ini" "-interaction=batchmode" + "-output-directory=web2c" + "-translate-file=cp227.tcx" + (string-append "*" format ".ini")))) + '("latex" ;"xetex" + )) + (every + (lambda (format) + (zero? (system* "luatex" "-ini" "-interaction=batchmode" + "-output-directory=web2c" + (string-append format ".ini")))) + '("dviluatex" "dvilualatex" "luatex" "lualatex" "xelatex"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (target (string-append + out "/share/texmf-dist/tex/latex/base")) + (web2c (string-append + out "/share/texmf-dist/web2c"))) + (mkdir-p target) + (mkdir-p web2c) + (for-each delete-file (find-files "." "\\.(log|aux)$")) + (for-each (cut install-file <> target) + (find-files "build" ".*")) + (for-each (cut install-file <> web2c) + (find-files "web2c" ".*")) + #t)))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-generic-unicode-data" ,texlive-generic-unicode-data) + ("texlive-generic-dehyph-exptl" ,texlive-generic-dehyph-exptl) + ("texlive-generic-tex-ini-files" ,texlive-generic-tex-ini-files) + ("texlive-latex-latexconfig" + ,(texlive-dir "tex/latex/latexconfig/" + "1zb3j49cj8p75yph6c8iysjp7qbdvghwf0mn9j0l7qq3qkbz2xaf")) + ("texlive-generic-hyph-utf8" ,texlive-generic-hyph-utf8) + ("texlive-generic-hyphen" + ,(texlive-dir "tex/generic/hyphen/" + "0xim36wybw2625yd0zwlp9m2c2xrcybw58gl4rih9nkph0wqwwhd")) + ("texlive-generic-ruhyphen" + ,(texlive-dir "tex/generic/ruhyphen/" + "14rjkpl4zkjqs13rcf9kcd24mn2kx7i1jbdwxq8ds94bi66ylzsd")) + ("texlive-generic-ukrhyph" + ,(texlive-dir "tex/generic/ukrhyph/" + "1cfwdg2rhbayl3w0x1xqd36d45zbc96f029myp13s7cb6kbmbppv")) + ("texlive-generic-config" + ,(texlive-dir "tex/generic/config/" + "19vj088p4kkp6xll0141m4kl6ssgdzhs3g10i232khb07aqiag8s")) + ("texlive-tex-plain" ,texlive-tex-plain) + ("texlive-fonts-cm" ,texlive-fonts-cm) + ("texlive-fonts-latex" ,texlive-fonts-latex) + ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib))) + (home-page "http://www.ctan.org/pkg/latex-base") + (synopsis "Base sources of LaTeX") + (description + "This bundle comprises the source of LaTeX itself, together with several +packages which are considered \"part of the kernel\". This bundle, together +with the required packages, constitutes what every LaTeX distribution should +contain.") + (license license:lppl1.3c+)))) + (define texlive-texmf (package (name "texlive-texmf") From 205794c8684076696a3e474a6c9f6d53460b744d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:46:14 +0200 Subject: [PATCH 082/186] build-system: Add 'texlive-build-system'. * guix/build-system/texlive.scm: New file. * guix/build/texlive-build-system.scm: New file. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document it. * gnu/packages/tex.scm (%texlive-tag, %texlive-revision): Remove variables. (texlife-ref): Remove procedure. --- Makefile.am | 3 + doc/guix.texi | 19 ++++ gnu/packages/tex.scm | 14 +-- guix/build-system/texlive.scm | 164 ++++++++++++++++++++++++++++ guix/build/texlive-build-system.scm | 89 +++++++++++++++ 5 files changed, 276 insertions(+), 13 deletions(-) create mode 100644 guix/build-system/texlive.scm create mode 100644 guix/build/texlive-build-system.scm diff --git a/Makefile.am b/Makefile.am index 1be09d7637..436a003411 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,6 +6,7 @@ # Copyright © 2016, 2017 Mark H Weaver # Copyright © 2017 Mathieu Othacehe # Copyright © 2017 Leo Famulari +# Copyright © 2017 Ricardo Wurmus # # This file is part of GNU Guix. # @@ -87,6 +88,7 @@ MODULES = \ guix/build-system/waf.scm \ guix/build-system/r.scm \ guix/build-system/ruby.scm \ + guix/build-system/texlive.scm \ guix/build-system/trivial.scm \ guix/ftp-client.scm \ guix/http-client.scm \ @@ -114,6 +116,7 @@ MODULES = \ guix/build/ocaml-build-system.scm \ guix/build/r-build-system.scm \ guix/build/ruby-build-system.scm \ + guix/build/texlive-build-system.scm \ guix/build/waf-build-system.scm \ guix/build/haskell-build-system.scm \ guix/build/store-copy.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index b5538e0195..056059d04b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3580,6 +3580,25 @@ are run after installation using the R function @code{tools::testInstalledPackage}. @end defvr +@defvr {Scheme Variable} texlive-build-system +This variable is exported by @code{(guix build-system texlive)}. It is +used to build TeX packages in batch mode with a specified engine. The +build system sets the @code{TEXINPUTS} variable to find all TeX source +files in the inputs. + +By default it runs @code{luatex} on all files ending on @code{ins}. A +different engine and format can be specified with the +@code{#:tex-format} argument. Different build targets can be specified +with the @code{#:build-targets} argument, which expects a list of file +names. The build system adds only @code{texlive-bin} and +@code{texlive-latex-base} (both from @code{(gnu packages tex}) to the +inputs. Both can be overridden with the arguments @code{#:texlive-bin} +and @code{#:texlive-latex-base}, respectively. + +The @code{#:tex-directory} parameter tells the build system where to +install the built files under the texmf tree. +@end defvr + @defvr {Scheme Variable} ruby-build-system This variable is exported by @code{(guix build-system ruby)}. It implements the RubyGems build procedure used by Ruby packages, which diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 9c791ffa10..faf949862f 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -30,6 +30,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix build-system trivial) + #:use-module (guix build-system texlive) #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix svn-download) @@ -180,10 +181,6 @@ This package contains the binaries.") (license (license:fsf-free "https://www.tug.org/texlive/copying.html")) (home-page "https://www.tug.org/texlive/"))) -;; These variables specify the SVN tag and the matching SVN revision. -(define %texlive-tag "texlive-2017.0") -(define %texlive-revision 44445) - (define-public texlive-dvips (package (name "texlive-dvips") @@ -672,15 +669,6 @@ TeXbook, together with various supporting files (some also discussed in the book).") (license license:knuth))) -(define (texlive-ref component id) - "Return a object for the package ID, which is part of the -given Texlive COMPONENT." - (svn-reference - (url (string-append "svn://www.tug.org/texlive/tags/" - %texlive-tag "/Master/texmf-dist/" - "source/" component "/" id)) - (revision %texlive-revision))) - (define-public texlive-latex-base (let ((texlive-dir (lambda (dir hash) diff --git a/guix/build-system/texlive.scm b/guix/build-system/texlive.scm new file mode 100644 index 0000000000..d4085ea7e8 --- /dev/null +++ b/guix/build-system/texlive.scm @@ -0,0 +1,164 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ricardo Wurmus +;;; +;;; 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 texlive) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (guix svn-download) + #:use-module (ice-9 match) + #:export (%texlive-build-system-modules + texlive-build + texlive-build-system + texlive-ref + %texlive-tag + %texlive-revision)) + +;; Commentary: +;; +;; Standard build procedure for Texlive packages. +;; +;; Code: + +;; These variables specify the SVN tag and the matching SVN revision. +(define %texlive-tag "texlive-2017.0") +(define %texlive-revision 44445) + +(define (texlive-ref component id) + "Return a object for the package ID, which is part of the +given Texlive COMPONENT." + (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "source/" component "/" id)) + (revision %texlive-revision))) + +(define %texlive-build-system-modules + ;; Build-side modules imported by default. + `((guix build texlive-build-system) + ,@%gnu-build-system-modules)) + +(define (default-texlive-bin) + "Return the default texlive-bin package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((tex-mod (resolve-interface '(gnu packages tex)))) + (module-ref tex-mod 'texlive-bin))) + +(define (default-texlive-latex-base) + "Return the default texlive-latex-base package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((tex-mod (resolve-interface '(gnu packages tex)))) + (module-ref tex-mod 'texlive-latex-base))) + +(define* (lower name + #:key + source inputs native-inputs outputs + system target + (texlive-latex-base (default-texlive-latex-base)) + (texlive-bin (default-texlive-bin)) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + '(#:source #:target #:inputs #:native-inputs + #:texlive-latex-base #:texlive-bin)) + + (bag + (name name) + (system system) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (build-inputs `(("texlive-bin" ,texlive-bin) + ("texlive-latex-base" ,texlive-latex-base) + ,@native-inputs)) + (outputs outputs) + (build texlive-build) + (arguments (strip-keyword-arguments private-keywords arguments)))) + +(define* (texlive-build store name inputs + #:key + (tests? #f) + tex-directory + (build-targets #f) + (tex-format "luatex") + (phases '(@ (guix build texlive-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (substitutable? #t) + (imported-modules %texlive-build-system-modules) + (modules '((guix build texlive-build-system) + (guix build utils)))) + "Build SOURCE with INPUTS." + (define builder + `(begin + (use-modules ,@modules) + (texlive-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:tex-directory ,tex-directory + #:build-targets ,build-targets + #:tex-format ,tex-format + #:system ,system + #: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 + #:substitutable? substitutable?)) + +(define texlive-build-system + (build-system + (name 'texlive) + (description "The build system for TeX Live packages") + (lower lower))) + +;;; texlive.scm ends here diff --git a/guix/build/texlive-build-system.scm b/guix/build/texlive-build-system.scm new file mode 100644 index 0000000000..c1fd9fd9af --- /dev/null +++ b/guix/build/texlive-build-system.scm @@ -0,0 +1,89 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ricardo Wurmus +;;; +;;; 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 texlive-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (%standard-phases + texlive-build)) + +;; Commentary: +;; +;; Builder-side code of the standard build procedure for TeX Live packages. +;; +;; Code: + +(define (compile-with-latex format file) + (zero? (system* format + "-interaction=batchmode" + "-output-directory=build" + (string-append "&" format) + file))) + +(define* (build #:key inputs build-targets tex-format #:allow-other-keys) + ;; Find additional tex and sty files + (setenv "TEXINPUTS" + (string-append + (getcwd) ":" (getcwd) "/build:" + (string-join + (append-map (match-lambda + ((_ . dir) + (find-files dir + (lambda (_ stat) + (eq? 'directory (stat:type stat))) + #:directories? #t + #:stat stat))) + inputs) + ":"))) + (setenv "TEXFORMATS" + (string-append (assoc-ref inputs "texlive-latex-base") + "/share/texmf-dist/web2c/")) + (setenv "LUAINPUTS" + (string-append (assoc-ref inputs "texlive-latex-base") + "/share/texmf-dist/tex/latex/base/")) + (mkdir "build") + (every (cut compile-with-latex tex-format <>) + (if build-targets build-targets + (find-files "." "\\.ins$")))) + +(define* (install #:key outputs tex-directory #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (target (string-append + out "/share/texmf-dist/tex/" tex-directory))) + (mkdir-p target) + (for-each delete-file (find-files "." "\\.(log|aux)$")) + (for-each (cut install-file <> target) + (find-files "build" ".*")) + #t)) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'configure) + (replace 'build build) + (delete 'check) + (replace 'install install))) + +(define* (texlive-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given TeX Live package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; texlive-build-system.scm ends here From 3e485ed2fa0e64b058335d33a6c9e47896a54efd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:51:36 +0200 Subject: [PATCH 083/186] gnu: Add texlive-latex-filecontents. * gnu/packages/tex.scm (texlive-latex-filecontents): New variable. --- gnu/packages/tex.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index faf949862f..3b14b0f2b5 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -807,6 +807,30 @@ with the required packages, constitutes what every LaTeX distribution should contain.") (license license:lppl1.3c+)))) +(define-public texlive-latex-filecontents + (package + (name "texlive-latex-filecontents") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "filecontents")) + (sha256 + (base32 + "0swkbxv8vg0yizadfnvrwjb4cj0pn34v9wm6v7wqq903fdav7k7q")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/filecontents")) + (home-page "http://www.ctan.org/pkg/filecontents") + (synopsis "Extended filecontents and filecontents* environments") + (description + "LaTeX2e's @code{filecontents} and @code{filecontents*} environments +enable a LaTeX source file to generate external files as it runs through +LaTeX. However, there are two limitations of these environments: they refuse +to overwrite existing files, and they can only be used in the preamble of a +document. The filecontents package removes these limitations, letting you +overwrite existing files and letting you use @code{filecontents} / +@code{filecontents*} anywhere.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") From 1193aa896fbcff184f21714dd0265ec20471092c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:51:59 +0200 Subject: [PATCH 084/186] gnu: Add texlive-generic-ifxetex. * gnu/packages/tex.scm (texlive-generic-ifxetex): New variable. --- gnu/packages/tex.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 3b14b0f2b5..68d8f66f21 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -831,6 +831,30 @@ overwrite existing files and letting you use @code{filecontents} / @code{filecontents*} anywhere.") (license license:lppl1.3c+))) +(define-public texlive-generic-ifxetex + (package + (name "texlive-generic-ifxetex") + (version "0.6") + (source (origin + (method svn-fetch) + (uri (texlive-ref "generic" "ifxetex")) + (sha256 + (base32 + "0w2xj7n0szavj329kds09q626szkc378p3w0sk022q0ln4ksz86d")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "generic/ifxetex" + #:tex-format "xelatex")) + (inputs + `(("texlive-latex-filecontents" ,texlive-latex-filecontents))) + (home-page "http://www.ctan.org/pkg/ifxetex") + (synopsis "Am I running under XeTeX?") + (description + "This is a simple package which provides an @code{\\ifxetex} conditional, +so that other code can determine that it is running under XeTeX. The package +requires the etexe-TeX extensions to the TeX primitive set.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") From 437822a11de82bb9bd581dbeb948b484739beee7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:53:39 +0200 Subject: [PATCH 085/186] gnu: Add texlive-latex-fancyvrb. * gnu/packages/tex.scm (texlive-latex-fancyvrb): New variable. --- gnu/packages/tex.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 68d8f66f21..ce4b6c9b63 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -855,6 +855,33 @@ so that other code can determine that it is running under XeTeX. The package requires the etexe-TeX extensions to the TeX primitive set.") (license license:lppl1.3c+))) +(define-public texlive-latex-fancyvrb + (package + (name "texlive-latex-fancyvrb") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "fancyvrb")) + (sha256 + (base32 + "03l7140y031rr14h02i4z9zqsfvrbn7wzwxbjsrjcgrk6sdr71wv")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/fancyvrb" + ;; We exclude "fvrb-ex" to avoid a dependency on texlive-luaotfload and + ;; thus texlive-luatex-lualibs. + #:build-targets '("fancyvrb.ins"))) + (home-page "http://www.ctan.org/pkg/fancyvrb") + (synopsis "Sophisticated verbatim text") + (description + "This package provides tools for the flexible handling of verbatim text +including: verbatim commands in footnotes; a variety of verbatim environments +with many parameters; ability to define new customized verbatim environments; +save and restore verbatim text and environments; write and read files in +verbatim mode; build \"example\" environments (showing both result and +verbatim source).") + (license license:lppl1.0+))) + (define texlive-texmf (package (name "texlive-texmf") From 4eebd2cdde6baa1d5cfaeb31a0bb03149e8db1d8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:54:06 +0200 Subject: [PATCH 086/186] gnu: Add texlive-latex-graphics. * gnu/packages/tex.scm (texlive-latex-graphics): New variable. --- gnu/packages/tex.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index ce4b6c9b63..640f8fd4db 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -882,6 +882,70 @@ verbatim mode; build \"example\" environments (showing both result and verbatim source).") (license license:lppl1.0+))) +(define-public texlive-latex-graphics + (package + (name "texlive-latex-graphics") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "graphics")) + (sha256 + (base32 + "17ka701xr9nqsjlhz30hphr8d9j4zzwgv5zl5r2f118yzqh9c34v")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/graphics" + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-config + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((cfg (assoc-ref inputs "graphics-cfg")) + (target (string-append (assoc-ref outputs "out") + "/share/texmf-dist/tex/latex/graphics-cfg"))) + (mkdir-p target) + (install-file (string-append cfg "/graphics.cfg") target) + (install-file (string-append cfg "/color.cfg") target) + #t))) + (add-after 'install 'install-defs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((def (assoc-ref inputs "graphics-def")) + (target (string-append (assoc-ref outputs "out") + "/share/texmf-dist/tex/latex/graphics-def"))) + (mkdir-p target) + (copy-recursively def target) + #t)))))) + (native-inputs + `(("graphics-cfg" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/latex3/graphics-cfg.git") + (commit "19d1238af17df376cd46333b229579b0f7f3a41f"))) + (sha256 + (base32 + "12kbgbm52gmmgn8zajb74s8n5rvnxcfdvs3iyj8vcw5vrsw5i6mh")))) + ("graphics-def" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/graphics-def")) + (revision %texlive-revision))) + (sha256 + (base32 + "1q5l0x3jsy74v0zq4c9g0x0rb9jfzf7cbhdzkbchyydv49iav802")))))) + (home-page "http://www.ctan.org/pkg/latex-graphics") + (synopsis "LaTeX standard graphics bundle") + (description + "This is a collection of LaTeX packages for producing color, including +graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX +documents. It comprises the packages color, graphics, graphicx, trig, epsfig, +keyval, and lscape.") + ;; The configuration files are released under CC0. + (license (list license:lppl1.3c+ + license:cc0)))) + (define texlive-texmf (package (name "texlive-texmf") From f5a6af42b955c21da0b62d0ac8240a26160e6c52 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:54:26 +0200 Subject: [PATCH 087/186] gnu: Add texlive-latex-xcolor. * gnu/packages/tex.scm (texlive-latex-xcolor): New variable. --- gnu/packages/tex.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 640f8fd4db..b5612be243 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -946,6 +946,30 @@ keyval, and lscape.") (license (list license:lppl1.3c+ license:cc0)))) +(define-public texlive-latex-xcolor + (package + (name "texlive-latex-xcolor") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "xcolor")) + (sha256 + (base32 + "01n613s7bcrd2n4jfawm0k4nn2ny3aaifp2jjfif3lz4sbv31494")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/xcolor")) + (home-page "http://www.ctan.org/pkg/xcolor") + (synopsis "Driver-independent color extensions for LaTeX and pdfLaTeX") + (description + "The package starts from the basic facilities of the colorcolor package, +and provides easy driver-independent access to several kinds of color tints, +shades, tones, and mixes of arbitrary colors. It allows a user to select a +document-wide target color model and offers complete tools for conversion +between eight color models. Additionally, there is a command for alternating +row colors plus repeated non-aligned material (like horizontal lines) in +tables.") + (license license:lppl1.2+))) + (define texlive-texmf (package (name "texlive-texmf") From 4d660fdf1c14f29156d446ab1e187b238674acfb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:55:35 +0200 Subject: [PATCH 088/186] gnu: Add texlive-latex-hyperref. * gnu/packages/tex.scm (texlive-latex-hyperref): New variable. --- gnu/packages/tex.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index b5612be243..38317501a2 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -970,6 +970,34 @@ row colors plus repeated non-aligned material (like horizontal lines) in tables.") (license license:lppl1.2+))) +(define-public texlive-latex-hyperref + (package + (name "texlive-latex-hyperref") + (version "6.84a2") + ;; The sources in the TeX Live SVN repository do not contain hluatex.dtx, + ;; so we fetch the release from GitHub. + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ho-tex/hyperref/" + "archive/release-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1d3rmjgzh0025a1dza55zb6nzzlgd1y9snwx45wq1c1vf42m79h2")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/hyperref")) + (home-page "http://www.ctan.org/pkg/hyperref") + (synopsis "Extensive support for hypertext in LaTeX") + (description + "The hyperref package is used to handle cross-referencing commands in +LaTeX to produce hypertext links in the document. The package provides +backends for the special set defined for HyperTeX DVI processors; for embedded +pdfmark commands for processing by Acrobat Distiller (dvips and dvipsone); for +dviwindo; for PDF control within pdfTeX and dvipdfm; for TeX4ht; and for VTeX +pdf and HTML backends. The package is distributed with the backref and +nameref packages, which make use of the facilities of hyperref.") + (license license:lppl1.3+))) + (define texlive-texmf (package (name "texlive-texmf") From c3455b7d10f5872554c6df2fd765bf7dc4c21cdb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:56:01 +0200 Subject: [PATCH 089/186] gnu: Add texlive-latex-oberdiek. * gnu/packages/tex.scm (texlive-latex-oberdiek): New variable. --- gnu/packages/tex.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 38317501a2..7fbb14274c 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -998,6 +998,35 @@ pdf and HTML backends. The package is distributed with the backref and nameref packages, which make use of the facilities of hyperref.") (license license:lppl1.3+))) +(define-public texlive-latex-oberdiek + (package + (name "texlive-latex-oberdiek") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "oberdiek")) + (sha256 + (base32 + "0aswvsxgsn709xmvpcg50d2xl7vcy1ckdxb9c1cligqqfjjvviqf")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/oberdiek" + #:phases + (modify-phases %standard-phases + ;; "ifpdf.ins" is not generated, so we cannot process it. + (add-after 'unpack 'do-not-process-ifpdf.ins + (lambda _ + (substitute* "oberdiek.ins" + (("\\\\batchinput\\{ifpdf.ins\\}") "")) + #t))))) + (home-page "http://www.ctan.org/pkg/oberdiek") + (synopsis "Bundle of packages submitted by Heiko Oberdiek") + (description + "The bundle comprises various LaTeX packages, providing among others: +better accessibility support for PDF files; extensible chemists reaction +arrows; record information about document class(es) used; and many more.") + (license license:lppl1.3+))) + (define texlive-texmf (package (name "texlive-texmf") From f2536af288e109b7c7eb383fd5881985d5b53f21 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:56:22 +0200 Subject: [PATCH 090/186] gnu: Add texlive-latex-tools. * gnu/packages/tex.scm (texlive-latex-tools): New variable. --- gnu/packages/tex.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 7fbb14274c..623cc34b30 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1027,6 +1027,31 @@ better accessibility support for PDF files; extensible chemists reaction arrows; record information about document class(es) used; and many more.") (license license:lppl1.3+))) +(define-public texlive-latex-tools + (package + (name "texlive-latex-tools") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "tools")) + (sha256 + (base32 + "052a0pch2k5zls5jlay9xxcf93rw3i60a2x28y3ip3rhbsv3xgiz")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/tools" + #:build-targets '("tools.ins"))) + (home-page "http://www.ctan.org/pkg/latex-tools") + (synopsis "LaTeX standard tools bundle") + (description + "This package is a collection of (variously) simple tools provided as +part of the LaTeX required tools distribution, comprising the following +packages: afterpage, array, bm, calc, dcolumn, delarray, enumerate, fileerr, +fontsmpl, ftnright, hhline, indentfirst, layout, longtable, multicol, +rawfonts, showkeys, somedefs, tabularx, theorem, trace, varioref, verbatim, +xr, and xspace.") + (license license:lppl1.3+))) + (define texlive-texmf (package (name "texlive-texmf") From 35adcc3a86f6c40753caf4ca3d069645ec58487b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:26:39 +0200 Subject: [PATCH 091/186] gnu: Add texlive-latex-url. * gnu/packages/tex.scm (texlive-latex-url): New variable. --- gnu/packages/tex.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 623cc34b30..842310a7f3 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1052,6 +1052,45 @@ rawfonts, showkeys, somedefs, tabularx, theorem, trace, varioref, verbatim, xr, and xspace.") (license license:lppl1.3+))) +(define-public texlive-latex-url + (package + (name "texlive-latex-url") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/url")) + (revision %texlive-revision))) + (sha256 + (base32 + "184s2543cwia5l7iibhlkl1ffbncfhjpv5p56zq0c15by5sghlac")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/latex/url"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "https://www.ctan.org/pkg/url") + (synopsis "Verbatim with URL-sensitive line breaks") + (description "The command @code{\\url} is a form of verbatim command that +allows linebreaks at certain characters or combinations of characters, accepts +reconfiguration, and can usually be used in the argument to another command. +The command is intended for email addresses, hypertext links, +directories/paths, etc., which normally have no spaces, so by default the +package ignores spaces in its argument. However, a package option allows +spaces, which is useful for operating systems where spaces are a common part +of file names.") + ;; The license header states that it is under LPPL version 2 or later, but + ;; the latest version is 1.3c. + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") From a5b1ef84b5a1b3ccba7a5a291503522ea7ca5ef3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:26:59 +0200 Subject: [PATCH 092/186] gnu: Add texlive-latex-l3kernel. * gnu/packages/tex.scm (texlive-latex-l3kernel): New variable. --- gnu/packages/tex.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 842310a7f3..44f76aad88 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1091,6 +1091,29 @@ of file names.") ;; the latest version is 1.3c. (license license:lppl1.3c+))) +(define-public texlive-latex-l3kernel + (package + (name "texlive-latex-l3kernel") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "l3kernel")) + (sha256 + (base32 + "0ndqw0flhl20f4ny5lssp8rqpnj5kglyg59whbdrxbh2zc7w7j0b")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/l3kernel")) + (home-page "http://www.ctan.org/pkg/l3kernel") + (synopsis "LaTeX3 programmers’ interface") + (description + "The l3kernel bundle provides an implementation of the LaTeX3 +programmers’ interface, as a set of packages that run under LaTeX 2e. The +interface provides the foundation on which the LaTeX3 kernel and other future +code are built: it is an API for TeX programmers. The packages are set up so +that the LaTeX3 conventions can be used with regular LaTeX 2e packages.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") From cc09d48bab1982fad4659b9ec1d8fb20250f3bee Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:27:22 +0200 Subject: [PATCH 093/186] gnu: Add texlive-latex-l3packages. * gnu/packages/tex.scm (texlive-latex-l3packages): New variable. --- gnu/packages/tex.scm | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 44f76aad88..06cb4f4371 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1114,6 +1114,53 @@ code are built: it is an API for TeX programmers. The packages are set up so that the LaTeX3 conventions can be used with regular LaTeX 2e packages.") (license license:lppl1.3c+))) +(define-public texlive-latex-l3packages + (package + (name "texlive-latex-l3packages") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "l3packages")) + (sha256 + (base32 + "1p1y9my6ccmp2ab91fzqqgih8ifrk4y3wyh397kagiq9f6a6v91f")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/l3packages" + #:phases + (modify-phases %standard-phases + ;; All package sources are in sub-directories, so we need to add them + ;; to TEXINPUTS. + (add-after 'unpack 'set-TEXINPUTS + (lambda _ + (let ((cwd (getcwd))) + (setenv "TEXINPUTS" + (string-append cwd "/l3keys2e:" + cwd "/xparse:" + cwd "/xfrac:" + cwd "/xfp:" + cwd "/xtemplate"))) + #t))))) + (inputs + `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel))) + (home-page "http://www.ctan.org/pkg/l3packages") + (synopsis "High-level LaTeX3 concepts") + (description + "This bundle holds prototype implementations of concepts for a LaTeX +designer interface, to be used with the experimental LaTeX kernel as +programming tools and kernel sup­port. Packages provided in this release are: + +@enumerate +@item l3keys2e, which makes the facilities of the kernel module l3keys + available for use by LaTeX 2e packages; +@item xfrac, which provides flexible splitlevel fractions; +@item xparse, which provides a high-level interface for declaring document + commands; and +@item xtemplate, which provides a means of defining generic functions using a + key-value syntax. +@end enumerate\n") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") From 58308491cb2593cb745689472762d89f2fea1d57 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:27:43 +0200 Subject: [PATCH 094/186] gnu: Add texlive-latex-fontspec. * gnu/packages/tex.scm (texlive-latex-fontspec): New variable. --- gnu/packages/tex.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 06cb4f4371..59e74c9455 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1161,6 +1161,31 @@ programming tools and kernel sup­port. Packages provided in this release are: @end enumerate\n") (license license:lppl1.3c+))) +(define-public texlive-latex-fontspec + (package + (name "texlive-latex-fontspec") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "fontspec")) + (sha256 + (base32 + "1rx43y5xmjqvc27pjdnmqwp4pcw3czcfd6nfpmzc1gnqfl1hlc0q")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/fontspec" + #:build-targets '("fontspec.dtx"))) + (inputs + `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel))) + (home-page "http://www.ctan.org/pkg/fontspec") + (synopsis "Advanced font selection in XeLaTeX and LuaLaTeX") + (description + "Fontspec is a package for XeLaTeX and LuaLaTeX. It provides an +automatic and unified interface to feature-rich AAT and OpenType fonts through +the NFSS in LaTeX running on XeTeX or LuaTeX engines. The package requires +the l3kernel and xparse bundles from the LaTeX 3 development team.") + (license license:lppl1.3+))) + (define texlive-texmf (package (name "texlive-texmf") From e93f472d53f146f228478c4cd50b8b407d425029 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:28:09 +0200 Subject: [PATCH 095/186] gnu: Add texlive-luatex-lualibs. * gnu/packages/tex.scm (texlive-luatex-lualibs): New variable. --- gnu/packages/tex.scm | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 59e74c9455..e4b0e76948 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -61,7 +61,7 @@ #:use-module (gnu packages zip) #:autoload (gnu packages texinfo) (texinfo) #:use-module (ice-9 ftw) - #:use-module (srfi srfi-1)) + #:use-module ((srfi srfi-1) #:hide (zip))) (define texlive-extra-src (origin @@ -1186,6 +1186,43 @@ the NFSS in LaTeX running on XeTeX or LuaTeX engines. The package requires the l3kernel and xparse bundles from the LaTeX 3 development team.") (license license:lppl1.3+))) +;; The SVN directory contains little more than a dtx file that generates three +;; of the many lua files that should be installed as part of this package. +;; This is why we take the release from GitHub instead. +(define-public texlive-luatex-lualibs + (package + (name "texlive-luatex-lualibs") + (version "2.5") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/lualatex/lualibs/" + "releases/download/v" + version "/lualibs.zip")) + (sha256 + (base32 + "1xx9blvrmx9hyhrl345lpai9m6xxnw997261a1ahn1bm5r2j5fqy")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list (string-append "DESTDIR=" + (assoc-ref %outputs "out") + "/share/texmf-dist")) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("unzip" ,unzip) + ("zip" ,zip))) + (home-page "https://github.com/lualatex/lualibs") + (synopsis "Lua modules for general programming (in the (La)TeX world)") + (description + "Lualibs is a collection of Lua modules useful for general programming. +The bundle is based on Lua modules shipped with ConTeXt, and made available in +this bundle for use independent of ConTeXt.") + ;; GPL version 2 only + (license license:gpl2))) + (define texlive-texmf (package (name "texlive-texmf") From 2573163a127950b976adf83d8b10d3c8ded9ed76 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:29:51 +0200 Subject: [PATCH 096/186] gnu: Add texlive-latex-amsmath. * gnu/packages/tex.scm (texlive-latex-amsmath): New variable. --- gnu/packages/tex.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index e4b0e76948..8fb5c8b56f 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1223,6 +1223,34 @@ this bundle for use independent of ConTeXt.") ;; GPL version 2 only (license license:gpl2))) +(define-public texlive-latex-amsmath + (package + (name "texlive-latex-amsmath") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "amsmath")) + (sha256 + (base32 + "178ywjpdlv78qmfzqdyn6gy14620zjsn2q9wap76fbr9s4hw6dba")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/amsmath")) + (home-page "http://www.ctan.org/pkg/amsmath") + (synopsis "AMS mathematical facilities for LaTeX") + (description + "This is the principal package in the AMS-LaTeX distribution. It adapts +for use in LaTeX most of the mathematical features found in AMS-TeX; it is +highly recommended as an adjunct to serious mathematical typesetting in LaTeX. +When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold +symbols), @code{amsopnamsopn} (for operator names) and +@code{amstextamstext} (for text embedded in mathematics) are also loaded. +This package is part of the LaTeX required distribution; however, several +contributed packages add still further to its appeal; examples are +@code{empheqempheq}, which provides functions for decorating and highlighting +mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar) +definitions.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") From 18e366e856645a8095974d2fa738e13af66f1ad4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:30:07 +0200 Subject: [PATCH 097/186] gnu: Add texlive-latex-amscls. * gnu/packages/tex.scm (texlive-latex-amscls): New variable. --- gnu/packages/tex.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 8fb5c8b56f..da86650299 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1251,6 +1251,29 @@ mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar) definitions.") (license license:lppl1.3c+))) +(define-public texlive-latex-amscls + (package + (name "texlive-latex-amscls") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "amscls")) + (sha256 + (base32 + "0jmcr37mcdi7drczppvr6lmz5d5yd9m67ii79gp2nglg1xpw934j")))) + (build-system texlive-build-system) + (arguments + `(#:tex-directory "latex/amscls")) + (home-page "http://www.ctan.org/pkg/amscls") + (synopsis "AMS document classes for LaTeX") + (description + "This bundle contains three AMS classes: @code{amsartamsart} (for writing +articles for the AMS), @code{amsbookamsbook} (for books) and +@code{amsprocamsproc} (for proceedings), together with some supporting +material. The material is made available as part of the AMS-LaTeX +distribution.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") From f84d5a09d4c02404351547615521def0a041fafa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:30:26 +0200 Subject: [PATCH 098/186] gnu: Add texlive-latex-babel. * gnu/packages/tex.scm (texlive-latex-babel): New variable. --- gnu/packages/tex.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index da86650299..8351262bbc 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1274,6 +1274,40 @@ material. The material is made available as part of the AMS-LaTeX distribution.") (license license:lppl1.3c+))) +(define-public texlive-latex-babel + (package + (name "texlive-latex-babel") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "babel")) + (sha256 + (base32 + "1n3i5adsyy7jw0imnzrm2i8wkf73i3mjk9h3ic8cb9cd19i4r9r3")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/babel" + #:phases + (modify-phases %standard-phases + ;; This package tries to produce babel.aux twice but refuses to + ;; overwrite the first one. + (add-before 'build 'fix-ins + (lambda _ + (substitute* "babel.ins" + (("askonceonly") "askforoverwritefalse")) + #t))))) + (home-page "http://www.ctan.org/pkg/babel") + (synopsis "Multilingual support for Plain TeX or LaTeX") + (description + "The package manages culturally-determined typographical (and other) +rules, and hyphenation patterns for a wide range of languages. A document may +select a single language to be supported, or it may select several, in which +case the document may switch from one language to another in a variety of +ways. Babel uses contributed configuration files that provide the detail of +what has to be done for each language. Users of XeTeX are advised to use the +polyglossia package rather than Babel.") + (license license:lppl1.3+))) + (define texlive-texmf (package (name "texlive-texmf") From 93286d385731eba85b2cf44d528b38ccfa3f1319 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:30:47 +0200 Subject: [PATCH 099/186] gnu: texlive-latex-cyrillic. * gnu/packages/tex.scm (texlive-latex-cyrillic): New variable. --- gnu/packages/tex.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 8351262bbc..17cf78a292 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1308,6 +1308,28 @@ what has to be done for each language. Users of XeTeX are advised to use the polyglossia package rather than Babel.") (license license:lppl1.3+))) +(define-public texlive-latex-cyrillic + (package + (name "texlive-latex-cyrillic") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "cyrillic")) + (sha256 + (base32 + "1mdhl35hwas68ki56qqngzar37dwv4mm64l2canihr255bz34lbv")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/cyrillic")) + (home-page "http://www.ctan.org/pkg/latex-cyrillic") + (synopsis "Support for Cyrillic fonts in LaTeX") + (description + "This bundle of macros files provides macro support (including font +encoding macros) for the use of Cyrillic characters in fonts encoded under the +T2* and X2 encodings. These encodings cover (between them) pretty much every +language that is written in a Cyrillic alphabet.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") From 83fe6231cb7de30ce8c17138938dcd8d77b6336e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:31:03 +0200 Subject: [PATCH 100/186] gnu: Add texlive-latex-psnfss. * gnu/packages/tex.scm (texlive-latex-psnfss): New variable. --- gnu/packages/tex.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 17cf78a292..5e9370b386 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1330,6 +1330,30 @@ T2* and X2 encodings. These encodings cover (between them) pretty much every language that is written in a Cyrillic alphabet.") (license license:lppl1.3c+))) +(define-public texlive-latex-psnfss + (package + (name "texlive-latex-psnfss") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "psnfss")) + (sha256 + (base32 + "1920dcq8613yzprasbg80fh4fcjcidvvl54wkx438nimyxcri7qz")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/psnfss")) + (home-page "http://www.ctan.org/pkg/psnfss") + (synopsis "Font support for common PostScript fonts") + (description + "The PSNFSS collection includes a set of files that provide a complete +working setup of the LaTeX font selection scheme (NFSS2) for use with common +PostScript fonts. It covers the so-called \"Base\" fonts (which are built +into any Level 2 PostScript printing device and the Ghostscript interpreter) +and a number of free fonts. It provides font definition files, macros and +font metrics. The bundle as a whole is part of the LaTeX required set of +packages.") + (license license:lppl1.2+))) + (define texlive-texmf (package (name "texlive-texmf") From cb7bc20a4da7fab4fd8f31c8a2837987b0b8808e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:31:45 +0200 Subject: [PATCH 101/186] gnu: Add texlive-union. * gnu/packages/tex.scm (texlive-union): New procedure. --- gnu/packages/tex.scm | 86 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 5e9370b386..e89f5b0c68 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -61,6 +61,7 @@ #:use-module (gnu packages zip) #:autoload (gnu packages texinfo) (texinfo) #:use-module (ice-9 ftw) + #:use-module (ice-9 match) #:use-module ((srfi srfi-1) #:hide (zip))) (define texlive-extra-src @@ -1354,6 +1355,91 @@ font metrics. The bundle as a whole is part of the LaTeX required set of packages.") (license license:lppl1.2+))) +(define-public texlive-union + (lambda* (#:optional (packages '())) + "Return 'texlive-union' package which is a union of PACKAGES and the +standard LaTeX packages." + (let ((default-packages + (list texlive-bin + texlive-dvips + texlive-fonts-cm + texlive-fonts-latex + texlive-metafont-base + texlive-latex-base + ;; LaTeX packages from the "required" set. + texlive-latex-amsmath + texlive-latex-amscls + texlive-latex-babel + texlive-latex-cyrillic + texlive-latex-graphics + texlive-latex-psnfss + texlive-latex-tools))) + (package + (name "texlive-union") + (version (number->string %texlive-revision)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union) + (guix build utils) + (guix build texlive-build-system) + (guix build gnu-build-system) + (guix build gremlin) + (guix elf)) + #:builder + (begin + (use-modules (ice-9 match) + (srfi srfi-26) + (guix build union) + (guix build utils) + (guix build texlive-build-system)) + (let* ((out (assoc-ref %outputs "out")) + (texmf.cnf (string-append out "/share/texmf-dist/web2c/texmf.cnf"))) + ;; Build a modifiable union of all inputs (but exclude bash) + (match (filter (match-lambda + ((name . _) + (not (string=? "bash" name)))) + %build-inputs) + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories + #:create-all-directories? #t))) + + ;; The configuration file "texmf.cnf" is provided by the + ;; "texlive-bin" package. We take it and override only the + ;; setting for TEXMFROOT and TEXMF. This file won't be consulted + ;; by default, though, so we still need to set TEXMFCNF. + (substitute* texmf.cnf + (("^TEXMFROOT = .*") + (string-append "TEXMFROOT = " out "/share\n")) + (("^TEXMF = .*") + "TEXMF = $TEXMFROOT/share/texmf-dist\n")) + (setenv "PATH" (string-append (assoc-ref %build-inputs "bash") + "/bin")) + (for-each + (cut wrap-program <> + `("TEXMFCNF" ":" = (,(dirname texmf.cnf))) + `("TEXMF" ":" = (,(string-append out "/share/texmf-dist")))) + (find-files (string-append out "/bin") ".*")) + #t)))) + (inputs + `(("bash" ,bash) + ,@(map (lambda (package) + (list (package-name package) package)) + (append default-packages packages)))) + (home-page (package-home-page texlive-bin)) + (synopsis "Union of TeX Live packages") + (description "This package provides a subset of the TeX Live +distribution.") + (license (fold (lambda (package result) + (match (package-license package) + ((lst ...) + (append lst result)) + ((? license:license? license) + (cons license result)))) + '() + (append default-packages packages))))))) + (define texlive-texmf (package (name "texlive-texmf") From 9d4f8dc289c80e23c8770b340c452693feccbe3b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:33:49 +0200 Subject: [PATCH 102/186] gnu: Add texlive-tiny. * gnu/packages/tex.scm (texlive-tiny): New variable. --- gnu/packages/tex.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index e89f5b0c68..90b1bcad72 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1440,6 +1440,13 @@ distribution.") '() (append default-packages packages))))))) +(define-public texlive-tiny + (package + (inherit (texlive-union)) + (name "texlive-tiny") + (description "This is a very limited subset of the TeX Live distribution. +It includes little more than the required set of LaTeX packages."))) + (define texlive-texmf (package (name "texlive-texmf") From afbc94194e223378dd3aece6e2330015e5e57a1e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:35:50 +0200 Subject: [PATCH 103/186] guix: Add texlive importer. * guix/import/texlive.scm: New file. * guix/scripts/import/texlive.scm: New file. * Makefile.am (MODULES): Add them. * tests/texlive.scm: New file. * Makefile.am (SCM_TESTS): Add it. * guix/scripts/import.scm (importers): Add texlive importer. * doc/guix.texi (Invoking guix import): Document it. --- Makefile.am | 3 + doc/guix.texi | 34 +++++- guix/import/texlive.scm | 182 ++++++++++++++++++++++++++++++++ guix/scripts/import.scm | 2 +- guix/scripts/import/texlive.scm | 101 ++++++++++++++++++ tests/texlive.scm | 115 ++++++++++++++++++++ 6 files changed, 435 insertions(+), 2 deletions(-) create mode 100644 guix/import/texlive.scm create mode 100644 guix/scripts/import/texlive.scm create mode 100644 tests/texlive.scm diff --git a/Makefile.am b/Makefile.am index 436a003411..4dfcd06d0b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -145,6 +145,7 @@ MODULES = \ guix/import/cran.scm \ guix/import/hackage.scm \ guix/import/elpa.scm \ + guix/import/texlive.scm \ guix/scripts.scm \ guix/scripts/download.scm \ guix/scripts/perform-download.scm \ @@ -167,6 +168,7 @@ MODULES = \ guix/scripts/import/nix.scm \ guix/scripts/import/hackage.scm \ guix/scripts/import/elpa.scm \ + guix/scripts/import/texlive.scm \ guix/scripts/environment.scm \ guix/scripts/publish.scm \ guix/scripts/edit.scm \ @@ -303,6 +305,7 @@ SCM_TESTS = \ tests/hackage.scm \ tests/cran.scm \ tests/elpa.scm \ + tests/texlive.scm \ tests/store.scm \ tests/monads.scm \ tests/gexp.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 056059d04b..97fa1b7864 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -21,7 +21,7 @@ Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* -Copyright @copyright{} 2015, 2016 Ricardo Wurmus@* +Copyright @copyright{} 2015, 2016, 2017 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016 Chris Marusich@* Copyright @copyright{} 2016, 2017 Efraim Flashner@* @@ -5671,6 +5671,38 @@ R package: guix import cran --archive=bioconductor GenomicRanges @end example +@item texlive +@cindex TeX Live +@cindex CTAN +Import metadata from @uref{http://www.ctan.org/, CTAN}, the +comprehensive TeX archive network for TeX packages that are part of the +@uref{https://www.tug.org/texlive/, TeX Live distribution}. + +Information about the package is obtained through the XML API provided +by CTAN, while the source code is downloaded from the SVN repository of +the Tex Live project. This is done because the CTAN does not keep +versioned archives. + +The command command below imports metadata for the @code{fontspec} +TeX package: + +@example +guix import texlive fontspec +@end example + +When @code{--archive=DIRECTORY} is added, the source code is downloaded +not from the @file{latex} sub-directory of the @file{texmf-dist/source} +tree in the TeX Live SVN repository, but from the specified sibling +directory under the same root. + +The command below imports metadata for the @code{ifxetex} package from +CTAN while fetching the sources from the directory +@file{texmf/source/generic}: + +@example +guix import texlive --archive=generic ifxetex +@end example + @item nix Import metadata from a local copy of the source of the @uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm new file mode 100644 index 0000000000..d4c3714364 --- /dev/null +++ b/guix/import/texlive.scm @@ -0,0 +1,182 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ricardo Wurmus +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix import texlive) + #:use-module (ice-9 match) + #:use-module (sxml simple) + #:use-module (sxml xpath) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (web uri) + #:use-module (guix http-client) + #:use-module (guix hash) + #:use-module (guix memoization) + #:use-module (guix store) + #:use-module (guix base32) + #:use-module (guix serialization) + #:use-module (guix svn-download) + #:use-module (guix import utils) + #:use-module (guix utils) + #:use-module (guix upstream) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (guix build-system texlive) + #:export (texlive->guix-package)) + +;;; Commentary: +;;; +;;; Generate a package declaration template for the latest version of a +;;; package on CTAN, using the XML output produced by the XML API to the CTAN +;;; database at http://www.ctan.org/xml/1.2/ +;;; +;;; Instead of taking the packages from CTAN, however, we fetch the sources +;;; from the SVN repository of the Texlive project. We do this because CTAN +;;; only keeps a single version of each package whereas we can access any +;;; version via SVN. Unfortunately, this means that the importer is really +;;; just a Texlive importer, not a generic CTAN importer. +;;; +;;; Code: + +(define string->license + (match-lambda + ("artistic2" 'gpl3+) + ("gpl" 'gpl3+) + ("gpl1" 'gpl1) + ("gpl1+" 'gpl1+) + ("gpl2" 'gpl2) + ("gpl2+" 'gpl2+) + ("gpl3" 'gpl3) + ("gpl3+" 'gpl3+) + ("lgpl2.1" 'lgpl2.1) + ("lgpl3" 'lgpl3) + ("knuth" 'knuth) + ("pd" 'public-domain) + ("bsd2" 'bsd-2) + ("bsd3" 'bsd-3) + ("bsd4" 'bsd-4) + ("opl" 'opl1.0+) + ("ofl" 'silofl1.1) + ("lppl" 'lppl) + ("lppl1" 'lppl1.0+) ; usually means "or later" + ("lppl1.2" 'lppl1.2+) ; usually means "or later" + ("lppl1.3" 'lppl1.3+) ; usually means "or later" + ("lppl1.3a" 'lppl1.3a) + ("lppl1.3b" 'lppl1.3b) + ("lppl1.3c" 'lppl1.3c) + ("cc-by-2" 'cc-by-2.0) + ("cc-by-3" 'cc-by-3.0) + ("cc-by-sa-2" 'cc-by-sa2.0) + ("cc-by-sa-3" 'cc-by-sa3.0) + ("mit" 'expat) + ("fdl" 'fdl1.3+) + ("gfl" 'gfl1.0) + + ;; These are known non-free licenses + ("noinfo" 'unknown) + ("nosell" 'non-free) + ("shareware" 'non-free) + ("nosource" 'non-free) + ("nocommercial" 'non-free) + ("cc-by-nc-nd-1" 'non-free) + ("cc-by-nc-nd-2" 'non-free) + ("cc-by-nc-nd-2.5" 'non-free) + ("cc-by-nc-nd-3" 'non-free) + ("cc-by-nc-nd-4" 'non-free) + ((x) (string->license x)) + ((lst ...) `(list ,@(map string->license lst))) + (_ #f))) + +(define (fetch-sxml name) + "Return an sxml representation of the package information contained in the +XML description of the CTAN package or #f in case of failure." + ;; This API always returns the latest release of the module. + (let ((url (string-append "http://www.ctan.org/xml/1.2/pkg/" name))) + (guard (c ((http-get-error? c) + (format (current-error-port) + "error: failed to retrieve package information \ +from ~s: ~a (~s)~%" + (uri->string (http-get-error-uri c)) + (http-get-error-code c) + (http-get-error-reason c)) + #f)) + (xml->sxml (http-fetch url) + #:trim-whitespace? #t)))) + +(define (guix-name component name) + "Return a Guix package name for a given Texlive package NAME." + (string-append "texlive-" component "-" + (string-map (match-lambda + (#\_ #\-) + (#\. #\-) + (chr (char-downcase chr))) + name))) + +(define* (sxml->package sxml #:optional (component "latex")) + "Return the `package' s-expression for a Texlive package from the SXML +expression describing it." + (define (sxml-value path) + (match ((sxpath path) sxml) + (() #f) + ((val) val))) + (with-store store + (let* ((id (sxml-value '(entry @ id *text*))) + (synopsis (sxml-value '(entry caption *text*))) + (version (or (sxml-value '(entry version @ number *text*)) + (sxml-value '(entry version @ date *text*)))) + (license (string->license (sxml-value '(entry license @ type *text*)))) + (home-page (string-append "http://www.ctan.org/pkg/" id)) + (ref (texlive-ref component id)) + (checkout (download-svn-to-store store ref))) + `(package + (name ,(guix-name component id)) + (version ,version) + (source (origin + (method svn-fetch) + (uri (texlive-ref ,component ,id)) + (sha256 + (base32 + ,(bytevector->nix-base32-string + (let-values (((port get-hash) (open-sha256-port))) + (write-file checkout port) + (force-output port) + (get-hash))))))) + (build-system texlive-build-system) + (arguments ,`(,'quote (#:tex-directory ,(string-join (list component id) "/")))) + (home-page ,home-page) + (synopsis ,synopsis) + (description ,(string-trim-both + (string-join + (map string-trim-both + (string-split + (beautify-description + (sxml->string (or (sxml-value '(entry description)) + '()))) + #\newline))))) + (license ,license))))) + +(define texlive->guix-package + (memoize + (lambda* (package-name #:optional (component "latex")) + "Fetch the metadata for PACKAGE-NAME from REPO and return the `package' +s-expression corresponding to that package, or #f on failure." + (and=> (fetch-sxml package-name) + (cut sxml->package <> component))))) + +;;; ctan.scm ends here diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index 203cda8049..9bba074e8c 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -74,7 +74,7 @@ rather than \\n." ;;; (define importers '("gnu" "nix" "pypi" "cpan" "hackage" "stackage" "elpa" "gem" - "cran" "crate")) + "cran" "crate" "texlive")) (define (resolve-importer name) (let ((module (resolve-interface diff --git a/guix/scripts/import/texlive.scm b/guix/scripts/import/texlive.scm new file mode 100644 index 0000000000..1cceee7051 --- /dev/null +++ b/guix/scripts/import/texlive.scm @@ -0,0 +1,101 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ricardo Wurmus +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix scripts import texlive) + #:use-module (guix ui) + #:use-module (guix utils) + #:use-module (guix scripts) + #:use-module (guix import texlive) + #:use-module (guix scripts import) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-37) + #:use-module (srfi srfi-41) + #:use-module (ice-9 match) + #:use-module (ice-9 format) + #:export (guix-import-texlive)) + + +;;; +;;; Command-line options. +;;; + +(define %default-options + '()) + +(define (show-help) + (display (G_ "Usage: guix import texlive PACKAGE-NAME +Import and convert the Texlive package for PACKAGE-NAME.\n")) + (display (G_ " + -a, --archive=ARCHIVE specify the archive repository")) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define %options + ;; Specification of the command-line options. + (cons* (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix import texlive"))) + (option '(#\a "archive") #t #f + (lambda (opt name arg result) + (alist-cons 'component arg + (alist-delete 'component result)))) + %standard-import-options)) + + +;;; +;;; Entry point. +;;; + +(define (guix-import-texlive . args) + (define (parse-options) + ;; Return the alist of option values. + (args-fold* args %options + (lambda (opt name arg result) + (leave (G_ "~A: unrecognized option~%") name)) + (lambda (arg result) + (alist-cons 'argument arg result)) + %default-options)) + + (let* ((opts (parse-options)) + (args (filter-map (match-lambda + (('argument . value) + value) + (_ #f)) + (reverse opts)))) + (match args + ((package-name) + (let ((sexp (texlive->guix-package package-name + (or (assoc-ref opts 'component) + "latex")))) + (unless sexp + (leave (G_ "failed to download description for package '~a'~%") + package-name)) + sexp)) + (() + (leave (G_ "too few arguments~%"))) + ((many ...) + (leave (G_ "too many arguments~%")))))) diff --git a/tests/texlive.scm b/tests/texlive.scm new file mode 100644 index 0000000000..e28eda175c --- /dev/null +++ b/tests/texlive.scm @@ -0,0 +1,115 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ricardo Wurmus +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (test-texlive) + #:use-module (gnu packages tex) + #:use-module (guix import texlive) + #:use-module (guix tests) + #:use-module (guix build utils) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-64) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match)) + +(test-begin "texlive") + +(define xml + "\ + + foo + Foomatic frobnication in LuaLaTeX + + + + +

+ Foo is a package for LuaLaTeX. It provides an interface to frobnicate gimbals + in a foomatic way with the LuaTeX engine. +

+

+ The package requires the bar and golly + bundles for extremely special specialties. +

+
+ + + + null +
") + +(define sxml + '(*TOP* (entry (@ (id "foo")) + (name "foo") + (caption "Foomatic frobnication in LuaLaTeX") + (authorref (@ (id "rekado"))) + (license (@ (type "lppl1.3"))) + (version (@ (number "2.6a"))) + (description + (p "\n Foo is a package for LuaLaTeX. It provides an interface to frobnicate gimbals\n in a foomatic way with the LuaTeX engine.\n ") + (p "\n The package requires the bar and golly\n bundles for extremely special specialties.\n ")) + (ctan (@ (path "/macros/latex/contrib/foo") (file "true"))) + (texlive (@ (location "foo"))) + (keyval (@ (value "tests") (key "topic"))) + "\n null\n"))) + +(test-equal "fetch-sxml: returns SXML for valid XML" + sxml + (mock ((guix http-client) http-fetch + (lambda (url) + xml)) + ((@@ (guix import texlive) fetch-sxml) "foo"))) + +;; TODO: +(test-assert "sxml->package" + ;; Replace network resources with sample data. + (mock ((guix build svn) svn-fetch + (lambda* (url revision directory + #:key (svn-command "svn") + (user-name #f) + (password #f)) + (mkdir-p directory) + (with-output-to-file (string-append directory "/foo") + (lambda () + (display "source"))))) + (let ((result ((@@ (guix import texlive) sxml->package) sxml))) + (match result + (('package + ('name "texlive-latex-foo") + ('version "2.6a") + ('source ('origin + ('method 'svn-fetch) + ('uri ('texlive-ref "latex" "foo")) + ('sha256 + ('base32 + (? string? hash))))) + ('build-system 'texlive-build-system) + ('arguments ('quote (#:tex-directory "latex/foo"))) + ('home-page "http://www.ctan.org/pkg/foo") + ('synopsis "Foomatic frobnication in LuaLaTeX") + ('description + "Foo is a package for LuaLaTeX. It provides an interface to \ +frobnicate gimbals in a foomatic way with the LuaTeX engine. The package \ +requires the bar and golly bundles for extremely special specialties.") + ('license 'lppl1.3+)) + #t) + (_ + (begin + (format #t "~s\n" result) + (pk 'fail result #f))))))) + +(test-end "texlive") From db90eb8c2bd447ab53bed80e5b0ea5105a928cdf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 15 Jun 2017 17:06:47 +0200 Subject: [PATCH 104/186] gnu: Add propeller-gcc-4. * gnu/packages/embedded.scm (propeller-gcc-4): New variable. * gnu/packages/patches/gcc-4.6-gnu-inline.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/embedded.scm | 22 +++++++ gnu/packages/patches/gcc-4.6-gnu-inline.patch | 65 +++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 gnu/packages/patches/gcc-4.6-gnu-inline.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8fcd2cab22..37a4fa5baa 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -606,6 +606,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-cross-environment-variables.patch \ %D%/packages/patches/gcc-libvtv-runpath.patch \ %D%/packages/patches/gcc-strmov-store-file-names.patch \ + %D%/packages/patches/gcc-4.6-gnu-inline.patch \ %D%/packages/patches/gcc-4.9.3-mingw-gthr-default.patch \ %D%/packages/patches/gcc-5.0-libvtv-runpath.patch \ %D%/packages/patches/gcc-5-source-date-epoch-1.patch \ diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 70541540e5..3b93b18d3d 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -488,6 +488,28 @@ with a layered architecture of JTAG interface and TAP support.") (home-page "https://github.com/totalspectrum/gcc-propeller") (synopsis "GCC for the Parallax Propeller")))) +(define-public propeller-gcc-4 + (let ((xgcc propeller-gcc) + (commit "f1b01001b760d691a91ff1db4830d41bb712557f") + (revision "1")) + (package (inherit xgcc) + (name "propeller-gcc") + (version (string-append "4.6.1-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dbetz/propgcc-gcc.git") + (commit commit))) + (file-name (string-append name "-" commit "-checkout")) + (sha256 + (base32 + "15mxrhk2v4vqmdkvcqy33ag1wrg9x9q20kx2w33kkw8pkrijknbi")) + (patches + (append + (origin-patches (package-source gcc-4.7)) + (search-patches "gcc-4.6-gnu-inline.patch"))))) + (home-page "https://github.com/dbetz/propgcc-gcc")))) + ;; There is no release, so we take the latest version as referenced from here: ;; https://github.com/dbetz/propeller-gcc (define-public proplib diff --git a/gnu/packages/patches/gcc-4.6-gnu-inline.patch b/gnu/packages/patches/gcc-4.6-gnu-inline.patch new file mode 100644 index 0000000000..710d358a8b --- /dev/null +++ b/gnu/packages/patches/gcc-4.6-gnu-inline.patch @@ -0,0 +1,65 @@ +This patch was taken from https://gcc.gnu.org/ml/gcc-patches/2015-08/msg00375.html. +It is used by propeller-gcc-4. + +Since the 3.0.3 release of gperf (made in May 2007), the generated func +has had the gnu_inline attribute applied to it. The gcc source however +has not been updated to include that which has lead to a mismatch. + +In practice, this hasn't been an issue for two reasons: +(1) Before gcc-5, the default standard was (gnu) C89, and gcc does not +warn or throw an error in this mode. +(2) Starting with gcc-4.8, the compiler driver used to build gcc was +changed to C++, and g++ does not warn or throw an error in this mode. + +This error does show up though when using gcc-5 to build gcc-4.7 or +older as then the default is (gnu) C11 and the C compiler driver is +used. That failure looks like: +In file included from .../gcc-4.7.4/gcc/cp/except.c:990:0: +cfns.gperf: At top level: +cfns.gperf:101:1: error: 'gnu_inline' attribute present on 'libc_name_p' +cfns.gperf:26:14: error: but not here + +Whether the compiler should always emit this error regardless of the +active standard or compiler driver is debatable (I think it should be +consistent -- either always do it or never do it). + +2015-08-06 Mike Frysinger + + * cfns.gperf [__GNUC__, __GNUC_STDC_INLINE__]: Apply the + __gnu_inline__ attribute. + * cfns.h: Regenerated. +--- + gcc/cp/cfns.gperf | 3 +++ + gcc/cp/cfns.h | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf +index 68acd3d..953262f 100644 +--- a/gcc/cp/cfns.gperf ++++ b/gcc/cp/cfns.gperf +@@ -22,6 +22,9 @@ __inline + static unsigned int hash (const char *, unsigned int); + #ifdef __GNUC__ + __inline ++#ifdef __GNUC_STDC_INLINE__ ++__attribute__ ((__gnu_inline__)) ++#endif + #endif + const char * libc_name_p (const char *, unsigned int); + %} +diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h +index 1c6665d..6d00c0e 100644 +--- a/gcc/cp/cfns.h ++++ b/gcc/cp/cfns.h +@@ -53,6 +53,9 @@ __inline + static unsigned int hash (const char *, unsigned int); + #ifdef __GNUC__ + __inline ++#ifdef __GNUC_STDC_INLINE__ ++__attribute__ ((__gnu_inline__)) ++#endif + #endif + const char * libc_name_p (const char *, unsigned int); + /* maximum key range = 391, duplicates = 0 */ +-- +2.4.4 From 0c5a8007fe3cfc792bf5f692342a84165f706441 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 14 Jun 2017 16:34:10 -0400 Subject: [PATCH 105/186] gnu: zziplib: Fix CVE-2017-{5974,5975,5976,5978,5979,5981}. * gnu/packages/patches/zziplib-CVE-2017-5974.patch, gnu/packages/patches/zziplib-CVE-2017-5975.patch, gnu/packages/patches/zziplib-CVE-2017-5976.patch, gnu/packages/patches/zziplib-CVE-2017-5978.patch, gnu/packages/patches/zziplib-CVE-2017-5979.patch, gnu/packages/patches/zziplib-CVE-2017-5981.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/zip.scm (zziplib)[source]: Use them. --- gnu/local.mk | 8 ++- .../patches/zziplib-CVE-2017-5974.patch | 28 +++++++++ .../patches/zziplib-CVE-2017-5975.patch | 32 ++++++++++ .../patches/zziplib-CVE-2017-5976.patch | 61 +++++++++++++++++++ .../patches/zziplib-CVE-2017-5978.patch | 37 +++++++++++ .../patches/zziplib-CVE-2017-5979.patch | 19 ++++++ .../patches/zziplib-CVE-2017-5981.patch | 19 ++++++ gnu/packages/zip.scm | 6 ++ 8 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/zziplib-CVE-2017-5974.patch create mode 100644 gnu/packages/patches/zziplib-CVE-2017-5975.patch create mode 100644 gnu/packages/patches/zziplib-CVE-2017-5976.patch create mode 100644 gnu/packages/patches/zziplib-CVE-2017-5978.patch create mode 100644 gnu/packages/patches/zziplib-CVE-2017-5979.patch create mode 100644 gnu/packages/patches/zziplib-CVE-2017-5981.patch diff --git a/gnu/local.mk b/gnu/local.mk index 37a4fa5baa..1fa952b294 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1086,7 +1086,13 @@ dist_patch_DATA = \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \ %D%/packages/patches/xmodmap-asprintf.patch \ %D%/packages/patches/libyaml-CVE-2014-9130.patch \ - %D%/packages/patches/zathura-plugindir-environment-variable.patch + %D%/packages/patches/zathura-plugindir-environment-variable.patch \ + %D%/packages/patches/zziplib-CVE-2017-5974.patch \ + %D%/packages/patches/zziplib-CVE-2017-5975.patch \ + %D%/packages/patches/zziplib-CVE-2017-5976.patch \ + %D%/packages/patches/zziplib-CVE-2017-5978.patch \ + %D%/packages/patches/zziplib-CVE-2017-5979.patch \ + %D%/packages/patches/zziplib-CVE-2017-5981.patch MISC_DISTRO_FILES = \ %D%/packages/ld-wrapper.in diff --git a/gnu/packages/patches/zziplib-CVE-2017-5974.patch b/gnu/packages/patches/zziplib-CVE-2017-5974.patch new file mode 100644 index 0000000000..9ae02103e7 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5974.patch @@ -0,0 +1,28 @@ +Fix CVE-2017-5974: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5974 + +Patch copied from Debian. + +Index: zziplib-0.13.62/zzip/memdisk.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/memdisk.c ++++ zziplib-0.13.62/zzip/memdisk.c +@@ -216,12 +216,12 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + /* override sizes/offsets with zip64 values for largefile support */ + zzip_extra_zip64 *block = (zzip_extra_zip64 *) + zzip_mem_entry_extra_block(item, ZZIP_EXTRA_zip64); +- if (block) ++ if (block && ZZIP_GET16(block->z_datasize) >= (8 + 8 + 8 + 4)) + { +- item->zz_usize = __zzip_get64(block->z_usize); +- item->zz_csize = __zzip_get64(block->z_csize); +- item->zz_offset = __zzip_get64(block->z_offset); +- item->zz_diskstart = __zzip_get32(block->z_diskstart); ++ item->zz_usize = ZZIP_GET64(block->z_usize); ++ item->zz_csize = ZZIP_GET64(block->z_csize); ++ item->zz_offset = ZZIP_GET64(block->z_offset); ++ item->zz_diskstart = ZZIP_GET32(block->z_diskstart); + } + } + /* NOTE: diff --git a/gnu/packages/patches/zziplib-CVE-2017-5975.patch b/gnu/packages/patches/zziplib-CVE-2017-5975.patch new file mode 100644 index 0000000000..fad174b056 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5975.patch @@ -0,0 +1,32 @@ +Fix CVE-2017-5975: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5975 + +Patch copied from Debian. + +Index: zziplib-0.13.62/zzip/memdisk.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/memdisk.c ++++ zziplib-0.13.62/zzip/memdisk.c +@@ -173,6 +173,8 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + return 0; /* errno=ENOMEM; */ + ___ struct zzip_file_header *header = + zzip_disk_entry_to_file_header(disk, entry); ++ if (!header) ++ { free(item); return 0; } + /* there is a number of duplicated information in the file header + * or the disk entry block. Theoretically some part may be missing + * that exists in the other, ... but we will prefer the disk entry. +Index: zziplib-0.13.62/zzip/mmapped.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/mmapped.c ++++ zziplib-0.13.62/zzip/mmapped.c +@@ -289,6 +289,8 @@ zzip_disk_entry_to_file_header(ZZIP_DISK + (disk->buffer + zzip_disk_entry_fileoffset(entry)); + if (disk->buffer > file_header || file_header >= disk->endbuf) + return 0; ++ if (ZZIP_GET32(file_header) != ZZIP_FILE_HEADER_MAGIC) ++ return 0; + return (struct zzip_file_header *) file_header; + } + diff --git a/gnu/packages/patches/zziplib-CVE-2017-5976.patch b/gnu/packages/patches/zziplib-CVE-2017-5976.patch new file mode 100644 index 0000000000..17fc30e302 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5976.patch @@ -0,0 +1,61 @@ +Fix CVE-2017-5976: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5976 + +Patch copied from Debian. + +Index: zziplib-0.13.62/zzip/memdisk.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/memdisk.c ++++ zziplib-0.13.62/zzip/memdisk.c +@@ -201,6 +201,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + { + void *mem = malloc(ext1 + 2); + item->zz_ext[1] = mem; ++ item->zz_extlen[1] = ext1 + 2; + memcpy(mem, ptr1, ext1); + ((char *) (mem))[ext1 + 0] = 0; + ((char *) (mem))[ext1 + 1] = 0; +@@ -209,6 +210,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + { + void *mem = malloc(ext2 + 2); + item->zz_ext[2] = mem; ++ item->zz_extlen[2] = ext2 + 2; + memcpy(mem, ptr2, ext2); + ((char *) (mem))[ext2 + 0] = 0; + ((char *) (mem))[ext2 + 1] = 0; +@@ -245,8 +247,10 @@ zzip_mem_entry_extra_block(ZZIP_MEM_ENTR + while (1) + { + ZZIP_EXTRA_BLOCK *ext = entry->zz_ext[i]; +- if (ext) ++ if (ext && (entry->zz_extlen[i] >= zzip_extra_block_headerlength)) + { ++ char *endblock = (char *)ext + entry->zz_extlen[i]; ++ + while (*(short *) (ext->z_datatype)) + { + if (datatype == zzip_extra_block_get_datatype(ext)) +@@ -257,6 +261,10 @@ zzip_mem_entry_extra_block(ZZIP_MEM_ENTR + e += zzip_extra_block_headerlength; + e += zzip_extra_block_get_datasize(ext); + ext = (void *) e; ++ if (e >= endblock) ++ { ++ break; ++ } + ____; + } + } +Index: zziplib-0.13.62/zzip/memdisk.h +=================================================================== +--- zziplib-0.13.62.orig/zzip/memdisk.h ++++ zziplib-0.13.62/zzip/memdisk.h +@@ -66,6 +66,7 @@ struct _zzip_mem_entry { + int zz_filetype; /* (from "z_filetype") */ + char* zz_comment; /* zero-terminated (from "comment") */ + ZZIP_EXTRA_BLOCK* zz_ext[3]; /* terminated by null in z_datatype */ ++ int zz_extlen[3]; /* length of zz_ext[i] in bytes */ + }; /* the extra blocks are NOT converted */ + + #define _zzip_mem_disk_findfirst(_d_) ((_d_)->list) diff --git a/gnu/packages/patches/zziplib-CVE-2017-5978.patch b/gnu/packages/patches/zziplib-CVE-2017-5978.patch new file mode 100644 index 0000000000..452b14f804 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5978.patch @@ -0,0 +1,37 @@ +Fix CVE-2017-5978: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5978 + +Patch copied from Debian. + +Index: zziplib-0.13.62/zzip/memdisk.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/memdisk.c ++++ zziplib-0.13.62/zzip/memdisk.c +@@ -180,7 +180,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + * that exists in the other, ... but we will prefer the disk entry. + */ + item->zz_comment = zzip_disk_entry_strdup_comment(disk, entry); +- item->zz_name = zzip_disk_entry_strdup_name(disk, entry); ++ item->zz_name = zzip_disk_entry_strdup_name(disk, entry) ?: strdup(""); + item->zz_data = zzip_file_header_to_data(header); + item->zz_flags = zzip_disk_entry_get_flags(entry); + item->zz_compr = zzip_disk_entry_get_compr(entry); +@@ -197,7 +197,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + int /* */ ext2 = zzip_file_header_get_extras(header); + char *_zzip_restrict ptr2 = zzip_file_header_to_extras(header); + +- if (ext1) ++ if (ext1 && ((ptr1 + ext1) < disk->endbuf)) + { + void *mem = malloc(ext1 + 2); + item->zz_ext[1] = mem; +@@ -206,7 +206,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + ((char *) (mem))[ext1 + 0] = 0; + ((char *) (mem))[ext1 + 1] = 0; + } +- if (ext2) ++ if (ext2 && ((ptr2 + ext2) < disk->endbuf)) + { + void *mem = malloc(ext2 + 2); + item->zz_ext[2] = mem; diff --git a/gnu/packages/patches/zziplib-CVE-2017-5979.patch b/gnu/packages/patches/zziplib-CVE-2017-5979.patch new file mode 100644 index 0000000000..b38f50b172 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5979.patch @@ -0,0 +1,19 @@ +Fix CVE-2017-5979: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5979 + +Patch copied from Debian. + +Index: zziplib-0.13.62/zzip/fseeko.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/fseeko.c ++++ zziplib-0.13.62/zzip/fseeko.c +@@ -255,7 +255,7 @@ zzip_entry_findfirst(FILE * disk) + return 0; + /* we read out chunks of 8 KiB in the hope to match disk granularity */ + ___ zzip_off_t pagesize = PAGESIZE; /* getpagesize() */ +- ___ ZZIP_ENTRY *entry = malloc(sizeof(*entry)); ++ ___ ZZIP_ENTRY *entry = calloc(1, sizeof(*entry)); + if (! entry) + return 0; + ___ unsigned char *buffer = malloc(pagesize); diff --git a/gnu/packages/patches/zziplib-CVE-2017-5981.patch b/gnu/packages/patches/zziplib-CVE-2017-5981.patch new file mode 100644 index 0000000000..ed82cb3b91 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5981.patch @@ -0,0 +1,19 @@ +Fix CVE-2017-5981: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5981 + +Patch copied from Debian. +Index: zziplib-0.13.62/zzip/fseeko.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/fseeko.c ++++ zziplib-0.13.62/zzip/fseeko.c +@@ -311,7 +311,8 @@ zzip_entry_findfirst(FILE * disk) + } else + continue; + +- assert(0 <= root && root < mapsize); ++ if (root < 0 || root >= mapsize) ++ goto error; + if (fseeko(disk, root, SEEK_SET) == -1) + goto error; + if (fread(disk_(entry), 1, sizeof(*disk_(entry)), disk) diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm index 8feb4fea21..018891359b 100644 --- a/gnu/packages/zip.scm +++ b/gnu/packages/zip.scm @@ -136,6 +136,12 @@ recreates the stored directory structure by default.") (uri (string-append "mirror://sourceforge/zziplib/zziplib13/" version "/zziplib-" version ".tar.bz2")) + (patches (search-patches "zziplib-CVE-2017-5974.patch" + "zziplib-CVE-2017-5975.patch" + "zziplib-CVE-2017-5976.patch" + "zziplib-CVE-2017-5978.patch" + "zziplib-CVE-2017-5979.patch" + "zziplib-CVE-2017-5981.patch")) (sha256 (base32 "0nsjqxw017hiyp524p9316283jlf5piixc1091gkimhz38zh7f51")))) From 240cee8ab42efd77b1a7962173209e9678f2f019 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 15 Jun 2017 02:49:22 -0400 Subject: [PATCH 106/186] gnu: network-manager-applet: Update to 1.8.2. * gnu/packages/gnome.scm (network-manager-applet): Update to 1.8.2. [arguments]: Remove "--without-wwan" configure flag. [inputs]: Add libselinux and modem-manager. --- gnu/packages/gnome.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 20222ed9be..e14abcfa37 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -104,6 +104,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages rdesktop) #:use-module (gnu packages scanner) + #:use-module (gnu packages selinux) #:use-module (gnu packages ssh) #:use-module (gnu packages xml) #:use-module (gnu packages gl) @@ -4806,7 +4807,7 @@ services.") (define-public network-manager-applet (package (name "network-manager-applet") - (version "1.4.2") + (version "1.8.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4814,12 +4815,9 @@ services.") name "-" version ".tar.xz")) (sha256 (base32 - "16a43sl9aijmvxbb08hbjqyjnlshj8dckycbgi9nm333fr47n6s3")))) + "09f9hjpn9nkhw57mk6pi7q1bq3lhf5hvmwas0fknscssak7yjmry")))) (build-system glib-or-gtk-build-system) - ;; TODO: WWAN support supposedly requires an update of glibmm which in turn - ;; requires an update of the its dependencies (glib and others). - (arguments '(#:configure-flags '("--disable-migration" - "--without-wwan"))) + (arguments '(#:configure-flags '("--disable-migration"))) (native-inputs `(("intltool" ,intltool) ("gobject-introspection" ,gobject-introspection) @@ -4834,7 +4832,9 @@ services.") ("libgudev" ,libgudev) ("libnotify" ,libnotify) ("libsecret" ,libsecret) - ("jansson" ,jansson))) ;for team support + ("libselinux" ,libselinux) + ("jansson" ,jansson) ; for team support + ("modem-manager" ,modem-manager))) (synopsis "Applet for managing network connections") (home-page "http://www.gnome.org/projects/NetworkManager/") (description From c4fd86f9c1efdb6b413dd6b7a00f03a5f9558b8d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 15 Jun 2017 14:43:35 +0200 Subject: [PATCH 107/186] gnu: sablevm: Do not use bundled libraries. * gnu/packages/java.scm (sablevm)[inputs]: Add popt and libffi. [arguments]: Add configure flags and build phase to avoid using bundled libraries. --- gnu/packages/java.scm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 9a129b8d91..1496af7591 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -51,10 +51,12 @@ #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) + #:use-module (gnu packages libffi) #:use-module (gnu packages linux) ;alsa #:use-module (gnu packages wget) #:use-module (gnu packages pkg-config) #:use-module (gnu packages perl) + #:use-module (gnu packages popt) #:use-module (gnu packages kerberos) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -160,8 +162,17 @@ This package provides the classpath library.") "1jyg4bsym6igz94wps5443c7wiwlzinqzkchcw972nz4kf1cql6g")))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:configure-flags + (list "--with-internal-libffi=no" + "--with-internal-libpopt=no") + #:phases (modify-phases %standard-phases + (add-after 'unpack 'link-with-popt + (lambda _ + (substitute* "src/sablevm/Makefile.in" + (("\\$\\(SVMADD\\)" match) + (string-append match " -lpopt"))) + #t)) (add-after 'unpack 'patch-path-to-classpath (lambda* (#:key inputs #:allow-other-keys) (substitute* "Makefile.in" @@ -179,7 +190,9 @@ This package provides the classpath library.") (inputs `(("classpath" ,sablevm-classpath) ("jikes" ,jikes) - ("zlib" ,zlib))) + ("zlib" ,zlib) + ("popt" ,popt) + ("libffi" ,libffi))) (native-inputs `(("libltdl" ,libltdl))) (home-page "http://sablevm.org/") From ec7e9eeae6167bc5b16673d448e710468216ca05 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 15 Jun 2017 14:45:08 +0200 Subject: [PATCH 108/186] gnu: sablevm: Build reproducibly. * gnu/packages/java.scm (sablevm)[arguments]: Add build phase "remove-timestamp-for-reproducibility". --- gnu/packages/java.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 1496af7591..7bdf97f98a 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -167,6 +167,11 @@ This package provides the classpath library.") "--with-internal-libpopt=no") #:phases (modify-phases %standard-phases + (add-after 'unpack 'remove-timestamp-for-reproducibility + (lambda _ + (substitute* "src/sablevm/Makefile.in" + (("\\$\\(SVMCOMPILETIME\\)") "(unknown)")) + #t)) (add-after 'unpack 'link-with-popt (lambda _ (substitute* "src/sablevm/Makefile.in" From 8d138ea087104479dc7f4b72e6ad16e212106cfd Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 14 Jun 2017 22:26:15 -0400 Subject: [PATCH 109/186] gnu: libtiff: Fix several bugs related to improper codec usage [security fixes]. Fixes CVE-2014-8128, CVE-2015-7554, CVE-2016-5318, CVE-2016-10095, and the other bugs listed in 'libtiff-tiffgetfield-bugs.patch'. * gnu/packages/patches/libtiff-tiffgetfield-bugs.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/image.scm (libtiff-4.0.8)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/image.scm | 1 + .../patches/libtiff-tiffgetfield-bugs.patch | 201 ++++++++++++++++++ 3 files changed, 203 insertions(+) create mode 100644 gnu/packages/patches/libtiff-tiffgetfield-bugs.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1fa952b294..148ba12d68 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -770,6 +770,7 @@ dist_patch_DATA = \ %D%/packages/patches/libtiff-invalid-read.patch \ %D%/packages/patches/libtiff-null-dereference.patch \ %D%/packages/patches/libtiff-tiffcp-underflow.patch \ + %D%/packages/patches/libtiff-tiffgetfield-bugs.patch \ %D%/packages/patches/libtirpc-CVE-2017-8779.patch \ %D%/packages/patches/libtorrent-rasterbar-boost-compat.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index abac17d6d7..b94c006b15 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -393,6 +393,7 @@ collection of tools for doing simple manipulations of TIFF images.") (method url-fetch) (uri (string-append "ftp://download.osgeo.org/libtiff/tiff-" version ".tar.gz")) + (patches (search-patches "libtiff-tiffgetfield-bugs.patch")) (sha256 (base32 "0419mh6kkhz5fkyl77gv0in8x4d2jpdpfs147y8mj86rrjlabmsr")))))) diff --git a/gnu/packages/patches/libtiff-tiffgetfield-bugs.patch b/gnu/packages/patches/libtiff-tiffgetfield-bugs.patch new file mode 100644 index 0000000000..84566ca23e --- /dev/null +++ b/gnu/packages/patches/libtiff-tiffgetfield-bugs.patch @@ -0,0 +1,201 @@ +Fix several bugs in libtiff related to use of TIFFGetField(): + +http://bugzilla.maptools.org/show_bug.cgi?id=2580 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8128 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7554 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5318 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10095 + +Patch copied from upstream CVS. 3rd-party Git reference: +https://github.com/vadz/libtiff/commit/4d4fa0b68ae9ae038959ee4f69ebe288ec892f06 + +2017-06-01 Even Rouault + +* libtiff/tif_dirinfo.c, tif_dirread.c: add _TIFFCheckFieldIsValidForCodec(), +and use it in TIFFReadDirectory() so as to ignore fields whose tag is a +codec-specified tag but this codec is not enabled. This avoids TIFFGetField() +to behave differently depending on whether the codec is enabled or not, and +thus can avoid stack based buffer overflows in a number of TIFF utilities +such as tiffsplit, tiffcmp, thumbnail, etc. +Patch derived from 0063-Handle-properly-CODEC-specific-tags.patch +(http://bugzilla.maptools.org/show_bug.cgi?id=2580) by Raphaël Hertzog. +Fixes: +http://bugzilla.maptools.org/show_bug.cgi?id=2580 +http://bugzilla.maptools.org/show_bug.cgi?id=2693 +http://bugzilla.maptools.org/show_bug.cgi?id=2625 (CVE-2016-10095) +http://bugzilla.maptools.org/show_bug.cgi?id=2564 (CVE-2015-7554) +http://bugzilla.maptools.org/show_bug.cgi?id=2561 (CVE-2016-5318) +http://bugzilla.maptools.org/show_bug.cgi?id=2499 (CVE-2014-8128) +http://bugzilla.maptools.org/show_bug.cgi?id=2441 +http://bugzilla.maptools.org/show_bug.cgi?id=2433 +Index: libtiff/libtiff/tif_dirread.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dirread.c,v +retrieving revision 1.208 +retrieving revision 1.209 +diff -u -r1.208 -r1.209 +--- libtiff/libtiff/tif_dirread.c 27 Apr 2017 15:46:22 -0000 1.208 ++++ libtiff/libtiff/tif_dirread.c 1 Jun 2017 12:44:04 -0000 1.209 +@@ -1,4 +1,4 @@ +-/* $Id: tif_dirread.c,v 1.208 2017-04-27 15:46:22 erouault Exp $ */ ++/* $Id: tif_dirread.c,v 1.209 2017-06-01 12:44:04 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -3580,6 +3580,10 @@ + goto bad; + dp->tdir_tag=IGNORE; + break; ++ default: ++ if( !_TIFFCheckFieldIsValidForCodec(tif, dp->tdir_tag) ) ++ dp->tdir_tag=IGNORE; ++ break; + } + } + } +Index: libtiff/libtiff/tif_dirinfo.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dirinfo.c,v +retrieving revision 1.126 +retrieving revision 1.127 +diff -u -r1.126 -r1.127 +--- libtiff/libtiff/tif_dirinfo.c 18 Nov 2016 02:52:13 -0000 1.126 ++++ libtiff/libtiff/tif_dirinfo.c 1 Jun 2017 12:44:04 -0000 1.127 +@@ -1,4 +1,4 @@ +-/* $Id: tif_dirinfo.c,v 1.126 2016-11-18 02:52:13 bfriesen Exp $ */ ++/* $Id: tif_dirinfo.c,v 1.127 2017-06-01 12:44:04 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -956,6 +956,109 @@ + return 0; + } + ++int ++_TIFFCheckFieldIsValidForCodec(TIFF *tif, ttag_t tag) ++{ ++ /* Filter out non-codec specific tags */ ++ switch (tag) { ++ /* Shared tags */ ++ case TIFFTAG_PREDICTOR: ++ /* JPEG tags */ ++ case TIFFTAG_JPEGTABLES: ++ /* OJPEG tags */ ++ case TIFFTAG_JPEGIFOFFSET: ++ case TIFFTAG_JPEGIFBYTECOUNT: ++ case TIFFTAG_JPEGQTABLES: ++ case TIFFTAG_JPEGDCTABLES: ++ case TIFFTAG_JPEGACTABLES: ++ case TIFFTAG_JPEGPROC: ++ case TIFFTAG_JPEGRESTARTINTERVAL: ++ /* CCITT* */ ++ case TIFFTAG_BADFAXLINES: ++ case TIFFTAG_CLEANFAXDATA: ++ case TIFFTAG_CONSECUTIVEBADFAXLINES: ++ case TIFFTAG_GROUP3OPTIONS: ++ case TIFFTAG_GROUP4OPTIONS: ++ break; ++ default: ++ return 1; ++ } ++ /* Check if codec specific tags are allowed for the current ++ * compression scheme (codec) */ ++ switch (tif->tif_dir.td_compression) { ++ case COMPRESSION_LZW: ++ if (tag == TIFFTAG_PREDICTOR) ++ return 1; ++ break; ++ case COMPRESSION_PACKBITS: ++ /* No codec-specific tags */ ++ break; ++ case COMPRESSION_THUNDERSCAN: ++ /* No codec-specific tags */ ++ break; ++ case COMPRESSION_NEXT: ++ /* No codec-specific tags */ ++ break; ++ case COMPRESSION_JPEG: ++ if (tag == TIFFTAG_JPEGTABLES) ++ return 1; ++ break; ++ case COMPRESSION_OJPEG: ++ switch (tag) { ++ case TIFFTAG_JPEGIFOFFSET: ++ case TIFFTAG_JPEGIFBYTECOUNT: ++ case TIFFTAG_JPEGQTABLES: ++ case TIFFTAG_JPEGDCTABLES: ++ case TIFFTAG_JPEGACTABLES: ++ case TIFFTAG_JPEGPROC: ++ case TIFFTAG_JPEGRESTARTINTERVAL: ++ return 1; ++ } ++ break; ++ case COMPRESSION_CCITTRLE: ++ case COMPRESSION_CCITTRLEW: ++ case COMPRESSION_CCITTFAX3: ++ case COMPRESSION_CCITTFAX4: ++ switch (tag) { ++ case TIFFTAG_BADFAXLINES: ++ case TIFFTAG_CLEANFAXDATA: ++ case TIFFTAG_CONSECUTIVEBADFAXLINES: ++ return 1; ++ case TIFFTAG_GROUP3OPTIONS: ++ if (tif->tif_dir.td_compression == COMPRESSION_CCITTFAX3) ++ return 1; ++ break; ++ case TIFFTAG_GROUP4OPTIONS: ++ if (tif->tif_dir.td_compression == COMPRESSION_CCITTFAX4) ++ return 1; ++ break; ++ } ++ break; ++ case COMPRESSION_JBIG: ++ /* No codec-specific tags */ ++ break; ++ case COMPRESSION_DEFLATE: ++ case COMPRESSION_ADOBE_DEFLATE: ++ if (tag == TIFFTAG_PREDICTOR) ++ return 1; ++ break; ++ case COMPRESSION_PIXARLOG: ++ if (tag == TIFFTAG_PREDICTOR) ++ return 1; ++ break; ++ case COMPRESSION_SGILOG: ++ case COMPRESSION_SGILOG24: ++ /* No codec-specific tags */ ++ break; ++ case COMPRESSION_LZMA: ++ if (tag == TIFFTAG_PREDICTOR) ++ return 1; ++ break; ++ ++ } ++ return 0; ++} ++ + /* vim: set ts=8 sts=8 sw=8 noet: */ + + /* +Index: libtiff/libtiff/tif_dir.h +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dir.h,v +retrieving revision 1.54 +retrieving revision 1.55 +diff -u -r1.54 -r1.55 +--- libtiff/libtiff/tif_dir.h 18 Feb 2011 20:53:05 -0000 1.54 ++++ libtiff/libtiff/tif_dir.h 1 Jun 2017 12:44:04 -0000 1.55 +@@ -1,4 +1,4 @@ +-/* $Id: tif_dir.h,v 1.54 2011-02-18 20:53:05 fwarmerdam Exp $ */ ++/* $Id: tif_dir.h,v 1.55 2017-06-01 12:44:04 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -291,6 +291,7 @@ + extern int _TIFFMergeFields(TIFF*, const TIFFField[], uint32); + extern const TIFFField* _TIFFFindOrRegisterField(TIFF *, uint32, TIFFDataType); + extern TIFFField* _TIFFCreateAnonField(TIFF *, uint32, TIFFDataType); ++extern int _TIFFCheckFieldIsValidForCodec(TIFF *tif, ttag_t tag); + + #if defined(__cplusplus) + } From e50c8aadae75486c91cfc21b09721a6b6509c5e2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 15 Jun 2017 12:03:14 -0400 Subject: [PATCH 110/186] gnu: bind: Update to 9.11.1-P1 [fixes CVE-2017-3140]. * gnu/packages/dns.scm (isc-bind): Update to 9.11.1-P1. --- 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 7f1d18f2b0..2e4d8fd18e 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -93,7 +93,7 @@ and BOOTP/TFTP for network booting of diskless machines.") (define-public isc-bind (package (name "bind") - (version "9.11.1") + (version "9.11.1-P1") (source (origin (method url-fetch) (uri (string-append @@ -101,7 +101,7 @@ and BOOTP/TFTP for network booting of diskless machines.") version ".tar.gz")) (sha256 (base32 - "1chhphaa4lmfxj9daqsxph5ng4h3qq51jx21rj2i6an8ynah0192")))) + "0f56bhkxx7bga3f1a4whlm8fh5q8lz7ah97fdayp310vsn43w6vb")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs From 02084762605e1fd8bc70376e4297871db6d84a82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 15 Jun 2017 15:47:32 +0200 Subject: [PATCH 111/186] gnu: proot: Install man page under the right name. * gnu/packages/linux.scm (proot)[arguments]: In 'install' phase, install man page as "proot.1", not "man.1". --- gnu/packages/linux.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index f4f5d50543..cf37afe682 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3964,10 +3964,11 @@ userspace queueing component and the logging subsystem.") ;; build currently.) (system* "make" "-C" "src" "install" (string-append "PREFIX=" out))) - (begin - (install-file "doc/proot/man.1" - (string-append out "/share" - "/man/man1")) + (let ((man1 (string-append out + "/share/man/man1"))) + (mkdir-p man1) + (copy-file "doc/proot/man.1" + (string-append man1 "/proot.1")) #t)))))))) (native-inputs `(("which" ,which) From 7ebc6cf869006a2a568b09cc6b435961f399a20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 15 Jun 2017 18:07:10 +0200 Subject: [PATCH 112/186] packages: Patches can be any lowerable object. * guix/packages.scm (patch-and-repack)[instantiate-patch]: Replace 'origin?' with 'struct?'. --- guix/packages.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/guix/packages.scm b/guix/packages.scm index f4967f98fa..76aa43e7d3 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -477,10 +477,10 @@ specifies modules in scope when evaluating SNIPPET." (define instantiate-patch (match-lambda - ((? string? patch) + ((? string? patch) ;deprecated (interned-file patch #:recursive? #t)) - ((? origin? patch) - (origin->derivation patch system)))) + ((? struct? patch) ;origin, local-file, etc. + (lower-object patch system)))) (mlet %store-monad ((tar -> (lookup-input "tar")) (xz -> (lookup-input "xz")) From cbee955901b3e252ebdeb8066a2196055149198a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 15 Jun 2017 21:58:17 +0200 Subject: [PATCH 113/186] ui: Remove the empty string from '%load-extensions'. * guix/ui.scm (run-guix): Set %LOAD-EXTENSIONS. --- guix/ui.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/guix/ui.scm b/guix/ui.scm index b8cfc651a2..56fcc00300 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1326,6 +1326,10 @@ Unlike 'guix-main', this procedure assumes that locale, i18n support, and signal handling has already been set up." (define option? (cut string-prefix? "-" <>)) + ;; The default %LOAD-EXTENSIONS includes the empty string, which doubles the + ;; number of 'stat' calls per entry in %LOAD-PATH. Shamelessly remove it. + (set! %load-extensions '(".scm")) + (match args (() (format (current-error-port) From 82c955c0a5aefb5f15e42ad012a31867458b281b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 15 Jun 2017 22:45:43 +0200 Subject: [PATCH 114/186] hydra: Don't build non-substitutable packages. * build-aux/hydra/gnu-system.scm (package->job): Compute PACKAGE's derivation; return #f if 'substitutable-derivation?' returns #f. --- build-aux/hydra/gnu-system.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index b1faa2265a..eeb7183a4f 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -245,7 +245,11 @@ valid." (cond ((member package base-packages) #f) ((supported-package? package system) - (package-job store (job-name package) package system)) + (let ((drv (package-derivation store package system + #:graft? #f))) + (and (substitutable-derivation? drv) + (package-job store (job-name package) + package system)))) (else #f))))) From 9fc7cc31e232cdfe810044ff33f7210dc59f33f5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 7 May 2017 02:28:12 +0200 Subject: [PATCH 115/186] gnu: spin2cpp: Update to 3.6.3. * gnu/packages/embedded.scm (spin2cpp): Update to 3.6.3. --- gnu/packages/embedded.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 3b93b18d3d..c158405a0c 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -676,7 +676,7 @@ upload binaries to a Parallax Propeller micro-controller.") (define-public spin2cpp (package (name "spin2cpp") - (version "3.4.0") + (version "3.6.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/totalspectrum/spin2cpp/" @@ -684,7 +684,7 @@ upload binaries to a Parallax Propeller micro-controller.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00i8i0dspd5115ggkv5vx2xqb21l6y38wz0bakgby8n3b4k9xnk0")))) + "0v5vzh69bp1r2byrpz12rql1w24ff2v9msr31596zq6hd6n82lnh")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;; The tests assume that a micro-controller is connected. From a147fadd3b60a0489bcf4b4cdce8254c51c16e3f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 15 Jun 2017 16:44:46 +0200 Subject: [PATCH 116/186] gnu: tadbit: Fix typo in description. * gnu/packages/bioinformatics.scm (tadbit)[description]: Fix typo. --- 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 cded2dd8c8..9247f037d7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9535,7 +9535,7 @@ applications for tackling some common problems in a user-friendly way.") "TADbit is a complete Python library to deal with all steps to analyze, model, and explore 3C-based data. With TADbit the user can map FASTQ files to obtain raw interaction binned matrices (Hi-C like matrices), normalize and -correct interaction matrices, identify adn compare the so-called +correct interaction matrices, identify and compare the so-called @dfn{Topologically Associating Domains} (TADs), build 3D models from the interaction matrices, and finally, extract structural properties from the models. TADbit is complemented by TADkit for visualizing 3D models.") From f54efbdc46be99e7bf0f2d31a766cfb2b5dab996 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 15 Jun 2017 21:52:57 -0400 Subject: [PATCH 117/186] gnu: gspell: Update to 1.4.1. * gnu/packages/gnome.scm (gspell): Update to 1.4.1. * gnu/packages/patches/gspell-dash-test.patch: Adjust accordingly. --- gnu/packages/gnome.scm | 4 ++-- gnu/packages/patches/gspell-dash-test.patch | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e14abcfa37..25d8580a80 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6221,7 +6221,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).") (define-public gspell (package (name "gspell") - (version "1.3.2") + (version "1.4.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -6229,7 +6229,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).") name "-" version ".tar.xz")) (sha256 (base32 - "1n4kd5i11l79h8bpvx3cz79ww0b4z89y99h4czvyg80qlarn585w")) + "1ghh1xdzf04mfgb13zqpj88krpa44xv2vbyhm6k017kzrpz8hbs4")) (patches (search-patches "gspell-dash-test.patch")))) (build-system glib-or-gtk-build-system) (arguments diff --git a/gnu/packages/patches/gspell-dash-test.patch b/gnu/packages/patches/gspell-dash-test.patch index e737921c4b..1c9d77cfba 100644 --- a/gnu/packages/patches/gspell-dash-test.patch +++ b/gnu/packages/patches/gspell-dash-test.patch @@ -1,16 +1,22 @@ Somehow, Aspell 0.60.6.1 and aspell-dict-en-2016.11.20-0 don't consider this a valid spelling. Skip it. ---- gspell-1.3.2/testsuite/test-checker.c 2017-05-17 16:02:40.832415940 +0200 -+++ gspell-1.3.2/testsuite/test-checker.c 2017-05-17 16:02:50.768351895 +0200 -@@ -101,9 +101,6 @@ test_dashes (void) - - checker = gspell_checker_new (lang); - +TODO: Migrate to using hunspell. According to upstream, this bug won't be fixed. +See https://bugzilla.gnome.org/show_bug.cgi?id=772406. +--- a/testsuite/test-checker.c 2017-03-24 09:50:50.000000000 -0400 ++++ b/testsuite/test-checker.c 2017-06-15 21:47:07.116173895 -0400 +@@ -105,10 +105,11 @@ + * be considered deprecated, it is better to use hunspell, so WONTFIX. + * For more details, see: + * https://bugzilla.gnome.org/show_bug.cgi?id=772406 ++ * ++ * correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error); ++ * g_assert_no_error (error); ++ * g_assert (correctly_spelled); + */ - correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error); - g_assert_no_error (error); - g_assert (correctly_spelled); correctly_spelled = gspell_checker_check_word (checker, "nrst-auie", -1, &error); g_assert_no_error (error); - From a512ca81e8998d86770f5a088a9563bc3f24560f Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 15 Jun 2017 22:16:40 -0400 Subject: [PATCH 118/186] gnu: gmime: Update to 3.0.1. * gnu/packages/mail.scm (gmime): Update to 3.0.1. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 02a4f26022..8bcadd8516 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -344,7 +344,7 @@ It adds a large amount of new and improved features to mutt."))) (define-public gmime (package (name "gmime") - (version "2.6.23") + (version "3.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gmime/" @@ -352,7 +352,7 @@ It adds a large amount of new and improved features to mutt."))) "/gmime-" version ".tar.xz")) (sha256 (base32 - "0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi")))) + "001y93b8mq9alzkvli6vfh3pzdcn5c5iy206ml23lzhhhvm5k162")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From 3abe72bdb4b5228efdc661ab4fb545376f1abb6e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 16 Jun 2017 08:48:37 +0200 Subject: [PATCH 119/186] gnu: texlive-bin: Export variable. This is needed by the texlive build system. * gnu/packages/tex.scm (texlive-bin): Export variable. --- gnu/packages/tex.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 90b1bcad72..71aa5c7f3a 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -80,7 +80,7 @@ (sha256 (base32 "1dv8vgfzpczqw82hv9g7a8djhhyzywljmrarlcyy6g2qi5q51glr")))) -(define texlive-bin +(define-public texlive-bin (package (name "texlive-bin") (version "2016") From ff932b7e635d5484cdd2d41a09b5792a25bbe200 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:46 +0000 Subject: [PATCH 120/186] gnu: Add ghc-wai-conduit. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-wai-conduit): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 0bafdf6f61..108fbfc1f6 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8295,4 +8295,29 @@ advanced user's otherwise working script to fail under future circumstances. @end enumerate") (license license:gpl3+))) +(define-public ghc-wai-conduit + (package + (name "ghc-wai-conduit") + (version "3.0.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "wai-conduit-" version "/" + "wai-conduit-" version ".tar.gz")) + (sha256 + (base32 + "1zvsiwjq2mvkb9sjgp3ly9m968m7a2jjzr4id6jpi3mmqykj15z4")))) + (build-system haskell-build-system) + (inputs + `(("ghc-conduit" ,ghc-conduit) + ("ghc-http-types" ,ghc-http-types) + ("ghc-wai" ,ghc-wai) + ("ghc-blaze-builder" ,ghc-blaze-builder))) + (home-page "https://github.com/yesodweb/wai") + (synopsis "Conduit wrappers for Haskell's WAI") + (description "This package provides data streaming abstraction for +Haskell's Web Application Interface (WAI).") + (license license:expat))) + ;;; haskell.scm ends here From d14e3435caa6e23ea1d03393dae1fc9f2cb5275d Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:47 +0000 Subject: [PATCH 121/186] gnu: Add ghc-http-date. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-http-date): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 108fbfc1f6..b52aa9f0f5 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8320,4 +8320,31 @@ advanced user's otherwise working script to fail under future circumstances. Haskell's Web Application Interface (WAI).") (license license:expat))) +(define-public ghc-http-date + (package + (name "ghc-http-date") + (version "0.0.6.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "http-date-" version "/" + "http-date-" version ".tar.gz")) + (sha256 + (base32 + "0dknh28kyarnzqrsc80ssalxjrq0qbv7ir49247p2grb7rh0dqgj")))) + (build-system haskell-build-system) + (inputs + `(("ghc-attoparsec" ,ghc-attoparsec))) + (native-inputs + `(("ghc-doctest" ,ghc-doctest) + ("ghc-hspec" ,ghc-hspec) + ("hspec-discover" ,hspec-discover) + ("ghc-old-locale" ,ghc-old-locale))) + (home-page "https://github.com/kazu-yamamoto/http-date") + (synopsis "HTTP Date parser/formatter") + (description "Library for Parsing and formatting HTTP +Date in Haskell.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 789dc5680f8a52af57e5f90174c9032d3af3fb51 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:48 +0000 Subject: [PATCH 122/186] gnu: Add ghc-simple-sendfile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-simple-sendfile): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index b52aa9f0f5..1d487386c1 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8347,4 +8347,32 @@ Haskell's Web Application Interface (WAI).") Date in Haskell.") (license license:bsd-3))) +(define-public ghc-simple-sendfile + (package + (name "ghc-simple-sendfile") + (version "0.2.25") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "simple-sendfile-" version "/" + "simple-sendfile-" version ".tar.gz")) + (sha256 + (base32 + "0k99j9xfcf83c55jmn202hdinhjaa4yn3dal4rvjk2w2rlhqirha")))) + (build-system haskell-build-system) + (inputs + `(("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-network" ,ghc-network) + ("ghc-resourcet" ,ghc-resourcet))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("hspec-discover" ,hspec-discover))) + (home-page "https://github.com/kazu-yamamoto/simple-sendfile") + (synopsis "Cross platform library for the sendfile system call") + (description "This library tries to call minimum system calls which +are the bottleneck of web servers.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 59b340a524b2617acc846bc1fa9f54919ccd5bb0 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:49 +0000 Subject: [PATCH 123/186] gnu: Add ghc-hex. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-hex): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 1d487386c1..73160e42c6 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8375,4 +8375,24 @@ Date in Haskell.") are the bottleneck of web servers.") (license license:bsd-3))) +(define-public ghc-hex + (package + (name "ghc-hex") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "hex-" version "/" + "hex-" version ".tar.gz")) + (sha256 + (base32 + "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj")))) + (build-system haskell-build-system) + (home-page "http://hackage.haskell.org/package/hex") + (synopsis "Convert strings into hexadecimal and back") + (description "This package provides conversion functions between +bytestrings and their hexademical representation.") + (license license:bsd-3))) + ;;; haskell.scm ends here From aba85f8c385e6c4c67bd786fcc253413ff186c1f Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:50 +0000 Subject: [PATCH 124/186] gnu: Add ghc-psqueues. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-psqueues): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 65 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 73160e42c6..26a3d9a183 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8395,4 +8395,69 @@ are the bottleneck of web servers.") bytestrings and their hexademical representation.") (license license:bsd-3))) +(define-public ghc-psqueues + (package + (name "ghc-psqueues") + (version "0.2.2.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "psqueues-" version "/" + "psqueues-" version ".tar.gz")) + (sha256 + (base32 + "1dd6xv1wjxj1xinx155b14hijw8fafrg4096srzdzj7xyqq7qxbd")))) + (build-system haskell-build-system) + (inputs + `(("ghc-hashable" ,ghc-hashable))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-tagged" ,ghc-tagged) + ("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://github.com/bttr/psqueues") + (synopsis "Pure priority search queues") + (description "The psqueues package provides +@uref{http://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in +three different flavors: + +@itemize +@item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide +fast insertion, deletion and lookup. This implementation is based on Ralf +Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple +Implementation Technique for Priority Search Queues}. + +Hence, it is similar to the @uref{http://hackage.haskell.org/package/PSQueue, +PSQueue} library, although it is considerably faster and provides a slightly +different API. + +@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. + +@item @code{HashPSQ k p v} is a fairly straightforward extension +of @code{IntPSQ}: it simply uses the keys' hashes as indices in the +@code{IntPSQ}. If there are any hash collisions, it uses an +@code{OrdPSQ} to resolve those. The performance of this implementation +is comparable to that of @code{IntPSQ}, but it is more widely +applicable since the keys are not restricted to @code{Int}, +but rather to any @code{Hashable} datatype. +@end itemize + +Each of the three implementations provides the same API, so they can +be used interchangeably. + +Typical applications of Priority Search Queues include: + +@itemize +@item Caches, and more specifically LRU Caches; +@item Schedulers; +@item Pathfinding algorithms, such as Dijkstra's and A*. +@end itemize") + (license license:bsd-3))) + ;;; haskell.scm ends here From 4031fb60ce8733b4508b05c77240ce169afd7b4c Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:51 +0000 Subject: [PATCH 125/186] gnu: Add ghc-glob. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-glob): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 26a3d9a183..9849f24857 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8460,4 +8460,34 @@ Typical applications of Priority Search Queues include: @end itemize") (license license:bsd-3))) +(define-public ghc-glob + (package + (name "ghc-glob") + (version "0.7.14") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "Glob-" version "/" + "Glob-" version ".tar.gz")) + (sha256 + (base32 + "0aw43izg8vlvjl40ms6k92w7gxg7n3l6smdvzla47fp82s4vhdr8")))) + (build-system haskell-build-system) + (inputs + `(("ghc-dlist" ,ghc-dlist) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-transformers-compat" ,ghc-transformers-compat))) + (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 "http://iki.fi/matti.niemenmaa/glob/") + (synopsis "Haskell library matching glob patterns against file paths") + (description "This package providesa Haskell library for globbing: +matching patterns against file paths.") + (license license:bsd-3))) + ;;; haskell.scm ends here From b202cc6ed593b4271c63f3eadaa4e113246add2c Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:52 +0000 Subject: [PATCH 126/186] gnu: Add ghc-http2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-http2): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9849f24857..c4498edc06 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8490,4 +8490,40 @@ Typical applications of Priority Search Queues include: matching patterns against file paths.") (license license:bsd-3))) +(define-public ghc-http2 + (package + (name "ghc-http2") + (version "1.6.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "http2-" version "/" + "http2-" version ".tar.gz")) + (sha256 + (base32 + "0hww0rfsv6lqx62qzycbcqy5q6rh9k09qkyjkdm5m1sp1z50wqk1")))) + (build-system haskell-build-system) + (inputs + `(("ghc-bytestring-builder" ,ghc-bytestring-builder) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-aeson" ,ghc-aeson) + ("ghc-aeson-pretty" ,ghc-aeson-pretty) + ("ghc-hex" ,ghc-hex) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-vector" ,ghc-vector) + ("ghc-word8" ,ghc-word8) + ("ghc-psqueues" ,ghc-psqueues) + ("ghc-stm" ,ghc-stm))) + (native-inputs + `(("ghc-glob" ,ghc-glob) + ("ghc-hspec" ,ghc-hspec) + ("ghc-doctest" ,ghc-doctest) + ("hspec-discover" ,hspec-discover))) + (home-page "https://github.com/kazu-yamamoto/http2") + (synopsis "HTTP/2 library including frames, priority queues and HPACK") + (description "This package provides a HTTP/2.0 library including frames +and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.") + (license license:bsd-3))) + ;;; haskell.scm ends here From a8e5513c2679df714909b99e1193bfd010220424 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:53 +0000 Subject: [PATCH 127/186] gnu: ghc-auto-update: Update to 0.1.4. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-auto-update): Update to 0.1.4. Signed-off-by: Ludovic Courtès --- 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 c4498edc06..63d5b0988d 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -4109,7 +4109,7 @@ available in later versions of base to a wider (older) range of compilers.") (define-public ghc-auto-update (package (name "ghc-auto-update") - (version "0.1.2.2") + (version "0.1.4") (source (origin (method url-fetch) @@ -4119,7 +4119,7 @@ available in later versions of base to a wider (older) range of compilers.") ".tar.gz")) (sha256 (base32 - "1ns4c5mqhnm7hsiqxf1ivjs5fflyq92b16ldzrcl0p85631h0c3v")))) + "09dlh2alsx2mw5kvj931yhbj0aw7jmly2cm9xbscm2sf098w35jy")))) (build-system haskell-build-system) (home-page "https://github.com/yesodweb/wai") (synopsis "Efficiently run periodic, on-demand actions") From 0ccb7346edac65b75e4f6b96f8bfaca236d24a44 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:54 +0000 Subject: [PATCH 128/186] gnu: ghc-wai: Update to 3.2.1.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-wai): Update to 3.2.1.1. Signed-off-by: Ludovic Courtès --- 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 63d5b0988d..40723fb55a 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5085,7 +5085,7 @@ essentially the opposite of pretty-printing.") (define-public ghc-wai (package (name "ghc-wai") - (version "3.0.4.0") + (version "3.2.1.1") (source (origin (method url-fetch) @@ -5095,7 +5095,7 @@ essentially the opposite of pretty-printing.") ".tar.gz")) (sha256 (base32 - "1551n0g0n22vml33v0jz5xgjcy6j79algvsdqg11a1z5ljjrjlqf")))) + "08afasnirja21vr0bmzcywz4w29x736dmdv7h8nnh1l8bn7sd02x")))) (build-system haskell-build-system) (inputs `(("ghc-bytestring-builder" ,ghc-bytestring-builder) From f6f0fee2cfea7bc512f30ecae8a6643071386c46 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:55 +0000 Subject: [PATCH 129/186] gnu: ghc-wai-extra: Update to 3.0.13.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-wai-extra): Update to 3.0.13.1. Signed-off-by: Ludovic Courtès --- 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 40723fb55a..f29ad828db 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5153,7 +5153,7 @@ communication between web applications and web servers.") (define-public ghc-wai-extra (package (name "ghc-wai-extra") - (version "3.0.11.1") + (version "3.0.13.1") (source (origin (method url-fetch) @@ -5163,7 +5163,7 @@ communication between web applications and web servers.") ".tar.gz")) (sha256 (base32 - "1kr2s5qyx1dvnwr372h7pca4sgxjv0pdx96xkgsfi180h3mb0vq8")))) + "0mh761a1bayr4ydwqmh3h8ndpi19zqw34mmy49lp2abr70r0nm1p")))) (build-system haskell-build-system) (inputs `(("ghc-ansi-terminal" ,ghc-ansi-terminal) From 49fad81827c4db6d0630e6e675887225cb496693 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:56 +0000 Subject: [PATCH 130/186] gnu: Add ghc-warp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-warp): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 52 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index f29ad828db..de90159ffe 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8526,4 +8526,56 @@ matching patterns against file paths.") and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.") (license license:bsd-3))) +(define-public ghc-warp + (package + (name "ghc-warp") + (version "3.2.11.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "warp-" version "/" "warp-" version + ".tar.gz")) + (sha256 + (base32 + "1zp5cy0bbj508vdvms1n5z80z37m253kwsqc5a83cfc990n6fgw5")))) + (build-system haskell-build-system) + (arguments + `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails. + (inputs + `(("ghc-async" ,ghc-async) + ("ghc-auto-update" ,ghc-auto-update) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-bytestring-builder" ,ghc-bytestring-builder) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-hashable" ,ghc-hashable) + ("ghc-http-types" ,ghc-http-types) + ("ghc-iproute" ,ghc-iproute) + ("ghc-network" ,ghc-network) + ("ghc-stm" ,ghc-stm) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-text" ,ghc-text) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-vault" ,ghc-vault) + ("ghc-wai" ,ghc-wai) + ("ghc-word8" ,ghc-word8) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-http-date" ,ghc-http-date) + ("ghc-simple-sendfile" ,ghc-simple-sendfile) + ("ghc-http2" ,ghc-http2))) + (native-inputs + `(("ghc-silently" ,ghc-silently) + ("ghc-hspec" ,ghc-hspec) + ("ghc-auto-update" ,ghc-auto-update) + ("ghc-doctest" ,ghc-doctest) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit) + ("ghc-http" ,ghc-http) + ("hspec-discover" ,hspec-discover))) + (home-page "http://github.com/yesodweb/wai") + (synopsis "HTTP server library for Haskell's WAI") + (description "Warp is a server library for HTTP/1.x and HTTP/2 +based WAI (Web Application Interface in Haskell).") + (license license:expat))) + ;;; haskell.scm ends here From 5465af922b5f5e017fa0cdedc1533c1bf94cab44 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:57 +0000 Subject: [PATCH 131/186] gnu: Add ghc-warp-tls. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-warp-tls): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index de90159ffe..40e418cfe0 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8578,4 +8578,32 @@ and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.") based WAI (Web Application Interface in Haskell).") (license license:expat))) +(define-public ghc-warp-tls + (package + (name "ghc-warp-tls") + (version "3.2.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "warp-tls-" version "/" + "warp-tls-" version ".tar.gz")) + (sha256 + (base32 + "14m2bzk5ivz9gdpxlcj6qnh46f2lycm1ybdjnfkj2876zrqwii7m")))) + (build-system haskell-build-system) + (inputs + `(("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-network" ,ghc-network) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-tls" ,ghc-tls) + ("ghc-wai" ,ghc-wai) + ("ghc-warp" ,ghc-warp))) + (home-page "http://github.com/yesodweb/wai") + (synopsis "SSL/TLS support for Warp") + (description "This package provides SSL/TLS support for Warp, +a WAI handler, via the native Haskell TLS implementation.") + (license license:expat))) + ;;; haskell.scm ends here From f0643afb1aed36728d58500794b7b06b4eac92c8 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:58 +0000 Subject: [PATCH 132/186] gnu: ghc-http-client: Update to 0.5.6.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-http-client): Update to 0.5.6.1. Signed-off-by: Ludovic Courtès --- 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 40e418cfe0..b85ad48923 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -5890,7 +5890,7 @@ described in @url{http://www.lua.org/}.") (define-public ghc-http-client (package (name "ghc-http-client") - (version "0.4.24") + (version "0.5.6.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -5898,7 +5898,7 @@ described in @url{http://www.lua.org/}.") version ".tar.gz")) (sha256 (base32 - "0xz133kdfiyy2rm6z95bmvjj6y2540xzd86cfmdv9s6kz4p1ir4k")))) + "1v9bdb8dkhb5g6jl9azk86ig7ia8xh9arr64n7s8r94fp0vl6c1c")))) (build-system haskell-build-system) ;; Tests require access to the web. (arguments `(#:tests? #f)) From 932653ff375f4e27dcad61658d4188c24df8b8c3 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:23:59 +0000 Subject: [PATCH 133/186] gnu: ghc-http-client-tls: Update to 0.3.4.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-http-client-tls): Update to 0.3.4.1. Signed-off-by: Ludovic Courtès --- 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 b85ad48923..a2d26afcc3 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -6371,7 +6371,7 @@ the choice of SSL/TLS, and SOCKS.") (define-public ghc-http-client-tls (package (name "ghc-http-client-tls") - (version "0.2.2") + (version "0.3.4.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" @@ -6379,7 +6379,7 @@ the choice of SSL/TLS, and SOCKS.") version ".tar.gz")) (sha256 (base32 - "0a01r05h5fxswyn6k6cgqgak4scqjan72hyy5wbdqzzhl4rmh7j5")))) + "1mbwdfn4hs8lcwml2l6xv4n068l9zlasyv6vwb2ylgm030pyv3xh")))) (build-system haskell-build-system) ;; Tests require Internet access (arguments `(#:tests? #f)) From 556f173904675a18cfd0dcbc9ed21c1c499e33bb Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 15 Jun 2017 01:24:00 +0000 Subject: [PATCH 134/186] gnu: Add ghc-http-conduit. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-http-conduit): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index a2d26afcc3..9d03e5600f 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -8606,4 +8606,64 @@ based WAI (Web Application Interface in Haskell).") a WAI handler, via the native Haskell TLS implementation.") (license license:expat))) +(define-public ghc-http-conduit + (package + (name "ghc-http-conduit") + (version "2.2.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "http-conduit-" version "/" "http-conduit-" + version ".tar.gz")) + (sha256 (base32 + "03na2nbm9la0shlijvjyb5mpp1prfskk4jmjy8iz707r0731dbjk")))) + (build-system haskell-build-system) + ;; FIXME: `httpLbs TLS` in test-suite `test` fails with + ;; ConnectionFailure getProtocolByName: does not exist (no such protocol + ;; name: tcp) + (arguments `(#:tests? #f)) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-http-types" ,ghc-http-types) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-client-tls" ,ghc-http-client-tls) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-mtl" ,ghc-mtl) + ("ghc-exceptions" ,ghc-exceptions))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-connection" ,ghc-connection) + ("ghc-warp-tls" ,ghc-warp-tls) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-text" ,ghc-text) + ("ghc-conduit" ,ghc-conduit) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-network" ,ghc-network) + ("ghc-wai" ,ghc-wai) + ("ghc-warp" ,ghc-warp) + ("ghc-wai-conduit" ,ghc-wai-conduit) + ("ghc-http-types" ,ghc-http-types) + ("ghc-http-client" ,ghc-http-client) + ("ghc-cookie" ,ghc-cookie) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-aeson" ,ghc-aeson) + ("ghc-temporary" ,ghc-temporary) + ("ghc-resourcet" ,ghc-resourcet))) + (home-page "https://hackage.haskell.org/package/http-conduit") + (synopsis "HTTP/HTTPS client with conduit interface") + (description "This library uses attoparsec for parsing the actual +contents of the HTTP connection. It also provides higher-level functions +which allow you to avoid direct usage of conduits.") + (license license:bsd-3))) + ;;; haskell.scm ends here From 0f4c37b9cf69c9149539202d736429fae8c29f1c Mon Sep 17 00:00:00 2001 From: ng0 Date: Fri, 16 Jun 2017 09:51:52 +0000 Subject: [PATCH 135/186] gnu: fish: Update to 2.6.0. * gnu/packages/shells.scm (fish): Update to 2.6.0. Signed-off-by: Danny Milosavljevic --- gnu/packages/shells.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 41d1758250..6b9125e77f 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 ;;; ;;; This file is part of GNU Guix. @@ -99,14 +99,14 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") (define-public fish (package (name "fish") - (version "2.5.0") + (version "2.6.0") (source (origin (method url-fetch) (uri (string-append "https://fishshell.com/files/" version "/fish-" version ".tar.gz")) (sha256 (base32 - "19djav128nkhjxgfhwhc32i5y9d9c3karbh5yg67kqrdranyvh7q")) + "1yzx73kg5ng5ivhi68756sl5hpb8869110l9fwim6gn7f7bbprby")) (modules '((guix build utils))) ;; Don't try to install /etc/fish/config.fish. (snippet From ebfb71d45615698040818a68b7dc34996ff4c046 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 15 Jun 2017 19:22:00 +0200 Subject: [PATCH 136/186] tests: Allow setting of qemu memory-size for system tests. * gnu/system/vm.scm (common-qemu-options): Remove hardcoded "-m 256". (system-qemu-image/shared-store-script): New keyword argument: #:memory-size. --- gnu/system/vm.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index ad5e6b75bb..392737d078 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -489,20 +489,21 @@ with '-virtfs' options for the host file systems listed in SHARED-FS." #$@(map virtfs-option shared-fs) "-vga std" (format #f "-drive file=~a,if=virtio,cache=writeback,werror=report,readonly" - #$image) - "-m 256")) + #$image))) (define* (system-qemu-image/shared-store-script os #:key (qemu qemu) (graphic? #t) + (memory-size 256) (mappings '()) full-boot? (disk-image-size (* (if full-boot? 500 70) (expt 2 20)))) "Return a derivation that builds a script to run a virtual machine image of -OS that shares its store with the host. +OS that shares its store with the host. The virtual machine runs with +MEMORY-SIZE MiB of memory. MAPPINGS is a list of specifying mapping of host file systems into the guest. @@ -531,7 +532,8 @@ it is mostly useful when FULL-BOOT? is true." (string-join #$kernel-arguments " ")))) #$@(common-qemu-options image (map file-system-mapping-source - (cons %store-mapping mappings))))) + (cons %store-mapping mappings))) + "-m " (number->string #$memory-size))) (define builder #~(call-with-output-file #$output From 25dee815d56cc1333a64fa4b69e19799508ee377 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 16 Jun 2017 08:12:30 -0400 Subject: [PATCH 137/186] Revert "gnu: gmime: Update to 3.0.1." This reverts commit a512ca81e8998d86770f5a088a9563bc3f24560f. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 8bcadd8516..02a4f26022 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -344,7 +344,7 @@ It adds a large amount of new and improved features to mutt."))) (define-public gmime (package (name "gmime") - (version "3.0.1") + (version "2.6.23") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gmime/" @@ -352,7 +352,7 @@ It adds a large amount of new and improved features to mutt."))) "/gmime-" version ".tar.xz")) (sha256 (base32 - "001y93b8mq9alzkvli6vfh3pzdcn5c5iy206ml23lzhhhvm5k162")))) + "0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From b000e0789f42644c882fee7148c72b688d27e579 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 12 Jun 2017 23:13:41 +0300 Subject: [PATCH 138/186] gnu: manaplus: Update to 1.7.6.10. * gnu/packages/games.scm (manaplus): Update to 1.7.6.10. --- 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 565fea8567..2c5294737f 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1569,7 +1569,7 @@ is programmed in Haskell.") (define-public manaplus (package (name "manaplus") - (version "1.7.5.14") + (version "1.7.6.10") (source (origin (method url-fetch) (uri (string-append @@ -1577,7 +1577,7 @@ is programmed in Haskell.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "1b5q79jkdrck5lq8lvhnpq2mly257r8lylp7b8sp8xn4365f86ch")))) + "0l7swvpzq20am4w2rsjpp6fsvbjv07il6wbfy45a7h9zsdihmqhl")))) (build-system gnu-build-system) (arguments '(#:configure-flags From f450d3c50c83a76b3eb8a04bf6ca3d861ae0969e Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 4 Jun 2017 13:53:28 +0100 Subject: [PATCH 139/186] gnu: Add emacs-inf-ruby. * gnu/packages/emacs.scm (emacs-inf-ruby): New variable. Signed-off-by: Alex Kost --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 8ff2d0ac9b..99b9b06011 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1740,6 +1740,29 @@ keep pressing the key until it selects what you want. There's also column by drawing a thin line down the length of the editing window.") (license license:gpl3+))) +(define-public emacs-inf-ruby + (package + (name "emacs-inf-ruby") + (version "2.5.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/nonsequitur/inf-ruby/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066")))) + (build-system emacs-build-system) + (home-page "https://github.com/nonsequitur/inf-ruby") + (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs") + (description + "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing +for easy interaction with a ruby subprocess. Features include support for +detecting specific uses of Ruby, e.g. when using rails, and using a +appropriate console.") + (license license:gpl3+))) + (define-public emacs-znc (package (name "emacs-znc") From a235ec3a6aa21980fe70e8d0c133e50986afbded Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 15 Jun 2017 10:23:18 +0000 Subject: [PATCH 140/186] mailmap: Adjust entries for ng0. Signed-off-by: Alex Kost --- .mailmap | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.mailmap b/.mailmap index 32c77307b8..618bc50114 100644 --- a/.mailmap +++ b/.mailmap @@ -42,14 +42,15 @@ 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 Pjotr Prins Pjotr Prins Pjotr Prins From 8cdbaebcbd34259793cdfb34b03f2f84db82a825 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 16 Jun 2017 10:02:22 -0400 Subject: [PATCH 141/186] gnu: gnome-online-accounts: Update to 3.24.1. * gnu/packages/gnome.scm (gnome-online-accounts): Update to 3.24.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 25d8580a80..1e26a1bfb9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4500,7 +4500,7 @@ window manager.") (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.24.0") + (version "3.24.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4508,7 +4508,7 @@ window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "0yy10znqj278lnhdiqjcqxrwwv5c1jdjd0ncjbbdyh8n0q77hbwy")))) + "0lgniqmkr6ffdw3kcqd34lvp969j2q2qzcy30zkzl5c09r7anc0a")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. From fa73c1937364872560c509f02b3d7648a5bed006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 30 May 2017 12:03:54 +0200 Subject: [PATCH 142/186] syscalls: Add 'scandir*'. * guix/build/syscalls.scm (%struct-dirent-header): New C struct. (string->pointer/utf-8, pointer->string/utf-8): New procedures. (opendir*, closedir*, readdir*, scandir*): New procedures. * tests/syscalls.scm ("scandir*, ENOENT") ("scandir*, ASCII file names", "scandir*, UTF-8 file names") ("scandir*, properties): New tests. --- guix/build/syscalls.scm | 124 ++++++++++++++++++++++++++++++++++++++++ tests/syscalls.scm | 60 +++++++++++++++++++ 2 files changed, 184 insertions(+) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 2def2a108f..624941253a 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -28,6 +28,7 @@ #:use-module (srfi srfi-9 gnu) #:use-module (srfi srfi-11) #:use-module (srfi srfi-19) + #:use-module (srfi srfi-26) #:use-module (ice-9 rdelim) #:use-module (ice-9 regex) #:use-module (ice-9 match) @@ -68,6 +69,7 @@ mkdtemp! fdatasync pivot-root + scandir* fcntl-flock set-thread-name @@ -817,6 +819,128 @@ system to PUT-OLD." (list new-root put-old (strerror err)) (list err))))))) + +;;; +;;; Opendir & co. +;;; + +(define-c-struct %struct-dirent-header + sizeof-dirent-header + (lambda (inode offset length type name) + ;; Convert TYPE to symbols like 'stat:type' does. + (let ((type (cond ((= type DT_REG) 'regular) + ((= type DT_LNK) 'symlink) + ((= type DT_DIR) 'directory) + ((= type DT_FIFO) 'fifo) + ((= type DT_CHR) 'char-special) + ((= type DT_BLK) 'block-special) + ((= type DT_SOCK) 'socket) + (else 'unknown)))) + `((type . ,type) + (inode . ,inode)))) + read-dirent-header + write-dirent-header! + (inode int64) + (offset int64) + (length unsigned-short) + (type uint8) + (name uint8)) ;first byte of 'd_name' + +;; Constants for the 'type' field, from . +(define DT_UNKNOWN 0) +(define DT_FIFO 1) +(define DT_CHR 2) +(define DT_DIR 4) +(define DT_BLK 6) +(define DT_REG 8) +(define DT_LNK 10) +(define DT_SOCK 12) +(define DT_WHT 14) + +(define string->pointer/utf-8 + (cut string->pointer <> "UTF-8")) + +(define pointer->string/utf-8 + (cut pointer->string <> <> "UTF-8")) + +(define opendir* + (let ((proc (syscall->procedure '* "opendir" '(*)))) + (lambda* (name #:optional (string->pointer string->pointer/utf-8)) + (let-values (((ptr err) + (proc (string->pointer name)))) + (if (null-pointer? ptr) + (throw 'system-error "opendir*" + "opendir*: ~A" + (list (strerror err)) + (list err)) + ptr))))) + +(define closedir* + (let ((proc (syscall->procedure int "closedir" '(*)))) + (lambda (directory) + (let-values (((ret err) + (proc directory))) + (unless (zero? ret) + (throw 'system-error "closedir" + "closedir: ~A" (list (strerror err)) + (list err))))))) + +(define readdir* + (let ((proc (syscall->procedure '* "readdir64" '(*)))) + (lambda* (directory #:optional (pointer->string pointer->string/utf-8)) + (let ((ptr (proc directory))) + (and (not (null-pointer? ptr)) + (cons (pointer->string + (make-pointer (+ (pointer-address ptr) + (c-struct-field-offset + %struct-dirent-header name))) + -1) + (read-dirent-header + (pointer->bytevector ptr sizeof-dirent-header)))))))) + +(define* (scandir* name #:optional + (select? (const #t)) + (entrypointer string->pointer/utf-8) + (pointer->string pointer->string/utf-8)) + "This procedure improves on Guile's 'scandir' procedure in several ways: + + 1. Systematically encode decode file names using STRING->POINTER and + POINTER->STRING (UTF-8 by default; this works around a defect in Guile 2.0/2.2 + where 'scandir' decodes file names according to the current locale, which is + not always desirable. + + 2. Each entry that is returned has the form (NAME . PROPERTIES). + PROPERTIES is an alist showing additional properties about the entry, as + found in 'struct dirent'. An entry may look like this: + + (\"foo.scm\" (type . regular) (inode . 123456)) + + Callers must be prepared to deal with the case where 'type' is 'unknown' + since some file systems do not provide that information. + + 3. Raise to 'system-error' when NAME cannot be opened." + (let ((directory (opendir* name string->pointer))) + (dynamic-wind + (const #t) + (lambda () + (let loop ((result '())) + (match (readdir* directory pointer->string) + (#f + (sort result entryprocedure int + (dynamic-func "creat" (dynamic-link)) + (list '* int)))) + (creat (string->pointer (string-append directory "/α") + "UTF-8") + #o644) + (creat (string->pointer (string-append directory "/λ") + "UTF-8") + #o644) + (let ((locale (setlocale LC_ALL))) + (dynamic-wind + (lambda () + ;; Make sure that even in a C locale we get the right result. + (setlocale LC_ALL "C")) + (lambda () + (match (scandir* directory) + (((names . properties) ...) + names))) + (lambda () + (setlocale LC_ALL locale)))))))) + +(test-assert "scandir*, properties" + (let ((directory (dirname (search-path %load-path "guix/base32.scm")))) + (every (lambda (entry name) + (match entry + ((name2 . properties) + (and (string=? name2 name) + (let* ((full (string-append directory "/" name)) + (stat (lstat full)) + (inode (assoc-ref properties 'inode)) + (type (assoc-ref properties 'type))) + (and (= inode (stat:ino stat)) + (or (eq? type 'unknown) + (eq? type (stat:type stat))))))))) + (scandir* directory) + (scandir directory (const #t) string Date: Fri, 16 Jun 2017 12:07:26 +0200 Subject: [PATCH 143/186] discovery: Rewrite 'scheme-files' using 'scandir*'. On a command like: guix environment --ad-hoc coreutils -- true this reduces the number of 'stat' calls from 14.1K to 9.7K on my setup (previously each getdents(2) call would be followed by one stat(2) call per entry). * guix/discovery.scm (scheme-files): Rewrite using 'scandir*'. --- guix/discovery.scm | 50 +++++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/guix/discovery.scm b/guix/discovery.scm index 319ba7c872..6cf8d6d566 100644 --- a/guix/discovery.scm +++ b/guix/discovery.scm @@ -19,6 +19,7 @@ (define-module (guix discovery) #:use-module (guix ui) #:use-module (guix combinators) + #:use-module (guix build syscalls) #:use-module (srfi srfi-1) #:use-module (ice-9 match) #:use-module (ice-9 vlist) @@ -38,28 +39,35 @@ (define* (scheme-files directory) "Return the list of Scheme files found under DIRECTORY, recursively. The returned list is sorted in alphabetical order." + (define (entry-type name properties) + (match (assoc-ref properties 'type) + ('unknown + (stat:type (lstat name))) + ((? symbol? type) + type))) - ;; Sort entries so that 'fold-packages' works in a deterministic fashion - ;; regardless of details of the underlying file system. - (sort (file-system-fold (const #t) ;enter? - (lambda (path stat result) ;leaf - (if (string-suffix? ".scm" path) - (cons path result) - result)) - (lambda (path stat result) ;down - result) - (lambda (path stat result) ;up - result) - (const #f) ;skip - (lambda (path stat errno result) - (unless (= ENOENT errno) - (warning (G_ "cannot access `~a': ~a~%") - path (strerror errno))) - result) - '() - directory - stat) - stringmodule-name (let ((not-slash (char-set-complement (char-set #\/)))) From f4453df9a5742ef47cad79254b33bfaa1ff15d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 16 Jun 2017 14:23:51 +0200 Subject: [PATCH 144/186] store: Add an RPC counter. * guix/store.scm (%rpc-calls): New variable. (show-rpc-profile, record-operation): New procedures. (operation): Add call to 'record-operation'. * guix/ui.scm (run-guix-command): Wrap COMMAND-MAIN in 'dynamic-wind'. Run EXIT-HOOK. --- guix/store.scm | 32 ++++++++++++++++++++++++++++++++ guix/ui.scm | 9 ++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/guix/store.scm b/guix/store.scm index ed588aae47..2acab6b1a3 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -718,6 +718,37 @@ encoding conversion errors." (let loop ((done? (process-stderr server))) (or done? (process-stderr server))))) +(define %rpc-calls + ;; Mapping from RPC names (symbols) to invocation counts. + (make-hash-table)) + +(define* (show-rpc-profile #:optional (port (current-error-port))) + "Write to PORT a summary of the RPCs that have been made." + (let ((profile (sort (hash-fold alist-cons '() %rpc-calls) + (lambda (rpc1 rpc2) + (< (cdr rpc1) (cdr rpc2)))))) + (format port "Remote procedure call summary: ~a RPCs~%" + (match profile + (((names . counts) ...) + (reduce + 0 counts)))) + (for-each (match-lambda + ((rpc . count) + (format port " ~30a ... ~5@a~%" rpc count))) + profile))) + +(define record-operation + ;; Optionally, increment the number of calls of the given RPC. + (let ((profiled (or (and=> (getenv "GUIX_PROFILING") string-tokenize) + '()))) + (if (member "rpc" profiled) + (begin + (add-hook! exit-hook show-rpc-profile) + (lambda (name) + (let ((count (or (hashq-ref %rpc-calls name) 0))) + (hashq-set! %rpc-calls name (+ count 1))))) + (lambda (_) + #t)))) + (define-syntax operation (syntax-rules () "Define a client-side RPC stub for the given operation." @@ -725,6 +756,7 @@ encoding conversion errors." (lambda (server arg ...) docstring (let ((s (nix-server-socket server))) + (record-operation 'name) (write-int (operation-id name) s) (write-arg type arg s) ... diff --git a/guix/ui.scm b/guix/ui.scm index 56fcc00300..889c9d0228 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1318,7 +1318,14 @@ found." (parameterize ((program-name command)) ;; Disable canonicalization so we don't don't stat unreasonably. (with-fluids ((%file-port-name-canonicalization #f)) - (apply command-main args))))) + (dynamic-wind + (const #f) + (lambda () + (apply command-main args)) + (lambda () + ;; Abuse 'exit-hook' (which is normally meant to be used by the + ;; REPL) to run things like profiling hooks upon completion. + (run-hook exit-hook))))))) (define (run-guix . args) "Run the 'guix' command defined by command line ARGS. From 99dd2af99eb0e6201ce062ca17d34977063f89ec Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Tue, 13 Jun 2017 16:47:07 -0400 Subject: [PATCH 145/186] gnu: grilo: Update to 0.3.3. * gnu/packages/gnome.scm (grilo): Update to 0.3.3. --- 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 1e26a1bfb9..44b5c20b31 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3325,7 +3325,7 @@ as possible!") (define-public grilo (package (name "grilo") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) @@ -3334,7 +3334,7 @@ as possible!") name "-" version ".tar.xz")) (sha256 (base32 - "0nvzr2gfk2mpzf99442zawv0n5yjcyy50rqkrvdsibknbm56hvzj")))) + "1qx072m0gl6m3d5g5cbbf13p4h217icmlxjnrn829x5xqwi451sw")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal From 6d7273a04d4fb4e9d15b811024e137c8332d4a5e Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Tue, 13 Jun 2017 16:47:08 -0400 Subject: [PATCH 146/186] gnu: grilo: Add liboauth support. * gnu/packages/gnome.scm (grilo)[inputs]: Add liboauth and cyrus-sasl. --- gnu/packages/gnome.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 44b5c20b31..70a2c8357e 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3342,10 +3342,11 @@ as possible!") ("pkg-config" ,pkg-config) ("gobject-introspection" ,gobject-introspection))) (inputs - `(("glib" ,glib) + `(("cyrus-sasl" ,cyrus-sasl) + ("glib" ,glib) ("gtk+" ,gtk+) ("libxml2" ,libxml2) - ;; XXX TODO: Add oauth + ("liboauth" ,liboauth) ("libsoup" ,libsoup) ("nettle" ,nettle) ("totem-pl-parser" ,totem-pl-parser))) From 2e3297f46d20504ca780e52fc3033474338dd948 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 16 Jun 2017 17:02:08 +0200 Subject: [PATCH 147/186] gnu: ansible: Update to 2.3.1.0. * gnu/packages/admin.scm (ansible): Update to 2.3.1.0. --- 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 4ec401da2a..824e0d399d 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1359,14 +1359,14 @@ of supported upstream metrics systems simultaneously.") (define-public ansible (package (name "ansible") - (version "2.3.0.0") + (version "2.3.1.0") (source (origin (method url-fetch) (uri (pypi-uri "ansible" version)) (sha256 (base32 - "0n54h8g6a6hcp41sasvjqa4yz1pwd8mshbwlcghj0sjnrl3kk7r9")))) + "1xdr82fy8gahxh3586wm5k1bxksys7yl1f2n24shrk8gf99qyjyd")))) (build-system python-build-system) (native-inputs `(("python2-pycrypto" ,python2-pycrypto) From 6103eb3d039f2160744c65a21e0f62ed84e2a68f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 16 Jun 2017 17:03:04 +0200 Subject: [PATCH 148/186] gnu: thefuck: Update to 3.18. * gnu/packages/admin.scm (thefuck): Update to 3.18. --- 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 824e0d399d..35679495fd 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1701,7 +1701,7 @@ throughput (in the same interval).") (define-public thefuck (package (name "thefuck") - (version "3.16") + (version "3.18") (source (origin (method url-fetch) (uri (string-append "https://github.com/nvbn/thefuck/archive/" @@ -1709,7 +1709,7 @@ throughput (in the same interval).") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0jrhfxmj2asx4jdix9ks3fpl364ph8w9prhwpk4488aj1a0q4rak")) + "1xsvkqh89rgxq5w03mnlcfkn9y39nfwhb2pjabjspcc2mi2mq5y6")) (patches (search-patches "thefuck-test-environ.patch")))) (build-system python-build-system) (arguments From 22c7b81b11cb6663d597e35ec186aa00bbfa4f79 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 16 Jun 2017 17:05:14 +0200 Subject: [PATCH 149/186] gnu: par2cmdline: Update to 0.7.2. * gnu/packages/backup.scm (par2cmdline): Update to 0.7.2. --- gnu/packages/backup.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 035ef8c32c..74e49e46db 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -118,7 +118,7 @@ spying and/or modification by the server.") (define-public par2cmdline (package (name "par2cmdline") - (version "0.7.1") + (version "0.7.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/Parchive/par2cmdline/archive/v" @@ -126,7 +126,7 @@ spying and/or modification by the server.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0b2m90jmxm37zpvwcmhshdznnh3l5g5ahdx459a9ckgsxy77jkl9")))) + "0rsrca7903g08zrifv4102gkxrhmzvgwd1sb6vw9pa00qhzsfkzs")))) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf))) From 0b2ff24f9c3e3f689095753a21047c723dd6ca40 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 16 Jun 2017 17:06:21 +0200 Subject: [PATCH 150/186] gnu: borg: Update to 1.1.0b5. * gnu/packages/backup.scm (borg): Update to 1.1.0b5. --- gnu/packages/backup.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 74e49e46db..2918797c3b 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -457,13 +457,13 @@ detection, and lossless compression.") (define-public borg (package (name "borg") - (version "1.0.10") + (version "1.1.0b5") (source (origin (method url-fetch) (uri (pypi-uri "borgbackup" version)) (sha256 (base32 - "1sarmpzwr8dhbg0hsvaclcsjfax36ssb32d9klhhah4j8kqji3wp")) + "0f660wy9454z80dmvjgrsnwq4v41y5nm22x9vvzb1fyy9jg1idkk")) (modules '((guix build utils))) (snippet '(for-each From 956cbd3ad8aa5dfd0c276b210b4688ac0d0d5ffa Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 16 Jun 2017 17:07:27 +0200 Subject: [PATCH 151/186] gnu: cppcheck: Update to 1.79. * gnu/packages/check.scm (cppcheck): Update to 1.79. --- gnu/packages/check.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index ea91200a65..4b59ac567d 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -181,13 +181,13 @@ format.") (define-public cppcheck (package (name "cppcheck") - (version "1.78") + (version "1.79") (source (origin (method url-fetch) (uri (string-append "https://github.com/danmar/cppcheck/archive/" version ".tar.gz")) (sha256 - (base32 "1dnizw0rfj6faqgnmg8qh6njr9q89j8brhba7qmx2i47vl0qj11i")) + (base32 "1qf7l0hx2k2qsc1rm3gh00bc0hwf9wqkrvrk08141yjj2js2y8lw")) (file-name (string-append name "-" version ".tar.gz")))) (build-system cmake-build-system) (home-page "http://cppcheck.sourceforge.net") From 677eb3318fce21440f6509e75df054525218fdaa Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 16 Jun 2017 17:09:21 +0200 Subject: [PATCH 152/186] gnu: tiled: Update to 1.0.1. * gnu/packages/game-development.scm (tiled): Update to 1.0.1. --- gnu/packages/game-development.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 89db6427b0..18ce2ae4a4 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -296,7 +296,7 @@ support.") (define-public tiled (package (name "tiled") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/bjorn/tiled/archive/v" @@ -304,7 +304,7 @@ support.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0g6ld9znydbdzy4x9h532gf1fg5bnz1mmrpvw4jg2a4lxkrz3rd5")))) + "1y75jmpcf2lv8s3g9v3ghnrwvs2fc4ni7nx74csaylg1g04cwlq7")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) From 340502ba8014c78c01c3119eeb78fff254208fec Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 16 Jun 2017 17:09:52 +0200 Subject: [PATCH 153/186] gnu: leptonica: Update to 1.74.4. * gnu/packages/image.scm (leptonica): Update to 1.74.4. --- 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 b94c006b15..cce03eeeae 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -447,7 +447,7 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.") (define-public leptonica (package (name "leptonica") - (version "1.74.0") + (version "1.74.4") (source (origin (method url-fetch) @@ -456,7 +456,7 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.") ".tar.gz")) (file-name (string-append "leptonica-" version ".tar.gz")) (sha256 - (base32 "0i2a4vx9gizki0wgmv03xjz8j9d8agkvbag1a8m4kcw4asd4p87g")))) + (base32 "10pw7pwccd0m0fc9rlrr2m41s7j1qvba2wcrav17pw1gclkf34i0")))) (build-system gnu-build-system) (native-inputs `(("gnuplot" ,gnuplot) ;needed for test suite From 8231c539382bfb734afb186130a0f9e2dde0822c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 16 Jun 2017 17:10:25 +0200 Subject: [PATCH 154/186] gnu: ola: Update to 0.10.4. * gnu/packages/lightning.scm (ola): Update to 0.10.4. --- gnu/packages/lighting.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lighting.scm b/gnu/packages/lighting.scm index 5f816dc54b..7f01cdbc99 100644 --- a/gnu/packages/lighting.scm +++ b/gnu/packages/lighting.scm @@ -36,7 +36,7 @@ (define-public ola (package (name "ola") - (version "0.10.3") + (version "0.10.4") (source (origin (method url-fetch) (uri (string-append @@ -45,7 +45,7 @@ (patches (search-patches "ola-readdir-r.patch")) (sha256 (base32 - "1yf1yy9n64n73zjq2bwc0gik0dd3n05297hdrrma2qvb0imzm5h1")))) + "01zpm0vpin784jyjhbdad097a4i0cjdfrqqfbsvx47d6nbssq2my")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) From 2f0c4b82843ab41793b675267ede13c169399f86 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 16 Jun 2017 09:55:00 +0200 Subject: [PATCH 155/186] doc: Explain how to use the GCC toolchain. * doc/guix.texi (Application Setup): Add subsection "The GCC toolchain". --- doc/guix.texi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 97fa1b7864..cb5821e698 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1441,6 +1441,30 @@ some reason, you want to avoid auto-loading Emacs packages installed with Guix, you can do so by running Emacs with @code{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual}). +@subsection The GCC toolchain + +@cindex GCC +@cindex ld-wrapper + +Guix offers individual compiler packages such as @code{gcc} but if you +are in need of a complete toolchain for compiling and linking source +code what you really want is the @code{gcc-toolchain} package. This +package provides a complete GCC toolchain for C/C++ development, +including GCC itself, the GNU C Library (headers and binaries, plus +debugging symbols in the @code{debug} output), Binutils, and a linker +wrapper. + +@cindex attempt to use impure library, error message + +The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches +passed to the linker, add corresponding @code{-rpath} arguments, and +invoke the actual linker with this new set of arguments. By default, +the linker wrapper refuses to link to libraries outside the store to +ensure ``purity''. This can be annoying when using the toolchain to +link with local libraries. To allow references to libraries outside the +store you need to define the environment variable +@code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES}. + @c TODO What else? @c ********************************************************************* From d68ec019eb714b624a66d48940751c9c5982f248 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 16 Jun 2017 18:25:58 +0200 Subject: [PATCH 156/186] Revert "gnu: borg: Update to 1.1.0b5." This reverts commit 0b2ff24f9c3e3f689095753a21047c723dd6ca40, which leaked my local testing version. --- gnu/packages/backup.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 2918797c3b..74e49e46db 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -457,13 +457,13 @@ detection, and lossless compression.") (define-public borg (package (name "borg") - (version "1.1.0b5") + (version "1.0.10") (source (origin (method url-fetch) (uri (pypi-uri "borgbackup" version)) (sha256 (base32 - "0f660wy9454z80dmvjgrsnwq4v41y5nm22x9vvzb1fyy9jg1idkk")) + "1sarmpzwr8dhbg0hsvaclcsjfax36ssb32d9klhhah4j8kqji3wp")) (modules '((guix build utils))) (snippet '(for-each From a93f14eaf4b93a5f379188f246dda26c1aed620e Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Fri, 16 Jun 2017 14:13:11 -0400 Subject: [PATCH 157/186] gnu: gnome-calendar: Update to 3.24.3. * gnu/packages/gnome.scm (gnome-calendar): Update to 3.24.3. --- 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 70a2c8357e..af1e00a10e 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5599,7 +5599,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.") (define-public gnome-calendar (package (name "gnome-calendar") - (version "3.24.2") + (version "3.24.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5607,7 +5607,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.") name "-" version ".tar.xz")) (sha256 (base32 - "0lc0xdgn0y12i87775xyy0p3a5l82w9k49cmwl1my8r8pwf9lp6s")))) + "1v7k1wcl5yg9bd4l0rz0z03h32d35zgfp4qzz21widjcyis41jry")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) From 5227d53a592a50d95b96d92a588f49e346ef0d04 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 16 Jun 2017 15:39:30 -0400 Subject: [PATCH 158/186] gnu: linux-libre@4.1: Update to 4.1.41. * gnu/packages/linux.scm (linux-libre-4.1): Update to 4.1.41. [source]: Remove patch. --- gnu/packages/linux.scm | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index cf37afe682..1f8b7c3ad9 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -380,20 +380,10 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.1 - (make-linux-libre "4.1.40" - "0ygc5qaxwd4yxyzyq6qya9w111q24xqzxd33x73pmg3hr7asvy4x" + (make-linux-libre "4.1.41" + "02mqfl899jxvrmxlh8lvcgvm3klwd8wbsdz4rr2gpchbggj4vgb2" %intel-compatible-systems - #:configuration-file kernel-config - #:patches - (list %boot-logo-patch - (origin - (method url-fetch) - (uri "\ -https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=5edabca9d4cff7f1f2b68f0bac55ef99d9798ba4") - (file-name "linux-libre-CVE-2017-6074.patch") - (sha256 - (base32 - "1x40slfz1qxgiaznyy13bwlh34450pkyyrkljpyjlx6c4mrzb1jj")))))) + #:configuration-file kernel-config)) (define-public linux-libre-arm-generic (make-linux-libre %linux-libre-version From 0002be1d0b767078efc114ecbc241185575c9b97 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 17 Jun 2017 13:05:08 +1000 Subject: [PATCH 159/186] gnu: diamond: Update to 0.9.8. * gnu/packages/bioinformatics.scm (diamond): Update to 0.9.8. --- 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 9247f037d7..b9d641ec34 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2095,7 +2095,7 @@ identify enrichments with functional annotations of the genome.") (define-public diamond (package (name "diamond") - (version "0.9.6") + (version "0.9.8") (source (origin (method url-fetch) (uri (string-append @@ -2104,7 +2104,7 @@ identify enrichments with functional annotations of the genome.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1y8a10b695pvgn7kk2s87jdwbdf7iszpnr6139pw8ina1ajs4w8y")))) + "04f501vj3i95i2b4n60831k00ljalifrq33419bbz0y3sjlmcnj3")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no "check" target From 2bada0b300bc8ffc8e86b2e8c71af1438651d5d9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 16 Jun 2017 23:53:58 -0400 Subject: [PATCH 160/186] gnu: mpd: Update to 0.20.9. * gnu/packages/mpd.scm (mpd): Update to 0.20.9. --- gnu/packages/mpd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 1ed8e967ef..11ca2d1979 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -75,7 +75,7 @@ interfacing MPD in the C, C++ & Objective C languages.") (define-public mpd (package (name "mpd") - (version "0.20.6") + (version "0.20.9") (source (origin (method url-fetch) (uri @@ -84,7 +84,7 @@ interfacing MPD in the C, C++ & Objective C languages.") "/mpd-" version ".tar.xz")) (sha256 (base32 - "0isbpa79m7zf09w3s1ry638cw96rxasy1ch66zl01k75i48mw1gl")))) + "1dsfwd0i81x8m9idi7idm9612mpf1g5lzcy69h04nd9jks3a4xyd")))) (build-system gnu-build-system) (arguments `(#:phases From 42b48db2e2a6015113c2707f0ddd7ea59ca5a67d Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 17 Jun 2017 13:45:17 +1000 Subject: [PATCH 161/186] gnu: ruby-builder: Update to 3.2.3. * gnu/packages/ruby.scm (ruby-builder): Update to 3.2.3. --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 6691095e55..7680f4eae0 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -466,13 +466,13 @@ specified in a \"Gemfile\", as well as their dependencies.") (define-public ruby-builder (package (name "ruby-builder") - (version "3.2.2") + (version "3.2.3") (source (origin (method url-fetch) (uri (rubygems-uri "builder" version)) (sha256 (base32 - "14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2")))) + "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1")))) (build-system ruby-build-system) (arguments `(#:phases From c8f54f5346ef32c56cd2190ec0aff1b07ff13973 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 17 Jun 2017 01:05:02 -0400 Subject: [PATCH 162/186] doc: Clarify comment about QEMU qcow2 file sizes. * doc/guix.texi (Installing GuixSD in a Virtual Machine): Clarify comment about QEMU's qcow2 virtualized block device file format. --- doc/guix.texi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index cb5821e698..db0e2fbd78 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7799,7 +7799,8 @@ qcow2-formatted disk image, use the @command{qemu-img} command: qemu-img create -f qcow2 guixsd.img 5G @end example -This will create a 5GB file. +The resulting file will be much smaller than 5GB, but it will grow as +the virtualized storage device is filled up. @item Boot the USB installation image in an VM: From d1d739fab0f44408438720c20877d62a280484ae Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Wed, 14 Jun 2017 03:13:54 -0700 Subject: [PATCH 163/186] gnu: Add gnome-planner. * gnu/packages/gnome.scm (gnome-planner): New variable. Signed-off-by: Marius Bakke --- gnu/packages/gnome.scm | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index af1e00a10e..9377159e93 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Hartmut Goebel ;;; Copyright © 2017 nee +;;; Copyright © 2017 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,6 +67,7 @@ #:use-module (gnu packages databases) #:use-module (gnu packages djvu) #:use-module (gnu packages dns) + #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages docbook) #:use-module (gnu packages enchant) @@ -6271,3 +6273,48 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).") application. It provides a GObject API, spell-checking to text entries and text views, and buttons to choose the language.") (license license:gpl2+))) + +(define-public gnome-planner + (package + (name "gnome-planner") + (version "0.14.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/planner/" + (version-major+minor version) "/planner-" + version ".tar.xz")) + (sha256 + (base32 + "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k")))) + (build-system glib-or-gtk-build-system) + (arguments + ;; Disable the Python bindings because the Planner program functions + ;; without them, and (as of 2017-06-13) we have not packaged all of + ;; packages that are necessary for building the Python bindings. + `(#:configure-flags (list "--disable-python"))) + (inputs + `(("libgnomecanvas" ,libgnomecanvas) + ("libgnomeui" ,libgnomeui) + ("libglade" ,libglade) + ("gnome-vfs" ,gnome-vfs) + ("gconf" ,gconf) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("gtk+" ,gtk+) + ("glib" ,glib))) + (native-inputs + `(("intltool" ,intltool) + ("scrollkeeper" ,scrollkeeper) + ("pkg-config" ,pkg-config))) + (home-page "https://wiki.gnome.org/Apps/Planner") + (synopsis "Project management software for the GNOME desktop") + (description + "GNOME Planner is a project management tool based on the Work Breakdown +Structure (WBS). Its goal is to enable you to easily plan projects. Based on +the resources, tasks, and constraints that you define, Planner generates +various views into a project. For example, Planner can show a Gantt chart of +the project. It can show a detailed summary of tasks including their +duration, cost, and current progress. It can also show a report of resource +utilization that highlights under-utilized and over-utilized resources. These +views can be printed as PDF or PostScript files, or exported to HTML.") + (license license:gpl2))) From 9b1343192e6e78f8b4627368b0f7000f62808f61 Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 15 Jun 2017 14:44:14 +0000 Subject: [PATCH 164/186] gnu: neomutt: Update to 20170609. * gnu/packages/mail.scm (neomutt): Update to 20170609. (arguments)[configure-flags]: Remove 'enable-smtp', 'enable-imap', 'enable-pop', 'enable-nntp' and 'enable-compressed' as they are now enabled by default. Signed-off-by: Marius Bakke --- gnu/packages/mail.scm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 02a4f26022..f4003d7391 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2016 Lukas Gradl ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 Troy Sankey -;;; Copyright © 2016, 2017 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Clément Lassieur ;;; Copyright © 2016, 2017 Arun Isaac ;;; Copyright © 2016 John Darrington @@ -265,7 +265,7 @@ operating systems.") (package (inherit mutt) (name "neomutt") - (version "20170602") + (version "20170609") (source (origin (method url-fetch) @@ -273,7 +273,7 @@ operating systems.") "/archive/" name "-" version ".tar.gz")) (sha256 (base32 - "1kzhkz8bdqbdh5b6pzqb6ikp8d3nsic906b5pkmi6qlaga32yxjk")))) + "1kdhnhdlv84v6brhqgh8g0h6cpcbwfc59b4g09zkkgqc4fnggapy")))) (inputs `(("cyrus-sasl" ,cyrus-sasl) ("gdbm" ,gdbm) @@ -296,10 +296,7 @@ operating systems.") ("pkg-config" ,pkg-config))) (arguments `(#:configure-flags - (list "--enable-smtp" - "--enable-imap" - "--enable-pop" - "--enable-gpgme" + (list "--enable-gpgme" ;; database, implies header caching "--without-tokyocabinet" @@ -325,8 +322,6 @@ operating systems.") "--with-mailpath=/var/mail" "--with-external-dotlock" - "--enable-nntp" - "--enable-compressed" (string-append "--with-curses=" (assoc-ref %build-inputs "ncurses"))) From 9d59023e6a86779d67c7438d2771800520d7c5fa Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 17 Jun 2017 15:05:03 +0200 Subject: [PATCH 165/186] gnu: kyotocabinet: Disable CPU optimizations. * gnu/packages/databases.scm (kyotocabinet)<#:configure-flags>: Add "--disable-opt". --- gnu/packages/databases.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 2197814ad9..9691f1a1f3 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1218,6 +1218,7 @@ sets, bitmaps and hyperloglogs.") (arguments `(#:configure-flags (list + "--disable-opt" ;"-march=native". XXX this also turns off -O0. (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")))) (inputs `(("zlib" ,zlib))) From 4b926cb6c88f8ecc10e927b0c33e6fc0e1d24d77 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 17 Jun 2017 15:43:46 +0200 Subject: [PATCH 166/186] gnu: gnome-planner: Correct license. This is a followup to d1d739fab0f44408438720c20877d62a280484ae. * gnu/packages/gnome.scm (gnome-planner)[license]: Change GPL2 to GPL2+. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9377159e93..43b7e0ac47 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6317,4 +6317,4 @@ the project. It can show a detailed summary of tasks including their duration, cost, and current progress. It can also show a report of resource utilization that highlights under-utilized and over-utilized resources. These views can be printed as PDF or PostScript files, or exported to HTML.") - (license license:gpl2))) + (license license:gpl2+))) From 40b784b4c7c1750b17f4c5a801f784e4d69b1647 Mon Sep 17 00:00:00 2001 From: Muriithi Frederick Muriuki Date: Thu, 15 Jun 2017 19:05:26 +0300 Subject: [PATCH 167/186] gnu: Add python2-httpretty. * gnu/packages/web.scm (python2-httpretty): New variable. Signed-off-by: Marius Bakke --- gnu/packages/web.scm | 49 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 5f27ef957d..17583b3c80 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4614,3 +4614,52 @@ allocations, it does not buffer data, it can be interrupted at anytime. Depending on your architecture, it only requires about 40 bytes of data per message stream (in a web server that is per connection).") (license l:expat))) + +(define-public python2-httpretty + (package + (name "python2-httpretty") + (version "0.8.14") + (source + (origin + (method url-fetch) + (uri (pypi-uri "httpretty" version)) + (sha256 + (base32 + "0vlp5qkyw3pxwwsg7xmdcfh1csvypvaz4m6abida8s4xmjxpdhc3")))) + (build-system python-build-system) + (native-inputs + `(("python-sphinx-rtd-theme" ,python2-sphinx-rtd-theme) + ("python-sphinx" ,python2-sphinx) + ("python-coverage" ,python2-coverage) + ("python-tornado" ,python2-tornado) + ("python-urllib3" ,python2-urllib3) + ("python-sure" ,python2-sure) + ("python-steadymark" ,python2-steadymark) + ("python-requests" ,python2-requests) + ("python-rednose" ,python2-rednose) + ("python-nose-randomly" ,python2-nose-randomly) + ("python-misaka" ,python2-misaka) + ("python-pytest-httpbin" ,python2-pytest-httpbin) + ("python-nose" ,python2-nose))) + (arguments + `(#:tests? #f + ;; Requires mock>=1.3.0 which requires a more up-to-date + ;; python-pbr. After updating these trying to build the + ;; package leads to failures in python-flake8 and other + ;; packages. The cascade of updates and failures this + ;; leads to, seems to not be worth having the test run. + #:python ,python-2 + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-test-requirements + (lambda* (#:key inputs #:allow-other-keys) + ;; Update requirements from dependecy==version + ;; to dependency>=version + (substitute* "development.txt" + (("==") ">=")) + #t))))) + (home-page "http://github.com/gabrielfalcao/httpretty") + (synopsis "HTTP client mock for Python") + (description "@code{httpretty} is a helper for faking web requests, +inspired by Ruby's @code{fakeweb}.") + (license l:expat))) From c226f06c5960069a343a6de663a07b5d75027ca6 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 16 Jun 2017 11:17:13 +0530 Subject: [PATCH 168/186] gnu: font-tex-gyre: Use 'font-build-system'. * gnu/packages/fonts.scm (font-tex-gyre): Switch to font-build-system. [source]: Use url-fetch/zipbomb. --- gnu/packages/fonts.scm | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 59e60dc292..50021aad1d 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -555,28 +555,13 @@ fonts.") (version "2.005") (source (origin - (method url-fetch) + (method url-fetch/zipbomb) (uri (string-append "http://www.gust.org.pl/projects/e-foundry/" "tex-gyre/whole/tg-" version "otf.zip")) (sha256 (base32 "0kph9l3g7jb2bpmxdbdg5zl56wacmnvdvsdn7is1gc750sqvsn31")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - - (let ((unzip (string-append (assoc-ref %build-inputs "unzip") - "/bin/unzip")) - (font-dir (string-append %output "/share/fonts/opentype"))) - (mkdir-p font-dir) - (system* unzip - (assoc-ref %build-inputs "source") - "-d" font-dir))))) - (native-inputs - `(("unzip" ,unzip))) + (build-system font-build-system) (home-page "http://www.gust.org.pl/projects/e-foundry/tex-gyre/") (synopsis "Remake of Ghostscript fonts") (description "The TeX Gyre collection of fonts is the result of an From bbb1a1d2cfc41d0e6df2e86f225ef53fe3b4d128 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 16 Jun 2017 11:22:05 +0530 Subject: [PATCH 169/186] gnu: font-anonymous-pro: Use 'font-build-system'. * gnu/packages/fonts.scm (font-anonymous-pro): Switch to font-build-system. --- gnu/packages/fonts.scm | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 50021aad1d..199f6e45a8 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -583,28 +583,7 @@ Heros, Pagella, Schola, Termes.") (sha256 (base32 "1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let ((unzip (string-append (assoc-ref %build-inputs "unzip") - "/bin/unzip")) - (font-dir (string-append %output "/share/fonts/truetype")) - (doc-dir (string-append %output "/share/doc/" ,name))) - (system* unzip (assoc-ref %build-inputs "source")) - (mkdir-p font-dir) - (mkdir-p doc-dir) - (chdir (string-append "AnonymousPro-" ,version ".001")) - (for-each (lambda (ttf) - (install-file ttf font-dir)) - (find-files "." "\\.ttf$")) - (for-each (lambda (doc) - (install-file doc doc-dir)) - (find-files "." "\\.txt$")))))) - (native-inputs - `(("unzip" ,unzip))) + (build-system font-build-system) (home-page "http://www.marksimonson.com/fonts/view/anonymous-pro") (synopsis "Fixed-width fonts designed with coding in mind") (description "Anonymous Pro is a family of four fixed-width fonts designed From 9713b31efd138171b4f3d5dd089984f1485ce920 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 16 Jun 2017 11:27:11 +0530 Subject: [PATCH 170/186] gnu: font-google-roboto: Use 'font-build-system'. * gnu/packages/fonts.scm (font-google-roboto): Switch to font-build-system. --- gnu/packages/fonts.scm | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 199f6e45a8..9669397679 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -704,27 +704,7 @@ display all Unicode symbols.") (sha256 (base32 "0spscx08fad7i8qs7icns96iwcapniq8lwwqqvbf7bamvs8qfln4")))) - (native-inputs `(("unzip" ,unzip))) - (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) - (chdir "roboto-hinted") - (for-each (lambda (ttf) - (install-file ttf font-dir)) - (find-files "." "\\.ttf$")))))) + (build-system font-build-system) (home-page "https://github.com/google/roboto") (synopsis "The Roboto family of fonts") (description From 6084d9b42065ecd5477dcbdcb5db483647bc1935 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 16 Jun 2017 11:48:02 +0530 Subject: [PATCH 171/186] gnu: font-un: Use 'font-build-system'. * gnu/packages/fonts.scm (font-un): Switch to font-build-system. --- gnu/packages/fonts.scm | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 9669397679..3a79244835 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -726,33 +726,7 @@ visual language \"Material Design\".") (sha256 (base32 "13liaz2pmww3aqabm55la5npd08m1skh334ky7qfidxaz5s742iv")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - - (let ((tar (string-append (assoc-ref %build-inputs "tar") - "/bin/tar")) - (PATH (string-append (assoc-ref %build-inputs "gzip") - "/bin")) - (font-dir (string-append %output "/share/fonts/truetype")) - (doc-dir (string-append %output "/share/doc/" ,name))) - (setenv "PATH" PATH) - (system* tar "xvf" (assoc-ref %build-inputs "source")) - (mkdir-p font-dir) - (mkdir-p doc-dir) - (chdir (string-append "un-fonts")) - (for-each (lambda (ttf) - (install-file ttf font-dir)) - (find-files "." "\\.ttf$")) - (for-each (lambda (doc) - (install-file doc doc-dir)) - '("COPYING" "README")))))) - (native-inputs - `(("tar" ,tar) - ("gzip" ,gzip))) + (build-system font-build-system) (home-page "https://kldp.net/projects/unfonts/") (synopsis "Collection of Korean fonts") (description From 8069f889eefb6225c997dc90945bbb2ed4227bba Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 16 Jun 2017 11:49:21 +0530 Subject: [PATCH 172/186] gnu: font-hack: Use 'font-build-system'. * gnu/packages/fonts.scm (font-hack): Switch to font-build-system. [source]: Use url-fetch/zipbomb. --- gnu/packages/fonts.scm | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 3a79244835..01b6ef00d8 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -794,7 +794,7 @@ glyph designs, not just an added slant.") (name "font-hack") (version "2.020") (source (origin - (method url-fetch) + (method url-fetch/zipbomb) (uri (string-append "https://github.com/chrissimpkins/Hack/releases/download/v" version "/Hack-v" @@ -803,28 +803,7 @@ glyph designs, not just an added slant.") (sha256 (base32 "16kkmc3psckw1b7k07ccn1gi5ymhlg9djh43nqjzg065g6p6d184")))) - (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 - `(("source" ,source) - ("unzip" ,unzip))) + (build-system font-build-system) (home-page "https://sourcefoundry.org/hack/") (synopsis "Typeface designed for source code") (description From 3a722dde065e8e548d1898d78db18c9592f36272 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 16 Jun 2017 11:50:11 +0530 Subject: [PATCH 173/186] gnu: font-fira-mono: Use 'font-build-system'. * gnu/packages/fonts.scm (font-awesome): Switch to font-build-system. --- gnu/packages/fonts.scm | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 01b6ef00d8..d7c65e1592 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -871,23 +871,7 @@ designed to work well in user interface environments.") (sha256 (base32 "1z65x0dw5dq6rs6p9wyfrir50rlh95vgzsxr8jcd40nqazw4jhpi")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let ((unzip (string-append (assoc-ref %build-inputs "unzip") - "/bin/unzip")) - (font-dir (string-append %output "/share/fonts/opentype"))) - (mkdir-p font-dir) - (system* unzip - "-j" - (assoc-ref %build-inputs "source") - "*.otf" - "-d" font-dir))))) - (native-inputs - `(("unzip" ,unzip))) + (build-system font-build-system) (home-page "http://mozilla.github.io/Fira/") (synopsis "Mozilla's monospace font") (description "This is the typeface used by Mozilla in Firefox OS.") From b41704cd6d0653612bc94ecdba385aa8ff67b0c3 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 16 Jun 2017 11:50:47 +0530 Subject: [PATCH 174/186] gnu: font-adobe-source-code-pro: Use 'font-build-system'. * gnu/packages/fonts.scm (font-adobe-source-code-pro): Switch to font-build-system. --- gnu/packages/fonts.scm | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index d7c65e1592..4d61f0fccf 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -830,26 +830,7 @@ Powerline support.") (sha256 (base32 "0arhhsf3i7ss39ykn73d1j8k4n8vx7115xph6jwkd970p1cxvr54")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let ((tar (string-append (assoc-ref %build-inputs "tar") - "/bin/tar")) - (PATH (string-append (assoc-ref %build-inputs "gzip") - "/bin")) - (font-dir (string-append %output "/share/fonts/opentype"))) - (setenv "PATH" PATH) - (mkdir-p font-dir) - (zero? (system* tar "-C" font-dir "--strip-components=2" - "-xvf" (assoc-ref %build-inputs "source") - (string-append "source-code-pro-" - ,version "/OTF"))))))) - (native-inputs - `(("gzip" ,gzip) - ("tar" ,tar))) + (build-system font-build-system) (home-page "https://github.com/adobe-fonts/source-code-pro") (synopsis "Monospaced font family for user interface and coding environments") From 7ea498e5cd55c056492a778203414ce977350142 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 16 Jun 2017 23:21:56 +0200 Subject: [PATCH 175/186] gnu: Add python-apache-libcloud. * gnu/packages/python.scm (python-apache-libcloud, python2-apache-libcloud): New variables. --- gnu/packages/python.scm | 59 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 352a5f3334..92413aa458 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -98,6 +98,7 @@ #:use-module (gnu packages readline) #:use-module (gnu packages sdl) #:use-module (gnu packages shells) + #:use-module (gnu packages ssh) #:use-module (gnu packages statistics) #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) @@ -15324,3 +15325,61 @@ validating Swagger API specifications.") (define-public python2-swagger-spec-validator (package-with-python2 python-swagger-spec-validator)) + +(define-public python-apache-libcloud + (package + (name "python-apache-libcloud") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "apache-libcloud" version)) + (sha256 + (base32 + "1a71z02ckcxld72k4qgmdnkjan52c4wczncs3p2mp5yafh7dsan7")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-ssh + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "libcloud/compute/ssh.py" + (("'ssh'") (string-append "'" (assoc-ref inputs "openssh") + "/bin/ssh" "'"))) + #t)) + (add-after 'unpack 'patch-tests + (lambda _ + (substitute* "./libcloud/test/test_file_fixtures.py" + ;; See . + (("def _ascii") "def _raw_data(self, method, url, body, headers): + return (httplib.OK, + \"1234abcd\", + {\"test\": \"value\"}, + httplib.responses[httplib.OK]) + def _ascii")) + (substitute* "libcloud/test/compute/test_ssh_client.py" + (("class ShellOutSSHClientTests") + "@unittest.skip(\"Guix container doesn't have ssh service\") +class ShellOutSSHClientTests") + ;; See . + (("'.xf0.x90.x8d.x88'") "b'\\xF0\\x90\\x8D\\x88'") + (("'.xF0', '.x90', '.x8D', '.x88'") + "b'\\xF0', b'\\x90', b'\\x8D', b'\\x88'")) + #t))))) + (inputs + `(("openssh" ,openssh))) + (propagated-inputs + `(("python-paramiko" ,python-paramiko) + ("python-requests" ,python-requests))) + (native-inputs + `(("python-lockfile" ,python-lockfile) + ("python-mock" ,python-mock) + ("python-requests-mock" ,python-requests-mock))) + (home-page "https://libcloud.apache.org/") + (synopsis "Unified Cloud API") + (description "@code{libcloud} is a Python library for interacting with +many of the popular cloud service providers using a unified API.") + (license license:asl2.0))) + +(define-public python2-apache-libcloud + (package-with-python2 python-apache-libcloud)) From 26bbdabdaa33791aadeb7bae17c8ba1bc06f4806 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Sat, 17 Jun 2017 20:53:22 +0200 Subject: [PATCH 176/186] gnu: r-devtools: Update to 1.13.2. * gnu/packages/statistics.scm (r-devtools): Update to 1.13.2. --- 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 ae44bfb01f..91b91beae1 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2294,13 +2294,13 @@ informative error messages when it's not available.") (define-public r-devtools (package (name "r-devtools") - (version "1.12.0") + (version "1.13.2") (source (origin (method url-fetch) (uri (cran-uri "devtools" version)) (sha256 (base32 - "16l18szmj482vf3dvl2fqwwa4zaqylmic1pk7dwh428cp0d86mzi")))) + "08ajsr12wd31lsx3jv5l9mq4063dc5fpr9lcnzra6kl59vi5pa7v")))) (build-system r-build-system) (propagated-inputs `(("r-curl" ,r-curl) From 6c8b802f9c8ef3beb41d468eec8d2a2948efdb9c Mon Sep 17 00:00:00 2001 From: Stefan Reichoer Date: Fri, 16 Jun 2017 21:30:24 +0200 Subject: [PATCH 177/186] gnu: Add tmuxifier. * gnu/packages/tmux.scm (tmuxifier): New variable. Signed-off-by: Thomas Danckaert --- gnu/packages/tmux.scm | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm index 5b92df88ae..0ffc3b9980 100644 --- a/gnu/packages/tmux.scm +++ b/gnu/packages/tmux.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Matthew Jordan ;;; Copyright © 2017 Vasile Dumitrascu +;;; Copyright © 2017 Stefan Reichör ;;; ;;; This file is part of GNU Guix. ;;; @@ -89,3 +90,48 @@ continue running in the background, then later reattached.") (description "A collection of various themes for Tmux.") (license (non-copyleft "http://www.wtfpl.net/txt/copying/"))))) + +(define-public tmuxifier + (package + (name "tmuxifier") + (version "0.13.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/jimeh/tmuxifier/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1j9fj6zg0j3sdn7svpybzsqh7876rv81zi437976kj7hxnyjkcz7")))) + (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")) + (bindir (string-append out "/bin")) + (share (string-append out "/share/" ,name))) + (install-file "bin/tmuxifier" bindir) + (substitute* (string-append bindir "/tmuxifier") + (("set -e") + (string-append "TMUXIFIER=" share "\nset -e"))) + (for-each (lambda (init-script) + (install-file init-script (string-append + share "/init"))) + '("init.sh" "init.tcsh" "init.fish")) + (for-each (lambda (dir) + (copy-recursively dir (string-append + share "/" dir))) + '("completion" "lib" "libexec" + "templates")))))))) + (home-page "https://github.com/jimeh/tmuxifier") + (synopsis "Powerful session, window & pane management for Tmux") + (description "Tmuxifier allows you to easily create, edit, and load +@code{layout} files, which are simple shell scripts where you use the tmux +command and helper commands provided by tmuxifier to manage Tmux sessions and +windows.") + (license expat))) From 01049bb0c1f3f69afb8d1782f99ca5c0adaed946 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 17 Jun 2017 01:13:13 -0400 Subject: [PATCH 178/186] doc: Suggest a QEMU image size large enough for the system examples. * doc/guix.texi (Installing GuixSD in a Virtual Machine): Increase suggested image size from 5 GB to 50 GB. --- doc/guix.texi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index db0e2fbd78..4933a98ddb 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7796,11 +7796,11 @@ Create a disk image that will hold the installed system. To make a qcow2-formatted disk image, use the @command{qemu-img} command: @example -qemu-img create -f qcow2 guixsd.img 5G +qemu-img create -f qcow2 guixsd.img 50G @end example -The resulting file will be much smaller than 5GB, but it will grow as -the virtualized storage device is filled up. +The resulting file will be much smaller than 50 GB (typically less than +1 MB), but it will grow as the virtualized storage device is filled up. @item Boot the USB installation image in an VM: From 3bacc655c5fd988f0199ef259adcb4fb3754042e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 18 Jun 2017 00:01:03 +0200 Subject: [PATCH 179/186] syscalls: 'opendir*' error message shows the file name. * guix/build/syscalls.scm (opendir*): Add NAME to the 'system-error' message. --- guix/build/syscalls.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 624941253a..9c082b4352 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -870,8 +870,7 @@ system to PUT-OLD." (proc (string->pointer name)))) (if (null-pointer? ptr) (throw 'system-error "opendir*" - "opendir*: ~A" - (list (strerror err)) + "~A: ~A" (list name (strerror err)) (list err)) ptr))))) From d46c4423f46278bd2f96770ceb0667431414349e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 18 Jun 2017 00:02:56 +0200 Subject: [PATCH 180/186] discovery: 'scheme-files' returns '() for a non-accessible directory. Fixes a regression introduced in d27cc3bfaafe6b5b0831e88afb1c46311d382a0b. Reported by Ricardo Wurmus . * guix/discovery.scm (scheme-files): Catch 'scandir*' system errors. Return '() and optionally raise a warning upon 'system-error'. * tests/discovery.scm ("scheme-modules, non-existent directory"): New test. --- guix/discovery.scm | 13 +++++++++++-- tests/discovery.scm | 4 ++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/guix/discovery.scm b/guix/discovery.scm index 6cf8d6d566..292df2bd9c 100644 --- a/guix/discovery.scm +++ b/guix/discovery.scm @@ -38,7 +38,8 @@ (define* (scheme-files directory) "Return the list of Scheme files found under DIRECTORY, recursively. The -returned list is sorted in alphabetical order." +returned list is sorted in alphabetical order. Return the empty list if +DIRECTORY is not accessible." (define (entry-type name properties) (match (assoc-ref properties 'type) ('unknown @@ -67,7 +68,15 @@ returned list is sorted in alphabetical order." (else result)))))) '() - (scandir* directory))) + (catch 'system-error + (lambda () + (scandir* directory)) + (lambda args + (let ((errno (system-error-errno args))) + (unless (= errno ENOENT) + (warning (G_ "cannot access `~a': ~a~%") + directory (strerror errno))) + '()))))) (define file-name->module-name (let ((not-slash (char-set-complement (char-set #\/)))) diff --git a/tests/discovery.scm b/tests/discovery.scm index b838731e16..04de83f085 100644 --- a/tests/discovery.scm +++ b/tests/discovery.scm @@ -32,6 +32,10 @@ ((('guix 'import _ ...) ..1) #t))) +(test-equal "scheme-modules, non-existent directory" + '() + (scheme-modules "/does/not/exist")) + (test-assert "all-modules" (match (map module-name (all-modules `((,%top-srcdir . "guix/build-system")))) From b3d8153d395864e00dddaf81accb91845050c265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 18 Jun 2017 00:12:28 +0200 Subject: [PATCH 181/186] import: pypi: Adjust URIs in tests. This is a followup to d1e7ca2df8c0e0dd601079c77f67ba6828cec08a. * tests/pypi.scm ("pypi->guix-package") ("pypi->guix-package, wheels"): Expect (pypi-uri "foo" version) for the 'uri' field. --- tests/pypi.scm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/pypi.scm b/tests/pypi.scm index 28cc115a9d..74f13e9662 100644 --- a/tests/pypi.scm +++ b/tests/pypi.scm @@ -131,8 +131,7 @@ baz > 13.37") ('version "1.0.0") ('source ('origin ('method 'url-fetch) - ('uri (string-append "https://example.com/foo-" - version ".tar.gz")) + ('uri ('pypi-uri "foo" 'version)) ('sha256 ('base32 (? string? hash))))) @@ -194,8 +193,7 @@ baz > 13.37") ('version "1.0.0") ('source ('origin ('method 'url-fetch) - ('uri (string-append "https://example.com/foo-" - version ".tar.gz")) + ('uri ('pypi-uri "foo" 'version)) ('sha256 ('base32 (? string? hash))))) From e07bc1ff74460775fec0a73c30ae91a46c6c0ea4 Mon Sep 17 00:00:00 2001 From: ng0 Date: Sat, 17 Jun 2017 13:49:34 +0000 Subject: [PATCH 182/186] gnu: gnurl: Update to 7.54.1. * gnu/packages/gnunet.scm (gnurl): Update to 7.54.1. Signed-off-by: Leo Famulari --- gnu/packages/gnunet.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 540f626625..56db405bc8 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. ;;; @@ -176,14 +176,14 @@ and support for SSL3 and TLS.") (define-public gnurl (package (name "gnurl") - (version "7.54.0") + (version "7.54.1") (source (origin (method url-fetch) (uri (string-append "https://gnunet.org/sites/default/files/" name "-" version ".tar.bz2")) (sha256 (base32 - "1ww346cdsxln6iq158a4wm38bmicg5wspd2c83gnqf1glx22hza0")))) + "0szbj352h95sgc9kbx9wzkgjksmg3g5k6cvlc7hz3wrbdh5gb0a4")))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 1.5 MiB of man3 pages From b2b800f1ff4b62a4e26498181cfcbe59021fb301 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 18 Jun 2017 00:50:03 -0400 Subject: [PATCH 183/186] gnu: linux-libre@4.4: Update to 4.4.73. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.73. --- 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 1f8b7c3ad9..c7ce39fe51 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -374,8 +374,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.72" - "1xb2hyyw1db1viahi3fxwvch17lgn2yx3qcghrb20hys19pxz0f4" + (make-linux-libre "4.4.73" + "144ssqw1dr86z4cgl797pq5rggfibsxqk7wmfbl6j92l1cj6yjrz" %intel-compatible-systems #:configuration-file kernel-config)) From d406f8ca192897350959f273abd8fe94b3197780 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 18 Jun 2017 00:50:53 -0400 Subject: [PATCH 184/186] gnu: linux-libre@4.9: Update to 4.9.33. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.33. --- 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 c7ce39fe51..ed79a7c44b 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -368,8 +368,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.32" - "0xvpbnl9lshhfg56rsdzqqq7kjkrj26jpdfh9w8mm1ap42nbbjph" + (make-linux-libre "4.9.33" + "1dam6vqymhlx1vsl0lzxphamiifgyf97snxg18b2czqq402nz094" %intel-compatible-systems #:configuration-file kernel-config)) From 3d9b8b407bb55d2b90ed59799699532a0f41a34d Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 18 Jun 2017 00:51:46 -0400 Subject: [PATCH 185/186] gnu: linux-libre: Update to 4.11.6. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.11.6. (%linux-libre-hash): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index ed79a7c44b..7d3b4bb239 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -358,8 +358,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-libre-version "4.11.5") -(define %linux-libre-hash "0rpd0cvbwxa3h1jdx6vgbfs2shyymmc45kw837ksz7q5b0chqn4h") +(define %linux-libre-version "4.11.6") +(define %linux-libre-hash "0xay0m2a4la8aqc8ai8zqfh1c1i6sjgh0dywm7nis0g1gqirwrds") (define-public linux-libre (make-linux-libre %linux-libre-version From 96fd87c96bd6987a967575aaa931c5a7b1c84e21 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 18 Jun 2017 02:08:00 -0400 Subject: [PATCH 186/186] gnu: expat: Replace with 2.2.1 [fixes CVE-2017-9233, CVE-2016-9063]. * gnu/packages/xml.scm (expat)[replacement]: New field. (expat-2.2.1): New variable. --- gnu/packages/xml.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 9635413b8f..a6bea3588f 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus -;;; Copyright © 2015, 2016 Mark H Weaver +;;; Copyright © 2015, 2016, 2017 Mark H Weaver ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2015 Raimon Grau ;;; Copyright © 2016 Mathieu Lirzin @@ -56,6 +56,7 @@ (package (name "expat") (version "2.2.0") + (replacement expat-2.2.1) (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/expat/expat/" @@ -74,6 +75,19 @@ stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags).") (license license:expat))) +(define expat-2.2.1 ; Fixes CVE-2017-9233, CVE-2016-9063 and other issues. + (package + (inherit expat) + (version "2.2.1") + (replacement #f) + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/expat/expat/" + version "/expat-" version ".tar.bz2")) + (sha256 + (base32 + "11c8jy1wvllvlk7xdc5cm8hdhg0hvs8j0aqy6s702an8wkdcls0q")))))) + (define-public libxml2 (package (name "libxml2")