From 5f3d46ce670824bce69425864a8ab99b2e59e9e4 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 17 Jun 2017 20:37:01 +0200 Subject: [PATCH 001/145] gnu: rustc: Enable tests. * gnu/packages/rust.scm (rustc)[source]: Remove bundled llvm. [native-inputs]: Add bison, flex, procps. [inputs]: Update llvm to llvm-3.9.1. [arguments]: Patch and enable tests. --- gnu/packages/rust.scm | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 1217ec71ff..652686e06e 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -21,13 +21,16 @@ (define-module (gnu packages rust) #:use-module (gnu packages base) + #:use-module (gnu packages bison) #:use-module (gnu packages bootstrap) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages elf) + #:use-module (gnu packages flex) #:use-module (gnu packages gcc) #:use-module (gnu packages jemalloc) + #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -205,22 +208,27 @@ rustc-bootstrap and cargo-bootstrap packages.") "rustc-" version "-src.tar.gz")) (sha256 (base32 - "1d78jq7mc34n265by68amr9r4nzbiqrilfbwh7gx56ydn4gb6rpr")))) + "1d78jq7mc34n265by68amr9r4nzbiqrilfbwh7gx56ydn4gb6rpr")) + (modules '((guix build utils))) + (snippet + `(begin + (delete-file-recursively "src/llvm") + #t)))) (build-system gnu-build-system) (native-inputs - `(("cmake" ,cmake) + `(("bison" ,bison) ; For the tests + ("cmake" ,cmake) + ("flex" ,flex) ; For the tests ("git" ,git) + ("procps" ,procps) ; For the tests ("python-2" ,python-2) ("rust-bootstrap" ,rust-bootstrap) ("which" ,which))) (inputs `(("jemalloc" ,jemalloc) - ("llvm" ,llvm))) + ("llvm" ,llvm-3.9.1))) (arguments - ;; FIXME: Test failure with llvm 3.8; Update llvm. - ;; https://github.com/rust-lang/rust/issues/36835 - `(#:tests? #f - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'patch-configure (lambda _ @@ -254,7 +262,18 @@ rustc-bootstrap and cargo-bootstrap packages.") (substitute* "src/tools/tidy/src/main.rs" (("^.*cargo.*::check.*$") "")) (substitute* "src/libstd/process.rs" - (("\"/bin/sh\"") (string-append "\"" bash "/bin/sh\""))) + ;; The newline is intentional. + ;; There's a line length "tidy" check in Rust which would + ;; fail otherwise. + (("\"/bin/sh\"") (string-append " +\"" bash "/bin/sh\""))) + ;; See . + (substitute* "src/libstd/sys/unix/process/process_common.rs" + (("fn test_process_mask") "#[cfg_attr(target_os = \"linux\", ignore)] +fn test_process_mask")) + ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH. + ;; See . + (delete-file-recursively "src/test/run-make/linker-output-non-utf8") #t))) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) From 53321ad3881fec8618ce85f65987dd95d0fa3d76 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 20 Jun 2017 08:51:58 +0200 Subject: [PATCH 002/145] gnu: giac-xcas: Update to 1.2.3-51. * gnu/packages/algebra.scm (giac-xcas): Update to 1.2.3-51. --- gnu/packages/algebra.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index a3016fe7b3..04ddea7b04 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -206,7 +206,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") (define-public giac-xcas (package (name "giac-xcas") - (version "1.2.3-37") + (version "1.2.3-51") (source (origin (method url-fetch) ;; "~parisse/giac" is not used because the maintainer regularly @@ -218,7 +218,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") "source/giac_" version ".tar.gz")) (sha256 (base32 - "180146rm8fxlbd6x25x81yscf6q8qjpzr35k203r25c2xkcb7h2x")))) + "1w7d4sdjbvqiibnfkhrqy9np3smsysilfba9pry3q1qn5g5y6nrp")))) (build-system gnu-build-system) (arguments `(#:phases From 2e701cd3841d4449b3963d4337c543be99ed7bcc Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 20 Jun 2017 03:38:35 -0400 Subject: [PATCH 003/145] gnu: linux-libre-arm-generic: Add mitigation for CVE-2017-1000364. This is a followup to commit 91c623aae0f10992aa46957b9072679534e4cd28. * gnu/packages/linux.scm (linux-libre-arm-generic): Add patch to mitigate CVE-2017-1000364. --- gnu/packages/linux.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 3ec423422b..03cf8ed2a4 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -420,7 +420,17 @@ https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch %linux-libre-hash '("armhf-linux") #:defconfig "multi_v7_defconfig" - #:extra-version "arm-generic")) + #:extra-version "arm-generic" + #:patches + (list %boot-logo-patch + (origin + (method url-fetch) + (uri "\ +https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=167ec8235f978d7af78c73e9490dae1af3fee67f") + (file-name "linux-libre-4.11-CVE-2017-1000364.patch") + (sha256 + (base32 + "0hv3lxjgpssvsldkydg5q7znnzxv5ncpzrk6g11q01k3gkl0q689")))))) ;;; From 148585c240f848ad08f6541ede7db3fca3411007 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 13 Jun 2017 00:10:01 +0530 Subject: [PATCH 004/145] gnu: Move contents of zip module into compression module. * gnu/packages/zip.scm (zip, unzip, zziplib, perl-zip): Move to... * gnu/packages/compression.scm: ...here. * gnu/packages/zip.scm: Delete file. * gnu/local.mk (GNU_SYSTEM_MODULES): Unregister deleted file. * po/packages/POTFILES.in: Unregister deleted file. * gnu/packages/{audio, avr, bioinformatics, busybox, cdrom, ci, compression, docbook, documentation, fonts, fpga, game-development, games, gl, gnome, gnuzilla, graphics, guile, haskell, image, java, kodi, ldc, libreoffice, markup, maths, mc, monitoring, music, php, pretty-print, python, scheme, smalltalk, statistics, synergy, tex, textutils, video, web-browsers, xml, zip}.scm, guix/build-system/{ant, font}.scm, guix/{download, packages}.scm: Adapt module import. --- gnu/local.mk | 1 - gnu/packages/audio.scm | 1 - gnu/packages/avr.scm | 4 +- gnu/packages/bioinformatics.scm | 1 - gnu/packages/busybox.scm | 4 +- gnu/packages/cdrom.scm | 1 - gnu/packages/ci.scm | 1 - gnu/packages/compression.scm | 156 ++++++++++++++++++++++++- gnu/packages/docbook.scm | 3 +- gnu/packages/documentation.scm | 3 +- gnu/packages/fonts.scm | 3 +- gnu/packages/fpga.scm | 2 +- gnu/packages/game-development.scm | 1 - gnu/packages/games.scm | 1 - gnu/packages/gl.scm | 1 - gnu/packages/gnome.scm | 1 - gnu/packages/gnuzilla.scm | 1 - gnu/packages/graphics.scm | 3 +- gnu/packages/guile.scm | 2 +- gnu/packages/haskell.scm | 1 - gnu/packages/image.scm | 1 - gnu/packages/java.scm | 1 - gnu/packages/kodi.scm | 3 +- gnu/packages/ldc.scm | 3 +- gnu/packages/libreoffice.scm | 3 +- gnu/packages/markup.scm | 4 +- gnu/packages/maths.scm | 1 - gnu/packages/mc.scm | 2 +- gnu/packages/monitoring.scm | 3 +- gnu/packages/music.scm | 1 - gnu/packages/php.scm | 1 - gnu/packages/pretty-print.scm | 2 +- gnu/packages/python.scm | 1 - gnu/packages/scheme.scm | 1 - gnu/packages/smalltalk.scm | 4 +- gnu/packages/statistics.scm | 1 - gnu/packages/synergy.scm | 2 +- gnu/packages/tex.scm | 1 - gnu/packages/textutils.scm | 4 +- gnu/packages/video.scm | 3 +- gnu/packages/web-browsers.scm | 1 - gnu/packages/xml.scm | 1 - gnu/packages/zip.scm | 183 ------------------------------ guix/build-system/ant.scm | 2 +- guix/build-system/font.scm | 2 +- guix/download.scm | 2 +- guix/packages.scm | 2 +- po/packages/POTFILES.in | 1 - 48 files changed, 183 insertions(+), 244 deletions(-) delete mode 100644 gnu/packages/zip.scm diff --git a/gnu/local.mk b/gnu/local.mk index ae4a59af0b..f0eed694de 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -416,7 +416,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/xorg.scm \ %D%/packages/xfce.scm \ %D%/packages/zile.scm \ - %D%/packages/zip.scm \ \ %D%/services.scm \ %D%/services/admin.scm \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index dc668ce131..3e4b998b1b 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -79,7 +79,6 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module (srfi srfi-1)) (define-public alsa-modular-synth diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index 916f7983fa..aaa0428041 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -27,11 +27,11 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (gnu packages) + #:use-module (gnu packages compression) #:use-module (gnu packages cross-base) #:use-module (gnu packages flashing-tools) #:use-module (gnu packages gcc) - #:use-module (gnu packages vim) - #:use-module (gnu packages zip)) + #:use-module (gnu packages vim)) (define-public avr-binutils (package diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index b9d641ec34..7f66861ead 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -96,7 +96,6 @@ #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26)) diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 988154eed4..096e26ca01 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -24,8 +24,8 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages admin) - #:use-module (gnu packages perl) - #:use-module (gnu packages zip)) + #:use-module (gnu packages compression) + #:use-module (gnu packages perl)) (define-public busybox (package diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 15329b3109..704e8ad36d 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -37,7 +37,6 @@ #:use-module (gnu packages audio) #:use-module (gnu packages bison) #:use-module (gnu packages compression) - #:use-module (gnu packages zip) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages gettext) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index c26d02f175..e2cb712bf1 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -39,7 +39,6 @@ #:use-module (gnu packages version-control) #:use-module (gnu packages web) #:use-module (gnu packages xml) - #:use-module (gnu packages zip) #:use-module (guix build-system gnu)) (define-public hydra diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 3742ff5865..2667ebb977 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -54,7 +54,6 @@ #:use-module (gnu packages python) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) - #:use-module (gnu packages zip) #:use-module (ice-9 match) #:use-module ((srfi srfi-1) #:select (last))) @@ -1337,3 +1336,158 @@ as is the decompression of data compressed in this manner. Data compressed by other implementations will only be decompressed by two threads: one performing the actual decompression, the other input and output.") (license (package-license zstd)))) + +(define-public zip + (package + (name "zip") + (version "3.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/infozip" + "/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz")) + (sha256 + (base32 + "0sb3h3067pzf3a7mlxn1hikpcjrsvycjcnj9hl9b1c3ykcgvps7h")))) + (build-system gnu-build-system) + (inputs `(("bzip2" ,bzip2))) + (arguments + `(#:tests? #f ; no test target + #:make-flags (let ((out (assoc-ref %outputs "out"))) + (list "-f" "unix/Makefile" + (string-append "prefix=" out) + (string-append "MANDIR=" out "/share/man/man1"))) + #:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key (make-flags '()) #:allow-other-keys) + (zero? (apply system* "make" "generic_gcc" make-flags)))) + (delete 'configure)))) + (home-page "http://www.info-zip.org/Zip.html") + (synopsis "Compression and file packing utility") + (description + "Zip is a compression and file packaging/archive utility. Zip is useful +for packaging a set of files for distribution, for archiving files, and for +saving disk space by temporarily compressing unused files or directories. +Zip puts one or more compressed files into a single ZIP archive, along with +information about the files (name, path, date, time of last modification, +protection, and check information to verify file integrity). An entire +directory structure can be packed into a ZIP archive with a single command. + +Zip has one compression method (deflation) and can also store files without +compression. Zip automatically chooses the better of the two for each file. +Compression ratios of 2:1 to 3:1 are common for text files.") + (license (license:non-copyleft "file://LICENSE" + "See LICENSE in the distribution.")))) + +(define-public unzip + (package (inherit zip) + (name "unzip") + (version "6.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/infozip" + "/UnZip%206.x%20%28latest%29/UnZip%206.0/unzip60.tar.gz")) + (sha256 + (base32 + "0dxx11knh3nk95p2gg2ak777dd11pr7jx5das2g49l262scrcv83")) + (patches (search-patches "unzip-CVE-2014-8139.patch" + "unzip-CVE-2014-8140.patch" + "unzip-CVE-2014-8141.patch" + "unzip-CVE-2014-9636.patch" + "unzip-CVE-2015-7696.patch" + "unzip-CVE-2015-7697.patch" + "unzip-allow-greater-hostver-values.patch" + "unzip-initialize-symlink-flag.patch" + "unzip-remove-build-date.patch" + "unzip-attribs-overflow.patch" + "unzip-overflow-on-invalid-input.patch" + "unzip-format-secure.patch" + "unzip-overflow-long-fsize.patch")))) + (build-system gnu-build-system) + ;; no inputs; bzip2 is not supported, since not compiled with BZ_NO_STDIO + (arguments + `(#:phases (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key make-flags #:allow-other-keys) + (zero? (apply system* "make" + `("-j" ,(number->string + (parallel-job-count)) + ,@make-flags + "generic_gcc")))))) + #:make-flags (list "-f" "unix/Makefile" + (string-append "prefix=" %output) + (string-append "MANDIR=" %output "/share/man/man1")))) + (home-page "http://www.info-zip.org/UnZip.html") + (synopsis "Decompression and file extraction utility") + (description + "UnZip is an extraction utility for archives compressed in .zip format, +also called \"zipfiles\". + +UnZip lists, tests, or extracts files from a .zip archive. The default +behaviour (with no options) is to extract into the current directory, and +subdirectories below it, all files from the specified zipfile. UnZip +recreates the stored directory structure by default.") + (license (license:non-copyleft "file://LICENSE" + "See LICENSE in the distribution.")))) + +(define-public zziplib + (package + (name "zziplib") + (version "0.13.62") + (source + (origin + (method url-fetch) + (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")))) + (build-system gnu-build-system) + (inputs + `(("zlib" ,zlib))) + (native-inputs `(("perl" ,perl) ; for the documentation + ("pkg-config" ,pkg-config) + ;; for the documentation; Python 3 not supported, + ;; http://forums.gentoo.org/viewtopic-t-863161-start-0.html + ("python" ,python-2) + ("zip" ,zip))) ; to create test files + (arguments + `(#:parallel-tests? #f)) ; since test files are created on the fly + (home-page "http://zziplib.sourceforge.net/") + (synopsis "Library for accessing zip files") + (description + "ZZipLib is a library based on zlib for accessing zip files.") + (license license:lgpl2.0+))) + +(define-public perl-zip + (package + (name "perl-zip") + (version "1.59") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/A/AD/ADAMK/Archive-Zip-" + version ".tar.gz")) + (sha256 + (base32 + "0m31qlppg65vh32pwxkwjby02q70abx49d2yk6vfd4585fqb27cx")))) + (build-system perl-build-system) + (synopsis "Provides an interface to ZIP archive files") + (description "The Archive::Zip module allows a Perl program to create, +manipulate, read, and write Zip archive files.") + (home-page "http://search.cpan.org/~adamk/Archive-Zip-1.30/") + (license license:perl-license))) diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index 067ad1c3b0..7a309b0bc9 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -31,8 +31,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system trivial) - #:use-module (guix build-system python) - #:autoload (gnu packages zip) (unzip)) + #:use-module (guix build-system python)) (define-public docbook-xml (package diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index ba8eea3931..5d3d6f170b 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -37,8 +37,7 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages perl) - #:use-module (gnu packages xml) - #:autoload (gnu packages zip) (unzip)) + #:use-module (gnu packages xml)) (define-public asciidoc (package diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 4d61f0fccf..2ee012e3c1 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -53,8 +53,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) - #:use-module (gnu packages xorg) - #:use-module (gnu packages zip)) + #:use-module (gnu packages xorg)) (define-public font-inconsolata (package diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm index 0b98e2db0d..420d0aff28 100644 --- a/gnu/packages/fpga.scm +++ b/gnu/packages/fpga.scm @@ -25,6 +25,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (gnu packages) + #:use-module (gnu packages compression) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tcl) #:use-module (gnu packages readline) @@ -35,7 +36,6 @@ #:use-module (gnu packages graphviz) #:use-module (gnu packages libffi) #:use-module (gnu packages linux) - #:use-module (gnu packages zip) #:use-module (gnu packages perl) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gperf) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 18ce2ae4a4..34a08f6d84 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -51,7 +51,6 @@ #:use-module (gnu packages qt) #:use-module (gnu packages video) #:use-module (gnu packages compression) - #:use-module (gnu packages zip) #:use-module (gnu packages gl) #:use-module (gnu packages linux) #:use-module (gnu packages xorg) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 2c5294737f..b706b57932 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -110,7 +110,6 @@ #:use-module (gnu packages compression) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages linux) - #:use-module (gnu packages zip) #:use-module (gnu packages xiph) #:use-module (gnu packages curl) #:use-module (gnu packages lua) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 7457809300..08f6187f8a 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -44,7 +44,6 @@ #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module (guix download) #:use-module (guix build utils) #:use-module (guix build-system gnu) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 34bd33813d..cef991d5f4 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -132,7 +132,6 @@ #:use-module (gnu packages readline) #:use-module (gnu packages fonts) #:use-module (gnu packages qemu) - #:use-module (gnu packages zip) #:use-module (gnu packages speech) #:use-module (srfi srfi-1)) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 6809a696a0..37adc3bbd6 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -58,7 +58,6 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages video) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages zip) #:use-module (gnu packages readline)) (define-public mozjs diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 4fa4033246..6c813e8a37 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -62,8 +62,7 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages video) #:use-module (gnu packages xml) - #:use-module (gnu packages xorg) - #:use-module (gnu packages zip)) + #:use-module (gnu packages xorg)) (define-public blender (package diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index cf52068244..b23cd38f9e 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -36,6 +36,7 @@ #:use-module (gnu packages aspell) #:use-module (gnu packages bash) #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages compression) #:use-module (gnu packages gawk) #:use-module (gnu packages gperf) #:use-module (gnu packages libffi) @@ -62,7 +63,6 @@ #:use-module (gnu packages version-control) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9d03e5600f..bafda1ced2 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -46,7 +46,6 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) #:use-module (guix download) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index cce03eeeae..fdf3497fe6 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -55,7 +55,6 @@ #:use-module (gnu packages python) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 7bdf97f98a..e81ee40d38 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -60,7 +60,6 @@ #:use-module (gnu packages kerberos) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module (gnu packages texinfo) #:use-module ((srfi srfi-1) #:select (fold alist-delete)) #:use-module (srfi srfi-11) diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index 061d5f1b2e..c8a65af790 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -68,8 +68,7 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages assembly) - #:use-module (gnu packages zip)) + #:use-module (gnu packages assembly)) (define-public crossguid (let ((commit "8f399e8bd4252be9952f3dfa8199924cc8487ca4")) diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm index 5707b9476b..918843c077 100644 --- a/gnu/packages/ldc.scm +++ b/gnu/packages/ldc.scm @@ -35,8 +35,7 @@ #:use-module (gnu packages libedit) #:use-module (gnu packages llvm) #:use-module (gnu packages python) - #:use-module (gnu packages textutils) - #:use-module (gnu packages zip)) + #:use-module (gnu packages textutils)) (define-public rdmd (package diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 809e28e27b..bdbf3f850c 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -65,8 +65,7 @@ #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages xml) - #:use-module (gnu packages xorg) - #:use-module (gnu packages zip)) + #:use-module (gnu packages xorg)) (define-public ixion (package diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm index cd883b23ec..4afe8c3c0e 100644 --- a/gnu/packages/markup.scm +++ b/gnu/packages/markup.scm @@ -26,10 +26,10 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (guix build-system cmake) + #:use-module (gnu packages compression) #:use-module (gnu packages perl) #:use-module (gnu packages python) - #:use-module (gnu packages web) - #:use-module (gnu packages zip)) + #:use-module (gnu packages web)) (define-public hoedown (package diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 37e92b3cf4..41e6b259e9 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -96,7 +96,6 @@ #:use-module (gnu packages tls) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml) - #:use-module (gnu packages zip) #:use-module (srfi srfi-1)) (define-public aris diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm index bae12439f1..0770304a28 100644 --- a/gnu/packages/mc.scm +++ b/gnu/packages/mc.scm @@ -31,7 +31,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages check) #:use-module (gnu packages perl) - #:use-module (gnu packages zip)) + #:use-module (gnu packages compression)) (define-public mc (package diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index ac80a6bb9d..c136265c52 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -27,8 +27,7 @@ #:use-module (gnu packages gd) #:use-module (gnu packages image) #:use-module (gnu packages mail) - #:use-module (gnu packages perl) - #:use-module (gnu packages zip)) + #:use-module (gnu packages perl)) (define-public nagios (package diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 186dc276be..b40bbb002d 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -105,7 +105,6 @@ #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages xiph) - #:use-module (gnu packages zip) #:use-module ((srfi srfi-1) #:select (last))) (define-public aria-maestosa diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index b6f64bc0ef..7d569eef3e 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -44,7 +44,6 @@ #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index a11c34330d..8cee89dd49 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -37,7 +37,7 @@ #:use-module (gnu packages lua) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages zip)) + #:use-module (gnu packages compression)) (define-public a2ps (package diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 87c4d84a87..775cab6948 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -110,7 +110,6 @@ #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages zip) #:use-module (gnu packages tcl) #:use-module (gnu packages bdw-gc) #:use-module (guix packages) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index eacfd733db..bcb715327c 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -59,7 +59,6 @@ #:use-module (gnu packages xorg) #:use-module (gnu packages tls) #:use-module (gnu packages gl) - #:use-module (gnu packages zip) #:use-module (ice-9 match)) (define (mit-scheme-source-directory system version) diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm index 675ca0ce5e..f4a50ded22 100644 --- a/gnu/packages/smalltalk.scm +++ b/gnu/packages/smalltalk.scm @@ -28,6 +28,7 @@ #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages compression) #:use-module (gnu packages fontutils) #:use-module (gnu packages gl) #:use-module (gnu packages glib) @@ -36,8 +37,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) - #:use-module (gnu packages xorg) - #:use-module (gnu packages zip)) + #:use-module (gnu packages xorg)) (define-public smalltalk (package diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 91b91beae1..832b8dc7c5 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -58,7 +58,6 @@ #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module (srfi srfi-1)) diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm index b971cbe3a9..79f7ca0816 100644 --- a/gnu/packages/synergy.scm +++ b/gnu/packages/synergy.scm @@ -25,10 +25,10 @@ #:use-module (guix build-system cmake) #:use-module (gnu packages) #:use-module (gnu packages curl) + #:use-module (gnu packages compression) #:use-module (gnu packages python) #:use-module (gnu packages tls) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module (srfi srfi-26)) (define-public synergy diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 21af9d7df4..eb69547a1c 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -58,7 +58,6 @@ #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages zip) #:autoload (gnu packages texinfo) (texinfo) #:use-module (ice-9 ftw) #:use-module (ice-9 match) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 7bc2fc47fa..152d080599 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -38,14 +38,14 @@ #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages compression) #:use-module (gnu packages java) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages readline) - #:use-module (gnu packages slang) - #:use-module (gnu packages zip)) + #:use-module (gnu packages slang)) (define-public recode (package diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 4acfb24220..ec81bc1a1e 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -106,8 +106,7 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages assembly) - #:use-module (gnu packages zip)) + #:use-module (gnu packages assembly)) (define-public aalib (package diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index a10b1367ef..146f3a1fa2 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -39,7 +39,6 @@ #:use-module (gnu packages image) #:use-module (gnu packages tls) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system python)) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index a6bea3588f..263c26e311 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -40,7 +40,6 @@ #:use-module (gnu packages python) #:use-module (gnu packages tls) #:use-module (gnu packages web) - #:use-module (gnu packages zip) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm deleted file mode 100644 index 018891359b..0000000000 --- a/gnu/packages/zip.scm +++ /dev/null @@ -1,183 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge -;;; Copyright © 2014, 2015 Mark H Weaver -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (gnu packages zip) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (gnu packages) - #:use-module (gnu packages compression) - #:use-module (gnu packages perl) - #:use-module (guix build-system perl) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages python)) - -(define-public zip - (package - (name "zip") - (version "3.0") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz")) - (sha256 - (base32 - "0sb3h3067pzf3a7mlxn1hikpcjrsvycjcnj9hl9b1c3ykcgvps7h")))) - (build-system gnu-build-system) - (inputs `(("bzip2" ,bzip2))) - (arguments - `(#:tests? #f ; no test target - #:make-flags (let ((out (assoc-ref %outputs "out"))) - (list "-f" "unix/Makefile" - (string-append "prefix=" out) - (string-append "MANDIR=" out "/share/man/man1"))) - #:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)) - #:phases - (modify-phases %standard-phases - (replace 'build - (lambda* (#:key (make-flags '()) #:allow-other-keys) - (zero? (apply system* "make" "generic_gcc" make-flags)))) - (delete 'configure)))) - (home-page "http://www.info-zip.org/Zip.html") - (synopsis "Compression and file packing utility") - (description - "Zip is a compression and file packaging/archive utility. Zip is useful -for packaging a set of files for distribution, for archiving files, and for -saving disk space by temporarily compressing unused files or directories. -Zip puts one or more compressed files into a single ZIP archive, along with -information about the files (name, path, date, time of last modification, -protection, and check information to verify file integrity). An entire -directory structure can be packed into a ZIP archive with a single command. - -Zip has one compression method (deflation) and can also store files without -compression. Zip automatically chooses the better of the two for each file. -Compression ratios of 2:1 to 3:1 are common for text files.") - (license (license:non-copyleft "file://LICENSE" - "See LICENSE in the distribution.")))) - -(define-public unzip - (package (inherit zip) - (name "unzip") - (version "6.0") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/unzip60.tar.gz")) - (sha256 - (base32 - "0dxx11knh3nk95p2gg2ak777dd11pr7jx5das2g49l262scrcv83")) - (patches (search-patches "unzip-CVE-2014-8139.patch" - "unzip-CVE-2014-8140.patch" - "unzip-CVE-2014-8141.patch" - "unzip-CVE-2014-9636.patch" - "unzip-CVE-2015-7696.patch" - "unzip-CVE-2015-7697.patch" - "unzip-allow-greater-hostver-values.patch" - "unzip-initialize-symlink-flag.patch" - "unzip-remove-build-date.patch" - "unzip-attribs-overflow.patch" - "unzip-overflow-on-invalid-input.patch" - "unzip-format-secure.patch" - "unzip-overflow-long-fsize.patch")))) - (build-system gnu-build-system) - ;; no inputs; bzip2 is not supported, since not compiled with BZ_NO_STDIO - (arguments - `(#:phases (modify-phases %standard-phases - (delete 'configure) - (replace 'build - (lambda* (#:key make-flags #:allow-other-keys) - (zero? (apply system* "make" - `("-j" ,(number->string - (parallel-job-count)) - ,@make-flags - "generic_gcc")))))) - #:make-flags (list "-f" "unix/Makefile" - (string-append "prefix=" %output) - (string-append "MANDIR=" %output "/share/man/man1")))) - (home-page "http://www.info-zip.org/UnZip.html") - (synopsis "Decompression and file extraction utility") - (description - "UnZip is an extraction utility for archives compressed in .zip format, -also called \"zipfiles\". - -UnZip lists, tests, or extracts files from a .zip archive. The default -behaviour (with no options) is to extract into the current directory, and -subdirectories below it, all files from the specified zipfile. UnZip -recreates the stored directory structure by default.") - (license (license:non-copyleft "file://LICENSE" - "See LICENSE in the distribution.")))) - -(define-public zziplib - (package - (name "zziplib") - (version "0.13.62") - (source - (origin - (method url-fetch) - (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")))) - (build-system gnu-build-system) - (inputs - `(("zlib" ,zlib))) - (native-inputs `(("perl" ,perl) ; for the documentation - ("pkg-config" ,pkg-config) - ("python" ,python-2) ; for the documentation; Python 3 not supported, - ; http://forums.gentoo.org/viewtopic-t-863161-start-0.html - ("zip" ,zip))) ; to create test files - (arguments - `(#:parallel-tests? #f)) ; since test files are created on the fly - (home-page "http://zziplib.sourceforge.net/") - (synopsis "Library for accessing zip files") - (description - "ZZipLib is a library based on zlib for accessing zip files.") - (license license:lgpl2.0+))) - - -(define-public perl-zip - (package - (name "perl-zip") - (version "1.59") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/A/AD/ADAMK/Archive-Zip-" - version ".tar.gz")) - (sha256 - (base32 - "0m31qlppg65vh32pwxkwjby02q70abx49d2yk6vfd4585fqb27cx")))) - (build-system perl-build-system) - (synopsis "Provides an interface to ZIP archive files") - (description "The Archive::Zip module allows a Perl program to create, -manipulate, read, and write Zip archive files.") - (home-page "http://search.cpan.org/~adamk/Archive-Zip-1.30/") - (license license:perl-license))) diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm index 228b4e60d2..e0870a605c 100644 --- a/guix/build-system/ant.scm +++ b/guix/build-system/ant.scm @@ -58,7 +58,7 @@ (define (default-zip) "Return the default ZIP package." ;; Lazily resolve the binding to avoid a circular dependency. - (let ((zip-mod (resolve-interface '(gnu packages zip)))) + (let ((zip-mod (resolve-interface '(gnu packages compression)))) (module-ref zip-mod 'zip))) (define* (lower name diff --git a/guix/build-system/font.scm b/guix/build-system/font.scm index f448c302c2..d40a4985f8 100644 --- a/guix/build-system/font.scm +++ b/guix/build-system/font.scm @@ -56,13 +56,13 @@ '()) ,@inputs ,(list "tar" (module-ref (resolve-interface '(gnu packages base)) 'tar)) - ,(list "unzip" (module-ref (resolve-interface '(gnu packages zip)) 'unzip)) ,@(let ((compression (resolve-interface '(gnu packages compression)))) (map (match-lambda ((name package) (list name (module-ref compression package)))) `(("gzip" gzip) ("bzip2" bzip2) + ("unzip" unzip) ("xz" xz)))))) (build-inputs native-inputs) (outputs outputs) diff --git a/guix/download.scm b/guix/download.scm index bed1f502cf..c1da515477 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -528,7 +528,7 @@ own. This helper makes it easier to deal with \"zip bombs\"." (_ (basename url)))) (define unzip - (module-ref (resolve-interface '(gnu packages zip)) 'unzip)) + (module-ref (resolve-interface '(gnu packages compression)) 'unzip)) (mlet %store-monad ((drv (url-fetch url hash-algo hash (string-append "zipbomb-" diff --git a/guix/packages.scm b/guix/packages.scm index 76aa43e7d3..464fc433b2 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -401,7 +401,7 @@ object." ("bzip2" ,(ref '(gnu packages compression) 'bzip2)) ("gzip" ,(ref '(gnu packages compression) 'gzip)) ("lzip" ,(ref '(gnu packages compression) 'lzip)) - ("unzip" ,(ref '(gnu packages zip) 'unzip)) + ("unzip" ,(ref '(gnu packages compression) 'unzip)) ("patch" ,(ref '(gnu packages base) 'patch)) ("locales" ,(ref '(gnu packages base) 'glibc-utf8-locales))))) diff --git a/po/packages/POTFILES.in b/po/packages/POTFILES.in index 749bd1b24e..1eafdcb4b8 100644 --- a/po/packages/POTFILES.in +++ b/po/packages/POTFILES.in @@ -57,4 +57,3 @@ gnu/packages/webkit.scm gnu/packages/web.scm gnu/packages/wordnet.scm gnu/packages/xiph.scm -gnu/packages/zip.scm From 4afd813711eafaf2c66429c102df1525c9defb81 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 20 Jun 2017 19:03:14 +0200 Subject: [PATCH 005/145] gnu: c-ares: Update to 1.13.0 [fixes CVE-2017-1000381]. * gnu/packages/adns.scm (c-ares): Update to 1.13.0. --- gnu/packages/adns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/adns.scm b/gnu/packages/adns.scm index eece884e58..cb37635bcd 100644 --- a/gnu/packages/adns.scm +++ b/gnu/packages/adns.scm @@ -59,7 +59,7 @@ scripts.") (define-public c-ares (package (name "c-ares") - (version "1.12.0") + (version "1.13.0") (source (origin (method url-fetch) (uri (string-append @@ -67,7 +67,7 @@ scripts.") ".tar.gz")) (sha256 (base32 - "1yv5ygkd813glz8hbagykgp1hlb6450chig061hr7pyw7i0gk4l6")))) + "19qxhv9aiw903fr808y77r6l9js0fq9m3gcaqckan9jan7qhixq3")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) From fe435b3af624edab4c5b25bed65baa03ba0dd38b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 20 Jun 2017 19:13:54 +0200 Subject: [PATCH 006/145] gnu: gstreamer: Update to 1.12.1. * gnu/packages/gstreamer.scm (gstreamer, gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, gst-libav, python-gst, python2-gst): Update to 1.12.1. --- gnu/packages/gstreamer.scm | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 5c3b3c5f3b..6c0eda99c8 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -98,7 +98,7 @@ arrays of data.") (define-public gstreamer (package (name "gstreamer") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) @@ -107,7 +107,7 @@ arrays of data.") version ".tar.xz")) (sha256 (base32 - "00j3zwm22582fwyzh316mnh6ghicv4ya93yk52kz4avx57wfxm8l")))) + "1lm6lcr0rv0mzsdl9vjdnf3vb136qmcslvz3m5zlai7zngcbji4h")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -146,7 +146,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) @@ -154,7 +154,7 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "0k9nckvzk2hhhg7w4gzmd7is0lbswdmrkwmcgblvdf2lgy3wcprl")))) + "0r84krn8dpimp6kk9cf38danrbbsypx6j6ykr6rl1a3lnnnrzkhc")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -201,7 +201,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) @@ -210,7 +210,7 @@ for the GStreamer multimedia library.") name "-" version ".tar.xz")) (sha256 (base32 - "1g1f6xyj0f06nmsl01xhr32x2rwyb857yjkrig1013iknx6p67ca")))) + "0jzm5jp22238y3rb0j1dsxyp77dq0wk03gn9kvq25rphlx38w7hj")))) (build-system gnu-build-system) (inputs `(("aalib" ,aalib) @@ -266,14 +266,14 @@ developers consider to have good quality code and correct functionality.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0d45zgdnflwpwvlb1fmgj35yfds9m1g46mhppvlsh5dky7zkrdqi")))) + "15svf3d4n13r1c18mx9ya3ymibv0vbx9s593j0cm0kn4s54q1vvx")))) (outputs '("out" "doc")) (build-system gnu-build-system) (arguments @@ -343,7 +343,7 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) @@ -351,7 +351,7 @@ par compared to the rest.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "1mhasi20kvi9p72kh4qyfzync509wqqkk8fp2xxyhgp88r8bls2y")))) + "0s8hiv4asqd6nwnksqv6cwpzan41zd0nd8nhlm7s64wp0lyi5hlg")))) (build-system gnu-build-system) (inputs `(("gst-plugins-base" ,gst-plugins-base) @@ -382,7 +382,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") (define-public gst-libav (package (name "gst-libav") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) (uri (string-append @@ -390,7 +390,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") name "-" version ".tar.xz")) (sha256 (base32 - "1i2h0ymh9jy0rnkcan2rdsdfq7l02rmp33g712q81s9fcizlgl9r")))) + "0xshib0hsn8yjmd12ipsrbrvxa5qnhnz7zmdj7lms6b3vwzq5msm")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-system-libav") @@ -420,7 +420,7 @@ compression formats through the use of the libav library.") (define-public python-gst (package (name "python-gst") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) (uri (string-append @@ -428,7 +428,7 @@ compression formats through the use of the libav library.") "gst-python-" version ".tar.xz")) (sha256 (base32 - "01wwbn6z3771ad55ljl9gs6irrs9a8p186zrgrkmzs91kxmxwcxy")))) + "18bq03xdc0jgrza4114lrcj82yai4azkjzfxflqagc0y417vw88p")))) (build-system gnu-build-system) (arguments ;; XXX: Factorize python-sitedir with python-build-system. From 3f56740d7231b98d7b0100233d965d82e17cfede Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 20 Jun 2017 21:12:25 +0200 Subject: [PATCH 007/145] gnu: nasm: Update to 2.13.01. * gnu/packages/assembly.scm (nasm): Update to 2.13.01. [arguments]: Adjust Makefile substitutions. --- gnu/packages/assembly.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index 3f77dd756c..27db8fc559 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -34,14 +34,14 @@ (define-public nasm (package (name "nasm") - (version "2.12.02") + (version "2.13.01") (source (origin (method url-fetch) (uri (string-append "http://www.nasm.us/pub/nasm/releasebuilds/" version "/" name "-" version ".tar.xz")) (sha256 (base32 - "08a3ah791cl7xdyrlz33mwv4xzs08rxh0p902p3ypi5iq1h6p1jc")))) + "0plsvcwxc7q3llr3bz10prwq1gn4ll38aqmv0yzfqcq4iw0160ma")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) ;for doc and test target ("texinfo" ,texinfo))) @@ -52,10 +52,10 @@ (add-after 'unpack 'dont-build-ps-pdf-outputs (lambda _ (substitute* "doc/Makefile.in" - (("info html nasmdoc.txt nasmdoc.ps nasmdoc.pdf") - "info html nasmdoc.txt") - (("nasmdoc.ps nasmdoc.pdf nasmdoc.txt \\$\\(INSTALLROOT\\)\\$\\(docdir\\)") - "nasmdoc.txt $(INSTALLROOT)$(docdir)")) + (("html nasmdoc.txt nasmdoc.pdf") + "html nasmdoc.txt") + (("\\$\\(INSTALL_DATA\\) nasmdoc.pdf") + "$(INSTALL_DATA)")) #t)) (add-after 'install 'install-info (lambda _ From b3ebd24162f69e55b9847d9a160d255737e39d68 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Fri, 16 Jun 2017 13:36:58 +0200 Subject: [PATCH 008/145] gnu: Add wine64. * gnu/packages/wine.scm (wine64): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/wine.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 72700ef3df..517b9f236e 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -147,3 +147,23 @@ integrate Windows applications into your desktop.") ;; It really only supports IA32, but building on x86_64 will have the same ;; effect as building on i686 anyway. (supported-systems '("i686-linux" "x86_64-linux")))) + +(define-public wine64 + (package + (inherit wine) + (name "wine64") + (arguments + `(#:configure-flags + (list "--enable-win64" + (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib64")) + ,@(strip-keyword-arguments '(#:configure-flags #:system) + (package-arguments wine)))) + (synopsis "Implementation of the Windows API (64-bit version)") + (description + "Wine (originally an acronym for \"Wine Is Not an Emulator\") is a +compatibility layer capable of running Windows applications. Instead of +simulating internal Windows logic like a virtual machine or emulator, Wine +translates Windows API calls into POSIX calls on-the-fly, eliminating the +performance and memory penalties of other methods and allowing you to cleanly +integrate Windows applications into your desktop. This is the 64-bit version.") + (supported-systems '("x86_64-linux")))) From e2de6bbdd5503bb58524f0faaaf374988e02f2b5 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 11 Jun 2017 17:21:43 +0200 Subject: [PATCH 009/145] gnu: xf86-video-intel: Update to 2.99.917-6-6babcf1. Consult this URL for changes since the last update (six commits): * gnu/packages/xorg.scm (xf86-video-intel): Update to 2.99.917-6-6babcf1. --- gnu/packages/xorg.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index cc785a998b..e40e681d29 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2812,10 +2812,10 @@ X server.") (define-public xf86-video-intel - (let ((commit "b57abe20e81f4b8e4dd203b6a9eda7ff441bc8ce")) + (let ((commit "6babcf15dd605ef40de53f5c34f95b7fd195edbe")) (package (name "xf86-video-intel") - (version (string-append "2.99.917-5-" (string-take commit 7))) + (version (string-append "2.99.917-6-" (string-take commit 7))) (source (origin ;; there's no current tarball @@ -2825,7 +2825,7 @@ X server.") (commit commit))) (sha256 (base32 - "1l08jdrqrpaj2168hlz0hwlx27bm7n7lnv82jjyvy884v47gn2ay")) + "055v4z26r00h3mxsd084n3aq8b5h0h3jkv52xss76zgbsq3n2354")) (file-name (string-append name "-" version)))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) From 7e61a16c97dd89f8eb0e303696874b5049a0c9a7 Mon Sep 17 00:00:00 2001 From: Gregor Giesen Date: Sun, 18 Jun 2017 14:27:34 +0200 Subject: [PATCH 010/145] gnu: Add unbound. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/dns.scm (unbound): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/dns.scm | 164 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 2e4d8fd18e..6615bb220c 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 Vasile Dumitrascu +;;; Copyright © 2017 Gregor Giesen ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,6 +32,7 @@ #:use-module (gnu packages databases) #:use-module (gnu packages crypto) #:use-module (gnu packages datastructures) + #:use-module (gnu packages flex) #:use-module (gnu packages glib) #:use-module (gnu packages groff) #:use-module (gnu packages groff) @@ -42,12 +44,16 @@ #:use-module (gnu packages nettle) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages protobuf) + #:use-module (gnu packages python) + #:use-module (gnu packages swig) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu)) (define-public dnsmasq @@ -275,6 +281,164 @@ asynchronous fashion.") (license:non-copyleft "file://LICENSE") ; includes.h license:openssl)))) +(define-public unbound + (package + (name "unbound") + (version "1.6.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.unbound.net/downloads/unbound-" + version ".tar.gz")) + (sha256 + (base32 + "0pw4m4z5qspsagxzbjb61xq5bhd57amw26xqvqzi6b8d3mf6azjc")))) + (build-system gnu-build-system) + (outputs '("out" "python")) + (native-inputs + `(("flex" ,flex) + ("swig" ,swig))) + (inputs + `(("expat" ,expat) + ("libevent" ,libevent) + ("protobuf" ,protobuf) + ("python" ,python-3) + ("python-wrapper" ,python-wrapper) + ("openssl" ,openssl))) + (arguments + `(#:configure-flags + (list (string-append + "--with-ssl=" (assoc-ref %build-inputs "openssl")) + (string-append + "--with-libevent=" (assoc-ref %build-inputs "libevent")) + (string-append + "--with-libexpat=" (assoc-ref %build-inputs "expat")) + "--with-pythonmodule" "--with-pyunbound") + #:phases + (modify-phases %standard-phases + (add-after 'configure 'fix-python-site-package-path + ;; Move python modules into their own output. + (lambda* (#:key outputs #:allow-other-keys) + (let ((pyout (assoc-ref outputs "python")) + (ver ,(version-major+minor (package-version python)))) + (substitute* "Makefile" + (("^PYTHON_SITE_PKG=.*$") + (string-append + "PYTHON_SITE_PKG=" + pyout "/lib/python-" ver "/site-packages\n")))) + #t)) + (add-before 'check 'fix-missing-nss-for-tests + ;; Unfortunately, the package's unittests involve some checks + ;; looking up protocols and services which are not provided + ;; by the minimalistic build environment, in particular, + ;; /etc/protocols and /etc/services are missing. + ;; Also, after plain substitution of protocol and service names + ;; in the test data, the tests still fail because the + ;; corresponding Resource Records have been signed by + ;; RRSIG records. + ;; The following LD_PRELOAD library overwrites the glibc + ;; functions ‘get{proto,serv}byname’, ‘getprotobynumber’ and + ;; ‘getservbyport’ providing the few records required for the + ;; unit tests to pass. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((source (assoc-ref %build-inputs "source")) + (gcc (assoc-ref %build-inputs "gcc"))) + (call-with-output-file "/tmp/nss_preload.c" + (lambda (port) + (display "#include +#include +#include + +#include + +struct protoent *getprotobyname(const char *name) { + struct protoent *p = malloc(sizeof(struct protoent)); + p->p_aliases = malloc(sizeof(char*)); + if (strcasecmp(name, \"tcp\") == 0) { + p->p_name = \"tcp\"; + p->p_proto = 6; + p->p_aliases[0] = \"TCP\"; + } else if (strcasecmp(name, \"udp\") == 0) { + p->p_name = \"udp\"; + p->p_proto = 17; + p->p_aliases[0] = \"UDP\"; + } else + p = NULL; + return p; +} + +struct protoent *getprotobynumber(int proto) { + struct protoent *p = malloc(sizeof(struct protoent)); + p->p_aliases = malloc(sizeof(char*)); + switch(proto) { + case 6: + p->p_name = \"tcp\"; + p->p_proto = 6; + p->p_aliases[0] = \"TCP\"; + break; + case 17: + p->p_name = \"udp\"; + p->p_proto = 17; + p->p_aliases[0] = \"UDP\"; + break; + default: + p = NULL; + break; + } + return p; +} + +struct servent *getservbyname(const char *name, const char *proto) { + struct servent *s = malloc(sizeof(struct servent)); + char* buf = malloc((strlen(proto)+1)*sizeof(char)); + strcpy(buf, proto); + s->s_aliases = malloc(sizeof(char*)); + s->s_aliases[0] = NULL; + if (strcasecmp(name, \"domain\") == 0) { + s->s_name = \"domain\"; + s->s_port = htons(53); + s->s_proto = buf; + } else + s = NULL; + return s; +} + +struct servent *getservbyport(int port, const char *proto) { + char buf[32]; + struct servent *s = malloc(sizeof(struct servent)); + strcpy(buf, proto); + s->s_aliases = malloc(sizeof(char*)); + s->s_aliases[0] = NULL; + switch(port) { + case 53: + s->s_name = \"domain\"; + s->s_port = 53; + s->s_proto = \"udp\"; + break; + default: + s = NULL; + break; + } + return s; +}" port))) + (system* (string-append gcc "/bin/gcc") + "-shared" "-fPIC" "-o" "/tmp/nss_preload.so" + "/tmp/nss_preload.c") + ;; The preload library only affects the unittests. + (substitute* "Makefile" + (("./unittest") + "LD_PRELOAD=/tmp/nss_preload.so ./unittest"))) + #t))))) + (home-page "https://www.unbound.net") + (synopsis "Validating, recursive, and caching DNS resolver") + (description + "Unbound is a recursive-only caching DNS server which can perform DNSSEC +validation of results. It implements only a minimal amount of authoritative +service to prevent leakage to the root nameservers: forward lookups for +localhost, reverse for @code{127.0.0.1} and @code{::1}, and NXDOMAIN for zones +served by AS112. Stub and forward zones are supported.") + (license license:bsd-4))) + (define-public yadifa (package (name "yadifa") From 7e9e1a36b01e5871700d96b960fba06399143144 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Fri, 16 Jun 2017 13:15:17 +0200 Subject: [PATCH 011/145] gnu: tor: Add seccomp support. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/tor.scm (tor)[inputs]: Add libseccomp. Signed-off-by: Ludovic Courtès --- gnu/packages/tor.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 819092cb72..bcb5aacbdf 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Eric Bavier +;;; Copyright © 2017 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,7 +62,8 @@ (inputs `(("zlib" ,zlib) ("openssl" ,openssl) - ("libevent" ,libevent))) + ("libevent" ,libevent) + ("libseccomp", libseccomp))) (home-page "https://www.torproject.org/") (synopsis "Anonymous network router to improve privacy on the Internet") (description From b3623b6fe70c2bc448346ba25a266262c738d727 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Fri, 16 Jun 2017 14:38:59 +0200 Subject: [PATCH 012/145] gnu: Add nzbget. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/networking.scm (nzbget): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/networking.scm | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index ed0420b422..06a2c8be6e 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2017 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,6 +67,7 @@ #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) + #:use-module (gnu packages xml) #:use-module (ice-9 match)) (define-public macchanger @@ -1095,6 +1097,44 @@ which PID is causing this. This makes it easy to identify programs that have gone wild and are suddenly taking up your bandwidth.") (license license:gpl2+))) +(define-public nzbget + (package + (name "nzbget") + (version "18.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/nzbget/nzbget/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1a8wmbhc1si1n8axzrr8ysmrd3gr643lbh6pvzmr0hnd65fixmx5")))) + (arguments + `(#:configure-flags + (list + (string-append "--with-libcurses-includes=" (assoc-ref +%build-inputs "ncurses") "/include") + (string-append "--with-libcurses-libraries=" (assoc-ref +%build-inputs "ncurses") "/lib") + (string-append "--with-tlslib=GnuTLS")))) + (build-system gnu-build-system) + (inputs `(("gnutls", gnutls) + ("libxml2", libxml2) + ("ncurses", ncurses) + ("zlib", zlib))) + (native-inputs `(("pkg-config", pkg-config))) + (home-page "https://github.com/nzbget/nzbget") + (synopsis "Usenet binary file downloader") + (description + "NZBGet is a binary newsgrabber, which downloads files from Usenet based +on information given in @code{nzb} files. NZBGet can be used in standalone +and in server/client modes. In standalone mode, you pass NZBGet @command{nzb} +files as command-line parameters and it downloads them and exits. NZBGet also +contains a Web interface. Its server can be controlled through remote +procedure calls (RPCs).") + (license license:gpl2+))) + (define-public openvswitch (package (name "openvswitch") From 92321b76a6dccbfd00734d444386561102c325d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 20 Jun 2017 23:41:13 +0200 Subject: [PATCH 013/145] gnu: wine64: Remove redundant description. * gnu/packages/wine.scm (wine64)[description]: Remove. --- gnu/packages/wine.scm | 7 ------- 1 file changed, 7 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 517b9f236e..006483e798 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -159,11 +159,4 @@ integrate Windows applications into your desktop.") ,@(strip-keyword-arguments '(#:configure-flags #:system) (package-arguments wine)))) (synopsis "Implementation of the Windows API (64-bit version)") - (description - "Wine (originally an acronym for \"Wine Is Not an Emulator\") is a -compatibility layer capable of running Windows applications. Instead of -simulating internal Windows logic like a virtual machine or emulator, Wine -translates Windows API calls into POSIX calls on-the-fly, eliminating the -performance and memory penalties of other methods and allowing you to cleanly -integrate Windows applications into your desktop. This is the 64-bit version.") (supported-systems '("x86_64-linux")))) From 7357fcf286a9b11baad9798a106f21f8038db4ba Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 18 Jun 2017 13:44:43 -0400 Subject: [PATCH 014/145] gnu: Add nml. * gnu/packages/game-development.scm (nml): New variable. --- gnu/packages/game-development.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 34a08f6d84..bf19f9e73f 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -188,6 +188,30 @@ and network communications. A very thin client library can be embedded to provide connectivity for client applications written in any language.") (license license:gpl3+))) +(define-public nml + (package + (name "nml") + (version "0.4.4") + (source + (origin + (method url-fetch) + (uri (string-append "http://bundles.openttdcoop.org/nml/releases/" + version "/nml-" version ".tar.gz")) + (sha256 + (base32 + "0wk9ls5qyjwkra54rkj1gg94xbwzi7b84a5fh1ma1q7pbimi8rmg")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pillow" ,python-pillow) + ("python-ply" ,python-ply))) + (home-page "http://dev.openttdcoop.org/projects/nml") + (synopsis "NML compiler") + (description + "@dfn{NML} (NewGRF Meta Language) is a a python-based compiler, capable of +compiling NML files (along with their associated language, sound and graphic +files) into @file{.grf} and/or @file{.nfo} files.") + (license license:gpl2+))) + (define-public python-sge-pygame (package (name "python-sge-pygame") From 2f6e988da368a1c2d971a4bdeff6ac9800a982af Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 18 Jun 2017 13:45:16 -0400 Subject: [PATCH 015/145] gnu: Add dos2unix. * gnu/packages/textutils.scm (dos2unix): New variable. --- gnu/packages/textutils.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 152d080599..e8ae30cd6d 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2017 Rene Saavedra ;;; Copyright © 2017 Hartmut Goebel +;;; Copyright © 2017 Kei Kebreau ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,6 +40,7 @@ #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages compression) + #:use-module (gnu packages gettext) #:use-module (gnu packages java) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) @@ -47,6 +49,34 @@ #:use-module (gnu packages readline) #:use-module (gnu packages slang)) +(define-public dos2unix + (package + (name "dos2unix") + (version "7.3.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://waterlan.home.xs4all.nl/" name "/" + name "-" version ".tar.gz")) + (sha256 + (base32 "1i9hbxn0br7xa18z4bjpkdv7mrzmbfxhm44mzpd07yd2qnxsgkcc")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags (list "CC=gcc" + (string-append "prefix=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; no configure script + (native-inputs + `(("gettext" ,gettext-minimal) + ("perl" ,perl))) + (home-page "https://waterlan.home.xs4all.nl/dos2unix.html") + (synopsis "DOS/Mac to Unix and vice versa text file format converter") + (description + "dos2unix is a tool to convert line breaks in a text file from Unix format +to DOS format and vice versa.") + (license license:bsd-2))) + (define-public recode (package (name "recode") From 94a66dd92a5f3df3f3de53cae5fae39d1773397a Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 18 Jun 2017 13:45:17 -0400 Subject: [PATCH 016/145] gnu: Add grfcodec. * gnu/packages/game-development.scm (grfcodec): New variable. --- gnu/packages/game-development.scm | 60 +++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index bf19f9e73f..a378d8e91b 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -35,6 +35,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages) + #:use-module (gnu packages boost) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages documentation) @@ -146,6 +147,65 @@ conversions (for example, from PPM to Doom picture format). In addition, DeuTex has functions such as merging wads, etc.") (license license:gpl2+))) +(define-public grfcodec + (package + (name "grfcodec") + (version "6.0.6") + (source (origin + (method url-fetch) + (uri (string-append "http://binaries.openttd.org/extra/" + name "/" version "/" name "-" version + "-source.tar.xz")) + (sha256 + (base32 + "08admgnpqcsifpicbm56apgv360fxapqpbbsp10qyk8i22w1ivsk")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (replace 'install ; no install target + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (doc (string-append out "/share/doc")) + (man (string-append out "/share/man/man1"))) + (for-each (lambda (file) + (install-file file bin)) + '("grfcodec" "grfid" "grfstrip" "nforenum")) + (install-file "COPYING" doc) + (with-directory-excursion "docs" + (for-each (lambda (file) + (install-file (string-append file ".txt") doc)) + '("auto_correct" "commands" "grf" "grfcodec" "grftut" + "readme" "readme.rpn")) + (for-each (lambda (file) + (install-file file man)) + (find-files "." "\\.1")))) + #t))))) + (inputs + `(("boost" ,boost) + ("libpng" ,libpng) + ("zlib" ,zlib))) + (synopsis "GRF development tools") + (description + "The @dfn{GRF} (Graphics Resource File) development tools are a set of +tools for developing (New)GRFs. It includes a number of smaller programs, each +with a specific task: +@enumerate +@item @code{grfcodec} decodes and encodes GRF files for OpenTTD. +@item @code{grfid} extracts the so-called \"GRF ID\" from a GRF. +@item @code{grfstrip} strips all sprites from a GRF. +@item @code{nforenum} checks NFO code for errors, making corrections when +necessary. +@end enumerate") + (home-page "http://dev.openttdcoop.org/projects/grfcodec") + ;; GRFCodec, GRFID, and GRFStrip are exclusively under the GPL2. + ;; NFORenum is under the GPL2+. + ;; The MD5 implementation contained in GRFID is under the zlib license. + (license (list license:gpl2 license:gpl2+ license:zlib)))) + (define-public gzochi (package (name "gzochi") From 4df9495e685596f9a1c3a998eac990ff41a0b5f0 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 18 Jun 2017 13:45:18 -0400 Subject: [PATCH 017/145] gnu: Add openttd-opengfx. * gnu/packages/games.scm (openttd-opengfx): New variable. --- gnu/packages/games.scm | 58 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index b706b57932..1af6409de3 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -73,6 +73,7 @@ #:use-module (gnu packages game-development) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) + #:use-module (gnu packages gimp) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -2298,6 +2299,63 @@ engine. When you start it you will be prompted to download a graphics set.") ;; 'openttd' a wrapper around them. The engine is playable by itself, ;; but it asks a user to download graphics if it's not found. +(define openttd-opengfx + (package + (name "openttd-opengfx") + (version "0.5.2") + (source + (origin + (method url-fetch) + (uri (string-append "http://binaries.openttd.org/extra/opengfx/" + version "/opengfx-" version "-source.tar.xz")) + (sha256 + (base32 + "0iz66q7p1mf00njfjbc4vibh3jaybki7armkl18iz7p6x4chp9zv")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags (list "CC=gcc" + (string-append "INSTALL_DIR=" + (assoc-ref %outputs "out") + "/share/openttd/baseset")) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ + ;; Make sure HOME is writable for GIMP. + (setenv "HOME" (getcwd)) + + ;; Redirect stdout, not stderr, to /dev/null. This prevents + ;; dos2unix from receiving its version information as a flag. + (substitute* "Makefile" + (("\\$\\(UNIX2DOS\\) -q --version 2>/dev/null") + "$(UNIX2DOS) -q --version 1>/dev/null"))))) + ;; The check phase for this package only checks the md5sums of the built + ;; GRF files against the md5sums of the release versions. Because we use + ;; different software versions than upstream does, some of the md5sums + ;; are different. However, the package is still reproducible, it's safe + ;; to disable this test. + #:tests? #f)) + (native-inputs `(("dos2unix" ,dos2unix) + ("gimp" ,gimp) + ("grfcodec" ,grfcodec) + ("nml" ,nml) + ("python" ,python-2))) + (home-page "http://dev.openttdcoop.org/projects/opengfx") + (synopsis "Base graphics set for OpenTTD") + (description + "The OpenGFX projects is an implementation of the OpenTTD base grahics +set that aims to ensure the best possible out-of-the-box experience. + +OpenGFX provides you with... +@enumerate +@item All graphics you need to enjoy OpenTTD. +@item Uniquely drawn rail vehicles for every climate. +@item Completely snow-aware rivers. +@item Different river and sea water. +@item Snow-aware buoys. +@end enumerate") + (license license:gpl2))) + (define-public openttd (package (inherit openttd-engine) From ca508f1cfb1c01b0515d1d1c5f04b88fc7e70c8a Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 18 Jun 2017 13:45:19 -0400 Subject: [PATCH 018/145] gnu: openttd: Add 'install-data' phase. * gnu/packages/games.scm (openttd)[arguments]: Add it. [native-inputs]: Add openttd-opengfx. --- gnu/packages/games.scm | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 1af6409de3..730fde68d8 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2359,7 +2359,25 @@ OpenGFX provides you with... (define-public openttd (package (inherit openttd-engine) - (name "openttd"))) + (name "openttd") + (arguments + (substitute-keyword-arguments (package-arguments openttd-engine) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'install 'install-data + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* + ((opengfx (assoc-ref inputs "opengfx")) + (out (assoc-ref outputs "out")) + (gfx-dir + (string-append out + "/share/games/openttd/baseset/opengfx"))) + (mkdir-p gfx-dir) + (copy-recursively opengfx gfx-dir)) + #t)))))) + (native-inputs + `(("opengfx" ,openttd-opengfx) + ,@(package-native-inputs openttd-engine))))) (define-public pinball (package From d2885c83929b66a0cf98e740372bddb7e8787631 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 21 Jun 2017 09:53:08 +0300 Subject: [PATCH 019/145] gnu: cvs-fast-export: Update to 1.43. * gnu/packages/version-control.scm (cvs-fast-export): Update to 1.43. [arguments]: Add phases to not build architecture-specific optimized code and to force python-2. Disable parallel building. --- gnu/packages/version-control.scm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 4b78704537..6121a86ab7 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -37,6 +37,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build utils) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) @@ -904,17 +905,29 @@ RCS, PRCS, and Aegis packages.") (define-public cvs-fast-export (package (name "cvs-fast-export") - (version "1.33") + (version "1.43") (source (origin (method url-fetch) (uri (string-append "http://www.catb.org/~esr/" name "/" name "-" version ".tar.gz")) (sha256 (base32 - "1c3s4nacbwlaaccx1fr7hf72kxxrzy49y2rdz5hhqbk8r29vm8w1")))) + "17xp5q4cxmd6z0ii1fdr4j1djb9mz1qv7hzr6fawdapjzahi65m3")))) (build-system gnu-build-system) (arguments - `(#:phases (modify-phases %standard-phases (delete 'configure)) + '(#:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'remove-optimizations + (lambda _ + ;; Don't optimize for a specific processor architecture. + (substitute* "Makefile" + (("CFLAGS \\+= -march=native") "")) + ;; This code runs with Python2 or Python3 + (substitute* "cvsreduce" + (("python3") "python")) + #t))) + #:parallel-build? #f ; parallel a2x commands fail spectacularly #:make-flags (list "CC=gcc" (string-append "prefix?=" (assoc-ref %outputs "out"))))) (inputs `(("git" ,git))) From 5897428f1c6fe4033c5b143e4dddc5040ed6827b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 21 Jun 2017 10:10:27 +0300 Subject: [PATCH 020/145] gnu: busybox: Update to 1.26.2. * gnu/packages/busybox.scm (busybox): Update to 1.26.2. --- gnu/packages/busybox.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 096e26ca01..7f083919ea 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,7 +30,7 @@ (define-public busybox (package (name "busybox") - (version "1.26.0") + (version "1.26.2") (source (origin (method url-fetch) (uri (string-append @@ -38,7 +38,7 @@ version ".tar.bz2")) (sha256 (base32 - "0k0g3hk58m99c2sfq97ngnixb2rv2wzyhv3z00lxaw78bqvjglis")))) + "05mg6rh5smkzfwqfcazkpwy6h6555llsazikqnvwkaf17y8l8gns")))) (build-system gnu-build-system) (arguments `(#:phases From 6d96af5eaade0d873c5e5c1a2cc60df13cd590df Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 21 Jun 2017 10:13:31 +0300 Subject: [PATCH 021/145] gnu: busybox: Fix indentation. * gnu/packages/busybox.scm (busybox)[arguments]: Whitespace changes. --- gnu/packages/busybox.scm | 42 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 7f083919ea..6ef7200f9d 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -41,41 +41,41 @@ "05mg6rh5smkzfwqfcazkpwy6h6555llsazikqnvwkaf17y8l8gns")))) (build-system gnu-build-system) (arguments - `(#:phases + '(#:phases (modify-phases %standard-phases (replace 'configure (lambda _ (zero? (system* "make" "defconfig")))) (replace 'check (lambda _ - (substitute* '("testsuite/du/du-s-works" - "testsuite/du/du-works") + (substitute* '("testsuite/du/du-s-works" + "testsuite/du/du-works") (("/bin") "/etc")) ; there is no /bin but there is a /etc - ;; There is no /usr/bin or /bin - replace it with /gnu/store - (substitute* "testsuite/cpio.tests" + ;; There is no /usr/bin or /bin - replace it with /gnu/store + (substitute* "testsuite/cpio.tests" (("/usr/bin") (%store-directory)) (("usr") (car (filter (negate string-null?) - (string-split (%store-directory) #\/))))) + (string-split (%store-directory) #\/))))) - (substitute* "testsuite/date/date-works-1" + (substitute* "testsuite/date/date-works-1" (("/bin/date") (which "date"))) - ;; The pidof tests assume that pid 1 is called "init" but that is not - ;; true in guix build environment - (substitute* "testsuite/pidof.tests" + ;; The pidof tests assume that pid 1 is called "init" but that is not + ;; true in guix build environment + (substitute* "testsuite/pidof.tests" (("-s init") "-s $(cat /proc/1/comm)")) + + ;; This test cannot possibly pass. + ;; It is trying to test that "which ls" returns "/bin/ls" when PATH is not set. + ;; However, this relies on /bin/ls existing. Which it does not in guix. + (delete-file "testsuite/which/which-uses-default-path") + (rmdir "testsuite/which") - ;; This test cannot possibly pass. - ;; It is trying to test that "which ls" returns "/bin/ls" when PATH is not set. - ;; However, this relies on /bin/ls existing. Which it does not in guix. - (delete-file "testsuite/which/which-uses-default-path") - (rmdir "testsuite/which") - - (zero? (system* "make" - ;; "V=1" - "SKIP_KNOWN_BUGS=1" - "SKIP_INTERNET_TESTS=1" - "check")))) + (zero? (system* "make" + ;; "V=1" + "SKIP_KNOWN_BUGS=1" + "SKIP_INTERNET_TESTS=1" + "check")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) From 48ca045c8dad4138bf245198faf9830e3899619a Mon Sep 17 00:00:00 2001 From: Mekeor Melire Date: Sat, 13 May 2017 23:34:39 +0200 Subject: [PATCH 022/145] gnu: ghc-x11: Update to 1.8. * gnu/packages/haskell.scm (ghc-x11): Update to 1.8. --- 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 bafda1ced2..a672092342 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1632,14 +1632,14 @@ environment variables.") (define-public ghc-x11 (package (name "ghc-x11") - (version "1.6.1.2") + (version "1.8") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/X11/" "X11-" version ".tar.gz")) (sha256 - (base32 "1kzjcynm3rr83ihqx2y2d852jc49da4p18gv6jzm7g87z22x85jj")))) + (base32 "13lxq36856fzp61y4api78vssykyh8fm2aplr0nsj18ymdm1c6sl")))) (build-system haskell-build-system) (inputs `(("libx11" ,libx11) From cffaca959a08f7071e5ada7f1ece075823672251 Mon Sep 17 00:00:00 2001 From: Mekeor Melire Date: Sat, 13 May 2017 23:36:36 +0200 Subject: [PATCH 023/145] gnu: xmonad: Update to 0.13. * gnu/packages/wm.scm (xmonad): Update to 0.13. [inputs]: Add ghc-directory. (ghc-xmonad-contrib): Update to 0.13. --- gnu/packages/wm.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 28921f190a..f901fc1d55 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -335,7 +335,7 @@ prompt.") (define-public xmonad (package (name "xmonad") - (version "0.12") + (version "0.13") (synopsis "Tiling window manager") (source (origin (method url-fetch) @@ -343,7 +343,7 @@ prompt.") name "-" version ".tar.gz")) (sha256 (base32 - "1mzx3p17ppgmi30q3phaj58x6kxn73pbbkn9v9gzgmd8skdlkxp8")))) + "1jh3lcs20qpna36fa5a0r174xqrsxhj10x1rm5vwf64zariipy7r")))) (build-system haskell-build-system) (inputs `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions) @@ -351,6 +351,7 @@ prompt.") ("ghc-quickcheck" ,ghc-quickcheck) ("ghc-setlocale" ,ghc-setlocale) ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-directory" ,ghc-directory) ("ghc-x11" ,ghc-x11))) (arguments `(#:phases @@ -384,7 +385,7 @@ tiled on several screens.") (define-public ghc-xmonad-contrib (package (name "ghc-xmonad-contrib") - (version "0.12") + (version "0.13") (source (origin (method url-fetch) @@ -392,7 +393,7 @@ tiled on several screens.") "xmonad-contrib-" version ".tar.gz")) (sha256 (base32 - "04gk449dxwmimmb6y2d2hvvmv91r91xlj879qzlyq0mcf723278k")))) + "0vj72jhfng6y7hv5frx2v99jvl3jn9rbpk2j7xw9vydiwmzq4q57")))) (build-system haskell-build-system) (propagated-inputs `(("ghc-mtl" ,ghc-mtl) From dbaef95aabfd8a90f11f513b65a8ebfe8d0b93c2 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Thu, 18 May 2017 12:06:36 +0200 Subject: [PATCH 024/145] bootloader: extlinux: Add extlinux-bootloader-gpt. * gnu/bootloader/extlinux.scm (extlinux-bootloader-gpt): New exported variable. (install-extlinux)[mbr]: New argument. (install-extlinux-mbr, install-extlinux-gpt): New variables. (extlinux-bootloader)[installer]: Use install-extlinux-mbr. --- gnu/bootloader/extlinux.scm | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm index 0a1263aed7..219b058e53 100644 --- a/gnu/bootloader/extlinux.scm +++ b/gnu/bootloader/extlinux.scm @@ -25,7 +25,8 @@ #:use-module (guix monads) #:use-module (guix records) #:use-module (guix utils) - #:export (extlinux-bootloader)) + #:export (extlinux-bootloader + extlinux-bootloader-gpt)) (define* (extlinux-configuration-file config entries #:key @@ -93,7 +94,7 @@ TIMEOUT ~a~%" (string-append "if=" if) (string-append "of=" of))))) -(define install-extlinux +(define (install-extlinux mbr) #~(lambda (bootloader device mount-point) (let ((extlinux (string-append bootloader "/sbin/extlinux")) (install-dir (string-append mount-point "/boot/extlinux")) @@ -103,9 +104,15 @@ TIMEOUT ~a~%" (find-files syslinux-dir "\\.c32$")) (unless (and (zero? (system* extlinux "--install" install-dir)) - (#$dd 440 1 (string-append syslinux-dir "/mbr.bin") device)) + (#$dd 440 1 (string-append syslinux-dir "/" #$mbr) device)) (error "failed to install SYSLINUX"))))) +(define install-extlinux-mbr + (install-extlinux "mbr.bin")) + +(define install-extlinux-gpt + (install-extlinux "gptmbr.bin")) + ;;; @@ -116,6 +123,11 @@ TIMEOUT ~a~%" (bootloader (name 'extlinux) (package syslinux) - (installer install-extlinux) + (installer install-extlinux-mbr) (configuration-file "/boot/extlinux/extlinux.conf") (configuration-file-generator extlinux-configuration-file))) + +(define extlinux-bootloader-gpt + (bootloader + (inherit extlinux-bootloader) + (installer install-extlinux-gpt))) From a48a20fb98b3f69a2640be43cd9e01a1ff90601f Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Thu, 18 May 2017 12:19:53 +0200 Subject: [PATCH 025/145] tests: Add extlinux gpt test. * gnu/tests/install.scm (%test-installed-extlinux-os): New exported variable. (%minimal-extlinux-os, %minimal-extlinux-os-source): New variables. (%extlinux-gpt-installation-script): New variable. (run-install)[packages]: New argument. The packages specified are appended to the installation image. --- gnu/tests/install.scm | 92 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 86 insertions(+), 6 deletions(-) diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index b104efcfd5..7c5d48104e 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -18,12 +18,14 @@ (define-module (gnu tests install) #:use-module (gnu) + #:use-module (gnu bootloader extlinux) #:use-module (gnu tests) #:use-module (gnu tests base) #:use-module (gnu system) #:use-module (gnu system install) #:use-module (gnu system vm) #:use-module ((gnu build vm) #:select (qemu-command)) + #:use-module (gnu packages bootloaders) #:use-module (gnu packages ocr) #:use-module (gnu packages qemu) #:use-module (gnu packages package-management) @@ -34,6 +36,7 @@ #:use-module (guix gexp) #:use-module (guix utils) #:export (%test-installed-os + %test-installed-extlinux-os %test-separate-store-os %test-separate-home-os %test-raid-root-os @@ -77,6 +80,38 @@ (guix combinators))))) %base-services)))) +(define (operating-system-add-packages os packages) + "Append PACKAGES to OS packages list." + (operating-system + (inherit os) + (packages (append packages (operating-system-packages os))))) + +(define-os-with-source (%minimal-extlinux-os + %minimal-extlinux-os-source) + (use-modules (gnu) (gnu tests) (gnu bootloader extlinux) + (srfi srfi-1)) + + (operating-system + (host-name "liberigilo") + (timezone "Europe/Paris") + (locale "en_US.UTF-8") + + (bootloader (bootloader-configuration + (bootloader extlinux-bootloader-gpt) + (device "/dev/vdb"))) + (kernel-arguments '("console=ttyS0")) + (file-systems (cons (file-system + (device "my-root") + (title 'label) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + (services (cons (service marionette-service-type + (marionette-configuration + (imported-modules '((gnu services herd) + (guix combinators))))) + %base-services)))) + (define (operating-system-with-current-guix os) "Return a variant of OS that uses the current Guix." (operating-system @@ -121,23 +156,51 @@ guix system init /mnt/etc/config.scm /mnt --no-substitutes sync reboot\n") +(define %extlinux-gpt-installation-script + ;; Shell script of a simple installation. + ;; As syslinux 6.0.3 does not handle 64bits ext4 partitions, + ;; we make sure to pass -O '^64bit' to mkfs. + "\ +. /etc/profile +set -e -x +guix --version + +export GUIX_BUILD_OPTIONS=--no-grafts +guix build isc-dhcp +parted --script /dev/vdb mklabel gpt \\ + mkpart ext2 1M 1G \\ + set 1 legacy_boot on +mkfs.ext4 -L my-root -O '^64bit' /dev/vdb1 +mount /dev/vdb1 /mnt +df -h /mnt +herd start cow-store /mnt +mkdir /mnt/etc +cp /etc/target-config.scm /mnt/etc/config.scm +guix system init /mnt/etc/config.scm /mnt --no-substitutes +sync +reboot\n") + (define* (run-install target-os target-os-source #:key (script %simple-installation-script) + (packages '()) (os (marionette-operating-system - ;; Since the image has no network access, use the - ;; current Guix so the store items we need are in - ;; the image. (operating-system - (inherit (operating-system-with-current-guix - installation-os)) + ;; Since the image has no network access, use the + ;; current Guix so the store items we need are in + ;; the image and add packages provided. + (inherit (operating-system-add-packages + (operating-system-with-current-guix + installation-os) + packages)) (kernel-arguments '("console=ttyS0"))) #:imported-modules '((gnu services herd) (guix combinators)))) (target-size (* 1200 MiB))) "Run SCRIPT (a shell script following the GuixSD installation procedure) in OS to install TARGET-OS. Return a VM image of TARGET-SIZE bytes containing -the installed system." +the installed system. The packages specified in PACKAGES will be appended to +packages defined in installation-os." (mlet* %store-monad ((_ (set-grafting #f)) (system (current-system)) @@ -232,6 +295,23 @@ build (current-guix) and then store a couple of full system images.") (run-basic-test %minimal-os command "installed-os"))))) +(define %test-installed-extlinux-os + (system-test + (name "installed-extlinux-os") + (description + "Test basic functionality of an OS booted with an extlinux bootloader. As +per %test-installed-os, this test is expensive in terms of CPU and storage.") + (value + (mlet* %store-monad ((image (run-install %minimal-extlinux-os + %minimal-extlinux-os-source + #:packages + (list syslinux) + #:script + %extlinux-gpt-installation-script)) + (command (qemu-command/writable-image image))) + (run-basic-test %minimal-extlinux-os command + "installed-extlinux-os"))))) + ;;; ;;; Separate /home. From fa3f5f472ccceafa537fc66fc896b941a887efe5 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 21 Jun 2017 10:36:07 +0200 Subject: [PATCH 026/145] gnu: Add python-regex. * gnu/packages/python.scm (python-regex, python2-regex): New variables. --- gnu/packages/python.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 775cab6948..251c2b267a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -40,6 +40,7 @@ ;;; Copyright © 2017 Ben Sturmfels ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 José Miguel Sánchez García +;;; Copyright © 2017 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -15423,3 +15424,24 @@ window memory map manager.") (define-public python2-smmap2 (package-with-python2 python-smmap2)) + +(define-public python-regex + (package + (name "python-regex") + (version "2017.06.07") + (source (origin + (method url-fetch) + (uri (pypi-uri "regex" version)) + (sha256 + (base32 + "06r6b7yigikbj3a72whl85r2b64pj1r0ypmw9yalmkm0wnxq8mz4")))) + (build-system python-build-system) + (home-page "https://bitbucket.org/mrabarnett/mrab-regex") + (synopsis "Alternative regular expression module") + (description "This regular expression implementation is backwards- +compatible with the standard @code{re} module, but offers additional +functionality like full case-folding for case-insensitive matches in Unicode.") + (license license:psfl))) + +(define-public python2-regex + (package-with-python2 python-regex)) From a431929d3dadf2dd1e9ed95146c77edffc9ba22f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 21 Jun 2017 10:19:47 +0200 Subject: [PATCH 027/145] gnu: unbound: Do not build static libraries. * gnu/packages/dns.scm (unbound)[arguments]: Add "--disable-static" to #:configure-flags. Suggested by Gregor Giesen . --- gnu/packages/dns.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 6615bb220c..a8d1aed148 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -307,7 +307,8 @@ asynchronous fashion.") ("openssl" ,openssl))) (arguments `(#:configure-flags - (list (string-append + (list "--disable-static" ;save space and non-determinism in libunbound.a + (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")) (string-append "--with-libevent=" (assoc-ref %build-inputs "libevent")) From 55b4715fd4c03e46501f123c5c9bc6072edf12a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 6 Jun 2017 14:01:12 +0200 Subject: [PATCH 028/145] profiles: Represent propagated inputs as manifest entries. * guix/profiles.scm (package->manifest-entry): Turn DEPS into a list of manifest entries. (manifest->gexp)[entry->gexp]: Call 'entry->gexp' on DEPS. Bump version to 3. (sexp->manifest)[infer-dependency]: New procedure. Use it for versions 1 and 2. Parse version 3. (manifest-inputs)[entry->gexp]: New procedure. Adjust to 'dependencies' being a list of . * tests/profiles.scm ("packages->manifest, propagated inputs") ("read-manifest"): New fields. --- guix/profiles.scm | 73 +++++++++++++++++++++++++++++++++------------- tests/profiles.scm | 36 +++++++++++++++++++++++ 2 files changed, 89 insertions(+), 20 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 6733f105e3..a66add3e07 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -154,7 +154,7 @@ (output manifest-entry-output ; string (default "out")) (item manifest-entry-item) ; package | store path - (dependencies manifest-entry-dependencies ; (store path | package)* + (dependencies manifest-entry-dependencies ; * (default '())) (search-paths manifest-entry-search-paths ; search-path-specification* (default '()))) @@ -179,10 +179,10 @@ "Return a manifest entry for the OUTPUT of package PACKAGE." (let ((deps (map (match-lambda ((label package) - (gexp-input package)) + (package->manifest-entry package)) ((label package output) - (gexp-input package output))) - (package-transitive-propagated-inputs package)))) + (package->manifest-entry package output))) + (package-propagated-inputs package)))) (manifest-entry (name (package-name package)) (version (package-version package)) @@ -210,20 +210,20 @@ denoting a specific output of a package." (($ name version output (? string? path) (deps ...) (search-paths ...)) #~(#$name #$version #$output #$path - (propagated-inputs #$deps) + (propagated-inputs #$(map entry->gexp deps)) (search-paths #$(map search-path-specification->sexp search-paths)))) (($ name version output (? package? package) (deps ...) (search-paths ...)) #~(#$name #$version #$output (ungexp package (or output "out")) - (propagated-inputs #$deps) + (propagated-inputs #$(map entry->gexp deps)) (search-paths #$(map search-path-specification->sexp search-paths)))))) (match manifest (($ (entries ...)) - #~(manifest (version 2) + #~(manifest (version 3) (packages #$(map entry->gexp entries)))))) (define (find-package name version) @@ -254,17 +254,27 @@ procedure is here for backward-compatibility and will eventually vanish." (package-native-search-paths package) '()))) + (define (infer-dependency item) + ;; Return a for ITEM. + (let-values (((name version) + (package-name->name+version + (store-path-package-name item)))) + (manifest-entry + (name name) + (version version) + (item item)))) + (match sexp (('manifest ('version 0) ('packages ((name version output path) ...))) (manifest (map (lambda (name version output path) (manifest-entry - (name name) - (version version) - (output output) - (item path) - (search-paths (infer-search-paths name version)))) + (name name) + (version version) + (output output) + (item path) + (search-paths (infer-search-paths name version)))) name version output path))) ;; Version 1 adds a list of propagated inputs to the @@ -286,7 +296,7 @@ procedure is here for backward-compatibility and will eventually vanish." (version version) (output output) (item path) - (dependencies deps) + (dependencies (map infer-dependency deps)) (search-paths (infer-search-paths name version))))) name version output path deps))) @@ -304,10 +314,30 @@ procedure is here for backward-compatibility and will eventually vanish." (version version) (output output) (item path) - (dependencies deps) + (dependencies (map infer-dependency deps)) (search-paths (map sexp->search-path-specification search-paths)))) name version output path deps search-paths))) + + ;; Version 3 represents DEPS as full-blown manifest entries. + (('manifest ('version 3 minor-version ...) + ('packages (entries ...))) + (letrec ((sexp->manifest-entry + (match-lambda + ((name version output path + ('propagated-inputs deps) + ('search-paths search-paths) + extra-stuff ...) + (manifest-entry + (name name) + (version version) + (output output) + (item path) + (dependencies (map sexp->manifest-entry deps)) + (search-paths (map sexp->search-path-specification + search-paths))))))) + + (manifest (map sexp->manifest-entry entries)))) (_ (raise (condition (&message (message "unsupported manifest format"))))))) @@ -471,12 +501,15 @@ replace it." (define (manifest-inputs manifest) "Return a list of objects for MANIFEST." - (append-map (match-lambda - (($ name version output thing deps) - ;; THING may be a package or a file name. In the latter case, - ;; assume it's already valid. Ditto for DEPS. - (cons (gexp-input thing output) deps))) - (manifest-entries manifest))) + (define entry->input + (match-lambda + (($ name version output thing deps) + ;; THING may be a package or a file name. In the latter case, assume + ;; it's already valid. + (cons (gexp-input thing output) + (append-map entry->input deps))))) + + (append-map entry->input (manifest-entries manifest))) (define* (manifest-lookup-package manifest name #:optional version) "Return as a monadic value the first package or store path referenced by diff --git a/tests/profiles.scm b/tests/profiles.scm index 093422792f..e8b1bb832c 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -288,6 +288,42 @@ (manifest-entry-search-paths (package->manifest-entry mpl))))) +(test-equal "packages->manifest, propagated inputs" + (map (match-lambda + ((label package) + (list (package-name package) (package-version package) + package))) + (package-propagated-inputs packages:guile-2.2)) + (map (lambda (entry) + (list (manifest-entry-name entry) + (manifest-entry-version entry) + (manifest-entry-item entry))) + (manifest-entry-dependencies + (package->manifest-entry packages:guile-2.2)))) + +(test-assertm "read-manifest" + (mlet* %store-monad ((manifest -> (packages->manifest + (list (package + (inherit %bootstrap-guile) + (native-search-paths + (package-native-search-paths + packages:guile-2.0)))))) + (drv (profile-derivation manifest + #:hooks '() + #:locales? #f)) + (out -> (derivation->output-path drv))) + (define (entry->sexp entry) + (list (manifest-entry-name entry) + (manifest-entry-version entry) + (manifest-entry-search-paths entry) + (manifest-entry-dependencies entry))) + + (mbegin %store-monad + (built-derivations (list drv)) + (let ((manifest2 (profile-manifest out))) + (return (equal? (map entry->sexp (manifest-entries manifest)) + (map entry->sexp (manifest-entries manifest2)))))))) + (test-assertm "etc/profile" ;; Make sure we get an 'etc/profile' file that at least defines $PATH. (mlet* %store-monad From b3a00885c0a420692ccc4c227252bb44619399d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 6 Jun 2017 15:29:50 +0200 Subject: [PATCH 029/145] profiles: Manifest entries keep a reference to their parent entry. * guix/profiles.scm ()[parent]: New field. (package->manifest-entry): Add #:parent parameter. Fill out the 'parent' field of ; pass #:parent in recursive calls. * guix/profiles.scm (sexp->manifest)[sexp->manifest-entry]: New procedure. Use it for version 3. * tests/profiles.scm ("manifest-entry-parent"): New procedure. ("read-manifest")[entry->sexp]: Add 'manifest-entry-parent' to the result. --- guix/profiles.scm | 120 +++++++++++++++++++++++++++------------------ tests/profiles.scm | 12 ++++- 2 files changed, 83 insertions(+), 49 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index a66add3e07..c85d7ef5cb 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -68,6 +68,7 @@ manifest-entry-item manifest-entry-dependencies manifest-entry-search-paths + manifest-entry-parent manifest-pattern manifest-pattern? @@ -157,7 +158,9 @@ (dependencies manifest-entry-dependencies ; * (default '())) (search-paths manifest-entry-search-paths ; search-path-specification* - (default '()))) + (default '())) + (parent manifest-entry-parent ; promise (#f | ) + (default (delay #f)))) (define-record-type* manifest-pattern make-manifest-pattern @@ -175,21 +178,28 @@ (call-with-input-file file read-manifest) (manifest '())))) -(define* (package->manifest-entry package #:optional (output "out")) +(define* (package->manifest-entry package #:optional (output "out") + #:key (parent (delay #f))) "Return a manifest entry for the OUTPUT of package PACKAGE." - (let ((deps (map (match-lambda - ((label package) - (package->manifest-entry package)) - ((label package output) - (package->manifest-entry package output))) - (package-propagated-inputs package)))) - (manifest-entry - (name (package-name package)) - (version (package-version package)) - (output output) - (item package) - (dependencies (delete-duplicates deps)) - (search-paths (package-transitive-native-search-paths package))))) + ;; For each dependency, keep a promise pointing to its "parent" entry. + (letrec* ((deps (map (match-lambda + ((label package) + (package->manifest-entry package + #:parent (delay entry))) + ((label package output) + (package->manifest-entry package output + #:parent (delay entry)))) + (package-propagated-inputs package))) + (entry (manifest-entry + (name (package-name package)) + (version (package-version package)) + (output output) + (item package) + (dependencies (delete-duplicates deps)) + (search-paths + (package-transitive-native-search-paths package)) + (parent parent)))) + entry)) (define (packages->manifest packages) "Return a list of manifest entries, one for each item listed in PACKAGES. @@ -254,7 +264,7 @@ procedure is here for backward-compatibility and will eventually vanish." (package-native-search-paths package) '()))) - (define (infer-dependency item) + (define (infer-dependency item parent) ;; Return a for ITEM. (let-values (((name version) (package-name->name+version @@ -262,7 +272,28 @@ procedure is here for backward-compatibility and will eventually vanish." (manifest-entry (name name) (version version) - (item item)))) + (item item) + (parent parent)))) + + (define* (sexp->manifest-entry sexp #:optional (parent (delay #f))) + (match sexp + ((name version output path + ('propagated-inputs deps) + ('search-paths search-paths) + extra-stuff ...) + ;; For each of DEPS, keep a promise pointing to ENTRY. + (letrec* ((deps* (map (cut sexp->manifest-entry <> (delay entry)) + deps)) + (entry (manifest-entry + (name name) + (version version) + (output output) + (item path) + (dependencies deps*) + (search-paths (map sexp->search-path-specification + search-paths)) + (parent parent)))) + entry)))) (match sexp (('manifest ('version 0) @@ -291,13 +322,17 @@ procedure is here for backward-compatibility and will eventually vanish." directories) ((directories ...) directories)))) - (manifest-entry - (name name) - (version version) - (output output) - (item path) - (dependencies (map infer-dependency deps)) - (search-paths (infer-search-paths name version))))) + (letrec* ((deps* (map (cute infer-dependency <> (delay entry)) + deps)) + (entry (manifest-entry + (name name) + (version version) + (output output) + (item path) + (dependencies deps*) + (search-paths + (infer-search-paths name version))))) + entry))) name version output path deps))) ;; Version 2 adds search paths and is slightly more verbose. @@ -309,35 +344,24 @@ procedure is here for backward-compatibility and will eventually vanish." ...))) (manifest (map (lambda (name version output path deps search-paths) - (manifest-entry - (name name) - (version version) - (output output) - (item path) - (dependencies (map infer-dependency deps)) - (search-paths (map sexp->search-path-specification - search-paths)))) + (letrec* ((deps* (map (cute infer-dependency <> (delay entry)) + deps)) + (entry (manifest-entry + (name name) + (version version) + (output output) + (item path) + (dependencies deps*) + (search-paths + (map sexp->search-path-specification + search-paths))))) + entry)) name version output path deps search-paths))) ;; Version 3 represents DEPS as full-blown manifest entries. (('manifest ('version 3 minor-version ...) ('packages (entries ...))) - (letrec ((sexp->manifest-entry - (match-lambda - ((name version output path - ('propagated-inputs deps) - ('search-paths search-paths) - extra-stuff ...) - (manifest-entry - (name name) - (version version) - (output output) - (item path) - (dependencies (map sexp->manifest-entry deps)) - (search-paths (map sexp->search-path-specification - search-paths))))))) - - (manifest (map sexp->manifest-entry entries)))) + (manifest (map sexp->manifest-entry entries))) (_ (raise (condition (&message (message "unsupported manifest format"))))))) diff --git a/tests/profiles.scm b/tests/profiles.scm index e8b1bb832c..94759c05ef 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -301,6 +301,15 @@ (manifest-entry-dependencies (package->manifest-entry packages:guile-2.2)))) +(test-assert "manifest-entry-parent" + (let ((entry (package->manifest-entry packages:guile-2.2))) + (match (manifest-entry-dependencies entry) + ((dependencies ..1) + (and (every (lambda (parent) + (eq? entry (force parent))) + (map manifest-entry-parent dependencies)) + (not (force (manifest-entry-parent entry)))))))) + (test-assertm "read-manifest" (mlet* %store-monad ((manifest -> (packages->manifest (list (package @@ -316,7 +325,8 @@ (list (manifest-entry-name entry) (manifest-entry-version entry) (manifest-entry-search-paths entry) - (manifest-entry-dependencies entry))) + (manifest-entry-dependencies entry) + (force (manifest-entry-parent entry)))) (mbegin %store-monad (built-derivations (list drv)) From 81e3485c0d012e29d4e551107fc31c0da89b0006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 7 Jun 2017 11:15:29 +0200 Subject: [PATCH 030/145] guix package: Always upgrade packages that have propagated inputs. * guix/scripts/package.scm (transaction-upgrade-entry): Always upgrade packages that have propagated inputs. --- guix/scripts/package.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index a6bfb03ae4..5e19df5e43 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -312,7 +312,10 @@ of relevance scores." ((=) (let ((candidate-path (derivation->output-path (package-derivation (%store) pkg)))) - (if (string=? path candidate-path) + ;; XXX: When there are propagated inputs, assume we need to + ;; upgrade the whole entry. + (if (and (string=? path candidate-path) + (null? (package-propagated-inputs pkg))) transaction (manifest-transaction-install-entry (package->manifest-entry pkg output) From a654dc4bcf7c8e205bdefa1a1d5f23444dd22778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 7 Jun 2017 09:51:55 +0200 Subject: [PATCH 031/145] profiles: Catch and report collisions in the profile. * guix/profiles.scm (&profile-collision-error): New error condition. (manifest-transitive-entries, manifest-entry-lookup, lower-manifest-entry) (check-for-collisions): New procedures. (profile-derivation): Add call to 'check-for-collisions'. * guix/ui.scm (call-with-error-handling): Handle '&profile-collision-error'. * tests/profiles.scm ("collision", "collision of propagated inputs") ("no collision"): New tests. --- guix/profiles.scm | 113 +++++++++++++++++++++++++++++++++++++++++---- guix/ui.scm | 27 +++++++++++ tests/profiles.scm | 66 ++++++++++++++++++++++++++ 3 files changed, 197 insertions(+), 9 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index c85d7ef5cb..9858ec7b35 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -35,6 +35,8 @@ #:use-module (guix gexp) #:use-module (guix monads) #:use-module (guix store) + #:use-module (guix sets) + #:use-module (ice-9 vlist) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (ice-9 ftw) @@ -51,6 +53,10 @@ profile-error-profile &profile-not-found-error profile-not-found-error? + &profile-collistion-error + profile-collision-error? + profile-collision-error-entry + profile-collision-error-conflict &missing-generation-error missing-generation-error? missing-generation-error-generation @@ -58,6 +64,7 @@ manifest make-manifest manifest? manifest-entries + manifest-transitive-entries ; FIXME: eventually make it internal manifest-entry @@ -130,6 +137,11 @@ (define-condition-type &profile-not-found-error &profile-error profile-not-found-error?) +(define-condition-type &profile-collision-error &error + profile-collision-error? + (entry profile-collision-error-entry) ; + (conflict profile-collision-error-conflict)) ; + (define-condition-type &missing-generation-error &profile-error missing-generation-error? (generation missing-generation-error-generation)) @@ -147,6 +159,23 @@ ;; Convenient alias, to avoid name clashes. (define make-manifest manifest) +(define (manifest-transitive-entries manifest) + "Return the entries of MANIFEST along with their propagated inputs, +recursively." + (let loop ((entries (manifest-entries manifest)) + (result '()) + (visited (set))) ;compare with 'equal?' + (match entries + (() + (reverse result)) + ((head . tail) + (if (set-contains? visited head) + (loop tail result visited) + (loop (append (manifest-entry-dependencies head) + tail) + (cons head result) + (set-insert head visited))))))) + (define-record-type* manifest-entry make-manifest-entry manifest-entry? @@ -178,6 +207,70 @@ (call-with-input-file file read-manifest) (manifest '())))) +(define (manifest-entry-lookup manifest) + "Return a lookup procedure for the entries of MANIFEST. The lookup +procedure takes two arguments: the entry name and output." + (define mapping + (let loop ((entries (manifest-entries manifest)) + (mapping vlist-null)) + (fold (lambda (entry result) + (vhash-cons (cons (manifest-entry-name entry) + (manifest-entry-output entry)) + entry + (loop (manifest-entry-dependencies entry) + result))) + mapping + entries))) + + (lambda (name output) + (match (vhash-assoc (cons name output) mapping) + ((_ . entry) entry) + (#f #f)))) + +(define* (lower-manifest-entry entry system #:key target) + "Lower ENTRY for SYSTEM and TARGET such that its 'item' field is a store +file name." + (let ((item (manifest-entry-item entry))) + (if (string? item) + (with-monad %store-monad + (return entry)) + (mlet %store-monad ((drv (lower-object item system + #:target target)) + (output -> (manifest-entry-output entry))) + (return (manifest-entry + (inherit entry) + (item (derivation->output-path drv output)))))))) + +(define* (check-for-collisions manifest system #:key target) + "Check whether the entries of MANIFEST conflict with one another; raise a +'&profile-collision-error' when a conflict is encountered." + (define lookup + (manifest-entry-lookup manifest)) + + (with-monad %store-monad + (foldm %store-monad + (lambda (entry result) + (match (lookup (manifest-entry-name entry) + (manifest-entry-output entry)) + ((? manifest-entry? second) ;potential conflict + (mlet %store-monad ((first (lower-manifest-entry entry system + #:target + target)) + (second (lower-manifest-entry second system + #:target + target))) + (if (string=? (manifest-entry-item first) + (manifest-entry-item second)) + (return result) + (raise (condition + (&profile-collision-error + (entry first) + (conflict second))))))) + (#f ;no conflict + (return result)))) + #t + (manifest-transitive-entries manifest)))) + (define* (package->manifest-entry package #:optional (output "out") #:key (parent (delay #f))) "Return a manifest entry for the OUTPUT of package PACKAGE." @@ -1116,15 +1209,17 @@ a dependency on the 'glibc-utf8-locales' package. When TARGET is true, it must be a GNU triplet, and the packages in MANIFEST are cross-built for TARGET." - (mlet %store-monad ((system (if system - (return system) - (current-system))) - (extras (if (null? (manifest-entries manifest)) - (return '()) - (sequence %store-monad - (map (lambda (hook) - (hook manifest)) - hooks))))) + (mlet* %store-monad ((system (if system + (return system) + (current-system))) + (ok? (check-for-collisions manifest system + #:target target)) + (extras (if (null? (manifest-entries manifest)) + (return '()) + (sequence %store-monad + (map (lambda (hook) + (hook manifest)) + hooks))))) (define inputs (append (filter-map (lambda (drv) (and (derivation? drv) diff --git a/guix/ui.scm b/guix/ui.scm index 889c9d0228..c141880316 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -476,6 +476,33 @@ interpreted." (leave (G_ "generation ~a of profile '~a' does not exist~%") (missing-generation-error-generation c) (profile-error-profile c))) + ((profile-collision-error? c) + (let ((entry (profile-collision-error-entry c)) + (conflict (profile-collision-error-conflict c))) + (define (report-parent-entries entry) + (let ((parent (force (manifest-entry-parent entry)))) + (when (manifest-entry? parent) + (report-error (G_ " ... propagated from ~a@~a~%") + (manifest-entry-name parent) + (manifest-entry-version parent)) + (report-parent-entries parent)))) + + (report-error (G_ "profile contains conflicting entries for ~a:~a~%") + (manifest-entry-name entry) + (manifest-entry-output entry)) + (report-error (G_ " first entry: ~a@~a:~a ~a~%") + (manifest-entry-name entry) + (manifest-entry-version entry) + (manifest-entry-output entry) + (manifest-entry-item entry)) + (report-parent-entries entry) + (report-error (G_ " second entry: ~a@~a:~a ~a~%") + (manifest-entry-name conflict) + (manifest-entry-version conflict) + (manifest-entry-output conflict) + (manifest-entry-item conflict)) + (report-parent-entries conflict) + (exit 1))) ((nar-error? c) (let ((file (nar-error-file c)) (port (nar-error-port c))) diff --git a/tests/profiles.scm b/tests/profiles.scm index 94759c05ef..f731807e8c 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -35,6 +35,7 @@ #:use-module (rnrs io ports) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) + #:use-module (srfi srfi-34) #:use-module (srfi srfi-64)) ;; Test the (guix profiles) module. @@ -334,6 +335,71 @@ (return (equal? (map entry->sexp (manifest-entries manifest)) (map entry->sexp (manifest-entries manifest2)))))))) +(test-equal "collision" + '(("guile-bootstrap" "2.0") ("guile-bootstrap" "42")) + (guard (c ((profile-collision-error? c) + (let ((entry1 (profile-collision-error-entry c)) + (entry2 (profile-collision-error-conflict c))) + (list (list (manifest-entry-name entry1) + (manifest-entry-version entry1)) + (list (manifest-entry-name entry2) + (manifest-entry-version entry2)))))) + (run-with-store %store + (mlet* %store-monad ((p0 -> (package + (inherit %bootstrap-guile) + (version "42"))) + (p1 -> (dummy-package "p1" + (propagated-inputs `(("p0" ,p0))))) + (manifest -> (packages->manifest + (list %bootstrap-guile p1))) + (drv (profile-derivation manifest + #:hooks '() + #:locales? #f))) + (return #f))))) + +(test-equal "collision of propagated inputs" + '(("guile-bootstrap" "2.0") ("guile-bootstrap" "42")) + (guard (c ((profile-collision-error? c) + (let ((entry1 (profile-collision-error-entry c)) + (entry2 (profile-collision-error-conflict c))) + (list (list (manifest-entry-name entry1) + (manifest-entry-version entry1)) + (list (manifest-entry-name entry2) + (manifest-entry-version entry2)))))) + (run-with-store %store + (mlet* %store-monad ((p0 -> (package + (inherit %bootstrap-guile) + (version "42"))) + (p1 -> (dummy-package "p1" + (propagated-inputs + `(("guile" ,%bootstrap-guile))))) + (p2 -> (dummy-package "p2" + (propagated-inputs + `(("guile" ,p0))))) + (manifest -> (packages->manifest (list p1 p2))) + (drv (profile-derivation manifest + #:hooks '() + #:locales? #f))) + (return #f))))) + +(test-assertm "no collision" + ;; Here we have an entry that is "lowered" (its 'item' field is a store file + ;; name) and another entry (its 'item' field is a package) that is + ;; equivalent. + (mlet* %store-monad ((p -> (dummy-package "p" + (propagated-inputs + `(("guile" ,%bootstrap-guile))))) + (guile (package->derivation %bootstrap-guile)) + (entry -> (manifest-entry + (inherit (package->manifest-entry + %bootstrap-guile)) + (item (derivation->output-path guile)))) + (manifest -> (manifest + (list entry + (package->manifest-entry p)))) + (drv (profile-derivation manifest))) + (return (->bool drv)))) + (test-assertm "etc/profile" ;; Make sure we get an 'etc/profile' file that at least defines $PATH. (mlet* %store-monad From 8c9e90debf1e7af3da167e34dcdc405b16f339e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 21 Jun 2017 10:57:10 +0200 Subject: [PATCH 032/145] guix package: '--search-paths' shows search paths from propagated inputs. * guix/scripts/package.scm (process-query) <'search-paths>: Use 'manifest-transitive-entries' instead of 'manifest-entries'. --- guix/scripts/package.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 5e19df5e43..4834da9271 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -789,7 +789,8 @@ processed, #f otherwise." (('search-paths kind) (let* ((manifests (map profile-manifest profiles)) - (entries (append-map manifest-entries manifests)) + (entries (append-map manifest-transitive-entries + manifests)) (profiles (map user-friendly-profile profiles)) (settings (search-path-environment-variables entries profiles (const #f) From 1804d21017ddc3626881105efaece5809b66dcb4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 20 Jun 2017 13:17:02 +0300 Subject: [PATCH 033/145] gnu: efl: Add missing inputs. * gnu/packages/enlightenment.scm (efl)[inputs]: Add libxau, libxdamage, libxfixes, libxrender. Remove libxkbfile. --- gnu/packages/enlightenment.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 50da8c8d2f..866db9687c 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -86,15 +86,18 @@ ("libtiff" ,libtiff) ("libwebp" ,libwebp) ("libx11" ,libx11) + ("libxau" ,libxau) ("libxcomposite" ,libxcomposite) ("libxcursor" ,libxcursor) + ("libxdamage" ,libxdamage) ("libxdmcp" ,libxdmcp) ("libxext" ,libxext) ("libxi" ,libxi) - ("libxkbfile" ,libxkbfile) + ("libxfixes" ,libxfixes) ("libxinerama" ,libxinerama) ("libxp" ,libxp) ("libxrandr" ,libxrandr) + ("libxrender" ,libxrender) ("libxscrnsaver" ,libxscrnsaver) ("libxtst" ,libxtst) ("lz4" ,lz4) From 2e2b5ad7bbf6cf693519e51500ad1cc7dce93ef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 21 Jun 2017 11:58:39 +0200 Subject: [PATCH 034/145] profiles: Move 'manifest-entry-dependencies' user after definition. Reported by Efraim Flashner. * guix/profiles.scm (manifest-transitive-entries): Move after definition. --- guix/profiles.scm | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 9858ec7b35..0c70975f7e 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -159,23 +159,6 @@ ;; Convenient alias, to avoid name clashes. (define make-manifest manifest) -(define (manifest-transitive-entries manifest) - "Return the entries of MANIFEST along with their propagated inputs, -recursively." - (let loop ((entries (manifest-entries manifest)) - (result '()) - (visited (set))) ;compare with 'equal?' - (match entries - (() - (reverse result)) - ((head . tail) - (if (set-contains? visited head) - (loop tail result visited) - (loop (append (manifest-entry-dependencies head) - tail) - (cons head result) - (set-insert head visited))))))) - (define-record-type* manifest-entry make-manifest-entry manifest-entry? @@ -200,6 +183,23 @@ recursively." (output manifest-pattern-output ; string | #f (default "out"))) +(define (manifest-transitive-entries manifest) + "Return the entries of MANIFEST along with their propagated inputs, +recursively." + (let loop ((entries (manifest-entries manifest)) + (result '()) + (visited (set))) ;compare with 'equal?' + (match entries + (() + (reverse result)) + ((head . tail) + (if (set-contains? visited head) + (loop tail result visited) + (loop (append (manifest-entry-dependencies head) + tail) + (cons head result) + (set-insert head visited))))))) + (define (profile-manifest profile) "Return the PROFILE's manifest." (let ((file (string-append profile "/manifest"))) From 44fa0dbec72eee1903ebbbf4b2fa99487dab7d05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 21 Jun 2017 14:52:30 +0200 Subject: [PATCH 035/145] services: network-manager: Specify a default value. * gnu/services/networking.scm (network-manager-service-type)[default-value]: New field. --- gnu/services/networking.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 99a3d493c5..c381581896 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -927,7 +927,8 @@ dns=" dns " (service-extension activation-service-type (const %network-manager-activation)) ;; Add network-manager to the system profile. - (service-extension profile-service-type config->package)))))) + (service-extension profile-service-type config->package))) + (default-value (network-manager-configuration))))) ;;; From cba988ed859616f3a36f88f2984d42417447dfa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 21 Jun 2017 16:33:51 +0200 Subject: [PATCH 036/145] gnu: a2ps: Build reproducibly. * gnu/packages/pretty-print.scm (a2ps)[source](modules, snippet): New fields. --- gnu/packages/pretty-print.scm | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index 8cee89dd49..9de2819749 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,17 +44,22 @@ (package (name "a2ps") (version "4.14") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/a2ps/a2ps-" - version ".tar.gz")) - (sha256 - (base32 - "195k78m1h03m961qn7jr120z815iyb93gwi159p1p9348lyqvbpk")) - (patches (search-patches - "a2ps-CVE-2001-1593.patch" - "a2ps-CVE-2014-0466.patch")))) + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/a2ps/a2ps-" + version ".tar.gz")) + (sha256 + (base32 + "195k78m1h03m961qn7jr120z815iyb93gwi159p1p9348lyqvbpk")) + (modules '((guix build utils))) + (snippet + ;; Remove timestamp from the installed 'README' file. + '(substitute* "etc/README.in" + (("@date@") + "1st of some month, sometime after 1970"))) + (patches (search-patches + "a2ps-CVE-2001-1593.patch" + "a2ps-CVE-2014-0466.patch")))) (build-system gnu-build-system) (inputs `(("psutils" ,psutils) From afd06f605bf88a796acefc7ed598b43879346a6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 21 Jun 2017 16:50:59 +0200 Subject: [PATCH 037/145] environment: Disable profile collision checks. Reported by Efraim Flashner. This is a followup to a654dc4bcf7c8e205bdefa1a1d5f23444dd22778. * guix/profiles.scm (profile-derivation): Add #:allow-collisions? and honor it. * guix/scripts/environment.scm (inputs->profile-derivation): Pass #:allow-collisions? #f to 'profile-derivation'. * tests/guix-environment.sh: Test "guix environment guix". --- guix/profiles.scm | 10 ++++++++-- guix/scripts/environment.scm | 7 +++++++ tests/guix-environment.sh | 4 ++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 0c70975f7e..dcb5186c7a 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1199,10 +1199,14 @@ the entries in MANIFEST." #:key (hooks %default-profile-hooks) (locales? #t) + (allow-collisions? #f) system target) "Return a derivation that builds a profile (aka. 'user environment') with the given MANIFEST. The profile includes additional derivations returned by the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc. +Unless ALLOW-COLLISIONS? is true, a '&profile-collision-error' is raised if +entries in MANIFEST collide (for instance if there are two same-name packages +with a different version number.) When LOCALES? is true, the build is performed under a UTF-8 locale; this adds a dependency on the 'glibc-utf8-locales' package. @@ -1212,8 +1216,10 @@ are cross-built for TARGET." (mlet* %store-monad ((system (if system (return system) (current-system))) - (ok? (check-for-collisions manifest system - #:target target)) + (ok? (if allow-collisions? + (return #t) + (check-for-collisions manifest system + #:target target))) (extras (if (null? (manifest-entries manifest)) (return '()) (sequence %store-monad diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index af69e2b730..0abc509a35 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -323,6 +323,13 @@ BOOTSTRAP? specifies whether to use the bootstrap Guile to build the profile." (profile-derivation (packages->manifest inputs) #:system system + + ;; Packages can have conflicting inputs, or explicit + ;; inputs that conflict with implicit inputs (e.g., gcc, + ;; gzip, etc.). Thus, do not error out when we + ;; encounter collision. + #:allow-collisions? #t + #:hooks (if bootstrap? '() %default-profile-hooks) diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index 9115949123..bf5ca17fa5 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -105,6 +105,10 @@ else test $? = 42 fi +# Make sure we can build the environment of 'guix'. There may be collisions +# in its profile (e.g., for 'gzip'), but we have to accept them. +guix environment guix --bootstrap -n + if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null then # Compute the build environment for the initial GNU Make. From f3853a259b9b0588f6ae4f32c5c56a77ab096e86 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 10 Jun 2017 11:59:18 +0200 Subject: [PATCH 038/145] gnu: services: use seconds instead of duration strings. * gnu/services/dns.scm (zone-file, knot-policy-configuration): Use numbers instead of duration strings. (verify-knot-policy-configuration): Fix typo. * doc/guix.texi (DNS Services): Update documentation. --- doc/guix.texi | 29 ++++++++++++----------------- gnu/services/dns.scm | 20 ++++++++++---------- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 4933a98ddb..87147802b3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13907,26 +13907,21 @@ The serial number of the zone. As this is used to keep track of changes by both slaves and resolvers, it is mandatory that it @emph{never} decreases. Always increment it when you make a change in your zone. -@item @code{refresh} (default: @code{"2d"}) -The frequency at which slaves will do a zone transfer. This value can be -a number of seconds or a number of some unit between: -@itemize -@item m: minute -@item h: hour -@item d: day -@item w: week -@end itemize +@item @code{refresh} (default: @code{(* 2 24 3600)}) +The frequency at which slaves will do a zone transfer. This value is a number +of seconds. It can be computed by multiplications or with +@code{(string->duration)}. -@item @code{retry} (default: @code{"15m"}) +@item @code{retry} (default: @code{(* 15 60)}) The period after which a slave will retry to contact its master when it fails to do so a first time. -@item @code{expiry} (default: @code{"2w"}) +@item @code{expiry} (default: @code{(* 14 24 3600)}) Default TTL of records. Existing records are considered correct for at most this amount of time. After this period, resolvers will invalidate their cache and check again that it still exists. -@item @code{nx} (default: @code{"1h"}) +@item @code{nx} (default: @code{3600}) Default TTL of inexistant records. This delay is usually short because you want your new domains to reach everyone quickly. @@ -14029,17 +14024,17 @@ algorithm, but would be unsecure for other algorithms. The TTL value for DNSKEY records added into zone apex. The special @code{'default} value means same as the zone SOA TTL. -@item @code{zsk-lifetime} (default: @code{"30d"}) +@item @code{zsk-lifetime} (default: @code{(* 30 24 3600)}) The period between ZSK publication and the next rollover initiation. -@item @code{propagation-delay} (default: @code{"1d"}) +@item @code{propagation-delay} (default: @code{(* 24 3600)}) An extra delay added for each key rollover step. This value should be high enough to cover propagation of data from the master server to all slaves. -@item @code{rrsig-lifetime} (default: @code{"14d"}) +@item @code{rrsig-lifetime} (default: @code{(* 14 24 3600)}) A validity period of newly issued signatures. -@item @code{rrsig-refresh} (default: @code{"7d"}) +@item @code{rrsig-refresh} (default: @code{(* 7 24 3600)}) A period how long before a signature expiration the signature will be refreshed. @item @code{nsec3?} (default: @code{#f}) @@ -14052,7 +14047,7 @@ The number of additional times the hashing is performed. The length of a salt field in octets, which is appended to the original owner name before hashing. -@item @code{nsec3-salt-lifetime} (default: @code{"30d"}) +@item @code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)}) The validity period of newly issued salt field. @end table diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm index 2ed7b9e22f..673ab1a98d 100644 --- a/gnu/services/dns.scm +++ b/gnu/services/dns.scm @@ -99,13 +99,13 @@ (serial zone-file-serial (default 1)) (refresh zone-file-refresh - (default "2d")) + (default (* 2 24 3600))) (retry zone-file-retry - (default "15m")) + (default (* 15 60))) (expiry zone-file-expiry - (default "2w")) + (default (* 2 7 24 3600))) (nx zone-file-nx - (default "1h"))) + (default 3600))) (define-record-type* knot-keystore-configuration make-knot-keystore-configuration knot-keystore-configuration? @@ -136,13 +136,13 @@ (dnskey-ttl knot-policy-configuration-dnskey-ttl (default 'default)) (zsk-lifetime knot-policy-configuration-zsk-lifetime - (default "30d")) + (default (* 30 24 3600))) (propagation-delay knot-policy-configuration-propagation-delay - (default "1d")) + (default (* 24 3600))) (rrsig-lifetime knot-policy-configuration-rrsig-lifetime - (default "14d")) + (default (* 14 24 3600))) (rrsig-refresh knot-policy-configuration-rrsig-refresh - (default "7d")) + (default (* 7 24 3600))) (nsec3? knot-policy-configuration-nsec3? (default #f)) (nsec3-iterations knot-policy-configuration-nsec3-iterations @@ -150,7 +150,7 @@ (nsec3-salt-length knot-policy-configuration-nsec3-salt-length (default 8)) (nsec3-salt-lifetime knot-policy-configuration-nsec3-salt-lifetime - (default "30d"))) + (default (* 30 24 3600)))) (define-record-type* knot-zone-configuration make-knot-zone-configuration @@ -248,7 +248,7 @@ (error-out "backend must be one of: 'pem or 'pkcs11"))) (define (verify-knot-policy-configuration policy) - (unless (knot-keystore-configuration? policy) + (unless (knot-policy-configuration? policy) (error-out "policies must be a list of only knot-policy-configuration.")) (let ((id (knot-policy-configuration-id policy))) (unless (and (string? id) (not (equal? id ""))) From f885fc05128d49e66948456bc70b5ff058b190e6 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 20 Jun 2017 02:08:25 +0530 Subject: [PATCH 039/145] gnu: gsl: Update to 2.4. * gnu/packages/maths.scm (gsl): Update to 2.4. [arguments]: Remove #:parallel-tests?. --- gnu/packages/maths.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 41e6b259e9..1115cef598 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -258,19 +258,18 @@ semiconductors.") (define-public gsl (package (name "gsl") - (version "2.3") + (version "2.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gsl/gsl-" version ".tar.gz")) (sha256 (base32 - "1yxdzqjwmi2aid650fa9zyr8llw069x7lm489wx9nnfdi6vh09an")) + "16yfs5n444s03np1naj6yp1fsysd42kdscxzkg0k2yvfjixx0ijd")) (patches (search-patches "gsl-test-i686.patch")))) (build-system gnu-build-system) (arguments - `(#:parallel-tests? #f - ;; Currently there are numerous tests that fail on "exotic" + `(;; Currently there are numerous tests that fail on "exotic" ;; architectures such as aarch64 and ppc64le. ,@(if (string-prefix? "aarch64-linux" (or (%current-target-system) (%current-system))) From a8bcc5ffe9135035a5b5539c0ce315f1e8278332 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 21 Jun 2017 02:01:12 -0400 Subject: [PATCH 040/145] gnu: opus: Update to 1.2. * gnu/packages/xiph.scm (opus): Update to 1.2. [home-page]: Use HTTPS URL. --- gnu/packages/xiph.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 7b02980159..397f4a97d2 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -322,7 +322,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about (define opus (package (name "opus") - (version "1.1.4") + (version "1.2") (source (origin (method url-fetch) (uri (string-append @@ -330,7 +330,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about ".tar.gz")) (sha256 (base32 - "14l6kpapmcnvl7p9hrmbqcnzj13zfzyppyc9a5kd4788h2rvc8li")))) + "1ad9q2g9vivx409jdsslv1hrh5r616qz2pjm96y8ymsigfl4bnvp")))) (build-system gnu-build-system) (synopsis "Versatile audio codec") (description @@ -340,7 +340,7 @@ but is also intended for storage and streaming applications. It is standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.") (license license:bsd-3) - (home-page "http://www.opus-codec.org"))) + (home-page "https://www.opus-codec.org"))) (define opus-tools (package From 99d8b079817650d8e8ebb1f38be0597f72ece5a1 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 21 Jun 2017 02:01:30 -0400 Subject: [PATCH 041/145] gnu: opus-tools: Update to 0.1.10. * gnu/packages/xiph.scm (opus-tools): Update to 0.1.10. [home-page]: Use HTTPS URL. --- gnu/packages/xiph.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 397f4a97d2..5f6f47f305 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -345,7 +345,7 @@ incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.") (define opus-tools (package (name "opus-tools") - (version "0.1.9") + (version "0.1.10") (source (origin (method url-fetch) (uri (string-append @@ -353,7 +353,7 @@ incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.") version ".tar.gz")) (sha256 (base32 - "0fk4nknvl111k89j5yckmyrh6b2wvgyhrqfncp7rig3zikbkv1xi")))) + "135jfb9ny3xvd27idsxj7j5ns90lslbyrq70cq3bfwcls4r7add2")))) (build-system gnu-build-system) (arguments ;; The package developers misuse pkg-config such that it doesn't work @@ -373,7 +373,7 @@ incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.") Opus-tools provide command line utilities for creating, inspecting and decoding .opus files.") (license license:bsd-3) - (home-page "http://www.opus-codec.org"))) + (home-page "https://www.opus-codec.org"))) (define opusfile (package From 7641266b0328f8a3a4f3643560d00dcf82d539b3 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 21 Jun 2017 02:49:55 -0400 Subject: [PATCH 042/145] gnu: mpd: Build with the default GCC. * gnu/packages/mpd.scm (mpd)[native-inputs]: Remove gcc-5. --- gnu/packages/mpd.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 11ca2d1979..5692ff6766 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -117,8 +117,7 @@ interfacing MPD in the C, C++ & Objective C languages.") ("pulseaudio" ,pulseaudio) ("sqlite" ,sqlite) ("zlib" ,zlib))) - (native-inputs `(("gcc" ,gcc-5) ; Fails to build with GCC@4. - ("pkg-config" ,pkg-config))) + (native-inputs `(("pkg-config" ,pkg-config))) ;; Missing optional inputs: ;; libyajl ;; libcdio_paranoia From 0b84a530c8f7384c86484f634462bbbddb84d585 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 18 Jun 2017 19:01:53 +0200 Subject: [PATCH 043/145] gnu: python-vobject: Update to 0.9.4.1. * gnu/packages/python.scm (python-vobject): Update to 0.9.4.1. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 251c2b267a..9f891669d7 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10201,13 +10201,13 @@ introspection of @code{zope.interface} instances in code.") (define-public python-vobject (package (name "python-vobject") - (version "0.9.2") + (version "0.9.4.1") (source (origin (method url-fetch) (uri (pypi-uri "vobject" version)) (sha256 (base32 - "1qfnwlx8qwkgr6nf5wvl6ff1r3kll53dh3z6nyp173nmlhhhqccb")))) + "0741h2cf743sbk89dpfm1yca26l4s159nzvy6vv8xg72nd7pvsps")))) (build-system python-build-system) (arguments '(;; The test suite relies on some non-portable Windows interfaces. From 5150d8b4b4b993af1d2d2527c69ee1bcc74a84a3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Jun 2017 13:29:46 +0200 Subject: [PATCH 044/145] gnu: python-eventlet: Skip failing test phase. * gnu/packages/python.scm (python-eventlet)[arguments]: Disable tests. --- gnu/packages/python.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9f891669d7..67a52bc9db 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1047,6 +1047,9 @@ etc.). The package is structured to make adding new modules easy.") (build-system python-build-system) (propagated-inputs `(("python-greenlet" ,python-greenlet))) + (arguments + ;; TODO: Requires unpackaged 'enum-compat'. + '(#:tests? #f)) (home-page "http://eventlet.net") (synopsis "Concurrent networking library for Python") (description From 3b66438983cb6ca33b637e6db495c02ff5a8361a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Jun 2017 13:29:06 +0200 Subject: [PATCH 045/145] gnu: python-hacking: Update to 0.13.0. * gnu/packages/openstack.scm (python-hacking): Update to 0.13.0. [arguments]: Re-enable tests. [propagated-inputs]: Use latest python-flake8. [native-inputs]: Add python-eventlet, python-mock, python-reno, and python-testrepository for tests. --- gnu/packages/openstack.scm | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 23859b85c2..86d1ce9978 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -113,32 +113,33 @@ manner.") (define-public python-hacking (package (name "python-hacking") - (version "0.10.2") + (version "0.13.0") (source (origin (method url-fetch) (uri (pypi-uri "hacking" version)) (sha256 (base32 - "1a310k3dv04jg7zvmk37h2ql7y9kf4hvdxb74bjlwdxgmy6h4wap")))) + "1s1wq2sds6fjp8rwz31vkp33kjl9nyk5y2g2pri8shic75dr00h4")))) (build-system python-build-system) - (arguments - ;; TODO: Requires unpackaged 'eventlet'. - '(#:tests? #f)) (propagated-inputs - `(("python-flake8-2.2.4" ,python-flake8-2.2.4) - ("python-mccabe-0.2.1" ,python-mccabe-0.2.1) - ("python-pbr" ,python-pbr) - ("python-pep8-1.5.7" ,python-pep8-1.5.7) - ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1) - ("python-six" ,python-six))) + `(("python-flake8" ,python-flake8) + ("python-mccabe-0.2.1" ,python-mccabe-0.2.1) + ("python-pbr" ,python-pbr) + ("python-pep8-1.5.7" ,python-pep8-1.5.7) + ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1) + ("python-six" ,python-six))) (native-inputs - `(;; Tests - ("python-testscenarios" ,python-testscenarios))) + `( ;; Tests + ("python-eventlet" ,python-eventlet) + ("python-mock" ,python-mock) + ("python-reno" ,python-reno) + ("python-testrepository" ,python-testrepository) + ("python-testscenarios" ,python-testscenarios))) (home-page "https://github.com/openstack-dev/hacking") (synopsis "OpenStack hacking guideline enforcement") (description - "Python-hacking is a set of flake8 plugins that test and enforce the + "Python-hacking is a set of flake8 plugins that test and enforce the @uref{http://docs.openstack.org/developer/hacking/, OpenStack style guidelines}.") (license asl2.0))) From 636437ec5086ca6525fac5f236d4b466958d5970 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Jun 2017 13:34:57 +0200 Subject: [PATCH 046/145] gnu: Remove unused python-flake8-2.2.4. * gnu/packages/python.scm (python-flake8-2.2.4): Remove variable. --- gnu/packages/python.scm | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 67a52bc9db..de42d3d56e 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6521,40 +6521,6 @@ complexity of Python source code.") (define-public python2-flake8 (package-with-python2 python-flake8)) -;; This will only be needed by the python-hacking package and will not be -;; necessary once python-hacking > 0.10.2 is released. -(define-public python-flake8-2.2.4 - (package (inherit python-flake8) - (propagated-inputs - `(("python-pep8" ,python-pep8-1.5.7) - ("python-pyflakes" ,python-pyflakes-0.8.1) - ("python-mccabe" ,python-mccabe-0.2.1))) - (native-inputs - `(("python-mock" ,python-mock) - ("python-nose" ,python-nose))) - (version "2.2.4") - (source - (origin - (method url-fetch) - (uri (pypi-uri "flake8" version)) - (sha256 - (base32 - "1r9wsry4va45h1rck5hxd3vzsg2q3y6lnl6pym1bxvz8ry19jwx8")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Remove pre-compiled .pyc files from source. - (for-each delete-file-recursively - (find-files "." "__pycache__" #:directories? #t)) - (for-each delete-file (find-files "." "\\.pyc$")) - #t)))) - (arguments - ;; XXX Fails with Python 3.5. - '(#:tests? #f)))) - -(define-public python2-flake8-2.2.4 - (package-with-python2 python-flake8-2.2.4)) - (define-public python-flake8-polyfill (package (name "python-flake8-polyfill") From 4a577fef73f8a260b772e17f863f31c738d60ec1 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Jun 2017 14:44:26 +0200 Subject: [PATCH 047/145] gnu: libpwquality: Update to 1.4.0. * gnu/packages/password-utils.scm (libpwquality): Update to 1.4.0. --- gnu/packages/password-utils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index f6af6a6519..a130fda6c4 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -193,7 +193,7 @@ passwords that could be guessed by crack by filtering them out, at source.") (define-public libpwquality (package (name "libpwquality") - (version "1.3.0") + (version "1.4.0") (source (origin (method url-fetch) (uri (list @@ -205,7 +205,7 @@ passwords that could be guessed by crack by filtering them out, at source.") name "-" version ".tar.bz2"))) (sha256 (base32 - "0aidriag6h0syfm33nzdfdsqgrnsgihwjv3a5lgkqch3w68fmlkl")))) + "0syyz8r54l8mqmbb0mw19qz4z2cx8gdgidicb8k2s5zjdh2gzrhx")))) (build-system gnu-build-system) (arguments ;; XXX: have RUNPATH issue. From b1a686bbd09651f5d1a05ca0a595829a85083274 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 19 Jun 2017 17:55:02 +0200 Subject: [PATCH 048/145] gnu: cracklib: Fix up description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/password-utils.scm (cracklib)[description]: Fix typos, add mark-up, and drop unclear reference to the ancient ‘Crack 5’ tool. --- gnu/packages/password-utils.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index a130fda6c4..9cfacdb427 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -186,8 +187,9 @@ and vice versa.") (home-page "https://github.com/cracklib/cracklib") (description "CrackLib is a library containing a C function which may be used in a -passwd like program. The idea is simple: try to prevent users from choosing -passwords that could be guessed by crack by filtering them out, at source.") +@command{passwd}-like program. The idea is simple: try to prevent users from +choosing passwords that could easily be guessed (or \"cracked\") by filtering +them out, at the source.") (license license:lgpl2.1))) (define-public libpwquality From 9b8016612cfa80103b278ed983420206fad7ecf0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 20 Jun 2017 12:59:16 +0200 Subject: [PATCH 049/145] gnu: python-pycodestyle: Update to 2.3.1. * gnu/packages/python.scm (python-pycodestyle): Update to 2.3.1. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index de42d3d56e..33fb35ac86 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4357,14 +4357,14 @@ simple and Pythonic domain language.") (define-public python-pycodestyle (package (name "python-pycodestyle") - (version "2.0.0") + (version "2.3.1") (source (origin (method url-fetch) (uri (pypi-uri "pycodestyle" version)) (sha256 (base32 - "1rz2v8506mdjdyxcnv9ygiw6v0d4dqx8z5sjyjm0w2v32h5l5w1p")))) + "0rk78b66p57ala26mdldl9lafr48blv5s659sah9q50qnfjmc8k8")))) (build-system python-build-system) (home-page "https://pycodestyle.readthedocs.io/") (synopsis "Python style guide checker") From fda852ff40e978b77dd7c4e4fe44e5fe23eedd61 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 14 Jun 2017 18:00:07 +0200 Subject: [PATCH 050/145] gnu: lmdb: Expand description. * gnu/packages/databases.scm (lmdb)[synopsis]: Capitalise. [description]: Elaborate. --- gnu/packages/databases.scm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 9691f1a1f3..4aa8949d6c 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Arun Isaac +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -1356,8 +1357,17 @@ trees (LSM), for sustained throughput under random insert workloads.") (("/usr/local") (assoc-ref outputs "out"))) #t))))) (home-page "https://symas.com/products/lightning-memory-mapped-database") - (synopsis "Lightning memory-mapped database library") - (description "Lightning memory-mapped database library.") + (synopsis "Lightning Memory-Mapped Database library") + (description + "The @dfn{Lightning Memory-Mapped Database} (LMDB) is a high-performance +transactional database. Unlike more complex relational databases, LMDB handles +only key-value pairs (stored as arbitrary byte arrays) and relies on the +underlying operating system for caching and locking, keeping the code small and +simple. +The use of ‘zero-copy’ memory-mapped files combines the persistence of classic +disk-based databases with high read performance that scales linearly over +multiple cores. The size of each database is limited only by the size of the +virtual address space — not physical RAM.") (license license:openldap2.8))) (define-public libpqxx From 07041d95b17e98adb152fee3c92f8f5efa58dcbf Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 15 Jun 2017 10:21:57 +0200 Subject: [PATCH 051/145] gnu: Add python-lmdb. * gnu/packages/databases.scm (python-lmdb, python2-lmdb): New variables. --- gnu/packages/databases.scm | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 4aa8949d6c..c614f7fcc7 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1549,3 +1549,49 @@ file format to other databases such as MySQL, Oracle, Sybase, PostgreSQL, etc., and an SQL engine for performing simple SQL queries.") (license (list license:lgpl2.0 license:gpl2+)))) + +(define-public python-lmdb + (package + (name "python-lmdb") + (version "0.92") + (source (origin + (method url-fetch) + (uri (pypi-uri "lmdb" version)) + (sha256 + (base32 + "01nw6r08jkipx6v92kw49z34wmwikrpvc5j9xawdiyg1n2526wrx")) + (modules '((guix build utils))) + (snippet + ;; Delete bundled lmdb source files. + '(for-each delete-file (list "lib/lmdb.h" + "lib/mdb.c" + "lib/midl.c" + "lib/midl.h"))))) + (build-system python-build-system) + (inputs + `(("lmdb" ,lmdb))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'use-system-lmdb + (lambda* (#:key inputs #:allow-other-keys) + (let ((lmdb (assoc-ref inputs "lmdb"))) + (setenv "LMDB_FORCE_SYSTEM" "set") + (setenv "LMDB_INCLUDEDIR" (string-append lmdb "/include")) + (setenv "LMDB_LIBDIR" (string-append lmdb "/lib")) + #t)))) + ;; Tests fail with: ‘lmdb.tool: Please specify environment (--env)’. + #:tests? #f)) + (home-page "https://github.com/dw/py-lmdb") + (synopsis "Python binding for the ‘Lightning’ database (LMDB)") + (description + "python-lmdb or py-lmdb is a Python binding for the @dfn{Lightning +Memory-Mapped Database} (LMDB), a high-performance key-value store.") + (license + (list license:openldap2.8 + ;; ‘lib/win32/inttypes.h’ and ‘lib/win32-stdint/stdint.h’ are BSD-3, + ;; but not actually needed on platforms currently supported by Guix. + license:bsd-3)))) + +(define-public python2-lmdb + (package-with-python2 python-lmdb)) From c7d0444a68ae0961e82d2d2bf9a57bf897de913d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 9 Jun 2017 21:57:53 +0200 Subject: [PATCH 052/145] gnu: knot: Update to 2.5.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/dns.scm (knot): Update to 2.5.1. [inputs]: Add python-2 and python2-lmdb. [arguments]: Adapt #:configure-flags. Add ‘wrap-python-scripts’ phase. --- gnu/packages/dns.scm | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index a8d1aed148..0fc8fc775d 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -486,14 +486,14 @@ Extensions} (DNSSEC).") (define-public knot (package (name "knot") - (version "2.4.4") + (version "2.5.1") (source (origin (method url-fetch) (uri (string-append "https://secure.nic.cz/files/knot-dns/" name "-" version ".tar.xz")) (sha256 (base32 - "0g2n5r2n03bqz322xlwdw4bqhj8l4n8q0hzrqngi4rgmk4rp97ly")) + "1643q2pj5sjhgv19jp8r2bhvqyk6mmlajdmr6qhjcbhql30cs23c")) (modules '((guix build utils))) (snippet '(begin @@ -518,7 +518,11 @@ Extensions} (DNSSEC).") ("liburcu" ,liburcu) ("lmdb" ,lmdb) ("ncurses" ,ncurses) - ("nettle" ,nettle))) + ("nettle" ,nettle) + + ;; For ‘pykeymgr’, needed to migrate keys from versions <= 2.4. + ("python" ,python-2) + ("python-lmdb" ,python2-lmdb))) (arguments `(#:phases (modify-phases %standard-phases @@ -535,11 +539,18 @@ Extensions} (DNSSEC).") (zero? (system* "make" (string-append "config_dir=" etc) - "install")))))) + "install"))))) + (add-after 'install 'wrap-python-scripts + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (path (getenv "PYTHONPATH"))) + (wrap-program (string-append out "/sbin/pykeymgr") + `("PYTHONPATH" ":" prefix (,path)))) + #t))) #:configure-flags (list "--sysconfdir=/etc" "--localstatedir=/var" - "--enable-rosedb" ; serve static records from a database + "--with-module-rosedb=yes" ; serve static records from a database (string-append "--with-bash-completions=" (assoc-ref %outputs "out") "/etc/bash_completion.d")))) From bb19b2ebf3a6661e1c8eb22c70bc7759fe20e0db Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 21 Jun 2017 22:45:40 +0200 Subject: [PATCH 053/145] gnu: propeller-gcc: Default to version 4. * gnu/packages/embedded.scm (propeller-gcc): Rename this... (propeller-gcc-6): ...to this. (propeller-gcc-4): Inherit from propeller-gcc-6. (propeller-gcc): New alias for propeller-gcc-4. --- gnu/packages/embedded.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index a11722a2bb..e509647eae 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -452,7 +452,7 @@ with a layered architecture of JTAG interface and TAP support.") ("dejagnu" ,dejagnu) ,@(package-native-inputs xbinutils)))))) -(define-public propeller-gcc +(define-public propeller-gcc-6 (let ((xgcc (cross-gcc "propeller-elf" #:xbinutils propeller-binutils)) (commit "b4f45a4725e0b6d0af59e594c4e3e35ca4105867") @@ -489,7 +489,7 @@ with a layered architecture of JTAG interface and TAP support.") (synopsis "GCC for the Parallax Propeller")))) (define-public propeller-gcc-4 - (let ((xgcc propeller-gcc) + (let ((xgcc propeller-gcc-6) (commit "f1b01001b760d691a91ff1db4830d41bb712557f") (revision "1")) (package (inherit xgcc) @@ -511,6 +511,11 @@ with a layered architecture of JTAG interface and TAP support.") "gcc-cross-environment-variables.patch"))))) (home-page "https://github.com/dbetz/propgcc-gcc")))) +;; Version 6 is experimental and may not work correctly. This is why we +;; default to version 4, which is also used in the binary toolchain bundle +;; provided by Parallax Inc. +(define-public propeller-gcc propeller-gcc-4) + ;; There is no release, so we take the latest version as referenced from here: ;; https://github.com/dbetz/propeller-gcc (define-public proplib From f70f3407ca5e62bfe5086b1b5887d93d898d658e Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Thu, 22 Jun 2017 00:07:58 +0200 Subject: [PATCH 054/145] gnu: Update calibre to 3.0.0. * gnu/local.mk: Remove patch. * gnu/packages/ebook.scm (calibre): Update to 3.0.0. * gnu/packages/patches/calibre-dont-load-remote-icons.patch: Remove file. --- gnu/local.mk | 1 - gnu/packages/ebook.scm | 14 ++++-- .../calibre-dont-load-remote-icons.patch | 45 ------------------- 3 files changed, 10 insertions(+), 50 deletions(-) delete mode 100644 gnu/packages/patches/calibre-dont-load-remote-icons.patch diff --git a/gnu/local.mk b/gnu/local.mk index f0eed694de..88ea8daf47 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -522,7 +522,6 @@ dist_patch_DATA = \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/cairo-CVE-2016-9082.patch \ %D%/packages/patches/calibre-drop-unrar.patch \ - %D%/packages/patches/calibre-dont-load-remote-icons.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-use-packaged-feedparser.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 1d64e9b69f..bbb127a7d9 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016, 2017 Alex Griffin ;;; Copyright © 2017 Brendan Tildesley +;;; Copyright © 2017 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,7 +66,7 @@ (define-public calibre (package (name "calibre") - (version "2.85.1") + (version "3.0.0") (source (origin (method url-fetch) @@ -74,7 +75,7 @@ version ".tar.xz")) (sha256 (base32 - "1g8s0kp1gj05yysfgqpp2lgrxvzc0fsny1hwzx5jh9hvqn0b53cc")) + "1zhk7bvgr973dd18x4wp48kzai29qqqi5qcy72sxc4wcbk2sbnkw")) ;; Remove non-free or doubtful code, see ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html (modules '((guix build utils))) @@ -84,13 +85,11 @@ (delete-file-recursively "src/unrar") (delete-file "src/odf/thumbnail.py") (delete-file-recursively "resources/fonts/liberation") - (delete-file-recursively "src/chardet") (substitute* (find-files "." "\\.py") (("calibre\\.ebooks\\.markdown") "markdown")) #t)) (patches (search-patches "calibre-drop-unrar.patch" "calibre-use-packaged-feedparser.patch" - "calibre-dont-load-remote-icons.patch" "calibre-no-updates-dialog.patch")))) (build-system python-build-system) (native-inputs @@ -132,6 +131,7 @@ ("python2-pygments" ,python2-pygments) ("python2-pyqt" ,python2-pyqt) ("python2-sip" ,python2-sip) + ("python2-regex" ,python2-regex) ("sqlite" ,sqlite))) (arguments `(#:python ,python-2 @@ -148,6 +148,12 @@ ;; We can't use the uninstaller in Guix. Don't build it. (("self\\.create_uninstaller()") "")) #t)) + (add-after 'unpack 'dont-load-remote-icons + (lambda _ + (substitute* "setup/plugins_mirror.py" + (("href=\"//calibre-ebook.com/favicon.ico\"") + "href=\"favicon.ico\"")) + #t)) (add-before 'build 'configure (lambda* (#:key inputs #:allow-other-keys) (let ((podofo (assoc-ref inputs "podofo")) diff --git a/gnu/packages/patches/calibre-dont-load-remote-icons.patch b/gnu/packages/patches/calibre-dont-load-remote-icons.patch deleted file mode 100644 index 2168263072..0000000000 --- a/gnu/packages/patches/calibre-dont-load-remote-icons.patch +++ /dev/null @@ -1,45 +0,0 @@ -From: Martin Pitt -Date: Mon, 14 Nov 2016 22:41:24 +0100 -Subject: content-server: Don't load external URLs for privacy - -Spotted by lintian. ---- - resources/content_server/browse/browse.html | 4 +--- - resources/content_server/index.html | 2 +- - 2 files changed, 2 insertions(+), 4 deletions(-) - -diff --git a/resources/content_server/browse/browse.html b/resources/content_server/browse/browse.html -index 36f7199..e615707 100644 ---- a/resources/content_server/browse/browse.html -+++ b/resources/content_server/browse/browse.html -@@ -7,7 +7,7 @@ - ..:: calibre {library} ::.. {title} - - -- -+ - - - -@@ -63,8 +63,6 @@ - -- - - - -diff --git a/resources/content_server/index.html b/resources/content_server/index.html -index 51cc33a..e71d0e8 100644 ---- a/resources/content_server/index.html -+++ b/resources/content_server/index.html -@@ -9,7 +9,7 @@ - - - -- -+ - - -