diff options
author | Marius Bakke <mbakke@fastmail.com> | 2017-05-14 17:21:46 +0200 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2017-05-14 17:21:46 +0200 |
commit | 61b1df6f2791a2afa291b56708d73a5264ca70eb (patch) | |
tree | 314ddb96391b25e83e9a31637be0f1a7f52cc249 /gnu | |
parent | bdb8267680f14ee5d3df9d029f23279c1457c211 (diff) | |
parent | 4be014128e1c422f37b56f9a6b3420b4e85c4302 (diff) | |
download | gnu-guix-61b1df6f2791a2afa291b56708d73a5264ca70eb.tar gnu-guix-61b1df6f2791a2afa291b56708d73a5264ca70eb.tar.gz |
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
162 files changed, 10543 insertions, 3322 deletions
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 0cb84b8aad..47aa77dd3e 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -230,6 +230,63 @@ Trailing spaces are trimmed." ;;; +;;; ISO9660 file systems. +;;; + +;; <http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-119.pdf>. + +(define (iso9660-superblock? sblock) + "Return #t when SBLOCK is a iso9660 superblock." + (bytevector=? (sub-bytevector sblock 1 6) + ;; Note: "\x01" is the volume descriptor format version + (string->utf8 "CD001\x01"))) + +(define (read-iso9660-primary-volume-descriptor device offset) + "Find and read the first primary volume descriptor, starting at OFFSET. + Return #f if not found." + (let* ((sblock (read-superblock device offset 2048 iso9660-superblock?)) + (type-code (if sblock (array-ref sblock 0) 255))) + (match type-code + (255 #f) ; Volume Descriptor Set Terminator. + (1 sblock) ; Primary Volume Descriptor + (_ (read-iso9660-primary-volume-descriptor device (+ offset 2048)))))) + +(define (read-iso9660-superblock device) + "Return the raw contents of DEVICE's iso9660 superblock as a bytevector, or +#f if DEVICE does not contain a iso9660 file system." + ;; Start reading at sector 16. + (read-iso9660-primary-volume-descriptor device (* 2048 16))) + +(define (iso9660-superblock-uuid sblock) + "Return the modification time of a iso9660 superblock SBLOCK as a bytevector." + ;; Drops GMT offset for compatibility with Grub, blkid and /dev/disk/by-uuid. + ;; Compare Grub: "2014-12-02-19-30-23-00". + ;; Compare blkid result: "2014-12-02-19-30-23-00". + ;; Compare /dev/disk/by-uuid entry: "2014-12-02-19-30-23-00". + (sub-bytevector sblock 830 16)) + +(define (iso9660-uuid->string uuid) + "Given an UUID bytevector, return its timestamp string." + (define (digits->string bytes) + (latin1->string bytes (lambda (c) #f))) + (let* ((year (sub-bytevector uuid 0 4)) + (month (sub-bytevector uuid 4 2)) + (day (sub-bytevector uuid 6 2)) + (hour (sub-bytevector uuid 8 2)) + (minute (sub-bytevector uuid 10 2)) + (second (sub-bytevector uuid 12 2)) + (hundredths (sub-bytevector uuid 14 2)) + (parts (list year month day hour minute second hundredths))) + (string-append (string-join (map digits->string parts))))) + +(define (iso9660-superblock-volume-name sblock) + "Return the volume name of SBLOCK as a string. The volume name is an ASCII +string. Trailing spaces are trimmed." + (string-trim-right (latin1->string (sub-bytevector sblock 40 32) + (lambda (c) #f)) #\space)) + + +;;; ;;; LUKS encrypted devices. ;;; @@ -340,7 +397,9 @@ partition field reader that returned a value." (_ #f))) (define %partition-label-readers - (list (partition-field-reader read-ext2-superblock + (list (partition-field-reader read-iso9660-superblock + iso9660-superblock-volume-name) + (partition-field-reader read-ext2-superblock ext2-superblock-volume-name) (partition-field-reader read-btrfs-superblock btrfs-superblock-volume-name) @@ -348,7 +407,9 @@ partition field reader that returned a value." fat32-superblock-volume-name))) (define %partition-uuid-readers - (list (partition-field-reader read-ext2-superblock + (list (partition-field-reader read-iso9660-superblock + iso9660-superblock-uuid) + (partition-field-reader read-ext2-superblock ext2-superblock-uuid) (partition-field-reader read-btrfs-superblock btrfs-superblock-uuid) diff --git a/gnu/local.mk b/gnu/local.mk index f5574ecd80..28a283ab70 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -107,6 +107,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/dejagnu.scm \ %D%/packages/dico.scm \ %D%/packages/dictionaries.scm \ + %D%/packages/direct-connect.scm \ %D%/packages/disk.scm \ %D%/packages/display-managers.scm \ %D%/packages/django.scm \ @@ -232,7 +233,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/libunwind.scm \ %D%/packages/libupnp.scm \ %D%/packages/lighting.scm \ - %D%/packages/links.scm \ %D%/packages/linux.scm \ %D%/packages/lirc.scm \ %D%/packages/lisp.scm \ @@ -244,7 +244,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/lua.scm \ %D%/packages/lxde.scm \ %D%/packages/lxqt.scm \ - %D%/packages/lynx.scm \ %D%/packages/m4.scm \ %D%/packages/machine-learning.scm \ %D%/packages/man.scm \ @@ -256,6 +255,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/maths.scm \ %D%/packages/mc.scm \ %D%/packages/mcrypt.scm \ + %D%/packages/mes.scm \ %D%/packages/messaging.scm \ %D%/packages/mingw.scm \ %D%/packages/mg.scm \ @@ -475,6 +475,9 @@ GNU_SYSTEM_MODULES = \ %D%/tests/ssh.scm \ %D%/tests/web.scm +# Modules that do not need to be compiled. +MODULES_NOT_COMPILED += \ + %D%/build/svg.scm patchdir = $(guilemoduledir)/%D%/packages/patches dist_patch_DATA = \ @@ -483,6 +486,7 @@ dist_patch_DATA = \ %D%/packages/patches/a2ps-CVE-2014-0466.patch \ %D%/packages/patches/abiword-explictly-cast-bools.patch \ %D%/packages/patches/abiword-wmf-version-lookup-fix.patch \ + %D%/packages/patches/abiword-black-drawing-with-gtk322.patch \ %D%/packages/patches/acl-hurd-path-max.patch \ %D%/packages/patches/aegis-constness-error.patch \ %D%/packages/patches/aegis-perl-tempdir1.patch \ @@ -513,6 +517,7 @@ dist_patch_DATA = \ %D%/packages/patches/calibre-drop-unrar.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ + %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \ %D%/packages/patches/ceph-disable-cpu-optimizations.patch \ %D%/packages/patches/ceph-disable-unittest-throttle.patch \ %D%/packages/patches/ceph-skip-collect-sys-info-test.patch \ @@ -525,6 +530,10 @@ dist_patch_DATA = \ %D%/packages/patches/clx-remove-demo.patch \ %D%/packages/patches/cmake-fix-tests.patch \ %D%/packages/patches/coda-use-system-libs.patch \ + %D%/packages/patches/cool-retro-term-dont-check-uninit-member.patch \ + %D%/packages/patches/cool-retro-term-fix-array-size.patch \ + %D%/packages/patches/cool-retro-term-memory-leak-1.patch \ + %D%/packages/patches/cool-retro-term-remove-non-free-fonts.patch \ %D%/packages/patches/coreutils-cut-huge-range-test.patch \ %D%/packages/patches/coreutils-fix-cross-compilation.patch \ %D%/packages/patches/cpio-CVE-2016-2037.patch \ @@ -543,6 +552,7 @@ dist_patch_DATA = \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ %D%/packages/patches/doxygen-test.patch \ + %D%/packages/patches/dvd+rw-tools-add-include.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elixir-disable-failing-tests.patch \ %D%/packages/patches/einstein-build.patch \ @@ -618,6 +628,7 @@ dist_patch_DATA = \ %D%/packages/patches/glog-gcc-5-demangling.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ + %D%/packages/patches/gnome-shell-CVE-2017-8288.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnucash-price-quotes-perl.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ @@ -660,7 +671,6 @@ dist_patch_DATA = \ %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \ %D%/packages/patches/hydra-disable-darcs-test.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \ - %D%/packages/patches/icecat-bug-1299500-pt10.patch \ %D%/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch \ %D%/packages/patches/icu4c-reset-keyword-list-iterator.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ @@ -719,6 +729,8 @@ dist_patch_DATA = \ %D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \ + %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ + %D%/packages/patches/libsndfile-CVE-2017-8362.patch \ %D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtheora-config-guess.patch \ @@ -726,6 +738,9 @@ dist_patch_DATA = \ %D%/packages/patches/libtiff-CVE-2016-10093.patch \ %D%/packages/patches/libtiff-CVE-2016-10094.patch \ %D%/packages/patches/libtiff-CVE-2017-5225.patch \ + %D%/packages/patches/libtiff-CVE-2017-7593.patch \ + %D%/packages/patches/libtiff-CVE-2017-7594.patch \ + %D%/packages/patches/libtiff-multiple-UBSAN-crashes.patch \ %D%/packages/patches/libtiff-assertion-failure.patch \ %D%/packages/patches/libtiff-divide-by-zero-ojpeg.patch \ %D%/packages/patches/libtiff-divide-by-zero-tiffcp.patch \ @@ -738,6 +753,7 @@ dist_patch_DATA = \ %D%/packages/patches/libtiff-invalid-read.patch \ %D%/packages/patches/libtiff-null-dereference.patch \ %D%/packages/patches/libtiff-tiffcp-underflow.patch \ + %D%/packages/patches/libtirpc-CVE-2017-8779.patch \ %D%/packages/patches/libtorrent-rasterbar-boost-compat.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libunwind-CVE-2015-3239.patch \ @@ -760,8 +776,14 @@ dist_patch_DATA = \ %D%/packages/patches/libxslt-generated-ids.patch \ %D%/packages/patches/libxslt-CVE-2016-4738.patch \ %D%/packages/patches/libxt-guix-search-paths.patch \ + %D%/packages/patches/lierolibre-check-unaligned-access.patch \ + %D%/packages/patches/lierolibre-is-free-software.patch \ + %D%/packages/patches/lierolibre-newer-libconfig.patch \ + %D%/packages/patches/lierolibre-remove-arch-warning.patch \ + %D%/packages/patches/lierolibre-try-building-other-arch.patch \ %D%/packages/patches/linux-pam-no-setfsuid.patch \ %D%/packages/patches/lirc-localstatedir.patch \ + %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ %D%/packages/patches/llvm-for-extempore.patch \ %D%/packages/patches/lm-sensors-hwmon-attrs.patch \ %D%/packages/patches/lua-CVE-2014-5461.patch \ @@ -775,6 +797,7 @@ dist_patch_DATA = \ %D%/packages/patches/luminance-hdr-qt-printer.patch \ %D%/packages/patches/lvm2-static-link.patch \ %D%/packages/patches/lxsession-use-gapplication.patch \ + %D%/packages/patches/lxterminal-CVE-2016-10369.patch \ %D%/packages/patches/lz4-fix-test-failures.patch \ %D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/mars-install.patch \ @@ -789,11 +812,16 @@ dist_patch_DATA = \ %D%/packages/patches/mesa-wayland-egl-symbols-check-mips.patch \ %D%/packages/patches/metabat-remove-compilation-date.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \ + %D%/packages/patches/miniupnpc-CVE-2017-8798.patch \ %D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \ %D%/packages/patches/mpc123-initialize-ao.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \ %D%/packages/patches/mozjs17-aarch64-support.patch \ %D%/packages/patches/mozjs24-aarch64-support.patch \ + %D%/packages/patches/mozjs38-pkg-config-version.patch \ + %D%/packages/patches/mozjs38-shell-version.patch \ + %D%/packages/patches/mozjs38-tracelogger.patch \ + %D%/packages/patches/mozjs38-version-detection.patch \ %D%/packages/patches/multiqc-fix-git-subprocess-error.patch \ %D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch \ @@ -842,6 +870,7 @@ dist_patch_DATA = \ %D%/packages/patches/patch-hurd-path-max.patch \ %D%/packages/patches/pcre-CVE-2017-7186.patch \ %D%/packages/patches/pcre2-CVE-2017-7186.patch \ + %D%/packages/patches/pcre2-CVE-2017-8786.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \ %D%/packages/patches/perl-deterministic-ordering.patch \ %D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \ @@ -849,7 +878,7 @@ dist_patch_DATA = \ %D%/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch \ %D%/packages/patches/perl-net-amazon-s3-moose-warning.patch \ %D%/packages/patches/perl-net-ssleay-disable-ede-test.patch \ - %D%/packages/patches/perl-net-dns-resolver-programmable-Fix-broken-interface.patch \ + %D%/packages/patches/perl-net-dns-resolver-programmable-fix.patch \ %D%/packages/patches/perl-no-sys-dirs.patch \ %D%/packages/patches/perl-module-pluggable-search.patch \ %D%/packages/patches/perl-reproducible-build-date.patch \ @@ -871,6 +900,7 @@ dist_patch_DATA = \ %D%/packages/patches/portmidi-modular-build.patch \ %D%/packages/patches/procmail-ambiguous-getline-debian.patch \ %D%/packages/patches/procmail-CVE-2014-3618.patch \ + %D%/packages/patches/proot-test-fhs.patch \ %D%/packages/patches/pt-scotch-build-parallelism.patch \ %D%/packages/patches/pulseaudio-fix-mult-test.patch \ %D%/packages/patches/pulseaudio-longer-test-timeout.patch \ @@ -916,7 +946,9 @@ dist_patch_DATA = \ %D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/readline-6.2-CVE-2014-2524.patch \ %D%/packages/patches/readline-7.0-mingw.patch \ + %D%/packages/patches/reptyr-fix-gcc-7.patch \ %D%/packages/patches/ripperx-missing-file.patch \ + %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rpm-CVE-2014-8118.patch \ %D%/packages/patches/rsem-makefile.patch \ %D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \ @@ -1085,13 +1117,15 @@ nodist_bootstrap_mips64el_linux_DATA = \ set-bootstrap-executable-permissions: chmod +x $(DESTDIR)$(bootstrapdir)/*/{bash,mkdir,tar,xz} -DISTCLEANFILES = \ +BOOTSTRAP_GUILE_TARBALLS = \ $(nodist_bootstrap_x86_64_linux_DATA) \ $(nodist_bootstrap_i686_linux_DATA) \ $(nodist_bootstrap_armhf_linux_DATA) \ - $(nodist_bootstrap_aarch64_linux_DATA) \ + $(nodist_bootstrap_aarch64_linux_DATA) \ $(nodist_bootstrap_mips64el_linux_DATA) +DISTCLEANFILES = $(BOOTSTRAP_GUILE_TARBALLS) + # Method to download a file from an external source. DOWNLOAD_FILE = \ GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \ diff --git a/gnu/packages.scm b/gnu/packages.scm index 92bab7228a..57907155fb 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -24,12 +24,11 @@ #:use-module (guix packages) #:use-module (guix ui) #:use-module (guix utils) + #:use-module (guix discovery) #:use-module (guix memoization) - #:use-module (guix combinators) #:use-module ((guix build utils) #:select ((package-name->name+version . hyphen-separated-name->name+version))) - #:use-module (ice-9 ftw) #:use-module (ice-9 vlist) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -48,7 +47,6 @@ %package-module-path fold-packages - scheme-modules ;XXX: for lack of a better place find-packages-by-name find-best-packages-by-name @@ -89,7 +87,7 @@ "Search the patch FILE-NAME. Raise an error if not found." (or (search-path (%patch-path) file-name) (raise (condition - (&message (message (format #f (_ "~a: patch not found") + (&message (message (format #f (G_ "~a: patch not found") file-name))))))) (define-syntax-rule (search-patches file-name ...) @@ -105,7 +103,7 @@ found." (raise (condition (&message (message - (format #f (_ "could not find bootstrap binary '~a' \ + (format #f (G_ "could not find bootstrap binary '~a' \ for system '~a'") file-name system))))))) @@ -140,92 +138,17 @@ for system '~a'") directory)) %load-path))) -(define* (scheme-files directory) - "Return the list of Scheme files found under DIRECTORY, recursively. The -returned list is sorted in alphabetical order." - - ;; Sort entries so that 'fold-packages' works in a deterministic fashion - ;; regardless of details of the underlying file system. - (sort (file-system-fold (const #t) ; enter? - (lambda (path stat result) ; leaf - (if (string-suffix? ".scm" path) - (cons path result) - result)) - (lambda (path stat result) ; down - result) - (lambda (path stat result) ; up - result) - (const #f) ; skip - (lambda (path stat errno result) - (warning (_ "cannot access `~a': ~a~%") - path (strerror errno)) - result) - '() - directory - stat) - string<?)) - -(define file-name->module-name - (let ((not-slash (char-set-complement (char-set #\/)))) - (lambda (file) - "Return the module name (a list of symbols) corresponding to FILE." - (map string->symbol - (string-tokenize (string-drop-right file 4) not-slash))))) - -(define* (scheme-modules directory #:optional sub-directory) - "Return the list of Scheme modules available under DIRECTORY. -Optionally, narrow the search to SUB-DIRECTORY." - (define prefix-len - (string-length directory)) - - (filter-map (lambda (file) - (let* ((file (substring file prefix-len)) - (module (file-name->module-name file))) - (catch #t - (lambda () - (resolve-interface module)) - (lambda args - ;; Report the error, but keep going. - (warn-about-load-error module args) - #f)))) - (scheme-files (if sub-directory - (string-append directory "/" sub-directory) - directory)))) - -(define* (all-package-modules #:optional (path (%package-module-path))) - "Return the list of package modules found in PATH, a list of directories to -search." - (fold-right (lambda (spec result) - (match spec - ((? string? directory) - (append (scheme-modules directory) result)) - ((directory . sub-directory) - (append (scheme-modules directory sub-directory) - result)))) - '() - path)) - (define (fold-packages proc init) "Call (PROC PACKAGE RESULT) for each available package, using INIT as the initial value of RESULT. It is guaranteed to never traverse the same package twice." - (identity ; discard second return value - (fold2 (lambda (module result seen) - (fold2 (lambda (var result seen) - (if (and (package? var) - (not (vhash-assq var seen)) - (not (hidden-package? var))) - (values (proc var result) - (vhash-consq var #t seen)) - (values result seen))) - result - seen - (module-map (lambda (sym var) - (false-if-exception (variable-ref var))) - module))) - init - vlist-null - (all-package-modules)))) + (fold-module-public-variables (lambda (object result) + (if (and (package? object) + (not (hidden-package? object))) + (proc object result) + result)) + init + (all-modules (%package-module-path)))) (define find-packages-by-name (let ((packages (delay @@ -306,38 +229,25 @@ return its return value." ;;; Package specification. ;;; -(define* (%find-package spec name version #:key fallback?) +(define* (%find-package spec name version) (match (find-best-packages-by-name name version) ((pkg . pkg*) (unless (null? pkg*) - (warning (_ "ambiguous package specification `~a'~%") spec) - (warning (_ "choosing ~a@~a from ~a~%") + (warning (G_ "ambiguous package specification `~a'~%") spec) + (warning (G_ "choosing ~a@~a from ~a~%") (package-name pkg) (package-version pkg) (location->string (package-location pkg)))) - (when fallback? - (warning (_ "deprecated NAME-VERSION syntax; \ -use NAME@VERSION instead~%"))) - (match (package-superseded pkg) ((? package? new) - (info (_ "package '~a' has been superseded by '~a'~%") + (info (G_ "package '~a' has been superseded by '~a'~%") (package-name pkg) (package-name new)) new) (#f pkg))) (x (if version - (leave (_ "~A: package not found for version ~a~%") name version) - (if (not fallback?) - ;; XXX: Fallback to the older specification style with an hyphen - ;; between NAME and VERSION, for backward compatibility. - (call-with-values - (lambda () - (hyphen-separated-name->name+version name)) - (cut %find-package spec <> <> #:fallback? #t)) - - ;; The fallback case didn't find anything either, so bail out. - (leave (_ "~A: unknown package~%") name)))))) + (leave (G_ "~A: package not found for version ~a~%") name version) + (leave (G_ "~A: unknown package~%") name))))) (define (specification->package spec) "Return a package matching SPEC. SPEC may be a package name, or a package @@ -365,6 +275,6 @@ version; if SPEC does not specify an output, return OUTPUT." (package (if (member sub-drv (package-outputs package)) (values package sub-drv) - (leave (_ "package `~a' lacks output `~a'~%") + (leave (G_ "package `~a' lacks output `~a'~%") (package-full-name package) sub-drv)))))) diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm index 514ac0ceb5..30c2411df3 100644 --- a/gnu/packages/abiword.scm +++ b/gnu/packages/abiword.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Marek Benc <merkur32@gmail.com> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,7 +45,7 @@ (define-public abiword (package (name "abiword") - (version "3.0.1") + (version "3.0.2") (source (origin (method url-fetch) @@ -52,16 +53,11 @@ (string-append "http://abisource.org/downloads/" name "/" version "/source/" name "-" version ".tar.gz")) (sha256 - (base32 "1ik591rx15nn3n1297cwykl8wvrlgj78i528id9wbidgy3xzd570")) - (modules '((guix build utils))) - (snippet - ;; Ensure reproducibility. - '(substitute* "src/wp/main/xp/abi_ver.cpp" - (("__DATE__") "\"2017\"") - (("__TIME__") "\"00:00\""))) + (base32 "08imry821g81apdwym3gcs4nss0l9j5blqk31j5rv602zmcd9gxg")) (patches (search-patches "abiword-wmf-version-lookup-fix.patch" - "abiword-explictly-cast-bools.patch")))) + "abiword-explictly-cast-bools.patch" + "abiword-black-drawing-with-gtk322.patch")))) (build-system glib-or-gtk-build-system) (arguments ;; NOTE: rsvg is disabled, since Abiword @@ -84,7 +80,9 @@ ;; assertion 'G_IS_OBJECT (object)' failed ;; Manually starting the X server before the test phase did not help ;; the tests to pass. - #:tests? #f)) + #:tests? #f + #:make-flags + (list "CXXFLAGS=-std=c++11"))) (inputs `(("boost" ,boost) ("enchant" ,enchant) diff --git a/gnu/packages/acct.scm b/gnu/packages/acct.scm index b9bc0161e4..c86713cb35 100644 --- a/gnu/packages/acct.scm +++ b/gnu/packages/acct.scm @@ -25,7 +25,7 @@ (define-public acct (package (name "acct") - (version "6.6.2") + (version "6.6.3") (source (origin (method url-fetch) @@ -33,7 +33,7 @@ version ".tar.gz")) (sha256 (base32 - "0081hzkcxw9aslpsakridj15m0wbnkdhm210fzbg021vi4pppm4f")))) + "14x0zklwlg7cc7amlyzffqr8az3fqj1h9dyj0hvl1kpi7cr7kbjy")))) (build-system gnu-build-system) (home-page "https://gnu.org/software/acct/") (synopsis "Standard login and process accounting utilities") diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 8f4a4cd41e..ef7bff10f3 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au> +;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -84,14 +85,14 @@ (define-public aide (package (name "aide") - (version "0.15.1") + (version "0.16") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/aide/aide/" version "/aide-" version ".tar.gz")) (sha256 (base32 - "1vsrc0s62kv1i84skm6k6zy868gayjck268qwj38rpspc8c5qgih")))) + "0ibkv4z2gk14fn014kq13rp2ysiq6nn2cflv2q5i7zf466hm6758")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) @@ -100,6 +101,7 @@ `(("libgcrypt" ,libgcrypt) ("libgpg-error" ,libgpg-error) ("libmhash" ,libmhash) + ("pcre" ,pcre) ("zlib" ,zlib))) (synopsis "File and directory integrity checker") (description @@ -1352,14 +1354,14 @@ of supported upstream metrics systems simultaneously.") (define-public ansible (package (name "ansible") - (version "2.2.1.0") + (version "2.3.0.0") (source (origin (method url-fetch) (uri (pypi-uri "ansible" version)) (sha256 (base32 - "0gz9i30pdmkchi936ijy873k8di6fmf3v5rv551hxyf0hjkjx8b3")))) + "0n54h8g6a6hcp41sasvjqa4yz1pwd8mshbwlcghj0sjnrl3kk7r9")))) (build-system python-build-system) (native-inputs `(("python2-pycrypto" ,python2-pycrypto) @@ -2087,3 +2089,94 @@ It is similar to Capistrano, except it's implemented in Python and doesn't expect you to be deploying Rails applications. Fabric is a simple, Pythonic tool for remote execution and deployment.") (license license:bsd-2))) + +(define-public neofetch + (package + (name "neofetch") + (version "3.1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/dylanaraps/neofetch/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1rgznkl7a5q7lnc6zxlwvinq20b7k46n949l1hiwifarv0jgwynv")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; there are no tests + #:make-flags + (list (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-target-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("\\$\\(DESTDIR\\)/etc/") + "$(PREFIX)/etc/")) + (substitute* "neofetch" + (("\"/etc/neofetch") + (string-append "\"" out "/etc/neofetch")) + (("\"/usr/share/neofetch") + (string-append "\"" out "/usr/share/neofetch")))) + #t)) + (delete 'configure)))) + (home-page "https://github.com/dylanaraps/neofetch") + (synopsis "System info script") + (description "Neofetch is a CLI system information tool written in Bash. +Neofetch displays information about your system next to an image, your OS +logo, or any ASCII file of your choice. The main purpose of Neofetch is to be +used in screenshots to show other users what operating system or distribution +you are running, what theme or icon set you are using, etc.") + (license license:expat))) + +(define-public nnn + (package + (name "nnn") + (version "1.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/jarun/nnn/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1hww4385f81lyy30fx2rb4wchfi79dpgl7yylnfxvf27a4h2mkhm")))) + (build-system gnu-build-system) + (inputs `(("ncurses" ,ncurses) + ("readline" ,readline))) + (arguments + '(#:tests? #f ; no tests + #:phases + ;; We do not provide `ncurses.h' within an `ncursesw' + ;; sub-directory, so patch the source accordingly. See + ;; <http://bugs.gnu.org/19018>. + ;; Thanks to gtypist maintainer. + (modify-phases %standard-phases + (add-after 'unpack 'patch-curses-lib + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("-lncursesw") + "-lncurses")) + (substitute* "nnn.c" + (("ncursesw\\/curses.h") + "ncurses.h"))) + #t)) + (delete 'configure)) + #:make-flags + (list + (string-append "PREFIX=" + (assoc-ref %outputs "out")) + (string-append "-Wl,-rpath=" + %output "/lib") + "CC=gcc"))) + (home-page "https://github.com/jarun/nnn") + (synopsis "Terminal file browser") + (description "@command{nnn} is a fork of @command{noice}, a blazing-fast +lightweight terminal file browser with easy keyboard shortcuts for +navigation, opening files and running tasks. There is no config file and +mime associations are hard-coded. The incredible user-friendliness and speed +make it a perfect utility on modern distros.") + (license license:bsd-2))) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 5b2d971953..497f20538d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1868,21 +1868,19 @@ and ALSA.") (define-public qjackctl (package (name "qjackctl") - (version "0.4.4") + (version "0.4.5") (source (origin (method url-fetch) - (uri - (string-append - "mirror://sourceforge/qjackctl/qjackctl/" - version "/qjackctl-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/" + version "/qjackctl-" version ".tar.gz")) (sha256 (base32 - "19bbljb3iz5ss4s5fmra1dxabg2fnp61sa51d63zsm56xkvv47ak")))) + "1dsavjfzz5bpzc80mvfs940w9f9f47cf4r9cqxnaqrl4xilsa3f5")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; no check target (inputs - `(("jack-2" ,jack-2) + `(("jack" ,jack-1) ("qtbase" ,qtbase) ("qtx11extras" ,qtx11extras))) (native-inputs @@ -2475,14 +2473,15 @@ interface.") (define-public qsynth (package (name "qsynth") - (version "0.4.3") + (version "0.4.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version "/qsynth-" version ".tar.gz")) (sha256 - (base32 "1j5hm99fjrnaw8wbmlh4qixkv3rw5dl429mp1ag7js2ydrx0j9yy")))) + (base32 + "0qhfnikx3xcllkvs60kj6vcf2rwwzh31y41qkk6kwfhzgd219y8f")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" phase diff --git a/gnu/packages/augeas.scm b/gnu/packages/augeas.scm index 95b96ca25c..9b320810ca 100644 --- a/gnu/packages/augeas.scm +++ b/gnu/packages/augeas.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,14 +30,14 @@ (define-public augeas (package (name "augeas") - (version "1.4.0") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "http://download.augeas.net/augeas-" version ".tar.gz")) (sha256 (base32 - "0c2vncn0afmgwggnqa5s5z7m3zbcc66bi8v9m1h9w0i9q9xax7v5")))) + "1iac5lwi1q10r343ii9v5p2fdplvh06yv9svsi8zz6cd2c2fjp2i")))) (build-system gnu-build-system) ;; Marked as "required" in augeas.pc (propagated-inputs diff --git a/gnu/packages/aux-files/linux-libre/4.10-i686.conf b/gnu/packages/aux-files/linux-libre/4.11-i686.conf index 8ec475ea01..6234a980ae 100644 --- a/gnu/packages/aux-files/linux-libre/4.10-i686.conf +++ b/gnu/packages/aux-files/linux-libre/4.11-i686.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.10.0-gnu Kernel Configuration +# Linux/x86 4.11.0-gnu Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -38,7 +38,6 @@ CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_32_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y -CONFIG_DEBUG_RODATA=y CONFIG_PGTABLE_LEVELS=3 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=y @@ -134,12 +133,11 @@ CONFIG_SRCU=y # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y # CONFIG_TREE_RCU_TRACE is not set -# CONFIG_RCU_EXPEDITE_BOOT is not set CONFIG_BUILD_BIN2C=y # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=17 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -CONFIG_NMI_LOG_BUF_SHIFT=13 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CGROUPS=y @@ -155,6 +153,7 @@ CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set CONFIG_CGROUP_PIDS=y +# CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y CONFIG_CPUSETS=y @@ -223,6 +222,7 @@ CONFIG_PCI_QUIRKS=y CONFIG_MEMBARRIER=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_PC104 is not set # # Kernel Performance Events And Counters @@ -231,6 +231,7 @@ CONFIG_PERF_EVENTS=y # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_MEMCG_SYSFS_ON is not set # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y @@ -250,7 +251,7 @@ CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y -CONFIG_UPROBES=y +# CONFIG_UPROBES is not set # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y @@ -265,6 +266,7 @@ CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y @@ -287,6 +289,7 @@ CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set +# CONFIG_GCC_PLUGIN_STRUCTLEAK is not set CONFIG_HAVE_CC_STACKPROTECTOR=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_NONE is not set @@ -309,6 +312,12 @@ CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y # CONFIG_CPU_NO_EFFICIENT_FFS is not set # CONFIG_HAVE_ARCH_VMAP_STACK is not set +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y # # GCOV-based kernel profiling @@ -330,6 +339,7 @@ CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y CONFIG_LBDAF=y +CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y @@ -339,6 +349,8 @@ CONFIG_BLK_CMDLINE_PARSER=y CONFIG_BLK_WBT=y # CONFIG_BLK_WBT_SQ is not set CONFIG_BLK_WBT_MQ=y +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set # # Partition Types @@ -365,6 +377,7 @@ CONFIG_EFI_PARTITION=y CONFIG_SYSV68_PARTITION=y CONFIG_CMDLINE_PARTITION=y CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y # # IO Schedulers @@ -377,6 +390,7 @@ CONFIG_DEFAULT_DEADLINE=y # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_MQ_IOSCHED_DEADLINE=m CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y @@ -428,6 +442,7 @@ CONFIG_XEN_DOM0=y CONFIG_XEN_PVHVM=y CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set +CONFIG_XEN_PVH=y CONFIG_KVM_GUEST=y CONFIG_KVM_DEBUG_FS=y # CONFIG_LGUEST_GUEST is not set @@ -720,7 +735,6 @@ CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set @@ -796,6 +810,7 @@ CONFIG_PCIEASPM=y CONFIG_PCIEASPM_DEBUG=y CONFIG_PCIEASPM_DEFAULT=y # CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set # CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y CONFIG_PCIE_DPC=y @@ -825,9 +840,13 @@ CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m CONFIG_HOTPLUG_PCI_SHPC=m # -# PCI host controller drivers +# DesignWare PCI Core Support # # CONFIG_PCIE_DW_PLAT is not set + +# +# PCI host controller drivers +# # CONFIG_ISA_BUS is not set CONFIG_ISA_DMA_API=y CONFIG_ISA=y @@ -895,7 +914,6 @@ CONFIG_BINFMT_MISC=m CONFIG_COREDUMP=y CONFIG_COMPAT_32=y CONFIG_HAVE_ATOMIC_IOMAP=y -CONFIG_PMC_ATOM=y CONFIG_NET=y CONFIG_NET_INGRESS=y CONFIG_NET_EGRESS=y @@ -908,6 +926,7 @@ CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_DIAG=m CONFIG_XFRM=y +CONFIG_XFRM_OFFLOAD=y CONFIG_XFRM_ALGO=m CONFIG_XFRM_USER=m # CONFIG_XFRM_SUB_POLICY is not set @@ -916,6 +935,8 @@ CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=m # CONFIG_NET_KEY_MIGRATE is not set +CONFIG_SMC=m +CONFIG_SMC_DIAG=m CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y @@ -944,6 +965,7 @@ CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_INET_AH=m CONFIG_INET_ESP=m +CONFIG_INET_ESP_OFFLOAD=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m @@ -982,6 +1004,7 @@ CONFIG_IPV6_ROUTE_INFO=y # CONFIG_IPV6_OPTIMISTIC_DAD is not set CONFIG_INET6_AH=m CONFIG_INET6_ESP=m +CONFIG_INET6_ESP_OFFLOAD=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m CONFIG_IPV6_ILA=m @@ -1075,6 +1098,7 @@ CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_SET_RBTREE=m CONFIG_NFT_SET_HASH=m +CONFIG_NFT_SET_BITMAP=m CONFIG_NFT_COUNTER=m CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m @@ -1407,6 +1431,12 @@ CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y +CONFIG_NET_DSA=m +CONFIG_NET_DSA_TAG_BRCM=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_DSA_TAG_QCA=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y @@ -1511,6 +1541,7 @@ CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_SAMPLE=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m @@ -1552,7 +1583,7 @@ CONFIG_NET_MPLS_GSO=m CONFIG_MPLS_ROUTING=m CONFIG_MPLS_IPTUNNEL=m CONFIG_HSR=m -# CONFIG_NET_SWITCHDEV is not set +CONFIG_NET_SWITCHDEV=y CONFIG_NET_L3_MASTER_DEV=y CONFIG_NET_NCSI=y CONFIG_RPS=y @@ -1800,7 +1831,6 @@ CONFIG_WIMAX_DEBUG_LEVEL=8 CONFIG_RFKILL=y CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m CONFIG_RFKILL_GPIO=m CONFIG_NET_9P=m CONFIG_NET_9P_VIRTIO=m @@ -1855,9 +1885,12 @@ CONFIG_NFC_NXP_NCI_I2C=m CONFIG_NFC_S3FWRN5=m CONFIG_NFC_S3FWRN5_I2C=m CONFIG_NFC_ST95HF=m +CONFIG_PSAMPLE=m +CONFIG_NET_IFE=m CONFIG_LWTUNNEL=y CONFIG_LWTUNNEL_BPF=y CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y CONFIG_NET_DEVLINK=m CONFIG_MAY_USE_DEVLINK=m @@ -2024,7 +2057,6 @@ CONFIG_MTD_NAND_CAFE=m CONFIG_MTD_NAND_CS553X=m CONFIG_MTD_NAND_NANDSIM=m CONFIG_MTD_NAND_PLATFORM=m -CONFIG_MTD_NAND_OXNAS=m CONFIG_MTD_NAND_HISI504=m CONFIG_MTD_NAND_MTK=m CONFIG_MTD_ONENAND=m @@ -2041,6 +2073,8 @@ CONFIG_MTD_QINFO_PROBE=m CONFIG_MTD_SPI_NOR=m CONFIG_MTD_MT81xx_NOR=m CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y +CONFIG_SPI_INTEL_SPI=m +CONFIG_SPI_INTEL_SPI_PLATFORM=m CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 @@ -2128,6 +2162,7 @@ CONFIG_ATA_OVER_ETH=m CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_VIRTIO_BLK=y +# CONFIG_VIRTIO_BLK_SCSI is not set # CONFIG_BLK_DEV_HD is not set CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_RSXX=m @@ -2191,6 +2226,7 @@ CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m CONFIG_EEPROM_93XX46=m +CONFIG_EEPROM_IDT_89HPESX=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y @@ -2384,6 +2420,7 @@ CONFIG_TCM_QLA2XXX=m # CONFIG_TCM_QLA2XXX_DEBUG is not set CONFIG_SCSI_QLA_ISCSI=m CONFIG_QEDI=m +CONFIG_QEDF=m CONFIG_SCSI_LPFC=m # CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_SIM710=m @@ -2607,6 +2644,7 @@ CONFIG_NET_TEAM_MODE_LOADBALANCE=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_IPVLAN=m +CONFIG_IPVTAP=m CONFIG_VXLAN=m CONFIG_GENEVE=m CONFIG_GTP=m @@ -2620,6 +2658,7 @@ CONFIG_RIONET=m CONFIG_RIONET_TX_SIZE=128 CONFIG_RIONET_RX_SIZE=128 CONFIG_TUN=y +CONFIG_TAP=m # CONFIG_TUN_VNET_CROSS_LE is not set CONFIG_VETH=m CONFIG_VIRTIO_NET=y @@ -2681,6 +2720,16 @@ CONFIG_CAIF_VIRTIO=m # # Distributed Switch Architecture drivers # +CONFIG_NET_DSA_MV88E6060=m +CONFIG_NET_DSA_BCM_SF2=m +CONFIG_B53=m +CONFIG_B53_SPI_DRIVER=m +CONFIG_B53_MDIO_DRIVER=m +CONFIG_B53_MMAP_DRIVER=m +CONFIG_B53_SRAB_DRIVER=m +CONFIG_NET_DSA_MV88E6XXX=m +CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y +CONFIG_NET_DSA_QCA8K=m CONFIG_ETHERNET=y CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y @@ -2711,6 +2760,7 @@ CONFIG_NI65=m CONFIG_AMD_XGBE=m # CONFIG_AMD_XGBE_DCB is not set CONFIG_AMD_XGBE_HAVE_ECC=y +CONFIG_NET_VENDOR_AQUANTIA=y CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m @@ -2826,6 +2876,10 @@ CONFIG_MLXSW_CORE_HWMON=y CONFIG_MLXSW_CORE_THERMAL=y CONFIG_MLXSW_PCI=m CONFIG_MLXSW_I2C=m +CONFIG_MLXSW_SWITCHIB=m +CONFIG_MLXSW_SWITCHX2=m +CONFIG_MLXSW_SPECTRUM=m +CONFIG_MLXSW_SPECTRUM_DCB=y CONFIG_MLXSW_MINIMAL=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m @@ -2843,8 +2897,8 @@ CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_NETRONOME=y -CONFIG_NFP_NETVF=m -# CONFIG_NFP_NET_DEBUG is not set +CONFIG_NFP=m +# CONFIG_NFP_DEBUG is not set CONFIG_NET_VENDOR_8390=y CONFIG_PCMCIA_AXNET=m CONFIG_NE2000=m @@ -2873,6 +2927,7 @@ CONFIG_QED_LL2=y CONFIG_QED_SRIOV=y CONFIG_QEDE=m CONFIG_QED_ISCSI=y +CONFIG_QED_FCOE=y CONFIG_NET_VENDOR_QUALCOMM=y CONFIG_QCOM_EMAC=m CONFIG_NET_VENDOR_REALTEK=y @@ -2888,6 +2943,7 @@ CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m CONFIG_NET_VENDOR_ROCKER=y +CONFIG_ROCKER=m CONFIG_NET_VENDOR_SAMSUNG=y CONFIG_SXGBE_ETH=m CONFIG_NET_VENDOR_SEEQ=y @@ -2921,7 +2977,6 @@ CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m CONFIG_CASSINI=m CONFIG_NIU=m -CONFIG_NET_VENDOR_SYNOPSYS=y CONFIG_NET_VENDOR_TEHUTI=y CONFIG_TEHUTI=m CONFIG_NET_VENDOR_TI=y @@ -3064,6 +3119,7 @@ CONFIG_ATH5K=m CONFIG_ATH5K_PCI=y CONFIG_ATH9K_HW=m CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_COMMON_DEBUG=y CONFIG_ATH9K_BTCOEX_SUPPORT=y CONFIG_ATH9K=m CONFIG_ATH9K_PCI=y @@ -3491,7 +3547,6 @@ CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m CONFIG_NVM=y # CONFIG_NVM_DEBUG is not set -CONFIG_NVM_GENNVM=m CONFIG_NVM_RRPC=m # @@ -3542,6 +3597,7 @@ CONFIG_KEYBOARD_OPENCORES=m CONFIG_KEYBOARD_SAMSUNG=m CONFIG_KEYBOARD_STOWAWAY=m CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_TM2_TOUCHKEY=m CONFIG_KEYBOARD_TWL4030=m CONFIG_KEYBOARD_XTKBD=m CONFIG_KEYBOARD_CROS_EC=m @@ -3652,7 +3708,6 @@ CONFIG_TOUCHSCREEN_MMS114=m CONFIG_TOUCHSCREEN_MELFAS_MIP4=m CONFIG_TOUCHSCREEN_MTOUCH=m CONFIG_TOUCHSCREEN_INEXIO=m -CONFIG_TOUCHSCREEN_INTEL_MID=m CONFIG_TOUCHSCREEN_MK712=m CONFIG_TOUCHSCREEN_HTCPEN=m CONFIG_TOUCHSCREEN_PENMOUNT=m @@ -3703,6 +3758,7 @@ CONFIG_TOUCHSCREEN_SUR40=m CONFIG_TOUCHSCREEN_SURFACE3_SPI=m CONFIG_TOUCHSCREEN_SX8654=m CONFIG_TOUCHSCREEN_TPS6507X=m +CONFIG_TOUCHSCREEN_ZET6223=m CONFIG_TOUCHSCREEN_ZFORCE=m CONFIG_TOUCHSCREEN_ROHM_BU21023=m CONFIG_INPUT_MISC=y @@ -3720,7 +3776,6 @@ CONFIG_INPUT_MAX8925_ONKEY=m CONFIG_INPUT_MAX8997_HAPTIC=m CONFIG_INPUT_MC13783_PWRBUTTON=m CONFIG_INPUT_MMA8450=m -CONFIG_INPUT_MPU3050=m CONFIG_INPUT_APANEL=m CONFIG_INPUT_GP2A=m CONFIG_INPUT_GPIO_BEEPER=m @@ -3769,7 +3824,8 @@ CONFIG_RMI4_CORE=m CONFIG_RMI4_I2C=m CONFIG_RMI4_SPI=m CONFIG_RMI4_SMB=m -# CONFIG_RMI4_F03 is not set +CONFIG_RMI4_F03=y +CONFIG_RMI4_F03_SERIO=m CONFIG_RMI4_2D_SENSOR=y CONFIG_RMI4_F11=y CONFIG_RMI4_F12=y @@ -3843,6 +3899,7 @@ CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=m CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=48 CONFIG_SERIAL_8250_RUNTIME_UARTS=32 @@ -3893,6 +3950,8 @@ CONFIG_SERIAL_RP2=m CONFIG_SERIAL_RP2_NR_UARTS=32 CONFIG_SERIAL_FSL_LPUART=m CONFIG_SERIAL_MEN_Z135=m +CONFIG_SERIAL_DEV_BUS=y +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y CONFIG_TTY_PRINTK=y CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set @@ -4133,6 +4192,7 @@ CONFIG_PTP_1588_CLOCK=m # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. # CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PTP_1588_CLOCK_KVM=m CONFIG_PINCTRL=y # @@ -4149,6 +4209,7 @@ CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_MERRIFIELD=m CONFIG_PINCTRL_INTEL=m CONFIG_PINCTRL_BROXTON=m +CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_GPIOLIB=y CONFIG_GPIO_ACPI=y @@ -4164,6 +4225,7 @@ CONFIG_GPIO_MAX730X=m CONFIG_GPIO_AMDPT=m CONFIG_GPIO_AXP209=m CONFIG_GPIO_DWAPB=m +CONFIG_GPIO_EXAR=m CONFIG_GPIO_GENERIC_PLATFORM=m CONFIG_GPIO_ICH=m CONFIG_GPIO_LYNXPOINT=y @@ -4234,6 +4296,7 @@ CONFIG_GPIO_INTEL_MID=y CONFIG_GPIO_MERRIFIELD=m CONFIG_GPIO_ML_IOH=m CONFIG_GPIO_PCH=m +CONFIG_GPIO_PCI_IDIO_16=m CONFIG_GPIO_RDC321X=m # @@ -4268,6 +4331,7 @@ CONFIG_W1_MASTER_GPIO=m # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2405=m CONFIG_W1_SLAVE_DS2408=m CONFIG_W1_SLAVE_DS2408_READBACK=y CONFIG_W1_SLAVE_DS2413=m @@ -4299,6 +4363,7 @@ CONFIG_BATTERY_DS2780=m CONFIG_BATTERY_DS2781=m CONFIG_BATTERY_DS2782=m CONFIG_BATTERY_SBS=m +CONFIG_CHARGER_SBS=m CONFIG_BATTERY_BQ27XXX=m CONFIG_BATTERY_BQ27XXX_I2C=m CONFIG_BATTERY_DA9030=m @@ -4312,7 +4377,6 @@ CONFIG_BATTERY_MAX17042=m CONFIG_BATTERY_TWL4030_MADC=m CONFIG_CHARGER_88PM860X=m CONFIG_CHARGER_PCF50633=m -CONFIG_BATTERY_INTEL_MID=m CONFIG_BATTERY_RX51=m CONFIG_CHARGER_ISP1704=m CONFIG_CHARGER_MAX8903=m @@ -4473,6 +4537,7 @@ CONFIG_SENSORS_SMSC47B397=m CONFIG_SENSORS_SCH56XX_COMMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_STTS751=m CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_ADC128D818=m CONFIG_SENSORS_ADS1015=m @@ -4605,6 +4670,7 @@ CONFIG_MACHZ_WDT=m CONFIG_SBC_EPX_C3_WATCHDOG=m CONFIG_INTEL_MEI_WDT=m CONFIG_NI903X_WDT=m +CONFIG_NIC7018_WDT=m CONFIG_MEN_A21_WDT=m CONFIG_XEN_WDT=m @@ -4931,6 +4997,7 @@ CONFIG_IR_ITE_CIR=m CONFIG_IR_FINTEK=m CONFIG_IR_NUVOTON=m CONFIG_IR_REDRAT3=m +CONFIG_IR_SPI=m CONFIG_IR_STREAMZAP=m CONFIG_IR_WINBOND_CIR=m CONFIG_IR_IGORPLUGUSB=m @@ -5016,7 +5083,6 @@ CONFIG_VIDEO_PVRUSB2_DVB=y CONFIG_VIDEO_HDPVR=m CONFIG_VIDEO_USBVISION=m CONFIG_VIDEO_STK1160_COMMON=m -CONFIG_VIDEO_STK1160_AC97=y CONFIG_VIDEO_STK1160=m CONFIG_VIDEO_GO7007=m CONFIG_VIDEO_GO7007_USB=m @@ -5081,6 +5147,7 @@ CONFIG_DVB_USB_LME2510=m CONFIG_DVB_USB_MXL111SF=m CONFIG_DVB_USB_RTL28XXU=m CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_USB_ZD1301=m CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_TTUSB_DEC=m CONFIG_SMS_USB_DRV=m @@ -5131,6 +5198,7 @@ CONFIG_VIDEO_ZORAN_AVS6EYES=m # Media capture/analog TV support # CONFIG_VIDEO_IVTV=m +# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set CONFIG_VIDEO_IVTV_ALSA=m CONFIG_VIDEO_FB_IVTV=m CONFIG_VIDEO_HEXIUM_GEMINI=m @@ -5496,6 +5564,7 @@ CONFIG_DVB_RTL2832=m CONFIG_DVB_RTL2832_SDR=m CONFIG_DVB_SI2168=m CONFIG_DVB_AS102_FE=m +CONFIG_DVB_ZD1301_DEMOD=m CONFIG_DVB_GP8PSK_FE=m # @@ -5590,11 +5659,13 @@ CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set +# CONFIG_DRM_DEBUG_MM_SELFTEST is not set CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_TTM=m +CONFIG_DRM_VM=y # # I2C encoder or helper chips @@ -5629,6 +5700,7 @@ CONFIG_DRM_I915_USERPTR=y # # CONFIG_DRM_I915_WERROR is not set # CONFIG_DRM_I915_DEBUG is not set +# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set CONFIG_DRM_VGEM=m CONFIG_DRM_VMWGFX=m CONFIG_DRM_VMWGFX_FBCON=y @@ -5655,7 +5727,9 @@ CONFIG_DRM_BRIDGE=y # CONFIG_DRM_ANALOGIX_ANX78XX=m CONFIG_DRM_HISI_HIBMC=m +# CONFIG_DRM_TINYDRM is not set # CONFIG_DRM_LEGACY is not set +# CONFIG_DRM_LIB_RANDOM is not set # # Frame buffer Devices @@ -5673,6 +5747,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m CONFIG_FB_DEFERRED_IO=y @@ -6091,7 +6166,7 @@ CONFIG_SND_SOC_FSL_ESAI=m CONFIG_SND_SOC_IMX_AUDMUX=m # CONFIG_SND_SOC_IMG is not set CONFIG_SND_MFLD_MACHINE=m -CONFIG_SND_SST_MFLD_PLATFORM=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m CONFIG_SND_SST_IPC=m CONFIG_SND_SST_IPC_PCI=m CONFIG_SND_SST_IPC_ACPI=m @@ -6103,6 +6178,7 @@ CONFIG_SND_SOC_INTEL_HASWELL=m CONFIG_SND_SOC_INTEL_HASWELL_MACH=m CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m +CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m @@ -6151,6 +6227,8 @@ CONFIG_SND_SOC_DA7219=m CONFIG_SND_SOC_DMIC=m CONFIG_SND_SOC_HDMI_CODEC=m CONFIG_SND_SOC_ES8328=m +CONFIG_SND_SOC_ES8328_I2C=m +CONFIG_SND_SOC_ES8328_SPI=m CONFIG_SND_SOC_GTM601=m CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INNO_RK3036=m @@ -6180,7 +6258,8 @@ CONFIG_SND_SOC_RT5640=m CONFIG_SND_SOC_RT5645=m CONFIG_SND_SOC_RT5651=m CONFIG_SND_SOC_RT5670=m -# CONFIG_SND_SOC_RT5677_SPI is not set +CONFIG_SND_SOC_RT5677=m +CONFIG_SND_SOC_RT5677_SPI=m CONFIG_SND_SOC_SGTL5000=m CONFIG_SND_SOC_SI476X=m CONFIG_SND_SOC_SIGMADSP=m @@ -6227,11 +6306,14 @@ CONFIG_SND_SOC_WM8962=m CONFIG_SND_SOC_WM8974=m CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_WM8985=m +CONFIG_SND_SOC_NAU8540=m CONFIG_SND_SOC_NAU8810=m CONFIG_SND_SOC_NAU8825=m CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SIMPLE_CARD_UTILS=m CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_X86=y +CONFIG_HDMI_LPE_AUDIO=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m @@ -6492,6 +6574,7 @@ CONFIG_USB_CHIPIDEA=m CONFIG_USB_CHIPIDEA_PCI=m CONFIG_USB_CHIPIDEA_UDC=y CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA_ULPI=y CONFIG_USB_ISP1760=m CONFIG_USB_ISP1760_HCD=y CONFIG_USB_ISP1761_UDC=y @@ -6569,6 +6652,7 @@ CONFIG_USB_SERIAL_XSENS_MT=m CONFIG_USB_SERIAL_WISHBONE=m CONFIG_USB_SERIAL_SSU100=m CONFIG_USB_SERIAL_QT2=m +CONFIG_USB_SERIAL_UPD78F0730=m CONFIG_USB_SERIAL_DEBUG=m # @@ -6596,6 +6680,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=m CONFIG_USB_ISIGHTFW=m CONFIG_USB_YUREX=m CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HUB_USB251XB=m CONFIG_USB_HSIC_USB3503=m CONFIG_USB_HSIC_USB4604=m CONFIG_USB_LINK_LAYER_TEST=m @@ -6770,6 +6855,7 @@ CONFIG_MEMSTICK_REALTEK_USB=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_CLASS_FLASH=m +# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set # # LED drivers @@ -6871,6 +6957,7 @@ CONFIG_INFINIBAND_SRPT=m CONFIG_INFINIBAND_ISER=m CONFIG_INFINIBAND_ISERT=m CONFIG_RDMA_RXE=m +CONFIG_INFINIBAND_BNXT_RE=m CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_EDAC=y @@ -7399,9 +7486,6 @@ CONFIG_STAGING_MEDIA=y CONFIG_I2C_BCM2048=m CONFIG_DVB_CXD2099=m CONFIG_LIRC_STAGING=y -CONFIG_LIRC_BT829=m -CONFIG_LIRC_IMON=m -CONFIG_LIRC_PARALLEL=m CONFIG_LIRC_SASEM=m CONFIG_LIRC_SIR=m CONFIG_LIRC_ZILOG=m @@ -7468,13 +7552,6 @@ CONFIG_AIM_V4L2=m CONFIG_HDM_DIM2=m CONFIG_HDM_I2C=m CONFIG_HDM_USB=m - -# -# Old ISDN4Linux (deprecated) -# -CONFIG_ISDN_DRV_ICN=m -CONFIG_ISDN_DRV_PCBIT=m -CONFIG_ISDN_DRV_ACT2000=m CONFIG_KS7010=m # CONFIG_GREYBUS is not set CONFIG_X86_PLATFORM_DEVICES=y @@ -7529,7 +7606,6 @@ CONFIG_INTEL_HID_EVENT=m CONFIG_INTEL_VBTN=m CONFIG_INTEL_SCU_IPC=y CONFIG_INTEL_SCU_IPC_UTIL=m -CONFIG_GPIO_INTEL_PMIC=y CONFIG_INTEL_MID_POWER_BUTTON=m CONFIG_INTEL_MFLD_THERMAL=m CONFIG_INTEL_IPS=m @@ -7549,6 +7625,8 @@ CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_SURFACE_3_BUTTON=m CONFIG_INTEL_PUNIT_IPC=m CONFIG_MLX_CPLD_PLATFORM=m +# CONFIG_SILEAD_DMI is not set +CONFIG_PMC_ATOM=y CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m @@ -7574,13 +7652,6 @@ CONFIG_COMMON_CLK_PALMAS=m CONFIG_COMMON_CLK_PWM=m # CONFIG_COMMON_CLK_PXA is not set # CONFIG_COMMON_CLK_PIC32 is not set -# CONFIG_COMMON_CLK_MT2701 is not set -# CONFIG_COMMON_CLK_MT2701_MMSYS is not set -# CONFIG_COMMON_CLK_MT2701_IMGSYS is not set -# CONFIG_COMMON_CLK_MT2701_VDECSYS is not set -# CONFIG_COMMON_CLK_MT2701_HIFSYS is not set -# CONFIG_COMMON_CLK_MT2701_ETHSYS is not set -# CONFIG_COMMON_CLK_MT2701_BDPSYS is not set # # Hardware Spinlock drivers @@ -7633,6 +7704,7 @@ CONFIG_REMOTEPROC=m # # CONFIG_SUNXI_SRAM is not set CONFIG_SOC_TI=y +# CONFIG_SOC_ZTE is not set CONFIG_PM_DEVFREQ=y # @@ -7657,6 +7729,7 @@ CONFIG_EXTCON_ADC_JACK=m CONFIG_EXTCON_ARIZONA=m CONFIG_EXTCON_AXP288=m CONFIG_EXTCON_GPIO=m +CONFIG_EXTCON_INTEL_INT3496=m CONFIG_EXTCON_MAX14577=m CONFIG_EXTCON_MAX3355=m CONFIG_EXTCON_MAX77693=m @@ -7733,10 +7806,12 @@ CONFIG_AXP288_ADC=m CONFIG_CC10001_ADC=m CONFIG_DA9150_GPADC=m CONFIG_HI8435=m +CONFIG_HX711=m CONFIG_INA2XX_ADC=m CONFIG_LP8788_ADC=m CONFIG_LTC2485=m CONFIG_MAX1027=m +CONFIG_MAX11100=m CONFIG_MAX1363=m CONFIG_MCP320X=m CONFIG_MCP3422=m @@ -7752,7 +7827,9 @@ CONFIG_TI_ADC12138=m CONFIG_TI_ADC128S052=m CONFIG_TI_ADC161S626=m CONFIG_TI_ADS1015=m +CONFIG_TI_ADS7950=m CONFIG_TI_AM335X_ADC=m +CONFIG_TI_TLC4541=m CONFIG_TWL4030_MADC=m CONFIG_TWL6030_GPADC=m CONFIG_VIPERBOARD_ADC=m @@ -7852,6 +7929,8 @@ CONFIG_BMG160=m CONFIG_BMG160_I2C=m CONFIG_BMG160_SPI=m CONFIG_HID_SENSOR_GYRO_3D=m +CONFIG_MPU3050=m +CONFIG_MPU3050_I2C=m CONFIG_IIO_ST_GYRO_3AXIS=m CONFIG_IIO_ST_GYRO_I2C_3AXIS=m CONFIG_IIO_ST_GYRO_SPI_3AXIS=m @@ -7893,6 +7972,9 @@ CONFIG_KMX61=m CONFIG_INV_MPU6050_IIO=m CONFIG_INV_MPU6050_I2C=m CONFIG_INV_MPU6050_SPI=m +CONFIG_IIO_ST_LSM6DSX=m +CONFIG_IIO_ST_LSM6DSX_I2C=m +CONFIG_IIO_ST_LSM6DSX_SPI=m CONFIG_IIO_ADIS_LIB=m CONFIG_IIO_ADIS_LIB_BUFFER=y @@ -7969,6 +8051,7 @@ CONFIG_IIO_SYSFS_TRIGGER=m # Digital potentiometers # CONFIG_DS1803=m +CONFIG_MAX5481=m CONFIG_MAX5487=m CONFIG_MCP4131=m CONFIG_MCP4531=m @@ -7986,6 +8069,7 @@ CONFIG_ABP060MG=m CONFIG_BMP280=m CONFIG_BMP280_I2C=m CONFIG_BMP280_SPI=m +CONFIG_IIO_CROS_EC_BARO=m CONFIG_HID_SENSOR_PRESS=m CONFIG_HP03=m CONFIG_MPL115=m @@ -8011,10 +8095,11 @@ CONFIG_ZPA2326_SPI=m CONFIG_AS3935=m # -# Proximity sensors +# Proximity and distance sensors # CONFIG_LIDAR_LITE_V2=m CONFIG_SX9500=m +CONFIG_SRF08=m # # Temperature sensors @@ -8022,6 +8107,7 @@ CONFIG_SX9500=m CONFIG_MAXIM_THERMOCOUPLE=m CONFIG_MLX90614=m CONFIG_TMP006=m +CONFIG_TMP007=m CONFIG_TSYS01=m CONFIG_TSYS02D=m CONFIG_NTB=m @@ -8092,6 +8178,8 @@ CONFIG_PHY_SAMSUNG_USB2=m # CONFIG_PHY_EXYNOS4210_USB2 is not set # CONFIG_PHY_EXYNOS4X12_USB2 is not set # CONFIG_PHY_EXYNOS5250_USB2 is not set +CONFIG_PHY_QCOM_USB_HS=m +CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_TUSB1210=m CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m @@ -8138,9 +8226,13 @@ CONFIG_INTEL_TH_PTI=m CONFIG_FPGA=m # +# FSI support +# +# CONFIG_FSI is not set + +# # Firmware Drivers # -# CONFIG_ARM_SCPI_PROTOCOL is not set CONFIG_EDD=y CONFIG_EDD_OFF=y CONFIG_FIRMWARE_MEMMAP=y @@ -8554,6 +8646,7 @@ CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_DEBUG_KERNEL=y # @@ -8563,6 +8656,7 @@ CONFIG_PAGE_EXTENSION=y # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_PAGE_REF is not set +# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set @@ -8570,6 +8664,7 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_VM is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_MEMORY_INIT is not set CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m @@ -8602,7 +8697,6 @@ CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y CONFIG_SCHED_STACK_END_CHECK=y # CONFIG_DEBUG_TIMEKEEPING is not set -CONFIG_TIMER_STATS=y # # Lock Debugging (spinlocks, mutexes, etc...) @@ -8617,6 +8711,7 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_LOCK_TORTURE_TEST=m +CONFIG_WW_MUTEX_SELFTEST=m CONFIG_STACKTRACE=y # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y @@ -8677,8 +8772,8 @@ CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ALL_BRANCHES is not set CONFIG_STACK_TRACER=y CONFIG_BLK_DEV_IO_TRACE=y -CONFIG_KPROBE_EVENT=y -CONFIG_UPROBE_EVENT=y +CONFIG_KPROBE_EVENTS=y +# CONFIG_UPROBE_EVENTS is not set CONFIG_BPF_EVENTS=y CONFIG_PROBE_EVENTS=y CONFIG_DYNAMIC_FTRACE=y @@ -8700,6 +8795,7 @@ CONFIG_TRACING_EVENTS_GPIO=y # # CONFIG_LKDTM is not set # CONFIG_TEST_LIST_SORT is not set +# CONFIG_TEST_SORT is not set # CONFIG_KPROBES_SANITY_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_RBTREE_TEST=m @@ -8715,6 +8811,7 @@ CONFIG_TEST_BITMAP=m CONFIG_TEST_UUID=m # CONFIG_TEST_RHASHTABLE is not set CONFIG_TEST_HASH=m +CONFIG_TEST_PARMAN=m # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set CONFIG_TEST_LKM=m @@ -8748,10 +8845,7 @@ CONFIG_EARLY_PRINTK_EFI=y # CONFIG_X86_PTDUMP_CORE is not set # CONFIG_X86_PTDUMP is not set # CONFIG_EFI_PGT_DUMP is not set -# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_WX is not set -CONFIG_DEBUG_SET_MODULE_RONX=y -# CONFIG_DEBUG_NX_TEST is not set CONFIG_DOUBLEFAULT=y # CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_STRESS is not set @@ -8795,6 +8889,7 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y CONFIG_HARDENED_USERCOPY=y # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set +# CONFIG_STATIC_USERMODEHELPER is not set CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 @@ -8816,6 +8911,7 @@ CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y +# CONFIG_SECURITY_APPARMOR_DEBUG is not set # CONFIG_SECURITY_LOADPIN is not set CONFIG_SECURITY_YAMA=y CONFIG_INTEGRITY=y @@ -8897,6 +8993,7 @@ CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_ABLK_HELPER=m CONFIG_CRYPTO_SIMD=m CONFIG_CRYPTO_GLUE_HELPER_X86=m +CONFIG_CRYPTO_ENGINE=m # # Authenticated Encryption with Associated Data @@ -8955,6 +9052,7 @@ CONFIG_CRYPTO_WP512=m # Ciphers # CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_TI=m CONFIG_CRYPTO_AES_586=m CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m @@ -9133,6 +9231,8 @@ CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y +# CONFIG_DMA_NOOP_OPS is not set +CONFIG_DMA_VIRT_OPS=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y CONFIG_DQL=y @@ -9157,3 +9257,4 @@ CONFIG_SG_POOL=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_MMIO_FLUSH=y CONFIG_SBITMAP=y +CONFIG_PARMAN=m diff --git a/gnu/packages/aux-files/linux-libre/4.10-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.11-x86_64.conf index c5d8fe1da0..d47a5d1226 100644 --- a/gnu/packages/aux-files/linux-libre/4.10-x86_64.conf +++ b/gnu/packages/aux-files/linux-libre/4.11-x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.10.0-gnu Kernel Configuration +# Linux/x86 4.11.0-gnu Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -41,7 +41,6 @@ CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y -CONFIG_DEBUG_RODATA=y CONFIG_PGTABLE_LEVELS=4 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=y @@ -139,12 +138,11 @@ CONFIG_SRCU=y # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y # CONFIG_TREE_RCU_TRACE is not set -# CONFIG_RCU_EXPEDITE_BOOT is not set CONFIG_BUILD_BIN2C=y # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=18 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -CONFIG_NMI_LOG_BUF_SHIFT=13 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y @@ -164,6 +162,7 @@ CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set CONFIG_CGROUP_PIDS=y +# CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y CONFIG_CPUSETS=y @@ -232,6 +231,7 @@ CONFIG_PCI_QUIRKS=y CONFIG_MEMBARRIER=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_PC104 is not set # # Kernel Performance Events And Counters @@ -240,6 +240,7 @@ CONFIG_PERF_EVENTS=y # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_MEMCG_SYSFS_ON is not set # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y @@ -259,7 +260,7 @@ CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y -CONFIG_UPROBES=y +# CONFIG_UPROBES is not set # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y @@ -274,6 +275,7 @@ CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y @@ -297,6 +299,7 @@ CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set +# CONFIG_GCC_PLUGIN_STRUCTLEAK is not set CONFIG_HAVE_CC_STACKPROTECTOR=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_NONE is not set @@ -307,6 +310,7 @@ CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y CONFIG_HAVE_ARCH_HUGE_VMAP=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_MODULES_USE_ELF_RELA=y @@ -326,6 +330,12 @@ CONFIG_COMPAT_OLD_SIGACTION=y # CONFIG_CPU_NO_EFFICIENT_FFS is not set CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_VMAP_STACK=y +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y # # GCOV-based kernel profiling @@ -346,6 +356,7 @@ CONFIG_MODULE_SRCVERSION_ALL=y # CONFIG_MODULE_COMPRESS is not set CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y +CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y @@ -355,6 +366,8 @@ CONFIG_BLK_CMDLINE_PARSER=y CONFIG_BLK_WBT=y # CONFIG_BLK_WBT_SQ is not set CONFIG_BLK_WBT_MQ=y +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set # # Partition Types @@ -382,6 +395,7 @@ CONFIG_SYSV68_PARTITION=y CONFIG_CMDLINE_PARTITION=y CONFIG_BLOCK_COMPAT=y CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y # # IO Schedulers @@ -394,6 +408,7 @@ CONFIG_DEFAULT_DEADLINE=y # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_MQ_IOSCHED_DEADLINE=m CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y @@ -729,7 +744,6 @@ CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set @@ -787,6 +801,7 @@ CONFIG_PCIEASPM=y CONFIG_PCIEASPM_DEBUG=y CONFIG_PCIEASPM_DEFAULT=y # CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set # CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y CONFIG_PCIE_DPC=y @@ -814,9 +829,13 @@ CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m CONFIG_HOTPLUG_PCI_SHPC=m # -# PCI host controller drivers +# DesignWare PCI Core Support # # CONFIG_PCIE_DW_PLAT is not set + +# +# PCI host controller drivers +# # CONFIG_VMD is not set # CONFIG_ISA_BUS is not set CONFIG_ISA_DMA_API=y @@ -878,7 +897,6 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_KEYS_COMPAT=y CONFIG_X86_DEV_DMA_OPS=y -CONFIG_PMC_ATOM=y CONFIG_NET=y CONFIG_COMPAT_NETLINK_MESSAGES=y CONFIG_NET_INGRESS=y @@ -892,6 +910,7 @@ CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_DIAG=m CONFIG_XFRM=y +CONFIG_XFRM_OFFLOAD=y CONFIG_XFRM_ALGO=m CONFIG_XFRM_USER=m # CONFIG_XFRM_SUB_POLICY is not set @@ -900,6 +919,8 @@ CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=m # CONFIG_NET_KEY_MIGRATE is not set +CONFIG_SMC=m +CONFIG_SMC_DIAG=m CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y @@ -928,6 +949,7 @@ CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_INET_AH=m CONFIG_INET_ESP=m +CONFIG_INET_ESP_OFFLOAD=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m @@ -966,6 +988,7 @@ CONFIG_IPV6_ROUTE_INFO=y # CONFIG_IPV6_OPTIMISTIC_DAD is not set CONFIG_INET6_AH=m CONFIG_INET6_ESP=m +CONFIG_INET6_ESP_OFFLOAD=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m CONFIG_IPV6_ILA=m @@ -1059,6 +1082,7 @@ CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_SET_RBTREE=m CONFIG_NFT_SET_HASH=m +CONFIG_NFT_SET_BITMAP=m CONFIG_NFT_COUNTER=m CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m @@ -1391,6 +1415,12 @@ CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y +CONFIG_NET_DSA=m +CONFIG_NET_DSA_TAG_BRCM=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_DSA_TAG_QCA=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y @@ -1491,6 +1521,7 @@ CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_SAMPLE=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m @@ -1532,7 +1563,7 @@ CONFIG_NET_MPLS_GSO=m CONFIG_MPLS_ROUTING=m CONFIG_MPLS_IPTUNNEL=m CONFIG_HSR=m -# CONFIG_NET_SWITCHDEV is not set +CONFIG_NET_SWITCHDEV=y CONFIG_NET_L3_MASTER_DEV=y CONFIG_NET_NCSI=y CONFIG_RPS=y @@ -1774,7 +1805,6 @@ CONFIG_WIMAX_DEBUG_LEVEL=8 CONFIG_RFKILL=y CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m CONFIG_RFKILL_GPIO=m CONFIG_NET_9P=m CONFIG_NET_9P_VIRTIO=m @@ -1829,9 +1859,12 @@ CONFIG_NFC_NXP_NCI_I2C=m CONFIG_NFC_S3FWRN5=m CONFIG_NFC_S3FWRN5_I2C=m CONFIG_NFC_ST95HF=m +CONFIG_PSAMPLE=m +CONFIG_NET_IFE=m CONFIG_LWTUNNEL=y CONFIG_LWTUNNEL_BPF=y CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y CONFIG_NET_DEVLINK=m CONFIG_MAY_USE_DEVLINK=m CONFIG_HAVE_EBPF_JIT=y @@ -1997,7 +2030,6 @@ CONFIG_MTD_NAND_DOCG4=m CONFIG_MTD_NAND_CAFE=m CONFIG_MTD_NAND_NANDSIM=m CONFIG_MTD_NAND_PLATFORM=m -CONFIG_MTD_NAND_OXNAS=m CONFIG_MTD_NAND_HISI504=m CONFIG_MTD_NAND_MTK=m CONFIG_MTD_ONENAND=m @@ -2014,6 +2046,8 @@ CONFIG_MTD_QINFO_PROBE=m CONFIG_MTD_SPI_NOR=m CONFIG_MTD_MT81xx_NOR=m CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y +CONFIG_SPI_INTEL_SPI=m +CONFIG_SPI_INTEL_SPI_PLATFORM=m CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 @@ -2098,6 +2132,7 @@ CONFIG_ATA_OVER_ETH=m CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_VIRTIO_BLK=y +# CONFIG_VIRTIO_BLK_SCSI is not set # CONFIG_BLK_DEV_HD is not set CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_RSXX=m @@ -2158,6 +2193,7 @@ CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m CONFIG_EEPROM_93XX46=m +CONFIG_EEPROM_IDT_89HPESX=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y @@ -2355,6 +2391,7 @@ CONFIG_TCM_QLA2XXX=m # CONFIG_TCM_QLA2XXX_DEBUG is not set CONFIG_SCSI_QLA_ISCSI=m CONFIG_QEDI=m +CONFIG_QEDF=m CONFIG_SCSI_LPFC=m # CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_DC395x=m @@ -2566,6 +2603,7 @@ CONFIG_NET_TEAM_MODE_LOADBALANCE=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_IPVLAN=m +CONFIG_IPVTAP=m CONFIG_VXLAN=m CONFIG_GENEVE=m CONFIG_GTP=m @@ -2579,6 +2617,7 @@ CONFIG_RIONET=m CONFIG_RIONET_TX_SIZE=128 CONFIG_RIONET_RX_SIZE=128 CONFIG_TUN=y +CONFIG_TAP=m # CONFIG_TUN_VNET_CROSS_LE is not set CONFIG_VETH=m CONFIG_VIRTIO_NET=y @@ -2639,6 +2678,16 @@ CONFIG_CAIF_VIRTIO=m # # Distributed Switch Architecture drivers # +CONFIG_NET_DSA_MV88E6060=m +CONFIG_NET_DSA_BCM_SF2=m +CONFIG_B53=m +CONFIG_B53_SPI_DRIVER=m +CONFIG_B53_MDIO_DRIVER=m +CONFIG_B53_MMAP_DRIVER=m +CONFIG_B53_SRAB_DRIVER=m +CONFIG_NET_DSA_MV88E6XXX=m +CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y +CONFIG_NET_DSA_QCA8K=m CONFIG_ETHERNET=y CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y @@ -2665,6 +2714,8 @@ CONFIG_PCMCIA_NMCLAN=m CONFIG_AMD_XGBE=m # CONFIG_AMD_XGBE_DCB is not set CONFIG_AMD_XGBE_HAVE_ECC=y +CONFIG_NET_VENDOR_AQUANTIA=y +CONFIG_AQTION=m CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m @@ -2784,6 +2835,10 @@ CONFIG_MLXSW_CORE_HWMON=y CONFIG_MLXSW_CORE_THERMAL=y CONFIG_MLXSW_PCI=m CONFIG_MLXSW_I2C=m +CONFIG_MLXSW_SWITCHIB=m +CONFIG_MLXSW_SWITCHX2=m +CONFIG_MLXSW_SPECTRUM=m +CONFIG_MLXSW_SPECTRUM_DCB=y CONFIG_MLXSW_MINIMAL=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m @@ -2802,8 +2857,8 @@ CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_NETRONOME=y -CONFIG_NFP_NETVF=m -# CONFIG_NFP_NET_DEBUG is not set +CONFIG_NFP=m +# CONFIG_NFP_DEBUG is not set CONFIG_NET_VENDOR_8390=y CONFIG_PCMCIA_AXNET=m CONFIG_NE2K_PCI=m @@ -2829,6 +2884,7 @@ CONFIG_QED_SRIOV=y CONFIG_QEDE=m CONFIG_QED_RDMA=y CONFIG_QED_ISCSI=y +CONFIG_QED_FCOE=y CONFIG_NET_VENDOR_QUALCOMM=y CONFIG_QCOM_EMAC=m CONFIG_NET_VENDOR_REALTEK=y @@ -2844,6 +2900,7 @@ CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m CONFIG_NET_VENDOR_ROCKER=y +CONFIG_ROCKER=m CONFIG_NET_VENDOR_SAMSUNG=y CONFIG_SXGBE_ETH=m CONFIG_NET_VENDOR_SEEQ=y @@ -2876,7 +2933,6 @@ CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m CONFIG_CASSINI=m CONFIG_NIU=m -CONFIG_NET_VENDOR_SYNOPSYS=y CONFIG_NET_VENDOR_TEHUTI=y CONFIG_TEHUTI=m CONFIG_NET_VENDOR_TI=y @@ -3022,6 +3078,7 @@ CONFIG_ATH5K=m CONFIG_ATH5K_PCI=y CONFIG_ATH9K_HW=m CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_COMMON_DEBUG=y CONFIG_ATH9K_BTCOEX_SUPPORT=y CONFIG_ATH9K=m CONFIG_ATH9K_PCI=y @@ -3431,7 +3488,6 @@ CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m CONFIG_NVM=y # CONFIG_NVM_DEBUG is not set -CONFIG_NVM_GENNVM=m CONFIG_NVM_RRPC=m # @@ -3482,6 +3538,7 @@ CONFIG_KEYBOARD_OPENCORES=m CONFIG_KEYBOARD_SAMSUNG=m CONFIG_KEYBOARD_STOWAWAY=m CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_TM2_TOUCHKEY=m CONFIG_KEYBOARD_TWL4030=m CONFIG_KEYBOARD_XTKBD=m CONFIG_KEYBOARD_CROS_EC=m @@ -3638,6 +3695,7 @@ CONFIG_TOUCHSCREEN_SUR40=m CONFIG_TOUCHSCREEN_SURFACE3_SPI=m CONFIG_TOUCHSCREEN_SX8654=m CONFIG_TOUCHSCREEN_TPS6507X=m +CONFIG_TOUCHSCREEN_ZET6223=m CONFIG_TOUCHSCREEN_ZFORCE=m CONFIG_TOUCHSCREEN_ROHM_BU21023=m CONFIG_INPUT_MISC=y @@ -3655,7 +3713,6 @@ CONFIG_INPUT_MAX8925_ONKEY=m CONFIG_INPUT_MAX8997_HAPTIC=m CONFIG_INPUT_MC13783_PWRBUTTON=m CONFIG_INPUT_MMA8450=m -CONFIG_INPUT_MPU3050=m CONFIG_INPUT_APANEL=m CONFIG_INPUT_GP2A=m CONFIG_INPUT_GPIO_BEEPER=m @@ -3703,7 +3760,8 @@ CONFIG_RMI4_CORE=m CONFIG_RMI4_I2C=m CONFIG_RMI4_SPI=m CONFIG_RMI4_SMB=m -# CONFIG_RMI4_F03 is not set +CONFIG_RMI4_F03=y +CONFIG_RMI4_F03_SERIO=m CONFIG_RMI4_2D_SENSOR=y CONFIG_RMI4_F11=y CONFIG_RMI4_F12=y @@ -3777,6 +3835,7 @@ CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=m CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=48 CONFIG_SERIAL_8250_RUNTIME_UARTS=32 @@ -3820,6 +3879,8 @@ CONFIG_SERIAL_RP2=m CONFIG_SERIAL_RP2_NR_UARTS=32 CONFIG_SERIAL_FSL_LPUART=m CONFIG_SERIAL_MEN_Z135=m +CONFIG_SERIAL_DEV_BUS=y +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y CONFIG_TTY_PRINTK=y CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set @@ -4050,6 +4111,7 @@ CONFIG_PTP_1588_CLOCK=m # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. # +CONFIG_PTP_1588_CLOCK_KVM=m CONFIG_PINCTRL=y # @@ -4065,6 +4127,7 @@ CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_INTEL=m CONFIG_PINCTRL_BROXTON=m +CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_GPIOLIB=y CONFIG_GPIO_ACPI=y @@ -4080,6 +4143,7 @@ CONFIG_GPIO_MAX730X=m CONFIG_GPIO_AMDPT=m CONFIG_GPIO_AXP209=m CONFIG_GPIO_DWAPB=m +CONFIG_GPIO_EXAR=m CONFIG_GPIO_GENERIC_PLATFORM=m CONFIG_GPIO_ICH=m CONFIG_GPIO_LYNXPOINT=y @@ -4139,6 +4203,7 @@ CONFIG_GPIO_WM8994=m # CONFIG_GPIO_AMD8111=m CONFIG_GPIO_ML_IOH=m +CONFIG_GPIO_PCI_IDIO_16=m CONFIG_GPIO_RDC321X=m # @@ -4173,6 +4238,7 @@ CONFIG_W1_MASTER_GPIO=m # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2405=m CONFIG_W1_SLAVE_DS2408=m CONFIG_W1_SLAVE_DS2408_READBACK=y CONFIG_W1_SLAVE_DS2413=m @@ -4204,6 +4270,7 @@ CONFIG_BATTERY_DS2780=m CONFIG_BATTERY_DS2781=m CONFIG_BATTERY_DS2782=m CONFIG_BATTERY_SBS=m +CONFIG_CHARGER_SBS=m CONFIG_BATTERY_BQ27XXX=m CONFIG_BATTERY_BQ27XXX_I2C=m CONFIG_BATTERY_DA9030=m @@ -4377,6 +4444,7 @@ CONFIG_SENSORS_SMSC47B397=m CONFIG_SENSORS_SCH56XX_COMMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_STTS751=m CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_ADC128D818=m CONFIG_SENSORS_ADS1015=m @@ -4503,6 +4571,7 @@ CONFIG_MACHZ_WDT=m CONFIG_SBC_EPX_C3_WATCHDOG=m CONFIG_INTEL_MEI_WDT=m CONFIG_NI903X_WDT=m +CONFIG_NIC7018_WDT=m CONFIG_MEN_A21_WDT=m CONFIG_XEN_WDT=m @@ -4819,6 +4888,7 @@ CONFIG_IR_ITE_CIR=m CONFIG_IR_FINTEK=m CONFIG_IR_NUVOTON=m CONFIG_IR_REDRAT3=m +CONFIG_IR_SPI=m CONFIG_IR_STREAMZAP=m CONFIG_IR_WINBOND_CIR=m CONFIG_IR_IGORPLUGUSB=m @@ -4904,7 +4974,6 @@ CONFIG_VIDEO_PVRUSB2_DVB=y CONFIG_VIDEO_HDPVR=m CONFIG_VIDEO_USBVISION=m CONFIG_VIDEO_STK1160_COMMON=m -CONFIG_VIDEO_STK1160_AC97=y CONFIG_VIDEO_STK1160=m CONFIG_VIDEO_GO7007=m CONFIG_VIDEO_GO7007_USB=m @@ -4969,6 +5038,7 @@ CONFIG_DVB_USB_LME2510=m CONFIG_DVB_USB_MXL111SF=m CONFIG_DVB_USB_RTL28XXU=m CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_USB_ZD1301=m CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_TTUSB_DEC=m CONFIG_SMS_USB_DRV=m @@ -5019,6 +5089,7 @@ CONFIG_VIDEO_ZORAN_AVS6EYES=m # Media capture/analog TV support # CONFIG_VIDEO_IVTV=m +# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set CONFIG_VIDEO_IVTV_ALSA=m CONFIG_VIDEO_FB_IVTV=m CONFIG_VIDEO_HEXIUM_GEMINI=m @@ -5369,6 +5440,7 @@ CONFIG_DVB_RTL2832=m CONFIG_DVB_RTL2832_SDR=m CONFIG_DVB_SI2168=m CONFIG_DVB_AS102_FE=m +CONFIG_DVB_ZD1301_DEMOD=m CONFIG_DVB_GP8PSK_FE=m # @@ -5457,11 +5529,13 @@ CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set +# CONFIG_DRM_DEBUG_MM_SELFTEST is not set CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_TTM=m +CONFIG_DRM_VM=y # # I2C encoder or helper chips @@ -5497,6 +5571,7 @@ CONFIG_DRM_I915_USERPTR=y # # CONFIG_DRM_I915_WERROR is not set # CONFIG_DRM_I915_DEBUG is not set +# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set CONFIG_DRM_VGEM=m CONFIG_DRM_VMWGFX=m CONFIG_DRM_VMWGFX_FBCON=y @@ -5523,7 +5598,9 @@ CONFIG_DRM_BRIDGE=y CONFIG_DRM_ANALOGIX_ANX78XX=m CONFIG_HSA_AMD=m CONFIG_DRM_HISI_HIBMC=m +# CONFIG_DRM_TINYDRM is not set # CONFIG_DRM_LEGACY is not set +# CONFIG_DRM_LIB_RANDOM is not set # # Frame buffer Devices @@ -5541,6 +5618,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m CONFIG_FB_DEFERRED_IO=y @@ -5896,7 +5974,7 @@ CONFIG_SND_SOC_FSL_SPDIF=m CONFIG_SND_SOC_FSL_ESAI=m CONFIG_SND_SOC_IMX_AUDMUX=m # CONFIG_SND_SOC_IMG is not set -CONFIG_SND_SST_MFLD_PLATFORM=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m CONFIG_SND_SST_IPC=m CONFIG_SND_SST_IPC_ACPI=m CONFIG_SND_SOC_INTEL_SST=m @@ -5907,6 +5985,7 @@ CONFIG_SND_SOC_INTEL_HASWELL=m CONFIG_SND_SOC_INTEL_HASWELL_MACH=m CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m +CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m @@ -5955,6 +6034,8 @@ CONFIG_SND_SOC_DA7219=m CONFIG_SND_SOC_DMIC=m CONFIG_SND_SOC_HDMI_CODEC=m CONFIG_SND_SOC_ES8328=m +CONFIG_SND_SOC_ES8328_I2C=m +CONFIG_SND_SOC_ES8328_SPI=m CONFIG_SND_SOC_GTM601=m CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INNO_RK3036=m @@ -5984,7 +6065,8 @@ CONFIG_SND_SOC_RT5640=m CONFIG_SND_SOC_RT5645=m CONFIG_SND_SOC_RT5651=m CONFIG_SND_SOC_RT5670=m -# CONFIG_SND_SOC_RT5677_SPI is not set +CONFIG_SND_SOC_RT5677=m +CONFIG_SND_SOC_RT5677_SPI=m CONFIG_SND_SOC_SGTL5000=m CONFIG_SND_SOC_SI476X=m CONFIG_SND_SOC_SIGMADSP=m @@ -6030,11 +6112,14 @@ CONFIG_SND_SOC_WM8962=m CONFIG_SND_SOC_WM8974=m CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_WM8985=m +CONFIG_SND_SOC_NAU8540=m CONFIG_SND_SOC_NAU8810=m CONFIG_SND_SOC_NAU8825=m CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SIMPLE_CARD_UTILS=m CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_X86=y +CONFIG_HDMI_LPE_AUDIO=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m @@ -6300,6 +6385,7 @@ CONFIG_USB_CHIPIDEA=m CONFIG_USB_CHIPIDEA_PCI=m CONFIG_USB_CHIPIDEA_UDC=y CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA_ULPI=y CONFIG_USB_ISP1760=m CONFIG_USB_ISP1760_HCD=y CONFIG_USB_ISP1761_UDC=y @@ -6377,6 +6463,7 @@ CONFIG_USB_SERIAL_XSENS_MT=m CONFIG_USB_SERIAL_WISHBONE=m CONFIG_USB_SERIAL_SSU100=m CONFIG_USB_SERIAL_QT2=m +CONFIG_USB_SERIAL_UPD78F0730=m CONFIG_USB_SERIAL_DEBUG=m # @@ -6404,6 +6491,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=m CONFIG_USB_ISIGHTFW=m CONFIG_USB_YUREX=m CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HUB_USB251XB=m CONFIG_USB_HSIC_USB3503=m CONFIG_USB_HSIC_USB4604=m CONFIG_USB_LINK_LAYER_TEST=m @@ -6579,6 +6667,7 @@ CONFIG_MEMSTICK_REALTEK_USB=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_CLASS_FLASH=m +# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set # # LED drivers @@ -6686,6 +6775,7 @@ CONFIG_INFINIBAND_HFI1=m CONFIG_HFI1_VERBS_31BIT_PSN=y # CONFIG_SDMA_VERBOSITY is not set CONFIG_INFINIBAND_QEDR=m +CONFIG_INFINIBAND_BNXT_RE=m CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_EDAC=y @@ -6708,6 +6798,7 @@ CONFIG_EDAC_I5100=m CONFIG_EDAC_I7300=m CONFIG_EDAC_SBRIDGE=m CONFIG_EDAC_SKX=m +CONFIG_EDAC_PND2=m CONFIG_RTC_LIB=y CONFIG_RTC_MC146818_LIB=y CONFIG_RTC_CLASS=y @@ -7208,9 +7299,6 @@ CONFIG_STAGING_MEDIA=y CONFIG_I2C_BCM2048=m CONFIG_DVB_CXD2099=m CONFIG_LIRC_STAGING=y -CONFIG_LIRC_BT829=m -CONFIG_LIRC_IMON=m -CONFIG_LIRC_PARALLEL=m CONFIG_LIRC_SASEM=m CONFIG_LIRC_SIR=m CONFIG_LIRC_ZILOG=m @@ -7283,10 +7371,6 @@ CONFIG_AIM_V4L2=m CONFIG_HDM_DIM2=m CONFIG_HDM_I2C=m CONFIG_HDM_USB=m - -# -# Old ISDN4Linux (deprecated) -# CONFIG_KS7010=m # CONFIG_GREYBUS is not set CONFIG_X86_PLATFORM_DEVICES=y @@ -7357,6 +7441,9 @@ CONFIG_INTEL_PUNIT_IPC=m CONFIG_INTEL_TELEMETRY=m # CONFIG_MLX_PLATFORM is not set CONFIG_MLX_CPLD_PLATFORM=m +# CONFIG_INTEL_TURBO_MAX_3 is not set +# CONFIG_SILEAD_DMI is not set +CONFIG_PMC_ATOM=y CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m @@ -7382,13 +7469,6 @@ CONFIG_COMMON_CLK_PALMAS=m CONFIG_COMMON_CLK_PWM=m # CONFIG_COMMON_CLK_PXA is not set # CONFIG_COMMON_CLK_PIC32 is not set -# CONFIG_COMMON_CLK_MT2701 is not set -# CONFIG_COMMON_CLK_MT2701_MMSYS is not set -# CONFIG_COMMON_CLK_MT2701_IMGSYS is not set -# CONFIG_COMMON_CLK_MT2701_VDECSYS is not set -# CONFIG_COMMON_CLK_MT2701_HIFSYS is not set -# CONFIG_COMMON_CLK_MT2701_ETHSYS is not set -# CONFIG_COMMON_CLK_MT2701_BDPSYS is not set # # Hardware Spinlock drivers @@ -7442,6 +7522,7 @@ CONFIG_REMOTEPROC=m # # CONFIG_SUNXI_SRAM is not set CONFIG_SOC_TI=y +# CONFIG_SOC_ZTE is not set CONFIG_PM_DEVFREQ=y # @@ -7466,6 +7547,7 @@ CONFIG_EXTCON_ADC_JACK=m CONFIG_EXTCON_ARIZONA=m CONFIG_EXTCON_AXP288=m CONFIG_EXTCON_GPIO=m +CONFIG_EXTCON_INTEL_INT3496=m CONFIG_EXTCON_MAX14577=m CONFIG_EXTCON_MAX3355=m CONFIG_EXTCON_MAX77693=m @@ -7542,10 +7624,12 @@ CONFIG_AXP288_ADC=m CONFIG_CC10001_ADC=m CONFIG_DA9150_GPADC=m CONFIG_HI8435=m +CONFIG_HX711=m CONFIG_INA2XX_ADC=m CONFIG_LP8788_ADC=m CONFIG_LTC2485=m CONFIG_MAX1027=m +CONFIG_MAX11100=m CONFIG_MAX1363=m CONFIG_MCP320X=m CONFIG_MCP3422=m @@ -7560,7 +7644,9 @@ CONFIG_TI_ADC12138=m CONFIG_TI_ADC128S052=m CONFIG_TI_ADC161S626=m CONFIG_TI_ADS1015=m +CONFIG_TI_ADS7950=m CONFIG_TI_AM335X_ADC=m +CONFIG_TI_TLC4541=m CONFIG_TWL4030_MADC=m CONFIG_TWL6030_GPADC=m CONFIG_VIPERBOARD_ADC=m @@ -7658,6 +7744,8 @@ CONFIG_BMG160=m CONFIG_BMG160_I2C=m CONFIG_BMG160_SPI=m CONFIG_HID_SENSOR_GYRO_3D=m +CONFIG_MPU3050=m +CONFIG_MPU3050_I2C=m CONFIG_IIO_ST_GYRO_3AXIS=m CONFIG_IIO_ST_GYRO_I2C_3AXIS=m CONFIG_IIO_ST_GYRO_SPI_3AXIS=m @@ -7699,6 +7787,9 @@ CONFIG_KMX61=m CONFIG_INV_MPU6050_IIO=m CONFIG_INV_MPU6050_I2C=m CONFIG_INV_MPU6050_SPI=m +CONFIG_IIO_ST_LSM6DSX=m +CONFIG_IIO_ST_LSM6DSX_I2C=m +CONFIG_IIO_ST_LSM6DSX_SPI=m CONFIG_IIO_ADIS_LIB=m CONFIG_IIO_ADIS_LIB_BUFFER=y @@ -7775,6 +7866,7 @@ CONFIG_IIO_SYSFS_TRIGGER=m # Digital potentiometers # CONFIG_DS1803=m +CONFIG_MAX5481=m CONFIG_MAX5487=m CONFIG_MCP4131=m CONFIG_MCP4531=m @@ -7792,6 +7884,7 @@ CONFIG_ABP060MG=m CONFIG_BMP280=m CONFIG_BMP280_I2C=m CONFIG_BMP280_SPI=m +CONFIG_IIO_CROS_EC_BARO=m CONFIG_HID_SENSOR_PRESS=m CONFIG_HP03=m CONFIG_MPL115=m @@ -7817,10 +7910,11 @@ CONFIG_ZPA2326_SPI=m CONFIG_AS3935=m # -# Proximity sensors +# Proximity and distance sensors # CONFIG_LIDAR_LITE_V2=m CONFIG_SX9500=m +CONFIG_SRF08=m # # Temperature sensors @@ -7828,6 +7922,7 @@ CONFIG_SX9500=m CONFIG_MAXIM_THERMOCOUPLE=m CONFIG_MLX90614=m CONFIG_TMP006=m +CONFIG_TMP007=m CONFIG_TSYS01=m CONFIG_TSYS02D=m CONFIG_NTB=m @@ -7900,6 +7995,8 @@ CONFIG_PHY_SAMSUNG_USB2=m # CONFIG_PHY_EXYNOS4210_USB2 is not set # CONFIG_PHY_EXYNOS4X12_USB2 is not set # CONFIG_PHY_EXYNOS5250_USB2 is not set +CONFIG_PHY_QCOM_USB_HS=m +CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_TUSB1210=m CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m @@ -7950,9 +8047,13 @@ CONFIG_INTEL_TH_PTI=m CONFIG_FPGA=m # +# FSI support +# +# CONFIG_FSI is not set + +# # Firmware Drivers # -# CONFIG_ARM_SCPI_PROTOCOL is not set CONFIG_EDD=y CONFIG_EDD_OFF=y CONFIG_FIRMWARE_MEMMAP=y @@ -8370,6 +8471,7 @@ CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_DEBUG_KERNEL=y # @@ -8379,6 +8481,7 @@ CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_PAGE_REF is not set +# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set @@ -8386,6 +8489,7 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_VM is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_MEMORY_INIT is not set CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m @@ -8421,7 +8525,6 @@ CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y CONFIG_SCHED_STACK_END_CHECK=y # CONFIG_DEBUG_TIMEKEEPING is not set -CONFIG_TIMER_STATS=y # # Lock Debugging (spinlocks, mutexes, etc...) @@ -8436,6 +8539,7 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_LOCK_TORTURE_TEST=m +CONFIG_WW_MUTEX_SELFTEST=m CONFIG_STACKTRACE=y # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y @@ -8497,8 +8601,8 @@ CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ALL_BRANCHES is not set CONFIG_STACK_TRACER=y CONFIG_BLK_DEV_IO_TRACE=y -CONFIG_KPROBE_EVENT=y -CONFIG_UPROBE_EVENT=y +CONFIG_KPROBE_EVENTS=y +# CONFIG_UPROBE_EVENTS is not set CONFIG_BPF_EVENTS=y CONFIG_PROBE_EVENTS=y CONFIG_DYNAMIC_FTRACE=y @@ -8520,6 +8624,7 @@ CONFIG_TRACING_EVENTS_GPIO=y # # CONFIG_LKDTM is not set # CONFIG_TEST_LIST_SORT is not set +# CONFIG_TEST_SORT is not set # CONFIG_KPROBES_SANITY_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_RBTREE_TEST=m @@ -8535,6 +8640,7 @@ CONFIG_TEST_BITMAP=m CONFIG_TEST_UUID=m # CONFIG_TEST_RHASHTABLE is not set CONFIG_TEST_HASH=m +CONFIG_TEST_PARMAN=m # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set CONFIG_TEST_LKM=m @@ -8568,10 +8674,7 @@ CONFIG_EARLY_PRINTK_EFI=y # CONFIG_X86_PTDUMP_CORE is not set # CONFIG_X86_PTDUMP is not set # CONFIG_EFI_PGT_DUMP is not set -# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_WX is not set -CONFIG_DEBUG_SET_MODULE_RONX=y -# CONFIG_DEBUG_NX_TEST is not set CONFIG_DOUBLEFAULT=y # CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_DEBUG is not set @@ -8616,6 +8719,7 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y CONFIG_HARDENED_USERCOPY=y # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set +# CONFIG_STATIC_USERMODEHELPER is not set CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 @@ -8637,6 +8741,7 @@ CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y +# CONFIG_SECURITY_APPARMOR_DEBUG is not set # CONFIG_SECURITY_LOADPIN is not set CONFIG_SECURITY_YAMA=y CONFIG_INTEGRITY=y @@ -8718,6 +8823,7 @@ CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_ABLK_HELPER=m CONFIG_CRYPTO_SIMD=m CONFIG_CRYPTO_GLUE_HELPER_X86=m +CONFIG_CRYPTO_ENGINE=m # # Authenticated Encryption with Associated Data @@ -8785,6 +8891,7 @@ CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m # Ciphers # CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_TI=m CONFIG_CRYPTO_AES_X86_64=m CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m @@ -8974,6 +9081,8 @@ CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y +# CONFIG_DMA_NOOP_OPS is not set +CONFIG_DMA_VIRT_OPS=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y CONFIG_DQL=y @@ -8999,3 +9108,4 @@ CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_PMEM_API=y CONFIG_ARCH_HAS_MMIO_FLUSH=y CONFIG_SBITMAP=y +CONFIG_PARMAN=m diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index f9c0a22a0d..d5cb5783ab 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -186,6 +187,7 @@ backups (called chunks) to allow easy burning to CD/DVD.") (define-public libarchive (package (name "libarchive") + (replacement libarchive-3.3.1) (version "3.2.2") (source (origin @@ -241,6 +243,20 @@ archive. In particular, note that there is currently no built-in support for random access nor for in-place modification.") (license license:bsd-2))) +(define libarchive-3.3.1 + (package + (inherit libarchive) + (name "libarchive") + (version "3.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://libarchive.org/downloads/libarchive-" + version ".tar.gz")) + (sha256 + (base32 + "1rr40hxlm9vy5z2zb5w7pyfkgd1a4s061qapm83s19accb8mpji9")))))) + (define-public rdup (package (name "rdup") diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index e896dbe2e1..59a9acd67e 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1140,14 +1140,14 @@ and daylight-saving rules.") (define-public libiconv (package (name "libiconv") - (version "1.14") + (version "1.15") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libiconv/libiconv-" version ".tar.gz")) (sha256 (base32 - "04q6lgl3kglmmhw59igq1n7v3rp1rpkypl366cy1k1yn2znlvckj")) + "0y1ij745r4p48mxq84rax40p10ln7fc7m243p8k8sia519i3dxfc")) (modules '((guix build utils))) (snippet ;; Work around "declared gets" error on glibc systems (fixed by diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 83a48d0f37..9f5d8141d8 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -33,6 +33,7 @@ #:use-module (guix build-system ant) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system ocaml) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system r) @@ -71,6 +72,7 @@ #:use-module (gnu packages maths) #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) + #:use-module (gnu packages ocaml) #:use-module (gnu packages pcre) #:use-module (gnu packages parallel) #:use-module (gnu packages pdf) @@ -721,7 +723,7 @@ objects are made from the Sequence objects, Sequence objects have access to Annotation and SeqFeature objects and databases, Blast objects can be converted to Alignment objects, and so on. This means that the objects provide a coordinated and extensible framework to do computational biology.") - (license (package-license perl))))) + (license license:perl-license)))) (define-public python-biopython (package @@ -3627,6 +3629,129 @@ interrupted by stop codons. OrfM finds and prints these ORFs.") (home-page "https://github.com/wwood/OrfM") (license license:lgpl3+))) +(define-public pplacer + (let ((commit "g807f6f3")) + (package + (name "pplacer") + ;; The commit should be updated with each version change. + (version "1.1.alpha19") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/matsen/pplacer/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0z1lnd2s8sh6kpzg106wzbh2szw7h0hvq8syd5a6wv4rmyyz6x0f")))) + (build-system ocaml-build-system) + (arguments + `(#:ocaml ,ocaml-4.01 + #:findlib ,ocaml4.01-findlib + #:modules ((guix build ocaml-build-system) + (guix build utils) + (ice-9 ftw)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'replace-bundled-cddlib + (lambda* (#:key inputs #:allow-other-keys) + (let* ((cddlib-src (assoc-ref inputs "cddlib-src")) + (local-dir "cddlib_guix")) + (mkdir local-dir) + (with-directory-excursion local-dir + (system* "tar" "xvf" cddlib-src)) + (let ((cddlib-src-folder + (string-append local-dir "/" + (list-ref (scandir local-dir) 2) + "/lib-src"))) + (for-each + (lambda (file) + (copy-file file + (string-append "cdd_src/" (basename file)))) + (find-files cddlib-src-folder ".*[ch]$"))) + #t))) + (add-after 'unpack 'fix-makefile + (lambda _ + ;; Remove system calls to 'git'. + (substitute* "Makefile" + (("^DESCRIPT:=pplacer-.*") + (string-append + "DESCRIPT:=pplacer-$(shell uname)-v" ,version "\n"))) + (substitute* "myocamlbuild.ml" + (("git describe --tags --long .*\\\" with") + (string-append + "echo -n v" ,version "-" ,commit "\" with"))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (copy-recursively "bin" bin)) + #t))))) + (native-inputs + `(("zlib" ,zlib) + ("gsl" ,gsl) + ("ocaml-ounit" ,ocaml4.01-ounit) + ("ocaml-batteries" ,ocaml4.01-batteries) + ("ocaml-camlzip" ,ocaml4.01-camlzip) + ("ocaml-csv" ,ocaml4.01-csv) + ("ocaml-sqlite3" ,ocaml4.01-sqlite3) + ("ocaml-xmlm" ,ocaml4.01-xmlm) + ("ocaml-mcl" ,ocaml4.01-mcl) + ("ocaml-gsl" ,ocaml4.01-gsl) + ("cddlib-src" ,(package-source cddlib)))) + (propagated-inputs + `(("pplacer-scripts" ,pplacer-scripts))) + (synopsis "Phylogenetic placement of biological sequences") + (description + "Pplacer places query sequences on a fixed reference phylogenetic tree +to maximize phylogenetic likelihood or posterior probability according to a +reference alignment. Pplacer is designed to be fast, to give useful +information about uncertainty, and to offer advanced visualization and +downstream analysis.") + (home-page "http://matsen.fhcrc.org/pplacer") + (license license:gpl3)))) + +;; This package is installed alongside 'pplacer'. It is a separate package so +;; that it can use the python-build-system for the scripts that are +;; distributed alongside the main OCaml binaries. +(define pplacer-scripts + (package + (inherit pplacer) + (name "pplacer-scripts") + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-scripts-dir + (lambda _ (chdir "scripts"))) + (replace 'check + (lambda _ + (zero? (system* "python" "-m" "unittest" "discover" "-v")))) + (add-after 'install 'wrap-executables + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (let ((path (string-append + (assoc-ref inputs "hmmer") "/bin:" + (assoc-ref inputs "infernal") "/bin"))) + (display path) + (wrap-program (string-append bin "/refpkg_align.py") + `("PATH" ":" prefix (,path)))) + (let ((path (string-append + (assoc-ref inputs "hmmer") "/bin"))) + (wrap-program (string-append bin "/hrefpkg_query.py") + `("PATH" ":" prefix (,path))))) + #t))))) + (inputs + `(("infernal" ,infernal) + ("hmmer" ,hmmer))) + (propagated-inputs + `(("python-biopython" ,python2-biopython) + ("taxtastic" ,taxtastic))) + (synopsis "Pplacer Python scripts"))) + (define-public python2-pbcore (package (name "python2-pbcore") @@ -5268,6 +5393,42 @@ between experiments, StringTie's output can be processed either by the Cuffdiff or Ballgown programs.") (license license:artistic2.0))) +(define-public taxtastic + (package + (name "taxtastic") + (version "0.5.7") + ;; Versions after 0.5.4 do not appear to be distributed on PyPI so we + ;; download the package from GitHub. + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/fhcrc/taxtastic/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1s0h5y1lds1c40jhir5585ffm6yjyn8h5aqimpgv64rhqhfv56xx")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "python" "-m" "unittest" "discover" "-v"))))))) + (propagated-inputs + `(("python-sqlalchemy" ,python2-sqlalchemy) + ("python-decorator" ,python2-decorator) + ("python-biopython" ,python2-biopython) + ("python-pandas" ,python2-pandas))) + (home-page "https://github.com/fhcrc/taxtastic") + (synopsis "Tools for taxonomic naming and annotation") + (description + "Taxtastic is software written in python used to build and maintain +reference packages i.e. collections of reference trees, reference alignments, +profiles, and associated taxonomic information.") + (license license:gpl3+))) + (define-public vcftools (package (name "vcftools") @@ -7730,7 +7891,7 @@ library implementing most of the pipeline's features.") `(("r-minimal" ,r-minimal) ("r-rcas" ,r-rcas) ("guile-next" ,guile-2.2) - ("guile-json" ,guile2.2-json) + ("guile-json" ,guile-json) ("guile-redis" ,guile2.2-redis))) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 98afc6a7c1..4bea418618 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -63,17 +63,13 @@ (define-public grub (package (name "grub") - (version "2.02rc1") + (version "2.02") (source (origin (method url-fetch) - (uri (string-append - "ftp://alpha.gnu.org/gnu/grub/grub-" - "2.02~rc1" - ".tar.xz")) - (file-name (string-append name "-" version ".tar.xz")) + (uri (string-append "mirror://gnu/grub/grub-" version ".tar.xz")) (sha256 (base32 - "0y02v19x9sb5jvj740f604vvi5j1rx8pily1jk0l64bdp7lkjlj4")))) + "03vvdfhdmf16121v7xs8is2krwnv15wpkhkf16a4yf8nsfc3f2w1")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 0f6a10bbc7..66f46433f9 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -69,7 +69,7 @@ makes a few sacrifices to acquire fast full and incremental build times.") (define-public meson (package (name "meson") - (version "0.39.1") + (version "0.40.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -77,7 +77,7 @@ makes a few sacrifices to acquire fast full and incremental build times.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1jwgd6sl7zl7h16id3405gwk6vlkk86ggwrp0k47njwkxmryq8d4")))) + "0yl6iryh89nn6hzhwv7kg16ki1chh9h0x1yk1y130h87iq42a35r")))) (build-system python-build-system) (inputs `(("ninja", ninja))) (home-page "https://mesonbuild.com/") diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 7e86753abe..15329b3109 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 John Darrington <jmd@gnu.org> +;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,7 +27,7 @@ (define-module (gnu packages cdrom) #:use-module (guix download) #:use-module (guix packages) - #:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+)) + #:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+ cddl1.0)) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) @@ -36,19 +37,29 @@ #: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) + #:use-module (gnu packages docbook) + #:use-module (gnu packages xml) #:use-module (gnu packages gtk) #:use-module (gnu packages glib) #:use-module (gnu packages man) + #:use-module (gnu packages m4) #:use-module (gnu packages mp3) #:use-module (gnu packages ncurses) #:use-module (gnu packages elf) + #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) #:use-module (gnu packages readline) #:use-module (gnu packages base) #:use-module (gnu packages perl) #:use-module (gnu packages python) + #:use-module (gnu packages image) + #:use-module (gnu packages photo) + #:use-module (gnu packages video) #:use-module (gnu packages wget) #:use-module (gnu packages xiph)) @@ -197,6 +208,104 @@ extra-robust data verification, synchronization, error handling and scratch reconstruction capability.") (license gpl2))) ; libraries under lgpl2.1 +(define-public cdrtools + (package + (name "cdrtools") + (version "3.01") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/cdrtools/cdrtools-" version ".tar.bz2")) + (sha256 + (base32 + "03w6ypsmwwy4d7vh6zgwpc60v541vc5ywp8bdb758hbc4yv2wa7d")) + (patches (search-patches "cdrtools-3.01-mkisofs-isoinfo.patch")))) + (build-system gnu-build-system) + ;; XXX cdrtools bundles a modified, relicensed early version of cdparanoia. + (inputs + `(("linux-headers" ,linux-libre-headers))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'set-linux-headers + (lambda _ + (substitute* "autoconf/configure" + (("/usr/src/linux") + (assoc-ref %build-inputs "linux-headers"))) + #t)) + (add-before 'build 'substitute-dirs + (lambda _ + (substitute* (append (find-files "DEFAULTS" "^Defaults\\.") + (find-files "DEFAULTS_ENG" "^Defaults\\.") + (find-files "TEMPLATES" "^Defaults\\.")) + (("/opt/schily") (assoc-ref %outputs "out"))) + #t)) + (replace 'build + (lambda _ + (zero? + (system* "make" "CONFIG_SHELL=sh" "CCOM=gcc" "RM=rm")))) + (replace 'install + (lambda _ + (zero? + (system* "make" + "RM=rm" "LN=ln" "SYMLINK=ln -s" + (string-append "INS_BASE=" (assoc-ref %outputs "out")) + (string-append "INS_RBASE=" (assoc-ref %outputs "out")) + "install" ))))) + #:tests? #f)) ; no tests + (synopsis "Command line utilities to manipulate and burn CD/DVD/BD images") + (description "cdrtools is a collection of command line utilities to create +CD's, DVD's or Blue Ray discs. The most important components are +@command{cdrecord}, a burning program, @command{cdda2wav}, a CD audio ripper +which uses libparanoia, and @command{mkisofs}, which can create various disc +images.") + (home-page "http://cdrtools.sourceforge.net/private/cdrecord.html") + + ;; mkisofs is GPL, the other programs are CDDL. + (license (list cddl1.0 gpl2)))) + +(define-public dvd+rw-tools + (package + (name "dvd+rw-tools") + (version "7.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-" + version ".tar.gz")) + (sha256 + (base32 + "1jkjvvnjcyxpql97xjjx0kwvy70kxpiznr2zpjy2hhci5s10zmpq")) + (patches (search-patches "dvd+rw-tools-add-include.patch")))) + (build-system gnu-build-system) + (inputs + `(("cdrtools" ,cdrtools))) + (native-inputs + `(("m4" ,m4))) + (arguments + `(#:tests? #f ; No tests. + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ (setenv "prefix" (assoc-ref %outputs "out")) #t)) + (add-before 'build 'embed-mkisofs + (lambda* (#:key inputs #:allow-other-keys) + ;; We use sed --in-place because substitute* cannot handle the + ;; character encoding used by growisofs.c. + (zero? (system* "sed" "-i" "-e" + (string-append + "s,\"mkisofs\"," + "\"" (which "mkisofs") "\",") + "growisofs.c"))))))) + (home-page "http://fy.chalmers.se/~appro/linux/DVD+RW/") + (synopsis "DVD and Blu-ray Disc burning tools") + (description "dvd+rw-tools, mostly known for its command +@command{growisofs}, is a collection of DVD and Blu-ray Disc burning tools. +It requires another program, such as @command{mkisofs}, @command{genisoimage}, +or @command{xorrisofs} to create ISO 9660 images.") + (license gpl2))) + (define-public dvdisaster (package (name "dvdisaster") @@ -238,6 +347,70 @@ depend on the file system of the medium. The maximum error correction capacity is user-selectable.") (license gpl2+))) +(define-public dvdstyler + (package + (name "dvdstyler") + (version "3.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/dvdstyler/dvdstyler/" + version "/DVDStyler-" version ".tar.bz2")) + (sha256 + (base32 + "1j432kszmwmsd3nz398h5514dbm5vsrn4rr3iil72ckjj1h3i00q")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list (string-append "XMLTO=" + (assoc-ref %build-inputs "xmlto") + "/bin/xmlto" + " --searchpath " + (assoc-ref %build-inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-1.79.1/htmlhelp:" + (assoc-ref %build-inputs "docbook-xml") + "/xml/dtd/docbook")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") "/bin/dvdstyler") + `("PATH" ":" prefix + (,(string-join + (map (lambda (in) (string-append (assoc-ref inputs in) "/bin")) + '("cdrtools" "dvdauthor" "dvd+rw-tools" "ffmpeg")) + ":")))) + #t))) + #:tests? #f)) ; No tests. + (inputs ; TODO package bundled wxvillalib + `(("wxwidgets" ,wxwidgets-3.1) + ("wssvg" ,wxsvg) + ("dbus" ,dbus) + ("cdrtools" ,cdrtools) + ("dvd+rw-tools" ,dvd+rw-tools) + ("dvdauthor" ,dvdauthor) + ("eudev" ,eudev) + ("fontconfig" ,fontconfig) + ("libexif" ,libexif) + ("libjpeg" ,libjpeg) + ("ffmpeg" ,ffmpeg))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("flex" ,flex) + ("python" ,python-2) + ("xmlto" ,xmlto) + ("gettext" ,gnu-gettext) + ("docbook-xml" ,docbook-xml) + ("docbook-xsl" ,docbook-xsl) + ("zip" ,zip))) + (synopsis "DVD authoring application") + (description "DVDStyler is a DVD authoring application which allows users +to burn video files in many formats to DVD discs, complete with individually +designed menus. It can be used to create professional-looking DVD's with +custom buttons, backgrounds and animations, from within a user-friendly +graphical interface.") + (home-page "https://www.dvdstyler.org") + (license gpl2))) + (define-public libcue (package (name "libcue") diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 372f1c4fea..ea91200a65 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> +;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -180,13 +181,13 @@ format.") (define-public cppcheck (package (name "cppcheck") - (version "1.77") + (version "1.78") (source (origin (method url-fetch) (uri (string-append "https://github.com/danmar/cppcheck/archive/" version ".tar.gz")) (sha256 - (base32 "1fn26p0xvfrdbhxjhy6aqhkk63n3fvrdb2ygcn9wg4vaandhmbkn")) + (base32 "1dnizw0rfj6faqgnmg8qh6njr9q89j8brhba7qmx2i47vl0qj11i")) (file-name (string-append name "-" version ".tar.gz")))) (build-system cmake-build-system) (home-page "http://cppcheck.sourceforge.net") diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index ae91464a18..c26d02f175 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -187,23 +187,28 @@ their dependencies.") (license l:gpl3+)))) (define-public cuirass - (let ((commit "8c811abb3174b44601b8996a1fe1718f37d7bd14") - (revision "5")) + (let ((commit "870e8d6ad3415ac61c52e57095fcc6164023a0fc") + (revision "6")) (package (name "cuirass") (version (string-append "0.0.1-" revision "." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference - (url "https://notabug.org/mthl/cuirass") + (url "https://git.savannah.gnu.org/git/guix/guix-cuirass.git") (commit commit))) (file-name (string-append name "-" version)) (sha256 (base32 - "0kz2ys01xlmxagsfr9qf3p212vm31wfl76rvxa7ii5804aidlz5n")))) + "0lp5a5p42k7lml15lbmmd7az9i0gw5kips3sh3awd2z79h0w2knw")))) (build-system gnu-build-system) (arguments - '(#:phases + '(#:modules ((guix build utils) + (guix build gnu-build-system) + (ice-9 rdelim) + (ice-9 popen)) + + #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-repo-tests (λ _ @@ -221,9 +226,17 @@ their dependencies.") (sqlite (assoc-ref inputs "guile-sqlite3")) (git (assoc-ref inputs "git")) (guix (assoc-ref inputs "guix")) - (mods (string-append json "/share/guile/site/2.0:" - sqlite "/share/guile/site/2.0:" - guix "/share/guile/site/2.0"))) + (guile (assoc-ref %build-inputs "guile")) + (effective (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (mods (string-append json "/share/guile/site/" + effective ":" + sqlite "/share/guile/site/" + effective ":" + guix "/share/guile/site/" + effective))) ;; Make sure 'cuirass' can find the 'git' and 'evaluate' ;; commands, as well as the relevant Guile modules. (wrap-program (string-append out "/bin/cuirass") @@ -233,7 +246,7 @@ their dependencies.") `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,mods))) #t)))))) (inputs - `(("guile" ,guile-2.0) + `(("guile" ,guile-2.2) ("guile-json" ,guile-json) ("guile-sqlite3" ,guile-sqlite3) ("guix" ,guix) @@ -247,5 +260,5 @@ their dependencies.") (description "Cuirass is a continuous integration tool using GNU Guix. It is intended as a replacement for Hydra.") - (home-page "https://notabug.org/mthl/cuirass") + (home-page "https://www.gnu.org/software/guix/") (license l:gpl3+)))) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 4fa34c93b1..1b41feac1f 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1025,4 +1025,7 @@ and binaries, plus debugging symbols in the 'debug' output), and Binutils.") (define-public gcc-toolchain-6 (gcc-toolchain gcc-6)) +(define-public gcc-toolchain-7 + (gcc-toolchain gcc-7)) + ;;; commencement.scm ends here diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 4793755c21..11db2a66f7 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -611,7 +611,7 @@ decompression of some loosely related file formats used by Microsoft.") (synopsis "Low-level interface to bzip2 compression library") (description "This module provides a Perl interface to the bzip2 compression library.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-compress-raw-zlib (package @@ -646,7 +646,7 @@ GZIP_OS_CODE = AUTO_DETECT" (synopsis "Low-level interface to zlib compression library") (description "This module provides a Perl interface to the zlib compression library.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-io-compress (package @@ -668,7 +668,7 @@ compression library.") (synopsis "IO Interface to compressed files/buffers") (description "IO-Compress provides a Perl interface to allow reading and writing of compressed data created with the zlib and bzip2 libraries.") - (license (package-license perl)))) + (license license:perl-license))) (define-public lz4 (package @@ -1180,7 +1180,7 @@ RAR archives.") (define-public zstd (package (name "zstd") - (version "1.1.4") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/facebook/zstd/archive/v" @@ -1188,7 +1188,7 @@ RAR archives.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1yxr1y83gphljxaqhwvxbldy1ivx81x93rngiv5l94rmdrc2pbka")) + "1yyb8z03z9rw74k1d9dygcqxhx76717xq29agz57d0k3lf9lazja")) (modules '((guix build utils))) (snippet ;; Remove non-free source files. diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm index 5e00ffb4ee..b3d62d6f6f 100644 --- a/gnu/packages/connman.scm +++ b/gnu/packages/connman.scm @@ -41,7 +41,7 @@ (define-public connman (package (name "connman") - (version "1.33") + (version "1.34") (source (origin (method url-fetch) @@ -49,7 +49,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "187mknq2i907gf8dz0i79359gn1qc9mryvqkcgb280d7dw1ld2dw")))) + "07n71wcy1c4cc01ca4dl9k1jpdqr5nsyr33dqf7k87wwfa681859")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/cryptsetup.scm b/gnu/packages/cryptsetup.scm index 900b004a50..9df26edc77 100644 --- a/gnu/packages/cryptsetup.scm +++ b/gnu/packages/cryptsetup.scm @@ -32,7 +32,7 @@ (define-public cryptsetup (package (name "cryptsetup") - (version "1.7.4") + (version "1.7.5") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/cryptsetup/v" @@ -40,7 +40,7 @@ "/" name "-" version ".tar.xz")) (sha256 (base32 - "05m0ric8anrkl62smk8rafgi30j9jrxw20qzss9gnf4sywz8kkvw")))) + "1gail831j826lmpdx2gsc83lp3br6wfnwh3vqwxaa1nn1lfwsc1b")))) (build-system gnu-build-system) (inputs `(("libgcrypt" ,libgcrypt) @@ -81,8 +81,8 @@ files). This assumes LIBRARY uses Libtool." '(#:configure-flags '("--disable-shared" "--enable-static-cryptsetup" - ;; 'libdevmapper.a' pulls in libpthread and libudev. - "LIBS=-ludev -pthread") + ;; 'libdevmapper.a' pulls in libpthread, libudev and libm. + "LIBS=-ludev -pthread -lm") #:allowed-references () ;this should be self-contained diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index bbdd89ec08..accfe410ba 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> +;;; Copyright © 2017 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,9 +45,8 @@ ;; Delay to avoid module circularity problems. (define ghostscript/cups (delay - (package (inherit ghostscript) + (package/inherit ghostscript (name "ghostscript-with-cups") - (replacement #f) (inputs `(("cups" ,cups-minimal) ,@(package-inputs ghostscript)))))) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index cc08994e29..26706b8275 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -372,7 +372,7 @@ Language.") (define-public mariadb (package (name "mariadb") - (version "10.1.22") + (version "10.1.23") (source (origin (method url-fetch) (uri (string-append "https://downloads.mariadb.org/f/" @@ -380,11 +380,20 @@ Language.") name "-" version ".tar.gz")) (sha256 (base32 - "1kk674mx2bf22yivvzv1al5gdg9kyxar47m282bylb6kg8p5gc5w")))) + "1gq08dj9skr0gli1nj7a8wl92w8lmmqy0sbxvkmy79dz4i713n2l")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DBUILD_CONFIG=mysql_release" + ;; Linking with libarchive fails, like this: + + ;; ld: /gnu/store/...-libarchive-3.2.2/lib/libarchive.a(archive_entry.o): + ;; relocation R_X86_64_32 against `.bss' can not be used when + ;; making a shared object; recompile with -fPIC + + ;; For now, disable the features that that use libarchive (xtrabackup). + "-DWITH_LIBARCHIVE=OFF" + "-DDEFAULT_CHARSET=utf8" "-DDEFAULT_COLLATION=utf8_general_ci" "-DMYSQL_DATADIR=/var/lib/mysql" @@ -440,14 +449,14 @@ as a drop-in replacement of MySQL.") (define-public postgresql (package (name "postgresql") - (version "9.6.2") + (version "9.6.3") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "1jahzqqw5inyvmacic2ihhj5f8z50lapci2fwws91h719ccbb1q1")))) + "1imrjp4vfslxj5rrvphcrrk21zv8kqw3gacmwradixh1d5rv6i8n")))) (build-system gnu-build-system) (arguments `(#:phases @@ -577,9 +586,15 @@ types are supported, as is encryption.") #t)))) (build-system gnu-build-system) (arguments - '(#:make-flags (list "CC=gcc" + `(#:make-flags (list "CC=gcc" (string-append "INSTALL_PATH=" (assoc-ref %outputs "out"))) + ;; Many tests fail on 32-bit platforms. There are multiple reports about + ;; this upstream, but it's not going to be supported any time soon. + #:tests? (let ((system ,(or (%current-target-system) + (%current-system)))) + (or (string-prefix? "x86_64-linux" system) + (string-prefix? "aarch64-linux" system))) #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-Makefile @@ -592,6 +607,13 @@ types are supported, as is encryption.") (("#!/bin/sh") (string-append "#!" (which "sh")))) #t)) (delete 'configure) + ;; The default target is only needed for tests and built on demand. + (delete 'build) + (add-before 'check 'disable-optimizations + (lambda _ + ;; Prevent the build from passing '-march=native' to the compiler. + (setenv "PORTABLE" "1") + #t)) (add-before 'check 'disable-failing-tests (lambda _ (substitute* "Makefile" @@ -608,8 +630,6 @@ types are supported, as is encryption.") ;; targets for release builds so we build them here for clarity. ;; TODO: Add debug output. (lambda* (#:key (make-flags '()) #:allow-other-keys) - ;; Prevent the build from adding machine-specific optimizations. - (setenv "PORTABLE" "1") (zero? (apply system* "make" "shared_lib" make-flags))))))) (native-inputs `(("parallel" ,parallel) @@ -790,7 +810,7 @@ extremely small.") (synopsis "Database independent interface for Perl") (description "This package provides an database interface for Perl.") (home-page "http://search.cpan.org/dist/DBI") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbix-class (package @@ -844,7 +864,7 @@ still providing access to as many of the capabilities of the database as possible, including retrieving related records from multiple tables in a single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\", \"ORDER BY\" and \"HAVING\" support.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbix-class-cursor-cached (package @@ -869,7 +889,7 @@ single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\", (synopsis "Cursor with built-in caching support") (description "DBIx::Class::Cursor::Cached provides a cursor class with built-in caching support.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbix-class-introspectablem2m (package @@ -894,7 +914,7 @@ relationships are actually just a collection of convenience methods installed to bridge two relationships. This DBIx::Class component can be used to store all relevant information about these non-relationships so they can later be introspected and examined.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbix-class-schema-loader (package @@ -949,7 +969,7 @@ introspected and examined.") (description "DBIx::Class::Schema::Loader automates the definition of a DBIx::Class::Schema by scanning database table definitions and setting up the columns, primary keys, unique constraints and relationships.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbd-pg (package @@ -973,7 +993,7 @@ columns, primary keys, unique constraints and relationships.") (synopsis "DBI PostgreSQL interface") (description "This package provides a PostgreSQL driver for the Perl5 @dfn{Database Interface} (DBI).") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbd-mysql (package @@ -997,7 +1017,7 @@ columns, primary keys, unique constraints and relationships.") (synopsis "DBI MySQL interface") (description "This package provides a MySQL driver for the Perl5 @dfn{Database Interface} (DBI).") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-dbd-sqlite (package @@ -1019,7 +1039,7 @@ columns, primary keys, unique constraints and relationships.") the entire thing in the distribution. So in order to get a fast transaction capable RDBMS working for your Perl project you simply have to install this module, and nothing else.") - (license (package-license perl)) + (license license:perl-license) (home-page "http://search.cpan.org/~ishigaki/DBD-SQLite/lib/DBD/SQLite.pm"))) (define-public perl-sql-abstract @@ -1052,7 +1072,7 @@ been modified to make the SQL easier to generate from Perl data structures. The underlying idea is for this module to do what you mean, based on the data structures you provide it, so that you don't have to modify your code every time your data changes.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-sql-splitstatement (package @@ -1078,7 +1098,7 @@ time your data changes.") (synopsis "Split SQL code into atomic statements") (description "This module tries to split any SQL code, even including non-standard extensions, into the atomic statements it is composed of.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-sql-tokenizer (package @@ -1098,7 +1118,7 @@ non-standard extensions, into the atomic statements it is composed of.") (description "SQL::Tokenizer is a tokenizer for SQL queries. It does not claim to be a parser or query verifier. It just creates sane tokens from a valid SQL query.") - (license (package-license perl)))) + (license license:perl-license))) (define-public unixodbc (package @@ -1301,7 +1321,7 @@ trees (LSM), for sustained throughput under random insert workloads.") "Perl5 access to Berkeley DB version 1.x") (description "The DB::File module provides Perl bindings to the Berkeley DB version 1.x.") - (license (package-license perl)))) + (license license:perl-license))) (define-public lmdb (package diff --git a/gnu/packages/direct-connect.scm b/gnu/packages/direct-connect.scm new file mode 100644 index 0000000000..6796bf3bc8 --- /dev/null +++ b/gnu/packages/direct-connect.scm @@ -0,0 +1,82 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu packages direct-connect) + #:use-module (guix build-system python) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (gnu packages boost) + #:use-module (gnu packages compression) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages tls) + #:use-module (gnu packages version-control)) + +(define-public linuxdcpp + (package + (name "linuxdcpp") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://launchpad.net/linuxdcpp/1.1/1.1.0/+download/linuxdcpp-" + version ".tar.bz2")) + (sha256 + (base32 + "12i92hirmwryl1qy0n3jfrpziwzb82f61xca9jcjwyilx502f0b6")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:tests? #f ; no tests + #:phases + ;; TODO: Add scons-build-system and use it here. + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p out) + (zero? (system* "scons" (string-append "PREFIX=" out) + "-j" (number->string (parallel-job-count))))))) + (replace 'install + (lambda _ + (zero? (system* "scons" "install"))))))) + (inputs + `(("boost" ,boost) + ("bzip2" ,bzip2) + ("gtk+" ,gtk+-2) + ("libglade" ,libglade) + ("libnotify" ,libnotify) + ("openssl" ,openssl))) + (native-inputs + `(("bazaar" ,bazaar) + ("gettext-minimal" ,gettext-minimal) + ("pkg-config" ,pkg-config) + ("scons" ,scons))) + (home-page "https://launchpad.net/linuxdcpp/") + (synopsis "Direct Connect client") + (description "LinuxDC++ is a Direct Connect (DC) client. Direct Connect +is a peer-to-peer file-sharing protocol. Clients connect to a central hub +where they can chat or share files with one another. Users can view other +users' list of shared files or search the hub for files.") + (license license:gpl2+))) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 93895278d6..a087141a87 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -337,3 +338,46 @@ project to detect and manipulate partition tables. Optional file system tools permit managing file systems not included in libparted.") ;; The home page says GPLv2, but the source code says GPLv2+. (license license:gpl2+))) + + +(define-public f3 + (package + (name "f3") + (version "6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/AltraMayor/f3/archive/" + "v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1mgbzc1swvgil45md1336j0aqkmkhwmpxical0ln5g09b2qxsanp")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'fix-makefile + (lambda _ + (substitute* "Makefile" + ;; Install without setting owner and group + (("\\$\\(INSTALL\\) -oroot -groot ") "$(INSTALL) ") + ;; also build and install experimental tools + (("^all: ") "all: $(EXPERIMENTAL_TARGETS) ") + (("^install: ") "install-all: ") + (("^install-experimental: ") "install: install-all ")) + #t))))) + (inputs + `(("eudev" ,eudev) + ("parted" ,parted))) + (home-page "http://oss.digirati.com.br/f3/") + (synopsis "Test real capacity of flash memory cards and such.") + (description "F3 (Fight Flash Fraud or Fight Fake Flash) tests the full +capacity of a flash card (flash drive, flash disk, pendrive). F3 writes to +the card and then checks if can read it. It will assure you haven't been sold +a card with a smaller capacity than stated.") + (license license:gpl3+))) diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 0a70fd737b..869d6239ef 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -2,6 +2,8 @@ ;;; Copyright © 2013 Joshua Grant <tadni@riseup.net> ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017 Sou Bunnbu <iyzsong@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,19 +25,26 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gl) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xfce) #:use-module (gnu packages xorg)) (define-public greenisland @@ -186,6 +195,107 @@ create smooth, animated user interfaces.") ;; QML files are MIT licensed and images are CC BY 3.0. (license (list license:gpl2+ license:expat license:cc-by3.0)))) +(define-public lightdm + (package + (name "lightdm") + (version "1.22.0") + (source (origin + (method url-fetch) + (uri (string-append "https://launchpad.net/lightdm/" + (version-major+minor version) "/" + version "/+download/lightdm-" + version ".tar.xz")) + (sha256 + (base32 + "0a5bvfl2h7r873al6q7c819h0kg564k9fh51rl6489z6lyvazfg4")))) + (build-system gnu-build-system) + (arguments + '(#:parallel-tests? #f ; fails when run in parallel + #:configure-flags + (list "--localstatedir=/var") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda _ + (substitute* "src/shared-data-manager.c" + (("/bin/rm") (which "rm"))) + (substitute* '("data/users.conf" + "common/user-list.c") + (("/bin/false") (which "false")) + (("/usr/sbin/nologin") (which "nologin"))) + (substitute* "src/seat.c" + (("/bin/sh") (which "sh"))) + #t)) + (add-after 'unpack 'disable-broken-tests + (lambda _ + (substitute* "tests/Makefile.in" + (("test-sessions-gobject ") "") + ((" test-sessions-python ") " ")) + #t)) + (add-before 'check 'pre-check + ;; Run test-suite under a dbus session. + (lambda* (#:key inputs #:allow-other-keys) + (wrap-program "tests/src/test-python-greeter" + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))) + `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))) + + ;; Avoid printing locale warnings, which trip up the text + ;; matching tests. + (unsetenv "LC_ALL") + #t))))) + (inputs + `(("audit" ,audit) + ("linux-pam" ,linux-pam) + ("util-linux" ,util-linux) ; for sbin/nologin + ("libgcrypt" ,libgcrypt) + ("libxcb" ,libxcb))) + (native-inputs + `(("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) + ("itstool" ,itstool) + ("intltool" ,intltool) + ;; For tests + ("dbus" ,dbus) + ("python" ,python-2) + ("python-pygobject" ,python2-pygobject))) + ;; Required by liblightdm-gobject-1.pc. + (propagated-inputs + `(("glib" ,glib) + ("libx11" ,libx11) + ("libxklavier" ,libxklavier))) + (home-page "https://www.freedesktop.org/wiki/Software/LightDM/") + (synopsis "Lightweight display manager") + (description "The Light Display Manager (LightDM) is a cross-desktop +display manager which supports different greeters.") + (license license:gpl3+))) + +(define-public lightdm-gtk-greeter + (package + (name "lightdm-gtk-greeter") + (version "2.0.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://launchpad.net/lightdm-gtk-greeter/" + (version-major+minor version) "/" version + "/+download/lightdm-gtk-greeter-" version ".tar.gz")) + (sha256 + (base32 + "1436sdm83xqhxyr1rzqxhsl8if2xmidlvb341xcv6dv83lyxkrlf")))) + (build-system gnu-build-system) + (native-inputs + `(("exo" ,exo) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (inputs + `(("lightdm" ,lightdm) + ("gtk+" ,gtk+))) + (synopsis "GTK+ greeter for LightDM") + (home-page "https://launchpad.net/lightdm-gtk-greeter") + (description "This package provides a LightDM greeter implementation using +GTK+, lets you select a desktop session and log in to it.") + (license license:gpl3+))) + (define-public slim (package (name "slim") diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 2038473f52..356586e1bc 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -25,6 +25,7 @@ #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages databases) #:use-module (gnu packages python)) (define-public python-django @@ -128,13 +129,13 @@ with arguments to the field constructor.") (define-public python-pytest-django (package (name "python-pytest-django") - (version "2.9.1") + (version "3.1.2") (source (origin (method url-fetch) (uri (pypi-uri "pytest-django" version)) (sha256 (base32 - "1mmc7zsz3dlhs6sx4sppkj1vgshabi362r1a8b8wpj1qfximpqcb")))) + "02932m2sr8x22m4az8syr8g835g4ak77varrnw71n6xakmdcr303")))) (build-system python-build-system) (arguments `(#:tests? #f ; FIXME: How to run tests? @@ -143,7 +144,7 @@ with arguments to the field constructor.") (add-after 'unpack 'patch-setuppy (lambda _ (substitute* "setup.py" - (("setuptools_scm==1.8.0") "setuptools_scm")) + (("setuptools_scm==1.11.1") "setuptools_scm")) #t))))) (native-inputs `(("python-django" ,python-django) @@ -245,3 +246,451 @@ templatetags and a full test suite.") (define-public python2-django-gravatar2 (package-with-python2 python-django-gravatar2)) + +(define-public python-django-assets + (package + (name "python-django-assets") + (version "0.12") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-assets" version)) + (sha256 + (base32 + "0y0007fvkn1rdlj2g0y6k1cnkx53kxab3g8i85i0rd58k335p365")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda _ + (begin + ;; https://github.com/miracle2k/django-assets/issues/87 + (substitute* "tests/__init__.py" + (("settings.configure.*") + (string-append + "settings.configure(\n" + "INSTALLED_APPS=['django_assets', " + "'django.contrib.staticfiles'],\n" + "TEMPLATES=[{'BACKEND': " + "'django.template.backends.django.DjangoTemplates'}],\n" + ")\n"))) + ;; These tests fail + (substitute* "tests/test_django.py" + (("TestLoader") "NoTestLoader")))))))) + (native-inputs + `(("python-nose" ,python-nose))) + (propagated-inputs + `(("python-django" ,python-django) + ("python-webassets" ,python-webassets))) + (home-page "https://github.com/miracle2k/django-assets") + (synopsis "Asset management for Django") + (description + "Asset management for Django, to compress and merge CSS and Javascript +files. Integrates the webassets library with Django, adding support for +merging, minifying and compiling CSS and Javascript files.") + (license license:bsd-2))) + +(define-public python2-django-assets + (package-with-python2 python-django-assets)) + +(define-public python-django-jsonfield + (package + (name "python-django-jsonfield") + (version "1.0.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "jsonfield" version)) + (sha256 + (base32 + "19x4lak0hg9c20r7mvf27w7i8r6i4sg2g0ypmlmp2665fnk76zvy")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda _ + (substitute* "jsonfield/tests.py" + (("django.forms.util") "django.forms.utils"))))))) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/bradjasper/django-jsonfield") + (synopsis "Store validated JSON in your model") + (description + "Django-jsonfield is a reusable Django field that allows you to store +validated JSON in your model. It silently takes care of serialization. To +use, simply add the field to one of your models.") + (license license:expat))) + +(define-public python2-django-jsonfield + (package-with-python2 python-django-jsonfield)) + +(define-public python-dj-database-url + (package + (name "python-dj-database-url") + (version "0.4.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "dj-database-url" version)) + (sha256 + (base32 + "024zbkc5rli4hia9lz9g8kf1zxhb2gwawj5abf67i7gf8n22v0x6")))) + (build-system python-build-system) + (home-page "https://github.com/kennethreitz/dj-database-url") + (synopsis "Use Database URLs in your Django Application") + (description + "This simple Django utility allows you to utilize the 12factor inspired +DATABASE_URL environment variable to configure your Django application. + +The dj_database_url.config method returns a Django database connection +dictionary, populated with all the data specified in your URL. There is also a +conn_max_age argument to easily enable Django’s connection pool.") + (license license:bsd-2))) + +(define-public python2-dj-database-url + (package-with-python2 python-dj-database-url)) + +(define-public python-django-bulk-update + (package + (name "python-django-bulk-update") + (version "1.1.10") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-bulk-update" version)) + (sha256 + (base32 + "0mbng9m7swfc0dnidipbzlxfhlfjrv755dlnha5s4m9mgdxb1fhc")))) + (build-system python-build-system) + (arguments + ;; tests don't support django 1.10, but the module seems to work. + `(#:tests? #f)) + (native-inputs + `(("six" ,python-six) + ("jsonfield" ,python-django-jsonfield) + ("python-dj-database-url" ,python-dj-database-url))) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/aykut/django-bulk-update") + (synopsis "Simple bulk update over Django ORM or with helper function") + (description + "Simple bulk update over Django ORM or with helper function. This +project aims to bulk update given objects using one query over Django ORM.") + (license license:expat))) + +(define-public python2-django-bulk-update + (package-with-python2 python-django-bulk-update)) + +(define-public python-django-contact-form + (package + (name "python-django-contact-form") + (version "1.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-contact-form" version)) + (sha256 + (base32 + "0az590y56k5ahv4sixrkn54d3a8ig2q2z9pl6s3m4f533mx2gj17")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; the next version will need "make test" + (and (zero? (system* "flake8" "contact_form")) + (zero? (system* "coverage" "run" "contact_form/runtests.py")) + (zero? (system* "coverage" "report" "-m" "--fail-under" "0")))))))) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-flake8" ,python-flake8))) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/ubernostrum/django-contact-form") + (synopsis "Contact form for Django") + (description + "This application provides simple, extensible contact-form functionality +for Django sites.") + (license license:bsd-3))) + +(define-public python2-django-contact-form + (package-with-python2 python-django-contact-form)) + +(define-public python-django-contrib-comments + (package + (name "python-django-contrib-comments") + (version "1.8.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-contrib-comments" version)) + (sha256 + (base32 + "0bxsgw8jrkhg6r5s0z6ksfi4w8yknaqb1s9acmxd9pm3pnsnp5kx")))) + (build-system python-build-system) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/django/django-contrib-comments") + (synopsis "Comments framework") + (description + "Django used to include a comments framework; since Django 1.6 it's been +separated to a separate project. This is that project. This framework can be +used to attach comments to any model, so you can use it for comments on blog +entries, photos, book chapters, or anything else.") + (license license:bsd-3))) + +(define-public python2-django-contrib-comments + (package-with-python2 python-django-contrib-comments)) + +(define-public python-django-overextends + (package + (name "python-django-overextends") + (version "0.4.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-overextends" version)) + (sha256 + (base32 + "0qc2pcf3i56pmfxh2jw7k3pgljd8xzficmkl2541n7bkcbngqfzm")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "./test_project/manage.py" "test"))))))) + (propagated-inputs + `(("python-django" ,python-django))) + (native-inputs + `(("sphinx-me" ,python-sphinx-me))) + (home-page "https://github.com/stephenmcd/django-overextends") + (synopsis "Circular template inheritance") + (description + "A Django reusable app providing the overextends template tag, a drop-in +replacement for Django's extends tag, which allows you to use circular template +inheritance. The primary use-case for overextends is to simultaneously +override and extend templates from other reusable apps, in your own Django +project.") + (license license:bsd-2))) + +(define-public python2-django-overextends + (package-with-python2 python-django-overextends)) + +(define-public python-django-redis + (package + (name "python-django-redis") + (version "4.7.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-redis" version)) + (sha256 + (base32 + "0yyyxv8n9l9dhs893jsqwg2cxqkkc79g719n9dzzzqgkzialv1c1")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (and (zero? (system* "redis-server" "--daemonize" "yes")) + (with-directory-excursion "tests" + (zero? (system* "python" "runtests.py"))))))))) + (native-inputs + `(("python-fakeredis" ,python-fakeredis) + ("python-hiredis" ,python-hiredis) + ("python-mock" ,python-mock) + ("python-msgpack" ,python-msgpack) + ("redis" ,redis))) + (propagated-inputs + `(("python-django" ,python-django) + ("python-redis" ,python-redis))) + (home-page "https://github.com/niwibe/django-redis") + (synopsis "Full featured redis cache backend for Django") + (description + "Full featured redis cache backend for Django.") + (license license:bsd-3))) + +(define-public python2-django-redis + (package-with-python2 python-django-redis)) + +(define-public python-django-rq + (package + (name "python-django-rq") + (version "0.9.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-rq" version)) + (sha256 + (base32 + "04v8ilfdp10bk31fxgh4cn083gsn5m06342cnpm5d10nd8hc0vky")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (and (zero? (system* "redis-server" "--daemonize" "yes")) + (zero? (system* "django-admin.py" "test" "django_rq" + "--settings=django_rq.test_settings" + "--pythonpath=")))))))) + (native-inputs + `(("redis" ,redis))) + (propagated-inputs + `(("python-django" ,python-django) + ("python-rq" ,python-rq))) + (home-page "https://github.com/ui/django-rq") + (synopsis "Django integration with RQ") + (description + "Django integration with RQ, a Redis based Python queuing library. +Django-RQ is a simple app that allows you to configure your queues in django's +settings.py and easily use them in your project.") + (license license:expat))) + +(define-public python2-django-rq + (package-with-python2 python-django-rq)) + +(define-public python-django-sortedm2m + (package + (name "python-django-sortedm2m") + (version "1.3.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-sortedm2m" version)) + (sha256 + (base32 + "0axf765i7b3c2s83nlph47asi8s071dhq8l7y382v1pw785s22vi")))) + (build-system python-build-system) + (arguments + ;; no tests. + `(#:tests? #f)) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/gregmuellegger/django-sortedm2m") + (synopsis "Drop-in replacement for django's own ManyToManyField") + (description + "Sortedm2m is a drop-in replacement for django's own ManyToManyField. +The provided SortedManyToManyField behaves like the original one but remembers +the order of added relations.") + (license license:bsd-3))) + +(define-public python2-django-sortedm2m + (package-with-python2 python-django-sortedm2m)) + +(define-public python-django-appconf + (package + (name "python-django-appconf") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-appconf" version)) + (sha256 + (base32 + "0qdjdx35g66xjsc50v0c5h3kg6njs8df33mbjx6j4k1vd3m9lkba")))) + (build-system python-build-system) + (propagated-inputs + `(("python-django" ,python-django))) + (home-page "https://github.com/django-compressor/django-appconf") + (synopsis "Handle configuration defaults of packaged Django apps") + (description + "This app precedes Django's own AppConfig classes that act as \"objects +[to] store metadata for an application\" inside Django's app loading mechanism. +In other words, they solve a related but different use case than +django-appconf and can't easily be used as a replacement. The similarity in +name is purely coincidental.") + (license license:bsd-3))) + +(define-public python2-django-appconf + (package-with-python2 python-django-appconf)) + +(define-public python-django-statici18n + (package + (name "python-django-statici18n") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "django-statici18n" version)) + (sha256 + (base32 + "0alcf4g1nv69njhq5k3qw4mfl2k6dc18bik5nk0g1mnp3m8zyz7k")))) + (build-system python-build-system) + (propagated-inputs + `(("python-django" ,python-django) + ("django-appconf" ,python-django-appconf))) + (home-page "https://github.com/zyegfryed/django-statici18n") + (synopsis "Generate JavaScript catalog to static files") + (description + "A Django app that provides helper for generating JavaScript catalog to +static files.") + (license license:bsd-3))) + +(define-public python2-django-statici18n + (package-with-python2 python-django-statici18n)) + +(define-public pootle + (package + (name "pootle") + (version "2.8.0rc5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Pootle" version ".tar.bz2")) + (sha256 + (base32 + "0m6qcpkcy22dk3ad5y2k8851kqg2w6vrkywgy4vabwbacd7r1mvn")))) + (build-system python-build-system) + (arguments + `(; pootle supports only python2. + #:python ,python-2 + ;; tests are not run and fail with "pytest_pootle/data/po/.tmp: No such + ;; file or directory". If we create this directory, + ;; pytest_pootle/data/po/terminology.po is missing. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-requirements + (lambda _ + (substitute* "Pootle.egg-info/requires.txt" + (("1.7.3") "1.8.0") + (("2.0.0") "2.1.0")) + (substitute* "requirements/tests.txt" + (("==3.0.6") ">=3.0.6")) + (substitute* "requirements/base.txt" + (("1.7.3") "1.8.0") + (("2.0.0") "2.1.0"))))))) + (propagated-inputs + `(("django-allauth" ,python2-django-allauth) + ("django-assets" ,python2-django-assets) + ("django-bulk-update" ,python2-django-bulk-update) + ("django-contact-form" ,python2-django-contact-form) + ("django-contrib-comments" ,python2-django-contrib-comments) + ("django-overextends" ,python2-django-overextends) + ("django-redis" ,python2-django-redis) + ("django-rq" ,python2-django-rq) + ("django-sortedm2m" ,python2-django-sortedm2m) + ("django-statici18n" ,python2-django-statici18n) + ("babel" ,python2-babel) + ("cssmin" ,python2-cssmin) + ("diff-match-patch" ,python2-diff-match-patch) + ("dirsync" ,python2-dirsync) + ("elasticsearch" ,python2-elasticsearch) + ("jsonfield" ,python2-django-jsonfield) + ("lxml" ,python2-lxml) + ("dateutil" ,python2-dateutil) + ("levenshtein" ,python2-levenshtein) + ("mysqlclient" ,python2-mysqlclient) + ("psycopg2" ,python2-psycopg2) + ("pytz" ,python2-pytz) + ("rq" ,python2-rq) + ("scandir" ,python2-scandir) + ("stemming" ,python2-stemming) + ("translate-toolkit" ,python2-translate-toolkit))) + (native-inputs + `(("python2-pytest-warnings" ,python2-pytest-warnings) + ("python2-pytest-django" ,python2-pytest-django) + ("python2-pytest-catchlog" ,python2-pytest-catchlog) + ("python2-pytest-cov" ,python2-pytest-cov) + ("python2-factory-boy" ,python2-factory-boy))) + (home-page "http://pootle.translatehouse.org/") + (synopsis "Community localization server") + (description + "Pootle is an online translation and localization tool. It works to +lower the barrier of entry, providing tools to enable teams to work towards +higher quality while welcoming newcomers.") + (license license:gpl3+))) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index c0279565d8..1fb552de15 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,7 +91,7 @@ and BOOTP/TFTP for network booting of diskless machines.") (define-public bind (package (name "bind") - (version "9.10.4-P8") + (version "9.11.1") (source (origin (method url-fetch) (uri (string-append @@ -98,7 +99,7 @@ and BOOTP/TFTP for network booting of diskless machines.") version ".tar.gz")) (sha256 (base32 - "1sv6fp5gznjj1kmx9q8wr2c6js10wqckgy25sqj83bbf8smmdlvx")))) + "1chhphaa4lmfxj9daqsxph5ng4h3qq51jx21rj2i6an8ynah0192")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs @@ -149,12 +150,12 @@ high-volume and high-reliability applications. The name BIND stands for \"Berkeley Internet Name Domain\", because the software originated in the early 1980s at the University of California at Berkeley.") (home-page "https://www.isc.org/downloads/bind") - (license (list license:isc)))) + (license (list license:mpl2.0)))) (define-public dnscrypt-proxy (package (name "dnscrypt-proxy") - (version "1.9.4") + (version "1.9.5") (source (origin (method url-fetch) (uri (string-append @@ -162,7 +163,7 @@ high-volume and high-reliability applications. The name BIND stands for "dnscrypt-proxy-" version ".tar.bz2")) (sha256 (base32 - "07piwsjczamwvdpv1585kg4awqakip51bwsm8nqi6bljww4agx7x")) + "1dhvklr4dg2vlw108n11xbamacaryyg3dbrg629b76lp7685p7z8")) (modules '((guix build utils))) (snippet ;; Delete bundled libltdl. XXX: This package also bundles diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 8180f55359..c81976a479 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -32,14 +32,14 @@ (define-public elfutils (package (name "elfutils") - (version "0.168") + (version "0.169") (source (origin (method url-fetch) (uri (string-append "https://sourceware.org/elfutils/ftp/" version "/elfutils-" version ".tar.bz2")) (sha256 (base32 - "0xn2fbgda1i703csfs35frvm7l068ybmay4ssrykqdx17f4hg3dq")) + "1hiv1yqig3292dwqhrwsxwk3qjalxp5fpl8yphwbfwh8ng3zl4ll")) (patches (search-patches "elfutils-tests-ptrace.patch")))) (build-system gnu-build-system) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 4e430b323f..7425b49a43 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> -;;; Copyright © 2016 Pjotr Prins <pjotr.public12@thebird.nl> +;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. @@ -30,7 +30,7 @@ (define-public elixir (package (name "elixir") - (version "1.3.2") + (version "1.4.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/elixir-lang/elixir" @@ -38,9 +38,10 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0jsc6kl7f74yszcypdv3w3vhyc9qfqav8nwc41in082m0vpfy95y")) - ;; FIXME: Some tests had to be disabled as they fail in the - ;; build environment. Common failures are: + "0gsmgx4h6rvxilcbsx2z6yirm6g2g5bsxdvr0608ng4bsv22wknb")) + ;; FIXME: 27 tests (out of 4K) had to be disabled as + ;; they fail in the build environment. Common failures + ;; are: ;; - Mix.Shell.cmd() fails with error 130 ;; - The git_repo fixture cannot be found ;; - Communication with spawned processes fails with EPIPE diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4d524ece7a..3d9e83713e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org> -;;; Copyright © 2016 humanitiesNerd <catonano@gmail.com> +;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com> @@ -92,7 +92,8 @@ #:use-module (gnu packages gd) #:use-module (gnu packages fontutils) #:use-module (guix utils) - #:use-module (srfi srfi-1)) + #:use-module (srfi srfi-1) + #:use-module (ice-9 match)) (define-public emacs (package @@ -890,14 +891,14 @@ provides an optional IDE-like error list.") (define-public emms (package (name "emacs-emms") - (version "4.2") + (version "4.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz")) (sha256 (base32 - "1xa9y64g5z8gfnxk1c2rf3plfjhqn4r6j8dpiygnfs6w4giysn22")) + "0dicgkl8l83n4cah5vk7c242abbwpyzlih451blgw37f3rijs480")) (modules '((guix build utils))) (snippet '(substitute* "Makefile" @@ -1125,13 +1126,6 @@ than @code{electric-indent-mode}.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'install 'patch-exec-paths - (lambda* (#:key inputs #:allow-other-keys) - (emacs-substitute-variables "ag.el" - ("ag-executable" - (string-append (assoc-ref inputs "the-silver-searcher") - "/bin/ag"))) - #t)) (add-before 'install 'make-info (lambda _ (with-directory-excursion "docs" @@ -1142,14 +1136,14 @@ than @code{electric-indent-mode}.") (info (string-append out "/share/info"))) (install-file "docs/_build/texinfo/agel.info" info) #t)))))) - (inputs - `(("the-silver-searcher" ,the-silver-searcher))) (native-inputs `(("python-sphinx" ,python-sphinx) ("texinfo" ,texinfo))) (propagated-inputs `(("dash" ,emacs-dash) - ("s" ,emacs-s))) + ("s" ,emacs-s) + ;; We need to use 'ag' as the executable on remote systems. + ("the-silver-searcher" ,the-silver-searcher))) (home-page "https://github.com/Wilfred/ag.el") (synopsis "Front-end for ag (the-silver-searcher) for Emacs") (description "This package provides the ability to use the silver @@ -1406,7 +1400,7 @@ type, for example: packages, buffers, files, etc.") (define-public emacs-guix (package (name "emacs-guix") - (version "0.3") + (version "0.3.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/alezost/guix.el" @@ -1414,7 +1408,7 @@ type, for example: packages, buffers, files, etc.") "/emacs-guix-" version ".tar.gz")) (sha256 (base32 - "1327zp140c7acckk0ajl88cgwr0lk9j3mb67nsq2janxrkwmj6br")))) + "0s7s90rfba8ccbilbvmbcwn4qp4m0jv9y58xq8avm39cygmjgyxz")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -1446,14 +1440,14 @@ type, for example: packages, buffers, files, etc.") `(("pkg-config" ,pkg-config) ("emacs" ,emacs-minimal))) (inputs - `(("guile" ,guile-2.0) + `(("guile" ,guile-2.2) ("guix" ,guix))) (propagated-inputs `(("geiser" ,geiser) ("dash" ,emacs-dash) ("bui" ,emacs-bui) ("magit-popup" ,emacs-magit-popup))) - (home-page "https://github.com/alezost/guix.el") + (home-page "https://alezost.github.io/guix.el/") (synopsis "Emacs interface for GNU Guix") (description "Emacs-Guix provides a visual interface, tools and features for the GNU @@ -2584,7 +2578,7 @@ dark background.") (define-public emacs-smartparens (package (name "emacs-smartparens") - (version "1.9.0") + (version "1.10.1") (source (origin (method url-fetch) (uri (string-append @@ -2593,7 +2587,7 @@ dark background.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "12065r7h1s9v8lnq5mk3654dkw4cq60ky8aniqq5n2ivv6qd2d4q")))) + "1nwsi6fbbxjq3r22r6knmx71la3g0lmwfb95i9q4k138gn0m2l3i")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash))) (home-page "https://github.com/Fuco1/smartparens") @@ -2882,6 +2876,16 @@ S-expression.") (base32 "117mvjqh4nm8mvmwmmvy4qmkdg23ldlzk08y91g8b8ac8kxwqg81")))) (build-system emacs-build-system) + (native-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s) + ("ert-runner" ,ert-runner))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'check + (lambda _ + (zero? (system* "ert-runner"))))))) (home-page "https://github.com/clojure-emacs/clojure-mode") (synopsis "Major mode for Clojure code") (description @@ -3495,6 +3499,7 @@ extensions.") (method url-fetch) ;; There is no versioned source. (uri "https://www.emacswiki.org/emacs/download/goto-chg.el") + (file-name (string-append "goto-chg-" version ".el")) (sha256 (base32 "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij")))) @@ -3574,14 +3579,14 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "20170210") + (version "20170502") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "15415wh3w8d4c8hd7qfrfdjnjb1zppmrkg8cdp7hw2ilyr90c0bn")))) + "12inz804j55ycprb2m3ay54d1bhwhjssmn5nrfm7cfklyhfsy27s")))) (build-system emacs-build-system) (home-page "http://orgmode.org/") (synopsis "Outline-based notes management and organizer") @@ -4519,3 +4524,246 @@ It should enable you to implement low-level X11 applications.") (description "EXWM is a full-featured tiling X window manager for Emacs built on top of XELB.") (license license:gpl3+))) + +(define-public emacs-gnuplot + (package + (name "emacs-gnuplot") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/bruceravel/gnuplot-mode/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i")))) + (build-system gnu-build-system) + (native-inputs `(("emacs" ,emacs-minimal))) + (arguments + (let ((elisp-dir (string-append "/share/emacs/site-lisp/guix.d" + "/gnuplot-" version))) + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (guix build emacs-utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build emacs-utils)) + #:configure-flags + (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs") + "/bin/emacs") + (string-append "--with-lispdir=" %output ,elisp-dir)) + #:phases + (modify-phases %standard-phases + (add-after 'install 'generate-autoloads + (lambda* (#:key outputs #:allow-other-keys) + (emacs-generate-autoloads + "gnuplot" + (string-append (assoc-ref outputs "out") ,elisp-dir)) + #t)))))) + (home-page "https://github.com/bruceravel/gnuplot-mode") + (synopsis "Emacs major mode for interacting with gnuplot") + (description "@code{emacs-gnuplot} is an emacs major mode for interacting +with gnuplot.") + (license license:gpl2+))) + +(define-public emacs-transpose-frame + (package + (name "emacs-transpose-frame") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri "http://www.emacswiki.org/emacs/download/transpose-frame.el") + (file-name (string-append "transpose-frame-" version ".el")) + (sha256 + (base32 + "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/TransposeFrame") + (synopsis "Transpose window arrangement in current frame") + (description "@code{emacs-transpose-frame} provides some interactive +functions which allows users to transpose windows arrangement in currently +selected frame.") + (license license:bsd-2))) + +(define-public emacs-key-chord + (package + (name "emacs-key-chord") + (version "0.6") + (source + (origin + (method url-fetch) + (uri "https://www.emacswiki.org/emacs/download/key-chord.el") + (file-name (string-append "key-chord-" version ".el")) + (sha256 + (base32 + "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/key-chord.el") + (synopsis "Map pairs of simultaneously pressed keys to Emacs commands") + (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a +mode for binding key chords to commands. A key chord is defined as two keys +pressed simultaneously or a single key quickly pressed twice.") + (license license:gpl2+))) + +(define-public emacs-evil-surround + (package + (name "emacs-evil-surround") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/timcharper/evil-surround/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-evil" ,emacs-evil))) + (home-page "https://github.com/timcharper/evil-surround") + (synopsis "Easily modify surrounding parantheses and quotes") + (description "@code{emacs-evil-surround} allows easy deletion, change and +addition of surrounding pairs, such as parantheses and quotes, in evil mode.") + (license license:gpl3+))) + +(define-public emacs-evil-commentary + (package + (name "emacs-evil-commentary") + (version "2.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/linktohack/evil-commentary/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-evil" ,emacs-evil))) + (home-page "https://github.com/linktohack/evil-commentary") + (synopsis "Comment out code in evil mode") + (description "@code{emacs-evil-commentary} adds keybindings to easily +comment out lines of code in evil mode. It provides @code{gcc} to comment out +lines, and @code{gc} to comment out the target of a motion.") + (license license:gpl3+))) + +;; Tests for emacs-ansi have a circular dependency with ert-runner, and +;; therefore cannot be run +(define-public emacs-ansi + (package + (name "emacs-ansi") + (version "0.4.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/rejeep/ansi.el/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/rejeep/ansi.el") + (synopsis "Convert strings to ANSI") + (description "@code{emacs-ansi} defines functions that turns simple +strings to ANSI strings. Turning a string into an ANSI string can be to add +color to a text, add color in the background of a text or adding a style, such +as bold, underscore or italic.") + (license license:gpl3+))) + +;; Tests for emacs-commander have a circular dependency with ert-runner, and +;; therefore cannot be run +(define-public emacs-commander + (package + (name "emacs-commander") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/rejeep/commander.el/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/rejeep/commander.el") + (synopsis "Emacs command line parser") + (description "@code{emacs-commander} provides command line parsing for +Emacs.") + (license license:gpl3+))) + +;; Tests for ert-runner have a circular dependency with ecukes, and therefore +;; cannot be run +(define-public ert-runner + (let ((dependencies + `(("emacs-ansi" ,emacs-ansi) + ("emacs-commander" ,emacs-commander) + ("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-s" ,emacs-s) + ("emacs-shut-up" ,emacs-shut-up)))) + (package + (name "ert-runner") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp")))) + (build-system emacs-build-system) + (inputs dependencies) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'install-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "bin/ert-runner" + (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)") + (string-append "ERT_RUNNER=\"" out + "/share/emacs/site-lisp/guix.d/" + ,name "-" ,version))) + (install-file "bin/ert-runner" (string-append out "/bin")) + (wrap-program (string-append out "/bin/ert-runner") + (list "EMACSLOADPATH" ":" '= + (append + ,(match dependencies + (((labels packages) ...) + `(map (lambda (label package version) + (string-append (assoc-ref inputs label) + "/share/emacs/site-lisp/guix.d/" + (string-drop package 6) + "-" version)) + ',labels + ',(map package-name packages) + ',(map package-version packages)))) + ;; empty element to include the default load path as + ;; determined by emacs' standard initialization + ;; procedure + (list "")))) + #t)))))) + (home-page "https://github.com/rejeep/ert-runner.el") + (synopsis "Opinionated Ert testing workflow") + (description "@code{ert-runner} is a tool for Emacs projects tested +using ERT. It assumes a certain test structure setup and can therefore make +running tests easier.") + (license license:gpl3+)))) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 20efe11a24..362860e17d 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 David Thompson <davet@gnu.org> @@ -53,6 +53,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages linux) ;FIXME: for pcb #:use-module (gnu packages m4) #:use-module (gnu packages maths) @@ -173,15 +174,14 @@ utilities.") (define-public pcb (package (name "pcb") - (version "20140316") + (version "4.0.0") (source (origin (method url-fetch) - (uri (string-append - "http://ftp.geda-project.org/pcb/pcb-" version "/pcb-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/pcb/pcb/pcb-" version + "/pcb-" version ".tar.gz")) (sha256 (base32 - "0l6944hq79qsyp60i5ai02xwyp8l47q7xdm3js0jfkpf72ag7i42")))) + "1i6sk8g8h9avms142wl07yv20m1cm4c3fq3v6hybrhdxs2n17plf")))) (build-system gnu-build-system) (arguments `(#:phases @@ -200,7 +200,13 @@ utilities.") (path (string-append (assoc-ref inputs "udev") "/lib"))) (wrap-program (string-append out "/bin/pcb") `("LD_LIBRARY_PATH" ":" prefix (,path))))) - %standard-phases)))) + (alist-cons-before + 'check 'pre-check + (lambda _ + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + #t) + %standard-phases))))) (inputs `(("dbus" ,dbus) ("mesa" ,mesa) @@ -216,7 +222,12 @@ utilities.") `(("pkg-config" ,pkg-config) ("intltool" ,intltool) ("bison" ,bison) - ("flex" ,flex))) + ("flex" ,flex) + ;; For tests + ("imagemagick" ,imagemagick) + ("gerbv" ,gerbv) + ("ghostscript" ,ghostscript) + ("xvfb" ,xorg-server))) (home-page "http://pcb.geda-project.org/") (synopsis "Design printed circuit board layouts") (description diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index b9a55333df..165ca50ce1 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -57,7 +57,7 @@ (define-public efl (package (name "efl") - (version "1.18.4") + (version "1.18.5") (source (origin (method url-fetch) (uri (string-append @@ -65,7 +65,7 @@ version ".tar.xz")) (sha256 (base32 - "09c0ajszjarcs6d62zlgnf1aha2f921mfr0gxg6nwza36xzc1srr")))) + "0wxz00cijynamm0sx4ss4hp89zyz5y6zliv5zd905jn4nak2mw2n")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -133,7 +133,7 @@ "--with-opengl=es" "--enable-egl" "--enable-harfbuzz"))) - (home-page "https://www.enlightenment.org") + (home-page "https://www.enlightenment.org/about-efl") (synopsis "Enlightenment Foundation Libraries") (description "Enlightenment Foundation Libraries is a set of libraries developed @@ -197,7 +197,7 @@ Libraries with some extra bells and whistles.") (define-public enlightenment (package (name "enlightenment") - (version "0.21.6") + (version "0.21.7") (source (origin (method url-fetch) (uri @@ -205,7 +205,7 @@ Libraries with some extra bells and whistles.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0gan3c8jbvhcmvb2fpbprr3m6db0afg1dnrb87nbqb399nsi81zd")))) + "1xvngjdsa0p901vfhrh2qpa50k32hwwhc8bgi16a9b5d9byzfhvn")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-mount-eeze"))) @@ -221,7 +221,7 @@ Libraries with some extra bells and whistles.") ("libxext" ,libxext) ("linux-pam" ,linux-pam) ("xcb-util-keysyms" ,xcb-util-keysyms))) - (home-page "https://www.enlightenment.org") + (home-page "https://www.enlightenment.org/about-enlightenment") (synopsis "Lightweight desktop environment") (description "Enlightenment is resource friendly desktop environment with integrated diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 39da7e939b..07f117e283 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> -;;; Copyright © 2016 Pjotr Prins <pjotr.public12@thebird.nl> +;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl> ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,8 +34,7 @@ (define-public erlang (package (name "erlang") - ;; When updating, remember to update the hash of erlang-manpages! - (version "19.0") + (version "19.3") (source (origin (method url-fetch) ;; The tarball from http://erlang.org/download contains many @@ -46,7 +45,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1dxyz6x1yfv33fd0xfry2ihylkyfa2d655q1vxvbz8dflyd64yqh")))) + "1b47jh549yywyp8fbs8a8j4ydr3zn982navzyqvlms6rg8vwb0pw")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) @@ -61,7 +60,7 @@ version ".tar.gz")) (sha256 (base32 - "07j0l7ary936hil38xr3hvfw6j74pshkyyi98kc9cassbbcdd8y7")))))) + "0p6r3n3y7lbhv38sw8f2vi1xlmc137gyspk9ap086w1nszyjy6gq")))))) (inputs `(("ncurses" ,ncurses) ("openssl" ,openssl) @@ -162,9 +161,8 @@ (zero? (system* "tar" "xvf" manpages)) (rename-file "COPYRIGHT" (string-append share "/misc/erlang/COPYRIGHT")) - ;; Delete superfluous files. - (for-each delete-file '("PR.template" - "README")))))))))) + ;; Delete superfluous file. + (delete-file "PR.template"))))))))) (home-page "http://erlang.org/") (synopsis "The Erlang programming language") (description diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 3c305f4b2a..fb2543bceb 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -49,7 +49,7 @@ (define-public bitcoin-core (package (name "bitcoin-core") - (version "0.14.0") + (version "0.14.1") (source (origin (method url-fetch) (uri @@ -57,7 +57,7 @@ version "/bitcoin-" version ".tar.gz")) (sha256 (base32 - "07k4i9r033dsvkp5ii5g3hykidm8b19c8c0mz1bi8k0dda3d8hyp")))) + "18zrsinlwkj4q5bj2hzswbhswkvd0sdfi6skfwqwwk85gzh064pj")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 2452a1c810..03a1f6f796 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -17,6 +17,8 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 José Miguel Sánchez GarcÃa <jmi2k@openmailbox.com> ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com> +;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> +;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -239,8 +241,11 @@ provide serif, sans and monospaced variants.") (description "Vera is a sans-serif typeface from Bitstream, Inc. This package provides the TrueType (TTF) files.") (license - (license:x11-style - "http://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts")))) + (license:fsdg-compatible + "https://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts" + "The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself.")))) (define-public font-cantarell (package @@ -316,7 +321,7 @@ sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.") (version "2.00.1") (source (origin (method url-fetch) - (uri (string-append "https://fedorahosted.org/releases/l/i/" + (uri (string-append "https://releases.pagure.org/" "liberation-fonts/liberation-fonts-ttf-" version ".tar.gz")) (sha256 @@ -350,7 +355,7 @@ sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.") `(("source" ,source) ("tar" ,tar) ("gzip" ,gzip))) - (home-page "https://fedorahosted.org/liberation-fonts/") + (home-page "https://pagure.io/liberation-fonts/") (synopsis "Fonts compatible with Arial, Times New Roman, and Courier New") (description @@ -518,6 +523,104 @@ fonts are intended to support the characters necessary to render or display text in Simplified Chinese, Traditional Chinese, Japanese, and Korean.") (license license:silofl1.1))) +(define-public font-cns11643 + (package + (name "font-cns11643") + (version "98.1.20170405") + (source (origin + (method url-fetch) + (uri "http://www.cns11643.gov.tw/AIDB/Open_Data.zip") + (sha256 + (base32 + "02kb3bwjrra0k2hlr2p8xswd2y0xs6j8d9vm6yrby734h02a40qf")))) + (outputs '("out" "tw-kai" "tw-sung")) + (build-system trivial-build-system) + (native-inputs + `(("unzip" ,unzip))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((font-dir "/share/fonts/truetype/cns11643") + (out (string-append + (assoc-ref %outputs "out") font-dir)) + (tw-kai (string-append + (assoc-ref %outputs "tw-kai") font-dir)) + (tw-sung (string-append + (assoc-ref %outputs "tw-sung") font-dir)) + (unzip (string-append + (assoc-ref %build-inputs "unzip") "/bin/unzip"))) + (system* unzip (assoc-ref %build-inputs "source")) + (chdir "Open_Data/Fonts/") + (install-file "TW-Kai-98_1.ttf" tw-kai) + (install-file "TW-Sung-98_1.ttf" tw-sung) + (install-file "TW-Kai-98_1.ttf" out) + (install-file "TW-Kai-Ext-B-98_1.ttf" out) + (install-file "TW-Kai-Plus-98_1.ttf" out) + (install-file "TW-Sung-98_1.ttf" out) + (install-file "TW-Sung-Ext-B-98_1.ttf" out) + (install-file "TW-Sung-Plus-98_1.ttf" out) + #t)))) + (home-page "http://www.cns11643.gov.tw/AIDB/welcome.do") + (synopsis "CJK TrueType fonts, TW-Kai and TW-Sung") + (description + "@code{CNS 11643} character set (Chinese National Standard, or Chinese +Standard Interchange Code) is the standard character set of the Republic of +China (Taiwan) for Chinese Characters and other Unicode symbols. Contained +are six TrueType fonts based on two script styles, Regular script (Kai), and +Sung/Ming script, each with three variants: + +@itemize +@item @code{CNS 11643} (@code{TW-Kai} and @code{TW-Sung}): Tens of thousands +of CJK characters from frequency tables published by the Taiwanese +Ministry of Education. ISO 10646 and Unicode compatible encoding. +@item @code{Big-5 Plus}: Several thousand frequently used CJK characters +encoded in the user defined area of the Big-5 code. +@item @code{Big-5 Extended}: A Big-5 character set based on the +@code{Big-5 Plus} and @code{CNS 11643} character sets. +@end itemize\n") + (license (license:non-copyleft + "http://data.gov.tw/license")))) ; CC-BY 4.0 compatible + +(define-public font-cns11643-swjz + (package + (name "font-cns11643-swjz") + (version "1") + (source + (origin + (method url-fetch) + (uri "https://www.moedict.tw/fonts/truetype/cns11643/ebas927.ttf") + (sha256 + (base32 + "1qkljldbmb53zp1rcmpsb8rzy67rnsqcjxi549m9743ifk4isl78")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((font-dir (string-append %output + "/share/fonts/truetype/cns11643")) + (source (assoc-ref %build-inputs "source"))) + (mkdir-p font-dir) + (copy-file source + (string-append font-dir "/" "ebas927.ttf")) + #t)))) + (home-page + (string-append "http://www.cns11643.gov.tw/AIDB/download.do" + "?name=%E5%AD%97%E5%9E%8B%E4%B8%8B%E8%BC%89")) + (synopsis "TrueType seal script font") + (description + "@code{Shuowen Jiezi} is a TrueType seal script font based on the ancient +text of the same name published by the Executive Yuan of Taiwan. 6721 glyphs +are included, at Unicode compatible code points corresponding to their modern +variants.") + ;; Original text only available in Chinese. More info at + ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26703#11 + (license (license:non-copyleft + "http://www.cns11643.gov.tw/AIDB/copyright.do")))) + (define-public font-wqy-zenhei (package (name "font-wqy-zenhei") diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 41d85aac87..da3a850fed 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -187,6 +187,68 @@ 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 python-sge-pygame + (package + (name "python-sge-pygame") + (version "1.4.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sge-pygame" version)) + (sha256 + (base32 + "1qhrcja1igqkjjn1w425ni5f41mijdq5dpq0ymkhl29xxrf8hnx8")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pygame" ,python-pygame) + ("python-six" ,python-six))) + (home-page "http://stellarengine.nongnu.org") + (synopsis "2D game engine for Python") + (description + "The SGE Game Engine (\"SGE\", pronounced like \"Sage\") is a +general-purpose 2D game engine. It takes care of several details fro you so +you can focus on the game itself. This makes more rapid game development +possible, and it also makes the SGE easy to learn.") + (license license:lgpl3+))) + +(define-public python2-sge-pygame + (package-with-python2 python-sge-pygame)) + +(define-public python-tmx + (package + (name "python-tmx") + (version "1.9.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://savannah/python-tmx/tmx-" + version ".tar.gz")) + (sha256 + (base32 + "1is107sx3lr09dqjiyn10xqhyv5x54c2ryhys9mb9j3mxjbm227l")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "http://python-tmx.nongnu.org") + (synopsis "Python library for the @code{Tiled} TMX format") + (description + "Python TMX reads and writes the @code{Tiled} TMX format in a simple way. +This is useful for map editors or generic level editors, and it's also useful +for using a map editor or generic level editor like Tiled to edit your game's +levels.") + (license (list license:asl2.0 + ;; Documentation (only available in the source tarball) is + ;; under the CC0 license. + license:cc0)))) + +(define-public python2-tmx + (let ((python2-tmx (package-with-python2 python-tmx))) + (package + (inherit python2-tmx) + (propagated-inputs + `(("python2-pathlib" ,python2-pathlib) + ,@(package-propagated-inputs python2-tmx)))))) + (define-public tiled (package (name "tiled") diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index b31bb93db9..3517f06acf 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -28,6 +28,8 @@ ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 nee <nee-git@hidamari.blue> +;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> +;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,6 +54,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix svn-download) + #:use-module (guix gexp) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) @@ -88,6 +91,7 @@ #:use-module (gnu packages ocaml) #:use-module (gnu packages python) #:use-module (gnu packages readline) + #:use-module (gnu packages textutils) #:use-module (gnu packages xorg) #:use-module (gnu packages pkg-config) #:use-module (gnu packages databases) @@ -120,6 +124,10 @@ #:use-module (gnu packages wxwidgets) #:use-module (gnu packages bison) #:use-module (gnu packages flex) + #:use-module (gnu packages cmake) + #:use-module (gnu packages gnuzilla) + #:use-module (gnu packages icu4c) + #:use-module (gnu packages networking) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) #:use-module (guix build-system python) @@ -2687,6 +2695,69 @@ your way through an underground cave system in search of the Grue. Can you capture it and get out alive?") (license license:agpl3+))) +(define-public lierolibre + (package + (name "lierolibre") + (version "0.5") + (source (origin + (method url-fetch) + (uri (string-append "https://launchpad.net/lierolibre/trunk/" + version "/+download/lierolibre-" + version ".tar.xz")) + (sha256 + (base32 + "1cf1gvsn4qq190lrf9k5bpjnqwlcfw7pajvdnh7z5r4jqw0rsbl9")) + (patches + (search-patches "lierolibre-check-unaligned-access.patch" + "lierolibre-try-building-other-arch.patch" + "lierolibre-remove-arch-warning.patch" + "lierolibre-newer-libconfig.patch" + "lierolibre-is-free-software.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete pre-compiled files. + (delete-file "data/LIERO.CHR") + (delete-file "data/LIERO.SND") + #t)))) + (build-system gnu-build-system) + (native-inputs + `(("imagemagick" ,imagemagick) + ("pkg-config" ,pkg-config) + ("util-linux" ,util-linux) + ("sox" ,sox))) + (inputs + `(("boost" ,boost) + ("libconfig" ,libconfig) + ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer))) + ("zlib" ,zlib))) + (home-page "https://gitlab.com/lierolibre/lierolibre") + (synopsis "Old-school earthworm action game") + (description + "lierolibre is an earthworm action game where you fight another player +(or the computer) underground using a wide array of weapons. + +Features: +@itemize +@item 2 worms, 40 weapons, great playability, two game modes: Kill'em All +and Game of Tag, plus AI-players without true intelligence! +@item Dat nostalgia. +@item Extensions via a hidden F1 menu: +@itemize +@item Replays +@item Game controller support +@item Powerlevel palettes +@end itemize +@item Ability to write game variables to plain text files. +@item Ability to load game variables from both EXE and plain text files. +@item Scripts to extract and repack graphics, sounds and levels. +@end itemize + +To switch between different window sizes, use F6, F7 and F8, to switch to +fullscreen, use F5 or Alt+Enter.") + ;; Code mainly BSD-2, some parts under Boost 1.0. All assets are WTFPL2. + (license (list license:bsd-2 license:boost1.0 license:wtfpl2)))) + (define-public warzone2100 (package (name "warzone2100") @@ -3941,3 +4012,224 @@ fabulous Orb of Zot.") license:expat license:zlib license:asl2.0)))) + +(define-public lugaru + (package + (name "lugaru") + (version "1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/osslugaru/lugaru/downloads/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "15zgcshy22q51rm72zi6y9z7qlgnz5iw3gczjdlir4bqmxy4gspk")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DSYSTEM_INSTALL=ON") + ;; no test target + #:tests? #f)) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("sdl2" ,sdl2) + ("glu" ,glu) + ("libjpeg" ,libjpeg-turbo) + ("libpng" ,libpng) + ("openal" ,openal) + ("vorbis" ,libvorbis) + ("zlib" ,zlib))) + (home-page "https://osslugaru.gitlab.io") + (synopsis "Cross-platform third-person action game") + (description "Lugaru is a third-person action game. The main character, +Turner, is an anthropomorphic rebel bunny rabbit with impressive combat skills. +In his quest to find those responsible for slaughtering his village, he uncovers +a far-reaching conspiracy involving the corrupt leaders of the rabbit republic +and the starving wolves from a nearby den. Turner takes it upon himself to +fight against their plot and save his fellow rabbits from slavery.") + (license (list license:gpl2+ ; code + ;; assets: + license:cc-by-sa3.0 + license:cc-by-sa4.0)))) + +(define-public 0ad-data + (package + (name "0ad-data") + (version "0.0.21-alpha") + (source + (origin + (method url-fetch) + (uri (string-append "http://releases.wildfiregames.com/0ad-" + version "-unix-data.tar.xz")) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "15xadyrpvq27lm9p1ny7bcmmv56m16h3xadbkdx69gfkzxc3razk")) + (modules '((guix build utils))) + (snippet + #~(begin + (for-each + (lambda (name) + (let* ((dir (string-append "binaries/data/mods/" name)) + (file (string-append dir "/" name ".zip")) + (unzip #$(file-append unzip "/bin/unzip"))) + (system* unzip "-d" dir file) + (delete-file file))) + '("mod" "public")) + #t)))) + (build-system trivial-build-system) + (native-inputs `(("tar" ,tar) + ("xz" ,xz))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((out (assoc-ref %outputs "out")) + (source (assoc-ref %build-inputs "source")) + (tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar")) + (xz-path (string-append (assoc-ref %build-inputs "xz") "/bin"))) + (setenv "PATH" xz-path) + (mkdir out) + (zero? (system* tar "xvf" source "-C" out "--strip=3")))))) + (synopsis "Data files for 0ad") + (description "0ad-data provides the data files required by the game 0ad.") + (home-page "https://play0ad.com") + (license (list (license:fsdg-compatible + "http://tavmjong.free.fr/FONTS/ArevCopyright.txt" + (license:license-comment + (package-license font-bitstream-vera))) + (package-license font-bitstream-vera) + license:cc-by-sa3.0 + license:expat + license:gfl1.0 + license:gpl2+ + license:gpl3+)))) + +(define-public 0ad + (package + (name "0ad") + (version "0.0.21-alpha") + (source + (origin + (method url-fetch) + (uri (string-append "http://releases.wildfiregames.com/0ad-" + version "-unix-build.tar.xz")) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "1kw3hqnr737ipx4f03khz3hvsh3ha7r8iy9njppk2faa53j27gln")) + ;; A snippet here would cause a build failure because of timestamps + ;; reset. See https://bugs.gnu.org/26734. + )) + (inputs + `(("0ad-data" ,0ad-data) + ("curl" ,curl) + ("enet" ,enet) + ("gloox" ,gloox) + ("icu4c" ,icu4c) + ("libpng" ,libpng) + ("libvorbis" ,libvorbis) + ("libxcursor" ,libxcursor) + ("libxml2" ,libxml2) + ("miniupnpc" ,miniupnpc) + ("mozjs-38" ,mozjs-38) + ("openal" ,openal) + ("sdl2" ,sdl2) + ("wxwidgets" ,wxwidgets) + ("zlib" ,zlib))) + (native-inputs + `(("boost" ,boost) + ("cmake" ,cmake) + ("mesa" ,mesa) + ("pkg-config" ,pkg-config) + ("python-2" ,python-2))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-bundles + (lambda _ + (delete-file-recursively "libraries/source/spidermonkey") + #t)) + (add-after 'unpack 'fix-x11-includes + (lambda _ + (substitute* "source/lib/sysdep/os/unix/x/x.cpp" + (("<Xlib.h>") "<X11/Xlib.h>")) + (substitute* "source/lib/sysdep/os/unix/x/x.cpp" + (("<Xatom.h>") "<X11/Xatom.h>")) + (substitute* "source/lib/sysdep/os/unix/x/x.cpp" + (("<Xcursor/Xcursor.h>") "<X11/Xcursor/Xcursor.h>")) + #t)) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((jobs (number->string (parallel-job-count))) + (out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (data (string-append out "/share/0ad"))) + (setenv "JOBS" (string-append "-j" jobs)) + (setenv "CC" "gcc") + (with-directory-excursion "build/workspaces" + (zero? (system* "./update-workspaces.sh" + (string-append "--libdir=" lib) + (string-append "--datadir=" data) + "--minimal-flags" + ;; TODO: "--with-system-nvtt" + "--with-system-mozjs38")))))) + (add-before 'build 'chdir + (lambda _ + (chdir "build/workspaces/gcc") + #t)) + (delete 'check) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (chdir "../../../binaries") + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib")) + (data (string-append out "/share/0ad")) + (applications (string-append out "/share/applications")) + (pixmaps (string-append out "/share/pixmaps")) + (0ad-data (assoc-ref inputs "0ad-data"))) + ;; data + (copy-recursively "data" data) + (for-each (lambda (file) + (symlink (string-append 0ad-data "/" file) + (string-append data "/" file))) + '("config" "mods/mod" "mods/public" "tools")) + ;; libraries + (for-each (lambda (file) + (install-file file lib)) + (find-files "system" "\\.so$")) + ;; binaries + (install-file "system/pyrogenesis" bin) + (with-directory-excursion bin + (symlink "pyrogenesis" "0ad")) + ;; resources + (with-directory-excursion "../build/resources" + (install-file "0ad.desktop" applications) + (install-file "0ad.png" pixmaps)) + #t))) + (add-after 'install 'check + (lambda _ + (with-directory-excursion "system" + (zero? (system* "./test")))))))) + (home-page "https://play0ad.com") + (synopsis "3D real-time strategy game of ancient warfare") + (description "0 A.D. is a real-time strategy (RTS) game of ancient +warfare. It's a historically-based war/economy game that allows players to +relive or rewrite the history of twelve ancient civilizations, each depicted +at their peak of economic growth and military prowess. + +0ad needs a window manager that supports 'Extended Window Manager Hints'.") + (license (list license:bsd-2 + license:bsd-3 + license:expat + license:gpl2+ + license:ibmpl1.0 + license:isc + license:lgpl2.1 + license:lgpl3 + license:mpl2.0 + license:zlib)))) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 00e2fa7d66..5d1a4ea754 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -399,6 +399,19 @@ Go. It also includes runtime support libraries for these languages.") "17xjz30jb65hcf714vn9gcxvrrji8j20xm7n33qg1ywhyzryfsph")) (patches (search-patches "gcc-strmov-store-file-names.patch" "gcc-5.0-libvtv-runpath.patch")))))) +(define-public gcc-7 + (package + (inherit gcc-6) + (version "7.1.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.bz2")) + (sha256 + (base32 + "05xwps0ci7wgxh50askpa2r9p8518qxdgh6ad7pnyk7n6p13d0ca")) + (patches (search-patches "gcc-strmov-store-file-names.patch" + "gcc-5.0-libvtv-runpath.patch")))))) ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions and the gfortran definition @@ -523,6 +536,14 @@ as the 'native-search-paths' field." (custom-gcc gcc-5 "gfortran" '("fortran") %generic-search-paths)) +(define-public gfortran-6 + (custom-gcc gcc-6 "gfortran" '("fortran") + %generic-search-paths)) + +(define-public gfortran-7 + (custom-gcc gcc-7 "gfortran" '("fortran") + %generic-search-paths)) + (define-public gfortran ;; Note: Update this when GCC changes! We cannot use ;; (custom-gcc gcc "fortran" …) because that would lead to a package object diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm index 62c8fd8588..aac0f9664c 100644 --- a/gnu/packages/gd.scm +++ b/gnu/packages/gd.scm @@ -32,7 +32,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages compression) #:use-module (gnu packages pkg-config) - #:use-module ((guix licenses) #:select (non-copyleft))) + #:use-module ((guix licenses) #:select (non-copyleft perl-license))) (define-public gd (package @@ -139,7 +139,7 @@ most common applications of GD involve website development.") (description "GD.pm is an autoloadable interface module for libgd, a popular library for creating and manipulating PNG files. With this library you can create PNG images on the fly or modify existing files.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-gd-securityimage (package @@ -166,4 +166,4 @@ security (captcha) images. The final output is the actual graphic data, the mime type of the graphic, and the created random string. The module also has some \"styles\" that are used to create the background (or foreground) of the image.") - (license (package-license perl)))) + (license perl-license))) diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 5340107f99..4e8736cd71 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2013, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> @@ -209,8 +209,7 @@ output file formats and printers.") (properties '((upstream-name . "gnu-ghostscript"))))) (define-public ghostscript/x - (package (inherit ghostscript) - (replacement #f) + (package/inherit ghostscript (name (string-append (package-name ghostscript) "-with-x")) (inputs `(("libxext" ,libxext) ("libxt" ,libxt) @@ -219,6 +218,7 @@ output file formats and printers.") (define ghostscript/fixed (package (inherit ghostscript) + (replacement #f) (source (origin (inherit (package-source ghostscript)) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 15eb5bc084..362e2047fa 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -126,7 +126,7 @@ buffers.") (define-public gimp (package (name "gimp") - (version "2.8.18") + (version "2.8.22") (source (origin (method url-fetch) (uri (string-append "http://download.gimp.org/pub/gimp/v" @@ -134,10 +134,10 @@ buffers.") "/gimp-" version ".tar.bz2")) (sha256 (base32 - "0halh6sl3d2j9gahyabj6h6r3yyldcy7sfb4qrfazpkqqr3j5p9r")))) + "12k3lp938qdc9cqj29scg55f3bb8iav2fysd29w0s49bqmfa71wi")))) (build-system gnu-build-system) (outputs '("out" - "doc")) ;8 MiB of gtk-doc HTML + "doc")) ;5 MiB of gtk-doc HTML (arguments '(#:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0123fbd123..0be399cbda 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> +;;; Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net> ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> @@ -150,7 +150,14 @@ "/share/gir-1.0") (string-append "--with-typelibdir=" (assoc-ref %outputs "out") - "/lib/girepository-1.0")))) + "/lib/girepository-1.0")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'embed-growisofs + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "plugins/growisofs/burn-growisofs.c" + (("\"growisofs") (string-append "\"" (which "growisofs")))) + #t ))))) (propagated-inputs `(("hicolor-icon-theme" ,hicolor-icon-theme))) (native-inputs @@ -159,7 +166,8 @@ ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config))) (inputs - `(("glib" ,glib) + `(("dvd+rw-tools" ,dvd+rw-tools) + ("glib" ,glib) ("gnome-doc-utils" ,gnome-doc-utils) ("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base) @@ -4995,6 +5003,7 @@ properties, screen resolution, and other GNOME parameters.") (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) + (patches (search-patches "gnome-shell-CVE-2017-8288.patch")) (sha256 (base32 "16smvjfrpyfphv479hjky5261hgl4kli4q86bcb2b8xdcav4w3yq")))) diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm index e2ee4748ff..51541170ae 100644 --- a/gnu/packages/gnustep.scm +++ b/gnu/packages/gnustep.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,7 +23,9 @@ #:use-module (guix build-system gnu) #:use-module (guix licenses) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages xorg) + #:use-module (gnu packages libffcall) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages texinfo) @@ -31,7 +33,33 @@ #:use-module (gnu packages glib) #:use-module (gnu packages fontutils) #:use-module (gnu packages image) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xml)) + +(define-public gnustep-make + (package + (name "gnustep-make") + (version "2.7.0") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp.gnustep.org/pub/gnustep/core/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1khiygfkz0zhh9b5nybn40g0xnnjxchk24n49hff1bwanszir84h")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f)) ; no check target + (native-inputs + `(("which" ,which))) + (home-page "http://gnustep.org") + (synopsis "GNUstep make package") + (description "The makefile package is a simple, powerful and extensible way +to write makefiles for a GNUstep-based project. It allows the user to write a +project without having to deal with the complex issues associated with +configuration, building, installation, and packaging. It also allows the user +to easily create cross-compiled binaries.") + (license gpl3+))) (define-public windowmaker (package diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index d60b53828b..d9901fd0fb 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> +;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,7 +58,8 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages video) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages zip)) + #:use-module (gnu packages zip) + #:use-module (gnu packages readline)) (define-public mozjs (package @@ -159,6 +161,92 @@ in C/C++.") `(("libffi" ,libffi) ("zlib" ,zlib))))) +(define-public mozjs-38 + (package + (inherit mozjs) + (name "mozjs") + (version "38.2.1.rc0") + (source (origin + (method url-fetch) + (uri (string-append + "https://people.mozilla.org/~sstangl/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "0p4bmbpgkfsj54xschcny0a118jdrdgg0q29rwxigg3lh5slr681")) + (patches + (search-patches + ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1269317 for + ;; GCC 6 compatibility. + + "mozjs38-version-detection.patch" ; for 0ad + "mozjs38-tracelogger.patch" + + ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1339931. + "mozjs38-pkg-config-version.patch" + "mozjs38-shell-version.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix incompatibility with sed 4.4. + (substitute* "js/src/configure" + (("\\^\\[:space:\\]") "^[[:space:]]")) + + ;; The headers are symlinks to files that are in /tmp, so they + ;; end up broken. Copy them instead. + (substitute* + "python/mozbuild/mozbuild/backend/recursivemake.py" + (("\\['dist_include'\\].add_symlink") + "['dist_include'].add_copy")) + + ;; Remove bundled libraries. + (for-each delete-file-recursively + '("intl" + "js/src/ctypes/libffi" + "js/src/ctypes/libffi-patches" + "modules/zlib")) + #t)))) + (arguments + `(;; XXX: parallel build fails, lacking: + ;; mkdir -p "system_wrapper_js/" + #:parallel-build? #f + ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1008470. + #:tests? #f + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (chdir "js/src") + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + (zero? (system* "./configure" + (string-append "--prefix=" out) + "--enable-ctypes" + "--enable-gcgenerational" + "--enable-optimize" + "--enable-pie" + "--enable-readline" + "--enable-shared-js" + "--enable-system-ffi" + "--enable-threadsafe" + "--enable-xterm-updates" + "--with-system-icu" + "--with-system-nspr" + "--with-system-zlib" + + ;; Intl API requires bundled ICU. + "--without-intl-api")))))))) + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python-2" ,python-2))) + (inputs + `(("libffi" ,libffi) + ("readline" ,readline) + ("icu4c" ,icu4c) + ("zlib" ,zlib))))) + (define-public nspr (package (name "nspr") @@ -323,7 +411,7 @@ standards.") (define-public icecat (package (name "icecat") - (version "52.0.2-gnu1") + (version "52.1.0-gnu1") (source (origin (method url-fetch) @@ -332,162 +420,38 @@ standards.") "/" name "-" version ".tar.bz2")) (sha256 (base32 - "0asaba04y6rwc7nx898p89jdxkbnsb3dxjvpdi8xb1rbgyms80c9")) + "1wr4bc5806xzyqpi6m4rjaf61za6ylpx4g0kfk95c6yw9yhg5vqb")) (patches (list (search-patch "icecat-avoid-bundled-libraries.patch") - (mozilla-patch "icecat-CVE-2017-5443.patch" "6daaaff9f1f6" "0jvb6y5fiwr13fyx58k49n81kv6h03vcch502g57y6nsx2wsqng6") - (mozilla-patch "icecat-bug-1319087.patch" "82297fcc6f19" "02qcbg2r2smswgnwj7fs5bcrr3rlqbpsh2nmcbsjyblp5fk1ag36") - (mozilla-patch "icecat-CVE-2017-5429-pt01.patch" "dd526ebe7e58" "1rj0pz6iql59zrynz48njcfg8i0v55bjdndplss9wl37lfydl7ca") - (mozilla-patch "icecat-CVE-2017-5447-pt1.patch" "3bc981f85a17" "0am9k3mii2r05lp6xpizxp356mb8xrbqs9kmx0wx5wyy08wjzmks") - (mozilla-patch "icecat-CVE-2017-5447-pt2.patch" "4f752b0e5920" "183s5dwzd57b299grvyvn139fsp9am0smd3yb4shw8g0iwzz61nf") - (mozilla-patch "icecat-CVE-2017-5449.patch" "1714eda3de9b" "0ncngdpzvffvpw4c1mi0dda5l02lwyil4rnq3i6salnwlrq9x32z") - (mozilla-patch "icecat-CVE-2017-5455.patch" "b10922304d81" "0rglbavb8rx7hl53ksgypazz27263b1yn97gznpdsq89zhirfw3m") - (mozilla-patch "icecat-CVE-2017-5446.patch" "d98de46f8f27" "040agykr4w4wsbi0xm3rrrjxk48iwz8l1hn11vfv45nzsx2f1hzq") - ;; The next patch is for CVE-2017-5436 in the bundled graphite2. - ;; TODO: apply additional fixes from our system graphite2 to the - ;; bundled copy, or upgrade it in place. - (mozilla-patch "icecat-CVE-2017-5436.patch" "e6132f638311" "07w9pijx42psgmkj2i6i87lf30gl0yyb5caz6wz7fm8phi8wwy9p") - (mozilla-patch "icecat-bug-1342395.patch" "0e0e8abe2153" "1xlnq2fd50kf0rz9dibz5vlaa9zj2pifjvky2fdykcan62xz75hy") - (mozilla-patch "icecat-bug-1342841.patch" "623afac083f8" "1pv86j0dxdmi7g3rx4zqplz4gxq5lfyzpdssq83naypcxic6zafb") - (mozilla-patch "icecat-bug-1344644.patch" "cac0735c228f" "0695f0hvxnzgcirgxx3axn5nhkywqxjcvnrlhg7jwfann4mnbsfn") - (mozilla-patch "icecat-bug-1322660.patch" "9d6d60e64255" "0ds74ilhyc9qkkjgkm0xk7ay3926971rzwfh2avhhkfargn7idib") - (mozilla-patch "icecat-bug-1343330.patch" "6f23bd449bc7" "1igz6yhx803hygf7cii8bchx7bfw1niq8s0nc5l9i5rb8ml2b7f0") - (mozilla-patch "icecat-bug-1346961.patch" "3a2dc54cf986" "0dfp3s7d43zx3svajbkhvi73b71hhr7vrc9yz0iz37pykg40c4hn") - (mozilla-patch "icecat-bug-1318070.patch" "a68d6d9b87d0" "1yqgkgv7i0xy5dm0pgg1cbav4qglsdk8brzcjcpfz65bmn1pqrhh") - (mozilla-patch "icecat-CVE-2017-5448.patch" "6684a3c7f834" "0agyynvcjk28d7l2l4cqz67ddg9xw7ymiirb0npabd1si9zj27xb") - (mozilla-patch "icecat-bug-1336345.patch" "590416f46ec8" "1q2svqjd735rickr9i3kdkd0la6ikdphhmzr19h1r84nrl6a87ia") - (mozilla-patch "icecat-bug-1336356.patch" "00ba83ac39be" "1h6qsfv4r9mlc2ihjm9kmzi76aijdnnyx1g2r30ia87xha106pnk") - (mozilla-patch "icecat-bug-1342363.patch" "10285b4a6b71" "0l2ww19y6qbarcp9brjgbpf4vi3k38r6ak8is5736vqz0c17dim0") - (mozilla-patch "icecat-bug-1343787.patch" "28287b7f0938" "1w85s9rqh0dyfx6qn5plypbypz9casig03b6yiy9bpiq7ckrxz56") - (mozilla-patch "icecat-bug-1292803.patch" "adbf7b59a405" "1l1p0b5rc05czk6kr3k3k99m1fkwphj2jrd092gdbib8q4m4cvzv") - (mozilla-patch "icecat-bug-1313869.patch" "eba25396310b" "1ws0dr0kwclzbc2m0sihd3aqvbbg57ycia0fg6y294k6qipcxv38") - (mozilla-patch "icecat-bug-1141756-pt1.patch" "f7c262517722" "0r1zzbxf47q5w8vcy402yin105ngam3csb2q7h7n8axm97307ykp") - (mozilla-patch "icecat-bug-1141756-pt2.patch" "420396d5e26d" "0yv1pmpydzkirfwrxrgbw98dm4a9a4s0izha0wabrp4lb3655jv5") - (mozilla-patch "icecat-bug-1343210.patch" "ed9521749d6f" "1j2zzi00qyqjgh15ingvl6f88zlk4imp31m5jmf7w5f9jqi5ly3k") - (mozilla-patch "icecat-bug-1342442.patch" "775b6f85ef81" "00h9dgds7jv9n4cznj5qhh8liaf1b3wvnlqc2z7a3kj07ijllwzb") - (mozilla-patch "icecat-bug-1344527.patch" "d4612b14c907" "1n3a0mp351a7xgvshm6688gh89hg0xci3y621zs2pyqsfm114366") - (mozilla-patch "icecat-CVE-2017-5442.patch" "5f1aa2336998" "1y2marhrglc66vchd6z0jdmhg0pmkxp1cwim63bp9l6pj7lxyjma") - (mozilla-patch "icecat-CVE-2017-5430-pt01.patch" "512604631b23" "171nzxr4av4818d0fyg9hcsdxkai61sghl45xnsr2al34l28wsw3") - (mozilla-patch "icecat-CVE-2017-5430-pt02.patch" "16772200ad6f" "087j16rcbs5kgvpa096kd6jarwwwfrhwph54wzjn671wr1vnsvvd") - (mozilla-patch "icecat-CVE-2017-5441.patch" "c744e9d57250" "0m70157lczf17hxb2pabsl3grhcjqallbdfpsd58q8q6fk99k6x3") - (mozilla-patch "icecat-CVE-2017-5433.patch" "b4fc7a4cb5e0" "12q6mr5prpgqg5xnrww09qjm3jx2amb8zig62cd46ba8n9z2j9ab") - (mozilla-patch "icecat-CVE-2017-5429-pt02.patch" "21eac0b4fd2f" "1a6v0hwcc26gnlxygplc11dfzc8bykhh44j4gsz88kl5c5jqhlk9") - (mozilla-patch "icecat-CVE-2017-5432.patch" "62df7046e959" "1qvxbpkf87g4vnl8hxqvwb1ydrpkqq3rbkivr8q4029rvgalf4rf") - (mozilla-patch "icecat-bug-1350599.patch" "f6a978b2fcec" "0rkbbmw52mxgrmn1xny4jkn3slwb5jsqs4yr07ffhz7r801jy9iz") - (mozilla-patch "icecat-bug-1332839.patch" "2ad0f87f5dba" "04458jidri521hgf3r63pl736zz4gmgv6b8spa32anfb7gryj8fy") - (mozilla-patch "icecat-bug-1337548.patch" "29a1ad09a6ec" "0pld81bpc34w6g2ara54sx30msas55kwzr537pvxxc002lpvzs57") - (mozilla-patch "icecat-CVE-2017-5430-pt03.patch" "5dec7534760f" "1xh0y7srl7nznb6szpfiykd6r1ibyxrdvasc36w0chqjdmq7xr32") - (mozilla-patch "icecat-bug-1343851.patch" "e104d53316d7" "1yhv3qvzzi3kr881ji1dnm8ydnr3snh2vzl3c4vdzmvrjx8q5rcb") - (mozilla-patch "icecat-bug-1345222.patch" "864644fadcb0" "0qpplxyfn87bigzdkwlrhj9isd5gfafhjgqfckb239a09wwrblf3") - (mozilla-patch "icecat-bug-1348584.patch" "7cee9ad555af" "0856bpa3n71a3y5m4gilcdb9ghb60p545xkv9zbr245r20mj32ds") - (mozilla-patch "icecat-bug-1346720.patch" "6a597a9cd494" "091a5sanw3w3gl0jcmf8d60m59vwbh5v36vnar20m0hl7xrv4v7p") - (mozilla-patch "icecat-CVE-2017-5430-pt04.patch" "09693629803f" "18fhmsghq0232mhh8j10cy0a4979nmkbh43jlcyrg3l63l7795k4") - (mozilla-patch "icecat-CVE-2017-5430-pt05.patch" "2b8268ea97a9" "0l0f54krxdmqbgldikwjncxvn6irihcljldd3z039himrvplisjg") - (mozilla-patch "icecat-bug-1347700-pt1.patch" "ee706896916c" "0m85x80y98c154hyis08kcy81kbw3v34na1v862vxzs939d3mc0n") - (mozilla-patch "icecat-bug-1347700-pt2.patch" "08ecc2d92f81" "1s6411ccifw9l22hhmf32nhm8r5hbclnhy7jm2n228sqfr4h971g") - (mozilla-patch "icecat-bug-1337682.patch" "15af6a323161" "1nxbwd0574gscnkxfyhzv3yqvxiccb2d0rmba9vi6i62646l2pd5") - (mozilla-patch "icecat-CVE-2017-5451.patch" "d91260f0069a" "15w4rzz51hps2fr8djf5z1rzdwxshclk936mxv5anx1skkwms0y8") - (mozilla-patch "icecat-CVE-2017-5444.patch" "7740cf7e121b" "1706mx4zmnib336p2wmfp9ncyl66lk2da82f28xvcw262mg1c8lw") - (mozilla-patch "icecat-bug-1347164-pt1.patch" "b35a6d6dcdca" "077r0pns58fw3xd3qnbhib4q21vvw0aynpa8iyn1pycg8mppmd0f") - (mozilla-patch "icecat-bug-1347164-pt2.patch" "a42fc05969b9" "1ijq8ccsk5k56h77sv5kqv48w7csj3vbakzq98awgbvypzfdyhss") - (mozilla-patch "icecat-bug-1347164-pt3.patch" "f78ac1ac0a37" "0kj6jq482cqwyngy1kmb69zpq35xah8h33kml8i4l7andiyaq3zm") - (mozilla-patch "icecat-bug-1347164-pt4.patch" "795a3d48a775" "18lw99hmrr93k95hk6v6bx5rcf22aa902x2yf5p6wxdqg56nc0zp") - (mozilla-patch "icecat-bug-1338699.patch" "94ce63191069" "0rdivablincah3gbgl4wzjmqlraazivmr8bhqxdpy8dk0a6fvv4s") - (mozilla-patch "icecat-bug-1342301.patch" "e640e758a7cd" "17f36vvf82n6shlaip7ji8qsy9861f9a5r79h000p3wb3bb7lbfs") - (mozilla-patch "icecat-bug-1342170.patch" "df7ed78b7c0a" "1kq256i66hcm2k9d37i5ws354ksv3bbglmscdjv2v5f7wg3y967v") - (mozilla-patch "icecat-bug-1342634.patch" "d72e56823bbb" "0c186d77lyyg0hjxw15d44rybw6yr5aw8g9m3311xfdn5wiygijb") - (mozilla-patch "icecat-bug-1348796-pt1.patch" "cef01720769e" "0h57372lxanjs5zw9b3vwr2x36yz9gj73swyg50aqp13j4rcbpmy") - (mozilla-patch "icecat-bug-1348796-pt2.patch" "7d3584b75f20" "1a4hvpsvn39832g54hsxhqs24cq8v4nd69jqskkgc1ybs09ncmr3") - (mozilla-patch "icecat-bug-1192800.patch" "e56b0938ea0f" "1hlbxhjzj65s6p2v6f66zdfb3gw5yx77msgq5idsv9jip2w88mpq") - (mozilla-patch "icecat-bug-1309438.patch" "1f30d97563c8" "0rvq729fg9j959ha9qvw5wv7r6vw70qvpy7ynifgqhgrpa749n70") - (mozilla-patch "icecat-bug-1315332.patch" "66495c8d9459" "0vzlx8i0cidpymm6ar07h3yk63fxf64f0b2vb0pihd72h0jzd5s9") - (mozilla-patch "icecat-bug-1346439.patch" "a9fcc2dc324a" "13991jijwa84yczkmc212s23w269r8b1a4yiygqgwaily29l1dc5") - (mozilla-patch "icecat-CVE-2017-5469.patch" "3dcc5f5c2df4" "0b36m6rgxc05h39l6wkzi6dlmq9brcigk7xjrifs4786f0z564hz") - (mozilla-patch "icecat-CVE-2017-5430-pt06.patch" "ac0ca89b5a6b" "1646y9y2wmq8pxb081x3076dq9ana7hh5fxwbsnn17v5wqhi8gfb") - (mozilla-patch "icecat-CVE-2017-5467.patch" "6ed26e6c1a09" "0r1n1dwb4l8xwlns0aifyka6mldb6cy2crhh2qkap64cpj3bzl9s") - (mozilla-patch "icecat-CVE-2017-5439.patch" "2fde528ca7b6" "0iv0sjhnh7br0z3pcpk346wbj162ynacfk3p9309hg6kr1cd92fp") - (mozilla-patch "icecat-CVE-2017-5440.patch" "d88bd03d1234" "1pls63djh4w5023ag3fwjk79cpx816ilgajl5l1qlqyacl8c0v4p") - (mozilla-patch "icecat-bug-1349987.patch" "3282e8f6a121" "1dyc84h7v0l9gndmbiwfqk33f703zr3fv96mwbn58msdf20ma9l2") - (mozilla-patch "icecat-CVE-2017-5434.patch" "ee0a7b55e470" "01vs4p56p0ii0fvmg0kn7gaz6gwf2kwmv6v4pa6v68hwxx1phaag") - (mozilla-patch "icecat-CVE-2017-5430-pt07.patch" "a4e1e04c88ee" "0q07qwzxf2iisrhknjbn1zksv2rr6qzzh6w8ibzlj1sqbdg3h852") - (mozilla-patch "icecat-bug-1335043.patch" "a49419f75b9c" "0pkh5yimnj3p1sd2g9vndgcn11zdx6yhpa88s8vk7fqbs8gf1fz3") - (mozilla-patch "icecat-bug-1299500-pt01.patch" "5fdd36b4400a" "1gdrsbf03wf9v90f1bd2sp9ac38a9lzpzfrv8l8f7gvy70acjxmb") - (mozilla-patch "icecat-bug-1299500-pt02.patch" "34776df5ce44" "15mlf59ii0rk97j8mlf3wz1q0w28ma5mll47dvci6cv3dziai9f1") - (mozilla-patch "icecat-bug-1299500-pt03.patch" "26189af0f504" "1wh1s2xd1w03zi5jdaagk6j5i8v9xsm9360xmv446wdraygkqbci") - (mozilla-patch "icecat-bug-1299500-pt04.patch" "798a8fe17e7b" "0vlalanffq3paa7zab003v1d377x5pvcsy8nc8fr5pdlvi622jll") - (mozilla-patch "icecat-bug-1299500-pt05.patch" "daf2e4f2bd5c" "1rxbjbyr1a6dxjb0qj6900g3kqjphir40pis4qcfl8q811y18jwk") - (mozilla-patch "icecat-bug-1299500-pt06.patch" "1187091c3134" "0r8zz4zbglxg6sl0ybz9lyq1c5w2nqp0xcn2d3rz9bvyj8byqc7m") - (mozilla-patch "icecat-bug-1299500-pt07.patch" "a908f2c2fe30" "1fvwy3fxfrdi9y8hmf4f9aa72i0g6s55s8cp0w22gllsl1f6gvyf") - (mozilla-patch "icecat-bug-1299500-pt08.patch" "e95a26cf7a42" "0pd0kcn7dqd1gy1si85as5zzc96v7vq0v8n3g3gjzms5rdnk085l") - (mozilla-patch "icecat-bug-1299500-pt09.patch" "d63f3b14e571" "0cqd7dal6prsrj7bn2d699idbq4fzjry9vqlbmm9dkyn5683sdy1") - (search-patch "icecat-bug-1299500-pt10.patch") ; Adapted for GNU IceCat, based on: - ;"08f2bc167ae8" "07d1i23ffvi74a5558bb0645vbrap6qlrpcwfyb7dm3llbfnfycy") - (mozilla-patch "icecat-bug-1299500-pt11.patch" "263f27805689" "0nczkvyvlpdjif3xfvj7g2mfz6j06w99x2sblqfmqq6mwrlavpq0") - (mozilla-patch "icecat-CVE-2017-5456.patch" "538e0b382cc2" "0wq2ywn4a7i4ypcx03hl23a4xx3lavz7y505m9kw43fx15r4070r") - (mozilla-patch "icecat-bug-1280079.patch" "6fbcb6a4b91e" "0qcwz9js1bwlnwyv3vhkm0hvahd043lm2bijqsmm0jy20dbslga4") - (mozilla-patch "icecat-CVE-2017-5435.patch" "a362e1205ba4" "127i4ybfb4dk5axp4dxcl7ag7zyx7b517myvs6q4yd8981d1jjd3") - (mozilla-patch "icecat-bug-1341960.patch" "b24ce30e8cfa" "0a521wn8hbaliawmxs21b8wc1gkha8iih62j4zyrfg5rm7ff6p6s") - (mozilla-patch "icecat-CVE-2017-5454.patch" "ac40d4a4e414" "0dnzz95vpq32bsh6hajk4hrcrxwd4w6m7kayl2iziryny86jgak2") - (mozilla-patch "icecat-CVE-2017-5429-pt03.patch" "e469af8e9ccc" "0yn8zqakr9yw0jvysxyc8if09kqf4fr5rq4p9qdkb1p81p4dpmp5") - (mozilla-patch "icecat-bug-1351094.patch" "4c1383e76adc" "0wdldx88qabyhrwnnii44pggmfgqylzxy6ckwzgq86r2yipi4rsq") - (mozilla-patch "icecat-bug-1336527.patch" "b9f53baeabb3" "0y1l641ffbr4i85p0wc1ir6bcsy6h94bchbfc7ppxfijva4fjgvd") - (mozilla-patch "icecat-bug-1345716.patch" "2569af645a98" "1d6lx85ij90j6q6ixwp0h3w7y424yvkz0njsi0my727akbli5rsn") - (mozilla-patch "icecat-bug-1208957.patch" "2b68880d8f6b" "1pl0vkv7clyjchi9kg4995z82sr8xv7cbz1kvsg1v66md6pmp4s4") - (mozilla-patch "icecat-bug-1208957.patch" "bc646835442b" "0f29r5yvlb5w84nvvn6j9r9dq5314jgygjmsna3grzigpkb88gyj") - (mozilla-patch "icecat-bug-1347944.patch" "47cb652ddc25" "0n7871958zwndwz53xvzwjv41v5ar1vxaam8kzr5dkbqmprddimx") - (mozilla-patch "icecat-bug-1347632.patch" "7d8f7a52a108" "0gkbkzkz989j7pk3ia1rfvyjg3si8hnnadwkb2rw13qjxdzhx2zn") - (mozilla-patch "icecat-CVE-2017-5438.patch" "154c93b9435b" "00f8lr5s8h68392bb45zi0xfgqrgfkdxbzwdypp10d89784fvjvd") - (mozilla-patch "icecat-bug-1347486.patch" "15dbaf157058" "1mwgfnx1zsvhp0pgmc8577yw6lnf7g3ikdfj0r21fgffrn76bp69") - (mozilla-patch "icecat-bug-1218437.patch" "e13692bfd5f5" "10jrbs26m8l1vchw6svssrb5h8p82acrcmkx92ybvv4qbaq2bcl0") - (mozilla-patch "icecat-bug-1345853.patch" "5fa27dc4c4a3" "1sqqa4hir2bsnnwnlr34has62kpncmw6l9mylwprd09fxmzzgrd7") - (mozilla-patch "icecat-CVE-2017-5429-pt04.patch" "00c051cd38c7" "1d4aa4nqyjc01mg3jvdjjp7z05c2qhdjj85dhdrd9c18gfiyv4fi") - (mozilla-patch "icecat-bug-1349921.patch" "c6897adc4037" "0acvcdy8awdmpz84243jzf82agrm73wqa198fjbns1p1v3s425z2") - (mozilla-patch "icecat-bug-1338623.patch" "edcafd42dd52" "1xqgjy7a62jsyz1b5mibrcnd7zpb4gdaas0a6z5dwfvz52j4xa16") - (mozilla-patch "icecat-bug-1294799.patch" "0617b074ec3d" "19h7dj44shvdzzj87svpv5q97cikxyxhiwfzf9rnqj1b7fw0xrdh") - (mozilla-patch "icecat-bug-1345049.patch" "88466b911357" "16pgd13mw9a0snyhq6vxmjc7kr9mikvhazkgbc6vpykwi0i0z85b") - (mozilla-patch "icecat-bug-1339999.patch" "b7cb8f8b0877" "0zv1kxcva699ahb9s36l4d9mlrkm0b7hmh6g1422j6iijn136vxb") - (mozilla-patch "icecat-bug-1350868.patch" "ddd6c44790c0" "182ii4wsz2vdd1q4dszd5hka8i2n0ghmqk7l39bd02d3zfibhhvc") - (mozilla-patch "icecat-bug-1342360.patch" "416681a239ef" "0ngs8xgmdhz9ag4dlrqhr0vmanqxr9q2vf16jpm3cimyc06zjxz4") - (mozilla-patch "icecat-CVE-2017-5429-pt05.patch" "a76e626ae6db" "0zn2j8fmhp7502kx1jhrvh85vsys5x6x6gw3v4gl0h8px354v6yw") - (mozilla-patch "icecat-CVE-2017-5429-pt06.patch" "0ce4196ab86e" "0isczy8261qz2zsdxax4j51gypz0gi39q7nfwxg88sl81kc5vym8") - (mozilla-patch "icecat-CVE-2017-5429-pt07.patch" "39da731d80ed" "0vswnv1hqa7r8iz6y5ja7i6w3cyq5xrcd66c1q29ac6n4gn7x338") - (mozilla-patch "icecat-CVE-2017-5430-pt08.patch" "1b148cf9c545" "0ilrib0c2c7mfycpz2hq3vrfdf6sf8lcdbfjk6r4xyxv54vh3lwk") - (mozilla-patch "icecat-bug-1325841.patch" "74e9f13c554f" "0glzcgjsy71y78zaccn33w8djs96i6dd3gafyzkihnkpfddd5cij") - (mozilla-patch "icecat-CVE-2017-5445.patch" "d7d87adfe186" "02p705si2j69ya8n5a916x58nycs07ja0sfpxrwl16f4n2plc91h") - (mozilla-patch "icecat-bug-1346424.patch" "5ede402f494f" "0kbx8yn8ppv7099ic6nhw32f7h42pnwk6dpvb179ilw90ah902q7") - (mozilla-patch "icecat-CVE-2017-5430-pt09.patch" "da44c5cfab2e" "16i4dz5sfkhh3a0khrcf8zn5w20rkf4aqwygjj3cp4qhdh7wnr75") - (mozilla-patch "icecat-CVE-2017-5430-pt10.patch" "0f966927bd55" "07pkhc6l6ylwrzgfm7i1galrvjawqqrhvhk6jcw4b30sfhi0bxq1") - (mozilla-patch "icecat-CVE-2017-5429-pt08.patch" "f0f591f82cc0" "18p091503vpfpp4l3d7hkqj78zavv6qj1lynhlfx67zdp3xqcf8r") - (mozilla-patch "icecat-CVE-2017-5464.patch" "1852dc0beba4" "1zdnkrsqjfv1q2jhj4829ypiwyg78n4jv54yn3b74vwcf5zvzx8m") - (mozilla-patch "icecat-bug-1083140.patch" "6913f0537208" "0vaf61ryp0bzkz6l1w73alhglibbgm0jcgccxvvm43ni67pcxqbq") - ;; The patch commented out below updates the bundled tzdata, - ;; but we can't use it because it contains a GIT binary patch. - ;; TODO: Consider updating the bundled tzdata, or unbundling it. - ;; (mozilla-patch "icecat-bug-1343493.patch" "35496444b380" "1wa79az7121xw078cgpczxavrqy0fsp4ib2nb69giha6acxcaqas") - (mozilla-patch "icecat-CVE-2017-5430-pt11.patch" "64495dfa29db" "0m7vklnwnaf7sw97m87bm4lb9pjmlh1vvrbaf1931db8nhd6m737") - (mozilla-patch "icecat-bug-1350783.patch" "26cd34db3c14" "15vq3lrilg3n9j80cdjmk7xib2iq5gcx9ypq8xs7f5ya9ibasqlx") - (mozilla-patch "icecat-CVE-2017-5429-pt09.patch" "6cd77a0d7ac0" "0kxlbl5m3gffxqrv7ky3swsbyg1ykj0wjhlfl9amsb4g8gra3zkj") - (mozilla-patch "icecat-CVE-2017-5460-pt1.patch" "a803be74843c" "1ywwakzjkfr714i9pfn152n86c6rp427chzdys8phdkcvp5d5p45") - (mozilla-patch "icecat-CVE-2017-5460-pt2.patch" "73762c1392ae" "18jy9ccqvn6l6hznvq5xsqm1pc7i81svc2grgv21wfwg9sd6zwwh") - (mozilla-patch "icecat-bug-1337392-pt1.patch" "4ab6d5c43036" "07pygzngssra9wnmqqrs24d6gc5kfh20fkzvpcasxh4f2hi21z9b") - (mozilla-patch "icecat-bug-1337392-pt2.patch" "13f2d85da9a7" "1iwfz7dp5i93bhjspy4kyz0vqrl8x8ndg5kxdyzwb1b339xim9qy") - (mozilla-patch "icecat-CVE-2017-5429-pt10.patch" "7a30cddfcd54" "1773pijh6gi086l930cn1a0k7kvy7f3cnirfblw98sq7h9qfyy33") - (mozilla-patch "icecat-bug-1345873-pt1.patch" "75cea353ad78" "14cig2y7d3p033hx3096gxzlqwgddq8d0ig0g3l8p1b0xwvvyryl") - (mozilla-patch "icecat-bug-1345873-pt2.patch" "b08ef5a82f89" "0afz01jv850x09df85d7ycqkcdlafi4w2xi5k155lk2b92w8lhpj") - (mozilla-patch "icecat-bug-1340163.patch" "f3f2a995a239" "1ydsj4ja475jscalkw6ggdxgbsp5l2mam5109k0y7c98abzqraxk") - (mozilla-patch "icecat-bug-1348174-pt1.patch" "330904d6f0dc" "19wnp4d8481w86xkk78n7c7wrr99rq6cq3v09hd8am4n0mzwzaja") - (mozilla-patch "icecat-bug-1348174-pt2.patch" "c61b99483c4b" "0mjsahi8ly24415ri2sylas6g0kb8wawi095idqiq019c3r7q9cq") - (mozilla-patch "icecat-bug-1348601.patch" "1848bd238064" "1f5kadhn6w1rs26sdrcc3mq0zzlmmsm6ymqhshkzn57nrj6akm7b") - (mozilla-patch "icecat-bug-1345991.patch" "2008a4b89d9a" "07fkg9r2rxbk362ckv2h8inhd2dadvzigshm6zsjfjs2fyzp95hp") - (mozilla-patch "icecat-bug-1344498-pt1.patch" "9acd0103d67f" "1f0j667g05h9ydmc924cs8mzif1n7s56wixsgnyqc3s231dswhml") - (mozilla-patch "icecat-bug-1344498-pt2.patch" "49aadb25b1ec" "0s618m802b1x5pyqh5mj1azaxch7ggxq9503b7mwhg90vz8qw7ki") - (mozilla-patch "icecat-bug-1344205.patch" "34b453085dc0" "02h1bh24f9i5sm3my07m2q58cpzqfhagwwv11l9fidxcm9dmzmrd") - (mozilla-patch "icecat-bug-1349862.patch" "864ff0c36b6b" "1i3wmigv982x9hzkfg25jhyvkynmar69x6cj6r4g9zkk5f5ypdh5") - (mozilla-patch "icecat-CVE-2017-5459.patch" "5ec6fbedb420" "07flhha4rkjbry5590yr5by36ypb1k33qm3rzkbmw0vk5gyak8dp") - (mozilla-patch "icecat-CVE-2017-5465.patch" "2b95de78a92c" "0vvq1fz84yyw7za929x6ki25paivlwd4ng1ddkcb2bw6da6yp12k") - (mozilla-patch "icecat-CVE-2017-5466.patch" "a5ec5e70abf1" "1jjviyk6db8iccd7997mwmgs188fsyrzivap3ffjf8m6j4mf9cra") - (mozilla-patch "icecat-bug-1347646.patch" "1b50711a46ce" "1i3505zzgf0mvg2405y2gzq36xc8ic2ga8w6d3n9kqryxj0mc7bh"))) + (mozilla-patch "icecat-bug-1342366.patch" "fb43f6690a26" "1vnkjpq2bcqwzmjkgyqv8wj0ndrrsyix3qy1rsb5is6pjmi9sbaa") + (mozilla-patch "icecat-bug-1343818.patch" "90f870bbec29" "0mbki955f71n4yr9p0yc7kh5jwq7vs4bs4rhaazdncirbr564hm6") + (mozilla-patch "icecat-bug-1348454.patch" "c1cd8a02669f" "1wf0107763rw45kxkak7478vlax06ay7076cbm7ysxl7vijbr52w") + (mozilla-patch "icecat-bug-1297111.patch" "2553531f83b9" "0ibf59pa8czdyhc25sas6zhh2gf1k8vr8fklis2b1ms3n1qnzrha") + (mozilla-patch "icecat-bug-1355873.patch" "9ee455ddcd68" "0d38hi4556635g9ag805vfyffdgfsp4a8v3d9ldffdp99ypv2ixj") + (mozilla-patch "icecat-bug-1348424-pt1.patch" "6472c7006a73" "1fgydas23fzj49n4g43133bgjn98b2h38bii4knl7z7pm3fs2wws") + (mozilla-patch "icecat-bug-1348424-pt2.patch" "0d5a26b29816" "03mkghl9i83jk1axr8bvw8la6shbggkabf23if8a9vi5jdv8182x") + (mozilla-patch "icecat-bug-1357092.patch" "e78c943af07f" "0r830k6hja8z9rjk2nqjg8zfzr0wjcnic8rddh7jmc1inr1w3crm") + (mozilla-patch "icecat-bug-1352093.patch" "d7c06f2d0d13" "1ahyns5v37w91bilvb3pa8kkdzkkn3fcxmi49jr5bycjlawljrm4") + (mozilla-patch "icecat-bug-1349595.patch" "9071c7d4cc9c" "12128sf8s3zwv2w16kfl5jry9d6ky7hvps2006184rg23p32aj6n") + (mozilla-patch "icecat-bug-1336979.patch" "8bbc7b586d68" "0c13imyp1nq18in3yb1zcyi41b69svh4fn8msyj0c2lhbf8qnqcw") + (mozilla-patch "icecat-bug-1352556.patch" "6d80ca63ff8b" "0s893fn6v0p323lcnl4cbkg1zd7gs1p0bw76ki6cmiapkn63gs13") + (mozilla-patch "icecat-bug-1359547.patch" "43d7b98d8743" "1dhgy1jkvn3c4k27hbv8p16w7l09b8hd4w9zzpk8dpn4h78ncs3h") + (mozilla-patch "icecat-CVE-2017-5031.patch" "bd4fcdee9a06" "0xz1r342023a0bsllhjbzn6v75lpqznwacqyikb7q8i4hxkxh78a") + (mozilla-patch "icecat-bug-1346499.patch" "747fd6c81983" "00iscyn4wr69205ppiaghlnd32845f5lcsl303v0fcdd4d1v04vc") + (mozilla-patch "icecat-bug-1334443-pt1.patch" "16201e8478df" "1k91xaai25vn1svkaldnsd2s8br3fgvnk5l54k3n3lk3m5vj55hv") + (mozilla-patch "icecat-bug-1334443-pt2.patch" "f100e5cf3bcb" "1cgbbbnkrd3ydfw99rhnpqdp5zq65537mg8sa1s9ajxkjjd1dkwj") + (mozilla-patch "icecat-bug-1354810.patch" "e579ef6e8d11" "0cmrh8dl85lzjxpbni08xbs8qq15sljnpg70a7rsl0jdbgih3mdx") + (mozilla-patch "icecat-bug-1356755.patch" "4a3fce67b52d" "126i9nwxsb3sjwb7dvhafacq86glnhx7r7jjv0h9v21s1w0kx4wj") + (mozilla-patch "icecat-bug-1273265.patch" "7902fea300b8" "1jkrl8hdycsi17dd1m1vvl6gm1skhpf10q2m29zwfr8l40fd6a3q") + (mozilla-patch "icecat-bug-1353204.patch" "b5a21502aeff" "13rbrhvr37w95av9d4hkgi913nq0j6k2iijydylvprcn18cwibp0") + (mozilla-patch "icecat-bug-1028195.patch" "69a5ca2bf867" "0q8cgi6837ikpg7gsvywmzhq0i102845apcbrd6mw0205qqsnw5c") + (mozilla-patch "icecat-bug-1347835.patch" "bc635f45af37" "1fny422l6yc80901x6swybr8nk0in1wxfgy97ky4bdkcqlnmzpqv") + (mozilla-patch "icecat-bug-1241066.patch" "b922ca70cce5" "09hcf9rm7ng3vj5y267w0c9h6pqinnz8gjlkwx1337xh43mdvqjv") + (mozilla-patch "icecat-bug-1346012.patch" "1ce6d0652921" "163ji64a86h682frh1jq016w1mjf8g24r8cni0irsdmiihis7zxc") + (mozilla-patch "icecat-bug-1324140.patch" "8886f9cd5dd3" "0byabs9md8r3pc4r67sv2759427n1za0gfayln40nx47n2p52kmg") + (mozilla-patch "icecat-bug-1342552.patch" "ad995e90916b" "02nq9sg675p26z99nr2pykbz51hi2phf0gmrb1bjpq9pjbll7gsa") + (mozilla-patch "icecat-bug-1355039.patch" "4ae71415fecf" "0yfkkdkkimad9a3w734xx85lb7hrl870c8k8an7w78fq3vl3fjnd"))) (modules '((guix build utils))) (snippet '(begin @@ -519,7 +483,6 @@ standards.") ;; ;; TODO: Use system graphite2. ;; - "dom/devicestorage" ; Removed in ESR 52.1, awkward to patch out "modules/freetype2" "modules/zlib" "modules/libbz2" diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 90a809eb27..13c5529f9d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -63,7 +63,8 @@ (arguments `(#:modules ((ice-9 match) (guix build gnu-build-system) - (guix build utils)) + (guix build utils) + (srfi srfi-1)) #:tests? #f ; Tests are run by the all.bash script. #:phases (modify-phases %standard-phases diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index c284a8d2b3..5c3b3c5f3b 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.10.4") + (version "1.12.0") (source (origin (method url-fetch) @@ -107,7 +107,7 @@ arrays of data.") version ".tar.xz")) (sha256 (base32 - "062jidnw17hkpva6ddygp80gyasyigfkpm1y7w56rk56a2pzbhjh")))) + "00j3zwm22582fwyzh316mnh6ghicv4ya93yk52kz4avx57wfxm8l")))) (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.10.4") + (version "1.12.0") (source (origin (method url-fetch) @@ -154,7 +154,7 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "1dsyjf6rncsbg4rfj40cvf1wwpjj9h3j3c7bh4zp7jylnfv4blpn")))) + "0k9nckvzk2hhhg7w4gzmd7is0lbswdmrkwmcgblvdf2lgy3wcprl")))) (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.10.4") + (version "1.12.0") (source (origin (method url-fetch) @@ -210,7 +210,7 @@ for the GStreamer multimedia library.") name "-" version ".tar.xz")) (sha256 (base32 - "0zjdwxn83sp9wjp9rxjbyk8kf284g9av7l2v6rjldi586hacd1la")))) + "1g1f6xyj0f06nmsl01xhr32x2rwyb857yjkrig1013iknx6p67ca")))) (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.10.4") + (version "1.12.0") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0rk9rlzf2b0hjw5hwbadz53yh4ls7vm3w3cshsa3n8isdd8axp93")))) + "0d45zgdnflwpwvlb1fmgj35yfds9m1g46mhppvlsh5dky7zkrdqi")))) (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.10.4") + (version "1.12.0") (source (origin (method url-fetch) @@ -351,7 +351,7 @@ par compared to the rest.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0ngsiwcsz3jd08id4mc0qiy2q1n7h2kkvdnh3r1vm725m1ycg1k3")))) + "1mhasi20kvi9p72kh4qyfzync509wqqkk8fp2xxyhgp88r8bls2y")))) (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.10.4") + (version "1.12.0") (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 - "12r68ri03mgbbwsxyn6yklgfsq32rwvyq83zw0aq7m73fp5gx83c")))) + "1i2h0ymh9jy0rnkcan2rdsdfq7l02rmp33g712q81s9fcizlgl9r")))) (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.10.4") + (version "1.12.0") (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 - "04l2hvvz9b0f3nyds1k3yfk5di8a91fpr6maj19c11mwp1s82l2r")))) + "01wwbn6z3771ad55ljl9gs6irrs9a8p186zrgrkmzs91kxmxwcxy")))) (build-system gnu-build-system) (arguments ;; XXX: Factorize python-sitedir with python-build-system. diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 32d67794e8..5b85a61c12 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -32,6 +32,7 @@ (define-module (gnu packages guile) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) + #:use-module (gnu packages admin) ;;for tree #:use-module (gnu packages aspell) #:use-module (gnu packages bash) #:use-module (gnu packages bdw-gc) @@ -690,7 +691,7 @@ for Guile\".") (("moddir =.*/share/guile/site" all) (string-append all "/@GUILE_EFFECTIVE_VERSION@"))))))) (build-system gnu-build-system) - (native-inputs `(("guile" ,guile-2.0))) + (native-inputs `(("guile" ,guile-2.2))) (home-page "http://savannah.nongnu.org/projects/guile-json/") (synopsis "JSON module for Guile") (description @@ -706,7 +707,10 @@ specification. These are the main features: (license license:lgpl3+))) (define-public guile2.2-json - (package-for-guile-2.2 guile-json)) + (deprecated-package "guile2.2-json" guile-json)) + +(define-public guile2.0-json + (package-for-guile-2.0 guile-json)) (define-public guile-minikanren (package @@ -794,6 +798,74 @@ See http://minikanren.org/ for more on miniKanren generally.") (define-public guile2.2-minikanren (package-for-guile-2.2 guile-minikanren)) +(define-public guile-miniadapton + (let ((commit "1b5749422304567c96ac5367f2221dda9eff5880") + (revision "1")) + (package + (name "guile-miniadapton") + (version (string-append "0-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fisherdj/miniAdapton.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build utils) + (ice-9 popen) + (ice-9 rdelim) + (srfi srfi-1) + (guix build gnu-build-system)) + #:tests? #f ; there is no test target + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((cwd (getcwd)) + (scm-files (find-files "." "\\.scm$")) + (effective (read-line + (open-pipe* OPEN_READ + "guile" "-c" + "(display (effective-version))"))) + (module-dir (string-append (assoc-ref outputs "out") + "/share/guile/site/" + effective))) + + ;; Make installation directories. + (mkdir-p module-dir) + + (setenv "GUILE_AUTO_COMPILE" "0") + + ;; Compile .scm files and install. + (every (lambda (file) + (let ((go-file (string-append module-dir "/" + (basename file ".scm") ".go"))) + ;; Install source module. + (install-file file module-dir) + ;; Compile and install module. + (zero? (system* "guild" "compile" "-L" cwd + "-o" go-file file)))) + scm-files))))))) + (inputs + `(("guile" ,guile-2.2))) + (home-page "https://github.com/fisherdj/miniAdapton") + (synopsis "Minimal implementation of incremental computation in Guile +Scheme") + (description "This package provides a complete Scheme implementation of +miniAdapton, which implements the core functionality of the Adapton system for +incremental computation (also known as self-adjusting computation). Like +Adapton, miniAdapton allows programmers to safely combine mutation and +memoization. miniAdapton is built on top of an even simpler system, +microAdapton. Both miniAdapton and microAdapton are designed to be easy to +understand, extend, and port to host languages other than Scheme.") + (license license:expat)))) + (define-public guile-irregex (package (name "guile-irregex") @@ -965,7 +1037,7 @@ Guile's foreign function interface.") (let ((commit "607721fe1174a299e45d457acacf94eefb964071")) (package (name "guile-sqlite3") - (version (string-append "0.0-0." (string-take commit 7))) + (version (string-append "0.0-1." (string-take commit 7))) ;; XXX: This used to be available read-only at ;; <https://www.gitorious.org/guile-sqlite3/guile-sqlite3.git/> but it @@ -993,7 +1065,7 @@ Guile's foreign function interface.") ("automake" ,automake) ("pkg-config" ,pkg-config))) (inputs - `(("guile" ,guile-2.0) + `(("guile" ,guile-2.2) ("sqlite" ,sqlite))) (arguments '(#:phases (modify-phases %standard-phases @@ -1471,6 +1543,8 @@ is no support for parsing block and inline level HTML.") effective)) (source (assoc-ref %build-inputs "source")) (doc (string-append out "/share/doc/scheme-bytestructures")) + (sld-files (with-directory-excursion source + (find-files "bytestructures/r7" "\\.exports.sld$"))) (scm-files (filter (lambda (path) (not (string-prefix? "bytestructures/r7" path))) (with-directory-excursion source @@ -1502,7 +1576,7 @@ is no support for parsing block and inline level HTML.") file)) (error (format #f "Failed to compile ~s to ~s!" file go-file))))) - scm-files) + (append sld-files scm-files)) ;; Also copy over the README. (install-file "README.md" doc) @@ -1767,14 +1841,14 @@ HTML (via SXML) or any other format for rendering.") (define-public guile-sjson (package (name "guile-sjson") - (version "0.2") + (version "0.2.1") (source (origin (method url-fetch) (uri (string-append "https://dustycloud.org/misc/sjson-" version ".tar.gz")) (sha256 (base32 - "09hnh2brc7ihh8dv4g5hdmdj8rs8p9l3pmlgafkx145grdg7wprx")))) + "1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 2027395ca6..de8043d236 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -13,8 +13,9 @@ ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org> ;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net> +;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -155,6 +156,41 @@ APNG patch provides APNG support to libpng.") (sha256 (base32 "1n2lrzjkm5jhfg2bs10q398lkwbbx742fi27zgdgx0x23zhj0ihg")))))) +(define-public pngcrunch + (package + (name "pngcrunch") + (version "1.8.11") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/pmt/pngcrush/" + version "/pngcrush-" version ".tar.xz")) + (sha256 (base32 + "1c7m316i91jp3h1dj1ppppdv6zilm2njk1wrpqy2zj0fcll06lwd")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags '("-f" "Makefile-nolib") + #:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "Makefile-nolib" + (("^(PNG(INC|LIB) = )/usr/local/" line vardef) + (string-append vardef (assoc-ref inputs "libpng") "/")) + (("^(Z(INC|LIB) = )/usr/local/" line vardef) + (string-append vardef (assoc-ref inputs "zlib") "/")) + ;; The Makefile is written by hand and not using $PREFIX + (("\\$\\(DESTDIR\\)/usr/") + (string-append (assoc-ref outputs "out") "/")))))))) + (inputs + `(("libpng" ,libpng) + ("zlib" , zlib))) + (home-page "https://pmt.sourceforge.net/pngcrush") + (synopsis "Utility to compress PNG files") + (description "pngcrusqh is an optimizer for PNG (Portable Network Graphics) +files. It can compress them as much as 40% losslessly.") + (license license:zlib))) + (define-public libjpeg (package (name "libjpeg") @@ -299,6 +335,7 @@ extracting icontainer icon files.") (define-public libtiff (package (name "libtiff") + (replacement libtiff/fixed) (version "4.0.7") (source (origin (method url-fetch) @@ -347,6 +384,19 @@ collection of tools for doing simple manipulations of TIFF images.") "See COPYRIGHT in the distribution.")) (home-page "http://www.simplesystems.org/libtiff/"))) +(define libtiff/fixed + (package + (inherit libtiff) + (source + (origin + (inherit (package-source libtiff)) + (patches + (append + (origin-patches (package-source libtiff)) + (search-patches "libtiff-CVE-2017-7593.patch" + "libtiff-CVE-2017-7594.patch" + "libtiff-multiple-UBSAN-crashes.patch"))))))) + (define-public libwmf (package (name "libwmf") diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 6423f91f46..48902bbfd0 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -46,14 +46,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.8-3") + (version "6.9.8-4") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "05hk841f5fw1hh7pfmpznlwcdr68ijk3s3zwqv0g009xh17q1max")))) + "04fb0x8zc9z11127wsnxlzg0jcgs4xwlx8fxy4jac2y3mmmlzhm6")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 4c8c7809be..30e14a0914 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -142,14 +142,14 @@ SILC and ICB protocols via plugins.") (define-public weechat (package (name "weechat") - (version "1.7.1") + (version "1.8") (source (origin (method url-fetch) (uri (string-append "https://weechat.org/files/src/weechat-" version ".tar.xz")) (sha256 (base32 - "0c0waxrxq2v0r7981y1ajh9k78jfl223smwrj4v9c5z27iwh8ziz")) + "05z0qmlmdm0zgkzhi6cy6snxdz37h1n5z2s460df76akjr7capxn")) (patches (search-patches "weechat-python.patch")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -300,14 +300,14 @@ using a mouse. It is customizable and extensible with plugins and scripts.") (define-public limnoria (package (name "limnoria") - (version "2017.01.10") + (version "2017.03.30") (source (origin (method url-fetch) (uri (pypi-uri "limnoria" version)) (sha256 (base32 - "0va7iiwkrd5miibpaphfm2jlfsmaazbqb8izkmlnlzkqnskhz1ff")))) + "1q0y6iglg1cbhimgjz3afws51as3shy6rd61dck7jfm25y8pi6g8")))) (build-system python-build-system) (inputs `(("python-pytz" ,python-pytz) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 1d18a0b066..13e261438d 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au> +;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix hg-download) #:use-module (guix utils) #:use-module (guix build-system ant) #:use-module (guix build-system gnu) @@ -287,14 +289,16 @@ designs.") (define-public ant (package (name "ant") - (version "1.9.6") + ;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x + ;; series requires Java 8. + (version "1.9.9") (source (origin (method url-fetch) (uri (string-append "mirror://apache/ant/source/apache-ant-" version "-src.tar.gz")) (sha256 (base32 - "1396wflczyxjxl603dhxjvd559f289lha9y2f04f71c7hapjl3am")))) + "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target @@ -1080,7 +1084,11 @@ an Ant task that extends the built-in @code{jar} task.") (build-system ant-build-system) (arguments `(#:tests? #f ; Tests require junit + #:modules ((guix build ant-build-system) + (guix build utils) + (srfi srfi-1)) #:make-flags (list (string-append "-Dversion=" ,version)) + #:test-target "unit-test" #:build-target "core" #:phases (modify-phases %standard-phases @@ -1131,10 +1139,23 @@ private Method[] allMethods = getSortedMethods();"))))) #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (install-file (string-append "build/hamcrest-core-" - ,version ".jar") - (string-append (assoc-ref outputs "out") - "/share/java"))))))) + (let* ((target (string-append (assoc-ref outputs "out") + "/share/java/")) + (version-suffix ,(string-append "-" version ".jar")) + (install-without-version-suffix + (lambda (jar) + (copy-file jar + (string-append target + (basename jar version-suffix) + ".jar"))))) + (mkdir-p target) + (for-each + install-without-version-suffix + (find-files "build" + (lambda (name _) + (and (string-suffix? ".jar" name) + (not (string-suffix? "-sources.jar" name))))))) + #t))))) (native-inputs `(("java-qdox-1.12" ,java-qdox-1.12) ("java-jarjar" ,java-jarjar))) @@ -1178,3 +1199,1341 @@ testing frameworks, mocking libraries and UI validation rules.") JUnit provides assertions for testing expected results, test fixtures for sharing common test data, and test runners for running tests.") (license license:epl1.0))) + +(define-public java-plexus-utils + (package + (name "java-plexus-utils") + (version "3.0.24") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/codehaus-plexus/" + "plexus-utils/archive/plexus-utils-" + version ".tar.gz")) + (sha256 + (base32 + "1mlwpc6fms24slygv5yvi6fi9hcha2fh0v73p5znpi78bg36i2js")))) + (build-system ant-build-system) + ;; FIXME: The default build.xml does not include a target to install + ;; javadoc files. + (arguments + `(#:jar-name "plexus-utils.jar" + #:source-dir "src/main" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-reference-to-/bin-and-/usr + (lambda _ + (substitute* "src/main/java/org/codehaus/plexus/util/\ +cli/shell/BourneShell.java" + (("/bin/sh") (which "sh")) + (("/usr/") (getcwd))) + #t)) + (add-after 'unpack 'fix-or-disable-broken-tests + (lambda _ + (with-directory-excursion "src/test/java/org/codehaus/plexus/util" + (substitute* '("cli/CommandlineTest.java" + "cli/shell/BourneShellTest.java") + (("/bin/sh") (which "sh")) + (("/bin/echo") (which "echo"))) + + ;; This test depends on MavenProjectStub, but we don't have + ;; a package for Maven. + (delete-file "introspection/ReflectionValueExtractorTest.java") + + ;; FIXME: The command line tests fail, maybe because they use + ;; absolute paths. + (delete-file "cli/CommandlineTest.java")) + #t))))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://codehaus-plexus.github.io/plexus-utils/") + (synopsis "Common utilities for the Plexus framework") + (description "This package provides various Java utility classes for the +Plexus framework to ease working with strings, files, command lines, XML and +more.") + (license license:asl2.0))) + +(define-public java-plexus-interpolation + (package + (name "java-plexus-interpolation") + (version "1.23") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/codehaus-plexus/" + "plexus-interpolation/archive/" + "plexus-interpolation-" version ".tar.gz")) + (sha256 + (base32 + "1w79ljwk42ymrgy8kqxq4l82pgdj6287gabpfnpkyzbrnclsnfrp")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "plexus-interpolation.jar" + #:source-dir "src/main")) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://codehaus-plexus.github.io/plexus-interpolation/") + (synopsis "Java components for interpolating ${} strings and the like") + (description "Plexus interpolator is a modular, flexible interpolation +framework for the expression language style commonly seen in Maven, Plexus, +and other related projects. + +It has its foundation in the @code{org.codehaus.plexus.utils.interpolation} +package within @code{plexus-utils}, but has been separated in order to allow +these two libraries to vary independently of one another.") + (license license:asl2.0))) + +(define-public java-asm + (package + (name "java-asm") + (version "5.2") + (source (origin + (method url-fetch) + (uri (string-append "http://download.forge.ow2.org/asm/" + "asm-" version ".tar.gz")) + (sha256 + (base32 + "0kxvmv5275rnjl7jv0442k3wjnq03ngkb7sghs78avf45pzm4qgr")))) + (build-system ant-build-system) + (arguments + `(#:build-target "compile" + ;; The tests require an old version of Janino, which no longer compiles + ;; with the JDK7. + #:tests? #f + ;; We don't need these extra ant tasks, but the build system asks us to + ;; provide a path anyway. + #:make-flags (list (string-append "-Dobjectweb.ant.tasks.path=foo")) + #:phases + (modify-phases %standard-phases + (add-before 'install 'build-jars + (lambda* (#:key make-flags #:allow-other-keys) + ;; We cannot use the "jar" target because it depends on a couple + ;; of unpackaged, complicated tools. + (mkdir "dist") + (zero? (system* "jar" + "-cf" (string-append "dist/asm-" ,version ".jar") + "-C" "output/build/tmp" ".")))) + (replace 'install + (install-jars "dist"))))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://asm.ow2.org/") + (synopsis "Very small and fast Java bytecode manipulation framework") + (description "ASM is an all purpose Java bytecode manipulation and +analysis framework. It can be used to modify existing classes or dynamically +generate classes, directly in binary form. The provided common +transformations and analysis algorithms allow to easily assemble custom +complex transformations and code analysis tools.") + (license license:bsd-3))) + +(define-public java-cglib + (package + (name "java-cglib") + (version "3.2.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/cglib/cglib/archive/RELEASE_" + (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version) + ".tar.gz")) + (file-name (string-append "cglib-" version ".tar.gz")) + (sha256 + (base32 + "162dvd4fln76ai8prfharf66pn6r56p3sxx683j5vdyccrd5hi1q")))) + (build-system ant-build-system) + (arguments + `(;; FIXME: tests fail because junit runs + ;; "net.sf.cglib.transform.AbstractTransformTest", which does not seem + ;; to describe a test at all. + #:tests? #f + #:jar-name "cglib.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "cglib") #t))))) + (inputs + `(("java-asm" ,java-asm) + ("java-junit" ,java-junit))) + (home-page "https://github.com/cglib/cglib/") + (synopsis "Java byte code generation library") + (description "The byte code generation library CGLIB is a high level API +to generate and transform Java byte code.") + (license license:asl2.0))) + +(define-public java-objenesis + (package + (name "java-objenesis") + (version "2.5.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/easymock/objenesis/" + "archive/" version ".tar.gz")) + (file-name (string-append "objenesis-" version ".tar.gz")) + (sha256 + (base32 + "1va5qz1i2wawwavhnxfzxnfgrcaflz9p1pg03irrjh4nd3rz8wh6")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "objenesis.jar" + #:source-dir "main/src/" + #:test-dir "main/src/test/")) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://objenesis.org/") + (synopsis "Bypass the constructor when creating an object") + (description "Objenesis is a small Java library that serves one purpose: +to instantiate a new object of a particular class. It is common to see +restrictions in libraries stating that classes must require a default +constructor. Objenesis aims to overcome these restrictions by bypassing the +constructor on object instantiation.") + (license license:asl2.0))) + +(define-public java-easymock + (package + (name "java-easymock") + (version "3.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/easymock/easymock/" + "archive/easymock-" version ".tar.gz")) + (sha256 + (base32 + "1yzg0kv256ndr57gpav46cyv4a1ns5sj722l50zpxk3j6sk9hnmi")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "easymock.jar" + #:source-dir "core/src/main" + #:test-dir "core/src/test" + #:phases + (modify-phases %standard-phases + ;; FIXME: Android support requires the following packages to be + ;; available: com.google.dexmaker.stock.ProxyBuilder + (add-after 'unpack 'delete-android-support + (lambda _ + (with-directory-excursion "core/src/main/java/org/easymock/internal" + (substitute* "MocksControl.java" + (("AndroidSupport.isAndroid\\(\\)") "false") + (("return classProxyFactory = new AndroidClassProxyFactory\\(\\);") "")) + (delete-file "AndroidClassProxyFactory.java")) + #t)) + (add-after 'unpack 'delete-broken-tests + (lambda _ + (with-directory-excursion "core/src/test/java/org/easymock" + ;; This test depends on dexmaker. + (delete-file "tests2/ClassExtensionHelperTest.java") + + ;; This is not a test. + (delete-file "tests/BaseEasyMockRunnerTest.java") + + ;; This test should be executed with a different runner... + (delete-file "tests2/EasyMockAnnotationsTest.java") + ;; ...but deleting it means that we also have to delete these + ;; dependent files. + (delete-file "tests2/EasyMockRunnerTest.java") + (delete-file "tests2/EasyMockRuleTest.java") + + ;; This test fails because the file "easymock.properties" does + ;; not exist. + (delete-file "tests2/EasyMockPropertiesTest.java")) + #t))))) + (inputs + `(("java-asm" ,java-asm) + ("java-cglib" ,java-cglib) + ("java-objenesis" ,java-objenesis))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://easymock.org") + (synopsis "Java library providing mock objects for unit tests") + (description "EasyMock is a Java library that provides an easy way to use +mock objects in unit testing.") + (license license:asl2.0))) + +(define-public java-jmock-1 + (package + (name "java-jmock") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/jmock-developers/" + "jmock-library/archive/" version ".tar.gz")) + (file-name (string-append "jmock-" version ".tar.gz")) + (sha256 + (base32 + "0xmrlhq0fszldkbv281k9463mv496143vvmqwpxp62yzjvdkx9w0")))) + (build-system ant-build-system) + (arguments + `(#:build-target "jars" + #:test-target "run.tests" + #:phases + (modify-phases %standard-phases + (replace 'install (install-jars "build"))))) + (home-page "http://www.jmock.org") + (synopsis "Mock object library for test-driven development") + (description "JMock is a library that supports test-driven development of +Java code with mock objects. Mock objects help you design and test the +interactions between the objects in your programs. + +The jMock library + +@itemize +@item makes it quick and easy to define mock objects +@item lets you precisely specify the interactions between + your objects, reducing the brittleness of your tests +@item plugs into your favourite test framework +@item is easy to extend. +@end itemize\n") + (license license:bsd-3))) + +(define-public java-hamcrest-all + (package (inherit java-hamcrest-core) + (name "java-hamcrest-all") + (arguments + (substitute-keyword-arguments (package-arguments java-hamcrest-core) + ;; FIXME: a unit test fails because org.hamcrest.SelfDescribing is not + ;; found, although it is part of the hamcrest-core library that has + ;; just been built. + ;; + ;; Fixing this one test is insufficient, though, and upstream confirmed + ;; that the latest hamcrest release fails its unit tests when built + ;; with Java 7. See https://github.com/hamcrest/JavaHamcrest/issues/30 + ((#:tests? _) #f) + ((#:build-target _) "bigjar") + ((#:phases phases) + `(modify-phases ,phases + ;; Some build targets override the classpath, so we need to patch + ;; the build.xml to ensure that required dependencies are on the + ;; classpath. + (add-after 'unpack 'patch-classpath-for-integration + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "build.xml" + ((" build/hamcrest-library-\\$\\{version\\}.jar" line) + (string-join + (cons line + (append + (find-files (assoc-ref inputs "java-hamcrest-core") "\\.jar$") + (find-files (assoc-ref inputs "java-junit") "\\.jar$") + (find-files (assoc-ref inputs "java-jmock") "\\.jar$") + (find-files (assoc-ref inputs "java-easymock") "\\.jar$"))) + ";"))) + #t)))))) + (inputs + `(("java-junit" ,java-junit) + ("java-jmock" ,java-jmock-1) + ("java-easymock" ,java-easymock) + ("java-hamcrest-core" ,java-hamcrest-core) + ,@(package-inputs java-hamcrest-core))))) + +(define-public java-jopt-simple + (package + (name "java-jopt-simple") + (version "5.0.3") + (source (origin + (method url-fetch) + (uri (string-append "http://repo1.maven.org/maven2/" + "net/sf/jopt-simple/jopt-simple/" + version "/jopt-simple-" + version "-sources.jar")) + (sha256 + (base32 + "1v8bzmwmw6qq20gm42xyay6vrd567dra4vqwhgjnqqjz1gs9f8qa")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; there are no tests + #:jar-name "jopt-simple.jar")) + (home-page "https://pholser.github.io/jopt-simple/") + (synopsis "Java library for parsing command line options") + (description "JOpt Simple is a Java library for parsing command line +options, such as those you might pass to an invocation of @code{javac}. In +the interest of striving for simplicity, as closely as possible JOpt Simple +attempts to honor the command line option syntaxes of POSIX @code{getopt} and +GNU @code{getopt_long}. It also aims to make option parser configuration and +retrieval of options and their arguments simple and expressive, without being +overly clever.") + (license license:expat))) + +(define-public java-commons-math3 + (package + (name "java-commons-math3") + (version "3.6.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/math/source/" + "commons-math3-" version "-src.tar.gz")) + (sha256 + (base32 + "19l6yp44qc5g7wg816nbn5z3zq3xxzwimvbm4a8pczgvpi4i85s6")))) + (build-system ant-build-system) + (arguments + `(#:build-target "jar" + #:test-target "test" + #:make-flags + (let ((hamcrest (assoc-ref %build-inputs "java-hamcrest-core")) + (junit (assoc-ref %build-inputs "java-junit"))) + (list (string-append "-Djunit.jar=" junit "/share/java/junit.jar") + (string-append "-Dhamcrest.jar=" hamcrest + "/share/java/hamcrest-core.jar"))) + #:phases + (modify-phases %standard-phases + ;; We want to build the jar in the build phase and run the tests + ;; later in a separate phase. + (add-after 'unpack 'untangle-targets + (lambda _ + (substitute* "build.xml" + (("name=\"jar\" depends=\"test\"") + "name=\"jar\" depends=\"compile\"")) + #t)) + ;; There is no install target. + (replace 'install + (install-jars "target"))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/math/") + (synopsis "Apache Commons mathematics library") + (description "Commons Math is a library of lightweight, self-contained +mathematics and statistics components addressing the most common problems not +available in the Java programming language or Commons Lang.") + (license license:asl2.0))) + +(define-public java-jmh + (package + (name "java-jmh") + (version "1.17.5") + (source (origin + (method hg-fetch) + (uri (hg-reference + (url "http://hg.openjdk.java.net/code-tools/jmh/") + (changeset version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1fxyxhg9famwcg1prc4cgwb5wzyxqavn3cjm5vz8605xz7x5k084")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "jmh-core.jar" + #:source-dir "jmh-core/src/main" + #:test-dir "jmh-core/src/test" + #:phases + (modify-phases %standard-phases + ;; This seems to be a bug in the JDK. It may not be necessary in + ;; future versions of the JDK. + (add-after 'unpack 'fix-bug + (lambda _ + (with-directory-excursion + "jmh-core/src/main/java/org/openjdk/jmh/runner/options" + (substitute* '("IntegerValueConverter.java" + "ThreadsValueConverter.java") + (("public Class<Integer> valueType") + "public Class<? extends Integer> valueType"))) + #t))))) + (inputs + `(("java-jopt-simple" ,java-jopt-simple) + ("java-commons-math3" ,java-commons-math3))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://openjdk.java.net/projects/code-tools/jmh/") + (synopsis "Benchmark harness for the JVM") + (description "JMH is a Java harness for building, running, and analysing +nano/micro/milli/macro benchmarks written in Java and other languages +targetting the JVM.") + ;; GPLv2 only + (license license:gpl2))) + +(define-public java-commons-collections4 + (package + (name "java-commons-collections4") + (version "4.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/collections/source/" + "commons-collections4-" version "-src.tar.gz")) + (sha256 + (base32 + "1krfhvggympq4avk7gh6qafzf6b9ip6r1m4lmacikyx04039m0wl")))) + (build-system ant-build-system) + (arguments + `(#:test-target "test" + #:make-flags + (let ((hamcrest (assoc-ref %build-inputs "java-hamcrest-core")) + (junit (assoc-ref %build-inputs "java-junit")) + (easymock (assoc-ref %build-inputs "java-easymock"))) + (list (string-append "-Djunit.jar=" junit "/share/java/junit.jar") + (string-append "-Dhamcrest.jar=" hamcrest + "/share/java/hamcrest-core.jar") + (string-append "-Deasymock.jar=" easymock + "/share/java/easymock.jar"))) + #:phases + (modify-phases %standard-phases + (replace 'install + (install-jars "target"))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-easymock" ,java-easymock))) + (home-page "http://commons.apache.org/collections/") + (synopsis "Collections framework") + (description "The Java Collections Framework is the recognised standard +for collection handling in Java. Commons-Collections seek to build upon the +JDK classes by providing new interfaces, implementations and utilities. There +are many features, including: + +@itemize +@item @code{Bag} interface for collections that have a number of copies of + each object +@item @code{BidiMap} interface for maps that can be looked up from value to + key as well and key to value +@item @code{MapIterator} interface to provide simple and quick iteration over + maps +@item Transforming decorators that alter each object as it is added to the + collection +@item Composite collections that make multiple collections look like one +@item Ordered maps and sets that retain the order elements are added in, + including an LRU based map +@item Reference map that allows keys and/or values to be garbage collected + under close control +@item Many comparator implementations +@item Many iterator implementations +@item Adapter classes from array and enumerations to collections +@item Utilities to test or create typical set-theory properties of collections + such as union, intersection, and closure. +@end itemize\n") + (license license:asl2.0))) + +(define-public java-commons-io + (package + (name "java-commons-io") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/io/source/" + "commons-io-" version "-src.tar.gz")) + (sha256 + (base32 + "0q5y41jrcjvx9hzs47x5kdhnasdy6rm4bzqd2jxl02w717m7a7v3")))) + (build-system ant-build-system) + (outputs '("out" "doc")) + (arguments + `(#:test-target "test" + #:make-flags + (list (string-append "-Djunit.jar=" + (assoc-ref %build-inputs "java-junit") + "/share/java/junit.jar")) + #:phases + (modify-phases %standard-phases + (add-after 'build 'build-javadoc ant-build-javadoc) + (replace 'install (install-jars "target")) + (add-after 'install 'install-doc (install-javadoc "target/apidocs"))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/io/") + (synopsis "Common useful IO related classes") + (description "Commons-IO contains utility classes, stream implementations, +file filters and endian classes.") + (license license:asl2.0))) + +(define-public java-commons-lang + (package + (name "java-commons-lang") + (version "2.6") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/lang/source/" + "commons-lang-" version "-src.tar.gz")) + (sha256 + (base32 "1mxwagqadzx1b2al7i0z1v0r235aj2njdyijf02szq0vhmqrfiq5")))) + (build-system ant-build-system) + (outputs '("out" "doc")) + (arguments + `(#:test-target "test" + #:phases + (modify-phases %standard-phases + (add-after 'build 'build-javadoc ant-build-javadoc) + (add-before 'check 'disable-failing-test + (lambda _ + ;; Disable a failing test + (substitute* "src/test/java/org/apache/commons/lang/\ +time/FastDateFormatTest.java" + (("public void testFormat\\(\\)") + "public void disabled_testFormat()")) + #t)) + (replace 'install (install-jars "target")) + (add-after 'install 'install-doc (install-javadoc "target/apidocs"))))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://commons.apache.org/lang/") + (synopsis "Extension of the java.lang package") + (description "The Commons Lang components contains a set of Java classes +that provide helper methods for standard Java classes, especially those found +in the @code{java.lang} package in the Sun JDK. The following classes are +included: + +@itemize +@item StringUtils - Helper for @code{java.lang.String}. +@item CharSetUtils - Methods for dealing with @code{CharSets}, which are sets + of characters such as @code{[a-z]} and @code{[abcdez]}. +@item RandomStringUtils - Helper for creating randomised strings. +@item NumberUtils - Helper for @code{java.lang.Number} and its subclasses. +@item NumberRange - A range of numbers with an upper and lower bound. +@item ObjectUtils - Helper for @code{java.lang.Object}. +@item SerializationUtils - Helper for serializing objects. +@item SystemUtils - Utility class defining the Java system properties. +@item NestedException package - A sub-package for the creation of nested + exceptions. +@item Enum package - A sub-package for the creation of enumerated types. +@item Builder package - A sub-package for the creation of @code{equals}, + @code{hashCode}, @code{compareTo} and @code{toString} methods. +@end itemize\n") + (license license:asl2.0))) + +(define-public java-commons-lang3 + (package + (name "java-commons-lang3") + (version "3.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/lang/source/" + "commons-lang3-" version "-src.tar.gz")) + (sha256 + (base32 "0xpshb9spjhplq5a7mr0y1bgfw8190ik4xj8f569xidfcki1d6kg")))) + (build-system ant-build-system) + (outputs '("out" "doc")) + (arguments + `(#:test-target "test" + #:make-flags + (let ((hamcrest (assoc-ref %build-inputs "java-hamcrest-all")) + (junit (assoc-ref %build-inputs "java-junit")) + (easymock (assoc-ref %build-inputs "java-easymock")) + (io (assoc-ref %build-inputs "java-commons-io"))) + (list (string-append "-Djunit.jar=" junit "/share/java/junit.jar") + (string-append "-Dhamcrest.jar=" hamcrest + "/share/java/hamcrest-all.jar") + (string-append "-Dcommons-io.jar=" io + "/share/java/commons-io-" + ,(package-version java-commons-io) + "-SNAPSHOT.jar") + (string-append "-Deasymock.jar=" easymock + "/share/java/easymock.jar"))) + #:phases + (modify-phases %standard-phases + (add-after 'build 'build-javadoc ant-build-javadoc) + (replace 'install (install-jars "target")) + (add-after 'install 'install-doc (install-javadoc "target/apidocs"))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-commons-io" ,java-commons-io) + ("java-hamcrest-all" ,java-hamcrest-all) + ("java-easymock" ,java-easymock))) + (home-page "http://commons.apache.org/lang/") + (synopsis "Extension of the java.lang package") + (description "The Commons Lang components contains a set of Java classes +that provide helper methods for standard Java classes, especially those found +in the @code{java.lang} package. The following classes are included: + +@itemize +@item StringUtils - Helper for @code{java.lang.String}. +@item CharSetUtils - Methods for dealing with @code{CharSets}, which are sets of + characters such as @code{[a-z]} and @code{[abcdez]}. +@item RandomStringUtils - Helper for creating randomised strings. +@item NumberUtils - Helper for @code{java.lang.Number} and its subclasses. +@item NumberRange - A range of numbers with an upper and lower bound. +@item ObjectUtils - Helper for @code{java.lang.Object}. +@item SerializationUtils - Helper for serializing objects. +@item SystemUtils - Utility class defining the Java system properties. +@item NestedException package - A sub-package for the creation of nested + exceptions. +@item Enum package - A sub-package for the creation of enumerated types. +@item Builder package - A sub-package for the creation of @code{equals}, + @code{hashCode}, @code{compareTo} and @code{toString} methods. +@end itemize\n") + (license license:asl2.0))) + +(define-public java-jsr305 + (package + (name "java-jsr305") + (version "3.0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "com/google/code/findbugs/" + "jsr305/" version "/jsr305-" + version "-sources.jar")) + (sha256 + (base32 + "1rh6jin9v7jqpq3kf1swl868l8i94r636n03pzpsmgr8v0lh9j2n")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "jsr305.jar")) + (home-page "http://findbugs.sourceforge.net/") + (synopsis "Annotations for the static analyzer called findbugs") + (description "This package provides annotations for the findbugs package. +It provides packages in the @code{javax.annotations} namespace.") + (license license:asl2.0))) + +(define-public java-guava + (package + (name "java-guava") + ;; This is the last release of Guava that can be built with Java 7. + (version "20.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/google/guava/" + "releases/download/v" version + "/guava-" version "-sources.jar")) + (sha256 + (base32 + "1gawrs5gi6j5hcfxdgpnfli75vb9pfi4sn09pnc8xacr669yajwr")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "guava.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'trim-sources + (lambda _ + (with-directory-excursion "src/com/google/common" + ;; Remove annotations to avoid extra dependencies: + ;; * "j2objc" annotations are used when converting Java to + ;; Objective C; + ;; * "errorprone" annotations catch common Java mistakes at + ;; compile time; + ;; * "IgnoreJRERequirement" is used for Android. + (substitute* (find-files "." "\\.java$") + (("import com.google.j2objc.*") "") + (("import com.google.errorprone.annotation.*") "") + (("import org.codehaus.mojo.animal_sniffer.*") "") + (("@CanIgnoreReturnValue") "") + (("@LazyInit") "") + (("@WeakOuter") "") + (("@RetainedWith") "") + (("@Weak") "") + (("@ForOverride") "") + (("@J2ObjCIncompatible") "") + (("@IgnoreJRERequirement") ""))) + #t))))) + (inputs + `(("java-jsr305" ,java-jsr305))) + (home-page "https://github.com/google/guava") + (synopsis "Google core libraries for Java") + (description "Guava is a set of core libraries that includes new +collection types (such as multimap and multiset), immutable collections, a +graph library, functional types, an in-memory cache, and APIs/utilities for +concurrency, I/O, hashing, primitives, reflection, string processing, and much +more!") + (license license:asl2.0))) + +;; The java-commons-logging package provides adapters to many different +;; logging frameworks. To avoid an excessive dependency graph we try to build +;; it with only a minimal set of adapters. +(define-public java-commons-logging-minimal + (package + (name "java-commons-logging-minimal") + (version "1.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/logging/source/" + "commons-logging-" version "-src.tar.gz")) + (sha256 + (base32 + "10bwcy5w8d7y39n0krlwhnp8ds3kj5zhmzj0zxnkw0qdlsjmsrj9")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; avoid dependency on logging frameworks + #:jar-name "commons-logging-minimal.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-adapters-and-tests + (lambda _ + ;; Delete all adapters except for NoOpLog, SimpleLog, and + ;; LogFactoryImpl. NoOpLog is required to build; LogFactoryImpl + ;; is used by applications; SimpleLog is the only actually usable + ;; implementation that does not depend on another logging + ;; framework. + (for-each + (lambda (file) + (delete-file (string-append + "src/main/java/org/apache/commons/logging/impl/" file))) + (list "Jdk13LumberjackLogger.java" + "WeakHashtable.java" + "Log4JLogger.java" + "ServletContextCleaner.java" + "Jdk14Logger.java" + "AvalonLogger.java" + "LogKitLogger.java")) + (delete-file-recursively "src/test") + #t))))) + (home-page "http://commons.apache.org/logging/") + (synopsis "Common API for logging implementations") + (description "The Logging package is a thin bridge between different +logging implementations. A library that uses the commons-logging API can be +used with any logging implementation at runtime.") + (license license:asl2.0))) + +(define-public java-commons-cli + (package + (name "java-commons-cli") + (version "1.3.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/cli/source/" + "commons-cli-" version "-src.tar.gz")) + (sha256 + (base32 + "1fkjn552i12vp3xxk21ws4p70fi0lyjm004vzxsdaz7gdpgyxxyl")))) + (build-system ant-build-system) + ;; TODO: javadoc + (arguments + `(#:jar-name "commons-cli.jar")) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/cli/") + (synopsis "Command line arguments and options parsing library") + (description "The Apache Commons CLI library provides an API for parsing +command line options passed to programs. It is also able to print help +messages detailing the options available for a command line tool. + +Commons CLI supports different types of options: + +@itemize +@item POSIX like options (ie. tar -zxvf foo.tar.gz) +@item GNU like long options (ie. du --human-readable --max-depth=1) +@item Java like properties (ie. java -Djava.awt.headless=true Foo) +@item Short options with value attached (ie. gcc -O2 foo.c) +@item long options with single hyphen (ie. ant -projecthelp) +@end itemize + +This is a part of the Apache Commons Project.") + (license license:asl2.0))) + +(define-public java-commons-codec + (package + (name "java-commons-codec") + (version "1.10") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/codec/source/" + "commons-codec-" version "-src.tar.gz")) + (sha256 + (base32 + "1w9qg30y4s0x8gnmr2fgj4lyplfn788jqxbcz27lf5kbr6n8xr65")))) + (build-system ant-build-system) + (outputs '("out" "doc")) + (arguments + `(#:test-target "test" + #:make-flags + (let ((hamcrest (assoc-ref %build-inputs "java-hamcrest-core")) + (junit (assoc-ref %build-inputs "java-junit"))) + (list (string-append "-Djunit.jar=" junit "/share/java/junit.jar") + (string-append "-Dhamcrest.jar=" hamcrest + "/share/java/hamcrest-core.jar") + ;; Do not append version to jar. + "-Dfinal.name=commons-codec")) + #:phases + (modify-phases %standard-phases + (add-after 'build 'build-javadoc ant-build-javadoc) + (replace 'install (install-jars "dist")) + (add-after 'install 'install-doc (install-javadoc "dist/docs/api"))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/codec/") + (synopsis "Common encoders and decoders such as Base64, Hex, Phonetic and URLs") + (description "The codec package contains simple encoder and decoders for +various formats such as Base64 and Hexadecimal. In addition to these widely +used encoders and decoders, the codec package also maintains a collection of +phonetic encoding utilities. + +This is a part of the Apache Commons Project.") + (license license:asl2.0))) + +(define-public java-commons-daemon + (package + (name "java-commons-daemon") + (version "1.0.15") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/daemon/source/" + "commons-daemon-" version "-src.tar.gz")) + (sha256 + (base32 + "0ci46kq8jpz084ccwq0mmkahcgsmh20ziclp2jf5i0djqv95gvhi")))) + (build-system ant-build-system) + (arguments + `(#:test-target "test" + #:phases + (modify-phases %standard-phases + (add-after 'build 'build-javadoc ant-build-javadoc) + (replace 'install (install-jars "dist")) + (add-after 'install 'install-doc (install-javadoc "dist/docs/api"))))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://commons.apache.org/daemon/") + (synopsis "Library to launch Java applications as daemons") + (description "The Daemon package from Apache Commons can be used to +implement Java applications which can be launched as daemons. For example the +program will be notified about a shutdown so that it can perform cleanup tasks +before its process of execution is destroyed by the operation system. + +This package contains the Java library. You will also need the actual binary +for your architecture which is provided by the jsvc package. + +This is a part of the Apache Commons Project.") + (license license:asl2.0))) + +(define-public antlr2 + (package + (name "antlr2") + (version "2.7.7") + (source (origin + (method url-fetch) + (uri (string-append "http://www.antlr2.org/download/antlr-" + version ".tar.gz")) + (sha256 + (base32 + "1ffvcwdw73id0dk6pj2mlxjvbg0662qacx4ylayqcxgg381fnfl5")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file "antlr.jar") + (substitute* "lib/cpp/antlr/CharScanner.hpp" + (("#include <map>") + (string-append + "#include <map>\n" + "#define EOF (-1)\n" + "#include <strings.h>"))) + (substitute* "configure" + (("/bin/sh") "sh")))))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'strip-jar-timestamps + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (jar1 (string-append out "/lib/antlr.jar")) + (jar2 (string-append out "/share/antlr-2.7.7/antlr.jar"))) + ;; XXX: copied from (guix build ant-build-system) + (define (strip-jar jar dir) + (let ((manifest (string-append dir "/META-INF/MANIFEST.MF"))) + (mkdir-p dir) + (and (with-directory-excursion dir + (zero? (system* "jar" "xf" jar))) + (delete-file jar) + (for-each (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (utime file 0 0 0 0)))) + (find-files dir #:directories? #t)) + (with-directory-excursion dir + (let* ((files (find-files "." ".*" #:directories? #t))) + (unless (zero? (apply system* + `("zip" "-X" ,jar ,manifest + ,@files))) + (error "'zip' failed")))) + (utime jar 0 0) + #t))) + (strip-jar jar1 "temp1") + (strip-jar jar2 "temp2")))) + (add-after 'configure 'fix-bin-ls + (lambda _ + (for-each (lambda (file) + (substitute* file + (("/bin/ls") "ls"))) + (find-files "." "Makefile"))))))) + (native-inputs + `(("which" ,which) + ("zip" ,zip) + ("java" ,icedtea "jdk"))) + (inputs + `(("java" ,icedtea))) + (home-page "http://www.antlr2.org") + (synopsis "Framework for constructing recognizers, compilers, and translators") + (description "ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) +is a language tool that provides a framework for constructing recognizers, +compilers, and translators from grammatical descriptions containing Java, C#, +C++, or Python actions. ANTLR provides excellent support for tree construction, +tree walking, and translation.") + (license license:public-domain))) + +(define-public stringtemplate3 + (package + (name "stringtemplate3") + (version "3.2.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/antlr/website-st4/raw/" + "gh-pages/download/stringtemplate-" + version ".tar.gz")) + (sha256 + (base32 + "086yj68np1vqhkj7483diz3km6s6y4gmwqswa7524a0ca6vxn2is")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "stringtemplate-3.2.1.jar" + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-grammar + (lambda _ + (let ((dir "src/org/antlr/stringtemplate/language/")) + (for-each (lambda (file) + (display file) + (newline) + (system* "antlr" "-o" dir (string-append dir file))) + '("template.g" "angle.bracket.template.g" "action.g" + "eval.g" "group.g" "interface.g")))))))) + (native-inputs + `(("antlr" ,antlr2))) + (home-page "http://www.stringtemplate.org") + (synopsis "Template engine to generate formatted text output") + (description "StringTemplate is a java template engine (with ports for C#, +Objective-C, JavaScript, Scala) for generating source code, web pages, emails, +or any other formatted text output. StringTemplate is particularly good at +code generators, multiple site skins, and internationalization / localization. +StringTemplate also powers ANTLR.") + (license license:bsd-3))) + +;; antlr3 is partially written using antlr3 grammar files. It also depends on +;; ST4 (stringtemplate4), which is also partially written using antlr3 grammar +;; files and uses antlr3 at runtime. The latest version requires a recent version +;; of antlr3 at runtime. +;; Fortunately, ST4 4.0.6 can be built with an older antlr3, and we use antlr3.3. +;; This version of ST4 is sufficient for the latest antlr3. +;; We use ST4 4.0.6 to build a boostrap antlr3 (latest version), and build +;; the latest ST4 with it. Then we build our final antlr3 that will be linked +;; against the latest ST4. +;; antlr3.3 still depends on antlr3 to generate some files, so we use an +;; even older version, antlr3.1, to generate them. Fortunately antlr3.1 uses +;; only grammar files with the antlr2 syntax. +;; So we build antlr3.1 -> antlr3.3 -> ST4.0.6 -> antlr3-bootstrap -> ST4 -> antlr3. + +(define-public stringtemplate4 + (package + (name "stringtemplate4") + (version "4.0.8") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/antlr/stringtemplate4/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1pri8hqa95rfdkjy55icl5q1m09zwp5k67ib14abas39s4v3w087")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f + #:jar-name (string-append ,name "-" ,version ".jar") + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-grammar + (lambda* (#:key inputs #:allow-other-keys) + (chdir "src/org/stringtemplate/v4/compiler/") + (for-each (lambda (file) + (display file) + (newline) + (system* "antlr3" file)) + '("STParser.g" "Group.g" "CodeGenerator.g")) + (chdir "../../../../..")))))) + (inputs + `(("antlr3" ,antlr3-bootstrap) + ("antlr2" ,antlr2) + ("stringtemplate" ,stringtemplate3))) + (home-page "http://www.stringtemplate.org") + (synopsis "Template engine to generate formatted text output") + (description "StringTemplate is a java template engine (with ports for C#, +Objective-C, JavaScript, Scala) for generating source code, web pages, emails, +or any other formatted text output. StringTemplate is particularly good at +code generators, multiple site skins, and internationalization / localization. +StringTemplate also powers ANTLR.") + (license license:bsd-3))) + +(define stringtemplate4-4.0.6 + (package + (inherit stringtemplate4) + (name "stringtemplate4") + (version "4.0.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/antlr/stringtemplate4/archive/ST-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0hjmh1ahdsh3w825i67mli9l4nncc4l6hdbf9ma91jvlj590sljp")))) + (inputs + `(("antlr3" ,antlr3-3.3) + ("antlr2" ,antlr2) + ("stringtemplate" ,stringtemplate3))))) + +(define-public antlr3 + (package + (name "antlr3") + (version "3.5.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/antlr/antlr3/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "07zff5frmjd53rnqdx31h0pmswz1lv0p2lp28cspfszh25ysz6sj")))) + (build-system ant-build-system) + (arguments + `(#:jar-name (string-append ,name "-" ,version ".jar") + #:source-dir "tool/src/main/java:runtime/Java/src/main/java:tool/src/main/antlr3" + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'bin-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((jar (string-append (assoc-ref outputs "out") "/share/java")) + (bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (with-output-to-file (string-append bin "/antlr3") + (lambda _ + (display + (string-append "#!" (which "sh") "\n" + "java -cp " jar "/" ,name "-" ,version ".jar:" + (string-concatenate + (find-files (assoc-ref inputs "stringtemplate") + ".*\\.jar")) + ":" + (string-concatenate + (find-files (assoc-ref inputs "stringtemplate4") + ".*\\.jar")) + ":" + (string-concatenate + (find-files (string-append + (assoc-ref inputs "antlr") + "/lib") + ".*\\.jar")) + " org.antlr.Tool $*")))) + (chmod (string-append bin "/antlr3") #o755)))) + (add-before 'build 'generate-grammar + (lambda _ + (chdir "tool/src/main/antlr3/org/antlr/grammar/v3/") + (for-each (lambda (file) + (display file) + (newline) + (system* "antlr3" file)) + '("ANTLR.g" "ANTLRTreePrinter.g" "ActionAnalysis.g" + "AssignTokenTypesWalker.g" + "ActionTranslator.g" "TreeToNFAConverter.g" + "ANTLRv3.g" "ANTLRv3Tree.g" "LeftRecursiveRuleWalker.g" + "CodeGenTreeWalker.g" "DefineGrammarItemsWalker.g")) + (substitute* "ANTLRParser.java" + (("public Object getTree") "public GrammarAST getTree")) + (substitute* "ANTLRv3Parser.java" + (("public Object getTree") "public CommonTree getTree")) + (chdir "../../../../../java") + (system* "antlr" "-o" "org/antlr/tool" + "org/antlr/tool/serialize.g") + (substitute* "org/antlr/tool/LeftRecursiveRuleAnalyzer.java" + (("import org.antlr.grammar.v3.\\*;") "import org.antlr.grammar.v3.*; +import org.antlr.grammar.v3.ANTLRTreePrinter;")) + (substitute* "org/antlr/tool/ErrorManager.java" + (("case NO_SUCH_ATTRIBUTE_PASS_THROUGH:") "")) + (chdir "../../../.."))) + (add-before 'build 'fix-build-xml + (lambda _ + (substitute* "build.xml" + (("<exec") "<copy todir=\"${classes.dir}\"> +<fileset dir=\"tool/src/main/resources\"> +<include name=\"**/*.stg\"/> +<include name=\"**/*.st\"/> +<include name=\"**/*.sti\"/> +<include name=\"**/STLexer.tokens\"/> +</fileset> +</copy><exec"))))))) + (native-inputs + `(("antlr" ,antlr2) + ("antlr3" ,antlr3-bootstrap))) + (inputs + `(("junit" ,java-junit) + ("stringtemplate" ,stringtemplate3) + ("stringtemplate4" ,stringtemplate4))) + (propagated-inputs + `(("stringtemplate" ,stringtemplate3) + ("antlr" ,antlr2) + ("stringtemplate4" ,stringtemplate4-4.0.6))) + (home-page "http://www.antlr3.org") + (synopsis "Framework for constructing recognizers, compilers, and translators") + (description "ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) +is a language tool that provides a framework for constructing recognizers, +compilers, and translators from grammatical descriptions containing Java, C#, +C++, or Python actions. ANTLR provides excellent support for tree construction, +tree walking, and translation.") + (license license:bsd-3))) + +(define antlr3-bootstrap + (package + (inherit antlr3) + (name "antlr3-bootstrap") + (native-inputs + `(("antlr" ,antlr2) + ("antlr3" ,antlr3-3.3))) + (inputs + `(("junit" ,java-junit))))) + +(define antlr3-3.3 + (package + (inherit antlr3) + (name "antlr3") + (version "3.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/antlr/website-antlr3/raw/" + "gh-pages/download/antlr-" + version ".tar.gz")) + (sha256 + (base32 + "0qgg5vgsm4l1d6dj9pfbaa25dpv2ry2gny8ajy4vvgvfklw97b3m")))) + (arguments + `(#:jar-name (string-append ,name "-" ,version ".jar") + #:source-dir (string-append "tool/src/main/java:runtime/Java/src/main/java:" + "tool/src/main/antlr2:tool/src/main/antlr3") + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'bin-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((jar (string-append (assoc-ref outputs "out") "/share/java")) + (bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (with-output-to-file (string-append bin "/antlr3") + (lambda _ + (display + (string-append "#!" (which "sh") "\n" + "java -cp " jar "/antlr3-3.3.jar:" + (string-concatenate + (find-files (assoc-ref inputs "stringtemplate") + ".*\\.jar")) + ":" + (string-concatenate + (find-files (string-append + (assoc-ref inputs "antlr") + "/lib") + ".*\\.jar")) + " org.antlr.Tool $*")))) + (chmod (string-append bin "/antlr3") #o755)))) + (add-before 'build 'generate-grammar + (lambda _ + (let ((dir "tool/src/main/antlr2/org/antlr/grammar/v2/")) + (for-each (lambda (file) + (display file) + (newline) + (system* "antlr" "-o" dir (string-append dir file))) + '("antlr.g" "antlr.print.g" "assign.types.g" + "buildnfa.g" "codegen.g" "define.g"))) + (chdir "tool/src/main/antlr3/org/antlr/grammar/v3/") + (for-each (lambda (file) + (display file) + (newline) + (system* "antlr3" file)) + '("ActionAnalysis.g" "ActionTranslator.g" "ANTLRv3.g" + "ANTLRv3Tree.g")) + (chdir "../../../../../../../..") + (substitute* "tool/src/main/java/org/antlr/tool/Grammar.java" + (("import org.antlr.grammar.v2.\\*;") + "import org.antlr.grammar.v2.*;\n +import org.antlr.grammar.v2.TreeToNFAConverter;\n +import org.antlr.grammar.v2.DefineGrammarItemsWalker;\n +import org.antlr.grammar.v2.ANTLRTreePrinter;")))) + (add-before 'build 'fix-build-xml + (lambda _ + (substitute* "build.xml" + (("<exec") "<copy todir=\"${classes.dir}\"> +<fileset dir=\"tool/src/main/resources\"> +<include name=\"**/*.stg\"/> +<include name=\"**/*.st\"/> +<include name=\"**/*.sti\"/> +<include name=\"**/STLexer.tokens\"/> +</fileset> +</copy><exec"))))))) + (native-inputs + `(("antlr" ,antlr2) + ("antlr3" ,antlr3-3.1))) + (inputs + `(("junit" ,java-junit))) + (propagated-inputs + `(("stringtemplate" ,stringtemplate3) + ("antlr" ,antlr2) + ("antlr3" ,antlr3-3.1))))) + +(define antlr3-3.1 + (package + (inherit antlr3) + (name "antlr3-3.1") + (version "3.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/antlr/website-antlr3/raw/" + "gh-pages/download/antlr-" + version ".tar.gz")) + (sha256 + (base32 + "0sfimc9cpbgrihz4giyygc8afgpma2c93yqpwb951giriri6x66z")))) + (arguments + `(#:jar-name (string-append ,name "-" ,version ".jar") + #:source-dir "src:runtime/Java/src" + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'bin-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((jar (string-append (assoc-ref outputs "out") "/share/java")) + (bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (with-output-to-file (string-append bin "/antlr3") + (lambda _ + (display + (string-append "#!" (which "sh") "\n" + "java -cp " jar "/antlr3-3.1-3.1.jar:" + (string-concatenate + (find-files (assoc-ref inputs "stringtemplate") + ".*\\.jar")) + ":" + (string-concatenate + (find-files (string-append + (assoc-ref inputs "antlr") + "/lib") + ".*\\.jar")) + " org.antlr.Tool $*")))) + (chmod (string-append bin "/antlr3") #o755)))) + (add-before 'build 'generate-grammar + (lambda _ + (let ((dir "src/org/antlr/tool/")) + (for-each (lambda (file) + (display file) + (newline) + (system* "antlr" "-o" dir (string-append dir file))) + '("antlr.g" "antlr.print.g" "assign.types.g" + "buildnfa.g" "define.g"))) + (format #t "codegen.g\n") + (system* "antlr" "-o" "src/org/antlr/codegen" + "src/org/antlr/codegen/codegen.g"))) + (add-before 'build 'fix-build-xml + (lambda _ + (substitute* "build.xml" + (("<exec") "<copy todir=\"${classes.dir}\"> +<fileset dir=\"src\"> +<include name=\"**/*.stg\"/> +<include name=\"**/*.st\"/> +<include name=\"**/*.sti\"/> +<include name=\"**/STLexer.tokens\"/> +</fileset> +</copy><exec"))))))) + (native-inputs + `(("antlr" ,antlr2))) + (inputs + `(("junit" ,java-junit))) + (propagated-inputs + `(("stringtemplate" ,stringtemplate3))))) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 9d8507030b..b481bb98db 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; ;;; This file is part of GNU Guix. @@ -308,7 +308,7 @@ with a ksysguardd daemon, which may also run on a remote system.") (define-public qca (package (name "qca") - (version "2.1.1") + (version "2.1.3") (source (origin (method url-fetch) @@ -316,14 +316,14 @@ with a ksysguardd daemon, which may also run on a remote system.") "/src/qca-" version ".tar.xz")) (sha256 (base32 - "10z9icq28fww4qbzwra8d9z55ywbv74qk68nhiqfrydm21wkxplm")))) + "0lz3n652z208daxypdcxiybl0a9fnn6ida0q7fh5f42269mdhgq0")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("openssl" ,openssl) ("qtbase" ,qtbase))) - (home-page "http://delta.affinix.com/qca/") + (home-page "https://userbase.kde.org/QCA") (synopsis "Libraries for the Qt Cryptographic Architecture") (description "The Qt Cryptographic Architecture (QCA) provides a straightforward and cross-platform API for a range of cryptographic features, diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index e3ab8f6dc0..260ca947bd 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -239,8 +239,8 @@ generator library for C++.") (define-public kodi ;; We package the git version because the current released ;; version was cut while the cmake transition was in turmoil. - (let ((commit "749c61e01082acec745bb82888caa1dd1eaa0677") - (revision "3")) + (let ((commit "b8ad238aa8010063eaf7d608d139002a50075e8d") + (revision "4")) (package (name "kodi") (version (string-append "18.0_alpha-" revision "-" (string-take commit 7))) @@ -252,7 +252,7 @@ generator library for C++.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0mg22sbxvkhvd1b13xmv96k0b3lnrmjh3cd0cl0gjh17ip2v1y9k")) + "192agb8lpbajljbnnpn7y1pk2c6bvqbcpqhlgq4pja4pdf664xzg")) (snippet '(begin (use-modules (guix build utils)) diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index e7b42290fc..ee0c5c0d89 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm @@ -22,7 +22,7 @@ #:use-module (gnu packages web) #:use-module (guix packages) #:use-module (guix build-system perl) - #:use-module ((guix licenses) #:select (gpl2 gpl3)) + #:use-module ((guix licenses) #:select (gpl2 gpl3 perl-license)) #:use-module (guix download)) (define-public perl-lingua-en-findnumber @@ -45,7 +45,7 @@ (description "This module provides a regular expression for finding numbers in English text. It also provides functions for extracting and manipulating such numbers.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-en-inflect (package @@ -68,7 +68,7 @@ manipulating such numbers.") words. Plural forms of all nouns, most verbs, and some adjectives are provided. Where appropriate, \"classical\" variants (for example: \"brother\" -> \"brethren\", \"dogma\" -> \"dogmata\", etc.) are also provided.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-en-inflect-number (package @@ -90,7 +90,7 @@ provided. Where appropriate, \"classical\" variants (for example: \"brother\" (description "This module extends the functionality of Lingua::EN::Inflect with three new functions for determining plurality of a word and forcefully converting a word to singular or plural.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-en-inflect-phrase (package @@ -117,7 +117,7 @@ converting a word to singular or plural.") (synopsis "Inflect short English phrases") (description "This module attempts to pluralize or singularize short English phrases.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-en-number-isordinal (package @@ -141,7 +141,7 @@ English phrases.") (synopsis "Detect if English number is ordinal or cardinal") (description "This module will tell you if a number, either in words or as digits, is a cardinal or ordinal number.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-en-tagger (package @@ -190,7 +190,7 @@ using a set of regular expressions.") (synopsis "Convert English text to numbers") (description "This module converts English text into numbers. It supports both ordinal and cardinal numbers, negative numbers, and very large numbers.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-pt-stemmer (package @@ -210,7 +210,7 @@ both ordinal and cardinal numbers, negative numbers, and very large numbers.") (description "This module implements a Portuguese stemming algorithm proposed in the paper A Stemming Algorithm for the Portuguese Language by Moreira, V. and Huyck, C.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-stem (package @@ -240,7 +240,7 @@ Moreira, V. and Huyck, C.") (synopsis "Stemming of words in various languages") (description "This routine applies stemming algorithms to its parameters, returning the stemmed words as appropriate to the selected locale.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-stem-fr (package @@ -259,7 +259,7 @@ returning the stemmed words as appropriate to the selected locale.") (synopsis "Porter's stemming algorithm for French") (description "This module uses a modified version of the Porter Stemming Algorithm to return a stemmed French word.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-stem-it (package @@ -278,7 +278,7 @@ Algorithm to return a stemmed French word.") (synopsis "Porter's stemming algorithm for Italian") (description "This module applies the Porter Stemming Algorithm to its parameters, returning the stemmed Italian word.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-stem-ru (package @@ -297,7 +297,7 @@ parameters, returning the stemmed Italian word.") (synopsis "Porter's stemming algorithm for Russian") (description "This module applies the Porter Stemming Algorithm to its parameters, returning the stemmed Russian (KOI8-R only) word.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-lingua-stem-snowball-da (package @@ -337,7 +337,7 @@ Lingua::Stem::Snowball::Se.") (synopsis "Porters stemming algorithm for Norwegian") (description "Lingua::Stem::Snowball::No is a perl port of the norwegian stemmer at http://snowball.tartarus.org.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-snowball-swedish (package @@ -357,7 +357,7 @@ stemmer at http://snowball.tartarus.org.") (synopsis "Porters stemming algorithm for Swedish") (description "Lingua::Stem::Snowball::Se is a perl port of the swedish stemmer at http://snowball.sourceforge.net.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-string-toidentifier-en (package @@ -383,7 +383,7 @@ converting an arbitrary string into a readable representation using the ASCII subset of \"\\w\" for use as an identifier in a computer program. The intent is to make unique identifier names from which the content of the original string can be easily inferred by a human just by reading the identifier.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-text-german (package @@ -402,4 +402,4 @@ string can be easily inferred by a human just by reading the identifier.") (synopsis "German grundform reduction") (description "This module is a rather incomplete implementation of work done by Gudrun Putze-Meier.") - (license (package-license perl)))) + (license perl-license))) diff --git a/gnu/packages/less.scm b/gnu/packages/less.scm index efdf8ab0c4..0aa4665840 100644 --- a/gnu/packages/less.scm +++ b/gnu/packages/less.scm @@ -26,7 +26,7 @@ (define-public less (package (name "less") - (version "481") + (version "487") (source (origin (method url-fetch) @@ -34,7 +34,7 @@ version ".tar.gz")) (sha256 (base32 - "19fxj0h10y5bhr3a1xa7kqvnwl44db3sdypz8jxl1q79yln8z8rz")))) + "01i7n6jaxwmww3pasy3hg38zc6x7jw0w05mqqvh6caqbrdaq9p7k")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) (home-page "https://www.gnu.org/software/less/") diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index 5d769aaf47..c903352bbc 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -192,7 +192,7 @@ Currently supported event loops are EV, Event, Glib/Gtk2, Tk, Qt, @code{Event::Lib}, Irssi, @code{IO::Async} and POE (and thus also WxWidgets and Prima). It also comes with a very fast Pure Perl event loop that does not rely on XS.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-ev (package @@ -233,4 +233,4 @@ not rely on XS.") "This module provides an interface to @code{libev}, a high performance full-featured event loop. It can be used through the @code{AnyEvent} module and still be faster than other event loops currently supported in Perl.") - (license (package-license perl)))) + (license perl-license))) diff --git a/gnu/packages/libffcall.scm b/gnu/packages/libffcall.scm index 6ff40c8a10..e4babfed2c 100644 --- a/gnu/packages/libffcall.scm +++ b/gnu/packages/libffcall.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Joshua S. Grant <jgrant@parenthetical.io> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,27 +20,27 @@ (define-module (gnu packages libffcall) #:use-module ((guix licenses) #:prefix l:) + #:use-module (guix utils) ; string-replace-substring #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix cvs-download) + #:use-module (guix git-download) #:use-module (guix build-system gnu)) (define-public libffcall (package (name "libffcall") - (version "1.10+cvs-2015-01-15") + (version "1.12") (source (origin - (method cvs-fetch) - (uri (cvs-reference - (root-directory - ":pserver:anonymous@cvs.savannah.gnu.org:/sources/libffcall") - (module "ffcall") - (revision "2015-01-15"))) + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/r/libffcall.git") + (commit (string-append + "ffcall-" (string-replace-substring version "." "-"))))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1lwdskc2w4rr98x9flr2726lmj4190l16r0izg7gqxy50801wwgd")))) + "0p7gg5k4ifcqpmrmdfmr2r4x909cn35g87iff539p6i8891fdfxf")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f)) (synopsis "Foreign function calls from interpreters") diff --git a/gnu/packages/links.scm b/gnu/packages/links.scm deleted file mode 100644 index 145ed761ee..0000000000 --- a/gnu/packages/links.scm +++ /dev/null @@ -1,81 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 John Darrington <jmd@gnu.org> -;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> -;;; -;;; 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 <http://www.gnu.org/licenses/>. - -(define-module (gnu packages links) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (gnu packages) - #:use-module (gnu packages compression) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages image) - #:use-module (gnu packages libevent) - #:use-module (gnu packages tls) - #:use-module (gnu packages xorg) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public links - (package - (name "links") - (version "2.14") - (source (origin - (method url-fetch) - (uri (string-append "http://links.twibright.com/download/" - name "-" version ".tar.bz2")) - (sha256 - (base32 "1f24y83wa1vzzjq5kp857gjqdpnmf8pb29yw7fam0m8wxxw0c3gp")))) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; The tarball uses a very old version of autconf. It doesn't - ;; understand extra flags like `--enable-fast-install', so - ;; we need to invoke it with just what it understands. - (let ((out (assoc-ref outputs "out"))) - ;; 'configure' doesn't understand '--host'. - ,@(if (%current-target-system) - `((setenv "CHOST" ,(%current-target-system))) - '()) - (setenv "CONFIG_SHELL" (which "bash")) - (zero? - (system* "./configure" - (string-append "--prefix=" out) - "--enable-graphics")))))))) - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("zlib" ,zlib) - ("openssl" ,openssl) - ("libjpeg" ,libjpeg) - ("libtiff" ,libtiff) - ("libevent" ,libevent) - ("libpng" ,libpng) - ("libxt" ,libxt))) - (synopsis "Text and graphics mode web browser") - (description "Links is a graphics and text mode web browser, with many -features including, tables, builtin image display, bookmarks, SSL and more.") - (home-page "http://links.twibright.com") - ;; The distribution contains a copy of GPLv2 - ;; However, the copyright notices simply say: - ;; "This file is a part of the Links program, released under GPL." - ;; Therefore, under the provisions of Section 9, we can choose - ;; any version ever published by the FSF. - ;; One file (https.c) contains an exception permitting - ;; linking of the program with openssl. - (license license:gpl1+))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 958d111403..75da0d420f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -80,6 +80,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages rrdtool) + #:use-module (gnu packages samba) #:use-module (gnu packages slang) #:use-module (gnu packages storage) #:use-module (gnu packages texinfo) @@ -353,8 +354,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-libre-version "4.10.13") -(define %linux-libre-hash "0sl3w4id3amahv42xg2ac0lqhxn5dih2vm7wyxnfja4c3g4hshn4") +(define %linux-libre-version "4.11") +(define %linux-libre-hash "0j1bzzq9iq5i1zm7gnig8v0clr8wq303kvcdsaifc0r0ggz1mx1n") (define-public linux-libre (make-linux-libre %linux-libre-version @@ -363,14 +364,14 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.25" - "15vcphpz40n75jwhbpbwiqvgxsdn05n6nbfg5cksyy24f9fpd35k" + (make-linux-libre "4.9.27" + "1b39zijjkv21kya359y4g88w5ff110v95pvc4wfvc83dvik9hny5" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.64" - "02fvsklimzgkhsjg3i6mjhf09b4kvgwr2cg2nak5li3fpjmw1y35" + (make-linux-libre "4.4.67" + "1nadmrd26llc17ipig7bx7rf2gwns94g86a3ilcvgdk17hq5riss" %intel-compatible-systems #:configuration-file kernel-config)) @@ -467,7 +468,7 @@ at login. Local and dynamic reconfiguration are its key features.") (define-public psmisc (package (name "psmisc") - (version "22.20") + (version "22.21") (source (origin (method url-fetch) @@ -475,10 +476,10 @@ at login. Local and dynamic reconfiguration are its key features.") version ".tar.gz")) (sha256 (base32 - "052mfraykmxnavpi8s78aljx8w87hyvpx8mvzsgpjsjz73i28wmi")))) + "0nhlm1vrrwn4a845p6y4nnnb4liq70n74zbdd5dq844jc6nkqclp")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) - (home-page "http://psmisc.sourceforge.net/") + (home-page "https://gitlab.com/psmisc/psmisc") (synopsis "Small utilities that use the proc file system") (description @@ -646,7 +647,7 @@ slabtop, and skill.") (define-public e2fsprogs (package (name "e2fsprogs") - (version "1.42.13") + (version "1.43.4") (source (origin (method url-fetch) (uri (string-append @@ -655,79 +656,66 @@ slabtop, and skill.") name "-" version ".tar.xz")) (sha256 (base32 - "1ix0b83zgw5n0p2grh2961c6796m92yr2jqc2sbr23x3lfsp8r71")) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "MCONFIG.in" - (("INSTALL_SYMLINK = /bin/sh") - "INSTALL_SYMLINK = sh")) - - ;; Do not include a timestamp in libext2fs.info.gz. - (substitute* "doc/Makefile.in" - (("gzip -9") - "gzip -9n")))))) + "092absr4vrlqrkdf9nwh4ykj40ab6hhwrkdr6sjsccd54c8z5csl")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) (native-inputs `(("pkg-config" ,pkg-config) - ("texinfo" ,texinfo))) ;for the libext2fs Info manual + ("texinfo" ,texinfo) ;for the libext2fs Info manual + + ;; For tests. + ("perl" ,perl) + ("procps" ,procps))) (arguments - '(;; Parallel building reliably yields a failure like this: - ;; "make[2]: *** No rule to make target '../lib/libss.so', needed by - ;; 'debugfs'. Stop." - #:parallel-build? #f - ;; util-linux is the preferred source for some of the libraries and + '(;; util-linux is the preferred source for some of the libraries and ;; commands, so disable them (see, e.g., ;; <http://git.buildroot.net/buildroot/commit/?id=e1ffc2f791b33633>.) - #:configure-flags '("--disable-libblkid" - "--disable-libuuid" "--disable-uuidd" - "--disable-fsck" + #:configure-flags (list "--disable-libblkid" + "--disable-libuuid" "--disable-uuidd" + "--disable-fsck" - ;; Use symlinks instead of hard links for - ;; 'fsck.extN' etc. This makes the resulting nar - ;; smaller and is preserved across copies. - "--enable-symlink-install" + ;; Use symlinks instead of hard links for + ;; 'fsck.extN' etc. This makes the resulting nar + ;; smaller and is preserved across copies. + "--enable-symlink-install" - ;; Install libext2fs et al. - "--enable-elf-shlibs") + (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") + "/lib") - #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" - (assoc-ref %outputs "out") - "/lib")) + ;; Install libext2fs et al. + "--enable-elf-shlibs") - #:phases (alist-cons-before - 'configure 'patch-shells - (lambda _ - (substitute* "configure" - (("/bin/sh (.*)parse-types.sh" _ dir) - (string-append (which "sh") " " dir - "parse-types.sh"))) - (substitute* (find-files "." "^Makefile.in$") - (("#!/bin/sh") - (string-append "#!" (which "sh"))))) - (alist-cons-after - 'install 'install-libs - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib"))) - (and (zero? (system* "make" "install-libs")) - - ;; Make the .a writable so that 'strip' works. - ;; Failing to do that, due to debug symbols, we - ;; retain a reference to the final - ;; linux-libre-headers, which refer to the - ;; bootstrap binaries. - (let ((archives (find-files lib "\\.a$"))) - (for-each (lambda (file) - (chmod file #o666)) - archives) - #t)))) - %standard-phases)) - - ;; FIXME: Tests work by comparing the stdout/stderr of programs, that - ;; they fail because we get an extra line that says "Can't check if - ;; file system is mounted due to missing mtab file". - #:tests? #f)) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-shells + (lambda _ + (substitute* "configure" + (("/bin/sh (.*)parse-types.sh" _ dir) + (string-append (which "sh") " " dir + "parse-types.sh"))) + (substitute* "MCONFIG.in" + (("INSTALL_SYMLINK = /bin/sh") + "INSTALL_SYMLINK = sh")) + (substitute* (find-files "." "^Makefile.in$") + (("#!/bin/sh") + (string-append "#!" (which "sh")))) + #t)) + (add-after 'install 'install-libs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib"))) + (and (zero? (system* "make" "install-libs")) + + ;; Make the .a writable so that 'strip' works. + ;; Failing to do that, due to debug symbols, we + ;; retain a reference to the final + ;; linux-libre-headers, which refer to the + ;; bootstrap binaries. + (let ((archives (find-files lib "\\.a$"))) + (for-each (lambda (file) + (chmod file #o666)) + archives) + #t)))))))) (home-page "http://e2fsprogs.sourceforge.net/") (synopsis "Creating and checking ext2/ext3/ext4 file systems") (description @@ -1697,7 +1685,7 @@ system.") ("bzip2" ,bzip2) ("pam" ,linux-pam))) (native-inputs `(("pkg-config" ,pkg-config))) - (home-page "ftp://ftp.kernel.org/pub/linux/utils/kbd/") + (home-page "http://kbd-project.org/") (synopsis "Linux keyboard utilities and keyboard maps") (description "This package contains keytable files and keyboard utilities compatible @@ -1820,14 +1808,14 @@ time.") (define-public lvm2 (package (name "lvm2") - (version "2.02.168") + (version "2.02.171") (source (origin (method url-fetch) (uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2." version ".tgz")) (sha256 (base32 - "03b62hcsj9z37ckd8c21wwpm07s9zblq7grfh58yzcs1vp6x38r3")) + "0r4r9fsvpj9hjmf0zz7h4prz12r6y16jhjhsvk1sbfpsl88sf5dq")) (modules '((guix build utils))) (snippet '(begin @@ -1883,7 +1871,7 @@ time.") ;; The tests use 'mknod', which requires root access. #:tests? #f)) - (home-page "http://sourceware.org/lvm2/") + (home-page "https://sourceware.org/lvm2/") (synopsis "Logical volume management for Linux") (description "LVM2 is the logical volume management tool set for Linux-based systems. @@ -2286,14 +2274,14 @@ thanks to the use of namespaces.") (define-public hdparm (package (name "hdparm") - (version "9.51") + (version "9.52") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version ".tar.gz")) (sha256 (base32 - "14ax5lyzhigx58ing7adbfyzisv0fqajbmzphg149rnb3s4xiyhs")))) + "1djgxhfadd865dcrl6dp7dvjxpaisy7mk17mbdbglwg24ga9qhn3")))) (build-system gnu-build-system) (arguments `(#:make-flags (let ((out (assoc-ref %outputs "out"))) @@ -2699,9 +2687,7 @@ Linux Device Mapper multipathing driver: (method url-fetch) (uri (list (string-append "mirror://debian/pool/main/liba/libaio/" - name "_" version ".orig.tar.gz") - (string-append "https://fedorahosted.org/releases/l/i/libaio/" - name "-" version ".tar.gz"))) + name "_" version ".orig.tar.gz"))) (sha256 (base32 "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0")))) @@ -3658,7 +3644,7 @@ Light is the successor of lightscript.") (arguments `(#:phases (modify-phases %standard-phases - (delete 'configure) + (delete 'configure) ; no configure script (add-before 'build 'setenv (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -3673,10 +3659,14 @@ Light is the successor of lightscript.") (setenv "TLP_SHCPL" (string-append out "/share/bash-completion/completions")) (setenv "TLP_MAN" (string-append out "/share/man"))))) - (delete 'check) + (delete 'check) ; no tests + (add-before 'install 'fix-installation + (lambda _ + ;; Stop the Makefile from trying to create system directories. + (substitute* "Makefile" (("\\[ -f \\$\\(_CONF\\) \\]") "#")))) (replace 'install (lambda _ - (system "make install-tlp install-man"))) + (zero? (system* "make" "install-tlp" "install-man")))) (add-after 'install 'wrap (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((bin (string-append (assoc-ref outputs "out") "/bin")) @@ -3793,3 +3783,127 @@ programming interface to the in-kernel nf_tables subsystem. The library libnftnl has been previously known as libnftables. This library is currently used by nftables.") (license license:gpl2+))) + +(define-public proot + (package + (name "proot") + (version "5.1.0") + (home-page "https://github.com/proot-me/PRoot") + (source (origin + (method url-fetch) + (uri (string-append home-page "/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "11h30i83vdhc3khlj6hrh3a21sbmmz8nhfv09vkf6b9bcs1biz2h")) + (patches (search-patches "proot-test-fhs.patch")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags '("-C" "src") + + #:phases (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'set-shell-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "src" "\\.[ch]$") + (("\"/bin/sh\"") + (string-append "\"" + (assoc-ref inputs "bash") + "/bin/sh\""))) + #t)) + (add-before 'check 'fix-fhs-assumptions-in-tests + (lambda _ + (substitute* "tests/test-c6b77b77.mk" + (("/bin/bash") (which "bash")) + (("/usr/bin/test") (which "test"))) + (substitute* '("tests/test-16573e73.c") + (("/bin/([a-z-]+)" _ program) + (which program))) + + (substitute* (find-files "tests" "\\.sh$") + ;; Some of the tests try to "bind-mount" /bin/true. + (("-b /bin/true:") + (string-append "-b " (which "true") ":")) + ;; Likewise for /bin. + (("-b /bin:") "-b /gnu:") + ;; Others try to run /bin/sh. + (("/bin/sh") (which "sh")) + ;; Others assume /etc/fstab exists. + (("/etc/fstab") "/etc/passwd")) + + (substitute* "tests/GNUmakefile" + (("-b /bin:") "-b /gnu:")) + + ;; XXX: This test fails in an obscure corner case, just + ;; skip it. + (delete-file "tests/test-kkkkkkkk.c") + + #t)) + (replace 'check + (lambda _ + (let ((n (parallel-job-count))) + ;; For some reason we get lots of segfaults with + ;; seccomp support (x86_64, Linux-libre 4.11.0). + (setenv "PROOT_NO_SECCOMP" "1") + + ;; Most of the tests expect "/bin" to be in $PATH so + ;; they can run things that live in $ROOTFS/bin. + (setenv "PATH" + (string-append (getenv "PATH") ":/bin")) + + (zero? (system* "make" "check" "-C" "tests" + ;;"V=1" + "-j" (number->string n)))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + ;; The 'install' rule does nearly nothing. + (let ((out (assoc-ref outputs "out"))) + (and (zero? + ;; TODO: 'make install-care' (does not even + ;; build currently.) + (system* "make" "-C" "src" "install" + (string-append "PREFIX=" out))) + (begin + (install-file "doc/proot/man.1" + (string-append out "/share" + "/man/man1")) + #t)))))))) + (native-inputs `(("which" ,which) + + ;; For 'mcookie', used by some of the tests. + ("util-linux" ,util-linux))) + (inputs `(("talloc" ,talloc))) + (synopsis "Unprivileged chroot, bind mount, and binfmt_misc") + (description + "PRoot is a user-space implementation of @code{chroot}, @code{mount --bind}, +and @code{binfmt_misc}. This means that users don't need any privileges or +setup to do things like using an arbitrary directory as the new root +filesystem, making files accessible somewhere else in the file system +hierarchy, or executing programs built for another CPU architecture +transparently through QEMU user-mode. Also, developers can use PRoot as a +generic process instrumentation engine thanks to its extension mechanism. +Technically PRoot relies on @code{ptrace}, an unprivileged system-call +available in the kernel Linux.") + (license license:gpl2+))) + +(define-public proot-static + (package + (inherit proot) + (name "proot-static") + (synopsis + "Unprivileged chroot, bind mount, and binfmt_misc (statically linked)") + (inputs `(("talloc" ,talloc/static))) + (arguments + (substitute-keyword-arguments (package-arguments proot) + ((#:make-flags flags) + `(cons "LDFLAGS = -ltalloc -static -static-libgcc" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'strip 'remove-store-references + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (with-directory-excursion out + (remove-store-references "bin/proot") + #t)))))) + ((#:allowed-references _ '("out")) + '("out")))))) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 43d9c9c9fc..57d0191b70 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -283,7 +283,10 @@ an interpreter, a compiler, a debugger, and much more.") ("texlive" ,texlive) ("texinfo" ,texinfo))) (arguments - '(#:phases + '(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases (modify-phases %standard-phases (delete 'configure) (add-before 'build 'patch-unix-tool-paths diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 04a2b39af9..4702a342a0 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -218,6 +219,29 @@ code analysis tools.") "1prc72xmkgx8wrzmrr337776676nhsp1qd3mw2bvb22bzdnq7lsc" #:patches '("clang-3.8-libc-search-path.patch"))) +(define-public llvm-3.9.1 + (package (inherit llvm) + (name "llvm") + (version "3.9.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://llvm.org/releases/" + version "/llvm-" version ".src.tar.xz")) + (sha256 + (base32 + "1vi9sf7rx1q04wj479rsvxayb6z740iaz3qniwp266fgp5a07n8z")))))) + +(define-public clang-runtime-3.9.1 + (clang-runtime-from-llvm + llvm-3.9.1 + "16gc2gdmp5c800qvydrdhsp0bzb97s8wrakl6i8a4lgslnqnf2fk")) + +(define-public clang-3.9.1 + (clang-from-llvm llvm-3.9.1 clang-runtime-3.9.1 + "0qsyyb40iwifhhlx9a3drf8z6ni6zwyk3bvh0kx2gs6yjsxwxi76" + #:patches '())) + (define-public llvm-3.7 (package (inherit llvm) (version "3.7.1") @@ -268,6 +292,8 @@ code analysis tools.") (method url-fetch) (uri (string-append "http://llvm.org/releases/" version "/llvm-" version ".src.tar.xz")) + (patches + (search-patches "llvm-3.5-fix-clang-build-with-gcc5.patch")) (sha256 (base32 "0xf5q17kkxsrm2gsi93h4pwlv663kji73r2g4asb97klsmb626a4")))))) diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index d28094c3a8..2523d65f61 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -24,8 +24,10 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages perl) + #:use-module (gnu packages python) #:use-module (gnu packages autotools)) (define-public log4cpp @@ -90,3 +92,27 @@ helper macros. You can log a message by simply streaming things to log at a particular severity level. It allows logging to be controlled from the command line.") (license license:bsd-3))) + +(define-public tailon + (package + (name "tailon") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri name version)) + (sha256 + (base32 + "08clrwpfdxcv2z2b5ardpmim4alahbw4l7631dhw62xhbcf6wjzz")))) + (build-system python-build-system) + (inputs + `(("python-pyyaml" ,python-pyyaml) + ("python-sockjs-tornado" ,python-sockjs-tornado) + ("python-tornado" ,python-tornado))) + (home-page "https://tailon.readthedocs.io/") + (synopsis + "Webapp for looking at and searching through log files") + (description + "Tailon provides a web interface around the tail, grep, awk and sed +commands, displaying the results via a web interface.") + (license license:bsd-3))) diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index 1164ba8cbb..bf70bd6013 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -162,6 +162,7 @@ toolkit. It allows users to monitor and control of running processes.") (uri (string-append "mirror://sourceforge/lxde/LXTerminal" "%20%28terminal%20emulator%29/LXTerminal%20" version "/" name "-" version ".tar.xz")) + (patches (search-patches "lxterminal-CVE-2016-10369.patch")) (sha256 (base32 "1yf76s15zvfw0h42b0ay1slpq47khgjmcry8ki2z812zar9lchia")))) @@ -288,11 +289,26 @@ menu spec-compliant desktop menus for LXDE.") (base32 "0mj84fa3f4ak1jjslrwc2q3ci9zxrxpciggviza9bjb0168brn8w")))) (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'set-lxsession + (lambda* (#:key inputs #:allow-other-keys) + ;; Set the right file name for 'lxsession'. + (let ((lxsession (assoc-ref inputs "lxsession"))) + (substitute* "startlxde.in" + (("^exec .*/bin/lxsession") + (string-append "exec " lxsession + "/bin/lxsession"))) + #t)))))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) ("lxmenu-data" ,lxmenu-data) ("lxde-icon-theme" ,lxde-icon-theme))) + (inputs + `(("lxsession" ,lxsession) + ;; ("lxlock" ,lxlock) ;for 'lxde-screenlock.desktop' + )) (synopsis "Common files of the LXDE Desktop") (description "Lxde-common provides common files of the LXDE Desktop.") diff --git a/gnu/packages/lynx.scm b/gnu/packages/lynx.scm deleted file mode 100644 index b212dca388..0000000000 --- a/gnu/packages/lynx.scm +++ /dev/null @@ -1,91 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> -;;; -;;; 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 <http://www.gnu.org/licenses/>. - -(define-module (gnu packages lynx) - #:use-module ((guix licenses) #:select (gpl2)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages perl) - #:use-module (gnu packages ncurses) - #:use-module (gnu packages libidn) - #:use-module (gnu packages gnupg) - #:use-module (gnu packages tls) - #:use-module (gnu packages zip) - #:use-module (gnu packages compression)) - -(define-public lynx - (package - (name "lynx") - (version "2.8.9dev.11") - (source (origin - (method url-fetch) - (uri (string-append - "http://invisible-mirror.net/archives/lynx/tarballs" - "/lynx" version ".tar.bz2")) - (sha256 - (base32 - "1cqm1i7d209brkrpzaqqf2x951ra3l67dw8x9yg10vz7rpr9441a")))) - (build-system gnu-build-system) - (native-inputs `(("pkg-config" ,pkg-config) - ("perl" ,perl))) - (inputs `(("ncurses" ,ncurses) - ("libidn" ,libidn) - ("gnutls" ,gnutls) - ("libgcrypt" ,libgcrypt) - ("unzip" ,unzip) - ("zlib" ,zlib) - ("gzip" ,gzip) - ("bzip2" ,bzip2))) - (arguments - `(#:configure-flags - (let ((gnutls (assoc-ref %build-inputs "gnutls"))) - `("--with-pkg-config" - "--with-screen=ncurses" - "--with-zlib" - "--with-bzlib" - ,(string-append "--with-gnutls=" gnutls) - ;; "--with-socks5" ; XXX TODO - "--enable-widec" - "--enable-ascii-ctypes" - "--enable-local-docs" - "--enable-htmlized-cfg" - "--enable-gzip-help" - "--enable-nls" - "--enable-ipv6")) - #:tests? #f ; no check target - #:phases (alist-replace - 'install - (lambda* (#:key (make-flags '()) #:allow-other-keys) - (zero? (apply system* "make" "install-full" make-flags))) - %standard-phases))) - (synopsis "Text Web Browser") - (description - "Lynx is a fully-featured World Wide Web (WWW) client for users running -cursor-addressable, character-cell display devices. It will display Hypertext -Markup Language (HTML) documents containing links to files on the local -system, as well as files on remote systems running http, gopher, ftp, wais, -nntp, finger, or cso/ph/qi servers. Lynx can be used to access information on -the WWW, or to build information systems intended primarily for local -access.") - (home-page "http://lynx.isc.org/") - (license gpl2))) - -;;; lynx.scm ends here diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 58ae81d207..d39e77d978 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -274,6 +274,9 @@ networks) based on simulation of (stochastic) flow in graphs.") algorithm.") (license license:gpl3))) +(define-public ocaml4.01-mcl + (package-with-ocaml4.01 ocaml-mcl)) + (define-public randomjungle (package (name "randomjungle") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index a10c3bcbf9..39d394140b 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -104,7 +104,7 @@ #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ non-copyleft (expat . license:expat) bsd-3 public-domain bsd-4 isc (openssl . license:openssl) - bsd-2 x11-style agpl3 asl2.0)) + bsd-2 x11-style agpl3 asl2.0 perl-license)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -837,14 +837,14 @@ useful features.") (define-public libetpan (package (name "libetpan") - (version "1.7.2") + (version "1.8") (source (origin (method url-fetch) (uri (string-append "https://github.com/dinhviethoa/" name "/archive/" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "081ixgj3skglq9i7v0jb835lmfx21zi4i5b7997igwr0lj174y9j")))) + (base32 "1sxnaglp5hb0z78sgnfzva4x8m4flqhicvm1dz0krkxdmfsafrsf")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,(autoconf-wrapper)) ("automake" ,automake) @@ -875,7 +875,7 @@ useful features.") framework for different kinds of mail access: IMAP, SMTP, POP and NNTP. It provides an API for C language. It's the low-level API used by MailCore and MailCore 2.") - (license (non-copyleft "file://COPYING")))) + (license bsd-3))) (define-public compface (package @@ -1277,7 +1277,7 @@ mailboxes. Currently Maildir and IMAP are supported types.") (synopsis "Interface to mail representations") (description "Email::Abstract provides module writers with the ability to write simple, representation-independent mail handling code.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-address (package @@ -1297,7 +1297,7 @@ write simple, representation-independent mail handling code.") (description "Email::Address implements a regex-based RFC 2822 parser that locates email addresses in strings and returns a list of Email::Address objects found. Alternatively you may construct objects manually.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-date-format (package @@ -1316,7 +1316,7 @@ objects found. Alternatively you may construct objects manually.") (synopsis "Produce RFC 2822 date strings") (description "Email::Date::Format provides a means for generating an RFC 2822 compliant datetime string.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-messageid (package @@ -1335,7 +1335,7 @@ objects found. Alternatively you may construct objects manually.") (synopsis "Generate world unique message-ids") (description "Email::MessageID generates recommended message-ids to identify a message uniquely.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-mime (package @@ -1363,7 +1363,7 @@ identify a message uniquely.") handle MIME encoded messages. It takes a message as a string, splits it up into its constituent parts, and allows you access to various parts of the message. Headers are decoded from MIME encoding.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-mime-contenttype (package @@ -1384,7 +1384,7 @@ message. Headers are decoded from MIME encoding.") (synopsis "Parse MIME Content-Type headers") (description "Email::MIME::ContentType parses a MIME Content-Type header.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-mime-encodings (package @@ -1404,7 +1404,7 @@ header.") (home-page "http://search.cpan.org/dist/Email-MIME-Encodings") (synopsis "Unified interface to MIME encoding and decoding") (description "This module wraps MIME::Base64 and MIME::QuotedPrint.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-sender (package @@ -1436,7 +1436,7 @@ header.") (synopsis "Perl library for sending email") (description "Email::Sender replaces the old and sometimes problematic Email::Send library.") - (license (package-license perl)))) + (license perl-license))) (define-public perl-email-simple (package @@ -1457,7 +1457,7 @@ Email::Send library.") (synopsis "Parsing of RFC 2822 messages") (description "Email::Simple provides simple parsing of RFC 2822 message format and headers.") - (license (package-license perl)))) + (license perl-license))) (define-public libesmtp (package diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index a2e435e999..8319a7e41b 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -30,7 +30,6 @@ #:use-module (gnu packages gawk) #:use-module (gnu packages groff) #:use-module (gnu packages less) - #:use-module (gnu packages lynx) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages linux)) @@ -134,7 +133,7 @@ the traditional flat-text whatis databases.") (define-public man-pages (package (name "man-pages") - (version "4.10") + (version "4.11") (source (origin (method url-fetch) (uri @@ -147,7 +146,7 @@ the traditional flat-text whatis databases.") "man-pages-" version ".tar.xz"))) (sha256 (base32 - "1yk3ibmbc1wamw798lqw8lh203xnrjddy8wdk5d3hifmj71xz5bk")))) + "097m0gsbaz0gf9ir4lmph3h5jj6wmydk1rglfz82dysybx4q1pmd")))) (build-system gnu-build-system) (arguments '(#:phases (alist-delete 'configure %standard-phases) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 4e70bd8d1c..88a46f8e9b 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -311,6 +311,9 @@ numbers.") the OCaml language.") (license license:gpl3+))) +(define-public ocaml4.01-gsl + (package-with-ocaml4.01 ocaml-gsl)) + (define-public glpk (package (name "glpk") diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm new file mode 100644 index 0000000000..84d6f8ff78 --- /dev/null +++ b/gnu/packages/mes.scm @@ -0,0 +1,97 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu packages mes) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages commencement) + #:use-module (gnu packages cross-base) + #:use-module (gnu packages gcc) + #:use-module (gnu packages guile) + #:use-module (gnu packages package-management) + #:use-module (gnu packages perl) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix licenses) + #:use-module (guix packages)) + +(define-public nyacc + (package + (name "nyacc") + (version "0.78.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/nyacc/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0xrnl2hl9rpl50n8cihvclcd951zj640fj5kpi3d6ihwcqjcdi0a")))) + (build-system gnu-build-system) + (native-inputs + `(("guile" ,guile-2.2))) + (synopsis "LALR(1) Parser Generator in Guile") + (description + "NYACC is an LALR(1) parser generator implemented in Guile. +The syntax and nomenclature should be considered not stable. It comes with +extensive examples, including parsers for the Javascript and C99 languages.") + (home-page "https://savannah.nongnu.org/projects/nyacc") + (license (list gpl3+ lgpl3+)))) + +(define-public mes + (let ((commit "a437c173b9da1949ad966fd50dd4f26e522a910a") + (revision "0") + (triplet "i686-unknown-linux-gnu")) + (package + (name "mes") + (version (string-append "0.5-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/janneke/mes") + (commit commit))) + (file-name (string-append name "-" version)) + ;; TODO: Unbundle nyacc. + (sha256 + (base32 "1ynr0hc0k15307sgzv09k3y5rvy46h0wbh7zcblx1f9v7y8k90zv")))) + (build-system gnu-build-system) + (supported-systems '("x86_64-linux")) + (native-inputs + `(("guile" ,guile-2.2) + ;; Use cross-compiler rather than #:system "i686-linux" to get + ;; MesCC 64 bit .go files installed ready for use with Guile. + ("i686-linux-binutils" ,(cross-binutils triplet)) + ("i686-linux-gcc" ,(let ((triplet triplet)) (cross-gcc triplet))) + ("perl" ,perl))) ;build-aux/gitlog-to-changelog + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'generate-changelog + (lambda _ + (with-output-to-file "ChangeLog" + (lambda () + (display "Please run + build-aux/gitlog-to-changelog --srcdir=<git-checkout> > ChangeLog\n"))) + #t))))) + (synopsis "Maxwell Equations of Software") + (description + "Mes aims to create full source bootstrapping for GuixSD. It +consists of a mutual self-hosting [close to Guile-] Scheme interpreter +prototype in C and a Nyacc-based C compiler in [Guile] Scheme.") + (home-page "https://gitlab.com/janneke/mes") + (license gpl3+)))) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 59e2b23d32..89df0970d6 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2014, 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> @@ -166,17 +166,31 @@ identi.ca and status.net).") (define-public hexchat (package (name "hexchat") - (version "2.12.2") + (version "2.12.4") (source (origin (method url-fetch) (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-" version ".tar.xz")) (sha256 (base32 - "1xnclfbrgbkqndxygi5f27q00jd7yy54jbd1061jmhxa6wzpibbd")))) + "0ficrx56knz5y297qb0x5y02339yvyv734z7kpcx1ixvb0qr2dgs")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete dangling symlinks to a non-existent ‘/usr’. + (with-directory-excursion "m4" + (for-each (lambda (f) (delete-file f)) + '("intltool.m4" "libtool.m4" "lt~obsolete.m4" + "ltoptions.m4" "ltsugar.m4" "ltversion.m4"))) + (delete-file-recursively "build-aux") + (delete-file "po/Makefile.in.in"))))) (build-system gnu-build-system) - (native-inputs `(("pkg-config" ,pkg-config) - ("intltool" ,intltool))) + (native-inputs `(("autoconf" ,autoconf) + ("autoconf-archive" ,autoconf-archive) + ("automake" ,automake) + ("intltool" ,intltool) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) (inputs `(("dbus-glib" ,dbus-glib) ("dbus" ,dbus) ("enchant" ,enchant) @@ -190,6 +204,17 @@ identi.ca and status.net).") ("luajit" ,luajit) ("perl-xml-parser" ,perl-xml-parser) ("python-2" ,python-2))) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Release 2.12.4 wasn't properly bootstrapped. Later ones might be! + (add-after 'unpack 'bootstrap + (lambda* (#:key inputs #:allow-other-keys) + ;; This file is still required for autoreconf. + (copy-file (string-append (assoc-ref inputs "intltool") + "/share/intltool/Makefile.in.in") + "po/Makefile.in.in") + (zero? (system* "autoreconf" "-fiv"))))))) (synopsis "Graphical IRC Client") (description "HexChat lets you connect to multiple IRC networks at once. The main @@ -1001,7 +1026,7 @@ for @uref{https://torproject.org,tor} router) and many more.") (synopsis "Perl implementation of PSYC protocol") (home-page "http://perlpsyc.psyc.eu/") (license (list license:gpl2 - (package-license perl) + license:perl-license ;; contrib/irssi-psyc.pl: license:public-domain ;; bin/psycplay states AGPL with no version: diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 68937a26f5..3de49ddeeb 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; @@ -41,7 +41,7 @@ (define-public hwloc (package (name "hwloc") - (version "1.11.2") + (version "1.11.7") (source (origin (method url-fetch) (uri (string-append "https://www.open-mpi.org/software/hwloc/v" @@ -49,7 +49,7 @@ "/downloads/hwloc-" version ".tar.bz2")) (sha256 (base32 - "1y7c3ysiin0rw0sj6dbxkvjg92j4by36rykvf0vmh91q2rmrn0lc")))) + "0acph1mf7588hfx8ds26ncr6nw5fd9x92adm11fwin7f93i10sdb")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index adce8a864f..3002d27a6e 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -582,6 +582,50 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite interface. It is implemented as a frontend to @code{klick}.") (license license:gpl2+))) +(define-public libgme + (package + (name "libgme") + (version "0.6.1") + (source (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/mpyne/game-music-emu/" + "downloads/game-music-emu-" version + ".tar.bz2")) + (sha256 + (base32 + "08fk7zddpn7v93d0fa7fcypx7hvgwx9b5psj9l6m8b87k2hbw4fw")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f)) ; no check target + (home-page "https://bitbucket.org/mpyne/game-music-emu") + (synopsis "Video game music file playback library") + (description + "Game-music-emu is a collection of video game music file emulators that +support the following formats and systems: +@table @code +@item AY +ZX Spectrum/Asmtrad CPC +@item GBS +Nintendo Game Boy +@item GYM +Sega Genesis/Mega Drive +@item HES +NEC TurboGrafx-16/PC Engine +@item KSS +MSX Home Computer/other Z80 systems (doesn't support FM sound) +@item NSF/NSFE +Nintendo NES/Famicom (with VRC 6, Namco 106, and FME-7 sound) +@item SAP +Atari systems using POKEY sound chip +@item SPC +Super Nintendo/Super Famicom +@item VGM/VGZ +Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro +@end table") + (license (list license:lgpl2.1+ + ;; demo and player directories are under the Expat license + license:expat)))) + (define-public lilypond (package (name "lilypond") @@ -943,14 +987,14 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (define-public jalv-select (package (name "jalv-select") - (version "0.7") + (version "0.8") (source (origin (method url-fetch) (uri (string-append "https://github.com/brummer10/jalv_select/" "archive/V" version ".tar.gz")) (sha256 (base32 - "01y93l5c1f8za04a0y4b3v0nhsm1lhj6rny9xpdgd7jz6sl6w581")))) + "0zraagwr681b5s3qifxf399c7q93jz23c8sr42gmff9zqnvxc75q")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -961,7 +1005,7 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (add-after 'unpack 'ignore-PATH (lambda* (#:key inputs #:allow-other-keys) (substitute* "jalv.select.cpp" - (("echo \\$PATH | tr ':' '\\\n' | xargs ls") + (("echo \\$PATH.*tr ':'.*xargs ls") (string-append "ls -1 " (assoc-ref inputs "jalv") "/bin"))) (substitute* "jalv.select.h" (("gtkmm.h") "gtkmm-2.4/gtkmm.h")) @@ -983,7 +1027,7 @@ users to select LV2 plugins and run them with jalv.") (define-public synthv1 (package (name "synthv1") - (version "0.8.1") + (version "0.8.2") (source (origin (method url-fetch) (uri @@ -991,7 +1035,7 @@ users to select LV2 plugins and run them with jalv.") "/synthv1-" version ".tar.gz")) (sha256 (base32 - "0rzkr8mgy28j5kg56qqrdm05ml2wlm651yk27c2mn5ql7v92gdx3")))) + "0lmblhk0728bxi7cixc2j9p6gisicy6alybga9vwmg453snrsybr")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1014,7 +1058,7 @@ oscillators and stereo effects.") (define-public drumkv1 (package (name "drumkv1") - (version "0.8.1") + (version "0.8.2") (source (origin (method url-fetch) (uri @@ -1022,7 +1066,7 @@ oscillators and stereo effects.") "/drumkv1-" version ".tar.gz")) (sha256 (base32 - "0l6kjb1q9vslwy56836a0c65mf8z8ycam5vzz3k4qvd8g74bs1zq")))) + "0lf9x99gmmk64xq73lcwpwqznh8s79qy2fjjjzzw6sbw99w8qyz4")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1048,7 +1092,7 @@ effects.") (define-public samplv1 (package (name "samplv1") - (version "0.8.1") + (version "0.8.2") (source (origin (method url-fetch) (uri @@ -1056,7 +1100,7 @@ effects.") "/samplv1-" version ".tar.gz")) (sha256 (base32 - "15rp9d1jbb56idyrnn9cqi1i7a70z1a1qdyz7ryn0bla0ghjnich")))) + "11mxn3ff9g0x1rl4jl5rngmwlb8dmkbzsjhxb8gqhmlpfj24wl7l")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests. @@ -1866,7 +1910,7 @@ and hold, etc.") (define-public gxtuner (package (name "gxtuner") - (version "2.3") + (version "2.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/brummer10/gxtuner/" @@ -1874,7 +1918,7 @@ and hold, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1abpxiydn4c9wssz6895hnad9ipkcy3rkgzbnanvwb46nm44x6if")))) + "1hn5qjac7qd00v0sp7ijhhc3sb26ks9bni06nngivva21h61xrjr")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -1886,7 +1930,7 @@ and hold, etc.") (modify-phases %standard-phases (delete 'configure)))) (inputs - `(("gtk+" ,gtk+-2) + `(("gtk+" ,gtk+) ("jack" ,jack-1) ("fftwf" ,fftwf) ("cairo" ,cairo) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 15cf7cf609..f0344d7481 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -29,15 +29,15 @@ (define-public nano (package (name "nano") - (version "2.8.1") + (version "2.8.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/nano/nano-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "042rbhhkiw6nvwklm8zmmdlhjr8gdhdp486hafwrn1pwnpd511m4")))) + "1q5rxkvsv974085xrd2k11ffazadabcb9cnpfra0shmj71xqlgh2")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm index a494679651..44a79e7186 100644 --- a/gnu/packages/ncurses.scm +++ b/gnu/packages/ncurses.scm @@ -252,7 +252,7 @@ curses widgets, such as dialog boxes.") (description "@code{Curses} is the interface between Perl and the curses library of your system.") - (license (package-license perl)))) + (license perl-license))) (define-public stfl (package diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 3182443c19..94152226da 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -727,8 +727,7 @@ definitions and structure manipulators for Perl.") (base32 "1v3nl2kaj4fs55n1617n53q8sa3mir06898vpy1rq98zjih24h4d")) (patches - (search-patches - "perl-net-dns-resolver-programmable-Fix-broken-interface.patch")))) + (search-patches "perl-net-dns-resolver-programmable-fix.patch")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build))) @@ -739,7 +738,7 @@ definitions and structure manipulators for Perl.") "Programmable DNS resolver class for offline emulation of DNS") (description "Net::DNS::Resolver::Programmable is a programmable DNS resolver for offline emulation of DNS.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-netaddr-ip (package @@ -772,7 +771,7 @@ offline emulation of DNS.") (synopsis "Manages IPv4 and IPv6 addresses and subnets") (description "NetAddr::IP manages IPv4 and IPv6 addresses and subsets.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-net-patricia (package @@ -846,7 +845,7 @@ offline emulation of DNS.") "Look up location and network information by IP Address in Perl") (description "The Perl module 'Geo::IP'. It looks up location and network information by IP Address.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-io-socket-inet6 (package @@ -876,7 +875,7 @@ information by IP Address.") "Perl object interface for AF_INET/AF_INET6 domain sockets") (description "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain sockets in Perl.") - (license (package-license perl)))) + (license license:perl-license))) (define-public proxychains-ng (package @@ -1143,7 +1142,7 @@ networks.") (define-public speedtest-cli (package (name "speedtest-cli") - (version "1.0.5") + (version "1.0.6") (source (origin (method url-fetch) @@ -1152,7 +1151,7 @@ networks.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0y1888492kl21dz69vd526189c5aal3q790jawdb2wph42cz0cq8")))) + "1alambi1ljng6j04k7pq58jqwd0wh1q9630f17nl34ljabji5lwy")))) (build-system python-build-system) (home-page "https://github.com/sivel/speedtest-cli") (synopsis "Internet bandwidth tester") diff --git a/gnu/packages/nfs.scm b/gnu/packages/nfs.scm index f18fe6cb51..28751c4004 100644 --- a/gnu/packages/nfs.scm +++ b/gnu/packages/nfs.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 John Darrington <jmd@gnu.org> +;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,7 +21,6 @@ #:use-module (gnu packages) #:use-module (gnu packages linux) #:use-module (gnu packages databases) - #:use-module (gnu packages gsasl) #:use-module (gnu packages libevent) #:use-module (gnu packages kerberos) #:use-module (gnu packages onc-rpc) @@ -41,7 +41,7 @@ (define-public nfs-utils (package (name "nfs-utils") - (version "1.3.4") + (version "2.1.1") (source (origin (method url-fetch) (uri (string-append @@ -49,7 +49,7 @@ "/nfs-utils-" version ".tar.xz")) (sha256 (base32 - "0xarqhwy757vazv9gqhyrgxsrx083yhvkkih01jh83fqm305naml")))) + "1vqrqzhg9nh2wj1icp7k8v9dibgnn521b45np79nnkmqf16bbbhg")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -57,48 +57,47 @@ ,(string-append "--with-start-statd=" (assoc-ref %outputs "out") "/sbin/start-statd") ,(string-append "--with-krb5=" (assoc-ref %build-inputs "mit-krb5"))) - #:phases (modify-phases %standard-phases - (add-before - 'configure 'adjust-command-file-names - (lambda _ - ;; Remove assumptions of FHS from start-statd script - (substitute* `("utils/statd/start-statd") - (("^PATH=.*") "") - (("^flock") - (string-append - (assoc-ref %build-inputs "util-linux") - "/bin/flock")) - (("^exec rpc.statd") - (string-append "exec " - (assoc-ref %outputs "out") "/sbin/rpc.statd"))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'adjust-command-file-names + (lambda _ + ;; Remove assumptions of FHS from start-statd script + (substitute* `("utils/statd/start-statd") + (("^PATH=.*") "") + (("^flock") + (string-append + (assoc-ref %build-inputs "util-linux") + "/bin/flock")) + (("^exec rpc.statd") + (string-append "exec " + (assoc-ref %outputs "out") "/sbin/rpc.statd"))) - ;; This hook tries to write to /var - ;; That needs to be done by a service too. - (substitute* `("Makefile.in") - (("^install-data-hook:") - "install-data-hook-disabled-for-guix:")) + ;; This hook tries to write to /var + ;; That needs to be done by a service too. + (substitute* `("Makefile.in") + (("^install-data-hook:") + "install-data-hook-disabled-for-guix:")) - ;; Replace some hard coded paths. - (substitute* `("utils/nfsd/nfssvc.c") - (("/bin/mount") - (string-append - (assoc-ref %build-inputs "util-linux") - "/bin/mount"))) - (substitute* `("utils/statd/statd.c") - (("/usr/sbin/") - (string-append (assoc-ref %outputs "out") "/sbin/"))) - (substitute* `("utils/osd_login/Makefile.in" - "utils/mount/Makefile.in" - "utils/nfsdcltrack/Makefile.in") - (("^sbindir = /sbin") - (string-append "sbindir = " - (assoc-ref %outputs "out") "/sbin"))) - #t))))) + ;; Replace some hard coded paths. + (substitute* `("utils/nfsd/nfssvc.c") + (("/bin/mount") + (string-append + (assoc-ref %build-inputs "util-linux") + "/bin/mount"))) + (substitute* `("utils/statd/statd.c") + (("/usr/sbin/") + (string-append (assoc-ref %outputs "out") "/sbin/"))) + (substitute* `("utils/osd_login/Makefile.in" + "utils/mount/Makefile.in" + "utils/nfsdcltrack/Makefile.in") + (("^sbindir = /sbin") + (string-append "sbindir = " + (assoc-ref %outputs "out") "/sbin"))) + #t))))) (inputs `(("libevent" ,libevent) ("libnfsidmap" ,libnfsidmap) ("sqlite" ,sqlite) ("lvm2" ,lvm2) - ("gss" ,gss) ("util-linux" ,util-linux) ("mit-krb5" ,mit-krb5) ("libtirpc" ,libtirpc))) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 0c21a74da6..b9f1d53cf6 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +38,6 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages libevent) - #:use-module (gnu packages lynx) #:use-module (gnu packages m4) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) @@ -50,6 +50,7 @@ #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) + #:use-module (gnu packages web-browsers) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (guix build-system gnu) @@ -58,7 +59,8 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix svn-download) - #:use-module (guix utils)) + #:use-module (guix utils) + #:use-module (srfi srfi-1)) ;; A shortcut for files from ocaml forge. Downloaded files are computed from ;; their number, not their name. @@ -212,6 +214,36 @@ functional, imperative and object-oriented styles of programming.") ;; distributed under lgpl2.0. (license (list license:qpl license:lgpl2.0)))) +(define-public ocaml-4.01 + (package + (inherit ocaml) + (version "4.01.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://caml.inria.fr/pub/distrib/ocaml-" + (version-major+minor version) + "/ocaml-" version ".tar.xz")) + (sha256 + (base32 + "03d7ida94s1gpr3gadf4jyhmh5rrszd5s4m4z59daaib25rvfyv7")))) + (arguments + (substitute-keyword-arguments (package-arguments ocaml) + ((#:phases phases) + `(modify-phases ,phases + (replace 'build + (lambda _ + ;; Specifying '-j' at all causes the build to fail. + (zero? (system* "make" "world.opt")))) + (replace 'check + (lambda _ + (with-directory-excursion "testsuite" + (zero? (system* + "make" + "all" + (string-append + "TOPDIR=" (getcwd) "/..")))))))))))) + (define-public opam (package (name "opam") @@ -807,6 +839,14 @@ compilation and linkage, there are new frontends of the various OCaml compilers that can directly deal with packages.") (license license:x11))) +(define-public ocaml4.01-findlib + (package + (inherit ocaml-findlib) + (name "ocaml4.01-findlib") + (native-inputs + `(("m4" ,m4) + ("ocaml" ,ocaml-4.01))))) + ;; note that some tests may hang for no obvious reason. (define-public ocaml-ounit (package @@ -832,6 +872,9 @@ compilers that can directly deal with packages.") other XUnit testing frameworks.") (license license:expat))) +(define-public ocaml4.01-ounit + (package-with-ocaml4.01 ocaml-ounit)) + (define-public camlzip (package (name "camlzip") @@ -874,6 +917,24 @@ JAR format. It provides functions for reading from and writing to compressed files in these formats.") (license license:lgpl2.1+))) +(define-public ocaml4.01-camlzip + (let ((base (package-with-ocaml4.01 camlzip))) + (package + (inherit base) + (name "ocaml4.01-camlzip") + ;; Version 1.05 is the last version to support OCaml 4.01.0. + (version "1.05") + (source + (origin + (method url-fetch) + (uri + (string-append + "http://forge.ocamlcore.org/frs/download.php/1037/camlzip-" + version ".tar.gz")) + (sha256 + (base32 + "0syh72jk9s0qwjmmfrkqchaj98m020ii082jn38pwnmb6v3p02wk"))))))) + (define-public ocamlmod (package (name "ocamlmod") @@ -1024,6 +1085,9 @@ qcheck library. The possibilities range from trivial tests -- extremely simple to use -- to sophisticated random generation of test cases.") (license license:lgpl3+))) +(define-public ocaml4.01-qtest + (package-with-ocaml4.01 ocaml-qtest)) + (define-public ocaml-stringext (package (name "ocaml-stringext") @@ -1087,8 +1151,22 @@ a camlp4-based tool that allows to instrument your application before running tests. After application execution, it is possible to generate a report in HTML format that is the replica of the application source code annotated with code coverage information.") + (properties `((ocaml4.01-variant . ,(delay ocaml4.01-bisect)))) (license license:gpl3+))) +(define-public ocaml4.01-bisect + (let ((base (package-with-ocaml4.01 (strip-ocaml4.01-variant ocaml-bisect)))) + (package + (inherit base) + (arguments + `(#:ocaml ,ocaml-4.01 + ;; Camlp4 is included with OCaml 4.01, so do not include it as a + ;; separate input. + ,@(strip-keyword-arguments '(#:make-flags) (package-arguments base)))) + (native-inputs `(,@(alist-delete "camlp4" (package-native-inputs base)))) + (propagated-inputs + `(,@(alist-delete "camlp4" (package-propagated-inputs base))))))) + (define-public ocaml-bitstring (package (name "ocaml-bitstring") @@ -1267,6 +1345,9 @@ coexistence with the old (version 2) SQLite and its OCaml wrapper @code{ocaml-sqlite}.") (license license:expat))) +(define-public ocaml4.01-sqlite3 + (package-with-ocaml4.01 ocaml-sqlite3)) + (define-public ocaml-csv (package (name "ocaml-csv") @@ -1291,6 +1372,9 @@ read and write files in this format as well as some convenience functions to manipulate such data.") (license (package-license camlp4)))) +(define-public ocaml4.01-csv + (package-with-ocaml4.01 ocaml-csv)) + (define-public ocaml-mtime (package (name "ocaml-mtime") @@ -1680,6 +1764,9 @@ format. It can process XML documents without a complete in-memory representation of the data.") (license license:isc))) +(define-public ocaml4.01-xmlm + (package-with-ocaml4.01 ocaml-xmlm)) + (define-public ocaml-ulex (package (name "ocaml-ulex") @@ -1945,6 +2032,9 @@ every compliant installation of OCaml and organize these libraries into a hierarchy of modules.") (license license:lgpl2.1+))) +(define-public ocaml4.01-batteries + (package-with-ocaml4.01 ocaml-batteries)) + (define-public ocaml-pcre (package (name "ocaml-pcre") diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm index ddae1a7f88..2b67ed1908 100644 --- a/gnu/packages/ocr.scm +++ b/gnu/packages/ocr.scm @@ -28,14 +28,14 @@ (define-public ocrad (package (name "ocrad") - (version "0.25") + (version "0.26") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/ocrad/ocrad-" version ".tar.lz")) (sha256 (base32 - "1m2dblgvvjs48rsglfdwq0ib9zk8h9n34xsh67ibrg0g0ffbw477")))) + "0g4fq7maybdnd1471kd05a3f5sb7spa3d26k706rk85sd5wd70y3")))) (build-system gnu-build-system) (native-inputs `(("lzip" ,lzip))) (home-page "https://www.gnu.org/software/ocrad/") diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index 5f67823a40..a76ac36eab 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> +;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +22,7 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (gnu packages) #:use-module (gnu packages kerberos) #:use-module (gnu packages pkg-config) #:use-module (guix build-system gnu)) @@ -28,15 +30,16 @@ (define-public libtirpc (package (name "libtirpc") - (version "0.2.4") + (version "1.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/libtirpc/libtirpc/" version "/libtirpc-" version ".tar.bz2")) + (patches (search-patches "libtirpc-CVE-2017-8779.patch")) (sha256 (base32 - "18a337wa4amf0k21wnimp3yzs5l3cxqndz4x3x8bm993zhfy5hs5")))) + "17mqrdgsgp9m92pmq7bvr119svdg753prqqxmg4cnz5y657rfmji")))) (build-system gnu-build-system) (arguments `(#:phases @@ -66,16 +69,17 @@ IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).") (define-public rpcbind (package (name "rpcbind") - (version "0.2.3") + (version "0.2.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" version "/" name "-" version ".tar.bz2")) + (patches (search-patches "rpcbind-CVE-2017-8779.patch")) (sha256 (base32 - "0yyjzv4161rqxrgjcijkrawnk55rb96ha0pav48s03l2klx855wq")))) + "0rjc867mdacag4yqvs827wqhkh27135rp9asj06ixhf71m9rljh7")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index a931a0e269..8ebf6b0578 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -68,207 +68,202 @@ arch "-linux" "/20131110/guile-2.0.9.tar.xz")))) -(define-public guix-0.12.0 - (package - (name "guix") - (version "0.12.0") - (source (origin - (method url-fetch) - (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-" - version ".tar.gz")) - (sha256 - (base32 - "1jgy5mlygmhxdqhrp6vr8w83ndcm5mk64xfravr8l2d7hq8y40b2")))) - (build-system gnu-build-system) - (arguments - `(#:configure-flags (list - "--localstatedir=/var" - "--sysconfdir=/etc" - (string-append "--with-bash-completion-dir=" - (assoc-ref %outputs "out") - "/etc/bash_completion.d") - (string-append "--with-libgcrypt-prefix=" - (assoc-ref %build-inputs - "libgcrypt"))) - #:parallel-tests? #f ;work around <http://bugs.gnu.org/21097> +(define-public guix + ;; Latest version of Guix, which may or may not correspond to a release. + ;; Note: the 'update-guix-package.scm' script expects this definition to + ;; start precisely like this. + (let ((version "0.12.0") + (commit "ba2260dbbc5a3c915e2cbd54d93f2f3af2a864c3") + (revision 10)) + (package + (name "guix") - #:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 popen) - (ice-9 rdelim)) + (version (if (zero? revision) + version + (string-append version "-" + (number->string revision) + "." (string-take commit 7)))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/r/guix.git") + (commit commit))) + (sha256 + (base32 + "0nkwbblsnl7kv2n8jf8c6rl3a7dynaqxizhhni18vbnmvza35c79")) + (file-name (string-append "guix-" version "-checkout")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list + "--localstatedir=/var" + "--sysconfdir=/etc" + (string-append "--with-bash-completion-dir=" + (assoc-ref %outputs "out") + "/etc/bash_completion.d") + (string-append "--with-libgcrypt-prefix=" + (assoc-ref %build-inputs + "libgcrypt")) - #:phases (modify-phases %standard-phases - (add-before - 'configure 'copy-bootstrap-guile - (lambda* (#:key system inputs #:allow-other-keys) - (define (boot-guile-version arch) - (cond ((string=? "armhf" arch) "2.0.11") - ((string=? "aarch64" arch) "2.0.14") - (else "2.0.9"))) + ;; Set 'DOT_USER_PROGRAM' to the empty string so + ;; we don't keep a reference to Graphviz, whose + ;; closure is pretty big (too big for the GuixSD + ;; installation image.) + "ac_cv_path_DOT_USER_PROGRAM=dot" - (define (copy arch) - (let ((guile (assoc-ref inputs - (string-append "boot-guile/" - arch))) - (target (string-append "gnu/packages/bootstrap/" - arch "-linux/" - "/guile-" - (boot-guile-version arch) - ".tar.xz"))) - (mkdir-p (dirname target)) ;XXX: eventually unneeded - (copy-file guile target))) + ;; To avoid problems with the length of shebangs, + ;; choose a fixed-width and short directory name + ;; for tests. + "ac_cv_guix_test_root=/tmp/guix-tests") + #:parallel-tests? #f ;work around <http://bugs.gnu.org/21097> - (copy "i686") - (copy "x86_64") - (copy "mips64el") - (copy "armhf") - (copy "aarch64") - #t)) - (add-after - 'unpack 'disable-container-tests - ;; XXX FIXME: These tests fail within the build container. - (lambda _ - (substitute* "tests/syscalls.scm" - (("^\\(test-(assert|equal) \"(clone|setns|pivot-root)\"" all) - (string-append "(test-skip 1)\n" all))) - (substitute* "tests/containers.scm" - (("^\\(test-(assert|equal)" all) - (string-append "(test-skip 1)\n" all))) - (when (file-exists? "tests/guix-environment-container.sh") - (substitute* "tests/guix-environment-container.sh" - (("guix environment --version") - "exit 77\n"))) - #t)) - (add-before 'check 'set-SHELL - (lambda _ - ;; 'guix environment' tests rely on 'SHELL' having a - ;; correct value, so set it. - (setenv "SHELL" (which "sh")) - #t)) - (add-after 'install 'wrap-program - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Make sure the 'guix' command finds GnuTLS and - ;; Guile-JSON automatically. - (let* ((out (assoc-ref outputs "out")) - (guile (assoc-ref inputs "guile")) - (json (assoc-ref inputs "guile-json")) - (ssh (assoc-ref inputs "guile-ssh")) - (gnutls (assoc-ref inputs "gnutls")) - (effective - (read-line - (open-pipe* OPEN_READ - (string-append guile "/bin/guile") - "-c" "(display (effective-version))"))) - (path (string-append - json "/share/guile/site/" effective ":" - ssh "/share/guile/site/" effective ":" - gnutls "/share/guile/site/" effective))) + #:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 popen) + (ice-9 rdelim)) - (wrap-program (string-append out "/bin/guix") - `("GUILE_LOAD_PATH" ":" prefix (,path)) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,path))) + #:phases (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + ;; Make sure 'msgmerge' can modify the PO files. + (for-each (lambda (po) + (chmod po #o666)) + (find-files "." "\\.po$")) - #t)))))) - (native-inputs `(("pkg-config" ,pkg-config) + (zero? (system* "sh" "bootstrap")))) + (add-before + 'configure 'copy-bootstrap-guile + (lambda* (#:key system inputs #:allow-other-keys) + (define (boot-guile-version arch) + (cond ((string=? "armhf" arch) "2.0.11") + ((string=? "aarch64" arch) "2.0.14") + (else "2.0.9"))) - ;; XXX: Keep the development inputs here even though - ;; they're unnecessary, just so that 'guix environment - ;; guix' always contains them. - ("autoconf" ,(autoconf-wrapper)) - ("automake" ,automake) - ("gettext" ,gettext-minimal) - ("texinfo" ,texinfo) - ("graphviz" ,graphviz) - ("help2man" ,help2man))) - (inputs - (let ((boot-guile (lambda (arch hash) - (origin - (method url-fetch) - (uri (boot-guile-uri arch)) - (sha256 hash))))) - `(("bzip2" ,bzip2) - ("gzip" ,gzip) - ("zlib" ,zlib) ;for 'guix publish' + (define (copy arch) + (let ((guile (assoc-ref inputs + (string-append "boot-guile/" + arch))) + (target (string-append "gnu/packages/bootstrap/" + arch "-linux/" + "/guile-" + (boot-guile-version arch) + ".tar.xz"))) + (mkdir-p (dirname target)) ;XXX: eventually unneeded + (copy-file guile target))) - ("sqlite" ,sqlite) - ("libgcrypt" ,libgcrypt) - ("guile" ,guile-2.0) + (copy "i686") + (copy "x86_64") + (copy "mips64el") + (copy "armhf") + (copy "aarch64") + #t)) + (add-after + 'unpack 'disable-container-tests + ;; XXX FIXME: These tests fail within the build container. + (lambda _ + (substitute* "tests/syscalls.scm" + (("^\\(test-(assert|equal) \"(clone|setns|pivot-root)\"" all) + (string-append "(test-skip 1)\n" all))) + (substitute* "tests/containers.scm" + (("^\\(test-(assert|equal)" all) + (string-append "(test-skip 1)\n" all))) + (when (file-exists? "tests/guix-environment-container.sh") + (substitute* "tests/guix-environment-container.sh" + (("guix environment --version") + "exit 77\n"))) + #t)) + (add-before 'check 'set-SHELL + (lambda _ + ;; 'guix environment' tests rely on 'SHELL' having a + ;; correct value, so set it. + (setenv "SHELL" (which "sh")) + #t)) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make sure the 'guix' command finds GnuTLS and + ;; Guile-JSON automatically. + (let* ((out (assoc-ref outputs "out")) + (guile (assoc-ref inputs "guile")) + (json (assoc-ref inputs "guile-json")) + (ssh (assoc-ref inputs "guile-ssh")) + (gnutls (assoc-ref inputs "gnutls")) + (effective + (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (path (string-append + json "/share/guile/site/" effective ":" + ssh "/share/guile/site/" effective ":" + gnutls "/share/guile/site/" effective))) - ("boot-guile/i686" - ,(boot-guile "i686" - (base32 - "0im800m30abgh7msh331pcbjvb4n02smz5cfzf1srv0kpx3csmxp"))) - ("boot-guile/x86_64" - ,(boot-guile "x86_64" - (base32 - "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3"))) - ("boot-guile/mips64el" - ,(boot-guile "mips64el" - (base32 - "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr"))) - ("boot-guile/armhf" - ,(boot-guile "armhf" - (base32 - "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))) - ("boot-guile/aarch64" - ,(boot-guile "aarch64" - (base32 - "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r")))))) - (propagated-inputs - `(("gnutls" ,gnutls) ;for 'guix download' & co. - ("guile-json" ,guile-json) - ("guile-ssh" ,guile-ssh))) + (wrap-program (string-append out "/bin/guix") + `("GUILE_LOAD_PATH" ":" prefix (,path)) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,path))) - (home-page "https://www.gnu.org/software/guix/") - (synopsis "Functional package manager for installed software packages and versions") - (description - "GNU Guix is a functional package manager for the GNU system, and is + #t)))))) + (native-inputs `(("pkg-config" ,pkg-config) + + ;; XXX: Keep the development inputs here even though + ;; they're unnecessary, just so that 'guix environment + ;; guix' always contains them. + ("autoconf" ,(autoconf-wrapper)) + ("automake" ,automake) + ("gettext" ,gettext-minimal) + ("texinfo" ,texinfo) + ("graphviz" ,graphviz) + ("help2man" ,help2man))) + (inputs + (let ((boot-guile (lambda (arch hash) + (origin + (method url-fetch) + (uri (boot-guile-uri arch)) + (sha256 hash))))) + `(("bzip2" ,bzip2) + ("gzip" ,gzip) + ("zlib" ,zlib) ;for 'guix publish' + + ("sqlite" ,sqlite) + ("libgcrypt" ,libgcrypt) + ("guile" ,guile-2.2) + + ("boot-guile/i686" + ,(boot-guile "i686" + (base32 + "0im800m30abgh7msh331pcbjvb4n02smz5cfzf1srv0kpx3csmxp"))) + ("boot-guile/x86_64" + ,(boot-guile "x86_64" + (base32 + "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3"))) + ("boot-guile/mips64el" + ,(boot-guile "mips64el" + (base32 + "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr"))) + ("boot-guile/armhf" + ,(boot-guile "armhf" + (base32 + "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))) + ("boot-guile/aarch64" + ,(boot-guile "aarch64" + (base32 + "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r")))))) + (propagated-inputs + `(("gnutls" ,gnutls/guile-2.2) ;for 'guix download' & co. + ("guile-json" ,guile-json) + ("guile-ssh" ,guile-ssh))) + + (home-page "https://www.gnu.org/software/guix/") + (synopsis "Functional package manager for installed software packages and versions") + (description + "GNU Guix is a functional package manager for the GNU system, and is also a distribution thereof. It includes a virtual machine image. Besides the usual package management features, it also supports transactional upgrades and roll-backs, per-user profiles, and much more. It is based on the Nix package manager.") - (license gpl3+) - (properties '((ftp-server . "alpha.gnu.org"))))) - -(define guix-devel - ;; Development version of Guix. - ;; - ;; Note: use a very short commit id; with a longer one, the limit on - ;; hash-bang lines would be exceeded while running the tests. - (let ((commit "25a49294caf2386e65fc1b12a2508324be0b1cc2")) - (package (inherit guix-0.12.0) - (version (string-append "0.12.0-9." (string-take commit 4))) - (source (origin - (method git-fetch) - (uri (git-reference - ;; "git://git.sv.gnu.org/guix.git" temporarily - ;; unavailable (XXX). - (url "http://git.savannah.gnu.org/r/guix.git") - (commit commit))) - (sha256 - (base32 - "0p4rh0629j89v4ka5dsp70a1xrfhg7sxjjq54p68vw7x5dkann4a")) - (file-name (string-append "guix-" version "-checkout")))) - (arguments - (substitute-keyword-arguments (package-arguments guix-0.12.0) - ((#:configure-flags flags) - ;; Set 'DOT_USER_PROGRAM' to the empty string so we don't keep a - ;; reference to Graphviz, whose closure is pretty big (too big for - ;; the GuixSD installation image.) - `(cons "ac_cv_path_DOT_USER_PROGRAM=dot" ,flags)) - ((#:phases phases) - `(modify-phases ,phases - (add-after - 'unpack 'bootstrap - (lambda _ - ;; Make sure 'msgmerge' can modify the PO files. - (for-each (lambda (po) - (chmod po #o666)) - (find-files "." "\\.po$")) - - (zero? (system* "sh" "bootstrap"))))))))))) + (license gpl3+) + (properties '((ftp-server . "alpha.gnu.org")))))) -(define-public guix guix-devel) +;; Alias for backward compatibility. +(define-public guix-devel guix) (define (source-file? file stat) "Return true if FILE is likely a source file, false if it is a typical @@ -310,14 +305,14 @@ out) and returning a package that uses that as its 'source'." (define-public nix (package (name "nix") - (version "1.11.6") + (version "1.11.9") (source (origin (method url-fetch) (uri (string-append "http://nixos.org/releases/nix/nix-" version "/nix-" version ".tar.xz")) (sha256 (base32 - "18xjg7cfvqzhsmvir6xmw95jxvl2w7icphbbll462xbnj9ddaag7")))) + "1qg7qrfr60dysmyfg3ijgani71l23p1kqadhjs8kz11pgwkkx50f")))) (build-system gnu-build-system) ;; XXX: Should we pass '--with-store-dir=/gnu/store'? But then we'd also ;; need '--localstatedir=/var'. But then! The thing would use /var/nix diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 0c40fe933e..66b67eac6d 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -45,7 +45,7 @@ (define-public parallel (package (name "parallel") - (version "20170322") + (version "20170422") (source (origin (method url-fetch) @@ -53,7 +53,7 @@ version ".tar.bz2")) (sha256 (base32 - "1xjk6np0gwa6p5j26camwybx1n0vqz0f0bksi593rgw800211y7q")))) + "0afk1q8mqzz02h6imyykgi9gwk5gj08hzs6lwgd65ilj4slkh93s")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 9daacd871e..f6af6a6519 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -197,8 +197,9 @@ passwords that could be guessed by crack by filtering them out, at source.") (source (origin (method url-fetch) (uri (list - (string-append "https://fedorahosted.org/releases/l/i/" - name "/" name "-" version ".tar.bz2") + (string-append "https://github.com/" name "/" name + "/releases/download/" name "-" version + "/" name "-" version ".tar.bz2") (string-append "https://launchpad.net/libpwquality/trunk/" version "/+download/" name "-" version ".tar.bz2"))) @@ -212,7 +213,7 @@ passwords that could be guessed by crack by filtering them out, at source.") (inputs `(("cracklib" ,cracklib))) (synopsis "Password quality checker") - (home-page "https://fedorahosted.org/libpwquality/") + (home-page "https://github.com/libpwquality/libpwquality") (description "Libpwquality is a library for password quality checking and generation of random passwords that pass the checks.") diff --git a/gnu/packages/patches/abiword-black-drawing-with-gtk322.patch b/gnu/packages/patches/abiword-black-drawing-with-gtk322.patch new file mode 100644 index 0000000000..88a5ca4c38 --- /dev/null +++ b/gnu/packages/patches/abiword-black-drawing-with-gtk322.patch @@ -0,0 +1,49 @@ +commit 2ee38d1881aeea27bb49acc450631d813d1f28ba +Author: Hubert Figuière <hub@figuiere.net> +Date: Wed Dec 7 09:44:01 2016 -0500 + + Bug 13815 - draw event should return TRUE + + This fix the black drawing regression witj Gtk3.22 + +diff --git a/src/af/xap/gtk/xap_UnixFrameImpl.cpp b/src/af/xap/gtk/xap_UnixFrameImpl.cpp +index 780000e..10f8e00 100644 +--- a/src/af/xap/gtk/xap_UnixFrameImpl.cpp ++++ b/src/af/xap/gtk/xap_UnixFrameImpl.cpp +@@ -1208,9 +1208,9 @@ gint XAP_UnixFrameImpl::_fe::delete_event(GtkWidget * w, GdkEvent * /*event*/, g + } + + #if GTK_CHECK_VERSION(3,0,0) +-gint XAP_UnixFrameImpl::_fe::draw(GtkWidget * w, cairo_t * cr) ++gboolean XAP_UnixFrameImpl::_fe::draw(GtkWidget * w, cairo_t * cr) + #else +-gint XAP_UnixFrameImpl::_fe::expose(GtkWidget * w, GdkEventExpose* pExposeEvent) ++gboolean XAP_UnixFrameImpl::_fe::expose(GtkWidget * w, GdkEventExpose* pExposeEvent) + #endif + { + XAP_UnixFrameImpl * pUnixFrameImpl = static_cast<XAP_UnixFrameImpl *>(g_object_get_data(G_OBJECT(w), "user_data")); +@@ -1243,7 +1243,7 @@ gint XAP_UnixFrameImpl::_fe::expose(GtkWidget * w, GdkEventExpose* pExposeEvent) + pView->draw(&rClip); + #endif + } +- return FALSE; ++ return TRUE; + } + + static bool bScrollWait = false; +diff --git a/src/af/xap/gtk/xap_UnixFrameImpl.h b/src/af/xap/gtk/xap_UnixFrameImpl.h +index 30ee5d8..a0ff57f 100644 +--- a/src/af/xap/gtk/xap_UnixFrameImpl.h ++++ b/src/af/xap/gtk/xap_UnixFrameImpl.h +@@ -152,9 +152,9 @@ protected: + static gint key_release_event(GtkWidget* w, GdkEventKey* e); + static gint delete_event(GtkWidget * w, GdkEvent * /*event*/, gpointer /*data*/); + #if GTK_CHECK_VERSION(3,0,0) +- static gint draw(GtkWidget * w, cairo_t * cr); ++ static gboolean draw(GtkWidget * w, cairo_t * cr); + #else +- static gint expose(GtkWidget * w, GdkEventExpose* pExposeEvent); ++ static gboolean expose(GtkWidget * w, GdkEventExpose* pExposeEvent); + #endif + static gint do_ZoomUpdate( gpointer /* xap_UnixFrame * */ p); + static void vScrollChanged(GtkAdjustment * w, gpointer /*data*/); diff --git a/gnu/packages/patches/abiword-explictly-cast-bools.patch b/gnu/packages/patches/abiword-explictly-cast-bools.patch index 7927a180ba..97ae6653c2 100644 --- a/gnu/packages/patches/abiword-explictly-cast-bools.patch +++ b/gnu/packages/patches/abiword-explictly-cast-bools.patch @@ -2,18 +2,18 @@ As of JPEG-9, the type 'boolean' is an enumeration, but since glib defines TRUE and FALSE as numeric constants and this is C++, they need to be explicitly casted. ---- a/src/af/util/xp/ut_jpeg.cpp 2009-07-08 19:33:53.000000000 +0200 -+++ b/src/af/util/xp/ut_jpeg.cpp 2014-09-06 19:55:55.876997404 +0200 -@@ -102,7 +102,7 @@ +--- a/src/af/util/xp/ut_jpeg.cpp ++++ b/src/af/util/xp/ut_jpeg.cpp +@@ -102,7 +102,7 @@ static boolean _jpegFillInputBuffer (j_decompress_ptr cinfo) src->pub.next_input_byte = src->sourceBuf->getPointer (src->pos); src->pub.bytes_in_buffer = src->sourceBuf->getLength (); - -- return TRUE; + +- return 1; // boolean is a libjpeg type that is an int. + return (boolean)TRUE; } /* -@@ -161,7 +161,7 @@ +@@ -161,7 +161,7 @@ bool UT_JPEG_getDimensions(const UT_ByteBuf* pBB, UT_sint32& iImageWidth, /* set the data source */ _JPEG_ByteBufSrc (&cinfo, pBB); @@ -22,7 +22,7 @@ casted. jpeg_start_decompress(&cinfo); iImageWidth = cinfo.output_width; iImageHeight = cinfo.output_height; -@@ -189,7 +189,7 @@ +@@ -189,7 +189,7 @@ bool UT_JPEG_getRGBData(const UT_ByteBuf* pBB, UT_Byte* pDest, UT_sint32 iDestRo /* set the data source */ _JPEG_ByteBufSrc (&cinfo, pBB); diff --git a/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch b/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch new file mode 100644 index 0000000000..9c817d4198 --- /dev/null +++ b/gnu/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch @@ -0,0 +1,514 @@ +Patch for version 3.01, taken from upstream at +https://sourceforge.net/projects/cdrtools/files/cdrtools-3.01-fix-20151126-mkisofs-isoinfo.patch + +--- cdrtools-3.01.orig/mkisofs/diag/isoinfo.c 2015-07-22 20:36:45.000000000 +0000 ++++ cdrtools-3.01/mkisofs/diag/isoinfo.c 2015-11-17 19:35:40.000000000 +0000 +@@ -1,8 +1,8 @@ +-/* @(#)isoinfo.c 1.95 15/07/22 joerg */ ++/* @(#)isoinfo.c 1.100 15/11/17 joerg */ + #include <schily/mconfig.h> + #ifndef lint + static UConst char sccsid[] = +- "@(#)isoinfo.c 1.95 15/07/22 joerg"; ++ "@(#)isoinfo.c 1.100 15/11/17 joerg"; + #endif + /* + * File isodump.c - dump iso9660 directory information. +@@ -148,8 +148,10 @@ LOCAL char er_id[256]; + LOCAL int su_version = 0; + LOCAL int rr_version = 0; + LOCAL int aa_version = 0; ++LOCAL int cl_extent = 0; + LOCAL int ucs_level = 0; + LOCAL BOOL iso9660_inodes = FALSE; ++LOCAL uid_t myuid; + + #ifdef USE_FIND + LOCAL findn_t *find_node; /* syntaxtree from find_parse() */ +@@ -208,6 +210,9 @@ LOCAL void extract __PR((char *rootname + LOCAL void extract_file __PR((int f, + struct iso_directory_record * idr, + char *fname)); ++LOCAL void parse_cl_dir __PR((struct iso_directory_record *idr, ++ int extent)); ++LOCAL BOOL parse_de __PR((struct iso_directory_record *idr)); + LOCAL void parse_dir __PR((char * rootname, int extent, int len)); + LOCAL void usage __PR((int excode)); + EXPORT int main __PR((int argc, char *argv[])); +@@ -459,7 +464,6 @@ parse_rr(pnt, len, cont_flag) + int slen; + int xlen; + int ncount; +- int cl_extent; + int pl_extent; + int cont_extent, cont_offset, cont_size; + int flag1, flag2; +@@ -469,7 +473,7 @@ parse_rr(pnt, len, cont_flag) + + symlinkname[0] = 0; + +- cont_extent = cont_offset = cont_size = 0; ++ cl_extent = cont_extent = cont_offset = cont_size = 0; + + ncount = 0; + flag1 = -1; +@@ -714,6 +718,7 @@ struct todo + }; + + LOCAL struct todo *todo_idr = NULL; ++LOCAL struct todo **todo_pp = &todo_idr; + + LOCAL char *months[12] = {"Jan", "Feb", "Mar", "Apr", + "May", "Jun", "Jul", +@@ -962,8 +967,14 @@ static BOOL isfirst = TRUE; + close(f); + return; + setmode: +- fchmodat(AT_FDCWD, fname, fstat_buf.st_mode, AT_SYMLINK_NOFOLLOW); + fchownat(AT_FDCWD, fname, fstat_buf.st_uid, fstat_buf.st_gid, AT_SYMLINK_NOFOLLOW); ++ if (myuid != 0 && S_ISDIR(fstat_buf.st_mode)) { ++ /* ++ * Temporary hack until we have a dirstack like star. ++ */ ++ fstat_buf.st_mode |= S_IWUSR; ++ } ++ fchmodat(AT_FDCWD, fname, fstat_buf.st_mode, AT_SYMLINK_NOFOLLOW); + times[0].tv_sec = fstat_buf.st_atime; + times[0].tv_nsec = stat_ansecs(&fstat_buf); + times[1].tv_sec = fstat_buf.st_mtime; +@@ -1001,6 +1012,143 @@ extract_file(f, idr, fname) + } + } + ++ ++LOCAL void ++parse_cl_dir(idr, extent) ++ struct iso_directory_record *idr; ++ int extent; ++{ ++ char cl_name_buf[256*3]; ++ ++ strlcpy(cl_name_buf, name_buf, sizeof (cl_name_buf)); ++#ifdef USE_SCG ++ readsecs(extent - sector_offset, idr, 1); ++#else ++ lseek(fileno(infile), ((off_t)(extent - sector_offset)) << 11, SEEK_SET); ++ read(fileno(infile), idr, 2048); ++#endif ++ ++ if (parse_de(idr) && use_rock) ++ dump_rr(idr); ++ strlcpy(name_buf, cl_name_buf, sizeof (name_buf)); ++} ++ ++LOCAL BOOL ++parse_de(idr) ++ struct iso_directory_record *idr; ++{ ++ unsigned char uc; ++ ++ if (idr->length[0] == 0) ++ return (FALSE); ++ memset(&fstat_buf, 0, sizeof (fstat_buf)); ++ found_rr = 0; ++ name_buf[0] = xname[0] = 0; ++ fstat_buf.st_size = (off_t)(unsigned)isonum_733((unsigned char *)idr->size); ++ if (idr->flags[0] & 2) ++ fstat_buf.st_mode |= S_IFDIR; ++ else ++ fstat_buf.st_mode |= S_IFREG; ++ if (idr->name_len[0] == 1 && idr->name[0] == 0) ++ strcpy(name_buf, "."); ++ else if (idr->name_len[0] == 1 && idr->name[0] == 1) ++ strcpy(name_buf, ".."); ++ else { ++ switch (ucs_level) { ++ case 3: ++ case 2: ++ case 1: ++ /* ++ * Unicode name. Convert as best we can. ++ */ ++ { ++ int j; ++ name_buf[0] = '\0'; ++#ifdef USE_ICONV ++ if (use_iconv(unls)) { ++ int u; ++ char *to = name_buf; ++ ++ for (j = 0, u = 0; j < (int)idr->name_len[0] / 2; j++) { ++ char *ibuf = (char *)&idr->name[j*2]; ++ size_t isize = 2; /* UCS-2 character size */ ++ size_t osize = 4; ++ ++ if (iconv(unls->sic_uni2cd, (__IC_CONST char **)&ibuf, &isize, ++ (char **)&to, &osize) == -1) { ++ int err = geterrno(); ++ ++ if ((err == EINVAL || err == EILSEQ) && ++ osize == 4) { ++ *to = '_'; ++ u += 1; ++ to++; ++ } ++ } else { ++ u += 4 - osize; ++ to = &name_buf[u]; ++ } ++ } ++ j = u; ++ } else ++#endif ++ for (j = 0; j < (int)idr->name_len[0] / 2; j++) { ++ UInt16_t unichar; ++ ++ unichar = (idr->name[j*2] & 0xFF) * 256 + ++ (idr->name[j*2+1] & 0xFF); ++ ++ /* ++ * Get the backconverted char ++ */ ++ if (unls) ++ uc = sic_uni2c(unls, unichar); ++ else ++ uc = unichar > 255 ? '_' : unichar; ++ ++ name_buf[j] = uc ? uc : '_'; ++ } ++ name_buf[j] = '\0'; ++ } ++ break; ++ case 0: ++ /* ++ * Normal non-Unicode name. ++ */ ++ strncpy(name_buf, idr->name, idr->name_len[0]); ++ name_buf[idr->name_len[0]] = 0; ++ break; ++ default: ++ /* ++ * Don't know how to do these yet. Maybe they are the same ++ * as one of the above. ++ */ ++ exit(1); ++ } ++ } ++ memcpy(date_buf, idr->date, 9); ++ /* ++ * Always first set up time stamps and file modes from ++ * ISO-9660. This is used as a fallback in case that ++ * there is no related Rock Ridge based data. ++ */ ++ fstat_buf.st_atime = ++ fstat_buf.st_mtime = ++ fstat_buf.st_ctime = iso9660_time(date_buf, NULL, FALSE); ++ fstat_buf.st_mode |= S_IRUSR|S_IXUSR | ++ S_IRGRP|S_IXGRP | ++ S_IROTH|S_IXOTH; ++ fstat_buf.st_nlink = 1; ++ fstat_buf.st_ino = 0; ++ fstat_buf.st_uid = 0; ++ fstat_buf.st_gid = 0; ++ if (iso9660_inodes) { ++ fstat_buf.st_ino = (unsigned long) ++ isonum_733((unsigned char *)idr->extent); ++ } ++ return (TRUE); ++} ++ + LOCAL void + parse_dir(rootname, extent, len) + char *rootname; +@@ -1012,12 +1160,13 @@ parse_dir(rootname, extent, len) + struct iso_directory_record * idr; + struct iso_directory_record didr; + struct stat dstat; +- unsigned char uc; ++ unsigned char cl_buffer[2048]; + unsigned char flags = 0; + Llong size = 0; + int sextent = 0; + int rlen; + int blen; ++ int rr_flags = 0; + static char *n = 0; + static int nlen = 0; + +@@ -1039,115 +1188,23 @@ static int nlen = 0; + i = 0; + while (1 == 1) { + idr = (struct iso_directory_record *) &buffer[i]; +- if (idr->length[0] == 0) break; +- memset(&fstat_buf, 0, sizeof (fstat_buf)); +- found_rr = 0; +- name_buf[0] = xname[0] = 0; +- fstat_buf.st_size = (off_t)(unsigned)isonum_733((unsigned char *)idr->size); +- if (idr->flags[0] & 2) +- fstat_buf.st_mode |= S_IFDIR; +- else +- fstat_buf.st_mode |= S_IFREG; +- if (idr->name_len[0] == 1 && idr->name[0] == 0) +- strcpy(name_buf, "."); +- else if (idr->name_len[0] == 1 && idr->name[0] == 1) +- strcpy(name_buf, ".."); +- else { +- switch (ucs_level) { +- case 3: +- case 2: +- case 1: +- /* +- * Unicode name. Convert as best we can. +- */ +- { +- int j; +- +- name_buf[0] = '\0'; +-#ifdef USE_ICONV +- if (use_iconv(unls)) { +- int u; +- char *to = name_buf; +- +- for (j = 0, u = 0; j < (int)idr->name_len[0] / 2; j++) { +- char *ibuf = (char *)&idr->name[j*2]; +- size_t isize = 2; /* UCS-2 character size */ +- size_t osize = 4; +- +- if (iconv(unls->sic_uni2cd, (__IC_CONST char **)&ibuf, &isize, +- (char **)&to, &osize) == -1) { +- int err = geterrno(); +- +- if ((err == EINVAL || err == EILSEQ) && +- osize == 4) { +- *to = '_'; +- u += 1; +- to++; +- } +- } else { +- u += 4 - osize; +- to = &name_buf[u]; +- } +- } +- j = u; +- } else +-#endif +- for (j = 0; j < (int)idr->name_len[0] / 2; j++) { +- UInt16_t unichar; +- +- unichar = (idr->name[j*2] & 0xFF) * 256 + +- (idr->name[j*2+1] & 0xFF); +- +- /* +- * Get the backconverted char +- */ +- if (unls) +- uc = sic_uni2c(unls, unichar); +- else +- uc = unichar > 255 ? '_' : unichar; ++ if (idr->length[0] == 0) ++ break; ++ parse_de(idr); ++ if (use_rock) { ++ rr_flags = dump_rr(idr); + +- name_buf[j] = uc ? uc : '_'; +- } +- name_buf[j] = '\0'; +- } +- break; +- case 0: ++ if (rr_flags & RR_FLAG_CL) { + /* +- * Normal non-Unicode name. ++ * Need to reparse the child link ++ * but note that we parse "CL/." ++ * so we get no usable file name. + */ +- strncpy(name_buf, idr->name, idr->name_len[0]); +- name_buf[idr->name_len[0]] = 0; +- break; +- default: +- /* +- * Don't know how to do these yet. Maybe they are the same +- * as one of the above. +- */ +- exit(1); +- } ++ idr = (struct iso_directory_record *) cl_buffer; ++ parse_cl_dir(idr, cl_extent); ++ } else if (rr_flags & RR_FLAG_RE) ++ goto cont; /* skip rr_moved */ + } +- memcpy(date_buf, idr->date, 9); +- /* +- * Always first set up time stamps and file modes from +- * ISO-9660. This is used as a fallback in case that +- * there is no related Rock Ridge based data. +- */ +- fstat_buf.st_atime = +- fstat_buf.st_mtime = +- fstat_buf.st_ctime = iso9660_time(date_buf, NULL, FALSE); +- fstat_buf.st_mode |= S_IRUSR|S_IXUSR | +- S_IRGRP|S_IXGRP | +- S_IROTH|S_IXOTH; +- fstat_buf.st_nlink = 1; +- fstat_buf.st_ino = 0; +- fstat_buf.st_uid = 0; +- fstat_buf.st_gid = 0; +- if (iso9660_inodes) { +- fstat_buf.st_ino = (unsigned long) +- isonum_733((unsigned char *)idr->extent); +- } +- if (use_rock) +- dump_rr(idr); + if (Xtract && + (idr->flags[0] & 2) != 0 && + idr->name_len[0] == 1 && +@@ -1170,30 +1227,30 @@ static int nlen = 0; + n[rlen] = '\0'; + + if ((idr->flags[0] & 2) != 0 && +- (idr->name_len[0] != 1 || ++ ((rr_flags & RR_FLAG_CL) || ++ idr->name_len[0] != 1 || + (idr->name[0] != 0 && idr->name[0] != 1))) { + /* + * This is a plain directory (neither "xxx/." + * nor "xxx/.."). + * Add this directory to the todo list. + */ +- td = todo_idr; +- if (td != NULL) { +- while (td->next != NULL) +- td = td->next; +- td->next = (struct todo *) malloc(sizeof (*td)); +- td = td->next; +- } else { +- todo_idr = td = (struct todo *) malloc(sizeof (*td)); +- } ++ td = (struct todo *) malloc(sizeof (*td)); ++ if (td == NULL) ++ comerr(_("No memory.\n")); + td->next = NULL; + td->extent = isonum_733((unsigned char *)idr->extent); + td->length = isonum_733((unsigned char *)idr->size); + td->name = (char *) malloc(strlen(rootname) + + strlen(name_buf) + 2); ++ if (td->name == NULL) ++ comerr(_("No memory.\n")); + strcpy(td->name, rootname); + strcat(td->name, name_buf); + strcat(td->name, "/"); ++ ++ *todo_pp = td; ++ todo_pp = &td->next; + } else { + if (xtract && strcmp(xtract, n) == 0) { + extract_file(STDOUT_FILENO, idr, "stdout"); +@@ -1253,6 +1310,7 @@ static int nlen = 0; + if ((idr->flags[0] & ISO_MULTIEXTENT) == 0) + size = 0; + } ++ cont: + i += buffer[i]; + if (i > 2048 - offsetof(struct iso_directory_record, name[0])) break; + } +@@ -1381,12 +1439,13 @@ main(argc, argv) + usage(0); + if (prvers) { + printf(_("isoinfo %s (%s-%s-%s) Copyright (C) 1993-1999 %s (C) 1999-2015 %s\n"), +- VERSION, ++ "3.02a02", + HOST_CPU, HOST_VENDOR, HOST_OS, + _("Eric Youngdale"), + _("Joerg Schilling")); + exit(0); + } ++ myuid = getuid(); + #ifdef USE_FIND + if (do_find) { + finda_t fa; +--- cdrtools-3.01.orig/mkisofs/udf.c 2013-04-24 20:45:18.000000000 +0000 ++++ cdrtools-3.01/mkisofs/udf.c 2015-11-25 22:07:30.000000000 +0000 +@@ -1,15 +1,15 @@ +-/* @(#)udf.c 1.42 13/04/24 Copyright 2001-2013 J. Schilling */ ++/* @(#)udf.c 1.43 15/11/25 Copyright 2001-2015 J. Schilling */ + #include <schily/mconfig.h> + #ifndef lint + static UConst char sccsid[] = +- "@(#)udf.c 1.42 13/04/24 Copyright 2001-2013 J. Schilling"; ++ "@(#)udf.c 1.43 15/11/25 Copyright 2001-2015 J. Schilling"; + #endif + /* + * udf.c - UDF support for mkisofs + * + * Written by Ben Rudiak-Gould (2001). + * +- * Copyright 2001-2013 J. Schilling. ++ * Copyright 2001-2015 J. Schilling. + */ + /* + * This program is free software; you can redistribute it and/or modify +@@ -98,7 +98,7 @@ static UConst char sccsid[] = + extern int use_sparcboot; + + extern struct directory *root; +-extern time_t begun; ++extern struct timeval tv_begun; + + static unsigned lba_main_seq; + static unsigned lba_main_seq_copy; +@@ -110,7 +110,7 @@ static unsigned lba_end_anchor_vol_desc; + static unsigned num_udf_files; + static unsigned num_udf_directories; + +-static unsigned volume_set_id[2]; ++static unsigned volume_set_id[2] = { 0, 0 }; + + #define UDF_MAIN_SEQ_LENGTH (16) + #define UDF_INTEG_SEQ_LENGTH (2) +@@ -723,7 +723,7 @@ set_primary_vol_desc(buf, lba) + /*pvd->volume_abstract;*/ + /*pvd->volume_copyright_notice;*/ + /*pvd->application_ident;*/ +- set_timestamp_from_time_t(&pvd->recording_date_and_time, begun); ++ set_timestamp_from_time_t(&pvd->recording_date_and_time, tv_begun.tv_sec); + set_impl_ident(&pvd->impl_ident); + set_tag(&pvd->desc_tag, UDF_TAGID_PRIMARY_VOLUME_DESC, lba, 512); + } +@@ -831,7 +831,7 @@ set_logical_vol_integrity_desc(buf, lba) + udf_logical_volume_integrity_desc *lvid = + (udf_logical_volume_integrity_desc *)buf; + +- set_timestamp_from_time_t(&lvid->recording_date, begun); ++ set_timestamp_from_time_t(&lvid->recording_date, tv_begun.tv_sec); + set32(&lvid->integrity_type, UDF_INTEGRITY_TYPE_CLOSE); + /*lvid->next_integrity_extent;*/ + set64(&lvid->logical_volume_contents_use.unique_id, +@@ -859,7 +859,7 @@ set_file_set_desc(buf, rba) + { + udf_file_set_desc *fsd = (udf_file_set_desc *)buf; + +- set_timestamp_from_time_t(&fsd->recording_date_and_time, begun); ++ set_timestamp_from_time_t(&fsd->recording_date_and_time, tv_begun.tv_sec); + set16(&fsd->interchange_level, 3); + set16(&fsd->maximum_interchange_level, 3); + set32(&fsd->character_set_list, 1); +@@ -1986,8 +1986,10 @@ udf_main_seq_write(out) + * volume_set_id needs to be set to a (64-bit) "unique" number. + * This will have to do for now. + */ +- volume_set_id[0] = begun; +- volume_set_id[1] = (unsigned)clock(); /* XXX Maybe non-portable */ ++ if (volume_set_id[0] == 0) { ++ volume_set_id[0] = tv_begun.tv_sec; ++ volume_set_id[1] = (unsigned)tv_begun.tv_usec; ++ } + + memset(buf, 0, sizeof (buf)); + set_primary_vol_desc(buf, last_extent_written++); +--- cdrtools-3.01.orig/mkisofs/mkisofs.c 2015-01-01 14:19:51.000000000 +0000 ++++ cdrtools-3.01/mkisofs/mkisofs.c +@@ -69 +69 @@ int path_ind; +-char version_string[] = VERSION; ++char version_string[] = "3.01-fix-20151126"; diff --git a/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch b/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch new file mode 100644 index 0000000000..c6e1d27315 --- /dev/null +++ b/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch @@ -0,0 +1,33 @@ +From 126a97d1f22f7d784d392b2b7d5aadf0a4e18c0d Mon Sep 17 00:00:00 2001 +From: Petter <petter@mykolab.ch> +Date: Thu, 27 Apr 2017 20:28:02 +0200 +Subject: [PATCH] Avoid checking uninitialized member + simplify condition + +--- + qmltermwidget/lib/TerminalDisplay.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/qmltermwidget/lib/TerminalDisplay.cpp b/qmltermwidget/lib/TerminalDisplay.cpp +index 189a609..36d2cd2 100644 +--- a/qmltermwidget/lib/TerminalDisplay.cpp ++++ b/qmltermwidget/lib/TerminalDisplay.cpp +@@ -325,6 +325,7 @@ TerminalDisplay::TerminalDisplay(QQuickItem *parent) + ,_terminalSizeHint(false) + ,_terminalSizeStartup(true) + ,_bidiEnabled(false) ++,_mouseMarks(false) + ,_actSel(0) + ,_wordSelectionMode(false) + ,_lineSelectionMode(false) +@@ -1846,7 +1847,7 @@ void TerminalDisplay::mousePressEvent(QMouseEvent* ev) + } + else if ( ev->button() == Qt::MidButton ) + { +- if ( _mouseMarks || (!_mouseMarks && (ev->modifiers() & Qt::ShiftModifier)) ) ++ if ( _mouseMarks || (ev->modifiers() & Qt::ShiftModifier) ) + emitSelection(true,ev->modifiers() & Qt::ControlModifier); + else + emit mouseSignal( 1, charColumn +1, charLine +1 +_scrollBar->value() -_scrollBar->maximum() , 0); +-- +2.12.2 + diff --git a/gnu/packages/patches/cool-retro-term-fix-array-size.patch b/gnu/packages/patches/cool-retro-term-fix-array-size.patch new file mode 100644 index 0000000000..04a2a27971 --- /dev/null +++ b/gnu/packages/patches/cool-retro-term-fix-array-size.patch @@ -0,0 +1,25 @@ +From c91d7ae5dbb00c8392a9f93283dc56c3e296cccd Mon Sep 17 00:00:00 2001 +From: Petter <petter@mykolab.ch> +Date: Thu, 27 Apr 2017 20:19:21 +0200 +Subject: [PATCH] Fix size of the array passed to memset() + +--- + qmltermwidget/lib/History.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/qmltermwidget/lib/History.cpp b/qmltermwidget/lib/History.cpp +index 0f9c13f..ab6f7be 100644 +--- a/qmltermwidget/lib/History.cpp ++++ b/qmltermwidget/lib/History.cpp +@@ -515,7 +515,7 @@ void HistoryScrollBlockArray::addCells(const Character a[], int count) + // put cells in block's data + assert((count * sizeof(Character)) < ENTRIES); + +- memset(b->data, 0, ENTRIES); ++ memset(b->data, 0, sizeof(b->data)); + + memcpy(b->data, a, count * sizeof(Character)); + b->size = count * sizeof(Character); +-- +2.12.2 + diff --git a/gnu/packages/patches/cool-retro-term-memory-leak-1.patch b/gnu/packages/patches/cool-retro-term-memory-leak-1.patch new file mode 100644 index 0000000000..f3fbac17de --- /dev/null +++ b/gnu/packages/patches/cool-retro-term-memory-leak-1.patch @@ -0,0 +1,32 @@ +From 08628fda19128b75248548357e416bc373f14f91 Mon Sep 17 00:00:00 2001 +From: Yen Chi Hsuan <yan12125@gmail.com> +Date: Sat, 18 Mar 2017 02:50:34 +0800 +Subject: [PATCH] Fix memory leak in hotspot (URLs & emails) detection + +--- + qmltermwidget/lib/Filter.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/qmltermwidget/lib/Filter.cpp b/qmltermwidget/lib/Filter.cpp +index 5ca7bee..2e8d2fb 100644 +--- a/qmltermwidget/lib/Filter.cpp ++++ b/qmltermwidget/lib/Filter.cpp +@@ -26,6 +26,7 @@ + // Qt + #include <QAction> + #include <QApplication> ++#include <QtAlgorithms> + #include <QClipboard> + #include <QString> + #include <QTextStream> +@@ -194,6 +195,7 @@ Filter::~Filter() + } + void Filter::reset() + { ++ qDeleteAll(_hotspotList); + _hotspots.clear(); + _hotspotList.clear(); + } +-- +2.12.2 + diff --git a/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch b/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch new file mode 100644 index 0000000000..7a033df413 --- /dev/null +++ b/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch @@ -0,0 +1,205 @@ +From 96ceffdfdcedd3ae33c46b11357aa2518e0a6152 Mon Sep 17 00:00:00 2001 +From: Petter <petter@mykolab.ch> +Date: Thu, 27 Apr 2017 18:55:10 +0200 +Subject: [PATCH] Remove non-free fonts from settings menu + +--- a/app/qml/ApplicationSettings.qml ++++ b/app/qml/ApplicationSettings.qml +@@ -409,7 +409,7 @@ + obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"TERMINUS_SCALED","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.16,"jitter":0.18,"burnIn":0.45,"staticNoise":0.1,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}' + builtin: true + } +- ListElement{ ++ /*ListElement{ + text: "Default Scanlines" + obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"COMMODORE_PET","fontColor":"#00ff5b","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.14,"jitter":0.11,"burnIn":0.4,"staticNoise":0.05,"rasterization":1,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}' + builtin: true +@@ -433,7 +433,7 @@ + text: "IBM Dos" + obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.07,"contrast":0.85,"fontName":"IBM_DOS","fontColor":"#ffffff","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.13,"horizontalSync":0,"jitter":0.16,"burnIn":0.3,"staticNoise":0.03,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":1,"saturationColor":0,"rbgShift":0.35,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}' + builtin: true +- } ++ }*/ + ListElement{ + text: "IBM 3278" + obj_string: '{"ambientLight":0.1,"backgroundColor":"#000000","bloom":0.15,"brightness":0.5,"flickering":0,"contrast":0.85,"fontName":"IBM_3278","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0,"horizontalSync":0,"jitter":0,"burnIn":0.6,"staticNoise":0,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}' +diff --git a/app/qml/FontPixels.qml b/app/qml/FontPixels.qml +index 6ff85da..6f0d0ba 100644 +--- a/app/qml/FontPixels.qml ++++ b/app/qml/FontPixels.qml +@@ -32,7 +32,7 @@ QtObject{ + property bool lowResolutionFont: true + + property ListModel fontlist: ListModel{ +- ListElement{ ++ /*ListElement{ + name: "COMMODORE_PET" + text: "Commodore PET (1977)" + source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf" +@@ -40,7 +40,7 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.8 +- } ++ }*/ + ListElement{ + name: "PROGGY_TINY" + text: "Proggy Tiny (Modern)" +@@ -68,7 +68,7 @@ QtObject{ + baseScaling: 3.0 + fontWidth: 1.0 + } +- ListElement{ ++ /*ListElement{ + name: "APPLE_II" + text: "Apple ][ (1977)" + source: "fonts/1977-apple2/PrintChar21.ttf" +@@ -76,8 +76,8 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.9 +- } +- ListElement{ ++ }*/ ++ /*ListElement{ + name: "ATARI_400" + text: "Atari 400-800 (1979)" + source: "fonts/1979-atari-400-800/ATARI400800_original.TTF" +@@ -85,8 +85,8 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.8 +- } +- ListElement{ ++ }*/ ++ /*ListElement{ + name: "COMMODORE_64" + text: "Commodore 64 (1982)" + source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf" +@@ -94,6 +94,6 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.8 +- } ++ }*/ + } + } +diff --git a/app/qml/FontScanlines.qml b/app/qml/FontScanlines.qml +index eebf00b..410d7b6 100644 +--- a/app/qml/FontScanlines.qml ++++ b/app/qml/FontScanlines.qml +@@ -32,7 +32,7 @@ QtObject{ + property bool lowResolutionFont: true + + property ListModel fontlist: ListModel{ +- ListElement{ ++ /*ListElement{ + name: "COMMODORE_PET" + text: "Commodore PET (1977)" + source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf" +@@ -40,7 +40,7 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.7 +- } ++ }*/ + ListElement{ + name: "PROGGY_TINY" + text: "Proggy Tiny (Modern)" +@@ -68,7 +68,7 @@ QtObject{ + baseScaling: 3.0 + fontWidth: 1.0 + } +- ListElement{ ++ /*ListElement{ + name: "APPLE_II" + text: "Apple ][ (1977)" + source: "fonts/1977-apple2/PrintChar21.ttf" +@@ -76,8 +76,8 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.8 +- } +- ListElement{ ++ }*/ ++ /*ListElement{ + name: "ATARI_400" + text: "Atari 400-800 (1979)" + source: "fonts/1979-atari-400-800/ATARI400800_original.TTF" +@@ -85,8 +85,8 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.7 +- } +- ListElement{ ++ }*/ ++ /*ListElement{ + name: "COMMODORE_64" + text: "Commodore 64 (1982)" + source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf" +@@ -94,6 +94,6 @@ QtObject{ + pixelSize: 8 + baseScaling: 4.0 + fontWidth: 0.7 +- } ++ }*/ + } + } +diff --git a/app/qml/Fonts.qml b/app/qml/Fonts.qml +index ad20844..882808a 100644 +--- a/app/qml/Fonts.qml ++++ b/app/qml/Fonts.qml +@@ -80,7 +80,7 @@ + fontWidth: 1.0 + lowResolutionFont: true + } +- ListElement{ ++ /*ListElement{ + name: "COMMODORE_PET_SCALED" + text: "Commodore PET (1977)" + source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf" +@@ -89,7 +89,7 @@ + baseScaling: 3.5 + fontWidth: 0.7 + lowResolutionFont: true +- } ++ }*/ + ListElement{ + name: "PROGGY_TINY_SCALED" + text: "Proggy Tiny (Modern)" +@@ -100,7 +100,7 @@ + fontWidth: 0.9 + lowResolutionFont: true + } +- ListElement{ ++ /*ListElement{ + name: "APPLE_II_SCALED" + text: "Apple ][ (1977)" + source: "fonts/1977-apple2/PrintChar21.ttf" +@@ -149,7 +149,7 @@ + baseScaling: 2.0 + fontWidth: 1.0 + lowResolutionFont: true +- } ++ }*/ + ListElement{ + name: "HERMIT" + text: "HD: Hermit (Modern)" +@@ -177,7 +177,7 @@ + fontWidth: 1.0 + lowResolutionFont: false + } +- ListElement{ ++ /*ListElement{ + name: "MONACO" + text: "HD: Monaco (Modern)" + source: "fonts/modern-monaco/monaco.ttf" +@@ -185,7 +185,7 @@ + pixelSize: 30 + fontWidth: 1.0 + lowResolutionFont: false +- } ++ }*/ + ListElement{ + name: "INCONSOLATA" + text: "HD: Inconsolata (Modern)" diff --git a/gnu/packages/patches/dvd+rw-tools-add-include.patch b/gnu/packages/patches/dvd+rw-tools-add-include.patch new file mode 100644 index 0000000000..800f8f30ba --- /dev/null +++ b/gnu/packages/patches/dvd+rw-tools-add-include.patch @@ -0,0 +1,14 @@ +Without <limits.h>, INT_MAX is not defined. + +diff --git a/transport.hxx b/transport.hxx +index 35a57a7..838add6 100644 +--- a/transport.hxx ++++ b/transport.hxx +@@ -11,6 +11,7 @@ + #include <stdlib.h> + #include <unistd.h> + #include <string.h> ++#include <limits.h> + #include <sys/types.h> + #include <sys/stat.h> + #include <fcntl.h> diff --git a/gnu/packages/patches/elixir-disable-failing-tests.patch b/gnu/packages/patches/elixir-disable-failing-tests.patch index 0c67562f8d..547598b292 100644 --- a/gnu/packages/patches/elixir-disable-failing-tests.patch +++ b/gnu/packages/patches/elixir-disable-failing-tests.patch @@ -16,7 +16,7 @@ index 3ffd56c..1232d19 100644 @@ -39,6 +39,7 @@ end defmodule Kernel.CLI.OptionParsingTest do use ExUnit.Case, async: true - + + @tag :skip test "properly parses paths" do root = fixture_path("../../..") |> to_charlist @@ -24,7 +24,7 @@ index 3ffd56c..1232d19 100644 @@ -57,6 +58,7 @@ end defmodule Kernel.CLI.AtExitTest do use ExUnit.Case, async: true - + + @tag :skip test "invokes at_exit callbacks" do assert elixir(fixture_path("at_exit.exs") |> to_charlist) == @@ -32,7 +32,7 @@ index 3ffd56c..1232d19 100644 @@ -66,6 +68,7 @@ end defmodule Kernel.CLI.ErrorTest do use ExUnit.Case, async: true - + + @tag :skip test "properly format errors" do assert :string.str('** (throw) 1', elixir('-e "throw 1"')) == 0 @@ -40,7 +40,7 @@ index 3ffd56c..1232d19 100644 @@ -86,6 +89,7 @@ defmodule Kernel.CLI.CompileTest do {:ok, [tmp_dir_path: tmp_dir_path, beam_file_path: beam_file_path, fixture: fixture]} end - + + @tag :skip test "compiles code", context do assert elixirc('#{context[:fixture]} -o #{context[:tmp_dir_path]}') == '' @@ -48,7 +48,7 @@ index 3ffd56c..1232d19 100644 @@ -96,6 +100,7 @@ defmodule Kernel.CLI.CompileTest do Code.delete_path context[:tmp_dir_path] end - + + @tag :skip test "fails on missing patterns", context do output = elixirc('#{context[:fixture]} non_existing.ex -o #{context[:tmp_dir_path]}') @@ -56,11 +56,11 @@ index 3ffd56c..1232d19 100644 @@ -103,6 +108,7 @@ defmodule Kernel.CLI.CompileTest do refute File.exists?(context[:beam_file_path]), "expected the sample to not be compiled" end - + + @tag :skip test "fails on missing write access to .beam file", context do compilation_args = '#{context[:fixture]} -o #{context[:tmp_dir_path]}' - + diff --git a/lib/elixir/test/elixir/kernel/dialyzer_test.exs b/lib/elixir/test/elixir/kernel/dialyzer_test.exs index 801d852..40fc5bc 100644 --- a/lib/elixir/test/elixir/kernel/dialyzer_test.exs @@ -68,19 +68,19 @@ index 801d852..40fc5bc 100644 @@ -60,16 +60,19 @@ defmodule Kernel.DialyzerTest do assert_dialyze_no_warnings! context end - + + @tag :skip test "no warnings on rewrites", context do copy_beam! context, Dialyzer.Rewrite assert_dialyze_no_warnings! context end - + + @tag :skip test "no warnings on raise", context do copy_beam! context, Dialyzer.Raise assert_dialyze_no_warnings! context end - + + @tag :skip test "no warnings on macrocallback", context do copy_beam! context, Dialyzer.Macrocallback @@ -94,7 +94,7 @@ index aafa559..0f9c178 100644 assert System.endianness == System.compiled_endianness end - -+ ++ + @tag :skip test "argv/0" do list = elixir('-e "IO.inspect System.argv" -- -o opt arg1 arg2 --long-opt 10') @@ -106,7 +106,7 @@ index fff3351..d6ed1b3 100644 @@ -244,6 +244,7 @@ defmodule Mix.DepTest do end end - + + @tag :skip test "remote converger" do deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"}, @@ -114,39 +114,12 @@ index fff3351..d6ed1b3 100644 @@ -301,6 +302,7 @@ defmodule Mix.DepTest do end end - + + @tag :skip test "remote converger is not invoked if deps diverge" do deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"}, {:git_repo, "0.2.0", git: MixTest.Case.fixture_path("git_repo"), only: :test}] -diff --git a/lib/mix/test/mix/rebar_test.exs b/lib/mix/test/mix/rebar_test.exs -index d2dd098..12cef15 100644 ---- a/lib/mix/test/mix/rebar_test.exs -+++ b/lib/mix/test/mix/rebar_test.exs -@@ -120,6 +120,7 @@ defmodule Mix.RebarTest do - assert Enum.all?(deps, &(&1.manager == :rebar3)) - end - -+ @tag :skip - test "Rebar overrides" do - Mix.Project.push(RebarOverrideAsDep) - -@@ -150,6 +151,7 @@ defmodule Mix.RebarTest do - end - end - -+ @tag :skip - test "get and compile dependencies for Rebar" do - Mix.Project.push(RebarAsDep) - -@@ -180,6 +182,7 @@ defmodule Mix.RebarTest do - end - end - -+ @tag :skip - test "get and compile dependencies for rebar3" do - Mix.Project.push(Rebar3AsDep) - + diff --git a/lib/mix/test/mix/shell/io_test.exs b/lib/mix/test/mix/shell/io_test.exs index 9bfb6b4..d982ef3 100644 --- a/lib/mix/test/mix/shell/io_test.exs @@ -154,11 +127,11 @@ index 9bfb6b4..d982ef3 100644 @@ -29,6 +29,7 @@ defmodule Mix.Shell.IOTest do assert capture_io("", fn -> refute yes?("Ok?") end) end - + + @tag :skip test "runs a given command" do assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == "hello\n" - + diff --git a/lib/mix/test/mix/shell/quiet_test.exs b/lib/mix/test/mix/shell/quiet_test.exs index 626429b..99fab35 100644 --- a/lib/mix/test/mix/shell/quiet_test.exs @@ -166,11 +139,11 @@ index 626429b..99fab35 100644 @@ -29,6 +29,7 @@ defmodule Mix.Shell.QuietTest do assert capture_io("", fn -> refute yes?("Ok?") end) end - + + @tag :skip test "runs a given command" do assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == "" - + diff --git a/lib/mix/test/mix/tasks/cmd_test.exs b/lib/mix/test/mix/tasks/cmd_test.exs index db4bf06..4d441f7 100644 --- a/lib/mix/test/mix/tasks/cmd_test.exs @@ -178,7 +151,7 @@ index db4bf06..4d441f7 100644 @@ -3,6 +3,7 @@ Code.require_file "../../test_helper.exs", __DIR__ defmodule Mix.Tasks.CmdTest do use MixTest.Case - + + @tag :skip test "runs the command for each app" do in_fixture "umbrella_dep/deps/umbrella", fn -> @@ -190,19 +163,19 @@ index 4f09ff3..c371997 100644 @@ -29,6 +29,7 @@ defmodule Mix.Tasks.Deps.TreeTest do end end - + + @tag :skip test "shows the dependency tree", context do Mix.Project.push ConvergedDepsApp - + @@ -109,6 +110,7 @@ defmodule Mix.Tasks.Deps.TreeTest do end end - + + @tag :skip test "shows the dependency tree in DOT graph format", context do Mix.Project.push ConvergedDepsApp - + diff --git a/lib/mix/test/mix/tasks/deps_test.exs b/lib/mix/test/mix/tasks/deps_test.exs index b061777..cc45cf8 100644 --- a/lib/mix/test/mix/tasks/deps_test.exs @@ -210,43 +183,43 @@ index b061777..cc45cf8 100644 @@ -96,6 +96,7 @@ end end - + + @tag :skip test "prints list of dependencies and their lock status" do Mix.Project.push DepsApp - + @@ -409,6 +409,7 @@ defmodule Mix.Tasks.DepsTest do end end - + + @tag :skip test "fails on diverged dependencies by requirement" do Mix.Project.push ConvergedDepsApp - + @@ -440,6 +441,7 @@ defmodule Mix.Tasks.DepsTest do end end - + + @tag :skip test "fails on diverged dependencies even when optional" do Mix.Project.push ConvergedDepsApp - + @@ -469,6 +471,7 @@ defmodule Mix.Tasks.DepsTest do end end - + + @tag :skip test "works with converged dependencies" do Mix.Project.push ConvergedDepsApp - + @@ -491,6 +494,7 @@ defmodule Mix.Tasks.DepsTest do purge [GitRepo, GitRepo.Mixfile] end - + + @tag :skip test "works with overridden dependencies" do Mix.Project.push OverriddenDepsApp - + diff --git a/lib/mix/test/mix/umbrella_test.exs b/lib/mix/test/mix/umbrella_test.exs index 69f9428..406668a 100644 --- a/lib/mix/test/mix/umbrella_test.exs @@ -254,8 +227,58 @@ index 69f9428..406668a 100644 @@ -98,6 +98,7 @@ defmodule Mix.UmbrellaTest do end end - + + @tag :skip test "loads umbrella child dependencies in all environments" do in_fixture "umbrella_dep/deps/umbrella", fn -> Mix.Project.in_project :umbrella, ".", fn _ -> + +diff --git a/lib/elixir/test/elixir/kernel/dialyzer_test.exs b/lib/elixir/test/elixir/kernel/dialyzer_test.exs +index 792222c..e90beb9 100644 +--- a/lib/elixir/test/elixir/kernel/dialyzer_test.exs ++++ b/lib/elixir/test/elixir/kernel/dialyzer_test.exs +@@ -54,6 +54,7 @@ defmodule Kernel.DialyzerTest do + {:ok, [outdir: dir, dialyzer: dialyzer]} + end + ++ @tag :skip + test "no warnings on valid remote calls", context do + copy_beam! context, Dialyzer.RemoteCall + assert_dialyze_no_warnings! context +@@ -78,11 +79,13 @@ defmodule Kernel.DialyzerTest do + assert_dialyze_no_warnings! context + end + ++ @tag :skip + test "no warnings on struct update", context do + copy_beam! context, Dialyzer.StructUpdate + assert_dialyze_no_warnings! context + end + ++ @tag :skip + test "no warnings on protocol calls with opaque types", context do + copy_beam! context, Dialyzer.ProtocolOpaque + copy_beam! context, Dialyzer.ProtocolOpaque.Entity +@@ -90,6 +93,7 @@ defmodule Kernel.DialyzerTest do + assert_dialyze_no_warnings! context + end + ++ @tag :skip + test "no warnings on and/2 and or/2", context do + copy_beam! context, Dialyzer.BooleanCheck + assert_dialyze_no_warnings! context + +diff --git a/Makefile b/Makefile +index 2fc4f9a..aef8366 100644 +--- a/Makefile ++++ b/Makefile +@@ -201,7 +201,7 @@ $(TEST_EBIN)/%.beam: $(TEST_ERL)/%.erl + $(Q) mkdir -p $(TEST_EBIN) + $(Q) $(ERLC) -o $(TEST_EBIN) $< + +-test_elixir: test_stdlib test_ex_unit test_logger test_mix test_eex test_iex ++test_elixir: test_stdlib test_ex_unit test_logger test_eex test_iex + + test_stdlib: compile + @ echo "==> elixir (exunit)" + diff --git a/gnu/packages/patches/gnome-shell-CVE-2017-8288.patch b/gnu/packages/patches/gnome-shell-CVE-2017-8288.patch new file mode 100644 index 0000000000..5d8e31563f --- /dev/null +++ b/gnu/packages/patches/gnome-shell-CVE-2017-8288.patch @@ -0,0 +1,54 @@ +Fix CVE-2017-8288: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8288 +http://seclists.org/oss-sec/2017/q2/136 + +Patch copied from upstream source repository: + +https://git.gnome.org/browse/gnome-shell/commit/?id=ff425d1db7082e2755d2a405af53861552acf2a1 + +From ff425d1db7082e2755d2a405af53861552acf2a1 Mon Sep 17 00:00:00 2001 +From: Emilio Pozuelo Monfort <pochu27@gmail.com> +Date: Tue, 25 Apr 2017 17:27:42 +0200 +Subject: extensionSystem: handle reloading broken extensions + +Some extensions out there may fail to reload. When that happens, +we need to catch any exceptions so that we don't leave things in +a broken state that could lead to leaving extensions enabled in +the screen shield. + +https://bugzilla.gnome.org/show_bug.cgi?id=781728 +--- + js/ui/extensionSystem.js | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js +index a4dc29e..fc352b8 100644 +--- a/js/ui/extensionSystem.js ++++ b/js/ui/extensionSystem.js +@@ -282,12 +282,20 @@ function _onVersionValidationChanged() { + // temporarily disable them all + enabledExtensions = []; + for (let uuid in ExtensionUtils.extensions) +- reloadExtension(ExtensionUtils.extensions[uuid]); ++ try { ++ reloadExtension(ExtensionUtils.extensions[uuid]); ++ } catch(e) { ++ logExtensionError(uuid, e); ++ } + enabledExtensions = getEnabledExtensions(); + + if (Main.sessionMode.allowExtensions) { + enabledExtensions.forEach(function(uuid) { +- enableExtension(uuid); ++ try { ++ enableExtension(uuid); ++ } catch(e) { ++ logExtensionError(uuid, e); ++ } + }); + } + } +-- +cgit v0.12 + diff --git a/gnu/packages/patches/icecat-bug-1299500-pt10.patch b/gnu/packages/patches/icecat-bug-1299500-pt10.patch deleted file mode 100644 index 406738b8a5..0000000000 --- a/gnu/packages/patches/icecat-bug-1299500-pt10.patch +++ /dev/null @@ -1,1639 +0,0 @@ -Based on the following HG changeset, but adapted to GNU IceCat and -also assumes that the dom/devicestorage subtree is deleted by our -snippet. Note that the other parts of this patchset are downloaded -directly from the upstream mozilla-esr52 mercurial repository. - -# HG changeset patch -# User Andrea Marchesini <amarchesini@mozilla.com> -# Date 1489000545 -3600 -# Node ID 08f2bc167ae82a6f86e427283d8b972ba794b846 -# Parent d63f3b14e5718b62c0adad2eab81b785250f3d4a -Bug 1299500 - Get rid of DeviceStorage API - part 10 - DeviceStorage, r=ehsan, r=billm, a=jcristau - -diff --git a/dom/bindings/Bindings.conf b/dom/bindings/Bindings.conf ---- a/dom/bindings/Bindings.conf -+++ b/dom/bindings/Bindings.conf -@@ -228,21 +228,16 @@ DOMInterfaces = { - 'DeviceAcceleration': { - 'headerFile': 'mozilla/dom/DeviceMotionEvent.h', - }, - - 'DeviceRotationRate': { - 'headerFile': 'mozilla/dom/DeviceMotionEvent.h', - }, - --'DeviceStorage': { -- 'nativeType': 'nsDOMDeviceStorage', -- 'headerFile': 'DeviceStorage.h', --}, -- - 'Document': { - 'nativeType': 'nsIDocument', - 'binaryNames': { - 'documentURI': 'documentURIFromJS', - 'URL': 'documentURIFromJS' - } - }, - -diff --git a/dom/filesystem/DeviceStorageFileSystem.cpp b/dom/filesystem/DeviceStorageFileSystem.cpp ---- a/dom/filesystem/DeviceStorageFileSystem.cpp -+++ b/dom/filesystem/DeviceStorageFileSystem.cpp -@@ -1,26 +1,24 @@ - /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ - /* vim: set ts=8 sts=2 et sw=2 tw=80: */ - /* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - - #include "mozilla/dom/DeviceStorageFileSystem.h" - --#include "DeviceStorage.h" - #include "mozilla/Preferences.h" - #include "mozilla/dom/Directory.h" - #include "mozilla/dom/File.h" - #include "mozilla/dom/FileSystemUtils.h" - #include "mozilla/ipc/BackgroundParent.h" - #include "mozilla/Unused.h" - #include "nsCOMPtr.h" - #include "nsDebug.h" --#include "nsDeviceStorage.h" - #include "nsIFile.h" - #include "nsPIDOMWindow.h" - #include "nsGlobalWindow.h" - - using namespace mozilla::ipc; - - namespace mozilla { - namespace dom { -@@ -37,44 +35,16 @@ DeviceStorageFileSystem::DeviceStorageFi - if (mozilla::Preferences::GetBool("device.storage.prompt.testing", false)) { - mPermissionCheckType = ePermissionCheckNotRequired; - } else { - mPermissionCheckType = ePermissionCheckRequired; - } - } else { - AssertIsOnBackgroundThread(); - } -- -- // Get the permission name required to access the file system. -- DebugOnly<nsresult> rv = -- DeviceStorageTypeChecker::GetPermissionForType(mStorageType, mPermission); -- NS_WARNING_ASSERTION(NS_SUCCEEDED(rv), "GetPermissionForType failed"); -- -- // Get the local path of the file system root. -- nsCOMPtr<nsIFile> rootFile; -- DeviceStorageFile::GetRootDirectoryForType(aStorageType, -- aStorageName, -- getter_AddRefs(rootFile)); -- -- Unused << -- NS_WARN_IF(!rootFile || -- NS_FAILED(rootFile->GetPath(mLocalOrDeviceStorageRootPath))); -- -- if (!XRE_IsParentProcess()) { -- return; -- } -- -- // DeviceStorageTypeChecker is a singleton object and must be initialized on -- // the main thread. We initialize it here so that we can use it on the worker -- // thread. -- if (NS_IsMainThread()) { -- DebugOnly<DeviceStorageTypeChecker*> typeChecker = -- DeviceStorageTypeChecker::CreateOrGet(); -- MOZ_ASSERT(typeChecker); -- } - } - - DeviceStorageFileSystem::~DeviceStorageFileSystem() - { - AssertIsOnOwningThread(); - } - - already_AddRefed<FileSystemBase> -diff --git a/dom/ipc/ContentChild.cpp b/dom/ipc/ContentChild.cpp ---- a/dom/ipc/ContentChild.cpp -+++ b/dom/ipc/ContentChild.cpp -@@ -168,44 +168,41 @@ - #include "mozilla/X11Util.h" - #endif - - #ifdef ACCESSIBILITY - #include "nsAccessibilityService.h" - #endif - - #include "mozilla/dom/File.h" --#include "mozilla/dom/devicestorage/DeviceStorageRequestChild.h" - #include "mozilla/dom/PPresentationChild.h" - #include "mozilla/dom/PresentationIPCService.h" - #include "mozilla/ipc/InputStreamUtils.h" - - #ifdef MOZ_WEBSPEECH - #include "mozilla/dom/PSpeechSynthesisChild.h" - #endif - - #include "ProcessUtils.h" - #include "URIUtils.h" - #include "nsContentUtils.h" - #include "nsIPrincipal.h" --#include "nsDeviceStorage.h" - #include "DomainPolicy.h" - #include "mozilla/dom/ipc/StructuredCloneData.h" - #include "mozilla/dom/time/DateCacheCleaner.h" - #include "mozilla/net/NeckoMessageUtils.h" - #include "mozilla/widget/PuppetBidiKeyboard.h" - #include "mozilla/RemoteSpellCheckEngineChild.h" - #include "GMPServiceChild.h" - #include "gfxPlatform.h" - #include "nscore.h" // for NS_FREE_PERMANENT_DATA - #include "VRManagerChild.h" - - using namespace mozilla; - using namespace mozilla::docshell; --using namespace mozilla::dom::devicestorage; - using namespace mozilla::dom::ipc; - using namespace mozilla::dom::workers; - using namespace mozilla::media; - using namespace mozilla::embedding; - using namespace mozilla::gmp; - using namespace mozilla::hal_sandbox; - using namespace mozilla::ipc; - using namespace mozilla::layers; -@@ -1806,29 +1803,16 @@ ContentChild::GetCPOWManager() - } - - bool - ContentChild::RecvPTestShellConstructor(PTestShellChild* actor) - { - return true; - } - --PDeviceStorageRequestChild* --ContentChild::AllocPDeviceStorageRequestChild(const DeviceStorageParams& aParams) --{ -- return new DeviceStorageRequestChild(); --} -- --bool --ContentChild::DeallocPDeviceStorageRequestChild(PDeviceStorageRequestChild* aDeviceStorage) --{ -- delete aDeviceStorage; -- return true; --} -- - PNeckoChild* - ContentChild::AllocPNeckoChild() - { - return new NeckoChild(); - } - - bool - ContentChild::DeallocPNeckoChild(PNeckoChild* necko) -@@ -2531,38 +2515,16 @@ ContentChild::RecvVolumes(nsTArray<Volum - if (vs) { - vs->RecvVolumesFromParent(aVolumes); - } - #endif - return true; - } - - bool --ContentChild::RecvFilePathUpdate(const nsString& aStorageType, -- const nsString& aStorageName, -- const nsString& aPath, -- const nsCString& aReason) --{ -- if (nsDOMDeviceStorage::InstanceCount() == 0) { -- // No device storage instances in this process. Don't try and -- // and create a DeviceStorageFile since it will fail. -- -- return true; -- } -- -- RefPtr<DeviceStorageFile> dsf = new DeviceStorageFile(aStorageType, aStorageName, aPath); -- -- nsString reason; -- CopyASCIItoUTF16(aReason, reason); -- nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService(); -- obs->NotifyObservers(dsf, "file-watcher-update", reason.get()); -- return true; --} -- --bool - ContentChild::RecvFileSystemUpdate(const nsString& aFsName, - const nsString& aVolumeName, - const int32_t& aState, - const int32_t& aMountGeneration, - const bool& aIsMediaPresent, - const bool& aIsSharing, - const bool& aIsFormatting, - const bool& aIsFake, -diff --git a/dom/ipc/ContentChild.h b/dom/ipc/ContentChild.h ---- a/dom/ipc/ContentChild.h -+++ b/dom/ipc/ContentChild.h -@@ -193,22 +193,16 @@ public: - const IPCTabContext& aContext, - const uint32_t& aChromeFlags, - const ContentParentId& aCpID, - const bool& aIsForApp, - const bool& aIsForBrowser) override; - - virtual bool DeallocPBrowserChild(PBrowserChild*) override; - -- virtual PDeviceStorageRequestChild* -- AllocPDeviceStorageRequestChild(const DeviceStorageParams&) override; -- -- virtual bool -- DeallocPDeviceStorageRequestChild(PDeviceStorageRequestChild*) override; -- - virtual PBlobChild* - AllocPBlobChild(const BlobConstructorParams& aParams) override; - - virtual bool DeallocPBlobChild(PBlobChild* aActor) override; - - virtual PCrashReporterChild* - AllocPCrashReporterChild(const mozilla::dom::NativeThreadId& id, - const uint32_t& processType) override; -@@ -436,21 +430,16 @@ public: - - virtual bool - RecvInitBlobURLs(nsTArray<BlobURLRegistrationData>&& aRegistations) override; - - virtual bool RecvLastPrivateDocShellDestroyed() override; - - virtual bool RecvVolumes(InfallibleTArray<VolumeInfo>&& aVolumes) override; - -- virtual bool RecvFilePathUpdate(const nsString& aStorageType, -- const nsString& aStorageName, -- const nsString& aPath, -- const nsCString& aReason) override; -- - virtual bool RecvFileSystemUpdate(const nsString& aFsName, - const nsString& aVolumeName, - const int32_t& aState, - const int32_t& aMountGeneration, - const bool& aIsMediaPresent, - const bool& aIsSharing, - const bool& aIsFormatting, - const bool& aIsFake, -diff --git a/dom/ipc/ContentParent.cpp b/dom/ipc/ContentParent.cpp ---- a/dom/ipc/ContentParent.cpp -+++ b/dom/ipc/ContentParent.cpp -@@ -23,17 +23,16 @@ - - #include "chrome/common/process_watcher.h" - - #include "mozilla/a11y/PDocAccessible.h" - #include "AppProcessChecker.h" - #include "AudioChannelService.h" - #include "BlobParent.h" - #include "CrashReporterParent.h" --#include "DeviceStorageStatics.h" - #include "GMPServiceParent.h" - #include "HandlerServiceParent.h" - #include "IHistory.h" - #include "imgIContainer.h" - #include "mozIApplication.h" - #if defined(XP_WIN) && defined(ACCESSIBILITY) - #include "mozilla/a11y/AccessibleWrap.h" - #endif -@@ -50,17 +49,16 @@ - #include "mozilla/dom/GetFilesHelper.h" - #include "mozilla/dom/GeolocationBinding.h" - #include "mozilla/dom/Notification.h" - #include "mozilla/dom/PContentBridgeParent.h" - #include "mozilla/dom/PContentPermissionRequestParent.h" - #include "mozilla/dom/PCycleCollectWithLogsParent.h" - #include "mozilla/dom/PMemoryReportRequestParent.h" - #include "mozilla/dom/ServiceWorkerRegistrar.h" --#include "mozilla/dom/devicestorage/DeviceStorageRequestParent.h" - #include "mozilla/dom/power/PowerManagerService.h" - #include "mozilla/dom/Permissions.h" - #include "mozilla/dom/PresentationParent.h" - #include "mozilla/dom/PPresentationParent.h" - #include "mozilla/dom/PushNotifier.h" - #include "mozilla/dom/FlyWebPublishedServerIPC.h" - #include "mozilla/dom/quota/QuotaManagerService.h" - #include "mozilla/dom/time/DateCacheCleaner.h" -@@ -272,17 +270,16 @@ using base::ChildPrivileges; - using base::KillProcess; - #ifdef MOZ_ENABLE_PROFILER_SPS - using mozilla::ProfileGatherer; - #endif - - #ifdef MOZ_CRASHREPORTER - using namespace CrashReporter; - #endif --using namespace mozilla::dom::devicestorage; - using namespace mozilla::dom::power; - using namespace mozilla::media; - using namespace mozilla::embedding; - using namespace mozilla::gfx; - using namespace mozilla::gmp; - using namespace mozilla::hal; - using namespace mozilla::ipc; - using namespace mozilla::layers; -@@ -2775,22 +2772,16 @@ ContentParent::Observe(nsISupports* aSub - Unused << SendCycleCollect(); - } - else if (!strcmp(aTopic, "child-mmu-request")){ - Unused << SendMinimizeMemoryUsage(); - } - else if (!strcmp(aTopic, "last-pb-context-exited")) { - Unused << SendLastPrivateDocShellDestroyed(); - } -- else if (!strcmp(aTopic, "file-watcher-update")) { -- nsCString creason; -- CopyUTF16toUTF8(aData, creason); -- DeviceStorageFile* file = static_cast<DeviceStorageFile*>(aSubject); -- Unused << SendFilePathUpdate(file->mStorageType, file->mStorageName, file->mPath, creason); -- } - #ifdef MOZ_WIDGET_GONK - else if(!strcmp(aTopic, NS_VOLUME_STATE_CHANGED)) { - nsCOMPtr<nsIVolume> vol = do_QueryInterface(aSubject); - if (!vol) { - return NS_ERROR_NOT_AVAILABLE; - } - - nsString volName; -@@ -3021,35 +3012,16 @@ ContentParent::AllocPBrowserParent(const - } - - bool - ContentParent::DeallocPBrowserParent(PBrowserParent* frame) - { - return nsIContentParent::DeallocPBrowserParent(frame); - } - --PDeviceStorageRequestParent* --ContentParent::AllocPDeviceStorageRequestParent(const DeviceStorageParams& aParams) --{ -- RefPtr<DeviceStorageRequestParent> result = new DeviceStorageRequestParent(aParams); -- if (!result->EnsureRequiredPermissions(this)) { -- return nullptr; -- } -- result->Dispatch(); -- return result.forget().take(); --} -- --bool --ContentParent::DeallocPDeviceStorageRequestParent(PDeviceStorageRequestParent* doomed) --{ -- DeviceStorageRequestParent *parent = static_cast<DeviceStorageRequestParent*>(doomed); -- NS_RELEASE(parent); -- return true; --} -- - PBlobParent* - ContentParent::AllocPBlobParent(const BlobConstructorParams& aParams) - { - return nsIContentParent::AllocPBlobParent(aParams); - } - - bool - ContentParent::DeallocPBlobParent(PBlobParent* aActor) -@@ -3871,35 +3843,16 @@ ContentParent::RecvAsyncMessage(const ns - InfallibleTArray<CpowEntry>&& aCpows, - const IPC::Principal& aPrincipal, - const ClonedMessageData& aData) - { - return nsIContentParent::RecvAsyncMessage(aMsg, Move(aCpows), aPrincipal, - aData); - } - --bool --ContentParent::RecvFilePathUpdateNotify(const nsString& aType, -- const nsString& aStorageName, -- const nsString& aFilePath, -- const nsCString& aReason) --{ -- RefPtr<DeviceStorageFile> dsf = new DeviceStorageFile(aType, -- aStorageName, -- aFilePath); -- -- nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService(); -- if (!obs) { -- return false; -- } -- obs->NotifyObservers(dsf, "file-watcher-update", -- NS_ConvertASCIItoUTF16(aReason).get()); -- return true; --} -- - static int32_t - AddGeolocationListener(nsIDOMGeoPositionCallback* watcher, - nsIDOMGeoPositionErrorCallback* errorCallBack, - bool highAccuracy) - { - nsCOMPtr<nsIDOMGeoGeolocation> geo = do_GetService("@mozilla.org/geolocation;1"); - if (!geo) { - return -1; -@@ -4943,35 +4896,16 @@ ContentParent::RecvBeginDriverCrashGuard - bool - ContentParent::RecvEndDriverCrashGuard(const uint32_t& aGuardType) - { - mDriverCrashGuard = nullptr; - return true; - } - - bool --ContentParent::RecvGetDeviceStorageLocation(const nsString& aType, -- nsString* aPath) --{ --#ifdef MOZ_WIDGET_ANDROID -- mozilla::AndroidBridge::GetExternalPublicDirectory(aType, *aPath); -- return true; --#else -- return false; --#endif --} -- --bool --ContentParent::RecvGetDeviceStorageLocations(DeviceStorageLocationInfo* info) --{ -- DeviceStorageStatics::GetDeviceStorageLocationsForIPC(info); -- return true; --} -- --bool - ContentParent::RecvGetAndroidSystemInfo(AndroidSystemInfo* aInfo) - { - #ifdef MOZ_WIDGET_ANDROID - nsSystemInfo::GetAndroidSystemInfo(aInfo); - return true; - #else - MOZ_CRASH("wrong platform!"); - return false; -diff --git a/dom/ipc/ContentParent.h b/dom/ipc/ContentParent.h ---- a/dom/ipc/ContentParent.h -+++ b/dom/ipc/ContentParent.h -@@ -726,22 +726,16 @@ private: - const IPCTabContext& aContext, - const uint32_t& aChromeFlags, - const ContentParentId& aCpId, - const bool& aIsForApp, - const bool& aIsForBrowser) override; - - virtual bool DeallocPBrowserParent(PBrowserParent* frame) override; - -- virtual PDeviceStorageRequestParent* -- AllocPDeviceStorageRequestParent(const DeviceStorageParams&) override; -- -- virtual bool -- DeallocPDeviceStorageRequestParent(PDeviceStorageRequestParent*) override; -- - virtual PBlobParent* - AllocPBlobParent(const BlobConstructorParams& aParams) override; - - virtual bool DeallocPBlobParent(PBlobParent* aActor) override; - - virtual bool - RecvPBlobConstructor(PBlobParent* aActor, - const BlobConstructorParams& params) override; -@@ -927,21 +921,16 @@ private: - const IPC::Principal& aPrincipal, - nsTArray<StructuredCloneData>* aRetvals) override; - - virtual bool RecvAsyncMessage(const nsString& aMsg, - InfallibleTArray<CpowEntry>&& aCpows, - const IPC::Principal& aPrincipal, - const ClonedMessageData& aData) override; - -- virtual bool RecvFilePathUpdateNotify(const nsString& aType, -- const nsString& aStorageName, -- const nsString& aFilePath, -- const nsCString& aReason) override; -- - virtual bool RecvAddGeolocationListener(const IPC::Principal& aPrincipal, - const bool& aHighAccuracy) override; - virtual bool RecvRemoveGeolocationListener() override; - - virtual bool RecvSetGeolocationHigherAccuracy(const bool& aEnable) override; - - virtual bool RecvConsoleMessage(const nsString& aMessage) override; - -@@ -1047,21 +1036,16 @@ private: - const uint32_t& aDropEffect) override; - - virtual bool RecvProfile(const nsCString& aProfile) override; - - virtual bool RecvGetGraphicsDeviceInitData(ContentDeviceData* aOut) override; - - void StartProfiler(nsIProfilerStartParams* aParams); - -- virtual bool RecvGetDeviceStorageLocation(const nsString& aType, -- nsString* aPath) override; -- -- virtual bool RecvGetDeviceStorageLocations(DeviceStorageLocationInfo* info) override; -- - virtual bool RecvGetAndroidSystemInfo(AndroidSystemInfo* aInfo) override; - - virtual bool RecvNotifyBenchmarkResult(const nsString& aCodecName, - const uint32_t& aDecodeFPS) override; - - virtual bool RecvNotifyPushObservers(const nsCString& aScope, - const IPC::Principal& aPrincipal, - const nsString& aMessageId) override; -diff --git a/dom/ipc/PContent.ipdl b/dom/ipc/PContent.ipdl ---- a/dom/ipc/PContent.ipdl -+++ b/dom/ipc/PContent.ipdl -@@ -10,17 +10,16 @@ include protocol PBrowser; - include protocol PCompositorBridge; - include protocol PContentBridge; - include protocol PContentPermissionRequest; - include protocol PCycleCollectWithLogs; - include protocol PCrashReporter; - include protocol PPSMContentDownloader; - include protocol PExternalHelperApp; - include protocol PHandlerService; --include protocol PDeviceStorageRequest; - include protocol PFileDescriptorSet; - include protocol PHal; - include protocol PHeapSnapshotTempFileHelper; - include protocol PProcessHangMonitor; - include protocol PImageBridge; - include protocol PMedia; - include protocol PMemoryReportRequest; - include protocol PNecko; -@@ -111,130 +110,16 @@ struct FontListEntry { - nsCString filepath; - uint16_t weight; - int16_t stretch; - uint8_t italic; - uint8_t index; - bool isHidden; - }; - --struct DeviceStorageFreeSpaceParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageUsedSpaceParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageAvailableParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageStatusParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageFormatParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageMountParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageUnmountParams --{ -- nsString type; -- nsString storageName; --}; -- --struct DeviceStorageAddParams --{ -- nsString type; -- nsString storageName; -- nsString relpath; -- PBlob blob; --}; -- --struct DeviceStorageAppendParams --{ -- nsString type; -- nsString storageName; -- nsString relpath; -- PBlob blob; --}; -- --struct DeviceStorageCreateFdParams --{ -- nsString type; -- nsString storageName; -- nsString relpath; --}; -- --struct DeviceStorageGetParams --{ -- nsString type; -- nsString storageName; -- nsString rootDir; -- nsString relpath; --}; -- --struct DeviceStorageDeleteParams --{ -- nsString type; -- nsString storageName; -- nsString relpath; --}; -- --struct DeviceStorageEnumerationParams --{ -- nsString type; -- nsString storageName; -- nsString rootdir; -- uint64_t since; --}; -- --union DeviceStorageParams --{ -- DeviceStorageAddParams; -- DeviceStorageAppendParams; -- DeviceStorageCreateFdParams; -- DeviceStorageGetParams; -- DeviceStorageDeleteParams; -- DeviceStorageEnumerationParams; -- DeviceStorageFreeSpaceParams; -- DeviceStorageUsedSpaceParams; -- DeviceStorageAvailableParams; -- DeviceStorageStatusParams; -- DeviceStorageFormatParams; -- DeviceStorageMountParams; -- DeviceStorageUnmountParams; --}; -- --struct DeviceStorageLocationInfo { -- nsString music; -- nsString pictures; -- nsString videos; -- nsString sdcard; -- nsString apps; -- nsString crashes; --}; -- - union PrefValue { - nsCString; - int32_t; - bool; - }; - - union MaybePrefValue { - PrefValue; -@@ -355,17 +240,16 @@ nested(upto inside_cpow) sync protocol P - parent opens PGMPService; - child opens PBackground; - - manages PBlob; - manages PBrowser; - manages PContentPermissionRequest; - manages PCrashReporter; - manages PCycleCollectWithLogs; -- manages PDeviceStorageRequest; - manages PPSMContentDownloader; - manages PExternalHelperApp; - manages PFileDescriptorSet; - manages PHal; - manages PHandlerService; - manages PHeapSnapshotTempFileHelper; - manages PMedia; - manages PMemoryReportRequest; -@@ -538,19 +422,16 @@ child: - /** - * Send BlobURLRegistrationData to child process. - */ - async InitBlobURLs(BlobURLRegistrationData[] registrations); - - // Notify child that last-pb-context-exited notification was observed - async LastPrivateDocShellDestroyed(); - -- async FilePathUpdate(nsString storageType, nsString storageName, nsString filepath, -- nsCString reasons); -- - // Note: Any changes to this structure should also be changed in - // VolumeInfo above. - async FileSystemUpdate(nsString fsName, nsString mountPoint, int32_t fsState, - int32_t mountGeneration, bool isMediaPresent, - bool isSharing, bool isFormatting, bool isFake, - bool isUnmounting, bool isRemovable, bool isHotSwappable); - - // Notify volume is removed. -@@ -738,17 +619,16 @@ parent: - * process. |newPluginEpoch| is the current epoch in the chrome process. If - * |pluginEpoch == newPluginEpoch|, then |plugins| will be left empty. - */ - sync FindPlugins(uint32_t pluginEpoch) returns (nsresult aResult, PluginTag[] plugins, uint32_t newPluginEpoch); - - async PJavaScript(); - - async PRemoteSpellcheckEngine(); -- async PDeviceStorageRequest(DeviceStorageParams params); - - sync PCrashReporter(NativeThreadId tid, uint32_t processType); - - /** - * Is this token compatible with the provided version? - * - * |version| The offered version to test - * Returns |True| if the offered version is compatible -@@ -921,21 +801,16 @@ parent: - async FirstIdle(); - - async AudioChannelServiceStatus(bool aActiveTelephonyChannel, - bool aContentOrNormalChannel, - bool aAnyActiveChannel); - - async AudioChannelChangeDefVolChannel(int32_t aChannel, bool aHidden); - -- async FilePathUpdateNotify(nsString aType, -- nsString aStorageName, -- nsString aFilepath, -- nsCString aReason); -- - // called by the child (test code only) to propagate volume changes to the parent - async CreateFakeVolume(nsString fsName, nsString mountPoint); - async SetFakeVolumeState(nsString fsName, int32_t fsState); - async RemoveFakeVolume(nsString fsName); - - sync KeywordToURI(nsCString keyword) - returns (nsString providerName, OptionalInputStreamParams postData, OptionalURIParams uri); - -@@ -1108,22 +983,16 @@ parent: - float aFullZoom) - returns (nsresult rv, - bool windowOpened, - FrameScriptInfo[] frameScripts, - nsCString urlToLoad, - TextureFactoryIdentifier textureFactoryIdentifier, - uint64_t layersId); - -- sync GetDeviceStorageLocation(nsString type) -- returns (nsString path); -- -- sync GetDeviceStorageLocations() -- returns (DeviceStorageLocationInfo info); -- - sync GetAndroidSystemInfo() - returns (AndroidSystemInfo info); - - /** - * Tells the parent to ungrab the pointer on the default display. - * - * This is for GTK platforms where we have to ensure the pointer ungrab happens in the - * chrome process as that's the process that receives the pointer event. -diff --git a/dom/ipc/moz.build b/dom/ipc/moz.build ---- a/dom/ipc/moz.build -+++ b/dom/ipc/moz.build -@@ -120,17 +120,16 @@ if CONFIG['MOZ_CONTENT_SANDBOX'] and CON - 'mozsandbox', - ] - - LOCAL_INCLUDES += [ - '/caps', - '/chrome', - '/docshell/base', - '/dom/base', -- '/dom/devicestorage', - '/dom/events', - '/dom/filesystem', - '/dom/geolocation', - '/dom/media/webspeech/synth/ipc', - '/dom/security', - '/dom/storage', - '/dom/workers', - '/embedding/components/printingui/ipc', -diff --git a/dom/moz.build b/dom/moz.build ---- a/dom/moz.build -+++ b/dom/moz.build -@@ -42,17 +42,16 @@ DIRS += [ - 'base', - 'archivereader', - 'bindings', - 'battery', - 'browser-element', - 'cache', - 'canvas', - 'crypto', -- 'devicestorage', - 'encoding', - 'events', - 'fetch', - 'filehandle', - 'filesystem', - 'flyweb', - 'gamepad', - 'geolocation', -diff --git a/dom/webidl/DeviceStorage.webidl b/dom/webidl/DeviceStorage.webidl -deleted file mode 100644 ---- a/dom/webidl/DeviceStorage.webidl -+++ /dev/null -@@ -1,95 +0,0 @@ --/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ --/* This Source Code Form is subject to the terms of the Mozilla Public -- * License, v. 2.0. If a copy of the MPL was not distributed with this -- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -- --dictionary DeviceStorageEnumerationParameters { -- Date since; --}; -- --[Pref="device.storage.enabled"] --interface DeviceStorage : EventTarget { -- attribute EventHandler onchange; -- -- [Throws] -- DOMRequest? add(Blob? aBlob); -- [Throws] -- DOMRequest? addNamed(Blob? aBlob, DOMString aName); -- -- /** -- * Append data to a given file. -- * If the file doesn't exist, a "NotFoundError" event will be dispatched. -- * In the same time, it is a request.onerror case. -- * If the file exists, it will be opened with the following permission: -- * "PR_WRONLY|PR_CREATE_FILE|PR_APPEND". -- * The function will return null when blob file is null and other unexpected situations. -- * @parameter aBlob: A Blob object representing the data to append -- * @parameter aName: A string representing the full name (path + file name) of the file -- * to append data to. -- */ -- [Throws] -- DOMRequest? appendNamed(Blob? aBlob, DOMString aName); -- -- [Throws] -- DOMRequest get(DOMString aName); -- [Throws] -- DOMRequest getEditable(DOMString aName); -- [Throws] -- DOMRequest delete(DOMString aName); -- -- [Throws] -- DOMCursor enumerate(optional DeviceStorageEnumerationParameters options); -- [Throws] -- DOMCursor enumerate(DOMString path, -- optional DeviceStorageEnumerationParameters options); -- [Throws] -- DOMCursor enumerateEditable(optional DeviceStorageEnumerationParameters options); -- [Throws] -- DOMCursor enumerateEditable(DOMString path, -- optional DeviceStorageEnumerationParameters options); -- -- [Throws] -- DOMRequest freeSpace(); -- [Throws] -- DOMRequest usedSpace(); -- [Throws] -- DOMRequest available(); -- [Throws] -- DOMRequest storageStatus(); -- [Throws] -- DOMRequest format(); -- [Throws] -- DOMRequest mount(); -- [Throws] -- DOMRequest unmount(); -- -- // Note that the storageName is just a name (like sdcard), and doesn't -- // include any path information. -- readonly attribute DOMString storageName; -- -- // Indicates if the storage area denoted by storageName is capable of -- // being mounted and unmounted. -- readonly attribute boolean canBeMounted; -- -- // Indicates if the storage area denoted by storageName is capable of -- // being shared and unshared. -- readonly attribute boolean canBeShared; -- -- // Indicates if the storage area denoted by storageName is capable of -- // being formatted. -- readonly attribute boolean canBeFormatted; -- -- // Determines if this storage area is the one which will be used by default -- // for storing new files. -- readonly attribute boolean default; -- -- // Indicates if the storage area denoted by storageName is removable -- readonly attribute boolean isRemovable; -- -- // True if the storage area is close to being full -- readonly attribute boolean lowDiskSpace; -- -- [NewObject] -- // XXXbz what type does this really return? -- Promise<any> getRoot(); --}; -diff --git a/dom/webidl/moz.build b/dom/webidl/moz.build ---- a/dom/webidl/moz.build -+++ b/dom/webidl/moz.build -@@ -104,17 +104,16 @@ WEBIDL_FILES = [ - 'DataTransfer.webidl', - 'DataTransferItem.webidl', - 'DataTransferItemList.webidl', - 'DecoderDoctorNotification.webidl', - 'DedicatedWorkerGlobalScope.webidl', - 'DelayNode.webidl', - 'DesktopNotification.webidl', - 'DeviceMotionEvent.webidl', -- 'DeviceStorage.webidl', - 'Directory.webidl', - 'Document.webidl', - 'DocumentFragment.webidl', - 'DocumentTimeline.webidl', - 'DocumentType.webidl', - 'DOMCursor.webidl', - 'DOMError.webidl', - 'DOMException.webidl', -diff --git a/layout/build/nsLayoutStatics.cpp b/layout/build/nsLayoutStatics.cpp ---- a/layout/build/nsLayoutStatics.cpp -+++ b/layout/build/nsLayoutStatics.cpp -@@ -122,17 +122,16 @@ using namespace mozilla::system; - #include "mozilla/dom/CustomElementRegistry.h" - #include "mozilla/dom/time/DateCacheCleaner.h" - #include "mozilla/EventDispatcher.h" - #include "mozilla/IMEStateManager.h" - #include "mozilla/dom/HTMLVideoElement.h" - #include "TouchManager.h" - #include "MediaDecoder.h" - #include "MediaPrefs.h" --#include "mozilla/dom/devicestorage/DeviceStorageStatics.h" - #include "mozilla/ServoBindings.h" - #include "mozilla/StaticPresData.h" - #include "mozilla/dom/WebIDLGlobalNameHash.h" - - using namespace mozilla; - using namespace mozilla::net; - using namespace mozilla::dom; - using namespace mozilla::dom::ipc; -@@ -303,18 +302,16 @@ nsLayoutStatics::Initialize() - nsStyleContext::Initialize(); - mozilla::LayerAnimationInfo::Initialize(); - #endif - - MediaDecoder::InitStatics(); - - PromiseDebugging::Init(); - -- mozilla::dom::devicestorage::DeviceStorageStatics::Initialize(); -- - mozilla::dom::WebCryptoThreadPool::Initialize(); - - // NB: We initialize servo in nsAppRunner.cpp, because we need to do it after - // creating the hidden DOM window to support some current stylo hacks. We - // should move initialization back here once those go away. - - #ifndef MOZ_WIDGET_ANDROID - // On Android, we instantiate it when constructing AndroidBridge. -diff --git a/mobile/android/components/ContentPermissionPrompt.js b/mobile/android/components/ContentPermissionPrompt.js ---- a/mobile/android/components/ContentPermissionPrompt.js -+++ b/mobile/android/components/ContentPermissionPrompt.js -@@ -8,20 +8,16 @@ const Cu = Components.utils; - const Cc = Components.classes; - - Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - Cu.import("resource://gre/modules/Services.jsm"); - - const kEntities = { - "contacts": "contacts", - "desktop-notification": "desktopNotification2", -- "device-storage:music": "deviceStorageMusic", -- "device-storage:pictures": "deviceStoragePictures", -- "device-storage:sdcard": "deviceStorageSdcard", -- "device-storage:videos": "deviceStorageVideos", - "geolocation": "geolocation", - "flyweb-publish-server": "flyWebPublishServer", - }; - - // For these types, prompt for permission if action is unknown. - const PROMPT_FOR_UNKNOWN = [ - "desktop-notification", - "geolocation", -diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java ---- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java -+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java -@@ -2198,54 +2198,16 @@ public class GeckoAppShell - return null; - } - - @WrapForJNI - private static String connectionGetMimeType(URLConnection connection) { - return connection.getContentType(); - } - -- /** -- * Retrieve the absolute path of an external storage directory. -- * -- * @param type The type of directory to return -- * @return Absolute path of the specified directory or null on failure -- */ -- @WrapForJNI(calledFrom = "gecko") -- private static String getExternalPublicDirectory(final String type) { -- final String state = Environment.getExternalStorageState(); -- if (!Environment.MEDIA_MOUNTED.equals(state) && -- !Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { -- // External storage is not available. -- return null; -- } -- -- if ("sdcard".equals(type)) { -- // SD card has a separate path. -- return Environment.getExternalStorageDirectory().getAbsolutePath(); -- } -- -- final String systemType; -- if ("downloads".equals(type)) { -- systemType = Environment.DIRECTORY_DOWNLOADS; -- } else if ("pictures".equals(type)) { -- systemType = Environment.DIRECTORY_PICTURES; -- } else if ("videos".equals(type)) { -- systemType = Environment.DIRECTORY_MOVIES; -- } else if ("music".equals(type)) { -- systemType = Environment.DIRECTORY_MUSIC; -- } else if ("apps".equals(type)) { -- File appInternalStorageDirectory = getApplicationContext().getFilesDir(); -- return new File(appInternalStorageDirectory, "mozilla").getAbsolutePath(); -- } else { -- return null; -- } -- return Environment.getExternalStoragePublicDirectory(systemType).getAbsolutePath(); -- } -- - @WrapForJNI(calledFrom = "gecko") - private static int getMaxTouchPoints() { - PackageManager pm = getApplicationContext().getPackageManager(); - if (pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND)) { - // at least, 5+ fingers. - return 5; - } else if (pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT)) { - // at least, 2+ fingers. -diff --git a/netwerk/test/mochitests/signed_web_packaged_app.sjs b/netwerk/test/mochitests/signed_web_packaged_app.sjs ---- a/netwerk/test/mochitests/signed_web_packaged_app.sjs -+++ b/netwerk/test/mochitests/signed_web_packaged_app.sjs -@@ -35,19 +35,16 @@ Content-Type: application/x-web-app-mani - "src": "scripts/library.js", - "integrity": "TN2ByXZiaBiBCvS4MeZ02UyNi44vED+KjdjLInUl4o8=" - } - ], - "moz-permissions": [ - { - "systemXHR": { - "description": "Needed to download stuff" -- }, -- "devicestorage:pictures": { -- "description": "Need to load pictures" - } - } - ], - "package-identifier": "09bc9714-7ab6-4320-9d20-fde4c237522c", - "description": "A great app!" - }\r - --NKWXJUAFXB\r - Content-Location: page2.html\r -diff --git a/toolkit/components/jsdownloads/src/DownloadIntegration.jsm b/toolkit/components/jsdownloads/src/DownloadIntegration.jsm ---- a/toolkit/components/jsdownloads/src/DownloadIntegration.jsm -+++ b/toolkit/components/jsdownloads/src/DownloadIntegration.jsm -@@ -268,53 +268,16 @@ this.DownloadIntegration = { - // Add the view used for detecting changes to downloads to be persisted. - // We must do this after the list of persistent downloads has been loaded, - // even if the load operation failed. We wait for a complete initialization - // so other callers cannot modify the list without being detected. The - // DownloadAutoSaveView is kept alive by the underlying DownloadList. - yield new DownloadAutoSaveView(list, this._store).initialize(); - }), - --#ifdef MOZ_WIDGET_GONK -- /** -- * Finds the default download directory which can be either in the -- * internal storage or on the sdcard. -- * -- * @return {Promise} -- * @resolves The downloads directory string path. -- */ -- _getDefaultDownloadDirectory: Task.async(function* () { -- let directoryPath; -- let win = Services.wm.getMostRecentWindow("navigator:browser"); -- let storages = win.navigator.getDeviceStorages("sdcard"); -- let preferredStorageName; -- // Use the first one or the default storage. -- storages.forEach((aStorage) => { -- if (aStorage.default || !preferredStorageName) { -- preferredStorageName = aStorage.storageName; -- } -- }); -- -- // Now get the path for this storage area. -- if (preferredStorageName) { -- let volume = volumeService.getVolumeByName(preferredStorageName); -- if (volume && volume.state === Ci.nsIVolume.STATE_MOUNTED){ -- directoryPath = OS.Path.join(volume.mountPoint, "downloads"); -- yield OS.File.makeDir(directoryPath, { ignoreExisting: true }); -- } -- } -- if (directoryPath) { -- return directoryPath; -- } else { -- throw new Components.Exception("No suitable storage for downloads.", -- Cr.NS_ERROR_FILE_UNRECOGNIZED_PATH); -- } -- }), --#endif -- - /** - * Determines if a Download object from the list of persistent downloads - * should be saved into a file, so that it can be restored across sessions. - * - * This function allows filtering out downloads that the host application is - * not interested in persisting across sessions, for example downloads that - * finished successfully. - * -@@ -377,18 +340,16 @@ this.DownloadIntegration = { - #ifdef MOZ_WIDGET_ANDROID - // Android doesn't have a $HOME directory, and by default we only have - // write access to /data/data/org.mozilla.{$APP} and /sdcard - directoryPath = gEnvironment.get("DOWNLOADS_DIRECTORY"); - if (!directoryPath) { - throw new Components.Exception("DOWNLOADS_DIRECTORY is not set.", - Cr.NS_ERROR_FILE_UNRECOGNIZED_PATH); - } --#elifdef MOZ_WIDGET_GONK -- directoryPath = this._getDefaultDownloadDirectory(); - #else - // For Linux, use XDG download dir, with a fallback to Home/Downloads - // if the XDG user dirs are disabled. - try { - directoryPath = this._getDirectory("DfltDwnld"); - } catch(e) { - directoryPath = yield this._createDownloadsDirectory("Home"); - } -@@ -405,19 +366,16 @@ this.DownloadIntegration = { - /** - * Returns the user downloads directory asynchronously. - * - * @return {Promise} - * @resolves The downloads directory string path. - */ - getPreferredDownloadsDirectory: Task.async(function* () { - let directoryPath = null; --#ifdef MOZ_WIDGET_GONK -- directoryPath = this._getDefaultDownloadDirectory(); --#else - let prefValue = 1; - - try { - prefValue = Services.prefs.getIntPref("browser.download.folderList"); - } catch(e) {} - - switch(prefValue) { - case 0: // Desktop -@@ -435,17 +393,16 @@ this.DownloadIntegration = { - } catch(ex) { - // Either the preference isn't set or the directory cannot be created. - directoryPath = yield this.getSystemDownloadsDirectory(); - } - break; - default: - directoryPath = yield this.getSystemDownloadsDirectory(); - } --#endif - return directoryPath; - }), - - /** - * Returns the temporary downloads directory asynchronously. - * - * @return {Promise} - * @resolves The downloads directory string path. -diff --git a/toolkit/components/jsdownloads/src/DownloadPlatform.cpp b/toolkit/components/jsdownloads/src/DownloadPlatform.cpp ---- a/toolkit/components/jsdownloads/src/DownloadPlatform.cpp -+++ b/toolkit/components/jsdownloads/src/DownloadPlatform.cpp -@@ -185,28 +185,16 @@ nsresult DownloadPlatform::DownloadDone( - if (sourceCFURL) { - ::CFRelease(sourceCFURL); - } - if (referrerCFURL) { - ::CFRelease(referrerCFURL); - } - } - #endif -- if (mozilla::Preferences::GetBool("device.storage.enabled", true)) { -- // Tell DeviceStorage that a new file may have been added. -- nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService(); -- nsCOMPtr<nsISupportsString> pathString -- = do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID); -- if (obs && pathString) { -- if (NS_SUCCEEDED(pathString->SetData(path))) { -- (void)obs->NotifyObservers(pathString, "download-watcher-notify", -- u"modified"); -- } -- } -- } - } - - #endif - - return NS_OK; - } - - nsresult DownloadPlatform::MapUrlToZone(const nsAString& aURL, -diff --git a/toolkit/components/jsdownloads/test/unit/common_test_Download.js b/toolkit/components/jsdownloads/test/unit/common_test_Download.js ---- a/toolkit/components/jsdownloads/test/unit/common_test_Download.js -+++ b/toolkit/components/jsdownloads/test/unit/common_test_Download.js -@@ -2315,103 +2315,16 @@ add_task(function* test_toSerializable_s - let download2 = yield Downloads.createDownload(reserialized); - - do_check_eq(download1.startTime.constructor.name, "Date"); - do_check_eq(download2.startTime.constructor.name, "Date"); - do_check_eq(download1.startTime.toJSON(), download2.startTime.toJSON()); - }); - - /** -- * This test will call the platform specific operations within -- * DownloadPlatform::DownloadDone. While there is no test to verify the -- * specific behaviours, this at least ensures that there is no error or crash. -- */ --add_task(function* test_platform_integration() --{ -- let downloadFiles = []; -- let oldDeviceStorageEnabled = false; -- try { -- oldDeviceStorageEnabled = Services.prefs.getBoolPref("device.storage.enabled"); -- } catch (e) { -- // This happens if the pref doesn't exist. -- } -- let downloadWatcherNotified = false; -- let observer = { -- observe: function(subject, topic, data) { -- do_check_eq(topic, "download-watcher-notify"); -- do_check_eq(data, "modified"); -- downloadWatcherNotified = true; -- } -- } -- Services.obs.addObserver(observer, "download-watcher-notify", false); -- Services.prefs.setBoolPref("device.storage.enabled", true); -- let downloadDoneCalled = false; -- let monitorFn = base => ({ -- __proto__: base, -- downloadDone() { -- return super.downloadDone(...arguments).then(() => { -- downloadDoneCalled = true; -- }); -- }, -- }); -- Integration.downloads.register(monitorFn); -- DownloadIntegration.allowDirectories = true; -- function cleanup() { -- for (let file of downloadFiles) { -- file.remove(true); -- } -- Services.obs.removeObserver(observer, "download-watcher-notify"); -- Services.prefs.setBoolPref("device.storage.enabled", oldDeviceStorageEnabled); -- Integration.downloads.unregister(monitorFn); -- DownloadIntegration.allowDirectories = false; -- } -- -- for (let isPrivate of [false, true]) { -- downloadDoneCalled = false; -- -- // Some platform specific operations only operate on files outside the -- // temporary directory or in the Downloads directory (such as setting -- // the Windows searchable attribute, and the Mac Downloads icon bouncing), -- // so use the system Downloads directory for the target file. -- let targetFilePath = yield DownloadIntegration.getSystemDownloadsDirectory(); -- targetFilePath = OS.Path.join(targetFilePath, -- "test" + (Math.floor(Math.random() * 1000000))); -- let targetFile = new FileUtils.File(targetFilePath); -- downloadFiles.push(targetFile); -- -- let download; -- if (gUseLegacySaver) { -- download = yield promiseStartLegacyDownload(httpUrl("source.txt"), -- { isPrivate, targetFile }); -- } -- else { -- download = yield Downloads.createDownload({ -- source: { url: httpUrl("source.txt"), isPrivate }, -- target: targetFile, -- }); -- download.start().catch(() => {}); -- } -- -- // Wait for the whenSucceeded promise to be resolved first. -- // downloadDone should be called before the whenSucceeded promise is resolved. -- yield download.whenSucceeded().then(function () { -- do_check_true(downloadDoneCalled); -- do_check_true(downloadWatcherNotified); -- }); -- -- // Then, wait for the promise returned by "start" to be resolved. -- yield promiseDownloadStopped(download); -- -- yield promiseVerifyTarget(download.target, TEST_DATA_SHORT); -- } -- -- cleanup(); --}); -- --/** - * Checks that downloads are added to browsing history when they start. - */ - add_task(function* test_history() - { - mustInterruptResponses(); - - // We will wait for the visit to be notified during the download. - yield PlacesTestUtils.clearHistory(); -diff --git a/toolkit/content/devicestorage.properties b/toolkit/content/devicestorage.properties -deleted file mode 100644 ---- a/toolkit/content/devicestorage.properties -+++ /dev/null -@@ -1,4 +0,0 @@ --# Extensions we recognize for DeviceStorage storage areas --pictures=*.jpe; *.jpg; *.jpeg; *.gif; *.png; *.bmp; --music=*.mp3; *.oga; *.ogg; *.m4a; *.m4b; *.m4p; *.m4r; *.3gp; *.3gpp; *.mp4; *.m3u; *.pls; *.opus; *.amr; *.wav; *.lcka; *.mka; *.flac; --videos=*.mp4; *.mpeg; *.mpg; *.ogv; *.ogx; *.webm; *.3gp; *.3gpp; *.3g2; *.ogg; *.m4v; *.ts; *.m2ts; *.avi; *.divx; *.mkv; -diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn ---- a/toolkit/content/jar.mn -+++ b/toolkit/content/jar.mn -@@ -40,17 +40,16 @@ toolkit.jar: - content/global/browser-content.js - * content/global/buildconfig.html - content/global/contentAreaUtils.js - #ifndef MOZ_ICECATMOBILE - content/global/customizeToolbar.css - content/global/customizeToolbar.js - content/global/customizeToolbar.xul - #endif -- content/global/devicestorage.properties - #ifndef MOZ_ICECATMOBILE - content/global/editMenuOverlay.js - * content/global/editMenuOverlay.xul - content/global/finddialog.js - * content/global/finddialog.xul - content/global/findUtils.js - #endif - content/global/filepicker.properties -@@ -113,9 +112,9 @@ toolkit.jar: - content/global/bindings/videocontrols.css (widgets/videocontrols.css) - * content/global/bindings/wizard.xml (widgets/wizard.xml) - #ifdef XP_MACOSX - content/global/macWindowMenu.js - #endif - content/global/svg/svgBindings.xml (/layout/svg/resources/content/svgBindings.xml) - content/global/gmp-sources/eme-adobe.json (gmp-sources/eme-adobe.json) - content/global/gmp-sources/openh264.json (gmp-sources/openh264.json) -- content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json) -\ No newline at end of file -+ content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json) -diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp ---- a/uriloader/exthandler/nsExternalHelperAppService.cpp -+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp -@@ -101,20 +101,16 @@ - - #ifdef MOZ_WIDGET_ANDROID - #include "IceCatMobileJNIWrappers.h" - #endif - - #include "mozilla/Preferences.h" - #include "mozilla/ipc/URIUtils.h" - --#ifdef MOZ_WIDGET_GONK --#include "nsDeviceStorage.h" --#endif -- - using namespace mozilla; - using namespace mozilla::ipc; - - // Download Folder location constants - #define NS_PREF_DOWNLOAD_DIR "browser.download.dir" - #define NS_PREF_DOWNLOAD_FOLDERLIST "browser.download.folderList" - enum { - NS_FOLDER_VALUE_DESKTOP = 0 -@@ -321,65 +317,16 @@ static nsresult GetDownloadDirectory(nsI - } - - if (!dir) { - // If not, we default to the OS X default download location. - nsresult rv = NS_GetSpecialDirectory(NS_OSX_DEFAULT_DOWNLOAD_DIR, - getter_AddRefs(dir)); - NS_ENSURE_SUCCESS(rv, rv); - } --#elif defined(MOZ_WIDGET_GONK) -- // On Gonk, store the files on the sdcard in the downloads directory. -- // We need to check with the volume manager which storage point is -- // available. -- -- // Pick the default storage in case multiple (internal and external) ones -- // are available. -- nsString storageName; -- nsDOMDeviceStorage::GetDefaultStorageName(NS_LITERAL_STRING("sdcard"), -- storageName); -- -- RefPtr<DeviceStorageFile> dsf( -- new DeviceStorageFile(NS_LITERAL_STRING("sdcard"), -- storageName, -- NS_LITERAL_STRING("downloads"))); -- NS_ENSURE_TRUE(dsf->mFile, NS_ERROR_FILE_ACCESS_DENIED); -- -- // If we're not checking for availability we're done. -- if (aSkipChecks) { -- dsf->mFile.forget(_directory); -- return NS_OK; -- } -- -- // Check device storage status before continuing. -- nsString storageStatus; -- dsf->GetStatus(storageStatus); -- -- // If we get an "unavailable" status, it means the sd card is not present. -- // We'll also catch internal errors by looking for an empty string and assume -- // the SD card isn't present when this occurs. -- if (storageStatus.EqualsLiteral("unavailable") || -- storageStatus.IsEmpty()) { -- return NS_ERROR_FILE_NOT_FOUND; -- } -- -- // If we get a status other than 'available' here it means the card is busy -- // because it's mounted via USB or it is being formatted. -- if (!storageStatus.EqualsLiteral("available")) { -- return NS_ERROR_FILE_ACCESS_DENIED; -- } -- -- bool alreadyThere; -- nsresult rv = dsf->mFile->Exists(&alreadyThere); -- NS_ENSURE_SUCCESS(rv, rv); -- if (!alreadyThere) { -- rv = dsf->mFile->Create(nsIFile::DIRECTORY_TYPE, 0770); -- NS_ENSURE_SUCCESS(rv, rv); -- } -- dir = dsf->mFile; - #elif defined(ANDROID) - // We ask Java for the temporary download directory. The directory will be - // different depending on whether we have the permission to write to the - // public download directory or not. - // In the case where we do not have the permission we will start the - // download to the app cache directory and later move it to the final - // destination after prompting for the permission. - jni::String::LocalRef downloadDir; -diff --git a/widget/android/AndroidBridge.cpp b/widget/android/AndroidBridge.cpp ---- a/widget/android/AndroidBridge.cpp -+++ b/widget/android/AndroidBridge.cpp -@@ -1119,42 +1119,8 @@ nsresult AndroidBridge::InputStreamRead( - - if (read <= 0) { - *aRead = 0; - return NS_OK; - } - *aRead = read; - return NS_OK; - } -- --nsresult AndroidBridge::GetExternalPublicDirectory(const nsAString& aType, nsAString& aPath) { -- if (XRE_IsContentProcess()) { -- nsString key(aType); -- nsAutoString path; -- if (AndroidBridge::sStoragePaths.Get(key, &path)) { -- aPath = path; -- return NS_OK; -- } -- -- // Lazily get the value from the parent. -- dom::ContentChild* child = dom::ContentChild::GetSingleton(); -- if (child) { -- nsAutoString type(aType); -- child->SendGetDeviceStorageLocation(type, &path); -- if (!path.IsEmpty()) { -- AndroidBridge::sStoragePaths.Put(key, path); -- aPath = path; -- return NS_OK; -- } -- } -- -- ALOG_BRIDGE("AndroidBridge::GetExternalPublicDirectory no cache for %s", -- NS_ConvertUTF16toUTF8(aType).get()); -- return NS_ERROR_NOT_AVAILABLE; -- } -- -- auto path = GeckoAppShell::GetExternalPublicDirectory(aType); -- if (!path) { -- return NS_ERROR_NOT_AVAILABLE; -- } -- aPath = path->ToString(); -- return NS_OK; --} -diff --git a/widget/android/AndroidBridge.h b/widget/android/AndroidBridge.h ---- a/widget/android/AndroidBridge.h -+++ b/widget/android/AndroidBridge.h -@@ -197,18 +197,16 @@ public: - static jmethodID GetStaticMethodID(JNIEnv* env, jclass jClass, const char* methodName, const char* methodType); - - static jni::Object::LocalRef ChannelCreate(jni::Object::Param); - - static void InputStreamClose(jni::Object::Param obj); - static uint32_t InputStreamAvailable(jni::Object::Param obj); - static nsresult InputStreamRead(jni::Object::Param obj, char *aBuf, uint32_t aCount, uint32_t *aRead); - -- static nsresult GetExternalPublicDirectory(const nsAString& aType, nsAString& aPath); -- - protected: - static nsDataHashtable<nsStringHashKey, nsString> sStoragePaths; - - static AndroidBridge* sBridge; - - AndroidBridge(); - ~AndroidBridge(); - -diff --git a/widget/android/GeneratedJNIWrappers.cpp b/widget/android/GeneratedJNIWrappers.cpp ---- a/widget/android/GeneratedJNIWrappers.cpp -+++ b/widget/android/GeneratedJNIWrappers.cpp -@@ -274,24 +274,16 @@ auto GeckoAppShell::GetExceptionStackTra - constexpr char GeckoAppShell::GetExtensionFromMimeType_t::name[]; - constexpr char GeckoAppShell::GetExtensionFromMimeType_t::signature[]; - - auto GeckoAppShell::GetExtensionFromMimeType(mozilla::jni::String::Param a0) -> mozilla::jni::String::LocalRef - { - return mozilla::jni::Method<GetExtensionFromMimeType_t>::Call(GeckoAppShell::Context(), nullptr, a0); - } - --constexpr char GeckoAppShell::GetExternalPublicDirectory_t::name[]; --constexpr char GeckoAppShell::GetExternalPublicDirectory_t::signature[]; -- --auto GeckoAppShell::GetExternalPublicDirectory(mozilla::jni::String::Param a0) -> mozilla::jni::String::LocalRef --{ -- return mozilla::jni::Method<GetExternalPublicDirectory_t>::Call(GeckoAppShell::Context(), nullptr, a0); --} -- - constexpr char GeckoAppShell::GetHWDecoderCapability_t::name[]; - constexpr char GeckoAppShell::GetHWDecoderCapability_t::signature[]; - - auto GeckoAppShell::GetHWDecoderCapability() -> bool - { - return mozilla::jni::Method<GetHWDecoderCapability_t>::Call(GeckoAppShell::Context(), nullptr); - } - -diff --git a/widget/android/GeneratedJNIWrappers.h b/widget/android/GeneratedJNIWrappers.h ---- a/widget/android/GeneratedJNIWrappers.h -+++ b/widget/android/GeneratedJNIWrappers.h -@@ -724,36 +724,16 @@ public: - static const mozilla::jni::CallingThread callingThread = - mozilla::jni::CallingThread::GECKO; - static const mozilla::jni::DispatchTarget dispatchTarget = - mozilla::jni::DispatchTarget::CURRENT; - }; - - static auto GetExtensionFromMimeType(mozilla::jni::String::Param) -> mozilla::jni::String::LocalRef; - -- struct GetExternalPublicDirectory_t { -- typedef GeckoAppShell Owner; -- typedef mozilla::jni::String::LocalRef ReturnType; -- typedef mozilla::jni::String::Param SetterType; -- typedef mozilla::jni::Args< -- mozilla::jni::String::Param> Args; -- static constexpr char name[] = "getExternalPublicDirectory"; -- static constexpr char signature[] = -- "(Ljava/lang/String;)Ljava/lang/String;"; -- static const bool isStatic = true; -- static const mozilla::jni::ExceptionMode exceptionMode = -- mozilla::jni::ExceptionMode::ABORT; -- static const mozilla::jni::CallingThread callingThread = -- mozilla::jni::CallingThread::GECKO; -- static const mozilla::jni::DispatchTarget dispatchTarget = -- mozilla::jni::DispatchTarget::CURRENT; -- }; -- -- static auto GetExternalPublicDirectory(mozilla::jni::String::Param) -> mozilla::jni::String::LocalRef; -- - struct GetHWDecoderCapability_t { - typedef GeckoAppShell Owner; - typedef bool ReturnType; - typedef bool SetterType; - typedef mozilla::jni::Args<> Args; - static constexpr char name[] = "getHWDecoderCapability"; - static constexpr char signature[] = - "()Z"; -diff --git a/xpcom/reflect/xptinfo/ShimInterfaceInfo.cpp b/xpcom/reflect/xptinfo/ShimInterfaceInfo.cpp ---- a/xpcom/reflect/xptinfo/ShimInterfaceInfo.cpp -+++ b/xpcom/reflect/xptinfo/ShimInterfaceInfo.cpp -@@ -155,17 +155,16 @@ - #include "mozilla/dom/CSSValueBinding.h" - #include "mozilla/dom/CSSValueListBinding.h" - #include "mozilla/dom/CustomEventBinding.h" - #ifdef MOZ_WEBRTC - #include "mozilla/dom/DataChannelBinding.h" - #endif - #include "mozilla/dom/DataContainerEventBinding.h" - #include "mozilla/dom/DataTransferBinding.h" --#include "mozilla/dom/DeviceStorageBinding.h" - #include "mozilla/dom/DOMCursorBinding.h" - #include "mozilla/dom/DOMExceptionBinding.h" - #include "mozilla/dom/DOMParserBinding.h" - #include "mozilla/dom/DOMRequestBinding.h" - #include "mozilla/dom/DocumentBinding.h" - #include "mozilla/dom/DocumentFragmentBinding.h" - #include "mozilla/dom/DocumentTypeBinding.h" - #include "mozilla/dom/DocumentBinding.h" - diff --git a/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch b/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch new file mode 100644 index 0000000000..5f63231af0 --- /dev/null +++ b/gnu/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch @@ -0,0 +1,77 @@ +Fix CVE-2017-{8361,8363,8365}: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8361 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8363 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8365 + +Patch copied from upstream source repository: + +https://github.com/erikd/libsndfile/commit/fd0484aba8e51d16af1e3a880f9b8b857b385eb3 + +From fd0484aba8e51d16af1e3a880f9b8b857b385eb3 Mon Sep 17 00:00:00 2001 +From: Erik de Castro Lopo <erikd@mega-nerd.com> +Date: Wed, 12 Apr 2017 19:45:30 +1000 +Subject: [PATCH] FLAC: Fix a buffer read overrun + +Buffer read overrun occurs when reading a FLAC file that switches +from 2 channels to one channel mid-stream. Only option is to +abort the read. + +Closes: https://github.com/erikd/libsndfile/issues/230 +--- + src/common.h | 1 + + src/flac.c | 13 +++++++++++++ + src/sndfile.c | 1 + + 3 files changed, 15 insertions(+) + +diff --git a/src/common.h b/src/common.h +index 0bd810c3..e2669b6a 100644 +--- a/src/common.h ++++ b/src/common.h +@@ -725,6 +725,7 @@ enum + SFE_FLAC_INIT_DECODER, + SFE_FLAC_LOST_SYNC, + SFE_FLAC_BAD_SAMPLE_RATE, ++ SFE_FLAC_CHANNEL_COUNT_CHANGED, + SFE_FLAC_UNKOWN_ERROR, + + SFE_WVE_NOT_WVE, +diff --git a/src/flac.c b/src/flac.c +index 84de0e26..986a7b8f 100644 +--- a/src/flac.c ++++ b/src/flac.c +@@ -434,6 +434,19 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_ + + switch (metadata->type) + { case FLAC__METADATA_TYPE_STREAMINFO : ++ if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels) ++ { psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n" ++ "Nothing to be but to error out.\n" , ++ psf->sf.channels, metadata->data.stream_info.channels) ; ++ psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; ++ return ; ++ } ; ++ ++ if (psf->sf.channels > 0 && psf->sf.samplerate != (int) metadata->data.stream_info.sample_rate) ++ { psf_log_printf (psf, "Warning: FLAC stream changed sample rates from %d to %d.\n" ++ "Carrying on as if nothing happened.", ++ psf->sf.samplerate, metadata->data.stream_info.sample_rate) ; ++ } ; + psf->sf.channels = metadata->data.stream_info.channels ; + psf->sf.samplerate = metadata->data.stream_info.sample_rate ; + psf->sf.frames = metadata->data.stream_info.total_samples ; +diff --git a/src/sndfile.c b/src/sndfile.c +index 41875610..e2a87be8 100644 +--- a/src/sndfile.c ++++ b/src/sndfile.c +@@ -245,6 +245,7 @@ ErrorStruct SndfileErrors [] = + { SFE_FLAC_INIT_DECODER , "Error : problem with initialization of the flac decoder." }, + { SFE_FLAC_LOST_SYNC , "Error : flac decoder lost sync." }, + { SFE_FLAC_BAD_SAMPLE_RATE, "Error : flac does not support this sample rate." }, ++ { SFE_FLAC_CHANNEL_COUNT_CHANGED, "Error : flac channel changed mid stream." }, + { SFE_FLAC_UNKOWN_ERROR , "Error : unknown error in flac decoder." }, + + { SFE_WVE_NOT_WVE , "Error : not a WVE file." }, +-- +2.12.2 + diff --git a/gnu/packages/patches/libsndfile-CVE-2017-8362.patch b/gnu/packages/patches/libsndfile-CVE-2017-8362.patch new file mode 100644 index 0000000000..5fc52a377a --- /dev/null +++ b/gnu/packages/patches/libsndfile-CVE-2017-8362.patch @@ -0,0 +1,61 @@ +Fix CVE-2017-8362: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8362 + +Patch copied from upstream source repository: + +https://github.com/erikd/libsndfile/commit/ef1dbb2df1c0e741486646de40bd638a9c4cd808 + +From ef1dbb2df1c0e741486646de40bd638a9c4cd808 Mon Sep 17 00:00:00 2001 +From: Erik de Castro Lopo <erikd@mega-nerd.com> +Date: Fri, 14 Apr 2017 15:19:16 +1000 +Subject: [PATCH] src/flac.c: Fix a buffer read overflow + +A file (generated by a fuzzer) which increased the number of channels +from one frame to the next could cause a read beyond the end of the +buffer provided by libFLAC. Only option is to abort the read. + +Closes: https://github.com/erikd/libsndfile/issues/231 +--- + src/flac.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/src/flac.c b/src/flac.c +index 5a4f8c21..e4f9aaa0 100644 +--- a/src/flac.c ++++ b/src/flac.c +@@ -169,6 +169,14 @@ flac_buffer_copy (SF_PRIVATE *psf) + const int32_t* const *buffer = pflac->wbuffer ; + unsigned i = 0, j, offset, channels, len ; + ++ if (psf->sf.channels != (int) frame->header.channels) ++ { psf_log_printf (psf, "Error: FLAC frame changed from %d to %d channels\n" ++ "Nothing to do but to error out.\n" , ++ psf->sf.channels, frame->header.channels) ; ++ psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; ++ return 0 ; ++ } ; ++ + /* + ** frame->header.blocksize is variable and we're using a constant blocksize + ** of FLAC__MAX_BLOCK_SIZE. +@@ -202,7 +210,6 @@ flac_buffer_copy (SF_PRIVATE *psf) + return 0 ; + } ; + +- + len = SF_MIN (pflac->len, frame->header.blocksize) ; + + if (pflac->remain % channels != 0) +@@ -436,7 +443,7 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_ + { case FLAC__METADATA_TYPE_STREAMINFO : + if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels) + { psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n" +- "Nothing to be but to error out.\n" , ++ "Nothing to do but to error out.\n" , + psf->sf.channels, metadata->data.stream_info.channels) ; + psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; + return ; +-- +2.12.2 + diff --git a/gnu/packages/patches/libtiff-CVE-2017-7593.patch b/gnu/packages/patches/libtiff-CVE-2017-7593.patch new file mode 100644 index 0000000000..496efb73b9 --- /dev/null +++ b/gnu/packages/patches/libtiff-CVE-2017-7593.patch @@ -0,0 +1,113 @@ +Fixes CVE-2017-7593 (Potential uninitialized-memory access from tif_rawdata): + +http://bugzilla.maptools.org/show_bug.cgi?id=2651 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7593 +https://security-tracker.debian.org/tracker/CVE-2017-7593 + +2017-01-11 Even Rouault <even.rouault at spatialys.com> + + * libtiff/tiffio.h, tif_unix.c, tif_win32.c, tif_vms.c: add + _TIFFcalloc() + + * libtiff/tif_read.c: TIFFReadBufferSetup(): use _TIFFcalloc() to zero + initialize tif_rawdata. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2651 + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1208; previous revision: 1.1207 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_read.c,v <-- libtiff/tif_read.c +new revision: 1.53; previous revision: 1.52 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_unix.c,v <-- libtiff/tif_unix.c +new revision: 1.28; previous revision: 1.27 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_vms.c,v <-- libtiff/tif_vms.c +new revision: 1.14; previous revision: 1.13 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_win32.c,v <-- libtiff/tif_win32.c +new revision: 1.42; previous revision: 1.41 +/cvs/maptools/cvsroot/libtiff/libtiff/tiffio.h,v <-- libtiff/tiffio.h +new revision: 1.94; previous revision: 1.93 + +diff -ru tiff-4.0.7/libtiff/tiffio.h tiff-4.0.7.new/libtiff/tiffio.h +--- tiff-4.0.7/libtiff/tiffio.h 1969-12-31 19:00:00.000000000 -0500 ++++ tiff-4.0.7.new/libtiff/tiffio.h 2017-05-05 19:08:03.772999790 -0400 +@@ -1,4 +1,4 @@ +-/* $Id: tiffio.h,v 1.92 2016-01-23 21:20:34 erouault Exp $ */ ++/* $Id: tiffio.h,v 1.94 2017-01-11 19:02:49 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -293,6 +293,7 @@ + */ + + extern void* _TIFFmalloc(tmsize_t s); ++extern void* _TIFFcalloc(tmsize_t nmemb, tmsize_t siz); + extern void* _TIFFrealloc(void* p, tmsize_t s); + extern void _TIFFmemset(void* p, int v, tmsize_t c); + extern void _TIFFmemcpy(void* d, const void* s, tmsize_t c); +diff -ru tiff-4.0.7/libtiff/tif_read.c tiff-4.0.7.new/libtiff/tif_read.c +--- tiff-4.0.7/libtiff/tif_read.c 2017-05-05 19:04:09.740966642 -0400 ++++ tiff-4.0.7.new/libtiff/tif_read.c 2017-05-05 18:59:11.070709441 -0400 +@@ -1,4 +1,4 @@ +-/* $Id: tif_read.c,v 1.50 2016-12-02 21:56:56 erouault Exp $ */ ++/* $Id: tif_read.c,v 1.53 2017-01-11 19:02:49 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -976,7 +976,9 @@ + "Invalid buffer size"); + return (0); + } +- tif->tif_rawdata = (uint8*) _TIFFmalloc(tif->tif_rawdatasize); ++ /* Initialize to zero to avoid uninitialized buffers in case of */ ++ /* short reads (http://bugzilla.maptools.org/show_bug.cgi?id=2651) */ ++ tif->tif_rawdata = (uint8*) _TIFFcalloc(1, tif->tif_rawdatasize); + tif->tif_flags |= TIFF_MYBUFFER; + } + if (tif->tif_rawdata == NULL) { +diff -ru tiff-4.0.7/libtiff/tif_unix.c tiff-4.0.7.new/libtiff/tif_unix.c +--- tiff-4.0.7/libtiff/tif_unix.c 1969-12-31 19:00:00.000000000 -0500 ++++ tiff-4.0.7.new/libtiff/tif_unix.c 2017-05-05 19:10:48.302645187 -0400 +@@ -1,4 +1,4 @@ +-/* $Id: tif_unix.c,v 1.27 2015-08-19 02:31:04 bfriesen Exp $ */ ++/* $Id: tif_unix.c,v 1.28 2017-01-11 19:02:49 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -316,6 +316,14 @@ + return (malloc((size_t) s)); + } + ++void* _TIFFcalloc(tmsize_t nmemb, tmsize_t siz) ++{ ++ if( nmemb == 0 || siz == 0 ) ++ return ((void *) NULL); ++ ++ return calloc((size_t) nmemb, (size_t)siz); ++} ++ + void + _TIFFfree(void* p) + { +diff -ru tiff-4.0.7/libtiff/tif_win32.c tiff-4.0.7.new/libtiff/tif_win32.c +--- tiff-4.0.7/libtiff/tif_win32.c 1969-12-31 19:00:00.000000000 -0500 ++++ tiff-4.0.7.new/libtiff/tif_win32.c 2017-05-05 19:13:06.903399627 -0400 +@@ -1,4 +1,4 @@ +-/* $Id: tif_win32.c,v 1.41 2015-08-23 20:12:44 bfriesen Exp $ */ ++/* $Id: tif_win32.c,v 1.42 2017-01-11 19:02:49 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -360,6 +360,14 @@ + return (malloc((size_t) s)); + } + ++void* _TIFFcalloc(tmsize_t nmemb, tmsize_t siz) ++{ ++ if( nmemb == 0 || siz == 0 ) ++ return ((void *) NULL); ++ ++ return calloc((size_t) nmemb, (size_t)siz); ++} ++ + void + _TIFFfree(void* p) + { diff --git a/gnu/packages/patches/libtiff-CVE-2017-7594.patch b/gnu/packages/patches/libtiff-CVE-2017-7594.patch new file mode 100644 index 0000000000..d17997d447 --- /dev/null +++ b/gnu/packages/patches/libtiff-CVE-2017-7594.patch @@ -0,0 +1,54 @@ +Fixes CVE-2017-7594 (Direct leak in tif_ojpeg.c): + +http://bugzilla.maptools.org/show_bug.cgi?id=2659 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7594 +https://security-tracker.debian.org/tracker/CVE-2017-7594 + +2017-01-12 Even Rouault <even.rouault at spatialys.com> + + * libtiff/tif_ojpeg.c: fix leak in OJPEGReadHeaderInfoSecTablesAcTable + when read fails. + Patch by Nicolás Peña. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2659 + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1212; previous revision: 1.1211 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_ojpeg.c,v <-- libtiff/tif_ojpeg.c +new revision: 1.67; previous revision: 1.66 + +Index: libtiff/libtiff/tif_ojpeg.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_ojpeg.c,v +retrieving revision 1.67 +retrieving revision 1.68 +diff -u -r1.67 -r1.68 +--- libtiff/libtiff/tif_ojpeg.c 12 Jan 2017 17:43:26 -0000 1.67 ++++ libtiff/libtiff/tif_ojpeg.c 12 Jan 2017 19:23:20 -0000 1.68 +@@ -1,4 +1,4 @@ +-/* $Id: tif_ojpeg.c,v 1.66 2016-12-03 11:15:18 erouault Exp $ */ ++/* $Id: tif_ojpeg.c,v 1.68 2017-01-12 19:23:20 erouault Exp $ */ + + /* WARNING: The type of JPEG encapsulation defined by the TIFF Version 6.0 + specification is now totally obsolete and deprecated for new applications and +@@ -1790,7 +1790,10 @@ + TIFFSeekFile(tif,sp->qtable_offset[m],SEEK_SET); + p=(uint32)TIFFReadFile(tif,&ob[sizeof(uint32)+5],64); + if (p!=64) ++ { ++ _TIFFfree(ob); + return(0); ++ } + sp->qtable[m]=ob; + sp->sof_tq[m]=m; + } +@@ -1854,7 +1857,10 @@ + rb[sizeof(uint32)+5+n]=o[n]; + p=(uint32)TIFFReadFile(tif,&(rb[sizeof(uint32)+21]),q); + if (p!=q) ++ { ++ _TIFFfree(rb); + return(0); ++ } + sp->dctable[m]=rb; + sp->sos_tda[m]=(m<<4); + } diff --git a/gnu/packages/patches/libtiff-multiple-UBSAN-crashes.patch b/gnu/packages/patches/libtiff-multiple-UBSAN-crashes.patch new file mode 100644 index 0000000000..2f4509f386 --- /dev/null +++ b/gnu/packages/patches/libtiff-multiple-UBSAN-crashes.patch @@ -0,0 +1,449 @@ +Fixes CVE-2017-{7595,7596,7597,7598,7599,7600,7601,7602}: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7595 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7596 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7597 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7598 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7599 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7600 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7601 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7602 + +2017-01-11 Even Rouault <even.rouault at spatialys.com> + + * libtiff/tif_dir.c, tif_dirread.c, tif_dirwrite.c: implement various + clampings + of double to other data types to avoid undefined behaviour if the + output range + isn't big enough to hold the input value. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2643 + http://bugzilla.maptools.org/show_bug.cgi?id=2642 + http://bugzilla.maptools.org/show_bug.cgi?id=2646 + http://bugzilla.maptools.org/show_bug.cgi?id=2647 + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1204; previous revision: 1.1203 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_dir.c,v <-- libtiff/tif_dir.c +new revision: 1.129; previous revision: 1.128 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_dirread.c,v <-- libtiff/tif_dirread.c +new revision: 1.207; previous revision: 1.206 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_dirwrite.c,v <-- libtiff/tif_dirwrite.c +new revision: 1.85; previous revision: 1.84 + +2017-01-11 Even Rouault <even.rouault at spatialys.com> + + * libtiff/tif_dirread.c: avoid division by floating point 0 in + TIFFReadDirEntryCheckedRational() and + TIFFReadDirEntryCheckedSrational(), + and return 0 in that case (instead of infinity as before presumably) + Apparently some sanitizers do not like those divisions by zero. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2644 + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1203; previous revision: 1.1202 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_dirread.c,v <-- libtiff/tif_dirread.c +new revision: 1.206; previous revision: 1.205 + +2017-01-11 Even Rouault <even.rouault at spatialys.com> + + * libtiff/tif_jpeg.c: validate BitsPerSample in JPEGSetupEncode() to + avoid undefined behaviour caused by invalid shift exponent. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2648 + + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1205; previous revision: 1.1204 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_jpeg.c,v <-- libtiff/tif_jpeg.c +new revision: 1.126; previous revision: 1.125 + +2017-01-11 Even Rouault <even.rouault at spatialys.com> + + * libtiff/tif_read.c: avoid potential undefined behaviour on signed + integer addition in TIFFReadRawStrip1() in isMapped() case. + Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2650 + +/cvs/maptools/cvsroot/libtiff/ChangeLog,v <-- ChangeLog +new revision: 1.1206; previous revision: 1.1205 +/cvs/maptools/cvsroot/libtiff/libtiff/tif_read.c,v <-- libtiff/tif_read.c +new revision: 1.51; previous revision: 1.50 + +Index: libtiff/libtiff/tif_dir.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dir.c,v +retrieving revision 1.128 +retrieving revision 1.129 +diff -u -r1.128 -r1.129 +--- libtiff/libtiff/tif_dir.c 3 Dec 2016 15:30:31 -0000 1.128 ++++ libtiff/libtiff/tif_dir.c 11 Jan 2017 16:09:02 -0000 1.129 +@@ -1,4 +1,4 @@ +-/* $Id: tif_dir.c,v 1.128 2016-12-03 15:30:31 erouault Exp $ */ ++/* $Id: tif_dir.c,v 1.129 2017-01-11 16:09:02 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -31,6 +31,7 @@ + * (and also some miscellaneous stuff) + */ + #include "tiffiop.h" ++#include <float.h> + + /* + * These are used in the backwards compatibility code... +@@ -154,6 +155,15 @@ + return (0); + } + ++static float TIFFClampDoubleToFloat( double val ) ++{ ++ if( val > FLT_MAX ) ++ return FLT_MAX; ++ if( val < -FLT_MAX ) ++ return -FLT_MAX; ++ return (float)val; ++} ++ + static int + _TIFFVSetField(TIFF* tif, uint32 tag, va_list ap) + { +@@ -312,13 +322,13 @@ + dblval = va_arg(ap, double); + if( dblval < 0 ) + goto badvaluedouble; +- td->td_xresolution = (float) dblval; ++ td->td_xresolution = TIFFClampDoubleToFloat( dblval ); + break; + case TIFFTAG_YRESOLUTION: + dblval = va_arg(ap, double); + if( dblval < 0 ) + goto badvaluedouble; +- td->td_yresolution = (float) dblval; ++ td->td_yresolution = TIFFClampDoubleToFloat( dblval ); + break; + case TIFFTAG_PLANARCONFIG: + v = (uint16) va_arg(ap, uint16_vap); +@@ -327,10 +337,10 @@ + td->td_planarconfig = (uint16) v; + break; + case TIFFTAG_XPOSITION: +- td->td_xposition = (float) va_arg(ap, double); ++ td->td_xposition = TIFFClampDoubleToFloat( va_arg(ap, double) ); + break; + case TIFFTAG_YPOSITION: +- td->td_yposition = (float) va_arg(ap, double); ++ td->td_yposition = TIFFClampDoubleToFloat( va_arg(ap, double) ); + break; + case TIFFTAG_RESOLUTIONUNIT: + v = (uint16) va_arg(ap, uint16_vap); +Index: libtiff/libtiff/tif_dirread.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dirread.c,v +retrieving revision 1.206 +retrieving revision 1.207 +diff -u -r1.206 -r1.207 +--- libtiff/libtiff/tif_dirread.c 11 Jan 2017 13:28:01 -0000 1.206 ++++ libtiff/libtiff/tif_dirread.c 11 Jan 2017 16:09:02 -0000 1.207 +@@ -1,4 +1,4 @@ +-/* $Id: tif_dirread.c,v 1.205 2016-12-03 11:02:15 erouault Exp $ */ ++/* $Id: tif_dirread.c,v 1.207 2017-01-11 16:09:02 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -40,6 +40,7 @@ + */ + + #include "tiffiop.h" ++#include <float.h> + + #define IGNORE 0 /* tag placeholder used below */ + #define FAILED_FII ((uint32) -1) +@@ -2406,7 +2407,14 @@ + ma=(double*)origdata; + mb=data; + for (n=0; n<count; n++) +- *mb++=(float)(*ma++); ++ { ++ double val = *ma++; ++ if( val > FLT_MAX ) ++ val = FLT_MAX; ++ else if( val < -FLT_MAX ) ++ val = -FLT_MAX; ++ *mb++=(float)val; ++ } + } + break; + } +Index: libtiff/libtiff/tif_dirwrite.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dirwrite.c,v +retrieving revision 1.84 +retrieving revision 1.85 +diff -u -r1.84 -r1.85 +--- libtiff/libtiff/tif_dirwrite.c 11 Jan 2017 12:51:59 -0000 1.84 ++++ libtiff/libtiff/tif_dirwrite.c 11 Jan 2017 16:09:02 -0000 1.85 +@@ -1,4 +1,4 @@ +-/* $Id: tif_dirwrite.c,v 1.83 2016-10-25 21:35:15 erouault Exp $ */ ++/* $Id: tif_dirwrite.c,v 1.85 2017-01-11 16:09:02 erouault Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -30,6 +30,7 @@ + * Directory Write Support Routines. + */ + #include "tiffiop.h" ++#include <float.h> + + #ifdef HAVE_IEEEFP + #define TIFFCvtNativeToIEEEFloat(tif, n, fp) +@@ -939,6 +940,69 @@ + return(0); + } + ++static float TIFFClampDoubleToFloat( double val ) ++{ ++ if( val > FLT_MAX ) ++ return FLT_MAX; ++ if( val < -FLT_MAX ) ++ return -FLT_MAX; ++ return (float)val; ++} ++ ++static int8 TIFFClampDoubleToInt8( double val ) ++{ ++ if( val > 127 ) ++ return 127; ++ if( val < -128 || val != val ) ++ return -128; ++ return (int8)val; ++} ++ ++static int16 TIFFClampDoubleToInt16( double val ) ++{ ++ if( val > 32767 ) ++ return 32767; ++ if( val < -32768 || val != val ) ++ return -32768; ++ return (int16)val; ++} ++ ++static int32 TIFFClampDoubleToInt32( double val ) ++{ ++ if( val > 0x7FFFFFFF ) ++ return 0x7FFFFFFF; ++ if( val < -0x7FFFFFFF-1 || val != val ) ++ return -0x7FFFFFFF-1; ++ return (int32)val; ++} ++ ++static uint8 TIFFClampDoubleToUInt8( double val ) ++{ ++ if( val < 0 ) ++ return 0; ++ if( val > 255 || val != val ) ++ return 255; ++ return (uint8)val; ++} ++ ++static uint16 TIFFClampDoubleToUInt16( double val ) ++{ ++ if( val < 0 ) ++ return 0; ++ if( val > 65535 || val != val ) ++ return 65535; ++ return (uint16)val; ++} ++ ++static uint32 TIFFClampDoubleToUInt32( double val ) ++{ ++ if( val < 0 ) ++ return 0; ++ if( val > 0xFFFFFFFFU || val != val ) ++ return 0xFFFFFFFFU; ++ return (uint32)val; ++} ++ + static int + TIFFWriteDirectoryTagSampleformatArray(TIFF* tif, uint32* ndir, TIFFDirEntry* dir, uint16 tag, uint32 count, double* value) + { +@@ -959,7 +1023,7 @@ + if (tif->tif_dir.td_bitspersample<=32) + { + for (i = 0; i < count; ++i) +- ((float*)conv)[i] = (float)value[i]; ++ ((float*)conv)[i] = TIFFClampDoubleToFloat(value[i]); + ok = TIFFWriteDirectoryTagFloatArray(tif,ndir,dir,tag,count,(float*)conv); + } + else +@@ -971,19 +1035,19 @@ + if (tif->tif_dir.td_bitspersample<=8) + { + for (i = 0; i < count; ++i) +- ((int8*)conv)[i] = (int8)value[i]; ++ ((int8*)conv)[i] = TIFFClampDoubleToInt8(value[i]); + ok = TIFFWriteDirectoryTagSbyteArray(tif,ndir,dir,tag,count,(int8*)conv); + } + else if (tif->tif_dir.td_bitspersample<=16) + { + for (i = 0; i < count; ++i) +- ((int16*)conv)[i] = (int16)value[i]; ++ ((int16*)conv)[i] = TIFFClampDoubleToInt16(value[i]); + ok = TIFFWriteDirectoryTagSshortArray(tif,ndir,dir,tag,count,(int16*)conv); + } + else + { + for (i = 0; i < count; ++i) +- ((int32*)conv)[i] = (int32)value[i]; ++ ((int32*)conv)[i] = TIFFClampDoubleToInt32(value[i]); + ok = TIFFWriteDirectoryTagSlongArray(tif,ndir,dir,tag,count,(int32*)conv); + } + break; +@@ -991,19 +1055,19 @@ + if (tif->tif_dir.td_bitspersample<=8) + { + for (i = 0; i < count; ++i) +- ((uint8*)conv)[i] = (uint8)value[i]; ++ ((uint8*)conv)[i] = TIFFClampDoubleToUInt8(value[i]); + ok = TIFFWriteDirectoryTagByteArray(tif,ndir,dir,tag,count,(uint8*)conv); + } + else if (tif->tif_dir.td_bitspersample<=16) + { + for (i = 0; i < count; ++i) +- ((uint16*)conv)[i] = (uint16)value[i]; ++ ((uint16*)conv)[i] = TIFFClampDoubleToUInt16(value[i]); + ok = TIFFWriteDirectoryTagShortArray(tif,ndir,dir,tag,count,(uint16*)conv); + } + else + { + for (i = 0; i < count; ++i) +- ((uint32*)conv)[i] = (uint32)value[i]; ++ ((uint32*)conv)[i] = TIFFClampDoubleToUInt32(value[i]); + ok = TIFFWriteDirectoryTagLongArray(tif,ndir,dir,tag,count,(uint32*)conv); + } + break; +@@ -2102,7 +2102,7 @@ + m[0]=0; + m[1]=1; + } +- else if (value==(double)(uint32)value) ++ else if (value <= 0xFFFFFFFFU && value==(double)(uint32)value) + { + m[0]=(uint32)value; + m[1]=1; +@@ -2148,12 +2217,13 @@ + } + for (na=value, nb=m, nc=0; nc<count; na++, nb+=2, nc++) + { +- if (*na<=0.0) ++ if (*na<=0.0 || *na != *na) + { + nb[0]=0; + nb[1]=1; + } +- else if (*na==(float)(uint32)(*na)) ++ else if (*na >= 0 && *na <= (float)0xFFFFFFFFU && ++ *na==(float)(uint32)(*na)) + { + nb[0]=(uint32)(*na); + nb[1]=1; +Index: libtiff/libtiff/tif_dirread.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dirread.c,v +retrieving revision 1.205 +retrieving revision 1.206 +diff -u -r1.205 -r1.206 +--- libtiff/libtiff/tif_dirread.c 3 Dec 2016 11:02:15 -0000 1.205 ++++ libtiff/libtiff/tif_dirread.c 11 Jan 2017 13:28:01 -0000 1.206 +@@ -2872,7 +2872,10 @@ + m.l = direntry->tdir_offset.toff_long8; + if (tif->tif_flags&TIFF_SWAB) + TIFFSwabArrayOfLong(m.i,2); +- if (m.i[0]==0) ++ /* Not completely sure what we should do when m.i[1]==0, but some */ ++ /* sanitizers do not like division by 0.0: */ ++ /* http://bugzilla.maptools.org/show_bug.cgi?id=2644 */ ++ if (m.i[0]==0 || m.i[1]==0) + *value=0.0; + else + *value=(double)m.i[0]/(double)m.i[1]; +@@ -2900,7 +2903,10 @@ + m.l=direntry->tdir_offset.toff_long8; + if (tif->tif_flags&TIFF_SWAB) + TIFFSwabArrayOfLong(m.i,2); +- if ((int32)m.i[0]==0) ++ /* Not completely sure what we should do when m.i[1]==0, but some */ ++ /* sanitizers do not like division by 0.0: */ ++ /* http://bugzilla.maptools.org/show_bug.cgi?id=2644 */ ++ if ((int32)m.i[0]==0 || m.i[1]==0) + *value=0.0; + else + *value=(double)((int32)m.i[0])/(double)m.i[1]; +Index: libtiff/libtiff/tif_jpeg.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_jpeg.c,v +retrieving revision 1.125 +retrieving revision 1.126 +diff -u -r1.125 -r1.126 +--- libtiff/libtiff/tif_jpeg.c 11 Jan 2017 12:15:01 -0000 1.125 ++++ libtiff/libtiff/tif_jpeg.c 11 Jan 2017 16:13:50 -0000 1.126 +@@ -1,4 +1,4 @@ +-/* $Id: tif_jpeg.c,v 1.123 2016-01-23 21:20:34 erouault Exp $ */ ++/* $Id: tif_jpeg.c,v 1.126 2017-01-11 16:13:50 erouault Exp $ */ + + /* + * Copyright (c) 1994-1997 Sam Leffler +@@ -1632,6 +1632,13 @@ + "Invalig horizontal/vertical sampling value"); + return (0); + } ++ if( td->td_bitspersample > 16 ) ++ { ++ TIFFErrorExt(tif->tif_clientdata, module, ++ "BitsPerSample %d not allowed for JPEG", ++ td->td_bitspersample); ++ return (0); ++ } + + /* + * A ReferenceBlackWhite field *must* be present since the +Index: libtiff/libtiff/tif_read.c +=================================================================== +RCS file: /cvs/maptools/cvsroot/libtiff/libtiff/tif_read.c,v +retrieving revision 1.50 +retrieving revision 1.51 +diff -u -r1.50 -r1.51 +--- libtiff/libtiff/tif_read.c 2 Dec 2016 21:56:56 -0000 1.50 ++++ libtiff/libtiff/tif_read.c 11 Jan 2017 16:33:34 -0000 1.51 +@@ -420,16 +420,25 @@ + return ((tmsize_t)(-1)); + } + } else { +- tmsize_t ma,mb; ++ tmsize_t ma; + tmsize_t n; +- ma=(tmsize_t)td->td_stripoffset[strip]; +- mb=ma+size; +- if ((td->td_stripoffset[strip] > (uint64)TIFF_TMSIZE_T_MAX)||(ma>tif->tif_size)) +- n=0; +- else if ((mb<ma)||(mb<size)||(mb>tif->tif_size)) +- n=tif->tif_size-ma; +- else +- n=size; ++ if ((td->td_stripoffset[strip] > (uint64)TIFF_TMSIZE_T_MAX)|| ++ ((ma=(tmsize_t)td->td_stripoffset[strip])>tif->tif_size)) ++ { ++ n=0; ++ } ++ else if( ma > TIFF_TMSIZE_T_MAX - size ) ++ { ++ n=0; ++ } ++ else ++ { ++ tmsize_t mb=ma+size; ++ if (mb>tif->tif_size) ++ n=tif->tif_size-ma; ++ else ++ n=size; ++ } + if (n!=size) { + #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__)) + TIFFErrorExt(tif->tif_clientdata, module, diff --git a/gnu/packages/patches/libtirpc-CVE-2017-8779.patch b/gnu/packages/patches/libtirpc-CVE-2017-8779.patch new file mode 100644 index 0000000000..742e64df25 --- /dev/null +++ b/gnu/packages/patches/libtirpc-CVE-2017-8779.patch @@ -0,0 +1,263 @@ +Fix CVE-2017-8779: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8779 + +Patch copied from the bug reporter's 3rd-party repository: + +https://github.com/guidovranken/rpcbomb/blob/master/libtirpc_patch.txt + +diff --git a/src/rpc_generic.c b/src/rpc_generic.c +index 2f09a8f..589cbd5 100644 +--- a/src/rpc_generic.c ++++ b/src/rpc_generic.c +@@ -615,6 +615,9 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf) + + switch (af) { + case AF_INET: ++ if (nbuf->len < sizeof(*sin)) { ++ return NULL; ++ } + sin = nbuf->buf; + if (inet_ntop(af, &sin->sin_addr, namebuf, sizeof namebuf) + == NULL) +@@ -626,6 +629,9 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf) + break; + #ifdef INET6 + case AF_INET6: ++ if (nbuf->len < sizeof(*sin6)) { ++ return NULL; ++ } + sin6 = nbuf->buf; + if (inet_ntop(af, &sin6->sin6_addr, namebuf6, sizeof namebuf6) + == NULL) +@@ -667,6 +673,8 @@ __rpc_uaddr2taddr_af(int af, const char *uaddr) + + port = 0; + sin = NULL; ++ if (uaddr == NULL) ++ return NULL; + addrstr = strdup(uaddr); + if (addrstr == NULL) + return NULL; +diff --git a/src/rpcb_prot.c b/src/rpcb_prot.c +index 43fd385..a923c8e 100644 +--- a/src/rpcb_prot.c ++++ b/src/rpcb_prot.c +@@ -41,6 +41,7 @@ + #include <rpc/types.h> + #include <rpc/xdr.h> + #include <rpc/rpcb_prot.h> ++#include "rpc_com.h" + + bool_t + xdr_rpcb(xdrs, objp) +@@ -53,13 +54,13 @@ xdr_rpcb(xdrs, objp) + if (!xdr_u_int32_t(xdrs, &objp->r_vers)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_netid, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_addr, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_addr, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_owner, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_owner, RPC_MAXDATASIZE)) { + return (FALSE); + } + return (TRUE); +@@ -159,19 +160,19 @@ xdr_rpcb_entry(xdrs, objp) + XDR *xdrs; + rpcb_entry *objp; + { +- if (!xdr_string(xdrs, &objp->r_maddr, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_maddr, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_nc_netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_nc_netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_u_int32_t(xdrs, &objp->r_nc_semantics)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_nc_protofmly, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_nc_protofmly, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_nc_proto, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_nc_proto, RPC_MAXDATASIZE)) { + return (FALSE); + } + return (TRUE); +@@ -292,7 +293,7 @@ xdr_rpcb_rmtcallres(xdrs, p) + bool_t dummy; + struct r_rpcb_rmtcallres *objp = (struct r_rpcb_rmtcallres *)(void *)p; + +- if (!xdr_string(xdrs, &objp->addr, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->addr, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_u_int(xdrs, &objp->results.results_len)) { +@@ -312,6 +313,11 @@ xdr_netbuf(xdrs, objp) + if (!xdr_u_int32_t(xdrs, (u_int32_t *) &objp->maxlen)) { + return (FALSE); + } ++ ++ if (objp->maxlen > RPC_MAXDATASIZE) { ++ return (FALSE); ++ } ++ + dummy = xdr_bytes(xdrs, (char **)&(objp->buf), + (u_int *)&(objp->len), objp->maxlen); + return (dummy); +diff --git a/src/rpcb_st_xdr.c b/src/rpcb_st_xdr.c +index 08db745..28e6a48 100644 +--- a/src/rpcb_st_xdr.c ++++ b/src/rpcb_st_xdr.c +@@ -37,6 +37,7 @@ + + + #include <rpc/rpc.h> ++#include "rpc_com.h" + + /* Link list of all the stats about getport and getaddr */ + +@@ -58,7 +59,7 @@ xdr_rpcbs_addrlist(xdrs, objp) + if (!xdr_int(xdrs, &objp->failure)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + +@@ -109,7 +110,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) + IXDR_PUT_INT32(buf, objp->failure); + IXDR_PUT_INT32(buf, objp->indirect); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_pointer(xdrs, (char **)&objp->next, +@@ -147,7 +148,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) + objp->failure = (int)IXDR_GET_INT32(buf); + objp->indirect = (int)IXDR_GET_INT32(buf); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_pointer(xdrs, (char **)&objp->next, +@@ -175,7 +176,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) + if (!xdr_int(xdrs, &objp->indirect)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_pointer(xdrs, (char **)&objp->next, +diff --git a/src/xdr.c b/src/xdr.c +index f3fb9ad..b9a1558 100644 +--- a/src/xdr.c ++++ b/src/xdr.c +@@ -42,8 +42,10 @@ + #include <stdlib.h> + #include <string.h> + ++#include <rpc/rpc.h> + #include <rpc/types.h> + #include <rpc/xdr.h> ++#include <rpc/rpc_com.h> + + typedef quad_t longlong_t; /* ANSI long long type */ + typedef u_quad_t u_longlong_t; /* ANSI unsigned long long type */ +@@ -53,7 +55,6 @@ typedef u_quad_t u_longlong_t; /* ANSI unsigned long long type */ + */ + #define XDR_FALSE ((long) 0) + #define XDR_TRUE ((long) 1) +-#define LASTUNSIGNED ((u_int) 0-1) + + /* + * for unit alignment +@@ -629,6 +630,7 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) + { + char *sp = *cpp; /* sp is the actual string pointer */ + u_int nodesize; ++ bool_t ret, allocated = FALSE; + + /* + * first deal with the length since xdr bytes are counted +@@ -652,6 +654,7 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) + } + if (sp == NULL) { + *cpp = sp = mem_alloc(nodesize); ++ allocated = TRUE; + } + if (sp == NULL) { + warnx("xdr_bytes: out of memory"); +@@ -660,7 +663,14 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) + /* FALLTHROUGH */ + + case XDR_ENCODE: +- return (xdr_opaque(xdrs, sp, nodesize)); ++ ret = xdr_opaque(xdrs, sp, nodesize); ++ if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) { ++ if (allocated == TRUE) { ++ free(sp); ++ *cpp = NULL; ++ } ++ } ++ return (ret); + + case XDR_FREE: + if (sp != NULL) { +@@ -754,6 +764,7 @@ xdr_string(xdrs, cpp, maxsize) + char *sp = *cpp; /* sp is the actual string pointer */ + u_int size; + u_int nodesize; ++ bool_t ret, allocated = FALSE; + + /* + * first deal with the length since xdr strings are counted-strings +@@ -793,8 +804,10 @@ xdr_string(xdrs, cpp, maxsize) + switch (xdrs->x_op) { + + case XDR_DECODE: +- if (sp == NULL) ++ if (sp == NULL) { + *cpp = sp = mem_alloc(nodesize); ++ allocated = TRUE; ++ } + if (sp == NULL) { + warnx("xdr_string: out of memory"); + return (FALSE); +@@ -803,7 +816,14 @@ xdr_string(xdrs, cpp, maxsize) + /* FALLTHROUGH */ + + case XDR_ENCODE: +- return (xdr_opaque(xdrs, sp, size)); ++ ret = xdr_opaque(xdrs, sp, size); ++ if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) { ++ if (allocated == TRUE) { ++ free(sp); ++ *cpp = NULL; ++ } ++ } ++ return (ret); + + case XDR_FREE: + mem_free(sp, nodesize); +@@ -823,7 +843,7 @@ xdr_wrapstring(xdrs, cpp) + XDR *xdrs; + char **cpp; + { +- return xdr_string(xdrs, cpp, LASTUNSIGNED); ++ return xdr_string(xdrs, cpp, RPC_MAXDATASIZE); + } + + /* diff --git a/gnu/packages/patches/lierolibre-check-unaligned-access.patch b/gnu/packages/patches/lierolibre-check-unaligned-access.patch new file mode 100644 index 0000000000..b720c9eb3b --- /dev/null +++ b/gnu/packages/patches/lierolibre-check-unaligned-access.patch @@ -0,0 +1,30 @@ +Patch copied from Debian: + +https://anonscm.debian.org/cgit/pkg-games/lierolibre.git/tree/debian/patches/0001-Use-unaligned-access-define-over-checking-arch.patch?id=82910748906855f6e6bfe30b3f077e8c793ae424 + +From 396f19b6b7743d394307f70f0c0108419824437b Mon Sep 17 00:00:00 2001 +From: Martin Erik Werner <martinerikwerner@gmail.com> +Date: Sun, 28 Jun 2015 16:31:34 +0200 +Subject: [PATCH 1/3] Use unaligned access define over checking arch + +This todo item seems like it done, and just needed implementing... +--- + io/encoding.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gvl/io/encoding.hpp b/src/gvl/io/encoding.hpp +index c491677..89bb612 100644 +--- a/src/gvl/io/encoding.hpp ++++ b/src/gvl/io/encoding.hpp +@@ -374,7 +374,7 @@ struct octet_stream_writer + // inlining of the common case + if(std::size_t(end_ - cur_) >= len) + { +-#if GVL_X86 || GVL_X86_64 // TODO: A define that says whether unaligned access is allowed ++#if GVL_UNALIGNED_ACCESS + if(len < 64) // TODO: Tweak this limit + { + while(len > 4) +-- +2.4.6 + diff --git a/gnu/packages/patches/lierolibre-is-free-software.patch b/gnu/packages/patches/lierolibre-is-free-software.patch new file mode 100644 index 0000000000..626a24dd8c --- /dev/null +++ b/gnu/packages/patches/lierolibre-is-free-software.patch @@ -0,0 +1,38 @@ +Remove outdated license text. See COPYING and the description +at http://liero.be/ for more information. + +--- a/data/LIEROENG.TXT ++++ b/data/LIEROENG.TXT +@@ -11,14 +11,6 @@ + -----------------------------------------------------------------------------
+
+ GENERAL STUFF
+-
+- Liero is freeware. What that means is that you don't have to pay
+- for it and using it has not been restricted in any way. You may
+- distribute it to anyone and anyhow WITHOUT ANY CHANGES MADE TO IT'S
+- CONTAINMENTS.
+-
+- The source code of this game is not distributed freely (neither
+- commercially). So if you thought that maybe you could... forget it.
+
+ Liero is a wormgame with weapons for 2 players. The object of the
+ game is definately what you think it is. Liero is excellent for
+--- a/data/LIERO.TXT ++++ b/data/LIERO.TXT +@@ -12,15 +12,6 @@ +
+ YLEISTŽ
+
+- Liero on freeware, mik„ tarkoittaa ett„ sen k„yt”st„ ei tarvitse
+- maksaa mit„„n eik„ k„ytt”„ ole rajoitettu mitenk„„n. Lieroa saa
+- kopioida kelle tahansa ja miten tahansa SISŽLT™Ž MITENKŽŽN
+- MUUTTAMATTA.
+-
+- Todettakoon t„ss„ ett„ Lieron l„hdekoodi ei ole vapaassa (sen
+- enenp„„ kuin kaupallisessakaan) jakelussa. Joten jos ajattelit
+- ett„... niin j„t„ ajatukset sikseen.
+-
+ Liero on kahden pelattava aseellinen matosimulaatiopeli. Pelin
+ p„„m„„r„n„ on ep„ilem„tt„ se mit„ luuletkin. Liero sopii
+ erinomaisen hyvin aggressioiden purkuun ja kaverin rokitt„miseen
diff --git a/gnu/packages/patches/lierolibre-newer-libconfig.patch b/gnu/packages/patches/lierolibre-newer-libconfig.patch new file mode 100644 index 0000000000..662d0f90fa --- /dev/null +++ b/gnu/packages/patches/lierolibre-newer-libconfig.patch @@ -0,0 +1,190 @@ +Fix compatibility with newer libconfig. + +Patch copied from upstream source repository: + +https://gitlab.com/lierolibre/lierolibre/commit/b27e3604aa6bfbfcc50db1000b394d06c87ae2f2 + +diff --git a/src/common.cpp b/src/common.cpp +index 2d6ada5..4942b05 100644 +--- a/src/common.cpp ++++ b/src/common.cpp +@@ -162,7 +162,7 @@ void Texts::loadFromCFG(std::string cfgFilePath) + const libconfig::Setting &sgmodes = texts["gameModes"]; + for(int i = 0; i < 4; ++i) + { +- gameModes[i] = (char const*)sgmodes["gameModes" + to_string(i)]; ++ gameModes[i] = (char const*)sgmodes[("gameModes" + to_string(i)).c_str()]; + } + + const libconfig::Setting &sgmspec = texts["gameModeSpec"]; +@@ -181,13 +181,13 @@ void Texts::loadFromCFG(std::string cfgFilePath) + const libconfig::Setting &swstates = texts["weapStates"]; + for(int i = 0; i < 3; ++i) + { +- weapStates[i] = (char const*)swstates["weapStates" + to_string(i)]; ++ weapStates[i] = (char const*)swstates[("weapStates" + to_string(i)).c_str()]; + } + + const libconfig::Setting &sknames = texts["keyNames"]; + for(int i = 1; i < 177; ++i) // First key starts at 1 + { +- keyNames[i] = (char const*)sknames["keyNames" + to_string(i)]; ++ keyNames[i] = (char const*)sknames[("keyNames" + to_string(i)).c_str()]; + } + + selWeap = (char const*)texts["selWeap"]; +@@ -315,8 +315,8 @@ void Common::loadPaletteFromCFG(std::string cfgFilePath) + const libconfig::Setting &scanim = palette["colorAnim"]; + for(int i = 0; i < 4; ++i) + { +- colorAnim[i].from = (int)scanim["colorAnim" + to_string(i) + "from"]; +- colorAnim[i].to = (int)scanim["colorAnim" + to_string(i) + "to"]; ++ colorAnim[i].from = (int)scanim[("colorAnim" + to_string(i) + "from").c_str()]; ++ colorAnim[i].to = (int)scanim[("colorAnim" + to_string(i) + "to").c_str()]; + } + } + +@@ -383,7 +383,7 @@ void Common::loadMaterialsFromCFG(std::string cfgFilePath) + + for(int i = 0; i < 256; ++i) + { +- const libconfig::Setting &smflags = smaterials["flags" + to_string(i)]; ++ const libconfig::Setting &smflags = smaterials[("flags" + to_string(i)).c_str()]; + materials[i].flags = smflags; + } + } +diff --git a/src/configCompat.cpp b/src/configCompat.cpp +index 1aeb262..a72c40f 100644 +--- a/src/configCompat.cpp ++++ b/src/configCompat.cpp +@@ -160,19 +160,19 @@ void Common::loadConstantsFromCFGVer0(string cfgFilePath) + const Setting &vconstants = constants["Values"]; + for(int i = 0; i < MaxC; ++i) + { +- C[i] = (int)vconstants[valueConstantsNamesCFGVer0[i]]; ++ C[i] = (int)vconstants[valueConstantsNamesCFGVer0[i].c_str()]; + } + + const Setting &sconstants = constants["Strings"]; + for(int i = 0; i < MaxS; ++i) + { +- S[i]= (char const*)sconstants[stringConstantsNamesCFGVer0[i]]; ++ S[i]= (char const*)sconstants[stringConstantsNamesCFGVer0[i].c_str()]; + } + + const Setting &hconstants = constants["Hacks"]; + for(int i = 0; i < MaxH; ++i) + { +- H[i] = (bool)hconstants[hackConstantsNamesVer0[i]]; ++ H[i] = (bool)hconstants[hackConstantsNamesVer0[i].c_str()]; + } + } + +diff --git a/src/configHelper.cpp b/src/configHelper.cpp +index fcd1f3f..a63bddc 100644 +--- a/src/configHelper.cpp ++++ b/src/configHelper.cpp +@@ -54,15 +54,11 @@ template Uint8 ConfigHelper::getValue<Uint8, const Setting, int>(const Setting & + + template Uint8 ConfigHelper::getValue<Uint8, const Setting, char const*>(const Setting &node, char const* index); + +-template Uint8 ConfigHelper::getValue<Uint8, const Setting, string>(const Setting &node, string index); +- + // Non-const + template Uint8 ConfigHelper::getValue<Uint8, Setting, int>(Setting &node, int index); + + template Uint8 ConfigHelper::getValue<Uint8, Setting, char const*>(Setting &node, char const* index); + +-template Uint8 ConfigHelper::getValue<Uint8, Setting, string>(Setting &node, string index); +- + + // Since we still need specialisation per value type (Setting::Type), + // no need to templateify these +@@ -72,7 +68,7 @@ void ConfigHelper::put(Setting &node, string variable, string value) + { + node.add(variable, Setting::TypeString) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -83,7 +79,7 @@ void ConfigHelper::put(Setting &node, string variable, int value) + { + node.add(variable, Setting::TypeInt) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -94,7 +90,7 @@ void ConfigHelper::put(Setting &node, string variable, Uint8 value) + { + node.add(variable, Setting::TypeInt) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -105,7 +101,7 @@ void ConfigHelper::put(Setting &node, string variable, bool value) + { + node.add(variable, Setting::TypeBoolean) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -135,6 +131,6 @@ Setting& ConfigHelper::getSubgroup(Setting &node, string groupName) + { + node.add(groupName, Setting::TypeGroup); + } +- return node[groupName]; ++ return node[groupName.c_str()]; + } + +diff --git a/src/constants.cpp b/src/constants.cpp +index 7fced6a..cf7bbfc 100644 +--- a/src/constants.cpp ++++ b/src/constants.cpp +@@ -523,19 +523,19 @@ void Common::loadConstantsFromCFG(std::string cfgFilePath) + const libconfig::Setting &vconstants = constants["Values"]; + for(int i = 0; i < MaxC; ++i) + { +- C[i] = (int)vconstants[valueConstantsNames[i]]; ++ C[i] = (int)vconstants[valueConstantsNames[i].c_str()]; + } + + const libconfig::Setting &sconstants = constants["Strings"]; + for(int i = 0; i < MaxS; ++i) + { +- S[i]= (char const*)sconstants[stringConstantsNames[i]]; ++ S[i]= (char const*)sconstants[stringConstantsNames[i].c_str()]; + } + + const libconfig::Setting &hconstants = constants["Hacks"]; + for(int i = 0; i < MaxH; ++i) + { +- H[i] = (bool)hconstants[hackConstantsNames[i]]; ++ H[i] = (bool)hconstants[hackConstantsNames[i].c_str()]; + } + } + +diff --git a/src/gfx/palette.cpp b/src/gfx/palette.cpp +index 3fd08c4..3d3bf22 100644 +--- a/src/gfx/palette.cpp ++++ b/src/gfx/palette.cpp +@@ -124,9 +124,9 @@ void Palette::readFromCFG(std::string cfgFilePath) + + for(int i = 0; i < 256; ++i) + { +- entries[i].r = cfgHelp.getValue<Uint8>(spentries, "entries" + to_string(i) + "r"); +- entries[i].g = cfgHelp.getValue<Uint8>(spentries, "entries" + to_string(i) + "g"); +- entries[i].b = cfgHelp.getValue<Uint8>(spentries, "entries" + to_string(i) + "b"); ++ entries[i].r = cfgHelp.getValue<Uint8>(spentries, ("entries" + to_string(i) + "r").c_str()); ++ entries[i].g = cfgHelp.getValue<Uint8>(spentries, ("entries" + to_string(i) + "g").c_str()); ++ entries[i].b = cfgHelp.getValue<Uint8>(spentries, ("entries" + to_string(i) + "b").c_str()); + } + } + diff --git a/gnu/packages/patches/lierolibre-remove-arch-warning.patch b/gnu/packages/patches/lierolibre-remove-arch-warning.patch new file mode 100644 index 0000000000..ca92b72546 --- /dev/null +++ b/gnu/packages/patches/lierolibre-remove-arch-warning.patch @@ -0,0 +1,30 @@ +Copied from Debian: + +https://anonscm.debian.org/cgit/pkg-games/lierolibre.git/tree/debian/patches/0003-Remove-unknown-arch-warning.patch?id=82910748906855f6e6bfe30b3f077e8c793ae424 + +From a9592533eeabed075b13d11c64f63f503dc13343 Mon Sep 17 00:00:00 2001 +From: Martin Erik Werner <martinerikwerner@gmail.com> +Date: Sun, 28 Jun 2015 19:31:30 +0200 +Subject: [PATCH 3/3] Remove unknown arch warning + +The warning was just excessivley spammy, remove it. +--- + support/platform.h | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/gvl/support/platform.h b/src/gvl/support/platform.h +index 1857b7c..ff6a7d2 100644 +--- a/src/gvl/support/platform.h ++++ b/src/gvl/support/platform.h +@@ -87,8 +87,6 @@ + # define GVL_X86_64 1 + # elif defined(__i386__) || defined(_M_IX86) || defined(i386) || defined(i486) || defined(intel) || defined(x86) || defined(i86pc) + # define GVL_X86 1 +-# else +-# warning "Unknown architecture, please add it" + # endif + #endif + +-- +2.4.6 + diff --git a/gnu/packages/patches/lierolibre-try-building-other-arch.patch b/gnu/packages/patches/lierolibre-try-building-other-arch.patch new file mode 100644 index 0000000000..a40dfe6110 --- /dev/null +++ b/gnu/packages/patches/lierolibre-try-building-other-arch.patch @@ -0,0 +1,56 @@ +Copied from Debian: + +https://anonscm.debian.org/cgit/pkg-games/lierolibre.git/tree/debian/patches/0001-Use-unaligned-access-define-over-checking-arch.patch?id=82910748906855f6e6bfe30b3f077e8c793ae424 + +From a70691fb003cae1a33f06d682269285f9baa2dd9 Mon Sep 17 00:00:00 2001 +From: Martin Erik Werner <martinerikwerner@gmail.com> +Date: Sun, 28 Jun 2015 19:00:23 +0200 +Subject: [PATCH 2/3] At least try building for other archs than x86* + +Allow attempting to build for other architectures than x86 and x86_64, +whether or not the build will succeed or produce sane output is another +question... It emits plenty of warnings about it now though... + +Configuration of the FPU controller is disabled on all but x86*, and the +uninformed hope and prayer is that defaults will be fine without messing +with them. +--- + math/ieee.cpp | 2 ++ + support/platform.h | 4 ++-- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/gvl/math/ieee.cpp b/src/gvl/math/ieee.cpp +index 8b740d4..e0803d2 100644 +--- a/src/gvl/math/ieee.cpp ++++ b/src/gvl/math/ieee.cpp +@@ -54,6 +54,8 @@ void gvl_init_ieee() + { + #if GVL_MSVCPP + // Nothing needs to be done, TODO: we should however check that the x87 state is right ++#elif !GVL_X86 && !GVL_X86_64 ++// No idea what to do, but run with defaults and pray it doesn't mess things up + #elif GVL_GCC && GVL_WIN32 + unsigned int const flags = _RC_NEAR | _PC_53 | _EM_INVALID | _EM_DENORMAL | _EM_ZERODIVIDE | _EM_OVERFLOW | _EM_UNDERFLOW | _EM_INEXACT; + _control87(flags, _MCW_EM | _MCW_PC | _MCW_RC); +diff --git a/src/gvl/support/platform.h b/src/gvl/support/platform.h +index 86dcaa6..1857b7c 100644 +--- a/src/gvl/support/platform.h ++++ b/src/gvl/support/platform.h +@@ -88,12 +88,12 @@ + # elif defined(__i386__) || defined(_M_IX86) || defined(i386) || defined(i486) || defined(intel) || defined(x86) || defined(i86pc) + # define GVL_X86 1 + # else +-# error "Unknown architecture, please add it" ++# warning "Unknown architecture, please add it" + # endif + #endif + + #if !GVL_LITTLE_ENDIAN && !GVL_BIG_ENDIAN +-# if GVL_X86 || GVL_X86_64 ++# if GVL_X86 || GVL_X86_64 || __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN + # define GVL_LITTLE_ENDIAN 1 + # else + # define GVL_BIG_ENDIAN 1 +-- +2.4.6 + diff --git a/gnu/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch b/gnu/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch new file mode 100644 index 0000000000..faa8252c43 --- /dev/null +++ b/gnu/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch @@ -0,0 +1,35 @@ +This patch was downloaded from https://sft.its.cern.ch/jira/browse/ROOT-7047. +It fixes the build of clang 3.5 with GCC 5. File paths have been adjusted. + +From 00f3ed6eee41da871799ad0fd19153c7682d61fe Mon Sep 17 00:00:00 2001 +From: Alexander Klimov <alserkli@inbox.ru> +Date: Mon, 26 Jan 2015 18:45:23 +0200 +Subject: [PATCH] [ADT/IntrusiveRefCntPtr] Give friend access to + IntrusiveRefCntPtr<X> so the relevant move constructor can + access 'Obj'. + +From LLVM upstream: +Author: Argyrios Kyrtzidis <akyrtzi@gmail.com> +Date: Tue Sep 23 06:06:43 2014 +0000 +git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218295 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + interpreter/llvm/src/include/llvm/ADT/IntrusiveRefCntPtr.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/include/llvm/ADT/IntrusiveRefCntPtr.h b/include/llvm/ADT/IntrusiveRefCntPtr.h +index f9df378..c859c98 100644 +--- a/include/llvm/ADT/IntrusiveRefCntPtr.h ++++ b/include/llvm/ADT/IntrusiveRefCntPtr.h +@@ -197,6 +197,9 @@ public: + private: + void retain() { if (Obj) IntrusiveRefCntPtrInfo<T>::retain(Obj); } + void release() { if (Obj) IntrusiveRefCntPtrInfo<T>::release(Obj); } ++ ++ template <typename X> ++ friend class IntrusiveRefCntPtr; + }; + + template<class T, class U> +-- +1.7.10.4 + diff --git a/gnu/packages/patches/lvm2-static-link.patch b/gnu/packages/patches/lvm2-static-link.patch index b4b1dd92e1..6adf6891bb 100644 --- a/gnu/packages/patches/lvm2-static-link.patch +++ b/gnu/packages/patches/lvm2-static-link.patch @@ -1,5 +1,5 @@ Fix static linking of 'lvm.static', which indirectly depend on libpthread -via libdevmapper.a. +and libm via libdevmapper.a. --- LVM2.2.02.166/tools/Makefile.in 2016-11-22 21:31:15.521045149 +0100 +++ LVM2.2.02.166/tools/Makefile.in 2016-11-22 21:31:24.085082767 +0100 @@ -8,7 +8,7 @@ via libdevmapper.a. lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a $(interfacebuilddir)/libdevmapper.a $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ \ - $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS) -+ $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS) $(PTHREAD_LIBS) ++ $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS) $(PTHREAD_LIBS) $(M_LIBS) liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o cat $(top_builddir)/lib/liblvm-internal.a > $@ diff --git a/gnu/packages/patches/lxterminal-CVE-2016-10369.patch b/gnu/packages/patches/lxterminal-CVE-2016-10369.patch new file mode 100644 index 0000000000..809eef08da --- /dev/null +++ b/gnu/packages/patches/lxterminal-CVE-2016-10369.patch @@ -0,0 +1,37 @@ +Fix CVE-2016-10369: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10369 + +Patch copied from upstream source repository: + +https://git.lxde.org/gitweb/?p=lxde/lxterminal.git;a=commit;h=f99163c6ff8b2f57c5f37b1ce5d62cf7450d4648 + +From f99163c6ff8b2f57c5f37b1ce5d62cf7450d4648 Mon Sep 17 00:00:00 2001 +From: Yao Wei <mwei@lxde.org> +Date: Mon, 8 May 2017 00:47:55 +0800 +Subject: [PATCH] fix: use g_get_user_runtime_dir for socket directory + +This bug is pointed out by stackexchange user that putting socket file in +/tmp is a potential risk. Putting the socket dir in user directory could +mitigate the risk. +--- + src/unixsocket.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/unixsocket.c b/src/unixsocket.c +index 4c660ac..f88284c 100644 +--- a/src/unixsocket.c ++++ b/src/unixsocket.c +@@ -140,7 +140,8 @@ gboolean lxterminal_socket_initialize(LXTermWindow * lxtermwin, gint argc, gchar + * This function returns TRUE if this process should keep running and FALSE if it should exit. */ + + /* Formulate the path for the Unix domain socket. */ +- gchar * socket_path = g_strdup_printf("/tmp/.lxterminal-socket%s-%s", gdk_display_get_name(gdk_display_get_default()), g_get_user_name()); ++ gchar * socket_path = g_strdup_printf("%s/.lxterminal-socket-%s", g_get_user_runtime_dir(), gdk_display_get_name(gdk_display_get_default())); ++ printf("%s\n", socket_path); + + /* Create socket. */ + int fd = socket(PF_UNIX, SOCK_STREAM, 0); +-- +2.1.4 + diff --git a/gnu/packages/patches/miniupnpc-CVE-2017-8798.patch b/gnu/packages/patches/miniupnpc-CVE-2017-8798.patch new file mode 100644 index 0000000000..24eed60af9 --- /dev/null +++ b/gnu/packages/patches/miniupnpc-CVE-2017-8798.patch @@ -0,0 +1,55 @@ +Fix CVE-2017-8798. + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8798 +http://seclists.org/oss-sec/2017/q2/247 + +Patch copied from upstream source repository, with Changelog entry removed: + +https://github.com/miniupnp/miniupnp/commit/f0f1f4b22d6a98536377a1bb07e7c20e4703d229 + +diff --git a/miniwget.c b/miniwget.c +index 37cb47b..1eda57c 100644 +--- a/miniwget.c ++++ b/miniwget.c +@@ -284,11 +284,12 @@ getHTTPResponse(int s, int * size, int * status_code) + goto end_of_stream; + } + } +- bytestocopy = ((int)chunksize < (n - i))?chunksize:(unsigned int)(n - i); ++ /* it is guaranteed that (n >= i) */ ++ bytestocopy = (chunksize < (unsigned int)(n - i))?chunksize:(unsigned int)(n - i); + if((content_buf_used + bytestocopy) > content_buf_len) + { + char * tmp; +- if(content_length >= (int)(content_buf_used + bytestocopy)) { ++ if((content_length >= 0) && ((unsigned int)content_length >= (content_buf_used + bytestocopy))) { + content_buf_len = content_length; + } else { + content_buf_len = content_buf_used + bytestocopy; +@@ -313,14 +314,15 @@ getHTTPResponse(int s, int * size, int * status_code) + { + /* not chunked */ + if(content_length > 0 +- && (int)(content_buf_used + n) > content_length) { ++ && (content_buf_used + n) > (unsigned int)content_length) { + /* skipping additional bytes */ + n = content_length - content_buf_used; + } + if(content_buf_used + n > content_buf_len) + { + char * tmp; +- if(content_length >= (int)(content_buf_used + n)) { ++ if(content_length >= 0 ++ && (unsigned int)content_length >= (content_buf_used + n)) { + content_buf_len = content_length; + } else { + content_buf_len = content_buf_used + n; +@@ -340,7 +342,7 @@ getHTTPResponse(int s, int * size, int * status_code) + } + } + /* use the Content-Length header value if available */ +- if(content_length > 0 && (int)content_buf_used >= content_length) ++ if(content_length > 0 && content_buf_used >= (unsigned int)content_length) + { + #ifdef DEBUG + printf("End of HTTP content\n"); diff --git a/gnu/packages/patches/mozjs38-pkg-config-version.patch b/gnu/packages/patches/mozjs38-pkg-config-version.patch new file mode 100644 index 0000000000..49ff6f6f8d --- /dev/null +++ b/gnu/packages/patches/mozjs38-pkg-config-version.patch @@ -0,0 +1,24 @@ +Taken from https://bug1339931.bmoattachments.org/attachment.cgi?id=8837770. + +Add major version to pkg-config filename. +Author: Rico Tzschichholz <ricotz@ubuntu.com> +Forwarded: no +Last-Update: 2015-05-04 + +Index: b/js/src/Makefile.in +=================================================================== +--- a/js/src/Makefile.in ++++ b/js/src/Makefile.in +@@ -214,10 +214,10 @@ + $(JS_CONFIG_NAME): js-config + cp $^ $@ + +-$(LIBRARY_NAME).pc: js.pc ++$(JS_LIBRARY_NAME).pc: js.pc + cp $^ $@ + +-install:: $(LIBRARY_NAME).pc ++install:: $(JS_LIBRARY_NAME).pc + $(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig + + install:: js-config.h diff --git a/gnu/packages/patches/mozjs38-shell-version.patch b/gnu/packages/patches/mozjs38-shell-version.patch new file mode 100644 index 0000000000..e7d3d19c85 --- /dev/null +++ b/gnu/packages/patches/mozjs38-shell-version.patch @@ -0,0 +1,67 @@ +Taken from https://bug1339931.bmoattachments.org/attachment.cgi?id=8837771. + +# HG changeset patch +# Parent 4732a0e5d22bc7e5c1f1ace7a182d537d9cc2c6a +Add major version to shell and js-config filenames. +Author: Rico Tzschichholz <ricotz@ubuntu.com> +Forwarded: no +Last-Update: 2014-10-29 + +--- +diff --git a/js/src/configure b/js/src/configure +--- a/js/src/configure ++++ b/js/src/configure +@@ -1696,8 +1696,13 @@ + MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"` + IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'` + ++if test -n "$JS_STANDALONE"; then ++JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION ++JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config ++else + JS_SHELL_NAME=js + JS_CONFIG_NAME=js-config ++fi + + + if test -n "$IS_ALPHA"; then + +diff --git a/js/src/configure.in b/js/src/configure.in +--- a/js/src/configure.in ++++ b/js/src/configure.in +@@ -234,16 +234,13 @@ MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSI + MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"` + IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'` + +-dnl XXX in a temporary bid to avoid developer anger at renaming files +-dnl XXX before "js" symlinks exist, don't change names. +-dnl +-dnl if test -n "$JS_STANDALONE"; then +-dnl JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION +-dnl JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config +-dnl else ++if test -n "$JS_STANDALONE"; then ++JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION ++JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config ++else + JS_SHELL_NAME=js + JS_CONFIG_NAME=js-config +-dnl fi ++fi + + changequote([,]) + if test -n "$IS_ALPHA"; then + +diff -r 80a9e64d75f5 js/src/Makefile.in +--- a/js/src/Makefile.in Wed Jun 25 15:11:42 2014 +0200 ++++ b/js/src/Makefile.in Sat Jul 05 14:08:38 2014 +0200 +@@ -273,6 +273,9 @@ + SCRIPTS = $(JS_CONFIG_NAME) + SDK_BINARY = $(JS_CONFIG_NAME) + ++$(JS_CONFIG_NAME): js-config ++ cp $^ $@ ++ + $(JS_LIBRARY_NAME).pc: js.pc + cp $^ $@ + diff --git a/gnu/packages/patches/mozjs38-tracelogger.patch b/gnu/packages/patches/mozjs38-tracelogger.patch new file mode 100644 index 0000000000..0375ec36cc --- /dev/null +++ b/gnu/packages/patches/mozjs38-tracelogger.patch @@ -0,0 +1,608 @@ +Squashed version of several commits to fix the tracelogger. + +Taken from +https://github.com/GNOME/jhbuild/blob/master/patches/mozjs38-fix-tracelogger.patch. + +# === Fix the SM38 tracelogger === +# This patch is a squashed version of several patches that were adapted +# to fix failing hunks. +# +# Applied in the following order, they are: +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223767 +# Assertion failure: i < size_, at js/src/vm/TraceLoggingTypes.h:210 +# Also fix stop-information to make reduce.py work correctly. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227914 +# Limit the memory tracelogger can take. +# This causes tracelogger to flush data to the disk regularly and prevents out of +# memory issues if a lot of data gets logged. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1155618 +# Fix tracelogger destructor that touches possibly uninitialised hash table. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223636 +# Don't treat extraTextId as containing only extra ids. +# This fixes an assertion failure: id == nextTextId at js/src/vm/TraceLoggingGraph.cpp +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227028 +# Fix when to keep the payload of a TraceLogger event. +# This fixes an assertion failure: textId < uint32_t(1 << 31) at js/src/vm/TraceLoggingGraph.h +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1266649 +# Handle failing to add to pointermap gracefully. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1280648 +# Don't cache based on pointers to movable GC things. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1224123 +# Fix the use of LastEntryId in tracelogger.h. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1231170 +# Use size in debugger instead of the current id to track last logged item. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1221844 +# Move TraceLogger_Invalidation to LOG_ITEM. +# Add some debug checks to logTimestamp. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1255766 +# Also mark resizing of memory. +# * https://bugzilla.mozilla.org/show_bug.cgi?id=1259403 +# Only increase capacity by multiples of 2. +# Always make sure there are 3 free slots for events. +# === + +diff --git a/js/src/jit-test/tests/tracelogger/bug1231170.js b/js/src/jit-test/tests/tracelogger/bug1231170.js +new file mode 100644 +index 0000000..023e93e +--- /dev/null ++++ b/js/src/jit-test/tests/tracelogger/bug1231170.js +@@ -0,0 +1,3 @@ ++var du = new Debugger(); ++if (typeof du.drainTraceLogger === "function") ++ du.drainTraceLogger(); +diff --git a/js/src/jit-test/tests/tracelogger/bug1266649.js b/js/src/jit-test/tests/tracelogger/bug1266649.js +new file mode 100644 +index 0000000..81ae7ad +--- /dev/null ++++ b/js/src/jit-test/tests/tracelogger/bug1266649.js +@@ -0,0 +1,10 @@ ++ ++var du = new Debugger(); ++if (typeof du.setupTraceLogger === "function" && ++ typeof oomTest === 'function') ++{ ++ du.setupTraceLogger({ ++ Scripts: true ++ }) ++ oomTest(() => function(){}); ++} +diff --git a/js/src/jit/Ion.cpp b/js/src/jit/Ion.cpp +index 93e2fda..09049d6 100644 +--- a/js/src/jit/Ion.cpp ++++ b/js/src/jit/Ion.cpp +@@ -1055,6 +1055,8 @@ IonScript::Destroy(FreeOp* fop, IonScript* script) + + script->destroyCaches(); + script->unlinkFromRuntime(fop); ++ // Frees the potential event we have set. ++ script->traceLoggerScriptEvent_ = TraceLoggerEvent(); + fop->free_(script); + } + +diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp +index 26262fd..af7f313 100644 +--- a/js/src/vm/Debugger.cpp ++++ b/js/src/vm/Debugger.cpp +@@ -369,10 +369,10 @@ Debugger::Debugger(JSContext* cx, NativeObject* dbg) + objects(cx), + environments(cx), + #ifdef NIGHTLY_BUILD +- traceLoggerLastDrainedId(0), ++ traceLoggerLastDrainedSize(0), + traceLoggerLastDrainedIteration(0), + #endif +- traceLoggerScriptedCallsLastDrainedId(0), ++ traceLoggerScriptedCallsLastDrainedSize(0), + traceLoggerScriptedCallsLastDrainedIteration(0) + { + assertSameCompartment(cx, dbg); +@@ -3907,9 +3907,9 @@ Debugger::drainTraceLogger(JSContext* cx, unsigned argc, Value* vp) + size_t num; + TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime()); + bool lostEvents = logger->lostEvents(dbg->traceLoggerLastDrainedIteration, +- dbg->traceLoggerLastDrainedId); ++ dbg->traceLoggerLastDrainedSize); + EventEntry* events = logger->getEventsStartingAt(&dbg->traceLoggerLastDrainedIteration, +- &dbg->traceLoggerLastDrainedId, ++ &dbg->traceLoggerLastDrainedSize, + &num); + + RootedObject array(cx, NewDenseEmptyArray(cx)); +@@ -4002,10 +4002,10 @@ Debugger::drainTraceLoggerScriptCalls(JSContext* cx, unsigned argc, Value* vp) + size_t num; + TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime()); + bool lostEvents = logger->lostEvents(dbg->traceLoggerScriptedCallsLastDrainedIteration, +- dbg->traceLoggerScriptedCallsLastDrainedId); ++ dbg->traceLoggerScriptedCallsLastDrainedSize); + EventEntry* events = logger->getEventsStartingAt( + &dbg->traceLoggerScriptedCallsLastDrainedIteration, +- &dbg->traceLoggerScriptedCallsLastDrainedId, ++ &dbg->traceLoggerScriptedCallsLastDrainedSize, + &num); + + RootedObject array(cx, NewDenseEmptyArray(cx)); +diff --git a/js/src/vm/Debugger.h b/js/src/vm/Debugger.h +index 8cac36a..c92d685 100644 +--- a/js/src/vm/Debugger.h ++++ b/js/src/vm/Debugger.h +@@ -314,10 +314,10 @@ class Debugger : private mozilla::LinkedListElement<Debugger> + * lost events. + */ + #ifdef NIGHTLY_BUILD +- uint32_t traceLoggerLastDrainedId; ++ uint32_t traceLoggerLastDrainedSize; + uint32_t traceLoggerLastDrainedIteration; + #endif +- uint32_t traceLoggerScriptedCallsLastDrainedId; ++ uint32_t traceLoggerScriptedCallsLastDrainedSize; + uint32_t traceLoggerScriptedCallsLastDrainedIteration; + + class FrameRange; +diff --git a/js/src/vm/TraceLogging.cpp b/js/src/vm/TraceLogging.cpp +index 6715b36..9766a6f 100644 +--- a/js/src/vm/TraceLogging.cpp ++++ b/js/src/vm/TraceLogging.cpp +@@ -131,7 +131,7 @@ TraceLoggerThread::init() + { + if (!pointerMap.init()) + return false; +- if (!extraTextId.init()) ++ if (!textIdPayloads.init()) + return false; + if (!events.init()) + return false; +@@ -185,10 +185,10 @@ TraceLoggerThread::~TraceLoggerThread() + graph = nullptr; + } + +- for (TextIdHashMap::Range r = extraTextId.all(); !r.empty(); r.popFront()) +- js_delete(r.front().value()); +- extraTextId.finish(); +- pointerMap.finish(); ++ if (textIdPayloads.initialized()) { ++ for (TextIdHashMap::Range r = textIdPayloads.all(); !r.empty(); r.popFront()) ++ js_delete(r.front().value()); ++ } + } + + bool +@@ -287,7 +287,7 @@ TraceLoggerThread::eventText(uint32_t id) + if (id < TraceLogger_Last) + return TLTextIdString(static_cast<TraceLoggerTextId>(id)); + +- TextIdHashMap::Ptr p = extraTextId.lookup(id); ++ TextIdHashMap::Ptr p = textIdPayloads.lookup(id); + MOZ_ASSERT(p); + + return p->value()->string(); +@@ -341,13 +341,15 @@ TraceLoggerThread::extractScriptDetails(uint32_t textId, const char** filename, + TraceLoggerEventPayload* + TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId textId) + { +- TextIdHashMap::AddPtr p = extraTextId.lookupForAdd(textId); +- if (p) ++ TextIdHashMap::AddPtr p = textIdPayloads.lookupForAdd(textId); ++ if (p) { ++ MOZ_ASSERT(p->value()->textId() == textId); // Sanity check. + return p->value(); ++ } + + TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, (char*)nullptr); + +- if (!extraTextId.add(p, textId, payload)) ++ if (!textIdPayloads.add(p, textId, payload)) + return nullptr; + + return payload; +@@ -357,8 +359,10 @@ TraceLoggerEventPayload* + TraceLoggerThread::getOrCreateEventPayload(const char* text) + { + PointerHashMap::AddPtr p = pointerMap.lookupForAdd((const void*)text); +- if (p) ++ if (p) { ++ MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check. + return p->value(); ++ } + + size_t len = strlen(text); + char* str = js_pod_malloc<char>(len + 1); +@@ -369,7 +373,7 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text) + MOZ_ASSERT(ret == len); + MOZ_ASSERT(strlen(str) == len); + +- uint32_t textId = extraTextId.count() + TraceLogger_Last; ++ uint32_t textId = nextTextId; + + TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str); + if (!payload) { +@@ -377,17 +381,19 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text) + return nullptr; + } + +- if (!extraTextId.putNew(textId, payload)) { ++ if (!textIdPayloads.putNew(textId, payload)) { + js_delete(payload); + return nullptr; + } + +- if (!pointerMap.add(p, text, payload)) +- return nullptr; +- + if (graph.get()) + graph->addTextId(textId, str); + ++ nextTextId++; ++ ++ if (!pointerMap.add(p, text, payload)) ++ return nullptr; ++ + return payload; + } + +@@ -407,9 +413,14 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f + if (!traceLoggerState->isTextIdEnabled(type)) + return getOrCreateEventPayload(type); + +- PointerHashMap::AddPtr p = pointerMap.lookupForAdd(ptr); +- if (p) +- return p->value(); ++ PointerHashMap::AddPtr p; ++ if (ptr) { ++ p = pointerMap.lookupForAdd(ptr); ++ if (p) { ++ MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check. ++ return p->value(); ++ } ++ } + + // Compute the length of the string to create. + size_t lenFilename = strlen(filename); +@@ -428,24 +439,28 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f + MOZ_ASSERT(ret == len); + MOZ_ASSERT(strlen(str) == len); + +- uint32_t textId = extraTextId.count() + TraceLogger_Last; ++ uint32_t textId = nextTextId; + TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str); + if (!payload) { + js_free(str); + return nullptr; + } + +- if (!extraTextId.putNew(textId, payload)) { ++ if (!textIdPayloads.putNew(textId, payload)) { + js_delete(payload); + return nullptr; + } + +- if (!pointerMap.add(p, ptr, payload)) +- return nullptr; +- + if (graph.get()) + graph->addTextId(textId, str); + ++ nextTextId++; ++ ++ if (ptr) { ++ if (!pointerMap.add(p, ptr, payload)) ++ return nullptr; ++ } ++ + return payload; + } + +@@ -453,14 +468,14 @@ TraceLoggerEventPayload* + TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, JSScript* script) + { + return getOrCreateEventPayload(type, script->filename(), script->lineno(), script->column(), +- script); ++ nullptr); + } + + TraceLoggerEventPayload* + TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, + const JS::ReadOnlyCompileOptions& script) + { +- return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, &script); ++ return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, nullptr); + } + + void +@@ -485,7 +500,7 @@ TraceLoggerThread::startEvent(uint32_t id) + if (!traceLoggerState->isTextIdEnabled(id)) + return; + +- logTimestamp(id); ++ log(id); + } + + void +@@ -510,7 +525,7 @@ TraceLoggerThread::stopEvent(uint32_t id) + if (!traceLoggerState->isTextIdEnabled(id)) + return; + +- logTimestamp(TraceLogger_Stop); ++ log(TraceLogger_Stop); + } + + void +@@ -522,23 +537,57 @@ TraceLoggerThread::logTimestamp(TraceLoggerTextId id) + void + TraceLoggerThread::logTimestamp(uint32_t id) + { ++ MOZ_ASSERT(id > TraceLogger_LastTreeItem && id < TraceLogger_Last); ++ log(id); ++} ++ ++void ++TraceLoggerThread::log(uint32_t id) ++{ + if (enabled == 0) + return; + + MOZ_ASSERT(traceLoggerState); +- if (!events.ensureSpaceBeforeAdd()) { ++ ++ // We request for 3 items to add, since if we don't have enough room ++ // we record the time it took to make more place. To log this information ++ // we need 2 extra free entries. ++ if (!events.hasSpaceForAdd(3)) { + uint64_t start = rdtsc() - traceLoggerState->startupTime; + +- if (graph.get()) +- graph->log(events); ++ if (!events.ensureSpaceBeforeAdd(3)) { ++ if (graph.get()) ++ graph->log(events); ++ ++ iteration_++; ++ events.clear(); ++ ++ // Remove the item in the pointerMap for which the payloads ++ // have no uses anymore ++ for (PointerHashMap::Enum e(pointerMap); !e.empty(); e.popFront()) { ++ if (e.front().value()->uses() != 0) ++ continue; ++ ++ TextIdHashMap::Ptr p = textIdPayloads.lookup(e.front().value()->textId()); ++ MOZ_ASSERT(p); ++ textIdPayloads.remove(p); ++ ++ e.removeFront(); ++ } + +- iteration_++; +- events.clear(); ++ // Free all payloads that have no uses anymore. ++ for (TextIdHashMap::Enum e(textIdPayloads); !e.empty(); e.popFront()) { ++ if (e.front().value()->uses() == 0) { ++ js_delete(e.front().value()); ++ e.removeFront(); ++ } ++ } ++ } + + // Log the time it took to flush the events as being from the + // Tracelogger. + if (graph.get()) { +- MOZ_ASSERT(events.capacity() > 2); ++ MOZ_ASSERT(events.hasSpaceForAdd(2)); + EventEntry& entryStart = events.pushUninitialized(); + entryStart.time = start; + entryStart.textId = TraceLogger_Internal; +@@ -548,13 +597,6 @@ TraceLoggerThread::logTimestamp(uint32_t id) + entryStop.textId = TraceLogger_Stop; + } + +- // Free all TextEvents that have no uses anymore. +- for (TextIdHashMap::Enum e(extraTextId); !e.empty(); e.popFront()) { +- if (e.front().value()->uses() == 0) { +- js_delete(e.front().value()); +- e.removeFront(); +- } +- } + } + + uint64_t time = rdtsc() - traceLoggerState->startupTime; +@@ -956,3 +998,16 @@ TraceLoggerEvent::~TraceLoggerEvent() + if (payload_) + payload_->release(); + } ++ ++TraceLoggerEvent& ++TraceLoggerEvent::operator=(const TraceLoggerEvent& other) ++{ ++ if (hasPayload()) ++ payload()->release(); ++ if (other.hasPayload()) ++ other.payload()->use(); ++ ++ payload_ = other.payload_; ++ ++ return *this; ++} +diff --git a/js/src/vm/TraceLogging.h b/js/src/vm/TraceLogging.h +index a124dcb..91a1eb0 100644 +--- a/js/src/vm/TraceLogging.h ++++ b/js/src/vm/TraceLogging.h +@@ -110,6 +110,9 @@ class TraceLoggerEvent { + bool hasPayload() const { + return !!payload_; + } ++ ++ TraceLoggerEvent& operator=(const TraceLoggerEvent& other); ++ TraceLoggerEvent(const TraceLoggerEvent& event) = delete; + }; + + /** +@@ -130,6 +133,10 @@ class TraceLoggerEventPayload { + uses_(0) + { } + ++ ~TraceLoggerEventPayload() { ++ MOZ_ASSERT(uses_ == 0); ++ } ++ + uint32_t textId() { + return textId_; + } +@@ -166,7 +173,8 @@ class TraceLoggerThread + mozilla::UniquePtr<TraceLoggerGraph> graph; + + PointerHashMap pointerMap; +- TextIdHashMap extraTextId; ++ TextIdHashMap textIdPayloads; ++ uint32_t nextTextId; + + ContinuousSpace<EventEntry> events; + +@@ -181,6 +189,7 @@ class TraceLoggerThread + : enabled(0), + failed(false), + graph(), ++ nextTextId(TraceLogger_Last), + iteration_(0), + top(nullptr) + { } +@@ -195,22 +204,22 @@ class TraceLoggerThread + bool enable(JSContext* cx); + bool disable(); + +- // Given the previous iteration and lastEntryId, return an array of events ++ // Given the previous iteration and size, return an array of events + // (there could be lost events). At the same time update the iteration and +- // lastEntry and gives back how many events there are. +- EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastEntryId, size_t* num) { ++ // size and gives back how many events there are. ++ EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastSize, size_t* num) { + EventEntry* start; + if (iteration_ == *lastIteration) { +- MOZ_ASSERT(events.lastEntryId() >= *lastEntryId); +- *num = events.lastEntryId() - *lastEntryId; +- start = events.data() + *lastEntryId + 1; ++ MOZ_ASSERT(*lastSize <= events.size()); ++ *num = events.size() - *lastSize; ++ start = events.data() + *lastSize; + } else { +- *num = events.lastEntryId() + 1; ++ *num = events.size(); + start = events.data(); + } + + *lastIteration = iteration_; +- *lastEntryId = events.lastEntryId(); ++ *lastSize = events.size(); + return start; + } + +@@ -220,16 +229,16 @@ class TraceLoggerThread + const char** lineno, size_t* lineno_len, const char** colno, + size_t* colno_len); + +- bool lostEvents(uint32_t lastIteration, uint32_t lastEntryId) { ++ bool lostEvents(uint32_t lastIteration, uint32_t lastSize) { + // If still logging in the same iteration, there are no lost events. + if (lastIteration == iteration_) { +- MOZ_ASSERT(lastEntryId <= events.lastEntryId()); ++ MOZ_ASSERT(lastSize <= events.size()); + return false; + } + +- // When proceeded to the next iteration and lastEntryId points to +- // the maximum capacity there are no logs that are lost. +- if (lastIteration + 1 == iteration_ && lastEntryId == events.capacity()) ++ // If we are in a consecutive iteration we are only sure we didn't lose any events, ++ // when the lastSize equals the maximum size 'events' can get. ++ if (lastIteration == iteration_ - 1 && lastSize == events.maxSize()) + return false; + + return true; +@@ -268,6 +277,7 @@ class TraceLoggerThread + void stopEvent(uint32_t id); + private: + void stopEvent(); ++ void log(uint32_t id); + + public: + static unsigned offsetOfEnabled() { +diff --git a/js/src/vm/TraceLoggingGraph.cpp b/js/src/vm/TraceLoggingGraph.cpp +index d1b7f2e..a4eb273 100644 +--- a/js/src/vm/TraceLoggingGraph.cpp ++++ b/js/src/vm/TraceLoggingGraph.cpp +@@ -276,7 +276,7 @@ TraceLoggerGraph::flush() + if (bytesWritten < tree.size()) + return false; + +- treeOffset += tree.lastEntryId(); ++ treeOffset += tree.size(); + tree.clear(); + } + +@@ -359,7 +359,7 @@ TraceLoggerGraph::startEventInternal(uint32_t id, uint64_t timestamp) + + if (parent.lastChildId() == 0) { + MOZ_ASSERT(!entry.hasChildren()); +- MOZ_ASSERT(parent.treeId() == tree.lastEntryId() + treeOffset); ++ MOZ_ASSERT(parent.treeId() == treeOffset + tree.size() - 1); + + if (!updateHasChildren(parent.treeId())) + return false; +diff --git a/js/src/vm/TraceLoggingTypes.h b/js/src/vm/TraceLoggingTypes.h +index f1c9d0c..10b76d6 100644 +--- a/js/src/vm/TraceLoggingTypes.h ++++ b/js/src/vm/TraceLoggingTypes.h +@@ -21,7 +21,6 @@ + _(Internal) \ + _(Interpreter) \ + _(InlinedScripts) \ +- _(Invalidation) \ + _(IonCompilation) \ + _(IonCompilationPaused) \ + _(IonLinking) \ +@@ -60,6 +59,7 @@ + + #define TRACELOGGER_LOG_ITEMS(_) \ + _(Bailout) \ ++ _(Invalidation) \ + _(Disable) \ + _(Enable) \ + _(Stop) +@@ -130,6 +130,9 @@ class ContinuousSpace { + uint32_t size_; + uint32_t capacity_; + ++ // The maximum amount of ram memory a continuous space structure can take (in bytes). ++ static const uint32_t LIMIT = 200 * 1024 * 1024; ++ + public: + ContinuousSpace () + : data_(nullptr) +@@ -151,6 +154,10 @@ class ContinuousSpace { + data_ = nullptr; + } + ++ static uint32_t maxSize() { ++ return LIMIT / sizeof(T); ++ } ++ + T* data() { + return data_; + } +@@ -187,11 +194,14 @@ class ContinuousSpace { + if (hasSpaceForAdd(count)) + return true; + ++ // Limit the size of a continuous buffer. ++ if (size_ + count > maxSize()) ++ return false; ++ + uint32_t nCapacity = capacity_ * 2; +- if (size_ + count > nCapacity) +- nCapacity = size_ + count; +- T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T)); ++ nCapacity = (nCapacity < maxSize()) ? nCapacity : maxSize(); + ++ T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T)); + if (!entries) + return false; + diff --git a/gnu/packages/patches/mozjs38-version-detection.patch b/gnu/packages/patches/mozjs38-version-detection.patch new file mode 100644 index 0000000000..ec2d264ccc --- /dev/null +++ b/gnu/packages/patches/mozjs38-version-detection.patch @@ -0,0 +1,180 @@ +Taken from +https://trac.wildfiregames.com/export/18656/ps/trunk/libraries/source/spidermonkey/FixVersionDetectionConfigure.diff. + +Fixes a version detection issue in 0ad. See +https://lists.gnu.org/archive/html/guix-devel/2017-01/msg00625.html. + +diff --git a/js/src/configure b/js/src/configure +--- a/js/src/configure ++++ b/js/src/configure +@@ -1662,70 +1662,6 @@ esac + + fi + +-MOZILLA_VERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir` +-MOZILLA_UAVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --uaversion` +-MOZILLA_SYMBOLVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --symbolversion` +- +-cat >> confdefs.pytmp <<EOF +- (''' MOZILLA_VERSION ''', r''' "$MOZILLA_VERSION" ''') +-EOF +-cat >> confdefs.h <<EOF +-#define MOZILLA_VERSION "$MOZILLA_VERSION" +-EOF +- +-cat >> confdefs.pytmp <<EOF +- (''' MOZILLA_VERSION_U ''', r''' $MOZILLA_VERSION ''') +-EOF +-cat >> confdefs.h <<EOF +-#define MOZILLA_VERSION_U $MOZILLA_VERSION +-EOF +- +-cat >> confdefs.pytmp <<EOF +- (''' MOZILLA_UAVERSION ''', r''' "$MOZILLA_UAVERSION" ''') +-EOF +-cat >> confdefs.h <<EOF +-#define MOZILLA_UAVERSION "$MOZILLA_UAVERSION" +-EOF +- +- +- +-# Separate version into components for use in shared object naming etc +- +-MOZJS_MAJOR_VERSION=`echo $MOZILLA_VERSION | sed "s|\(^[0-9]*\)\.[0-9]*.*|\1|"` +-MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.\([0-9]*\).*|\1|"` +-MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"` +-IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'` +- +-JS_SHELL_NAME=js +-JS_CONFIG_NAME=js-config +- +- +-if test -n "$IS_ALPHA"; then +- +- MOZJS_ALPHA=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9\.]*\([^0-9]\).*|\1|"` +- +-fi +-cat >> confdefs.pytmp <<EOF +- (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''') +-EOF +-cat >> confdefs.h <<EOF +-#define MOZJS_MAJOR_VERSION $MOZJS_MAJOR_VERSION +-EOF +- +-cat >> confdefs.pytmp <<EOF +- (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''') +-EOF +-cat >> confdefs.h <<EOF +-#define MOZJS_MINOR_VERSION $MOZJS_MINOR_VERSION +-EOF +- +- +- +- +- +- +- +- + + AR_FLAGS='crs $@' + +@@ -5731,6 +5565,71 @@ XCFLAGS="$X_CFLAGS" + + fi # COMPILE_ENVIRONMENT + ++MOZILLA_VERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir` ++MOZILLA_UAVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --uaversion` ++MOZILLA_SYMBOLVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --symbolversion` ++ ++cat >> confdefs.pytmp <<EOF ++ (''' MOZILLA_VERSION ''', r''' "$MOZILLA_VERSION" ''') ++EOF ++cat >> confdefs.h <<EOF ++#define MOZILLA_VERSION "$MOZILLA_VERSION" ++EOF ++ ++cat >> confdefs.pytmp <<EOF ++ (''' MOZILLA_VERSION_U ''', r''' $MOZILLA_VERSION ''') ++EOF ++cat >> confdefs.h <<EOF ++#define MOZILLA_VERSION_U $MOZILLA_VERSION ++EOF ++ ++cat >> confdefs.pytmp <<EOF ++ (''' MOZILLA_UAVERSION ''', r''' "$MOZILLA_UAVERSION" ''') ++EOF ++cat >> confdefs.h <<EOF ++#define MOZILLA_UAVERSION "$MOZILLA_UAVERSION" ++EOF ++ ++ ++ ++# Separate version into components for use in shared object naming etc ++ ++MOZJS_MAJOR_VERSION=`echo $MOZILLA_VERSION | sed "s|\(^[0-9]*\)\.[0-9]*.*|\1|"` ++MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.\([0-9]*\).*|\1|"` ++MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"` ++IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'` ++ ++JS_SHELL_NAME=js ++JS_CONFIG_NAME=js-config ++ ++ ++if test -n "$IS_ALPHA"; then ++ ++ MOZJS_ALPHA=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9\.]*\([^0-9]\).*|\1|"` ++ ++fi ++cat >> confdefs.pytmp <<EOF ++ (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''') ++EOF ++cat >> confdefs.h <<EOF ++#define MOZJS_MAJOR_VERSION $MOZJS_MAJOR_VERSION ++EOF ++ ++cat >> confdefs.pytmp <<EOF ++ (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''') ++EOF ++cat >> confdefs.h <<EOF ++#define MOZJS_MINOR_VERSION $MOZJS_MINOR_VERSION ++EOF ++ ++ ++ ++ ++ ++ ++ ++ ++ + AS_BIN=$AS + AR_LIST='$(AR) t' + AR_EXTRACT='$(AR) x' +@@ -16003,13 +15908,6 @@ sed 's/$/,/' >> $CONFIG_STATUS <<EOF + (''' ANDROID_NDK ''', r''' $ANDROID_NDK ''') + (''' ANDROID_TOOLCHAIN ''', r''' $ANDROID_TOOLCHAIN ''') + (''' ANDROID_PLATFORM ''', r''' $ANDROID_PLATFORM ''') +- (''' MOZILLA_SYMBOLVERSION ''', r''' $MOZILLA_SYMBOLVERSION ''') +- (''' JS_SHELL_NAME ''', r''' $JS_SHELL_NAME ''') +- (''' JS_CONFIG_NAME ''', r''' $JS_CONFIG_NAME ''') +- (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''') +- (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''') +- (''' MOZJS_PATCH_VERSION ''', r''' $MOZJS_PATCH_VERSION ''') +- (''' MOZJS_ALPHA ''', r''' $MOZJS_ALPHA ''') + (''' HOST_CC ''', r''' $HOST_CC ''') + (''' HOST_CXX ''', r''' $HOST_CXX ''') + (''' HOST_RANLIB ''', r''' $HOST_RANLIB ''') +@@ -16061,6 +15959,13 @@ sed 's/$/,/' >> $CONFIG_STATUS <<EOF + (''' X_PRE_LIBS ''', r''' $X_PRE_LIBS ''') + (''' X_LIBS ''', r''' $X_LIBS ''') + (''' X_EXTRA_LIBS ''', r''' $X_EXTRA_LIBS ''') ++ (''' MOZILLA_SYMBOLVERSION ''', r''' $MOZILLA_SYMBOLVERSION ''') ++ (''' JS_SHELL_NAME ''', r''' $JS_SHELL_NAME ''') ++ (''' JS_CONFIG_NAME ''', r''' $JS_CONFIG_NAME ''') ++ (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''') ++ (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''') ++ (''' MOZJS_PATCH_VERSION ''', r''' $MOZJS_PATCH_VERSION ''') ++ (''' MOZJS_ALPHA ''', r''' $MOZJS_ALPHA ''') + (''' SOLARIS_SUNPRO_CC ''', r''' $SOLARIS_SUNPRO_CC ''') + (''' SOLARIS_SUNPRO_CXX ''', r''' $SOLARIS_SUNPRO_CXX ''') + (''' MOZ_THUMB2 ''', r''' $MOZ_THUMB2 ''') diff --git a/gnu/packages/patches/pcre2-CVE-2017-8786.patch b/gnu/packages/patches/pcre2-CVE-2017-8786.patch new file mode 100644 index 0000000000..6071d58f07 --- /dev/null +++ b/gnu/packages/patches/pcre2-CVE-2017-8786.patch @@ -0,0 +1,155 @@ +Fix CVE-2017-8786: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8786 +https://bugs.exim.org/show_bug.cgi?id=2079 +https://blogs.gentoo.org/ago/2017/04/29/libpcre-heap-based-buffer-overflow-write-in-pcre2test-c/ + +Patch copied from upstream source repository: + +https://vcs.pcre.org/pcre2?view=revision&revision=696 +https://vcs.pcre.org/pcre2?view=revision&revision=697 + +--- trunk/doc/pcre2api.3 2017/03/21 16:48:40 695 ++++ trunk/doc/pcre2api.3 2017/03/21 17:46:21 696 +@@ -1,4 +1,4 @@ +-.TH PCRE2API 3 "24 December 2016" "PCRE2 10.23" ++.TH PCRE2API 3 "21 March 2017" "PCRE2 10.30" + .SH NAME + PCRE2 - Perl-compatible regular expressions (revised API) + .sp +@@ -2633,8 +2633,8 @@ + A text message for an error code from any PCRE2 function (compile, match, or + auxiliary) can be obtained by calling \fBpcre2_get_error_message()\fP. The code + is passed as the first argument, with the remaining two arguments specifying a +-code unit buffer and its length, into which the text message is placed. Note +-that the message is returned in code units of the appropriate width for the ++code unit buffer and its length in code units, into which the text message is ++placed. The message is returned in code units of the appropriate width for the + library that is being used. + .P + The returned message is terminated with a trailing zero, and the function +@@ -3321,6 +3321,6 @@ + .rs + .sp + .nf +-Last updated: 23 December 2016 +-Copyright (c) 1997-2016 University of Cambridge. ++Last updated: 21 March 2017 ++Copyright (c) 1997-2017 University of Cambridge. + .fi +--- trunk/src/pcre2_error.c 2017/03/21 16:48:40 695 ++++ trunk/src/pcre2_error.c 2017/03/21 17:46:21 696 +@@ -271,7 +271,7 @@ + Arguments: + enumber error number + buffer where to put the message (zero terminated) +- size size of the buffer ++ size size of the buffer in code units + + Returns: length of message if all is well + negative on error +--- trunk/src/pcre2test.c 2017/03/21 17:46:21 696 ++++ trunk/src/pcre2test.c 2017/03/21 18:36:13 697 +@@ -1017,9 +1017,9 @@ + if (test_mode == PCRE8_MODE) \ + r = pcre2_get_error_message_8(a,G(b,8),G(G(b,8),_size)); \ + else if (test_mode == PCRE16_MODE) \ +- r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size)); \ ++ r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size/2)); \ + else \ +- r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size)) ++ r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size/4)) + + #define PCRE2_GET_OVECTOR_COUNT(a,b) \ + if (test_mode == PCRE8_MODE) \ +@@ -1399,6 +1399,9 @@ + + /* ----- Common macros for two-mode cases ----- */ + ++#define BYTEONE (BITONE/8) ++#define BYTETWO (BITTWO/8) ++ + #define CASTFLD(t,a,b) \ + ((test_mode == G(G(PCRE,BITONE),_MODE))? (t)(G(a,BITONE)->b) : \ + (t)(G(a,BITTWO)->b)) +@@ -1481,9 +1484,9 @@ + + #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ + if (test_mode == G(G(PCRE,BITONE),_MODE)) \ +- r = G(pcre2_get_error_message_,BITONE)(a,G(b,BITONE),G(G(b,BITONE),_size)); \ ++ r = G(pcre2_get_error_message_,BITONE)(a,G(b,BITONE),G(G(b,BITONE),_size/BYTEONE)); \ + else \ +- r = G(pcre2_get_error_message_,BITTWO)(a,G(b,BITTWO),G(G(b,BITTWO),_size)) ++ r = G(pcre2_get_error_message_,BITTWO)(a,G(b,BITTWO),G(G(b,BITTWO),_size/BYTETWO)) + + #define PCRE2_GET_OVECTOR_COUNT(a,b) \ + if (test_mode == G(G(PCRE,BITONE),_MODE)) \ +@@ -1904,7 +1907,7 @@ + #define PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j) \ + a = pcre2_dfa_match_16(G(b,16),(PCRE2_SPTR16)c,d,e,f,G(g,16),h,i,j) + #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ +- r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size)) ++ r = pcre2_get_error_message_16(a,G(b,16),G(G(b,16),_size/2)) + #define PCRE2_GET_OVECTOR_COUNT(a,b) a = pcre2_get_ovector_count_16(G(b,16)) + #define PCRE2_GET_STARTCHAR(a,b) a = pcre2_get_startchar_16(G(b,16)) + #define PCRE2_JIT_COMPILE(r,a,b) r = pcre2_jit_compile_16(G(a,16),b) +@@ -2000,7 +2003,7 @@ + #define PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j) \ + a = pcre2_dfa_match_32(G(b,32),(PCRE2_SPTR32)c,d,e,f,G(g,32),h,i,j) + #define PCRE2_GET_ERROR_MESSAGE(r,a,b) \ +- r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size)) ++ r = pcre2_get_error_message_32(a,G(b,32),G(G(b,32),_size/4)) + #define PCRE2_GET_OVECTOR_COUNT(a,b) a = pcre2_get_ovector_count_32(G(b,32)) + #define PCRE2_GET_STARTCHAR(a,b) a = pcre2_get_startchar_32(G(b,32)) + #define PCRE2_JIT_COMPILE(r,a,b) r = pcre2_jit_compile_32(G(a,32),b) +--- trunk/src/pcre2test.c 2017/03/21 16:48:40 695 ++++ trunk/src/pcre2test.c 2017/03/21 17:46:21 696 +@@ -2889,7 +2889,7 @@ + { + if (pbuffer32 != NULL) free(pbuffer32); + pbuffer32_size = 4*len + 4; +- if (pbuffer32_size < 256) pbuffer32_size = 256; ++ if (pbuffer32_size < 512) pbuffer32_size = 512; + pbuffer32 = (uint32_t *)malloc(pbuffer32_size); + if (pbuffer32 == NULL) + { +@@ -7600,7 +7600,8 @@ + int errcode; + char *endptr; + +-/* Ensure the relevant non-8-bit buffer is available. */ ++/* Ensure the relevant non-8-bit buffer is available. Ensure that it is at ++least 128 code units, because it is used for retrieving error messages. */ + + #ifdef SUPPORT_PCRE2_16 + if (test_mode == PCRE16_MODE) +@@ -7620,7 +7621,7 @@ + #ifdef SUPPORT_PCRE2_32 + if (test_mode == PCRE32_MODE) + { +- pbuffer32_size = 256; ++ pbuffer32_size = 512; + pbuffer32 = (uint32_t *)malloc(pbuffer32_size); + if (pbuffer32 == NULL) + { +--- trunk/testdata/testinput2 2017/03/21 16:48:40 695 ++++ trunk/testdata/testinput2 2017/03/21 17:46:21 696 +@@ -5017,4 +5017,6 @@ + + /(?<!\1((?U)1((?U))))(*F)/never_backslash_c,alt_bsux,anchored,extended + ++/\g{3/ ++ + # End of testinput2 +--- trunk/testdata/testoutput2 2017/03/21 16:48:40 695 ++++ trunk/testdata/testoutput2 2017/03/21 17:46:21 696 +@@ -15570,6 +15570,9 @@ + + /(?<!\1((?U)1((?U))))(*F)/never_backslash_c,alt_bsux,anchored,extended + ++/\g{3/ ++Failed: error 157 at offset 2: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number ++ + # End of testinput2 + Error -63: PCRE2_ERROR_BADDATA (unknown error number) + Error -62: bad serialized data diff --git a/gnu/packages/patches/perl-net-dns-resolver-programmable-Fix-broken-interface.patch b/gnu/packages/patches/perl-net-dns-resolver-programmable-fix.patch index 371693dca1..371693dca1 100644 --- a/gnu/packages/patches/perl-net-dns-resolver-programmable-Fix-broken-interface.patch +++ b/gnu/packages/patches/perl-net-dns-resolver-programmable-fix.patch diff --git a/gnu/packages/patches/proot-test-fhs.patch b/gnu/packages/patches/proot-test-fhs.patch new file mode 100644 index 0000000000..d3896addd6 --- /dev/null +++ b/gnu/packages/patches/proot-test-fhs.patch @@ -0,0 +1,98 @@ +The test suite of PRoot makes many FHS assumptions, such as assuming +that /bin, /bin/true, and /usr exist. This patch fixes these assumptions. + +--- source/tests/GNUmakefile 2017-05-11 15:26:36.899115484 +0200 ++++ source/tests/GNUmakefile 2017-05-11 15:26:46.143063166 +0200 +@@ -121,7 +121,7 @@ $(ROOTFS_DIR): + setup: $(ROOTFS_BIN) + + $(ROOTFS)/bin/abs-true: +- @ln -fs /bin/true $@ ++ @ln -fs `which true` $@ + + $(ROOTFS)/bin/rel-true: + @ln -fs ./true $@ + +--- source/tests/test-d2175fc3.sh 2017-05-11 15:36:53.727617010 +0200 ++++ source/tests/test-d2175fc3.sh 2017-05-11 15:37:10.155523637 +0200 +@@ -2,8 +2,8 @@ if [ ! -x ${ROOTFS}/bin/readlink ] || [ + exit 125; + fi + +-${PROOT} -r ${ROOTFS} /bin/readlink /bin/abs-true | grep '^/bin/true$' ++${PROOT} -r ${ROOTFS} /bin/readlink /bin/abs-true | grep "`which true`" + ${PROOT} -r ${ROOTFS} /bin/readlink /bin/rel-true | grep '^\./true$' + +-${PROOT} -b /:/host-rootfs -r ${ROOTFS} /bin/readlink /bin/abs-true | grep '^/bin/true$' ++${PROOT} -b /:/host-rootfs -r ${ROOTFS} /bin/readlink /bin/abs-true | grep "`which true`" + ${PROOT} -b /:/host-rootfs -r ${ROOTFS} /bin/readlink /bin/rel-true | grep '^./true$' + +--- source/tests/test-d1be631a.sh 2017-05-11 15:41:36.458008715 +0200 ++++ source/tests/test-d1be631a.sh 2017-05-11 15:41:38.921994686 +0200 +@@ -1,4 +1,4 @@ +-if [ -z `which mknod`] || [ `id -u` -eq 0 ]; then ++if [ -z `which mknod` ] || [ `id -u` -eq 0 ]; then + exit 125; + fi + +--- source/tests/test-5bed7141.c 2017-05-11 15:34:23.088472743 +0200 ++++ source/tests/test-5bed7141.c 2017-05-11 15:34:27.052450235 +0200 +@@ -80,7 +80,7 @@ int main(int argc, char *argv[]) + exit(EXIT_FAILURE); + + case 0: /* child */ +- status = chdir("/usr"); ++ status = chdir("/gnu"); + if (status < 0) { + perror("chdir"); + exit(EXIT_FAILURE); + +--- a/tests/test-092c5e26.sh ++++ b/tests/test-092c5e26.sh +@@ -24,7 +24,7 @@ fi + + unset LD_LIBRARY_PATH + +-env PROOT_FORCE_FOREIGN_BINARY=1 PATH=/tmp:/bin:/usr/bin ${PROOT} -r ${ROOTFS} -q echo ${TMP} | grep "^-U LD_LIBRARY_PATH ${EXTRA}-0 /bin/argv0 /bin/argv0 ${TMP_ABS}$" ++env PROOT_FORCE_FOREIGN_BINARY=1 PATH=/tmp:/bin:/usr/bin:$(dirname $(which echo)) ${PROOT} -r ${ROOTFS} -q echo ${TMP} | grep "^-U LD_LIBRARY_PATH ${EXTRA}-0 /bin/argv0 /bin/argv0 ${TMP_ABS}$" + env PROOT_FORCE_FOREIGN_BINARY=1 ${PROOT} -r ${ROOTFS} -q echo ${TMP_ABS} | grep "^-U LD_LIBRARY_PATH ${EXTRA}-0 /bin/argv0 /bin/argv0 ${TMP_ABS}$" + + cat > ${ROOTFS}/${TMP_ABS} <<EOF +@@ -34,7 +34,7 @@ chmod +x ${ROOTFS}/${TMP_ABS} + + # Valgrind prepends "/bin/sh" in front of foreign binaries. + if ! $(echo ${PROOT} | grep -q valgrind); then +- env PATH=/tmp:/bin:/usr/bin ${PROOT} -r ${ROOTFS} -q echo ${TMP} | grep "^-U LD_LIBRARY_PATH -0 ${TMP} ${TMP_ABS}$" ++ env PATH=/tmp:/bin:/usr/bin:$(dirname $(which echo)) ${PROOT} -r ${ROOTFS} -q echo ${TMP} | grep "^-U LD_LIBRARY_PATH -0 ${TMP} ${TMP_ABS}$" + ${PROOT} -r ${ROOTFS} -q echo ${TMP_ABS} | grep "^-U LD_LIBRARY_PATH -0 ${TMP_ABS} ${TMP_ABS}$" + fi + +diff --git a/tests/test-5467b986.sh b/tests/test-5467b986.sh +index c6ac71a..f616f1e 100644 +--- a/tests/test-5467b986.sh ++++ b/tests/test-5467b986.sh +@@ -30,8 +30,8 @@ ${PROOT} -v -1 -b /tmp:/b -b /tmp:/a -r ${ROOTFS} fchdir_getcwd /b | grep '^/[ab + ! ${PROOT} -w /bin -r ${ROOTFS} fchdir_getcwd true + [ $? -eq 0 ] + +-${PROOT} -v -1 -w /usr -r / ${ROOTFS}/bin/chdir_getcwd share | grep '^/usr/share$' +-${PROOT} -v -1 -w /usr -r / ${ROOTFS}/bin/fchdir_getcwd share | grep '^/usr/share$' ++${PROOT} -v -1 -w /gnu -r / ${ROOTFS}/bin/chdir_getcwd store | grep '^/gnu/store$' ++${PROOT} -v -1 -w /gnu -r / ${ROOTFS}/bin/fchdir_getcwd store | grep '^/gnu/store$' + +-(cd /; ${PROOT} -v -1 -w usr -r / ${ROOTFS}/bin/chdir_getcwd share | grep '^/usr/share$') +-(cd /; ${PROOT} -v -1 -w usr -r / ${ROOTFS}/bin/fchdir_getcwd share | grep '^/usr/share$') ++(cd /; ${PROOT} -v -1 -w gnu -r / ${ROOTFS}/bin/chdir_getcwd store | grep '^/gnu/store$') ++(cd /; ${PROOT} -v -1 -w gnu -r / ${ROOTFS}/bin/fchdir_getcwd store | grep '^/gnu/store$') + +--- a/tests/test-c15999f9.sh ++++ b/tests/test-c15999f9.sh +@@ -5,7 +5,7 @@ fi + TMP=/tmp/$(mcookie) + mkdir ${TMP} + +-${PROOT} -b /bin/true:${TMP}/true /bin/true ++${PROOT} -b `which true`:${TMP}/true `which true` + ! test -e ${TMP}/true + [ $? -eq 0 ] + diff --git a/gnu/packages/patches/reptyr-fix-gcc-7.patch b/gnu/packages/patches/reptyr-fix-gcc-7.patch new file mode 100644 index 0000000000..5e0e581218 --- /dev/null +++ b/gnu/packages/patches/reptyr-fix-gcc-7.patch @@ -0,0 +1,38 @@ +This patch allows reptyr to build with gcc 7. It is taken from reptyr mainline patches +fa0d63f and b45fd92. + +https://github.com/nelhage/reptyr/commit/fa0d63ff8c488be15976e5353580b565e85586a1 +https://github.com/nelhage/reptyr/commit/b45fd9238958fcf2d8f3d6fc23e6d491febea2ac + +Patch by Nelson Elhage <nelhage@nelhage.com>. + +diff --git a/attach.c b/attach.c +index bd8ef8c..8d9cbf8 100644 +--- a/attach.c ++++ b/attach.c +@@ -389,8 +389,11 @@ int setup_steal_socket(struct steal_pty_state *steal) { + return errno; + + steal->addr_un.sun_family = AF_UNIX; +- snprintf(steal->addr_un.sun_path, sizeof(steal->addr_un.sun_path), +- "%s/reptyr.sock", steal->tmpdir); ++ if (snprintf(steal->addr_un.sun_path, sizeof(steal->addr_un.sun_path), ++ "%s/reptyr.sock", steal->tmpdir) >= sizeof(steal->addr_un.sun_path)) { ++ error("tmpdir path too long!"); ++ return ENAMETOOLONG; ++ } + + if ((steal->sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0) + return errno; +diff --git a/platform/linux/linux.h b/platform/linux/linux.h +index 9e6b78a..3ec5a99 100644 +--- a/platform/linux/linux.h ++++ b/platform/linux/linux.h +@@ -40,6 +40,7 @@ + #include <sys/ptrace.h> + #include <asm/ptrace.h> + #include <sys/types.h> ++#include <sys/sysmacros.h> + #include <sys/user.h> + #include <unistd.h> + #include <stdlib.h> diff --git a/gnu/packages/patches/rpcbind-CVE-2017-8779.patch b/gnu/packages/patches/rpcbind-CVE-2017-8779.patch new file mode 100644 index 0000000000..6ca93ff12b --- /dev/null +++ b/gnu/packages/patches/rpcbind-CVE-2017-8779.patch @@ -0,0 +1,29 @@ +Fix CVE-2017-8779: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8779 + +Patch copied from the bug reporter's 3rd-party repository: + +https://github.com/guidovranken/rpcbomb/blob/master/rpcbind_patch.txt + +diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c +index 5862c26..e11f61b 100644 +--- a/src/rpcb_svc_com.c ++++ b/src/rpcb_svc_com.c +@@ -48,6 +48,7 @@ + #include <rpc/rpc.h> + #include <rpc/rpcb_prot.h> + #include <rpc/svc_dg.h> ++#include <rpc/rpc_com.h> + #include <netconfig.h> + #include <errno.h> + #include <syslog.h> +@@ -432,7 +433,7 @@ rpcbproc_taddr2uaddr_com(void *arg, struct svc_req *rqstp /*__unused*/, + static bool_t + xdr_encap_parms(XDR *xdrs, struct encap_parms *epp) + { +- return (xdr_bytes(xdrs, &(epp->args), (u_int *) &(epp->arglen), ~0)); ++ return (xdr_bytes(xdrs, &(epp->args), (u_int *) &(epp->arglen), RPC_MAXDATASIZE)); + } + + /* diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index 1946f5229c..58beab0a96 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -92,17 +92,17 @@ POSIX regular expression API.") (sha256 (base32 "0vn5g0mkkp99mmzpissa06hpyj6pk9s4mlwbjqrjvw3ihy8rpiyz")) - (patches (search-patches "pcre2-CVE-2017-7186.patch")))) + (patches (search-patches "pcre2-CVE-2017-7186.patch" + "pcre2-CVE-2017-8786.patch")))) (build-system gnu-build-system) (inputs `(("bzip2" ,bzip2) ("readline" ,readline) ("zlib" ,zlib))) (arguments `(#:configure-flags '("--enable-unicode" - "--enable-pcregrep-libz" - "--enable-pcregrep-libbz2" - "--enable-pcretest-libreadline" - "--enable-unicode-properties" + "--enable-pcre2grep-libz" + "--enable-pcre2grep-libbz2" + "--enable-pcre2test-libreadline" "--enable-pcre2-16" "--enable-pcre2-32" "--enable-jit") diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 3eb7815f28..812d7548cf 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017 Raoul J.P. Bonnal <ilpuccio.febo@gmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> -;;; Copyright © 2017 humanitiesNerd <catonano@gmail.com> +;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index c782ecf47f..b68aea9d7b 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -32,18 +32,24 @@ #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) + #:use-module (gnu packages databases) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) + #:use-module (gnu packages gnome) #:use-module (gnu packages glib) #:use-module (gnu packages graphics) + #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages libusb) + #:use-module (gnu packages llvm) #:use-module (gnu packages man) #:use-module (gnu packages maths) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) + #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages tex) #:use-module (gnu packages web) @@ -192,7 +198,7 @@ MTP, and much more.") (description "This package provides the @code{exiftool} command and the @code{Image::ExifTool} Perl library to manipulate EXIF tags of digital images and a wide variety of other metadata.") - (license (package-license perl)))) + (license license:perl-license))) (define-public libpano13 (package @@ -300,3 +306,71 @@ photographic equipment.") ;; licensed GPL3, and the database is license CC-BY-SA 3.0. See the ;; README.md file for this clarification. (license (list license:lgpl3 license:gpl3 license:cc-by-sa3.0)))) + +(define-public darktable + (package + (name "darktable") + (version "2.2.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/darktable-org/darktable/releases/" + "download/release-" + version "/darktable-" version ".tar.xz")) + (sha256 + (base32 + "1n7rddkxwcifc3kcdlnar9w562xv4h78fqkkn27jihqzp3b4am5x")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; There are no tests. + #:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib") + #:make-flags + (list + (string-append "CPATH=" (assoc-ref %build-inputs "ilmbase") + "/include/OpenEXR:" (or (getenv "CPATH") ""))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-ldflags + (lambda* (#:key outputs #:allow-other-keys) + (setenv "LDFLAGS" + (string-append + "-Wl,-rpath=" + (assoc-ref outputs "out") "/lib/darktable")) + #t))))) + (native-inputs + `(("llvm" ,llvm-3.9.1) + ("clang" ,clang-3.9.1))) + (inputs + `(("libxslt" ,libxslt) + ("libxml2" ,libxml2) + ("pugixml" ,pugixml) + ("gtk+" ,gtk+) + ("sqlite" ,sqlite) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("cairo" ,cairo) + ("lcms" ,lcms) + ("exiv2" ,exiv2) + ("libtiff" ,libtiff) + ("curl" ,curl) + ("libgphoto2" ,libgphoto2) + ("dbus-glib" ,dbus-glib) + ("openexr" ,openexr) + ("ilmbase" ,ilmbase) + ("libsoup" ,libsoup) + ("python-jsonschema" ,python-jsonschema) + ("intltool" ,intltool) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("libwebp" ,libwebp) + ("lensfun" ,lensfun) + ("librsvg" ,librsvg) + ("json-glib" ,json-glib) + ("freeimage" ,freeimage))) + (home-page "https://www.darktable.org") + (synopsis "Virtual lighttable and darkroom for photographers") + (description "Darktable is a photography workflow application and RAW +developer. It manages your digital negatives in a database, lets you view +them through a zoomable lighttable and enables you to develop raw images +and enhance them.") + (license license:gpl3+))) diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index a40568eacc..ab277ed973 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -119,6 +119,7 @@ ;; extension of php. "--with-iconv" "--with-openssl" + "--with-mysqli" ; Required for, e.g. wordpress "--with-pdo-mysql" "--with-zlib" "--enable-calendar" @@ -130,8 +131,7 @@ "--enable-inifile" "--enable-mbstring" "--enable-pcntl" - "--enable-sockets" - "--enable-threads")) + "--enable-sockets")) #:phases (modify-phases %standard-phases (add-after 'unpack 'do-not-record-build-flags diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index c52f265cc1..92ebe6f3eb 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -45,6 +45,7 @@ (define-public libsndfile (package (name "libsndfile") + (replacement libsndfile/fixed) (version "1.0.28") (source (origin (method url-fetch) @@ -76,6 +77,18 @@ SPARC. Hopefully the design of the library will also make it easy to extend for reading and writing new sound file formats.") (license l:gpl2+))) +(define libsndfile/fixed + (package + (inherit libsndfile) + (source + (origin + (inherit (package-source libsndfile)) + (patches + (append + (origin-patches (package-source libsndfile)) + (search-patches "libsndfile-CVE-2017-8361-8363-8365.patch" + "libsndfile-CVE-2017-8362.patch"))))))) + (define-public libsamplerate (package (name "libsamplerate") ; aka. Secret Rabbit Code (SRC) diff --git a/gnu/packages/pv.scm b/gnu/packages/pv.scm index 9328da3533..59a0853a0e 100644 --- a/gnu/packages/pv.scm +++ b/gnu/packages/pv.scm @@ -29,13 +29,13 @@ (source (origin (method url-fetch) - (uri (string-append "http://www.ivarch.com/programs/sources/pv-" + (uri (string-append "https://www.ivarch.com/programs/sources/pv-" version ".tar.bz2")) (sha256 (base32 "13gg6r84pkvznpd1l11qw1jw9yna40gkgpni256khyx21m785khf")))) (build-system gnu-build-system) - (home-page "http://www.ivarch.com/programs/pv.shtml") + (home-page "https://www.ivarch.com/programs/pv.shtml") (synopsis "Pipeline progress indicator") (description "pv (Pipe Viewer) is a terminal-based tool for monitoring the progress diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 164c1f49bc..57a67de416 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -36,8 +36,9 @@ ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com> -;;; Copyright © 2017 humanitiesNerd <catonano@gmail.com> +;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com> ;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au> +;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1108,14 +1109,14 @@ Python file, so it can be easily copied into your project.") (define-public python-dateutil (package (name "python-dateutil") - (version "2.5.3") + (version "2.6.0") (source (origin (method url-fetch) (uri (pypi-uri "python-dateutil" version)) (sha256 (base32 - "1v9j9fmf8g911yg6k01xa2db6dx3wv73zkk7fncsj7vagjqgs20l")))) + "1lhq0hxjc3cfha101q02ld5ijlpfyjn2w1yh7wvpiy367pgzi8k2")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six))) @@ -1353,7 +1354,8 @@ Python 3.3+.") (build-system python-build-system) (arguments `(#:python ,python-2 #:tests? #f)) ; invalid command "test" - (home-page "https://fedorahosted.org/dogtail/") + ;; Currently no offical homepage. + (home-page "https://pypi.python.org/pypi/dogtail/") (synopsis "GUI test tool and automation framework written in Python") (description "Dogtail is a GUI test tool and automation framework written in Python. @@ -1843,14 +1845,14 @@ and many external plugins.") (define-public python-pytest-cov (package (name "python-pytest-cov") - (version "2.2.1") + (version "2.4.0") (source (origin (method url-fetch) (uri (pypi-uri "pytest-cov" version)) (sha256 (base32 - "1yl4nbhzfgsxqlsyk4clafgp9x11zvgrkprm9i2p3fgkwx9jxcm8")))) + "03c2qc42r4bczyw93gd7n0qi1h1jfhw7fnbhi33c3vp1hs81gm2k")))) (build-system python-build-system) (arguments `(#:phases @@ -1879,14 +1881,14 @@ supports coverage of subprocesses.") (define-public python-pytest-runner (package (name "python-pytest-runner") - (version "2.6.2") + (version "2.11.1") (source (origin (method url-fetch) (uri (pypi-uri "pytest-runner" version)) (sha256 (base32 - "1nwcqx0l3fv52kv8526wy8ypzghbq96c96di318d98d3wh7a8xg7")))) + "1cw978kqqcq916b9gfns1qjqvg33c5ail5jhw9054dsynkm32flq")))) (build-system python-build-system) (arguments `(#:phases @@ -2641,7 +2643,7 @@ version numbers.") (build-system python-build-system) (propagated-inputs `(("python-chardet" ,python-chardet))) - (home-page "https://fedorahosted.org/kitchen") + (home-page "https://github.com/fedora-infra/kitchen") (synopsis "Python API for snippets") (description "@code{kitchen} module provides a python API for all sorts of little useful snippets of code that everybody ends up writing for their projects @@ -3375,15 +3377,13 @@ mining and data analysis.") (define-public python-rq (package (name "python-rq") - (version "0.5.2") + (version "0.7.1") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/r/rq/rq-" - version ".tar.gz")) + (uri (pypi-uri "rq" version)) (sha256 - (base32 "0b0z5hn8wkfg300hx7816csgv3bcfamlr29fi3yzgqmpqxwj3fix")))) + (base32 "0gaq5pnh0zy46r8jvygi0ifbvz3pq6i7xla78ijcgjw0x77qzsdh")))) (build-system python-build-system) (propagated-inputs `(("python-click" ,python-click) @@ -4217,6 +4217,38 @@ routines such as routines for numerical integration and optimization.") (package-with-python2 (strip-python2-variant python-scipy))) +(define-public python-sockjs-tornado + (package + (name "python-sockjs-tornado") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sockjs-tornado" version)) + (sha256 + (base32 + "16cff40nniqsyvda1pb2j3b4zwmrw7y2g1vqq78lp20xpmhnwwkd")))) + (build-system python-build-system) + (arguments + `(;; There are no tests, and running the test phase requires missing + ;; dependencies + #:tests? #f)) + (propagated-inputs + `(("python-tornado" ,python-tornado))) + (home-page "http://github.com/mrjoes/sockjs-tornado/") + (synopsis + "SockJS python server implementation on top of Tornado framework") + (description + "SockJS-tornado provides the server side counterpart to a SockJS client +library, through the Tornado framework. + +SockJS provides a low latency, full duplex, cross-domain communication channel +between a web browser and web server.") + (license license:expat))) + +(define-public python2-sockjs-tornado + (package-with-python2 python-sockjs-tornado)) + (define-public python-socksipy-branch (package (name "python-socksipy-branch") @@ -5509,7 +5541,18 @@ features useful for text console applications.") (license license:lgpl2.1+))) (define-public python2-urwid - (package-with-python2 python-urwid)) + (let ((python2-urwid (package-with-python2 python-urwid))) + (package + (inherit python2-urwid) + (arguments + (append + '(#:phases + (modify-phases %standard-phases + ;; Disable the vterm tests because of non-deterministic failures + ;; with Python 2. See https://github.com/urwid/urwid/issues/230. + (add-after 'unpack 'delete-test_vterm.py + (delete-file "urwid/tests/test_vterm.py")))) + (package-arguments python-urwid)))))) (define-public python-openid (package @@ -5529,6 +5572,7 @@ features useful for text console applications.") (replace 'check (lambda _ (zero? (system* "./admin/runtests"))))))) + (properties `((python2-variant . ,(delay python2-openid)))) (propagated-inputs `(("python-defusedxml" ,python-defusedxml))) (native-inputs @@ -6105,13 +6149,13 @@ It is written entirely in Python.") (define-public python-tornado (package (name "python-tornado") - (version "4.3") + (version "4.5.1") (source (origin (method url-fetch) (uri (pypi-uri "tornado" version)) (sha256 - (base32 "1gzgwayl6hmc9jfcl88bni4jcsk2jcca9dn1rvrfsvnijcjx7hn9")))) + (base32 "1zbkgcdfq81k298awrm8p0xwbwwn2p3nbizdglzfbkskhai082fv")))) (build-system python-build-system) (arguments '(;; FIXME: Two tests error out with: @@ -7446,7 +7490,7 @@ a hash value.") (source (origin (method url-fetch) - (uri (pypi-uri "python-termcolor" version)) + (uri (pypi-uri "termcolor" version)) (sha256 (base32 "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x")))) @@ -8850,13 +8894,13 @@ processes across test runs.") (define-public python-icalendar (package (name "python-icalendar") - (version "3.11.3") + (version "3.11.4") (source (origin (method url-fetch) (uri (pypi-uri "icalendar" version)) (sha256 (base32 - "086jslw8cg2hni79j267p1dy6d27m7q5hi39ni2clh9waqbdf5v3")))) + "0ix3xxykz8hs8mx4f2063djawmd888y3vsl75fbvbfqvg67v35jn")))) (build-system python-build-system) (propagated-inputs `(("python-dateutil" ,python-dateutil) @@ -14011,3 +14055,570 @@ exception message with a traceback that points to the culprit.") (define-public python2-fudge (package-with-python2 python-fudge)) + +(define-public python-oauth2client + (package + (name "python-oauth2client") + (version "4.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "oauth2client" version)) + (sha256 + (base32 + "1irqqap2zibysf8dba8sklfqikia579srd0phm5n754ni0h59gl0")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs + `(("python-httplib2" ,python-httplib2) + ("python-pyasn1" ,python-pyasn1) + ("python-pyasn1-modules" ,python-pyasn1-modules) + ("python-rsa" ,python-rsa) + ("python-six" ,python-six))) + (home-page "http://github.com/google/oauth2client/") + (synopsis "OAuth 2.0 client library") + (description "@code{python-oauth2client} provides an OAuth 2.0 client +library for Python") + (license license:asl2.0))) + +(define-public python-flask-oidc + (package + (name "python-flask-oidc") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flask-oidc" version)) + (sha256 + (base32 + "1ay5j0mf174bix7i67hclr95gv16z81fpx0dijvi0gydvdj3ddy2")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flask" ,python-flask) + ("python-itsdangerous" ,python-itsdangerous) + ("python-oauth2client" ,python-oauth2client) + ("python-six" ,python-six))) + (native-inputs + `(("python-nose" ,python-nose) + ("python-mock" ,python-mock))) + (home-page "https://github.com/puiterwijk/flask-oidc") + (synopsis "OpenID Connect extension for Flask") + (description "@code{python-flask-oidc} provides an OpenID Connect extension +for Flask.") + (license license:bsd-2))) + +(define-public python-mwclient + (package + (name "python-mwclient") + (version "0.8.4") + (source + (origin + (method url-fetch) + ;; The PyPI version wouldn't contain tests. + (uri (string-append "https://github.com/mwclient/mwclient/archive/" + "v" version ".tar.gz")) + (sha256 + (base32 + "1jj0yhilkjir00719fc7w133x7hdyhkxhk6xblla4asig45klsfv")))) + (build-system python-build-system) + (propagated-inputs + `(("python-requests" ,python-requests) + ("python-requests-oauthlib" + ,python-requests-oauthlib) + ("python-six" ,python-six))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-pytest-pep8" ,python-pytest-pep8) + ("python-pytest-cache" ,python-pytest-cache) + ("python-pytest-cov" ,python-pytest-cov) + ("python-responses" ,python-responses))) + (home-page "https://github.com/btongminh/mwclient") + (synopsis "MediaWiki API client") + (description "This package provides a MediaWiki API client.") + (license license:expat))) + +(define-public python2-mwclient + (package-with-python2 python-mwclient)) + +(define-public python-pytest-warnings + (package + (name "python-pytest-warnings") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-warnings" version)) + (sha256 + (base32 + "0gf2dpahpl5igb7jh1sr9acj3z3gp7zahqdqb69nk6wx01c8kc1g")))) + (build-system python-build-system) + (propagated-inputs + `(("pytest" ,python-pytest-3.0))) + (home-page "https://github.com/fschulze/pytest-warnings") + (synopsis "Pytest plugin to list Python warnings in pytest report") + (description + "Python-pytest-warnings is a pytest plugin to list Python warnings in +pytest report.") + (license license:expat))) + +(define-public python2-pytest-warnings + (package-with-python2 python-pytest-warnings)) + +(define-public python-pytest-catchlog + (package + (name "python-pytest-catchlog") + (version "1.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-catchlog" version ".zip")) + (sha256 + (base32 + "1w7wxh27sbqwm4jgwrjr9c2gy384aca5jzw9c0wzhl0pmk2mvqab")))) + (build-system python-build-system) + (native-inputs + `(("unzip" ,unzip))) + (propagated-inputs + `(("pytest" ,python-pytest-3.0))) + (home-page "https://github.com/eisensheng/pytest-catchlog") + (synopsis "Pytest plugin to catch log messages") + (description + "Python-pytest-catchlog is a pytest plugin to catch log messages. This is +a fork of pytest-capturelog.") + (license license:expat))) + +(define-public python2-pytest-catchlog + (package-with-python2 python-pytest-catchlog)) + +(define-public python-utils + (package + (name "python-utils") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "python-utils" version)) + (sha256 + (base32 + "1mcsy6q5am4ya72rgkpb6kax6vv7c93cfkkas89xnpa4sj9zf28p")))) + (build-system python-build-system) + (native-inputs + `(("pytest-runner" ,python-pytest-runner) + ("pytest" ,python-pytest) + ("six" ,python-six))) + (home-page "https://github.com/WoLpH/python-utils") + (synopsis "Convenient utilities not included with the standard Python install") + (description + "Python Utils is a collection of small Python functions and classes which +make common patterns shorter and easier.") + (license license:bsd-2))) + +(define-public python2-utils + (package-with-python2 python-utils)) + +(define-public python-webassets + (package + (name "python-webassets") + (version "0.12.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "webassets" version)) + (sha256 + (base32 + "1nrqkpb7z46h2b77xafxihqv3322cwqv6293ngaky4j3ff4cing7")))) + (build-system python-build-system) + (native-inputs + `(("python-jinja2" ,python-jinja2) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose) + ("python-pytest" ,python-pytest))) + (home-page "https://github.com/miracle2k/webassets") + (synopsis "Media asset management") + (description "Merges, minifies and compresses Javascript and CSS files, +supporting a variety of different filters, including YUI, jsmin, jspacker or +CSS tidy. Also supports URL rewriting in CSS files.") + (license license:bsd-2))) + +(define-public python-sphinx-me + (package + (name "python-sphinx-me") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sphinx-me" version)) + (sha256 + (base32 + "06jzgp213zihnvpcy2y5jy3ykid3apc2ncp2pg6a2g05lhiziglq")))) + (build-system python-build-system) + (home-page "https://github.com/stephenmcd/sphinx-me") + (synopsis "Create a Sphinx documentation shell") + (description + "Create a Sphinx documentation shell for your project and include the +README file as the documentation index. It handles extracting the required +meta data such as the project name, author and version from your project for +use in your Sphinx docs.") + (license license:bsd-2))) + +(define-public python2-sphinx-me + (package-with-python2 python-sphinx-me)) + +(define-public python-cssmin + (package + (name "python-cssmin") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cssmin" version)) + (sha256 + (base32 + "1dk723nfm2yf8cp4pj785giqlwv42l0kj8rk40kczvq1hk6g04p0")))) + (build-system python-build-system) + (home-page "https://github.com/zacharyvoase/cssmin") + (synopsis "Python port of the YUI CSS Compressor") + (description "Python port of the YUI CSS Compressor.") + (license (list license:expat license:bsd-3)))) + +(define-public python2-cssmin + (package-with-python2 python-cssmin)) + +(define-public python-diff-match-patch + (package + (name "python-diff-match-patch") + (version "20121119") + (source + (origin + (method url-fetch) + (uri (pypi-uri "diff-match-patch" version)) + (sha256 + (base32 + "0k1f3v8nbidcmmrk65m7h8v41jqi37653za9fcs96y7jzc8mdflx")))) + (build-system python-build-system) + (home-page "https://code.google.com/p/google-diff-match-patch") + (synopsis "Synchronize plain text") + (description "Diff Match and Patch libraries offer robust algorithms to +perform the operations required for synchronizing plain text.") + (license license:asl2.0))) + +(define-public python2-diff-match-patch + (package-with-python2 python-diff-match-patch)) + +(define-public python-dirsync + (package + (name "python-dirsync") + (version "2.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "dirsync" version ".zip")) + (sha256 + (base32 + "1hcdvmkwd5512zbxpin0k7bx5bkgzy3swjx7d0kj1y45af6r75v2")))) + (build-system python-build-system) + (native-inputs + `(("unzip" ,unzip))) + (propagated-inputs + `(("six" ,python-six))) + (home-page "https://bitbucket.org/tkhyn/dirsync") + (synopsis "Advanced directory tree synchronisation tool") + (description "Advanced directory tree synchronisation tool.") + (license license:expat))) + +(define-public python2-dirsync + (package-with-python2 python-dirsync)) + +(define-public python-nosexcover + (package + (name "python-nosexcover") + (version "1.0.11") + (source (origin + (method url-fetch) + (uri (pypi-uri "nosexcover" version)) + (sha256 + (base32 + "10xqr12qv62k2flxwqhh8cr00cjhn7sfjrm6p35gd1x5bmjkr319")))) + (build-system python-build-system) + (propagated-inputs + `(("python-coverage" ,python-coverage) + ("python-nose" ,python-nose))) + (home-page "http://github.com/cmheisel/nose-xcover") + (synopsis "Extends nose.plugins.cover to add Cobertura-style XML reports") + (description "Nose-xcover is a companion to the built-in +@code{nose.plugins.cover}. This plugin will write out an XML coverage report +to a file named coverage.xml. + +It will honor all the options you pass to the Nose coverage plugin, +especially -cover-package.") + (license license:expat))) + +(define-public python2-nosexcover + (package-with-python2 python-nosexcover)) + +(define-public python-elasticsearch + (package + (name "python-elasticsearch") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "elasticsearch" version)) + (sha256 + (base32 + "1sdw1r05cw7ihnmng8ra9v968fj7bq6sji8i1dikymsnkcpgc69g")))) + (build-system python-build-system) + (native-inputs + `(("python-mock" ,python-mock) + ("python-nosexcover" ,python-nosexcover) + ("python-pyaml" ,python-pyaml) + ("python-requests" ,python-requests))) + (propagated-inputs + `(("urllib3" ,python-urllib3))) + (arguments + ;; tests require the test_elasticsearch module but it is not distributed. + `(#:tests? #f)) + (home-page "https://github.com/elastic/elasticsearch-py") + (synopsis "Low-level client for Elasticsearch") + (description "Official low-level client for Elasticsearch. Its goal is to +provide common ground for all Elasticsearch-related code in Python; because of +this it tries to be opinion-free and very extendable.") + (license license:expat))) + +(define-public python2-elasticsearch + (package-with-python2 python-elasticsearch)) + +(define-public python-levenshtein + (package + (name "python-levenshtein") + (version "0.12.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-Levenshtein" version)) + (sha256 + (base32 + "1c9ybqcja31nghfcc8xxbbz9h60s9qi12b9hr4jyl69xbvg12fh3")))) + (build-system python-build-system) + (home-page "https://github.com/ztane/python-Levenshtein") + (synopsis "Fast computation of Levenshtein distance and string similarity") + (description + "The Levenshtein Python C extension module contains functions for fast computation of +@enumerate +@item Levenshtein (edit) distance, and edit operations +@item string similarity +@item approximate median strings, and generally string averaging +@item string sequence and set similarity +@end enumerate +It supports both normal and Unicode strings.") + (license license:gpl2+))) + +(define-public python2-levenshtein + (package-with-python2 python-levenshtein)) + +(define-public python-scandir + (package + (name "python-scandir") + (version "1.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "scandir" version)) + (sha256 + (base32 "0yjrgp0mxp3d8bjkq2m1ac2ys8n76wykksvgyjrnil9gr3fx7a5d")))) + (build-system python-build-system) + (home-page "https://github.com/benhoyt/scandir") + (synopsis "Directory iteration function") + (description + "Directory iteration function like os.listdir(), except that instead of +returning a list of bare filenames, it yields DirEntry objects that include +file type and stat information along with the name. Using scandir() increases +the speed of os.walk() by 2-20 times (depending on the platform and file +system) by avoiding unnecessary calls to os.stat() in most cases.") + (license license:bsd-3))) + +(define-public python2-scandir + (package-with-python2 python-scandir)) + +(define-public python2-stemming + (package + (name "python2-stemming") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "stemming" version)) + (sha256 + (base32 "0ldwa24gnnxhniv0fhygkpc2mwgd93q10ag8rvzayv6hw418frsr")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + (home-page "https://bitbucket.org/mchaput/stemming/overview") + (synopsis "Python implementations of various stemming algorithms") + (description + "Python implementations of the Porter, Porter2, Paice-Husk, and Lovins +stemming algorithms for English. These implementations are straightforward and +efficient, unlike some Python versions of the same algorithms available on the +Web. This package is an extraction of the stemming code included in the Whoosh +search engine.") + (license license:public-domain))) + +(define-public python-factory-boy + (package + (name "python-factory-boy") + (version "2.8.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "factory_boy" version)) + (sha256 + (base32 "1fvin6san5xsjh2c4y18caj2lnmwxlylyqm8mh1yc6rp38wlwr56")))) + (build-system python-build-system) + (arguments + ;; Tests are not included in the tarball. + `(#:tests? #f)) + (propagated-inputs + `(("faker" ,python-faker))) + (home-page "https://github.com/benhoyt/scandir") + (synopsis "Versatile test fixtures replacement") + (description + "Factory_boy is a fixtures replacement based on thoughtbot’s factory_girl. + +As a fixtures replacement tool, it aims to replace static, hard to maintain +fixtures with easy-to-use factories for complex object. + +Instead of building an exhaustive test setup with every possible combination +of corner cases, factory_boy allows you to use objects customized for the +current test, while only declaring the test-specific fields") + (license license:expat))) + +(define-public python2-factory-boy + (package-with-python2 python-factory-boy)) + +(define-public python-translate-toolkit + (package + (name "python-translate-toolkit") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "translate-toolkit" version ".tar.bz2")) + (sha256 + (base32 "1vlkwrg83vb17jc36pmwh2b7jphwf390lz0jw8hakcg16qhwypvq")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-sphinx" ,python-sphinx))) + (propagated-inputs + `(("python-babel" ,python-babel) + ("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-chardet" ,python-chardet) + ("python-diff-match-patch" ,python-diff-match-patch) + ("python-levenshtein" ,python-levenshtein) + ("python-lxml" ,python-lxml) + ("python-six" ,python-six) + ("python-vobject" ,python-vobject) + ("python-pyyaml" ,python-pyyaml))) + (arguments + ;; TODO: tests are not run, because they end with + ;; TypeError: parse() missing 2 required positional arguments: 'tree' and + ;; 'parse_funcs' + ;; during test setup. + `(#:tests? #f)) + (home-page "http://toolkit.translatehouse.org") + (synopsis "Tools and API for translation and localization engineering") + (description + "Tools and API for translation and localization engineering. It contains +several utilities, as well as an API for building localization tools.") + (license license:gpl2+))) + +(define-public python2-translate-toolkit + (package-with-python2 python-translate-toolkit)) + +(define-public python-mysqlclient + (package + (name "python-mysqlclient") + (version "1.3.10") + (source + (origin + (method url-fetch) + (uri (pypi-uri "mysqlclient" version)) + (sha256 + (base32 + "0qkj570x4rbsblji6frvsvp2v1ap32dqzj1lq62zp9515ffsyaj5")))) + (build-system python-build-system) + (native-inputs + `(("mariadb" ,mariadb) + ("nose" ,python-nose) + ("mock" ,python-mock) + ("py.test" ,python-pytest))) + (inputs + `(("mysql" ,mysql) + ("libz" ,zlib) + ("openssl" ,openssl))) + (home-page "https://github.com/PyMySQL/mysqlclient-python") + (synopsis "MySQLdb is an interface to the popular MySQL database server for Python") + (description "MySQLdb is an interface to the popular MySQL database server +for Python. The design goals are: +@enumerate +@item Compliance with Python database API version 2.0 [PEP-0249], +@item Thread-safety, +@item Thread-friendliness (threads will not block each other). +@end enumerate") + (license license:gpl2))) + +(define-public python2-mysqlclient + (package-with-python2 python-mysqlclient)) + +(define-public python-hiredis + (package + (name "python-hiredis") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "hiredis" version)) + (sha256 + (base32 + "1dfm2k9l9zar9nw9fwmm74zrgraxdxs04vx9li56fjcf289qx5fa")))) + (build-system python-build-system) + (arguments + ;; no tests + `(#:tests? #f)) + (home-page "https://github.com/redis/hiredis-py") + (synopsis "Python extension that wraps protocol parsing code in hiredis") + (description "Python-hiredis is a python extension that wraps protocol +parsing code in hiredis. It primarily speeds up parsing of multi bulk replies.") + (license license:bsd-3))) + +(define-public python2-hiredis + (package-with-python2 python-hiredis)) + +(define-public python-fakeredis + (package + (name "python-fakeredis") + (version "0.8.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "fakeredis" version)) + (sha256 + (base32 + "0zncahj3byyasyfx9i7k991ph0n0lq8v3a21pqri5qxn9564bk9r")))) + (build-system python-build-system) + (arguments + ;; no tests + `(#:tests? #f)) + (home-page "https://github.com/jamesls/fakeredis") + (synopsis "Fake implementation of redis API for testing purposes") + (description "Fakeredis is a pure python implementation of the redis-py +python client that simulates talking to a redis server. This was created for a +single purpose: to write unittests. Setting up redis is not hard, but many time + you want to write unittests that do not talk to an external server (such as +redis). This module now allows tests to simply use this module as a reasonable +substitute for redis.") + (license license:bsd-3))) + +(define-public python2-fakeredis + (package-with-python2 python-fakeredis)) diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm index 492f1d9fb3..2b32aa3381 100644 --- a/gnu/packages/regex.scm +++ b/gnu/packages/regex.scm @@ -28,7 +28,7 @@ (define-public re2 (package (name "re2") - (version "2017-04-01") + (version "2017-05-01") (source (origin (method url-fetch) (uri @@ -38,10 +38,13 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "14i9pf9ap8h48j1584ifsq7c7a884cr1s4r7zvpcb9x1xr9232wh")))) + "19glvic4ipd122yhcavf7ifg7ms5k61398vq7gyb90wggf2w0z9k")))) (build-system gnu-build-system) (arguments - `(#:test-target "test" + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:test-target "test" ;; There is no configure step, but the Makefile respects a prefix. ;; As ./configure does not know anything about the target CXX ;; we need to specify TARGET-g++ explicitly. diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 5bcd5980a1..623ef93a4e 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2015, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org> @@ -25,6 +25,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix licenses) + #:use-module (guix utils) #:use-module (gnu packages acl) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) @@ -252,6 +253,44 @@ Desktops into Active Directory environments using the winbind daemon.") destructors. It is the core memory allocator used in Samba.") (license gpl3+))) ;; The bundled "replace" library uses LGPL3. +(define-public talloc/static + (package + (inherit talloc) + (name "talloc-static") + (synopsis + "Hierarchical, reference counted memory pool system (static library)") + (arguments + (substitute-keyword-arguments (package-arguments talloc) + ((#:phases phases) + ;; Since Waf, the build system talloc uses, apparently does not + ;; support building static libraries from a ./configure flag, roll our + ;; own build process. No need to be ashamed, we're not the only ones + ;; doing that: + ;; <https://github.com/proot-me/proot-static-build/blob/master/GNUmakefile>. + ;; :-) + `(modify-phases ,phases + (replace 'build + (lambda _ + (letrec-syntax ((shell (syntax-rules () + ((_ (command ...) rest ...) + (and (zero? (system* command ...)) + (shell rest ...))) + ((_) + #t)))) + (shell ("gcc" "-c" "-Ibin/default" "-I" "lib/replace" + "-I." "-Wall" "-g" "talloc.c") + ("ar" "rc" "libtalloc.a" "talloc.o"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (include (string-append out "/include"))) + (mkdir-p lib) + (install-file "libtalloc.a" lib) + (install-file "talloc.h" include) + #t))) + (delete 'check))))))) ;XXX: tests rely on Python modules + (define-public tevent (package (name "tevent") diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index 1bdfcd0110..49584662b1 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> +;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -155,6 +156,8 @@ window manager as well as the Tmux terminal multiplexer.") (method url-fetch) (uri (string-append "https://github.com/nelhage/reptyr/archive" "/reptyr-" version ".tar.gz")) + ;; XXX: To be removed on next reptyr release. + (patches (search-patches "reptyr-fix-gcc-7.patch")) (sha256 (base32 "07pfl0rkgm8m3f3jy8r9l2yvnhf8lgllpsk3mh57mhzdxq8fagf7")))) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 5908f50d68..a6b5270199 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -92,7 +92,7 @@ such as compact binary encodings, XML, or JSON.") (define-public msgpack (package (name "msgpack") - (version "1.4.1") + (version "1.4.2") (source (origin (method url-fetch) @@ -108,7 +108,7 @@ such as compact binary encodings, XML, or JSON.") (close-output-port p)))) (sha256 (base32 - "0bpjfh9vz0n2k93mph3x15clmigkgs223xfn8h12ymrh5gsi5ica")))) + "18hzmyfg3mvnp7ab03nqdzzvqagkl42gygjpi4zv4i7aca2dmwf0")))) (build-system gnu-build-system) (native-inputs `(("googletest" ,googletest) @@ -136,14 +136,15 @@ serialization.") (define-public libmpack (package (name "libmpack") - (version "1.0.3") + (version "1.0.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/tarruda/libmpack/" "archive/" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "08kfdl55yf66xk57aqsbf8n45f2jsw2v7qwnaan08ciim77j3sv5")))) + (base32 + "0ml922gv8y99lbldqb9ykpjndla0hlprdjyl79yskkhwv2ai7sac")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -164,6 +165,14 @@ that implements both the msgpack and msgpack-rpc specifications.") (define-public lua-libmpack (package (inherit libmpack) (name "lua-libmpack") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/libmpack/libmpack-lua/" + "archive/" (package-version libmpack) ".tar.gz")) + (file-name (string-append name "-" (package-version libmpack) ".tar.gz")) + (sha256 + (base32 + "153zrrbyxhf71dgzjjhrk56rfwk3nisslpgcqyg44v8fnz1xpk6i")))) (build-system gnu-build-system) (arguments `(;; FIXME: tests require "busted", which is not yet available in Guix. @@ -173,26 +182,35 @@ that implements both the msgpack and msgpack-rpc specifications.") (let* ((lua-version ,(package-version lua)) (lua-major+minor ,(version-major+minor (package-version lua)))) (list "CC=gcc" + "FETCH=echo" ; don't fetch anything from the web + "UNTGZ=echo" ; and don't try to unpack it "USE_SYSTEM_LUA=yes" - (string-append "LUA_VERSION=" lua-version) - (string-append "LUA_VERSION_MAJ_MIN=" lua-major+minor) + (string-append "MPACK_LUA_VERSION=" lua-version) + (string-append "MPACK_LUA_VERSION_NOPATCH=" lua-major+minor) (string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "LUA_CMOD_INSTALLDIR=" (assoc-ref %outputs "out") - "/lib/lua/" lua-major+minor) - ;; This is unnecessary as of upstream commit 02886c13ff8a2, - ;; which is not part of the current release. - "CFLAGS=-DLUA_C89_NUMBERS -fPIC")) + "/lib/lua/" lua-major+minor))) #:phases (modify-phases %standard-phases (delete 'configure) - (add-after 'unpack 'chdir - (lambda _ (chdir "binding/lua") #t))))) + (add-after 'unpack 'unpack-mpack-sources + (lambda* (#:key inputs #:allow-other-keys) + ;; This is broken because mpack-src is not a file, but all + ;; prerequisites are added to the inputs of the gcc invocation. + (substitute* "Makefile" + (("\\$\\(MPACK\\): mpack-src") "$(MPACK): ")) + (mkdir-p "mpack-src") + (zero? (system* "tar" "-C" "mpack-src" + "--strip-components=1" + "-xvf" (assoc-ref inputs "libmpack")))))))) (inputs `(("lua" ,lua))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("libmpack" ,(package-source libmpack)))) + (home-page "https://github.com/libmpack/libmpack-lua") (synopsis "Lua bindings for the libmpack binary serialization library"))) (define-public lua5.2-libmpack @@ -205,8 +223,8 @@ that implements both the msgpack and msgpack-rpc specifications.") (lua-major+minor ,(version-major+minor (package-version lua-5.2)))) (list "CC=gcc" "USE_SYSTEM_LUA=yes" - (string-append "LUA_VERSION=" lua-version) - (string-append "LUA_VERSION_MAJ_MIN=" lua-major+minor) + (string-append "MPACK_LUA_VERSION=" lua-version) + (string-append "MPACK_LUA_VERSION_NOPATCH=" lua-major+minor) (string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "LUA_CMOD_INSTALLDIR=" @@ -264,7 +282,7 @@ it a convenient format to store user input files.") (define-public capnproto (package (name "capnproto") - (version "0.5.3.1") + (version "0.6.0") (source (origin (method url-fetch) (uri (string-append @@ -272,7 +290,7 @@ it a convenient format to store user input files.") version ".tar.gz")) (sha256 (base32 - "06wi4fcxx58nc7pr2xga20hn11psk56b0yhna5bx2pw90mlcbd84")))) + "0gpp1cxsb9nfd7qkjjykzknx03y0z0n4bq5q0fmxci7w38ci22g5")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 012f272ca4..4e684e8c81 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net> +;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. @@ -31,6 +31,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages documentation) + #:use-module (gnu packages groff) #:use-module (gnu packages libedit) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) @@ -116,6 +117,7 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") (inputs `(("bc" ,bc) ("ncurses" ,ncurses) + ("groff" ,groff) ;for 'fish --help' ("pcre2" ,pcre2) ;don't use the bundled PCRE2 ("python" ,python-wrapper))) ;for fish_config and manpage completions (arguments @@ -133,6 +135,8 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") "/bin/bc"))) (substitute* "share/functions/fish_update_completions.fish" (("python") (which "python"))) + (substitute* "share/functions/__fish_print_help.fish" + (("nroff") (which "nroff"))) #t))))) (synopsis "The friendly interactive shell") (description @@ -147,6 +151,32 @@ highlighting.") (home-page "https://fishshell.com/") (license gpl2))) +(define-public fish-guix + (package + (name "fish-guix") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://dist.pragmatique.xyz/fish-guix/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0xi0j9lvzh43lrj82gz52n2cjln0i0pgayngrg4hy5w4449biy0z")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No checks. + #:make-flags (list + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; No configure script. + (home-page "https://pragmatique.xyz/software/fish-guix.html") + (synopsis "Fish completions for Guix") + (description + "Fish-guix provides completions for Guix for users of the fish shell.") + (license public-domain))) + (define-public rc (package (name "rc") diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 135083ad22..1fd395049a 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -135,8 +135,8 @@ a server that supports the SSH-2 protocol.") (sha256 (base32 "1w7rb5gbrikxdkp8w7zxnci4549gk4bw1lml01s59w5rzb2y6ilq")))) (build-system gnu-build-system) - (inputs `(("groff" ,groff) - ("openssl" ,openssl) + (native-inputs `(("groff" ,groff))) + (inputs `(("openssl" ,openssl) ("pam" ,linux-pam) ("mit-krb5" ,mit-krb5) ("zlib" ,zlib) @@ -213,7 +213,7 @@ Additionally, various channel-specific options can be negotiated.") (define-public guile-ssh (package (name "guile-ssh") - (version "0.10.2") + (version "0.11.0") (home-page "https://github.com/artyom-poptsov/guile-ssh") (source (origin ;; ftp://memory-heap.org/software/guile-ssh/guile-ssh-VERSION.tar.gz @@ -225,7 +225,16 @@ Additionally, various channel-specific options can be negotiated.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0pkiq3fm15pr4w1r420rrwwfmi4jz492r6l6vzjk6v73xlyfyfl3")))) + "0r261i8kc3avbmbwgyzak2vnqwssjlgz37g2y2fwm80w9bmn2m7j")) + (modules '((guix build utils))) + (snippet + ;; 'configure.ac' mistakenly tries to link files from examples/ + ;; that are not instantiated yet. Work around it. + '(substitute* "configure.ac" + (("AC_CONFIG_LINKS\\(\\[examples/([^:]+):.*" _ file) + (string-append "AC_CONFIG_FILES([examples/" file + "], [chmod +x examples/" + file "])\n")))))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -256,7 +265,7 @@ Additionally, various channel-specific options can be negotiated.") ("texinfo" ,texinfo) ("pkg-config" ,pkg-config) ("which" ,which))) - (inputs `(("guile" ,guile-2.0) + (inputs `(("guile" ,guile-2.2) ("libssh" ,libssh) ("libgcrypt" ,libgcrypt))) (synopsis "Guile bindings to libssh") @@ -267,25 +276,14 @@ libssh library.") (license license:gpl3+))) (define-public guile2.2-ssh - ;; This is a snapshot of a unofficial copy of Guile-SSH, which hopefully - ;; reflects the upcoming release well enough. - (let ((commit "926a0843626f89e3db02d01a6b01cc1f0d9cefcf") - (revision "0")) - (package - (inherit guile-ssh) - (name "guile2.2-ssh") - (version (string-append "0.10.2." revision "." (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://notabug.org/civodul/guile-ssh/") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0hf28macq8d1w05g0xy2lw1s5vzmcrixh7m43x7qvvdd31c998ip")))) - (inputs `(("guile" ,guile-2.2) - ,@(alist-delete "guile" (package-inputs guile-ssh))))))) + (deprecated-package "guile2.2-ssh" guile-ssh)) + +(define-public guile2.0-ssh + (package + (inherit guile-ssh) + (name "guile2.0-ssh") + (inputs `(("guile" ,guile-2.0) + ,@(alist-delete "guile" (package-inputs guile-ssh)))))) (define-public corkscrew (package diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index a87e665d2b..1d3d1d367f 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net> ;;; Copyright © 2016 Al McElrath <hello@yrns.org> -;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> +;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz> ;;; Copyright © 2015 Dmitry Bogatov <KAction@gnu.org> ;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> @@ -137,14 +137,14 @@ optimising the environment for the application in use and the task performed.") (define-public dmenu (package (name "dmenu") - (version "4.6") + (version "4.7") (source (origin (method url-fetch) (uri (string-append "http://dl.suckless.org/tools/dmenu-" version ".tar.gz")) (sha256 (base32 - "1cwnvamqqlgczvd5dv5rsgqbhv8kp0ddjnhmavb3q732i8028yja")))) + "1fgph549i0yw62x02jhfc8qmqk2rnzcnm46bxq6jig1cvkw3amm7")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests @@ -681,8 +681,8 @@ as -1, to be used instead of U+FFFD. ;; No release tarballs so far. (define-public lchat - (let ((revision "1") - (commit "bbde23732f8c7769b982f0c1bda9b99fbf93f932")) + (let ((revision "2") + (commit "25d90f4630b45e2b609d2e3daecb32cf5ff065fd")) (package (name "lchat") (version (string-append "0.0.0-" revision "." (string-take commit 7))) @@ -695,7 +695,7 @@ as -1, to be used instead of U+FFFD. (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "00q3rc0aa5416jvjvrj71x1wnr0331kxhvjjs7pyxgnq4xf36k63")))) + "0dvljyq3m7rxxkqv7rkmijak6vj8i4db3iq2z988bvf76chz268b")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No tests diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index adad55e2da..de888891c4 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -220,7 +220,7 @@ interfaces (GUIs) in the Tcl language.") ;; those of the orignal Tix4.1.3 or Tk8.4.* sources. See the files ;; pTk/license.terms, pTk/license.html_lib, and pTk/Tix.license for ;; details of this license." - (license (package-license perl)))) + (license perl-license))) (define-public tcllib (package diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 979278a53b..a8007586c9 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016, 2017 José Miguel Sánchez GarcÃa <jmi2k@openmailbox.org> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017 Petter <petter@mykolab.ch> ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,6 +32,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages) + #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) @@ -49,6 +51,7 @@ #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages docbook) + #:use-module (gnu packages qt) #:use-module (srfi srfi-26)) (define-public tilda @@ -433,3 +436,110 @@ its embedding program should provide it to draw on its behalf. It avoids calling @code{malloc} during normal running state, allowing it to be used in embedded kernel situations.") (license license:expat))) + +(define-public cool-retro-term + (let ((commit "e48719fa44e5307df71dbd0fad234f8a6a53f863") + (revision "1")) + (package + (name "cool-retro-term") + (version (string-append "1.0.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (file-name (string-append name "-" version "-checkout")) + (uri (git-reference + (url (string-append "https://github.com/Swordfish90/" name)) + (commit commit) + (recursive? #t))) + (sha256 + (base32 "1sgqbirninkvgwchr35zgn5vzqvsmrf3cp7lqady1xgrawb8lsz3")) + (patches + (search-patches "cool-retro-term-remove-non-free-fonts.patch" + "cool-retro-term-fix-array-size.patch" + "cool-retro-term-dont-check-uninit-member.patch" + "cool-retro-term-memory-leak-1.patch")) + (modules '((guix build utils))) + (snippet + '(for-each (lambda (font) + (delete-file-recursively + (string-append "app/qml/fonts/" font)) + (substitute* '("app/qml/resources.qrc") + (((string-append "<file>fonts/" font ".*")) + ""))) + '(;"1971-ibm-3278" ; BSD 3-clause + "1977-apple2" ; Non-Free + "1977-commodore-pet" ; Non-Free + "1979-atari-400-800" ; Non-Free + "1982-commodore64" ; Non-Free + "1985-atari-st" ; ? + "1985-ibm-pc-vga" ; Unclear + ;"modern-fixedsys-excelsior" ; Redistributable + ;"modern-hermit" ; SIL + ;"modern-inconsolata"; SIL + ;"modern-pro-font-win-tweaked" ; X11 + ;"modern-proggy-tiny"; X11 + ;"modern-terminus" ; SIL + "modern-monaco"))))) ; Apple non-free + (build-system gnu-build-system) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtgraphicaleffects" ,qtgraphicaleffects) + ("qtquickcontrols" ,qtquickcontrols))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share"))) + (substitute* '("qmltermwidget/qmltermwidget.pro") + (("INSTALL_DIR = \\$\\$\\[QT_INSTALL_QML\\]") + (string-append "INSTALL_DIR = " out "/qml"))) + (substitute* '("app/app.pro") + (("target.path \\+= /usr") + (string-append "target.path += " out)) + (("icon32.path = /usr/share") + (string-append "icon32.path = " share)) + (("icon64.path = /usr/share") + (string-append "icon64.path = " share)) + (("icon128.path = /usr/share") + (string-append "icon128.path = " share)) + (("icon256.path = /usr/share") + (string-append "icon256.path = " share))) + (zero? (system* "qmake"))))) + (add-before 'install 'fix-Makefiles + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (substitute* '("Makefile") + (("\\$\\(INSTALL_ROOT\\)/usr") out))))) + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (qml "/qml")) + (wrap-program (string-append out "/bin/cool-retro-term") + `("QML2_IMPORT_PATH" ":" prefix + (,(string-append out qml) + ,(string-append + (assoc-ref inputs "qtdeclarative") qml) + ,(string-append + (assoc-ref inputs "qtgraphicaleffects") qml) + ,(string-append + (assoc-ref inputs "qtquickcontrols") qml))))))) + (add-after 'install 'add-alternate-name + (lambda* (#:key outputs #:allow-other-keys) + (let* ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (symlink (string-append bin "/cool-retro-term") + (string-append bin "/crt")))))))) + (synopsis "Terminal emulator") + (description + "Cool-retro-term (crt) is a terminal emulator which mimics the look and +feel of the old cathode ray tube (CRT) screens. It has been designed to be +eye-candy, customizable, and reasonably lightweight.") + (home-page "https://github.com/Swordfish90/cool-retro-term") + (license (list + license:gpl2+ ; qmltermwidget + license:gpl3+ ; cool-retro-term + ;; Fonts + license:silofl1.1 + license:x11 + license:bsd-3))))) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 46c578f14b..7839e16b27 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -428,7 +428,7 @@ and processing BibTeX files. @code{Text::BibTeX} gives you access to the data at many different levels: you may work with BibTeX entries as simple field to string mappings, or get at the original form of the data as a list of simple values (strings, macros, or numbers) pasted together.") - (license (package-license perl)))) + (license license:perl-license))) (define-public biber (package diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 920868b52d..98df48119a 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Feng Shu <tumashu@163.com> +;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) + #:use-module (gnu packages assembly) #:use-module (gnu packages boost) #:use-module (gnu packages documentation) #:use-module (gnu packages gcc) @@ -189,3 +191,39 @@ development focuses on keeping weight down to a minimum, only the most essential features are implemented in the editor. Leafpad is simple to use, is easily compiled, requires few libraries, and starts up quickly. ") (license license:gpl2+))) + +(define-public e3 + (package + (name "e3") + (version "2.82") + (source (origin + (method url-fetch) + (uri (string-append "https://sites.google.com/site/e3editor/Home/" + "e3-" version ".tgz")) + (sha256 + (base32 + "0919kadkas020maqq37852isnzp053q2fnws2zh3mz81d1jiviak")) + (modules '((guix build utils))) + + ;; Remove pre-built binaries. + (snippet '(delete-file-recursively "bin")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:make-flags (list (string-append "PREFIX=" + (assoc-ref %outputs "out"))) + #:phases (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("nasm" ,nasm))) + (home-page "https://sites.google.com/site/e3editor/") + (synopsis "Tiny text editor written in assembly") + (description + "e3 is a micro text editor with an executable code size between 3800 and +35000 bytes. Except for ``syntax highlighting'', the e3 binary supports all +of the basic functions one expects plus built in arithmetic calculations. +UTF-8 coding of unicode characters is supported as well. e3 can use +Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings. e3 can be used on +16, 32, and 64-bit CPUs.") + (supported-systems '("x86_64-linux" "i686-linux")) + (license license:gpl2+))) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 50e9de4806..1516fb8527 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; @@ -431,7 +431,7 @@ required structures.") (define-public libressl (package (name "libressl") - (version "2.5.3") + (version "2.5.4") (source (origin (method url-fetch) @@ -440,7 +440,7 @@ required structures.") version ".tar.gz")) (sha256 (base32 - "0c4awq45cl757fv7f7f75i5i0ibc6v7ns13n7xvfak7chv2lrqql")))) + "1ykf6dqlbafafhbdfmcj19pjj1z6wmsq0rmyqga1i0xv5x95nyhh")))) (build-system gnu-build-system) (arguments ;; Do as if 'getentropy' was missing since older Linux kernels lack it @@ -458,7 +458,7 @@ required structures.") (search-path-specification (variable "SSL_CERT_FILE") (files '("etc/ssl/certs/ca-certificates.crt"))))) - (home-page "http://www.libressl.org/") + (home-page "https://www.libressl.org/") (synopsis "SSL/TLS implementation") (description "LibreSSL is a version of the TLS/crypto stack forked from OpenSSL in 2014, with the goals of modernizing the codebase, improving @@ -474,13 +474,13 @@ security, and applying best practice development processes.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.13.0") + (version "0.14.0") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) (sha256 (base32 - "05cqadwzgfcianw3v0qxwja65dxnzw429f7dk8w0mnh21pib72bl")))) + "0hrmh28rrc0fsiw6nqfwbkwb1s4nkl54x50c0g0xlnp86752nzff")))) (build-system python-build-system) (arguments @@ -540,7 +540,7 @@ security, and applying best practice development processes.") (uri (pypi-uri name version)) (sha256 (base32 - "1wq0khcf4ixda71cgfd9rkqqzx6j8hp8ha0cssvjzjnsgrsdffpn")))) + "0hbp3njss01a0d3brvcfzja0w0j9plwrv6l70jsfvnhy3rrd7bcq")))) (build-system python-build-system) (arguments `(#:python ,python-2 @@ -634,7 +634,7 @@ web pages on SSL servers (for symmetry, the same API is offered for accessing http servers, too), an sslcat() function for writing your own clients, and finally access to the SSL api of the SSLeay/OpenSSL package so you can write servers or clients for more complicated applications.") - (license (package-license perl)) + (license license:perl-license) (home-page "http://search.cpan.org/~mikem/Net-SSLeay-1.66/"))) (define-public perl-crypt-openssl-rsa @@ -663,7 +663,7 @@ servers or clients for more complicated applications.") "RSA encoding and decoding, using the openSSL libraries") (description "Crypt::OpenSSL::RSA does RSA encoding and decoding (using the OpenSSL libraries).") - (license (package-license perl)))) + (license license:perl-license))) (define perl-crypt-arguments `(#:phases (modify-phases %standard-phases @@ -699,7 +699,7 @@ OpenSSL libraries).") (description "Crypt::OpenSSL::Bignum provides multiprecision integer arithmetic in Perl.") ;; At your option either gpl1+ or the Artistic License - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-crypt-openssl-random (package @@ -724,7 +724,7 @@ arithmetic in Perl.") "OpenSSL/LibreSSL pseudo-random number generator access") (description "Crypt::OpenSSL::Random is a OpenSSL/LibreSSL pseudo-random number generator") - (license (package-license perl)))) + (license license:perl-license))) (define-public acme-client (package diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index a3a6e848fb..645e9a6573 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -34,6 +34,7 @@ (method url-fetch) (uri (string-append "https://miniupnp.tuxfamily.org/files/" name "-" version ".tar.gz")) + (patches (search-patches "miniupnpc-CVE-2017-8798.patch")) (sha256 (base32 "0n11m2wq812zms5b21h8ihw1kbyaihj9nqjiida0hskf4dmw4m13")))) (build-system gnu-build-system) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index e0770dc589..cd684c04e7 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> +;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -116,14 +117,14 @@ as well as the classic centralized workflow.") (define-public git (package (name "git") - (version "2.12.2") + (version "2.13.0") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0jlccxx7l4c76h830y8lhrxr4kqksrxqlnmj3xb8sqbfa0irw6nj")))) + "0n0j36rapw31zb0sabap88ffncv8jg3nwc4miyim64ilyav2mgsb")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -136,7 +137,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "0n4mgw5mbrr1hm0y7xgwixf9p6gy61m6qm67ldagpxxhwq2dmlby")))))) + "1jcp5bjam0cqzc41bvd3qwzv2f35zdajr8icxb89q29b5v3gj544")))))) (inputs `(("curl" ,curl) ("expat" ,expat) @@ -314,14 +315,14 @@ everything from small to very large projects with speed and efficiency.") (define-public git@2.10 (package (inherit git) - (version "2.10.2") + (version "2.10.3") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0wc64dzcxrzgi6kwcljz6y3cwm3ajdgf6aws7g58azbhvl1jk04l")))))) + "02mb7yi49algsya3hnkcxdslwb6p1bi7c732z1g8kzq4hs838m7z")))))) (define-public libgit2 (package @@ -628,7 +629,13 @@ also walk each side of a merge and test those changes individually.") ;; invokes Perl. (substitute* (find-files "." ".*") ((" perl -") - (string-append " " perl " -")))))) + (string-append " " perl " -"))) + + ;; Avoid references to the store in authorized_keys. + ;; This works because gitolite-shell is in the PATH. + (substitute* "src/triggers/post-compile/ssh-authkeys" + (("\\$glshell \\$user") + "gitolite-shell $user"))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((output (assoc-ref outputs "out")) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e3f9f3672d..dde4041449 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2017 Feng Shu <tumashu@163.com> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com> +;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -75,6 +76,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages m4) @@ -989,7 +991,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.04.28") + (version "2017.05.07") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -997,7 +999,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "0d3mgf8qxb07b7bjf79ppaxhcl4f47q0zjpshp6y2q0lalfskh3j")))) + "1q3b9xkbk1lmy1wxm1jcnmaj70sdksqbc8zsqxz6b6z4nmv8qc25")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -1193,6 +1195,33 @@ authentication and descrambling (if an external libdvdcss library is installed).") (license license:gpl2+))) +(define-public dvdauthor + (package + (name "dvdauthor") + (version "0.7.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/dvdauthor/dvdauthor-" + version ".tar.gz")) + (sha256 + (base32 + "1drfc47hikfzc9d7hjk34rw10iqw01d2vwmn91pv73ppx4nsj81h")))) + (build-system gnu-build-system) + (inputs + `(("libdvdread" ,libdvdread) + ("libpng" ,libpng) + ("imagemagick" ,imagemagick) + ("libxml2" ,libxml2) + ("freetype" ,freetype))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "Generates a DVD-Video movie from a MPEG-2 stream") + (description "@command{dvdauthor} will generate a DVD-Video movie from a +MPEG-2 stream containing VOB packets.") + (home-page "http://dvdauthor.sourceforge.net") + (license license:gpl3+))) + (define-public libdvdnav (package (name "libdvdnav") @@ -1605,7 +1634,7 @@ be used for realtime video capture via Linux-specific APIs.") (define-public obs (package (name "obs") - (version "18.0.1") + (version "18.0.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/jp9000/obs-studio" @@ -1613,7 +1642,7 @@ be used for realtime video capture via Linux-specific APIs.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "043f8mfdh4ll0hpivpyg3iniirckwsgri0gzamyrba1yhf2c2ibr")))) + "02pbiyvf5x0zh448h5rpmyn33qnsqk694xxlyns83mdi74savyqw")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no tests diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 44ae52202c..697c7dedc7 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -512,10 +512,82 @@ and powerline symbols, etc.") (home-page "https://github.com/vim-airline/vim-airline-themes") (license license:expat)))) +(define-public vim-syntastic + (package + (name "vim-syntastic") + (version "3.8.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/vim-syntastic/syntastic/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0wsnd9bsp5x6yiw96h1bnd1vyxdkh130hb82kyyxydgsplx92ima")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/vim/vimfiles")) + (doc (string-append vimfiles "/doc")) + (plugin (string-append vimfiles "/plugin")) + (autoload (string-append vimfiles "/autoload")) + (syntax-checkers (string-append vimfiles "/syntax_checkers"))) + (copy-recursively "doc" doc) + (copy-recursively "autoload" autoload) + (copy-recursively "plugin" plugin) + (copy-recursively "syntax_checkers" syntax-checkers) + #t)))))) + (synopsis "Syntax checking plugin for Vim") + (description + "Vim-syntastic is a syntax checking plugin for Vim. It runs files through +external syntax checkers and displays any resulting errors to the user. This +can be done on demand, or automatically as files are saved. If syntax errors +are detected, the user is notified.") + (home-page "https://github.com/vim-syntastic/syntastic") + (license license:wtfpl2))) + +(define-public neovim-syntastic + (package + (inherit vim-syntastic) + (name "neovim-syntastic") + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/nvim/site")) + (doc (string-append vimfiles "/doc")) + (plugin (string-append vimfiles "/plugin")) + (autoload (string-append vimfiles "/autoload")) + (syntax-checkers (string-append vimfiles "/syntax_checkers"))) + (copy-recursively "doc" doc) + (copy-recursively "autoload" autoload) + (copy-recursively "plugin" plugin) + (copy-recursively "syntax_checkers" syntax-checkers) + #t)))))) + (synopsis "Syntax checking plugin for Neovim") + (description + "Vim-syntastic is a syntax checking plugin for Neovim. It runs files through +external syntax checkers and displays any resulting errors to the user. This +can be done on demand, or automatically as files are saved. If syntax errors +are detected, the user is notified."))) + (define-public neovim (package (name "neovim") - (version "0.1.7") + (version "0.2.0") (source (origin (method url-fetch) @@ -524,7 +596,7 @@ and powerline symbols, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0zjbpc4rhv5bcr353xqnbrc36zjvn7qvh8xf6s7n1bdi3788by6q")))) + "1db27zm6cldm1aw0570vii1bxc16a34x8lissl1h9rizsbwn7qkj")))) (build-system cmake-build-system) (arguments `(#:modules ((srfi srfi-26) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index efb46f73d4..98d8bd115d 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -153,7 +153,7 @@ and probably others.") (define-public openvpn (package (name "openvpn") - (version "2.4.0") + (version "2.4.2") (source (origin (method url-fetch) (uri (string-append @@ -161,7 +161,7 @@ and probably others.") version ".tar.xz")) (sha256 (base32 - "0zpqnbhjaifdalyxwmvk5kcyd7cpxbcigbn7967nbsyvl54vl8vg")))) + "1ydzy5i7yaifz0v1ivrckksvm0nkkx5sia3g5y5b1xkx9cw4yp6z")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-iproute2=yes"))) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 3ff69611bf..a10b1367ef 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -1,5 +1,9 @@ ;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 John Darrington <jmd@gnu.org> +;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,15 +25,24 @@ #:use-module (guix packages) #:use-module (gnu packages) #:use-module (gnu packages compression) + #:use-module (gnu packages documentation) #:use-module (gnu packages fltk) #:use-module (gnu packages fontutils) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages libevent) + #:use-module (gnu packages libidn) + #: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 qt) #: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 gnu) + #:use-module (guix build-system python)) (define-public dillo (package @@ -61,3 +74,172 @@ older or slower computers and embedded systems.") (home-page "http://www.dillo.org") (license license:gpl3+))) + +(define-public links + (package + (name "links") + (version "2.14") + (source (origin + (method url-fetch) + (uri (string-append "http://links.twibright.com/download/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "1f24y83wa1vzzjq5kp857gjqdpnmf8pb29yw7fam0m8wxxw0c3gp")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; The tarball uses a very old version of autconf. It doesn't + ;; understand extra flags like `--enable-fast-install', so + ;; we need to invoke it with just what it understands. + (let ((out (assoc-ref outputs "out"))) + ;; 'configure' doesn't understand '--host'. + ,@(if (%current-target-system) + `((setenv "CHOST" ,(%current-target-system))) + '()) + (setenv "CONFIG_SHELL" (which "bash")) + (zero? + (system* "./configure" + (string-append "--prefix=" out) + "--enable-graphics")))))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("zlib" ,zlib) + ("openssl" ,openssl) + ("libjpeg" ,libjpeg) + ("libtiff" ,libtiff) + ("libevent" ,libevent) + ("libpng" ,libpng) + ("libxt" ,libxt))) + (synopsis "Text and graphics mode web browser") + (description "Links is a graphics and text mode web browser, with many +features including, tables, builtin image display, bookmarks, SSL and more.") + (home-page "http://links.twibright.com") + ;; The distribution contains a copy of GPLv2 + ;; However, the copyright notices simply say: + ;; "This file is a part of the Links program, released under GPL." + ;; Therefore, under the provisions of Section 9, we can choose + ;; any version ever published by the FSF. + ;; One file (https.c) contains an exception permitting + ;; linking of the program with openssl. + (license license:gpl1+))) + +(define-public lynx + (package + (name "lynx") + (version "2.8.9dev.11") + (source (origin + (method url-fetch) + (uri (string-append + "http://invisible-mirror.net/archives/lynx/tarballs" + "/lynx" version ".tar.bz2")) + (sha256 + (base32 + "1cqm1i7d209brkrpzaqqf2x951ra3l67dw8x9yg10vz7rpr9441a")))) + (build-system gnu-build-system) + (native-inputs `(("pkg-config" ,pkg-config) + ("perl" ,perl))) + (inputs `(("ncurses" ,ncurses) + ("libidn" ,libidn) + ("gnutls" ,gnutls) + ("libgcrypt" ,libgcrypt) + ("unzip" ,unzip) + ("zlib" ,zlib) + ("gzip" ,gzip) + ("bzip2" ,bzip2))) + (arguments + `(#:configure-flags + (let ((gnutls (assoc-ref %build-inputs "gnutls"))) + `("--with-pkg-config" + "--with-screen=ncurses" + "--with-zlib" + "--with-bzlib" + ,(string-append "--with-gnutls=" gnutls) + ;; "--with-socks5" ; XXX TODO + "--enable-widec" + "--enable-ascii-ctypes" + "--enable-local-docs" + "--enable-htmlized-cfg" + "--enable-gzip-help" + "--enable-nls" + "--enable-ipv6")) + #:tests? #f ; no check target + #:phases (alist-replace + 'install + (lambda* (#:key (make-flags '()) #:allow-other-keys) + (zero? (apply system* "make" "install-full" make-flags))) + %standard-phases))) + (synopsis "Text Web Browser") + (description + "Lynx is a fully-featured World Wide Web (WWW) client for users running +cursor-addressable, character-cell display devices. It will display Hypertext +Markup Language (HTML) documents containing links to files on the local +system, as well as files on remote systems running http, gopher, ftp, wais, +nntp, finger, or cso/ph/qi servers. Lynx can be used to access information on +the WWW, or to build information systems intended primarily for local +access.") + (home-page "http://lynx.isc.org/") + (license license:gpl2))) + +(define-public qutebrowser + (package + (name "qutebrowser") + (version "0.10.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/The-Compiler/" + "qutebrowser/releases/download/v" version "/" + "qutebrowser-" version ".tar.gz")) + (sha256 + (base32 + "05qryn56w2pbqhir4pl99idx7apx2xqw9f8wmbrhj59b1xgr3x2p")))) + (build-system python-build-system) + (native-inputs + `(("asciidoc" ,asciidoc))) + (inputs + `(("python-colorama" ,python-colorama) + ("python-cssutils" ,python-cssutils) + ("python-jinja2" ,python-jinja2) + ("python-markupsafe" ,python-markupsafe) + ("python-pygments" ,python-pygments) + ("python-pypeg2" ,python-pypeg2) + ("python-pyyaml" ,python-pyyaml) + ("python-pyqt" ,python-pyqt) + ("qtwebkit" ,qtwebkit))) + (arguments + `(#:tests? #f ;no tests + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-more + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (app (string-append out "/share/applications")) + (hicolor (string-append out "/share/icons/hicolor"))) + (system* "a2x" "-f" "manpage" "doc/qutebrowser.1.asciidoc") + (install-file "doc/qutebrowser.1" + (string-append out "/share/man/man1")) + + (for-each + (lambda (i) + (let ((src (format #f "icons/qutebrowser-~dx~d.png" i i)) + (dest (format #f "~a/~dx~d/apps/qutebrowser.png" + hicolor i i))) + (mkdir-p (dirname dest)) + (copy-file src dest))) + '(16 24 32 48 64 128 256 512)) + (install-file "icons/qutebrowser.svg" + (string-append hicolor "/scalable/apps")) + + (substitute* "qutebrowser.desktop" + (("Exec=qutebrowser") + (string-append "Exec=" out "/bin/qutebrowser"))) + (install-file "qutebrowser.desktop" app) + #t)))))) + (home-page "https://qutebrowser.org/") + (synopsis "Minimal, keyboard-focused, vim-like web browser") + (description "qutebrowser is a keyboard-focused browser with a minimal +GUI. It is based on PyQt5 and QtWebKit.") + (license license:gpl3+))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 487366b4a5..efaa1b5742 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -80,7 +80,6 @@ #:use-module (gnu packages python) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages qt) #:use-module (gnu packages valgrind) #:use-module (gnu packages xml) #:use-module (gnu packages curl) @@ -301,7 +300,7 @@ servers that may need it).") (description "Starman is a PSGI perl web server that has unique features such as high performance, preforking, signal support, superdaemon awareness, and UNIX socket support.") - (license (package-license perl)))) + (license l:perl-license))) (define-public jansson (package @@ -830,7 +829,10 @@ from streaming URLs. It is a command-line wrapper for the libquvi library.") ;;("gss" ,gss) ("zlib" ,zlib))) (arguments - `(#:phases + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases ;; TODO: Add scons-build-system and use it here. (modify-phases %standard-phases (delete 'configure) @@ -979,7 +981,7 @@ language known as SASS.") (synopsis "Compile a log format string to perl-code") (description "This module provides methods to compile a log format string to perl-code, for faster generation of access_log lines.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-authen-sasl (package @@ -1000,7 +1002,7 @@ to perl-code, for faster generation of access_log lines.") (home-page "http://search.cpan.org/dist/Authen-SASL") (synopsis "SASL authentication framework") (description "Authen::SASL provides an SASL authentication framework.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-action-renderview (package @@ -1026,7 +1028,7 @@ to perl-code, for faster generation of access_log lines.") (synopsis "Sensible default Catalyst action") (description "This Catalyst action implements a sensible default end action, which will forward to the first available view.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-action-rest (package @@ -1061,7 +1063,7 @@ REST requests. It takes a normal Catalyst action, and changes the dispatch to append an underscore and method name. First it will try dispatching to an action with the generated name, and failing that it will try to dispatch to a regular method.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-authentication-store-dbix-class (package @@ -1096,7 +1098,7 @@ regular method.") (description "The Catalyst::Authentication::Store::DBIx::Class class provides access to authentication information stored in a database via DBIx::Class.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-component-instancepercontext (package @@ -1120,7 +1122,7 @@ DBIx::Class.") (synopsis "Create only one instance of Moose component per context") (description "Catalyst::Component::InstancePerContext returns a new instance of a component on each request.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-devel (package @@ -1162,7 +1164,7 @@ to run them. Catalyst-Devel includes the Catalyst::Helper system, which autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install extension for Catalyst; and requirements for a variety of development-related modules.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-dispatchtype-regex (package @@ -1192,7 +1194,7 @@ core. It is recommend that you use Chained methods or other techniques instead. As part of the refactoring, the dispatch priority of Regex vs Regexp vs LocalRegex vs LocalRegexp may have changed. Priority is now influenced by when the dispatch type is first seen in your application.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-model-dbic-schema (package @@ -1237,7 +1239,7 @@ when the dispatch type is first seen in your application.") (synopsis "DBIx::Class::Schema Model Class") (description "This is a Catalyst Model for DBIx::Class::Schema-based Models.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-accesslog (package @@ -1262,7 +1264,7 @@ Models.") (description "This Catalyst plugin enables you to create \"access logs\" from within a Catalyst application instead of requiring a webserver to do it for you. It will work even with Catalyst debug logging turned off.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-authentication (package @@ -1296,7 +1298,7 @@ for you. It will work even with Catalyst debug logging turned off.") Catalyst apps. It is the basis for both authentication (checking the user is who they claim to be), and authorization (allowing the user to do what the system authorises them to do).") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-authorization-roles (package @@ -1325,7 +1327,7 @@ system authorises them to do).") (synopsis "Role-based authorization for Catalyst") (description "Catalyst::Plugin::Authorization::Roles provides role-based authorization for Catalyst based on Catalyst::Plugin::Authentication.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-captcha (package @@ -1349,7 +1351,7 @@ authorization for Catalyst based on Catalyst::Plugin::Authentication.") (synopsis "Captchas for Catalyst") (description "This plugin creates and validates Captcha images for Catalyst.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-configloader (package @@ -1377,7 +1379,7 @@ Catalyst.") (description "This module will attempt to load find and load configuration files of various types. Currently it supports YAML, JSON, XML, INI and Perl formats.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-session (package @@ -1408,7 +1410,7 @@ formats.") (synopsis "Catalyst generic session plugin") (description "This plugin links the two pieces required for session management in web applications together: the state, and the store.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-session-state-cookie (package @@ -1437,7 +1439,7 @@ management in web applications together: the state, and the store.") ID needs to be stored on the client, and the session data needs to be stored on the server. This plugin stores the session ID on the client using the cookie mechanism.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-session-store-fastmmap (package @@ -1467,7 +1469,7 @@ cookie mechanism.") (description "Catalyst::Plugin::Session::Store::FastMmap is a fast session storage plugin for Catalyst that uses an mmap'ed file to act as a shared memory interprocess cache. It is based on Cache::FastMmap.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-stacktrace (package @@ -1492,7 +1494,7 @@ memory interprocess cache. It is based on Cache::FastMmap.") including a stack trace of your application up to the point where the error occurred. Each stack frame is displayed along with the package name, line number, file name, and code context surrounding the line number.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-plugin-static-simple (package @@ -1522,7 +1524,7 @@ looking at the file extension in the URL (such as .css or .png or .js). The plugin uses the lightweight MIME::Types module to map file extensions to IANA-registered MIME types, and will serve your static files with the correct MIME type directly to the browser, without being processed through Catalyst.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-runtime (package @@ -1587,7 +1589,7 @@ MIME type directly to the browser, without being processed through Catalyst.") It is designed to make it easy to manage the various tasks you need to do to run an application on the web, either by doing them itself, or by letting you \"plug in\" existing Perl modules that do what you need.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-traitfor-request-proxybase (package @@ -1618,7 +1620,7 @@ run an application on the web, either by doing them itself, or by letting you flexibility in your application's deployment configurations when deployed behind a proxy. Using this module, the request base ($c->req->base) is replaced with the contents of the X-Request-Base header.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-view-download (package @@ -1644,7 +1646,7 @@ replaced with the contents of the X-Request-Base header.") (description "The purpose of this module is to provide a method for downloading data into many supportable formats. For example, downloading a table based report in a variety of formats (CSV, HTML, etc.).") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-view-json (package @@ -1669,7 +1671,7 @@ table based report in a variety of formats (CSV, HTML, etc.).") (synopsis "Catalyst JSON view") (description "Catalyst::View::JSON is a Catalyst View handler that returns stash data in JSON format.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalyst-view-tt (package @@ -1696,7 +1698,7 @@ stash data in JSON format.") (synopsis "Template View Class") (description "This module is a Catalyst view class for the Template Toolkit.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalystx-component-traits (package @@ -1729,7 +1731,7 @@ Catalyst component base class that reads the optional \"traits\" parameter from app and component config and instantiates the component subclass with those traits using \"new_with_traits\" in MooseX::Traits from MooseX::Traits::Pluggable.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalystx-roleapplicator (package @@ -1752,7 +1754,7 @@ MooseX::Traits::Pluggable.") (synopsis "Apply roles to Catalyst classes") (description "CatalystX::RoleApplicator applies roles to Catalyst application classes.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-catalystx-script-server-starman (package @@ -1779,7 +1781,7 @@ application classes.") (synopsis "Catalyst development server with Starman") (description "This module provides a Catalyst extension to replace the development server with Starman.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-cgi (package @@ -1807,7 +1809,7 @@ processing and preparing HTTP requests and responses. Major features include processing form submissions, file uploads, reading and writing cookies, query string generation and manipulation, and processing and preparing HTTP headers.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-cgi-simple (package @@ -1830,7 +1832,7 @@ headers.") (description "CGI::Simple provides a relatively lightweight drop in replacement for CGI.pm. It shares an identical OO interface to CGI.pm for parameter parsing, file upload, cookie handling and header generation.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-cgi-struct (package @@ -1875,7 +1877,7 @@ inputs, in a manner reminiscent of how PHP does.") (synopsis "Date conversion routines") (description "This module provides functions that deal with the date formats used by the HTTP protocol.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-digest-md5-file (package @@ -1896,7 +1898,7 @@ formats used by the HTTP protocol.") (synopsis "MD5 sums for files and urls") (description "Digest::MD5::File is a Perl extension for getting MD5 sums for files and urls.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-encode-locale (package @@ -1911,7 +1913,7 @@ for files and urls.") (base32 "1h8fvcdg3n20c2yp7107yhdkkx78534s9hnvn7ps8hpmf4ks0vqp")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl locale encoding determination") (description "The POSIX locale system is used to specify both the language @@ -1949,7 +1951,7 @@ with Encode::decode(locale => $string).") (description "@code{Feed::Find} implements feed auto-discovery for finding syndication feeds, given a URI. It will discover the following feed formats: RSS 0.91, RSS 1.0, RSS 2.0, Atom.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-file-listing (package @@ -1966,7 +1968,7 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom.") (build-system perl-build-system) (propagated-inputs `(("perl-http-date" ,perl-http-date))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl directory listing parser") (description "The File::Listing module exports a single function called parse_dir(), @@ -2028,7 +2030,7 @@ Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.") (synopsis "Perl extension providing access to the GSSAPIv2 library") (description "This is a Perl extension for using GSSAPI C bindings as described in RFC 2744.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-html-element-extended (package @@ -2050,7 +2052,7 @@ described in RFC 2744.") (description "HTML::Element::Extended is a Perl extension for manipulating a table composed of HTML::Element style components.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-html-form (package @@ -2075,7 +2077,7 @@ composed of HTML::Element style components.") (synopsis "Perl class representing an HTML form element") (description "Objects of the HTML::Form class represents a single HTML <form> ... </form> instance.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-html-lint (package @@ -2121,7 +2123,7 @@ syntactic legitmacy.") (description "HTML::TableExtract is a Perl module for extracting the content contained in tables within an HTML document, either as text or encoded element trees.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-html-tree (package @@ -2147,7 +2149,7 @@ in tables within an HTML document, either as text or encoded element trees.") (synopsis "Work with HTML in a DOM-like tree structure") (description "This distribution contains a suite of modules for representing, creating, and extracting information from HTML syntax trees.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-html-parser (package @@ -2165,7 +2167,7 @@ representing, creating, and extracting information from HTML syntax trees.") (inputs `(("perl-html-tagset" ,perl-html-tagset) ("perl-http-message" ,perl-http-message))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl HTML parser class") (description "Objects of the HTML::Parser class will recognize markup and separate @@ -2187,7 +2189,7 @@ are invoked.") (base32 "1qh8249wgr4v9vgghq77zh1d2zs176bir223a8gh3k9nksn7vcdd")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl data tables useful in parsing HTML") (description "The HTML::Tagset module contains several data tables useful in various @@ -2218,7 +2220,7 @@ It extends standard HTML with a few new HTML-esque tags: @code{<TMPL_VAR>}, these new tags is called a template. Using this module you fill in the values for the variables, loops and branches declared in the template. This allows you to separate design from the data.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-body (package @@ -2243,7 +2245,7 @@ you to separate design from the data.") (description "HTTP::Body parses chunks of HTTP POST data and supports application/octet-stream, application/json, application/x-www-form-urlencoded, and multipart/form-data.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-cookiejar (package @@ -2287,7 +2289,7 @@ jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.") (build-system perl-build-system) (propagated-inputs `(("perl-http-message" ,perl-http-message))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl HTTP cookie jars") (description "The HTTP::Cookies class is for objects that represent a cookie jar, @@ -2311,7 +2313,7 @@ object knows about.") (propagated-inputs `(("perl-http-message" ,perl-http-message) ("perl-lwp-mediatypes" ,perl-lwp-mediatypes))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl simple http server class") (description "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen @@ -2332,7 +2334,7 @@ IO::Socket::INET, so you can perform socket operations directly on it too.") (base32 "0cz357kafhhzw7w59iyi0wvhw7rlh5g1lh38230ckw7rl0fr9fg8")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl date conversion routines") (description "The HTTP::Date module provides functions that deal with date formats @@ -2358,7 +2360,7 @@ used by the HTTP protocol (and then some more).") ("perl-io-html" ,perl-io-html) ("perl-lwp-mediatypes" ,perl-lwp-mediatypes) ("perl-uri" ,perl-uri))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl HTTP style message") (description "An HTTP::Message object contains some headers and a content body.") @@ -2379,7 +2381,7 @@ used by the HTTP protocol (and then some more).") (build-system perl-build-system) (propagated-inputs `(("perl-http-message" ,perl-http-message))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl http content negotiation") (description "The HTTP::Negotiate module provides a complete implementation of the @@ -2412,7 +2414,7 @@ fields in the request.") received and returns a 'hint' as to what is required, or returns the HTTP::Request when a complete request has been read. HTTP/1.1 chunking is supported.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-parser-xs (package @@ -2431,7 +2433,7 @@ supported.") (synopsis "Fast HTTP request parser") (description "HTTP::Parser::XS is a fast, primitive HTTP request/response parser.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-request-ascgi (package @@ -2453,7 +2455,7 @@ parser.") (synopsis "Set up a CGI environment from an HTTP::Request") (description "This module provides a convenient way to set up a CGI environment from an HTTP::Request.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-server-simple (package @@ -2479,7 +2481,7 @@ environment from an HTTP::Request.") (description "HTTP::Server::Simple is a simple standalone HTTP daemon with no non-core module dependencies. It can be used for building a standalone http-based UI to your existing tools.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-http-tiny (package @@ -2505,7 +2507,7 @@ http-based UI to your existing tools.") (description "This is a very simple HTTP/1.1 client, designed for doing simple requests without the overhead of a large framework like LWP::UserAgent. It supports proxies and redirection. It also correctly resumes after EINTR.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-io-html (package @@ -2520,7 +2522,7 @@ It supports proxies and redirection. It also correctly resumes after EINTR.") (base32 "06nj3a0xgp5jxwxx6ayglfk2v7npf5a7gwkqsjlkapjkybarzqh4")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl module to open an HTML file with automatic charset detection") (description "IO::HTML provides an easy way to open a file containing HTML while @@ -2546,7 +2548,7 @@ algorithm specified in section 8.2.2.1 of the draft standard.") (synopsis "Family-neutral IP socket supporting both IPv4 and IPv6") (description "This module provides a protocol-independent way to use IPv4 and IPv6 sockets, intended as a replacement for IO::Socket::INET.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-io-socket-ssl (package @@ -2573,7 +2575,7 @@ necessary functionality into the familiar IO::Socket interface and providing secure defaults whenever possible. This way existing applications can be made SSL-aware without much effort, at least if you do blocking I/O and don't use select or poll.") - (license (package-license perl)) + (license l:perl-license) (home-page "https://github.com/noxxi/p5-io-socket-ssl"))) (define-public perl-libwww @@ -2601,7 +2603,7 @@ select or poll.") ("perl-net-http" ,perl-net-http) ("perl-uri" ,perl-uri) ("perl-www-robotrules" ,perl-www-robotrules))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl modules for the WWW") (description "The libwww-perl collection is a set of Perl modules which provides a @@ -2625,7 +2627,7 @@ help you implement simple HTTP servers.") (base32 "0xmnblp962qy02akah30sji8bxrqcyqlff2w95l199ghql60ny8q")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl module to guess the media type for a file or a URL") (description "The LWP::MediaTypes module provides functions for handling media (also @@ -2657,7 +2659,7 @@ exists it is used instead.") (synopsis "HTTPS support for LWP::UserAgent") (description "The LWP::Protocol::https module provides support for using https schemed URLs with LWP.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-lwp-useragent-determined (package @@ -2680,7 +2682,7 @@ https schemed URLs with LWP.") except that when you use it to get a web page but run into a possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds and retry a few times.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-net-amazon-s3 (package @@ -2723,7 +2725,7 @@ and retry a few times.") (home-page "http://search.cpan.org/dist/Net-Amazon-S3") (synopsis "Perl interface to Amazon S3") (description "This module provides a Perlish interface to Amazon S3.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-net-http (package @@ -2741,7 +2743,7 @@ and retry a few times.") (propagated-inputs `(("perl-io-socket-ssl" ,perl-io-socket-ssl) ("perl-uri" ,perl-uri))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl low-level HTTP connection (client)") (description "The Net::HTTP class is a low-level HTTP client. An instance of the @@ -2775,7 +2777,7 @@ children (Net::Server::PreForkSimple), or as a managed preforking server which maintains the number of children based on server load (Net::Server::PreFork). In all but the inetd type, the server provides the ability to connect to one or to multiple server ports.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-net-smtp-ssl (package @@ -2795,7 +2797,7 @@ or to multiple server ports.") (home-page "http://search.cpan.org/dist/Net-SMTP-SSL") (synopsis "SSL support for Net::SMTP") (description "SSL support for Net::SMTP.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack (package @@ -2833,7 +2835,7 @@ or to multiple server ports.") contains middleware components, a reference server, and utilities for Web application frameworks. Plack is like Ruby's Rack or Python's Paste for WSGI.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack-middleware-fixmissingbodyinredirect (package @@ -2858,7 +2860,7 @@ WSGI.") (synopsis "Plack::Middleware which sets body for redirect response") (description "This module sets the body in redirect response, if it's not already set.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack-middleware-methodoverride (package @@ -2884,7 +2886,7 @@ already set.") something else: by adding either a header named X-HTTP-Method-Override to the request, or a query parameter named x-tunneled-method to the URI, the client can say what method it actually meant.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack-middleware-removeredundantbody (package @@ -2907,7 +2909,7 @@ can say what method it actually meant.") (synopsis "Plack::Middleware which removes body for HTTP response") (description "This module removes the body in an HTTP response if it's not required.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack-middleware-reverseproxy (package @@ -2930,7 +2932,7 @@ required.") (description "Plack::Middleware::ReverseProxy resets some HTTP headers, which are changed by reverse-proxy. You can specify the reverse proxy address and stop fake requests using 'enable_if' directive in your app.psgi.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-plack-test-externalserver (package @@ -2952,7 +2954,7 @@ and stop fake requests using 'enable_if' directive in your app.psgi.") (description "This module allows your to run your Plack::Test tests against an external server instead of just against a local application through either mocked HTTP or a locally spawned server.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-test-tcp (package @@ -2973,7 +2975,7 @@ either mocked HTTP or a locally spawned server.") (home-page "http://search.cpan.org/dist/Test-TCP") (synopsis "Testing TCP programs") (description "Test::TCP is test utilities for TCP/IP programs.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-test-www-mechanize (package @@ -3038,7 +3040,7 @@ WWW::Mechanize that incorporates features for web application testing.") (description "The Test::WWW::Mechanize::Catalyst module meshes the Test::WWW:Mechanize module and the Catalyst web application framework to allow testing of Catalyst applications without needing to start up a web server.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-test-www-mechanize-psgi (package @@ -3065,7 +3067,7 @@ from web application framework code. Test::WWW::Mechanize is a subclass of WWW::Mechanize that incorporates features for web application testing. The Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI applications.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-uri (package @@ -3079,7 +3081,7 @@ applications.") (base32 "05a1ck1bhvqkkk690xhsxf7276dnagk96qkh2jy4prrrgw6wm3lw")))) (build-system perl-build-system) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl Uniform Resource Identifiers (absolute and relative)") (description "The URI module implements the URI class. Objects of this class @@ -3110,7 +3112,7 @@ and updated by RFC 2732.") (description "@code{URI::Fetch} is a smart client for fetching HTTP pages, notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth- and time-saving way.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-uri-find (package @@ -3135,7 +3137,7 @@ and time-saving way.") considers a URI) in plain text. It only finds URIs which include a scheme (http:// or the like), for something a bit less strict, consider URI::Find::Schemeless. For a command-line interface, urifind is provided.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-uri-ws (package @@ -3156,7 +3158,7 @@ URI::Find::Schemeless. For a command-line interface, urifind is provided.") (synopsis "WebSocket support for URI package") (description "With this module, the URI package provides the same set of methods for WebSocket URIs as it does for HTTP URIs.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-uri-template (package @@ -3180,7 +3182,7 @@ methods for WebSocket URIs as it does for HTTP URIs.") (synopsis "Object for handling URI templates") (description "This perl module provides a wrapper around URI templates as described in RFC 6570.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-www-curl (package @@ -3203,7 +3205,7 @@ RFC 6570.") (description "This is a Perl extension interface for the libcurl file downloading library.") - (license (package-license perl)) + (license l:perl-license) (home-page "http://search.cpan.org/~szbalint/WWW-Curl-4.17/lib/WWW/Curl.pm"))) (define-public perl-www-mechanize @@ -3233,7 +3235,7 @@ library.") (synopsis "Web browsing in a Perl object") (description "WWW::Mechanize is a Perl module for stateful programmatic web browsing, used for automating interaction with websites.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-www-opensearch (package @@ -3261,7 +3263,7 @@ web browsing, used for automating interaction with websites.") (description "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch, http://opensearch.a9.com} compatible search engines.") - (license (package-license perl)))) + (license l:perl-license))) (define-public perl-www-robotrules (package @@ -3278,7 +3280,7 @@ http://opensearch.a9.com} compatible search engines.") (build-system perl-build-system) (propagated-inputs `(("perl-uri" ,perl-uri))) - (license (package-license perl)) + (license l:perl-license) (synopsis "Perl database of robots.txt-derived permissions") (description "The WWW::RobotRules module parses /robots.txt files as specified in @@ -4493,63 +4495,60 @@ Features include the ability to stop SQL injections, XSS and CSRF attacks and exploit attempts.") (license l:gpl2))) -(define-public qutebrowser +(define-public python-httpbin (package - (name "qutebrowser") - (version "0.10.1") + (name "python-httpbin") + (version "0.5.0") (source (origin (method url-fetch) - (uri (string-append "https://github.com/The-Compiler/" - "qutebrowser/releases/download/v" version "/" - "qutebrowser-" version ".tar.gz")) + (uri (pypi-uri "httpbin" version)) (sha256 (base32 - "05qryn56w2pbqhir4pl99idx7apx2xqw9f8wmbrhj59b1xgr3x2p")))) + "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr")))) (build-system python-build-system) - (native-inputs - `(("asciidoc" ,asciidoc))) - (inputs - `(("python-colorama" ,python-colorama) - ("python-cssutils" ,python-cssutils) - ("python-jinja2" ,python-jinja2) + (propagated-inputs + `(("python-decorator" ,python-decorator) + ("python-flask" ,python-flask) + ("python-itsdangerous" ,python-itsdangerous) ("python-markupsafe" ,python-markupsafe) - ("python-pygments" ,python-pygments) - ("python-pypeg2" ,python-pypeg2) - ("python-pyyaml" ,python-pyyaml) - ("python-pyqt" ,python-pyqt) - ("qtwebkit" ,qtwebkit))) - (arguments - `(#:tests? #f ;no tests - #:phases - (modify-phases %standard-phases - (add-after 'install 'install-more - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (app (string-append out "/share/applications")) - (hicolor (string-append out "/share/icons/hicolor"))) - (system* "a2x" "-f" "manpage" "doc/qutebrowser.1.asciidoc") - (install-file "doc/qutebrowser.1" - (string-append out "/share/man/man1")) + ("python-six" ,python-six))) + (home-page "https://github.com/Runscope/httpbin") + (synopsis "HTTP request and response service") + (description "Testing an HTTP Library can become difficult sometimes. +@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the +response. This exists to cover all kinds of HTTP scenarios. All endpoint responses are +JSON-encoded.") + (license l:isc))) - (for-each - (lambda (i) - (let ((src (format #f "icons/qutebrowser-~dx~d.png" i i)) - (dest (format #f "~a/~dx~d/apps/qutebrowser.png" - hicolor i i))) - (mkdir-p (dirname dest)) - (copy-file src dest))) - '(16 24 32 48 64 128 256 512)) - (install-file "icons/qutebrowser.svg" - (string-append hicolor "/scalable/apps")) - - (substitute* "qutebrowser.desktop" - (("Exec=qutebrowser") - (string-append "Exec=" out "/bin/qutebrowser"))) - (install-file "qutebrowser.desktop" app) - #t)))))) - (home-page "https://qutebrowser.org/") - (synopsis "Minimal, keyboard-focused, vim-like web browser") - (description "qutebrowser is a keyboard-focused browser with a minimal -GUI. It is based on PyQt5 and QtWebKit.") - (license l:gpl3+))) +(define-public python2-httpbin + (package-with-python2 python-httpbin)) + +(define-public python-pytest-httpbin + (package + (name "python-pytest-httpbin") + (version "0.2.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-httpbin" version)) + (sha256 + (base32 + "1y0v2v7xpzpyd4djwp7ad8ifnlxp8r1y6dfbxg5ckzvllkgridn5")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-httpbin" ,python-httpbin) + ("python-pytest" ,python-pytest))) + (home-page + "https://github.com/kevin1024/pytest-httpbin") + (synopsis + "Test your HTTP library against a local copy of httpbin") + (description + "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected +into your tests. It automatically starts up a HTTP server in a separate thread running +@code{httpbin} and provides your test with the URL in the fixture.") + (license l:expat))) + +(define-public python2-pytest-httpbin + (package-with-python2 python-pytest-httpbin)) diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index de431d0a02..e343f40cab 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -53,14 +53,14 @@ (define-public webkitgtk (package (name "webkitgtk") - (version "2.16.1") + (version "2.16.2") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "0i99kmv4dvb9m2sd36kig4j6d59pxmq47ih3nxayd31j68r3i4pb")))) + "0lpj14cfr8p0ys6z1ych0zcwxbc86asvgs7v3qa72azb0ai8kxjy")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no tests diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index d758f264a1..3cf74c4ca8 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -243,7 +243,7 @@ developers.") based IPC interface it provides (if enabled in the configuration file). You can then subscribe to events or send messages and receive their replies.") ;; Can be used with either license. - (license (list license:gpl3+ (package-license perl))))) + (license (list license:gpl3+ license:perl-license)))) (define-public python-i3-py (package diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 077195cca7..5610a0f3b2 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -4,6 +4,8 @@ ;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.org> ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> +;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +29,7 @@ #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system python) #:use-module (guix build utils) + #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages databases) @@ -34,6 +37,8 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages photo) + #:use-module (gnu packages video) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages sdl) @@ -70,12 +75,16 @@ (native-inputs `(("pkg-config" ,pkg-config))) (arguments - '(#:configure-flags + `(#:configure-flags '("--with-regex" "--with-libmspack" "--with-sdl" "--enable-webview" "--enable-webkit" - "--enable-webviewwebkit") + "--enable-webviewwebkit" + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--build=aarch64-unknown-linux-gnu") + '())) #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) @@ -97,6 +106,27 @@ and many other languages.") (package-inputs wxwidgets)))) (name "wxwidgets-gtk2"))) +;; Development version of wxWidgets, required to build against gstreamer-1.x. +;; This can be removed when wxWidgets is updated to the next stable version. +(define-public wxwidgets-3.1 + (package (inherit wxwidgets) + (version "3.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/wxWidgets/wxWidgets/archive/v" + version ".tar.gz")) + (file-name (string-append "wxwidgets-" version ".tar.gz")) + (sha256 + (base32 "1yan5ysjwh6a7xw82sfjd1xn0nsy1dn2s0cx9ac7cw19191blc3y")))) + (inputs `(("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ,@(package-inputs wxwidgets))) + (arguments + (substitute-keyword-arguments (package-arguments wxwidgets) + ((#:configure-flags flags) + `(cons "--enable-mediactrl" ,flags)))))) + (define-public python2-wxpython (package (name "python2-wxpython") @@ -167,3 +197,33 @@ and many other languages.") (description "@code{wxpython} provides Python 2 bindings for wxWidgets.") (home-page "http://wxpython.org/") (license (package-license wxwidgets)))) + +(define-public wxsvg + (package + (name "wxsvg") + (version "1.5.11") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/wxsvg/wxsvg/" + version "/wxsvg-" version ".tar.bz2")) + (sha256 + (base32 + "0m3ff8mjiq4hvy8rmxyc9fkpf24xwxhvr3a6jmvr2q5zc41xhz7x")))) + (build-system glib-or-gtk-build-system) + (inputs + `(("wxwidgets" ,wxwidgets-3.1) + ("cairo" ,cairo) + ("pango" ,pango) + ("libexif" ,libexif) + ("ffmpeg" ,ffmpeg))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "C++ library to create, manipulate and render SVG files") + (description "wxSVG is a C++ library to create, manipulate and render +@dfn{Scalable Vector Graphics} (SVG) files with the wxWidgets toolkit.") + (home-page "http://wxsvg.sourceforge.net") + + ;; wxSVG is licenced under the "wxWindows library licence", which is + ;; the LGPL2.0+, with a few extra permissions. + (license (list l:lgpl2.0+ (l:fsf-free "file://COPYING"))))) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 0ceae029bc..79210d44d0 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> -;;; Copyright © 2017 humanitiesNerd <catonano@gmail.com> +;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -189,7 +189,7 @@ There are two base classes. @code{Graph::Reader} is the base class for classes which read a graph file and create an instance of the Graph class. @code{Graph::Writer} is the base class for classes which take an instance of the @code{Graph} class and write it out in a specific file format.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-atom (package @@ -221,7 +221,7 @@ the @code{Graph} class and write it out in a specific file format.") (description "Atom is a syndication, API, and archiving format for weblogs and other data. @code{XML::Atom} implements the feed format as well as a client for the API.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-descent (package @@ -249,7 +249,7 @@ the @code{Graph} class and write it out in a specific file format.") XML grammar is recursive - so it's nice to be able to write recursive parsers for it. @code{XML::Descent} allows such parsers to be created.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-parser (package @@ -269,7 +269,7 @@ parsers for it. @code{XML::Descent} allows such parsers to be created.") (list (string-append "EXPATLIBPATH=" expat "/lib") (string-append "EXPATINCPATH=" expat "/include"))))) (inputs `(("expat" ,expat))) - (license (package-license perl)) + (license license:perl-license) (synopsis "Perl bindings to the Expat XML parsing library") (description "This module provides ways to parse XML documents. It is built on top of @@ -303,7 +303,7 @@ to @code{XML::Parser} in much the same way that Gisle Aas' @code{HTML::TokeParser} provides a procedural interface to @code{HTML::Parser}. @code{XML::TokeParser} splits its XML input up into \"tokens\", each corresponding to an @code{XML::Parser} event.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-libxml (package @@ -320,7 +320,7 @@ corresponding to an @code{XML::Parser} event.") (build-system perl-build-system) (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser))) - (license (package-license perl)) + (license license:perl-license) (synopsis "Perl SAX parser using XML::Parser") (description "XML::Parser::PerlSAX is a PerlSAX parser using the XML::Parser @@ -351,7 +351,7 @@ module.") library which provides interfaces for parsing and manipulating XML files. This module allows Perl programmers to make use of the highly capable validating XML parser and the high performance DOM implementation.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-libxml-simple (package @@ -373,7 +373,7 @@ XML parser and the high performance DOM implementation.") (description "This package provides the same API as @code{XML::Simple} but is based on @code{XML::LibXML}.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-libxslt (package @@ -396,7 +396,7 @@ XML parser and the high performance DOM implementation.") (synopsis "Perl bindings to GNOME libxslt library") (description "This Perl module is an interface to the GNOME project's libxslt library.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-namespacesupport (package @@ -417,7 +417,7 @@ libxslt library.") names (unames) from within any application that may need them. It also helps maintain a prefix to namespace URI map, and provides a number of basic checks.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-rss (package @@ -452,7 +452,7 @@ checks.") RDF Site Summary (RSS) files. This distribution also contains many examples that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and 1.0 version, and more.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-sax (package @@ -486,7 +486,7 @@ that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and (synopsis "Perl API for XML") (description "XML::SAX consists of several framework classes for using and building Perl SAX2 XML parsers, filters, and drivers.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-sax-base (package @@ -508,7 +508,7 @@ PerlSAX drivers and filters. It's default behaviour is to pass the input directly to the output unchanged. It can be useful to use this module as a base class so you don't have to, for example, implement the characters() callback.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-simple (package @@ -526,7 +526,7 @@ callback.") (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser) ("perl-xml-sax" ,perl-xml-sax))) - (license (package-license perl)) + (license license:perl-license) (synopsis "Perl module for easy reading/writing of XML files") (description "The XML::Simple module provides a simple API layer on top of an @@ -549,7 +549,7 @@ parser modules).") (build-system perl-build-system) (inputs `(("perl-xml-parser" ,perl-xml-parser))) - (license (package-license perl)) + (license license:perl-license) (synopsis "Perl regular expressions for XML tokens") (description "XML::RegExp contains regular expressions for the following XML tokens: @@ -575,7 +575,7 @@ EntityRef, CharRef, Reference, Name, NmToken, and AttValue.") ("perl-libxml" ,perl-libxml) ("perl-xml-parser" ,perl-xml-parser) ("perl-xml-regexp" ,perl-xml-regexp))) - (license (package-license perl)) + (license license:perl-license) (synopsis "Perl module for building DOM Level 1 compliant document structures") (description @@ -607,7 +607,7 @@ that conforms to the API of the Document Object Model.") "The @code{XML::Compile} module suite has extensive regression testing. This module provide functions which simplify writing tests for @code{XML::Compile} related distributions.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-compile (package @@ -632,7 +632,7 @@ This module provide functions which simplify writing tests for "@code{XML::Compile} can be used to translate a Perl data-structure into XML or XML into a Perl data-structure, both directions under rigid control by a schema.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-compile-cache (package @@ -655,7 +655,7 @@ a schema.") (synopsis "Cache compiled XML translators") (description "This package provides methods to cache compiled XML translators.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-compile-soap (package @@ -683,7 +683,7 @@ a schema.") implementation is @url{SOAP1.1, http://www.w3.org/TR/2000/NOTE-SOAP-20000508/}, which is still most often used.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-compile-wsdl11 (package @@ -709,7 +709,7 @@ used.") messages to be send and received over SOAP connections. This involves encoding of the message to be send into XML, sending the message to the server, collect the answer, and finally decoding the XML to Perl.") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-feed (package @@ -748,7 +748,7 @@ server, collect the answer, and finally decoding the XML to Perl.") Atom feeds. It also implements feed auto-discovery for finding feeds, given a URI. @code{XML::Feed} supports the following syndication feed formats: RSS 0.91, RSS 1.0, RSS 2.0, Atom") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-xml-xpath (package @@ -772,7 +772,7 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom") "This module aims to comply exactly to the @url{XPath specification, https://www.w3.org/TR/xpath} and yet allow extensions to be added in the form of functions.") - (license (package-license perl)))) + (license license:perl-license))) (define-public pugixml (package @@ -895,18 +895,19 @@ Libxml2).") (define-public minixml (package (name "minixml") - (version "2.9") + (version "2.10") (source (origin (method url-fetch) - (uri (string-append "http://www.msweet.org/files/project3/mxml-" - version ".tar.gz")) + (uri (string-append "https://github.com/michaelrsweet/mxml/" + "releases/download/release-" version + "/mxml-" version ".tar.gz")) (sha256 (base32 - "14pzhlfidj5v1qbxy7a59yn4jz9pnjrs2zwalz228jsq7ijm9vfd")))) + "14bqfq4lymhb31snz6wsvzhlavy0573v1nki1lbngiyxcj5zazr6")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ;no "check" target - (home-page "http://www.minixml.org/") + (home-page "https://michaelrsweet.github.io/mxml") (synopsis "Small XML parsing library") (description "Mini-XML is a small C library to read and write XML files and strings in diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 9985524394..f243222fb3 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2393,7 +2393,7 @@ including most mice, keyboards, tablets and touchscreens.") (define-public xf86-input-libinput (package (name "xf86-input-libinput") - (version "0.25.0") + (version "0.25.1") (source (origin (method url-fetch) (uri (string-append @@ -2401,7 +2401,7 @@ including most mice, keyboards, tablets and touchscreens.") name "-" version ".tar.bz2")) (sha256 (base32 - "0vsmijamfzf6vcljrr0am2qcz33zl2l0lj2mzmbwgrm7ixjx2zxv")))) + "1q67hjd67ni1nq7kgxdrrdgkyhzaqvvn2vlnsiiq9w4y3icpv7s8")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -5720,7 +5720,7 @@ programs that cannot use the window system directly.") "These bindings wrap @code{libxcb} (a C library to speak with X11, in many cases better than @code{Xlib}), and provides an object oriented interface to its methods (using @code{Mouse}).") - (license (package-license perl)))) + (license license:perl-license))) (define-public perl-x11-protocol (package @@ -5748,7 +5748,7 @@ perl programs to display windows and graphics on X11 servers.") ;; distribution, has another, less restrictive copying policy, as do some ;; of the extension modules in the directory Protocol/Ext: see those files ;; for details)." - (license (package-license perl)))) + (license license:perl-license))) (define-public xcompmgr (package diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm index 2cf30d6e32..8feb4fea21 100644 --- a/gnu/packages/zip.scm +++ b/gnu/packages/zip.scm @@ -48,6 +48,9 @@ (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 @@ -171,4 +174,4 @@ recreates the stored directory structure by default.") (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 (package-license perl)))) + (license license:perl-license))) diff --git a/gnu/services.scm b/gnu/services.scm index b1b53fd18b..5c314748da 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -183,7 +183,7 @@ TYPE does not have a default value, an error is raised." (condition (&missing-value-service-error (type type) (location location)) (&message - (message (format #f (_ "~a: no value specified \ + (message (format #f (G_ "~a: no value specified \ for service of type '~a'") (location->string location) (service-type-name type))))))) @@ -624,7 +624,7 @@ kernel." (target-type target-type)) (&message (message - (format #f (_ "no target of type '~a' for service ~s") + (format #f (G_ "no target of type '~a' for service ~s") (service-type-name target-type) service)))))) (x @@ -635,7 +635,7 @@ kernel." (&message (message (format #f - (_ "more than one target service of type '~a'") + (G_ "more than one target service of type '~a'") (service-type-name target-type)))))))))) (fold add-edge edges (service-type-extensions (service-kind service)))) @@ -686,7 +686,7 @@ TARGET-TYPE; return the root service adjusted accordingly." (service #f) (target-type target-type)) (&message - (message (format #f (_ "service of type '~a' not found") + (message (format #f (G_ "service of type '~a' not found") (service-type-name target-type))))))) (x (raise @@ -696,7 +696,7 @@ TARGET-TYPE; return the root service adjusted accordingly." (&message (message (format #f - (_ "more than one target service of type '~a'") + (G_ "more than one target service of type '~a'") (service-type-name target-type))))))))) ;;; services.scm ends here. diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 67972bf614..c244174fd3 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1149,7 +1149,16 @@ the tty to run, among other things." #~(begin (use-modules (guix build utils)) (mkdir-p "/var/run/nscd") - (mkdir-p "/var/db/nscd"))) ;for the persistent cache + (mkdir-p "/var/db/nscd") ;for the persistent cache + + ;; In libc 2.25 nscd uses inotify to watch /etc/resolv.conf, but only if + ;; that file exists when it is started. Thus create it here. Note: on + ;; some systems, such as when NetworkManager is used, /etc/resolv.conf + ;; is a symlink, hence 'lstat'. + (unless (false-if-exception (lstat "/etc/resolv.conf")) + (call-with-output-file "/etc/resolv.conf" + (lambda (port) + (display "# This is a placeholder.\n" port)))))) (define nscd-service-type (service-type (name 'nscd) diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm index 03bfbf1d78..f8d60a4802 100644 --- a/gnu/services/herd.scm +++ b/gnu/services/herd.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,7 +24,9 @@ #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:use-module (ice-9 match) - #:export (shepherd-error? + #:export (%shepherd-socket-file + + shepherd-error? service-not-found-error? service-not-found-error-service action-not-found-error? @@ -58,9 +61,9 @@ ;;; Code: (define %shepherd-socket-file - "/var/run/shepherd/socket") + (make-parameter "/var/run/shepherd/socket")) -(define* (open-connection #:optional (file %shepherd-socket-file)) +(define* (open-connection #:optional (file (%shepherd-socket-file))) "Open a connection to the daemon, using the Unix-domain socket at FILE, and return the socket." ;; The protocol is sexp-based and UTF-8-encoded. diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index 5831220541..7281746ab2 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -163,7 +163,7 @@ assertion failure." (raise (condition (&message (message - (format #f (_ "service '~a' provided more than once") + (format #f (G_ "service '~a' provided more than once") symbol))))))) (for-each assert-unique (shepherd-service-provision service)) @@ -178,7 +178,7 @@ assertion failure." (raise (condition (&message (message - (format #f (_ "service '~a' requires '~a', \ + (format #f (G_ "service '~a' requires '~a', \ which is not provided by any service") (match (shepherd-service-provision service) ((head . _) head) diff --git a/gnu/system.scm b/gnu/system.scm index 44190bdfc6..f9a0da9a75 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -48,7 +48,6 @@ #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (gnu services base) - #:use-module (gnu system grub) #:use-module (gnu system shadow) #:use-module (gnu system nss) #:use-module (gnu system locale) @@ -73,7 +72,7 @@ operating-system-hosts-file operating-system-kernel operating-system-kernel-file - operating-system-user-kernel-arguments + operating-system-kernel-arguments operating-system-initrd operating-system-users operating-system-groups @@ -110,6 +109,7 @@ boot-parameters-kernel-arguments boot-parameters-initrd read-boot-parameters + read-boot-parameters-file local-host-aliases %setuid-programs @@ -122,6 +122,14 @@ ;;; ;;; Code: +(define (bootable-kernel-arguments kernel-arguments system.drv root-device) + "Prepend extra arguments to KERNEL-ARGUMENTS that allow SYSTEM.DRV to be +booted from ROOT-DEVICE" + (cons* (string-append "--root=" root-device) + #~(string-append "--system=" #$system.drv) + #~(string-append "--load=" #$system.drv "/boot") + kernel-arguments)) + ;; System-wide configuration. ;; TODO: Add per-field docstrings/stexi. (define-record-type* <operating-system> operating-system @@ -182,6 +190,107 @@ (sudoers-file operating-system-sudoers-file ; file-like (default %sudoers-specification))) +(define (operating-system-kernel-arguments os system.drv root-device) + "Return all the kernel arguments, including the ones not specified +directly by the user." + (bootable-kernel-arguments (operating-system-user-kernel-arguments os) + system.drv + root-device)) + + +;;; +;;; Boot parameters +;;; + +(define-record-type* <boot-parameters> + boot-parameters make-boot-parameters boot-parameters? + (label boot-parameters-label) + ;; Because we will use the 'store-device' to create the GRUB search command, + ;; the 'store-device' has slightly different semantics than 'root-device'. + ;; The 'store-device' can be a file system uuid, a file system label, or #f, + ;; but it cannot be a device path such as "/dev/sda3", since GRUB would not + ;; understand that. The 'root-device', on the other hand, corresponds + ;; exactly to the device field of the <file-system> object representing the + ;; OS's root file system, so it might be a device path like "/dev/sda3". + (root-device boot-parameters-root-device) + (store-device boot-parameters-store-device) + (store-mount-point boot-parameters-store-mount-point) + (kernel boot-parameters-kernel) + (kernel-arguments boot-parameters-kernel-arguments) + (initrd boot-parameters-initrd)) + +(define (read-boot-parameters port) + "Read boot parameters from PORT and return the corresponding +<boot-parameters> object or #f if the format is unrecognized." + (match (read port) + (('boot-parameters ('version 0) + ('label label) ('root-device root) + ('kernel linux) + rest ...) + (boot-parameters + (label label) + (root-device root) + + ;; In the past, we would store the directory name of the kernel instead + ;; of the absolute file name of its image. Detect that and correct it. + (kernel (if (string=? linux (direct-store-path linux)) + (string-append linux "/" + (system-linux-image-file-name)) + linux)) + + (kernel-arguments + (match (assq 'kernel-arguments rest) + ((_ args) args) + (#f '()))) ;the old format + + (initrd + (match (assq 'initrd rest) + (('initrd ('string-append directory file)) ;the old format + (string-append directory file)) + (('initrd (? string? file)) + file))) + + (store-device + (match (assq 'store rest) + (('store ('device device) _ ...) + device) + (_ ;the old format + ;; Root might be a device path like "/dev/sda1", which is not a + ;; suitable GRUB device identifier. + (if (string-prefix? "/" root) + #f + root)))) + + (store-mount-point + (match (assq 'store rest) + (('store ('device _) ('mount-point mount-point) _ ...) + mount-point) + (_ ;the old format + "/"))))) + (x ;unsupported format + (warning (G_ "unrecognized boot parameters for '~a'~%") + system) + #f))) + +(define (read-boot-parameters-file system) + "Read boot parameters from SYSTEM's (system or generation) \"parameters\" +file and returns the corresponding <boot-parameters> object or #f if the +format is unrecognized. +The object has its kernel-arguments extended in order to make it bootable." + (let* ((file (string-append system "/parameters")) + (params (call-with-input-file file read-boot-parameters)) + (root (boot-parameters-root-device params)) + (root-device (if (bytevector? root) + (uuid->string root) + root)) + (kernel-arguments (boot-parameters-kernel-arguments params))) + (if params + (boot-parameters + (inherit params) + (kernel-arguments (bootable-kernel-arguments kernel-arguments + system + root-device))) + #f))) ;;; ;;; Services. @@ -522,7 +631,7 @@ This is for backward-compatibility of fields that used to be strings and are now file-like objects.." (match thing ((? string?) - (warning (_ "using a string for file '~a' is deprecated; \ + (warning (G_ "using a string for file '~a' is deprecated; \ use 'plain-file' instead~%") file-name) (plain-file file-name thing)) @@ -538,7 +647,7 @@ and are now file-like objects." (with-monad %store-monad (match thing ((? procedure?) - (warning (_ "using a monadic value for '~a' is deprecated; \ + (warning (G_ "using a monadic value for '~a' is deprecated; \ use 'plain-file' instead~%") file-name) thing) @@ -680,7 +789,7 @@ hardware-related operations as necessary when booting a Linux container." (#f (raise (condition (&message - (message (format #f (_ "~a: invalid locale name") name)))))) + (message (format #f (G_ "~a: invalid locale name") name)))))) (def def))) (define (operating-system-locale-directory os) @@ -735,31 +844,15 @@ populate the \"old entries\" menu." (mlet* %store-monad ((system (operating-system-derivation os)) (root-fs -> (operating-system-root-file-system os)) - (store-fs -> (operating-system-store-file-system os)) - (label -> (kernel->boot-label (operating-system-kernel os))) - (kernel -> (operating-system-kernel-file os)) - (initrd (operating-system-initrd-file os)) (root-device -> (if (eq? 'uuid (file-system-title root-fs)) (uuid->string (file-system-device root-fs)) (file-system-device root-fs))) - (entries -> (list (menu-entry - (label label) - - ;; The device where the kernel and initrd live. - (device (fs->boot-device store-fs)) - (device-mount-point - (file-system-mount-point store-fs)) - - (linux kernel) - (linux-arguments - (cons* (string-append "--root=" root-device) - #~(string-append "--system=" #$system) - #~(string-append "--load=" #$system - "/boot") - (operating-system-user-kernel-arguments os))) - (initrd initrd))))) - (grub-configuration-file (operating-system-bootloader os) entries - #:old-entries old-entries))) + (entry (operating-system-boot-parameters os system root-device))) + ((module-ref (resolve-interface '(gnu system grub)) + 'grub-configuration-file) + (operating-system-bootloader os) + (list entry) + #:old-entries old-entries))) (define (fs->boot-device fs) "Given FS, a <file-system> object, return a value suitable for use as the @@ -769,101 +862,51 @@ device in a <menu-entry>." ((label) (file-system-device fs)) (else #f))) -(define (operating-system-boot-parameters-file os) - "Return a file that describes the boot parameters of OS. The primary use of -this file is the reconstruction of GRUB menu entries for old configurations." - (mlet %store-monad ((initrd (operating-system-initrd-file os)) - (root -> (operating-system-root-file-system os)) - (store -> (operating-system-store-file-system os)) - (label -> (kernel->boot-label - (operating-system-kernel os)))) - (gexp->file "parameters" - #~(boot-parameters - (version 0) - (label #$label) - (root-device #$(file-system-device root)) - (kernel #$(operating-system-kernel-file os)) - (kernel-arguments - #$(operating-system-user-kernel-arguments os)) - (initrd #$initrd) - (store - (device #$(fs->boot-device store)) - (mount-point #$(file-system-mount-point store)))) - #:set-load-path? #f))) - - -;;; -;;; Boot parameters -;;; - -(define-record-type* <boot-parameters> - boot-parameters make-boot-parameters boot-parameters? - (label boot-parameters-label) - ;; Because we will use the 'store-device' to create the GRUB search command, - ;; the 'store-device' has slightly different semantics than 'root-device'. - ;; The 'store-device' can be a file system uuid, a file system label, or #f, - ;; but it cannot be a device path such as "/dev/sda3", since GRUB would not - ;; understand that. The 'root-device', on the other hand, corresponds - ;; exactly to the device field of the <file-system> object representing the - ;; OS's root file system, so it might be a device path like "/dev/sda3". - (root-device boot-parameters-root-device) - (store-device boot-parameters-store-device) - (store-mount-point boot-parameters-store-mount-point) - (kernel boot-parameters-kernel) - (kernel-arguments boot-parameters-kernel-arguments) - (initrd boot-parameters-initrd)) - -(define (read-boot-parameters port) - "Read boot parameters from PORT and return the corresponding -<boot-parameters> object or #f if the format is unrecognized." - (match (read port) - (('boot-parameters ('version 0) - ('label label) ('root-device root) - ('kernel linux) - rest ...) - (boot-parameters - (label label) - (root-device root) - - ;; In the past, we would store the directory name of the kernel instead - ;; of the absolute file name of its image. Detect that and correct it. - (kernel (if (string=? linux (direct-store-path linux)) - (string-append linux "/" - (system-linux-image-file-name)) - linux)) - - (kernel-arguments - (match (assq 'kernel-arguments rest) - ((_ args) args) - (#f '()))) ;the old format - - (initrd - (match (assq 'initrd rest) - (('initrd ('string-append directory file)) ;the old format - (string-append directory file)) - (('initrd (? string? file)) - file))) - - (store-device - (match (assq 'store rest) - (('store ('device device) _ ...) - device) - (_ ;the old format - ;; Root might be a device path like "/dev/sda1", which is not a - ;; suitable GRUB device identifier. - (if (string-prefix? "/" root) - #f - root)))) - - (store-mount-point - (match (assq 'store rest) - (('store ('device _) ('mount-point mount-point) _ ...) - mount-point) - (_ ;the old format - "/"))))) - (x ;unsupported format - (warning (_ "unrecognized boot parameters for '~a'~%") - system) - #f))) +(define (operating-system-boot-parameters os system.drv root-device) + "Return a monadic <boot-parameters> record that describes the boot parameters +of OS. SYSTEM.DRV is either a derivation or #f. If it's a derivation, adds +kernel arguments for that derivation to <boot-parameters>." + (mlet* %store-monad + ((initrd (operating-system-initrd-file os)) + (store -> (operating-system-store-file-system os)) + (label -> (kernel->boot-label (operating-system-kernel os)))) + (return (boot-parameters + (label label) + (root-device root-device) + (kernel (operating-system-kernel-file os)) + (kernel-arguments + (if system.drv + (operating-system-kernel-arguments os system.drv root-device) + (operating-system-user-kernel-arguments os))) + (initrd initrd) + (store-device (fs->boot-device store)) + (store-mount-point (file-system-mount-point store)))))) + +(define* (operating-system-boot-parameters-file os #:optional (system.drv #f)) + "Return a file that describes the boot parameters of OS. The primary use of +this file is the reconstruction of GRUB menu entries for old configurations. +SYSTEM.DRV is optional. If given, adds kernel arguments for that system to the +returned file (since the returned file is then usually stored into the +content-addressed \"system\" directory, it's usually not a good idea +to give it because the content hash would change by the content hash +being stored into the \"parameters\" file)." + (mlet* %store-monad ((root -> (operating-system-root-file-system os)) + (device -> (file-system-device root)) + (params (operating-system-boot-parameters os + system.drv + device))) + (gexp->file "parameters" + #~(boot-parameters + (version 0) + (label #$(boot-parameters-label params)) + (root-device #$(boot-parameters-root-device params)) + (kernel #$(boot-parameters-kernel params)) + (kernel-arguments + #$(boot-parameters-kernel-arguments params)) + (initrd #$(boot-parameters-initrd params)) + (store + (device #$(boot-parameters-store-device params)) + (mount-point #$(boot-parameters-store-mount-point params)))) + #:set-load-path? #f))) ;;; system.scm ends here diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index cde4b9e23a..58096429fe 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -144,15 +144,15 @@ denoting a file name." (with-imported-modules '((gnu build svg)) #~(begin ;; We need these two libraries. - (add-to-load-path (string-append #$guile-rsvg + (add-to-load-path (string-append #+guile-rsvg "/share/guile/site/" (effective-version))) - (add-to-load-path (string-append #$guile-cairo + (add-to-load-path (string-append #+guile-cairo "/share/guile/site/" (effective-version))) (use-modules (gnu build svg)) - (svg->png #$svg #$output + (svg->png #+svg #$output #:width #$width #:height #$height))))) @@ -267,6 +267,16 @@ code." (#f #~(format #f "search --file --set ~a" #$file))))) +(define (boot-parameters->menu-entry conf) + "Convert a <boot-parameters> instance to a corresponding <menu-entry>." + (menu-entry + (label (boot-parameters-label conf)) + (device (boot-parameters-store-device conf)) + (device-mount-point (boot-parameters-store-mount-point conf)) + (linux (boot-parameters-kernel conf)) + (linux-arguments (boot-parameters-kernel-arguments conf)) + (initrd (boot-parameters-initrd conf)))) + (define* (grub-configuration-file config entries #:key (system (%current-system)) @@ -276,7 +286,7 @@ code." <file-system> object. OLD-ENTRIES is taken to be a list of menu entries corresponding to old generations of the system." (define all-entries - (append entries + (append (map boot-parameters->menu-entry entries) (grub-configuration-menu-entries config))) (define entry->gexp @@ -323,7 +333,7 @@ set timeout=~a~%" #$@(if (pair? old-entries) #~((format port " submenu \"GNU system, old configurations...\" {~%") - #$@(map entry->gexp old-entries) + #$@(map entry->gexp (map boot-parameters->menu-entry old-entries)) (format port "}~%")) #~())))) diff --git a/gnu/system/pam.scm b/gnu/system/pam.scm index 4546c1a73a..eedf933946 100644 --- a/gnu/system/pam.scm +++ b/gnu/system/pam.scm @@ -204,21 +204,27 @@ dumped in /etc/pam.d/NAME, where NAME is the name of SERVICE." (env (pam-entry ; to honor /etc/environment. (control "required") (module "pam_env.so")))) - (lambda* (name #:key allow-empty-passwords? motd) + (lambda* (name #:key allow-empty-passwords? (allow-root? #f) motd) "Return a standard Unix-style PAM service for NAME. When -ALLOW-EMPTY-PASSWORDS? is true, allow empty passwords. When MOTD is true, it -should be a file-like object used as the message-of-the-day." +ALLOW-EMPTY-PASSWORDS? is true, allow empty passwords. When ALLOW-ROOT? is +true, allow root to run the command without authentication. When MOTD is +true, it should be a file-like object used as the message-of-the-day." ;; See <http://www.linux-pam.org/Linux-PAM-html/sag-configuration-example.html>. (let ((name* name)) (pam-service (name name*) (account (list unix)) - (auth (list (if allow-empty-passwords? - (pam-entry - (control "required") - (module "pam_unix.so") - (arguments '("nullok"))) - unix))) + (auth (append (if allow-root? + (list (pam-entry + (control "sufficient") + (module "pam_rootok.so"))) + '()) + (list (if allow-empty-passwords? + (pam-entry + (control "required") + (module "pam_unix.so") + (arguments '("nullok"))) + unix)))) (password (list (pam-entry (control "required") (module "pam_unix.so") @@ -256,7 +262,12 @@ authenticate to run COMMAND." ;; These programs are setuid-root. (map (cut unix-pam-service <> #:allow-empty-passwords? allow-empty-passwords?) - '("su" "passwd" "sudo")) + '("passwd" "sudo")) + ;; This is setuid-root, as well. Allow root to run "su" without + ;; authenticating. + (list (unix-pam-service "su" + #:allow-empty-passwords? allow-empty-passwords? + #:allow-root? #t)) ;; These programs are not setuid-root, and we want root to be able ;; to run them without having to authenticate (notably because diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index 1acfcc4866..b30ef8e390 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -220,7 +220,7 @@ set debug-file-directory ~/.guix-profile/lib/debug\n"))) (raise (condition (&message (message - (format #f (_ "supplementary group '~a' \ + (format #f (G_ "supplementary group '~a' \ of user '~a' is undeclared") group (user-account-name user)))))))) @@ -230,7 +230,7 @@ of user '~a' is undeclared") (raise (condition (&message (message - (format #f (_ "primary group '~a' \ + (format #f (G_ "primary group '~a' \ of user '~a' is undeclared") (user-account-group user) (user-account-name user))))))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 4f915c4f95..2c8b954c80 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -490,11 +490,8 @@ it is mostly useful when FULL-BOOT? is true." #:full-boot? full-boot? #:disk-image-size disk-image-size))) (define kernel-arguments - #~(list "--root=/dev/vda1" - (string-append "--system=" #$os-drv) - (string-append "--load=" #$os-drv "/boot") - #$@(if graphic? #~() #~("console=ttyS0")) - #+@(operating-system-user-kernel-arguments os))) + #~(list #$@(if graphic? #~() #~("console=ttyS0")) + #+@(operating-system-kernel-arguments os os-drv "/dev/vda1"))) (define qemu-exec #~(list (string-append #$qemu "/bin/" #$(qemu-command (%current-system))) diff --git a/gnu/tests.scm b/gnu/tests.scm index e84d1ebb20..810711ab91 100644 --- a/gnu/tests.scm +++ b/gnu/tests.scm @@ -27,7 +27,7 @@ #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu services shepherd) - #:use-module ((gnu packages) #:select (scheme-modules)) + #:use-module (guix discovery) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9 gnu) #:use-module (ice-9 match) @@ -263,17 +263,12 @@ the system under test." (define (fold-system-tests proc seed) "Invoke PROC on each system test, passing it the test and the previous result." - (fold (lambda (module result) - (fold (lambda (thing result) - (if (system-test? thing) - (proc thing result) - result)) - result - (module-map (lambda (sym var) - (false-if-exception (variable-ref var))) - module))) - '() - (test-modules))) + (fold-module-public-variables (lambda (obj result) + (if (system-test? obj) + (cons obj result) + result)) + '() + (test-modules))) (define (all-system-tests) "Return the list of system tests." diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 6ce5ab3de1..37aab8ef67 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -31,6 +31,7 @@ #:use-module (gnu services networking) #:use-module (gnu packages imagemagick) #:use-module (gnu packages ocr) + #:use-module (gnu packages package-management) #:use-module (guix gexp) #:use-module (guix store) #:use-module (guix monads) @@ -296,28 +297,24 @@ info --version") (setlocale LC_ALL before)) marionette)) - (test-assert "/run/current-system is a GC root" + (test-eq "/run/current-system is a GC root" + 'success! (marionette-eval '(begin ;; Make sure the (guix …) modules are found. - (eval-when (expand load eval) - (set! %load-path - (cons - (string-append - "/run/current-system/profile/share/guile/site/" - (effective-version)) - %load-path)) - (set! %load-compiled-path - (cons - (string-append - "/run/current-system/profile/share/guile/site/" - (effective-version)) - %load-compiled-path))) + ;; + ;; XXX: Currently shepherd and marionette run + ;; on Guile 2.0 whereas Guix is on 2.2. Yet + ;; we should be able to load the 2.0 Scheme + ;; files since it's pure Scheme. + (add-to-load-path + #+(file-append guix "/share/guile/site/2.2")) (use-modules (srfi srfi-34) (guix store)) (let ((system (readlink "/run/current-system"))) (guard (c ((nix-protocol-error? c) - (file-exists? system))) + (and (file-exists? system) + 'success!))) (with-store store (delete-paths store (list system)) #f)))) |