From 078378743698f71e4b43dffa5627c86d3ebccc29 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 May 2016 16:09:59 +0200 Subject: [PATCH 001/277] gnu: Add ParDRe. * gnu/packages/bioinformatics.scm (pardre): New variable. --- gnu/packages/bioinformatics.scm | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index d404ff839c..dae162ef0b 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3885,6 +3885,47 @@ Needleman-Wunsch).") ;; Dual licensed; also includes public domain source. (license (list license:gpl3 license:bsd-2)))) +(define-public pardre + (package + (name "pardre") + (version "1.1.5") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/pardre/ParDRe-rel" + version ".tar.gz")) + (sha256 + (base32 + "0zkyjzv4s8q2h5npalhirbk17r5b1h0n2a42mh7njzlf047h9bhy")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests included + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (install-file "ParDRe" bin) + #t)))))) + (inputs + `(("openmpi" ,openmpi) + ("zlib" ,zlib))) + (synopsis "Parallel tool to remove duplicate DNA reads") + (description + "ParDRe is a parallel tool to remove duplicate genetic sequence reads. +Duplicate reads can be seen as identical or nearly identical sequences with +some mismatches. This tool lets users avoid the analysis of unnecessary +reads, reducing the time of subsequent procedures with the +dataset (e.g. assemblies, mappings, etc.). The tool is implemented with MPI +in order to exploit the parallel capabilities of multicore clusters. It is +faster than multithreaded counterparts (end of 2015) for the same number of +cores and, thanks to the message-passing technology, it can be executed on +clusters.") + (home-page "https://sourceforge.net/projects/pardre/") + (license license:gpl3+))) + (define-public bio-locus (package (name "bio-locus") From 524eee0298145c6ff79daa1569150bf812ecf054 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 12 May 2016 17:09:41 +0200 Subject: [PATCH 002/277] gnu: Add slurm-drmaa. * gnu/packages/parallel.scm (slurm-drmaa): New variable. --- gnu/packages/parallel.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 828bd26cf8..b0984a823e 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Efraim Flashner ;;; Copyright © 2016 Pjotr Prins ;;; Copyright © 2016 Andreas Enge +;;; Copyright © 2016 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages freeipmi) #:use-module (gnu packages linux) #:use-module (gnu packages mpi) @@ -121,3 +123,30 @@ framework for starting, executing, and monitoring work (typically a parallel job) on a set of allocated nodes, and arbitrates contention for resources by managing a queue of pending work.") (license license:gpl2+))) + +(define-public slurm-drmaa + (package + (name "slurm-drmaa") + (version "1.0.7") + (source (origin + (method url-fetch) + (uri "http://apps.man.poznan.pl/trac/slurm-drmaa/downloads/9") + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0grw55hmny2mc4nc0y1arnvxd2k0dcdfn476kzs180fibjxgfw14")))) + (build-system gnu-build-system) + (inputs + `(("slurm" ,slurm))) + (native-inputs + `(("which" ,which))) + (home-page "http://apps.man.poznan.pl/trac/slurm-drmaa") + (synopsis "Distributed resource management application API for SLURM") + (description + "PSNC DRMAA for Simple Linux Utility for Resource Management (SLURM) is +an implementation of Open Grid Forum DRMAA 1.0 (Distributed Resource +Management Application API) specification for submission and control of jobs +to SLURM. Using DRMAA, grid applications builders, portal developers and ISVs +can use the same high-level API to link their software with different +cluster/resource management systems.") + (license license:gpl3+))) From f22debacb4037f270dc475764834b0968da0b4a8 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Mon, 23 May 2016 01:47:11 +0200 Subject: [PATCH 003/277] gnu: Add poppler-qt5. * gnu/packages/pdf.scm (poppler-qt5): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/pdf.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index ef05def693..d46bd1f8ba 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2014, 2015 Ricardo Wurmus ;;; Copyright © 2015 Paul van der Walt +;;; Copyright © 2016 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -109,6 +110,13 @@ ,@(package-inputs poppler))) (synopsis "Qt4 frontend for the Poppler PDF rendering library"))) +(define-public poppler-qt5 + (package (inherit poppler) + (name "poppler-qt5") + (inputs `(("qt" ,qt) + ,@(package-inputs poppler))) + (synopsis "Qt5 frontend for the Poppler PDF rendering library"))) + (define-public python-poppler-qt4 (package (name "python-poppler-qt4") From 5cdd21c7fec49e99f20f9ec0444ca1b25ae0bac4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 May 2016 17:42:32 +0200 Subject: [PATCH 004/277] cve: Keep a summarized sexp in cache instead of the full XML. This avoids ~20s of XML parsing when running 'guix lint -c cve'. * guix/cve.scm (vulnerability->sexp, sexp->vulnerability) (fetch-vulnerabilities): New procedures. (current-vulnerabilities): Use 'fetch-vulnerabilities'. --- guix/cve.scm | 67 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 10 deletions(-) diff --git a/guix/cve.scm b/guix/cve.scm index 8e76f42f0d..eeee450205 100644 --- a/guix/cve.scm +++ b/guix/cve.scm @@ -19,6 +19,7 @@ (define-module (guix cve) #:use-module (guix utils) #:use-module (guix http-client) + #:use-module ((guix build utils) #:select (mkdir-p)) #:use-module (sxml ssax) #:use-module (web uri) #:use-module (srfi srfi-1) @@ -154,22 +155,68 @@ CPE string." vulnerability objects." (reverse (%parse-vulnerability-feed port '()))) -(define (current-vulnerabilities) - "Return the current list of Common Vulnerabilities and Exposures (CVE) as -published by the US NIST." - (define (read-vulnerabilities uri ttl) - (call-with-cve-port uri ttl +(define vulnerability->sexp + (match-lambda + (($ id packages) + `(v ,id ,packages)))) + +(define sexp->vulnerability + (match-lambda + (('v id (packages ...)) + (vulnerability id packages)))) + +(define (fetch-vulnerabilities year ttl) + "Return the list of for YEAR, assuming the on-disk cache has +the given TTL (fetch from the NIST web site when TTL has expired)." + ;; Note: We used to keep the original XML files in cache but parsing it + ;; would take typically ~15s for a year of data. Thus, we instead store a + ;; summarized version thereof as an sexp, which can be parsed in 1s or so. + (define cache + (string-append (cache-directory) "/cve/" (number->string year))) + + (define (do-fetch) + (call-with-cve-port (yearly-feed-uri year) ttl (lambda (port) ;; XXX: The SSAX "error port" is used to send pointless warnings such as ;; "warning: Skipping PI". Turn that off. (parameterize ((current-ssax-error-port (%make-void-port "w"))) (xml->vulnerabilities port))))) - (append-map read-vulnerabilities - (list (yearly-feed-uri %past-year) - (yearly-feed-uri %current-year)) - (list %past-year-ttl - %current-year-ttl))) + (define (update-cache) + (mkdir-p (dirname cache)) + (let ((vulns (do-fetch))) + (with-atomic-file-output cache + (lambda (port) + (write `(vulnerabilities + 0 ;format version + ,(map vulnerability->sexp vulns)) + port))) + vulns)) + + (define (old? file) + ;; Return true if PORT has passed TTL. + (let* ((s (stat file)) + (now (current-time time-utc))) + (< (+ (stat:mtime s) ttl) (time-second now)))) + + (catch 'system-error + (lambda () + (if (old? cache) + (update-cache) + (match (call-with-input-file cache read) + (('vulnerabilities 0 vulns) + (map sexp->vulnerability vulns)) + (x + (update-cache))))) + (lambda args + (update-cache)))) + +(define (current-vulnerabilities) + "Return the current list of Common Vulnerabilities and Exposures (CVE) as +published by the US NIST." + (append-map fetch-vulnerabilities + (list %past-year %current-year) + (list %past-year-ttl %current-year-ttl))) (define (vulnerabilities->lookup-proc vulnerabilities) "Return a lookup procedure built from VULNERABILITIES that takes a package From 86cf13033ec23f24665e6dcfafea2e43080f01b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 May 2016 17:46:59 +0200 Subject: [PATCH 005/277] cve: Remove now unnecessary HTTP caching. * guix/cve.scm (call-with-cve-port): Use 'http-fetch' instead of 'http-fetch/cached'. --- guix/cve.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/cve.scm b/guix/cve.scm index eeee450205..3956864938 100644 --- a/guix/cve.scm +++ b/guix/cve.scm @@ -74,7 +74,7 @@ (define (call-with-cve-port uri ttl proc) "Pass PROC an input port from which to read the CVE stream." - (let ((port (http-fetch/cached uri #:ttl ttl))) + (let ((port (http-fetch uri))) (dynamic-wind (const #t) (lambda () From af98798c7aad8c4576d4f7e49343980606cadc20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 May 2016 18:02:04 +0200 Subject: [PATCH 006/277] =?UTF-8?q?union:=20Compare=20inode=20numbers=20in?= =?UTF-8?q?=20'file=3D=3F'.?= * guix/build/union.scm (file=?): Compare the inode of ST1 and ST2. --- guix/build/union.scm | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/guix/build/union.scm b/guix/build/union.scm index ccd2d5c103..6640b56523 100644 --- a/guix/build/union.scm +++ b/guix/build/union.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. @@ -53,22 +53,24 @@ identical, #f otherwise." (let ((st1 (stat file1)) (st2 (stat file2))) - (and (eq? (stat:type st1) 'regular) - (eq? (stat:type st2) 'regular) - (= (stat:size st1) (stat:size st2)) - (call-with-input-file file1 - (lambda (port1) - (call-with-input-file file2 - (lambda (port2) - (define len 8192) - (define buf1 (make-bytevector len)) - (define buf2 (make-bytevector len)) - (let loop () - (let ((n1 (get-bytevector-n! port1 buf1 0 len)) - (n2 (get-bytevector-n! port2 buf2 0 len))) - (and (equal? n1 n2) - (or (eof-object? n1) - (loop)))))))))))) + ;; When deduplication is enabled, identical files share the same inode. + (or (= (stat:ino st1) (stat:ino st2)) + (and (eq? (stat:type st1) 'regular) + (eq? (stat:type st2) 'regular) + (= (stat:size st1) (stat:size st2)) + (call-with-input-file file1 + (lambda (port1) + (call-with-input-file file2 + (lambda (port2) + (define len 8192) + (define buf1 (make-bytevector len)) + (define buf2 (make-bytevector len)) + (let loop () + (let ((n1 (get-bytevector-n! port1 buf1 0 len)) + (n2 (get-bytevector-n! port2 buf2 0 len))) + (and (equal? n1 n2) + (or (eof-object? n1) + (loop))))))))))))) (define* (union-build output inputs #:key (log-port (current-error-port))) From 148e8e8e7544b33cf655c9b97407a8d00ef58396 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 May 2016 02:55:54 -0400 Subject: [PATCH 007/277] gnu: borg: Update to 1.0.3. * gnu/packages/backup.scm (borg): Update to 1.0.3. [source]: Remove pypi-uri. --- gnu/packages/backup.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 917bee78d9..cb47ef36cb 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -418,13 +418,17 @@ detection, and lossless compression.") (define-public borg (package (name "borg") - (version "1.0.2") + (version "1.0.3") (source (origin (method url-fetch) - (uri (pypi-uri "borgbackup" version)) + (uri (string-append + "https://pypi.python.org/packages/" + "c9/c6/1efc338724b054d4d264dfeadfcba11cefa6c3c50f474cec91b8f0c21d3a" + "/borgbackup-" version ".tar.gz")) + (sha256 (base32 - "1myz10pwxnac9z59gw1w3xjhz6ghx03vngpl97ca527pj0r39shi")))) + "0kzr0xa00yjfxx27aipli67qg5ffj52yrnqhpf3sdy6k5wzwaybs")))) (build-system python-build-system) (arguments `(#:phases From 031cf6b65e5e28d47e400e81db629f4431a2200e Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Mon, 23 May 2016 11:09:13 +0200 Subject: [PATCH 008/277] gnu: Add r-zoo. * gnu/packages/statistics.scm (r-zoo): New variable. Signed-off-by: Leo Famulari --- gnu/packages/statistics.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 43f9042e9c..1a6644391f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2617,6 +2617,26 @@ noncentral hypergeometric distribution (also called extended hypergeometric distribution).") (license license:gpl3+))) +(define-public r-zoo + (package + (name "r-zoo") + (version "1.7-13") + (source (origin + (method url-fetch) + (uri (cran-uri "zoo" version)) + (sha256 + (base32 + "0m67bnrg7r1jxvs9p7rpa430szp5qfp65r056yb8bivpc16jd98c")))) + (build-system r-build-system) + (propagated-inputs + `(("r-lattice" ,r-lattice))) + (home-page "http://zoo.R-Forge.R-project.org/") + (synopsis "S3 infrastructure for regular and irregular time series") + (description "This package contains an S3 class with methods for totally +ordered indexed observations. It is particularly aimed at irregular time +series of numeric vectors/matrices and factors.") + (license license:gpl2+))) + (define-public r-ztable (package (name "r-ztable") From e1343994b07f7f9a02dcd9a5ffa4a677595587e8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 6 May 2016 16:34:11 -0400 Subject: [PATCH 009/277] gnu: git: Update to 2.8.3. * gnu/packages/version-control.scm (git): Update to 2.8.3. (git-manpages)[source]: Update hash. --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index db3e9f1768..1e39b9c8cb 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -112,14 +112,14 @@ as well as the classic centralized workflow.") ;; Keep in sync with 'git-manpages'! (package (name "git") - (version "2.7.4") + (version "2.8.3") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0ys55v2xrhzj74jrrqx75xpr458klnyxshh8d8swfpp0zgg79rfy")))) + "14dafk7rz8cy2z5b92yf009qf4pc70s0viwq7hxsgd4898knr3kx")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -292,7 +292,7 @@ everything from small to very large projects with speed and efficiency.") version ".tar.xz")) (sha256 (base32 - "09ffk5c0dl1xg7xcvr0kadhspx4fr2spmlmcajzfycmap0ddhkyh")))) + "1ilbi4xdn77a5yrjyrcx0nap0j4raw3h1fr0k32zs9y35c6f29cx")))) (build-system trivial-build-system) (arguments '(#:modules ((guix build utils)) From 88ac650c7b00109299db8805d5606cb20b1ed6fa Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 23 May 2016 13:21:49 -0400 Subject: [PATCH 010/277] gnu: vdirsyncer: Update to 0.11.0. * gnu/packages/dav.scm (vdirsyncer): Update to 0.11.0. --- gnu/packages/dav.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 2bbc069472..126a21bf66 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -52,16 +52,16 @@ clients.") (define-public vdirsyncer (package (name "vdirsyncer") - (version "0.10.0") + (version "0.11.0") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/0b/fb/" - "c42223e1e9169e4770194e62143d431755724b080d8cb" - "77f14705b634815/" - "vdirsyncer-" version ".tar.gz")) + (uri (string-append + "https://pypi.python.org/packages/" + "39/e5/1e7097b5f0cd6de79ec9014f162a6000b77ca2a369ea8a1588a2eebff570/" + name "-" version ".tar.gz")) (sha256 (base32 - "1gf86sbd6w0w4zayh9r3irlp5jwrzbjikjc0vs5zkdpa5c199f78")))) + "1bf0vk29qdswar0q4267aamfriq3134302i2p3qcqxpmmcwx3qfv")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases From 9a6beb3b7ff3dad280b27a263869e233f3ac8336 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 May 2016 22:24:02 +0200 Subject: [PATCH 011/277] refresh: Make 'list-dependents' a monadic procedure. * guix/scripts/refresh.scm (list-dependents): Remove use of 'with-store' and 'run-with-store'. (guix-refresh): Wrap body in with-store/run-with-store. --- guix/scripts/refresh.scm | 117 ++++++++++++++++++++------------------- 1 file changed, 60 insertions(+), 57 deletions(-) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 0efc190b22..209f0d8be9 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -258,38 +258,36 @@ downloaded and authenticated; not updating~%") (define (list-dependents packages) "List all the things that would need to be rebuilt if PACKAGES are changed." - (with-store store - (run-with-store store - ;; Using %BAG-NODE-TYPE is more accurate than using %PACKAGE-NODE-TYPE - ;; because it includes implicit dependencies. - (mlet %store-monad ((edges (node-back-edges %bag-node-type - (all-packages)))) - (let* ((dependents (node-transitive-edges packages edges)) - (covering (filter (lambda (node) - (null? (edges node))) - dependents))) - (match dependents - (() - (format (current-output-port) - (N_ "No dependents other than itself: ~{~a~}~%" - "No dependents other than themselves: ~{~a~^ ~}~%" - (length packages)) - (map package-full-name packages))) + ;; Using %BAG-NODE-TYPE is more accurate than using %PACKAGE-NODE-TYPE + ;; because it includes implicit dependencies. + (mlet %store-monad ((edges (node-back-edges %bag-node-type + (all-packages)))) + (let* ((dependents (node-transitive-edges packages edges)) + (covering (filter (lambda (node) + (null? (edges node))) + dependents))) + (match dependents + (() + (format (current-output-port) + (N_ "No dependents other than itself: ~{~a~}~%" + "No dependents other than themselves: ~{~a~^ ~}~%" + (length packages)) + (map package-full-name packages))) - ((x) - (format (current-output-port) - (_ "A single dependent package: ~a~%") - (package-full-name x))) - (lst - (format (current-output-port) - (N_ "Building the following package would ensure ~d \ + ((x) + (format (current-output-port) + (_ "A single dependent package: ~a~%") + (package-full-name x))) + (lst + (format (current-output-port) + (N_ "Building the following package would ensure ~d \ dependent packages are rebuilt: ~*~{~a~^ ~}~%" - "Building the following ~d packages would ensure ~d \ + "Building the following ~d packages would ensure ~d \ dependent packages are rebuilt: ~{~a~^ ~}~%" - (length covering)) - (length covering) (length dependents) - (map package-full-name covering)))) - (return #t)))))) + (length covering)) + (length covering) (length dependents) + (map package-full-name covering)))) + (return #t)))) ;;; @@ -381,31 +379,36 @@ update would trigger a complete rebuild." (some ; user-specified packages some)))) (with-error-handling - (cond - (list-dependent? - (list-dependents packages)) - (update? - (let ((store (open-connection))) - (parameterize ((%openpgp-key-server - (or (assoc-ref opts 'key-server) - (%openpgp-key-server))) - (%gpg-command - (or (assoc-ref opts 'gpg-command) - (%gpg-command)))) - (for-each - (cut update-package store <> updaters - #:key-download key-download) - packages)))) - (else - (for-each (lambda (package) - (match (package-update-path package updaters) - ((? upstream-source? source) - (let ((loc (or (package-field-location package 'version) - (package-location package)))) - (format (current-error-port) - (_ "~a: ~a would be upgraded from ~a to ~a~%") - (location->string loc) - (package-name package) (package-version package) - (upstream-source-version source)))) - (#f #f))) - packages)))))) + (with-store store + (run-with-store store + (cond + (list-dependent? + (list-dependents packages)) + (update? + (parameterize ((%openpgp-key-server + (or (assoc-ref opts 'key-server) + (%openpgp-key-server))) + (%gpg-command + (or (assoc-ref opts 'gpg-command) + (%gpg-command)))) + (for-each + (cut update-package store <> updaters + #:key-download key-download) + packages) + (with-monad %store-monad + (return #t)))) + (else + (for-each (lambda (package) + (match (package-update-path package updaters) + ((? upstream-source? source) + (let ((loc (or (package-field-location package 'version) + (package-location package)))) + (format (current-error-port) + (_ "~a: ~a would be upgraded from ~a to ~a~%") + (location->string loc) + (package-name package) (package-version package) + (upstream-source-version source)))) + (#f #f))) + packages) + (with-monad %store-monad + (return #t))))))))) From 623e4df42abd024e0a62ef0b30f9b550f37cba57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 May 2016 22:31:59 +0200 Subject: [PATCH 012/277] graph: Expose 'traverse/depth-first'. * guix/graph.scm (traverse/depth-first): New procedure, based on code formerly in 'node-transitive-edges'. (node-transitive-edges): Rewrite in terms of it. --- guix/graph.scm | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/guix/graph.scm b/guix/graph.scm index ad93403a1e..af589c5c67 100644 --- a/guix/graph.scm +++ b/guix/graph.scm @@ -37,6 +37,7 @@ node-edges node-back-edges + traverse/depth-first node-transitive-edges %graphviz-backend @@ -99,13 +100,13 @@ returns its back edges. NODES is taken to be the sinks of the global graph." (lambda (source target edges) (vhash-consq target source edges)))) -(define (node-transitive-edges nodes node-edges) - "Return the list of nodes directly or indirectly connected to NODES -according to the NODE-EDGES procedure. NODE-EDGES must be a one-argument -procedure that, given a node, returns its list of direct dependents; it is -typically returned by 'node-edges' or 'node-back-edges'." +(define (traverse/depth-first proc seed nodes node-edges) + "Do a depth-first traversal of NODES along NODE-EDGES, calling PROC with +each node and the current result, and visiting each reachable node exactly +once. NODES must be a list of nodes, and NODE-EDGES must be a one-argument +procedure as returned by 'node-edges' or 'node-back-edges'." (let loop ((nodes (append-map node-edges nodes)) - (result '()) + (result seed) (visited (setq))) (match nodes (() @@ -115,9 +116,16 @@ typically returned by 'node-edges' or 'node-back-edges'." (loop tail result visited) (let ((edges (node-edges head))) (loop (append edges tail) - (cons head result) + (proc head result) (set-insert head visited)))))))) +(define (node-transitive-edges nodes node-edges) + "Return the list of nodes directly or indirectly connected to NODES +according to the NODE-EDGES procedure. NODE-EDGES must be a one-argument +procedure that, given a node, returns its list of direct dependents; it is +typically returned by 'node-edges' or 'node-back-edges'." + (traverse/depth-first cons '() nodes node-edges)) + ;;; ;;; Graphviz export. From e144e3427da93b962c7620ce2bd64add8c83cfdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 May 2016 23:03:23 +0200 Subject: [PATCH 013/277] graph: Add 'node-reachable-count'. * guix/graph.scm (node-reachable-count): New procedure. * tests/graph.scm ("node-reachable-count"): New test. --- guix/graph.scm | 8 ++++++++ tests/graph.scm | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/guix/graph.scm b/guix/graph.scm index af589c5c67..735d340c2c 100644 --- a/guix/graph.scm +++ b/guix/graph.scm @@ -39,6 +39,7 @@ node-back-edges traverse/depth-first node-transitive-edges + node-reachable-count %graphviz-backend graph-backend? @@ -126,6 +127,13 @@ procedure that, given a node, returns its list of direct dependents; it is typically returned by 'node-edges' or 'node-back-edges'." (traverse/depth-first cons '() nodes node-edges)) +(define (node-reachable-count nodes node-edges) + "Return the number of nodes reachable from NODES along NODE-EDGES." + (traverse/depth-first (lambda (_ count) + (+ 1 count)) + 0 + nodes node-edges)) + ;;; ;;; Graphviz export. diff --git a/tests/graph.scm b/tests/graph.scm index 32317195d7..1ce06cc817 100644 --- a/tests/graph.scm +++ b/tests/graph.scm @@ -275,4 +275,17 @@ edges." (return (lset= eq? (node-transitive-edges (list p2) edges) (list p1a p1b p0))))))) +(test-equal "node-reachable-count" + '(3 3) + (run-with-store %store + (let* ((p0 (dummy-package "p0")) + (p1a (dummy-package "p1a" (inputs `(("p0" ,p0))))) + (p1b (dummy-package "p1b" (inputs `(("p0" ,p0))))) + (p2 (dummy-package "p2" (inputs `(("p1a" ,p1a) ("p1b" ,p1b)))))) + (mlet* %store-monad ((all -> (list p2 p1a p1b p0)) + (edges (node-edges %package-node-type all)) + (back (node-back-edges %package-node-type all))) + (return (list (node-reachable-count (list p2) edges) + (node-reachable-count (list p0) back))))))) + (test-end "graph") From 7febe3a28267c6cc41e499db9171d515c31bc646 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 4 Dec 2015 12:00:32 -0500 Subject: [PATCH 014/277] gnu: grub: Re-enable test. * gnu/packages/grub.scm (grub)[arguments]: Re-enable test. --- gnu/packages/grub.scm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm index ec2feebbf4..31b270c0d8 100644 --- a/gnu/packages/grub.scm +++ b/gnu/packages/grub.scm @@ -25,6 +25,7 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages flex) + #:use-module (gnu packages disk) #:use-module (gnu packages bison) #:use-module (gnu packages gettext) #:use-module (gnu packages fontutils) @@ -99,11 +100,6 @@ ;; Make the font visible. (copy-file (assoc-ref inputs "unifont") "unifont.bdf.gz") (system* "gunzip" "unifont.bdf.gz") - - ;; TODO: Re-enable this test when we have Parted. - (substitute* "tests/partmap_test.in" - (("set -e") "exit 77")) - #t))))) (inputs `(;; ("lvm2" ,lvm2) @@ -121,6 +117,7 @@ ;; Dependencies for the test suite. The "real" QEMU is needed here, ;; because several targets are used. + ("parted" ,parted) ("qemu" ,qemu-for-tests) ("xorriso" ,xorriso))) (home-page "http://www.gnu.org/software/grub/") From d16479c51e45276f719c3b11a243f7edf44d91ff Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 24 May 2016 08:47:59 +0300 Subject: [PATCH 015/277] gnu: enblend-enfuse: Update to 4.2. * gnu/packages/photo.scm (enblend-enfuse): Update to 4.2. [native-inputs]: Add help2man, texlive-minimal. --- gnu/packages/photo.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 6af4e4a214..2592565a36 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Andreas Enge +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,11 +37,13 @@ #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages libusb) + #: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 readline) + #:use-module (gnu packages texlive) #:use-module (gnu packages web) #:use-module (gnu packages xfig) #:use-module (gnu packages xml)) @@ -218,7 +221,7 @@ overlapping images, as well as some command line tools.") (define-public enblend-enfuse (package (name "enblend-enfuse") - (version "4.1.3") + (version "4.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/enblend/" @@ -227,7 +230,7 @@ overlapping images, as well as some command line tools.") name "-" version ".tar.gz")) (sha256 (base32 - "1b7r1nnwaind0344ckwggy0ghl0ipbk9jzylsxcjfl05rnasw00w")))) + "0j5x011ilalb47ssah50ag0a4phgh1b0wdgxdbbp1gcyjcjf60w7")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -235,8 +238,10 @@ overlapping images, as well as some command line tools.") ("perl-timedate" ,perl-timedate) ;; for building the documentation ("gnuplot" ,gnuplot) + ("help2man" ,help2man) ("imagemagick" ,imagemagick) ("libxml2" ,libxml2) + ("texlive-minimal" ,texlive-minimal) ("tidy" ,tidy) ("transfig" ,transfig))) (inputs From 486f36eb9eee508589c6edc99f4e194e105cc1ff Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 19 May 2016 11:01:40 +0300 Subject: [PATCH 016/277] gnu: emacs: Remove *.elc and autoloads from the tarball. * gnu/packages/emacs.scm (emacs)[source]: Add 'snippet' to remove compiled and generated elisp files. --- gnu/packages/emacs.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 18898e9c29..ae02a079b0 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -80,7 +80,18 @@ (base32 "0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx")) (patches (search-patches "emacs-exec-path.patch" - "emacs-source-date-epoch.patch")))) + "emacs-source-date-epoch.patch")) + (modules '((guix build utils))) + (snippet + ;; Delete the bundled byte-compiled elisp files and + ;; generated autoloads. + '(with-directory-excursion "lisp" + (for-each delete-file + (append (find-files "." "\\.elc$") + (find-files "." "loaddefs\\.el$") + ;; This is the only "autoloads" file that + ;; does not have "*loaddefs.el" name. + '("eshell/esh-groups.el"))))))) (build-system glib-or-gtk-build-system) (arguments `(#:phases From b2eaf7bacd86d962d6e6ae0efa755741d1b781c8 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 11 May 2016 23:25:29 +0300 Subject: [PATCH 017/277] gnu: Add emacs-minimal. * gnu/packages/emacs.scm (emacs-minimal): New variable. --- gnu/packages/emacs.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index ae02a079b0..624059105f 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -178,9 +178,24 @@ large Lisp programs. It has full Unicode support for nearly all human languages.") (license license:gpl3+))) -(define-public emacs-no-x +(define-public emacs-minimal ;; This is the version that you should use as an input to packages that just ;; need to byte-compile .el files. + (package (inherit emacs) + (name "emacs-minimal") + (synopsis "The extensible text editor (used only for byte-compilation)") + (build-system gnu-build-system) + (arguments + (substitute-keyword-arguments (package-arguments emacs) + ((#:phases phases) + `(modify-phases ,phases + (delete 'install-site-start))))) + (inputs + `(("ncurses" ,ncurses))) + (native-inputs + `(("pkg-config" ,pkg-config))))) + +(define-public emacs-no-x (package (inherit emacs) (name "emacs-no-x") (synopsis "The extensible, customizable, self-documenting text From a6eafbed665231e0f0fedeea8dbab491d20fa241 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 12 May 2016 00:41:12 +0300 Subject: [PATCH 018/277] build-system/emacs: Use 'emacs-minimal' by default. * guix/build-system/emacs.scm (default-emacs): Use 'emacs-minimal'. * gnu/packages/emacs.scm (emacs-auctex): Use 'emacs'. --- gnu/packages/emacs.scm | 3 +++ guix/build-system/emacs.scm | 6 +----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 624059105f..ba30ea138c 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1017,6 +1017,9 @@ as a library for other Emacs packages.") (base32 "1pmki8hdjjikxlvip3pzi350bln3gcimr27yjf0xfwjvnp5hh9nc")))) (build-system emacs-build-system) + ;; We use 'emacs' because AUCTeX requires dbus at compile time + ;; ('emacs-minimal' does not provide dbus). + (arguments `(#:emacs ,emacs)) (native-inputs `(("perl" ,perl))) (home-page "http://www.gnu.org/software/auctex/") diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm index 03c1eb2baf..a7982002b6 100644 --- a/guix/build-system/emacs.scm +++ b/guix/build-system/emacs.scm @@ -47,11 +47,7 @@ "Return the default Emacs package." ;; Lazily resolve the binding to avoid a circular dependency. (let ((emacs-mod (resolve-interface '(gnu packages emacs)))) - ;; we use 'emacs' instead of 'emacs-no-x' because the latter appears not - ;; to be loading some macros and causes problems to some packages. For - ;; example, with the latter AUCTeX gives the error message: - ;; "(invalid-function dbus-ignore-errors)". - (module-ref emacs-mod 'emacs))) + (module-ref emacs-mod 'emacs-minimal))) (define* (lower name #:key source inputs native-inputs outputs system target From 6aaf38992cd40d45ab158a21e13abe403f75b251 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 12 May 2016 01:53:02 +0300 Subject: [PATCH 019/277] gnu: Move emacs for building from inputs to native-inputs. * gnu/packages/emacs.scm (geiser): Move "emacs" from inputs to native-inputs. (paredit): Likewise. (haskell-mode): Likewise. (emacs-w3m): Likewise. (emacs-wget): Likewise. * gnu/packages/mail.scm (mu): Likewise. * gnu/packages/version-control.scm (vc-dwim): Likewise. --- gnu/packages/emacs.scm | 20 ++++++++++---------- gnu/packages/mail.scm | 2 +- gnu/packages/version-control.scm | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index ba30ea138c..3a6c2d1705 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -275,8 +275,8 @@ editor (without an X toolkit)" ) "/share/emacs/site-lisp/" "geiser-autoloads.el"))) %standard-phases))) - (inputs `(("guile" ,guile-2.0) - ("emacs" ,emacs-no-x))) + (inputs `(("guile" ,guile-2.0))) + (native-inputs `(("emacs" ,emacs-no-x))) (home-page "http://nongnu.org/geiser/") (synopsis "Collection of Emacs modes for Guile and Racket hacking") (description @@ -330,7 +330,7 @@ metadata.") (base32 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka")))) (build-system trivial-build-system) - (inputs `(("emacs" ,emacs-no-x))) + (native-inputs `(("emacs" ,emacs-no-x))) (arguments `(#:modules ((guix build utils) (guix build emacs-utils)) @@ -568,9 +568,9 @@ support for Git-SVN.") version ".tar.gz")) (sha256 (base32 "1kxc2yj8vb122dv91r68h7c5ladcryx963fr16plfhg71fv7f9av")))) - (inputs `(("emacs" ,emacs-no-x))) (native-inputs - `(("texinfo" ,texinfo))) + `(("emacs" ,emacs-no-x) + ("texinfo" ,texinfo))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "EMACS=" @@ -709,10 +709,10 @@ provides an optional IDE-like error list.") (base32 "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y")))) (build-system gnu-build-system) - (native-inputs `(("autoconf" ,autoconf))) + (native-inputs `(("autoconf" ,autoconf) + ("emacs" ,emacs-no-x))) (inputs `(("w3m" ,w3m) - ("imagemagick" ,imagemagick) - ("emacs" ,emacs-no-x))) + ("imagemagick" ,imagemagick))) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) @@ -781,8 +781,8 @@ provides an optional IDE-like error list.") (sha256 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff")))) (build-system gnu-build-system) - (inputs `(("wget" ,wget) - ("emacs" ,emacs-no-x))) + (inputs `(("wget" ,wget))) + (native-inputs `(("emacs" ,emacs-no-x))) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index e86afb2f2d..0f476eb13e 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -344,12 +344,12 @@ repository and Maildir/IMAP as LOCAL repository.") ("glib" ,glib "bin") ; for gtester ("autoconf" ,autoconf) ("automake" ,automake) + ("emacs" ,emacs-no-x) ("libtool" ,libtool) ("texinfo" ,texinfo))) ;; TODO: Add webkit and gtk to build the mug GUI. (inputs `(("xapian" ,xapian) - ("emacs" ,emacs-no-x) ("guile" ,guile-2.0) ("glib" ,glib) ("gmime" ,gmime) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 1e39b9c8cb..d62abf1069 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -851,8 +851,8 @@ masters from remote CVS hosts.") "094pjwshvazlgagc254in2xvrp93vhcj0kb5ms17qs7sch99x9z2")))) (build-system gnu-build-system) (inputs `(("perl" ,perl) - ("inetutils" ,inetutils) ; for `hostname', used in the tests - ("emacs" ,emacs-no-x))) ; for `ctags' + ("inetutils" ,inetutils))) ; for `hostname', used in the tests + (native-inputs `(("emacs" ,emacs-no-x))) ; for `ctags' (home-page "http://www.gnu.org/software/vc-dwim/") (synopsis "Version-control-agnostic ChangeLog diff and commit tool") (description From b8fc36223957e42a0d4f16d0ba8f88bf7c8836e4 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 12 May 2016 01:58:59 +0300 Subject: [PATCH 020/277] gnu: Use 'emacs-minimal' instead of 'emacs-no-x'. * gnu/packages/code.scm (cflow)[native-inputs]: Use 'emacs-minimal' instead of 'emacs-no-x'. * gnu/packages/databases.scm (recutils): Likewise. * gnu/packages/finance.scm (ledger): Likewise * gnu/packages/idutils.scm (idutils): Likewise. * gnu/packages/mail.scm (mu): Likewise. * gnu/packages/ocaml.scm (proof-general): Likewise. * gnu/packages/package-management.scm (guix-0.10.0): Likewise. * gnu/packages/plotutils.scm (asymptote): Likewise. * gnu/packages/scheme.scm (scmutils): Likewise. * gnu/packages/version-control.scm (vc-dwim): Likewise. * gnu/packages/emacs.scm (geiser): Likewise. (paredit): Likewise. (git-modes): Likewise. (magit): Likewise. (magit-svn): Likewise. (haskell-mode): Likewise. (let-alist): Likewise. (emacs-w3m): Likewise. (emacs-wget): Likewise. (emms): Likewise. (bbdb): Likewise. (emacs-mmm-mode): Likewise. (emacs-pdf-tools): Likewise. (emacs-popup)[native-inputs]: Remove as it is not needed for emacs-build-system. (emacs-rfcview): Likewise. (emacs-ffap-rfc-space): Likewise. --- gnu/packages/code.scm | 2 +- gnu/packages/databases.scm | 2 +- gnu/packages/emacs.scm | 32 ++++++++++++----------------- gnu/packages/finance.scm | 2 +- gnu/packages/idutils.scm | 2 +- gnu/packages/mail.scm | 2 +- gnu/packages/ocaml.scm | 2 +- gnu/packages/package-management.scm | 2 +- gnu/packages/plotutils.scm | 2 +- gnu/packages/scheme.scm | 2 +- gnu/packages/version-control.scm | 2 +- 11 files changed, 23 insertions(+), 29 deletions(-) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index 7e8a361967..c3efd15e44 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -54,7 +54,7 @@ (build-system gnu-build-system) ;; Needed to have cflow-mode.el installed. - (native-inputs `(("emacs" ,emacs-no-x))) + (native-inputs `(("emacs" ,emacs-minimal))) (home-page "http://www.gnu.org/software/cflow/") (synopsis "Create a graph of control flow within a program") diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 57181f6e5f..bd535a3156 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -381,7 +381,7 @@ pictures, sounds, or video.") (assoc-ref %build-inputs "bash:include") "/include/bash")))) - (native-inputs `(("emacs" ,emacs-no-x) + (native-inputs `(("emacs" ,emacs-minimal) ("bc" ,bc) ("bash:include" ,bash "include") ("libuuid" ,util-linux))) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 3a6c2d1705..709dfe44c4 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -276,7 +276,7 @@ editor (without an X toolkit)" ) "geiser-autoloads.el"))) %standard-phases))) (inputs `(("guile" ,guile-2.0))) - (native-inputs `(("emacs" ,emacs-no-x))) + (native-inputs `(("emacs" ,emacs-minimal))) (home-page "http://nongnu.org/geiser/") (synopsis "Collection of Emacs modes for Guile and Racket hacking") (description @@ -330,7 +330,7 @@ metadata.") (base32 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka")))) (build-system trivial-build-system) - (native-inputs `(("emacs" ,emacs-no-x))) + (native-inputs `(("emacs" ,emacs-minimal))) (arguments `(#:modules ((guix build utils) (guix build emacs-utils)) @@ -401,7 +401,7 @@ when typing parentheses directly or commenting out code line by line.") (lisp (string-append out "/share/emacs/site-lisp/"))) (emacs-generate-autoloads ,name lisp))))))) - (native-inputs `(("emacs" ,emacs-no-x))) + (native-inputs `(("emacs" ,emacs-minimal))) (home-page "https://github.com/magit/git-modes") (synopsis "Emacs major modes for Git configuration files") (description @@ -448,7 +448,7 @@ on stdout instead of using a socket as the Emacsclient does.") "0im1jrqw29g5anrrjflj6b2gpyqkvpghnq8zvywxyhmjwzar4rn7")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) - ("emacs" ,emacs-no-x))) + ("emacs" ,emacs-minimal))) (inputs `(("git" ,git))) (propagated-inputs `(("dash" ,emacs-dash) @@ -510,7 +510,7 @@ operations.") (base32 "04y88j7q9h8xjbx5dbick6n5nr1522sn9i1znp0qwk3vjb4b5mzz")))) (build-system trivial-build-system) - (native-inputs `(("emacs" ,emacs-no-x) + (native-inputs `(("emacs" ,emacs-minimal) ("tar" ,tar) ("gzip" ,gzip))) (propagated-inputs `(("dash" ,emacs-dash) @@ -569,7 +569,7 @@ support for Git-SVN.") (sha256 (base32 "1kxc2yj8vb122dv91r68h7c5ladcryx963fr16plfhg71fv7f9av")))) (native-inputs - `(("emacs" ,emacs-no-x) + `(("emacs" ,emacs-minimal) ("texinfo" ,texinfo))) (build-system gnu-build-system) (arguments @@ -650,7 +650,7 @@ programs.") (setenv "PATH" (string-append emacs "/bin")) (emacs-byte-compile-directory lispdir) #t)))) - (native-inputs `(("emacs" ,emacs-no-x))) + (native-inputs `(("emacs" ,emacs-minimal))) (home-page "http://elpa.gnu.org/packages/let-alist.html") (synopsis "Easily let-bind values of an assoc-list by their names") (description @@ -710,7 +710,7 @@ provides an optional IDE-like error list.") "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) - ("emacs" ,emacs-no-x))) + ("emacs" ,emacs-minimal))) (inputs `(("w3m" ,w3m) ("imagemagick" ,imagemagick))) (arguments @@ -782,7 +782,7 @@ provides an optional IDE-like error list.") (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff")))) (build-system gnu-build-system) (inputs `(("wget" ,wget))) - (native-inputs `(("emacs" ,emacs-no-x))) + (native-inputs `(("emacs" ,emacs-minimal))) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) @@ -921,7 +921,7 @@ provides an optional IDE-like error list.") (chmod target #o555))) %standard-phases))) #:tests? #f)) - (native-inputs `(("emacs" ,emacs-no-x) ;for (guix build emacs-utils) + (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils) ("texinfo" ,texinfo))) (inputs `(("alsa-utils" ,alsa-utils) ("vorbis-tools" ,vorbis-tools) @@ -971,7 +971,7 @@ light user interface.") (with-directory-excursion site (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))) %standard-phases))) - (native-inputs `(("emacs" ,emacs-no-x))) + (native-inputs `(("emacs" ,emacs-minimal))) (home-page "http://savannah.nongnu.org/projects/bbdb/") (synopsis "Contact management utility for Emacs") (description @@ -1054,7 +1054,7 @@ or XEmacs.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) - ("emacs" ,emacs-no-x) + ("emacs" ,emacs-minimal) ("texinfo" ,texinfo))) (home-page "https://github.com/purcell/mmm-mode") (synopsis "Allow multiple major modes in an Emacs buffer") @@ -1118,7 +1118,7 @@ single buffer.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("pkg-config" ,pkg-config) - ("emacs" ,emacs-no-x))) + ("emacs" ,emacs-minimal))) (propagated-inputs `(("let-alist" ,let-alist))) (inputs `(("poppler" ,poppler) @@ -1530,8 +1530,6 @@ debugging, documentation lookup, and so on.") (base32 "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0")))) (build-system emacs-build-system) - (native-inputs - `(("emacs" ,emacs-no-x))) (home-page "https://github.com/auto-complete/popup-el") (synopsis "Visual Popup User Interface for Emacs") (description @@ -1579,8 +1577,6 @@ insertion mode. When enabled all keys are implicitly prefixed with (base32 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz")))) (build-system emacs-build-system) - (native-inputs - `(("emacs" ,emacs-no-x))) (synopsis "Prettify Request for Comments (RFC) documents") (description "The Internet Engineering Task Force (IETF) and the Internet Society (ISOC) publish various Internet-related protocols and specifications @@ -1605,8 +1601,6 @@ local directories.") (base32 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck")))) (build-system emacs-build-system) - (native-inputs - `(("emacs" ,emacs-no-x))) (synopsis "Make ffap recognize an RFC with a space before its number") (description "The Internet Engineering Task Force (IETF) and the Internet Society (ISOC) publish various Internet-related protocols and diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index b511d2c951..23faead747 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -158,7 +158,7 @@ line client and a client based on Qt.") ("tzdata" ,tzdata) ("utfcpp" ,utfcpp))) (native-inputs - `(("emacs" ,emacs-no-x) + `(("emacs" ,emacs-minimal) ("groff" ,groff) ("texinfo" ,texinfo))) (home-page "http://ledger-cli.org/") diff --git a/gnu/packages/idutils.scm b/gnu/packages/idutils.scm index 7a8e1c6752..63760c84e9 100644 --- a/gnu/packages/idutils.scm +++ b/gnu/packages/idutils.scm @@ -37,7 +37,7 @@ "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1")) (patches (search-patches "diffutils-gets-undeclared.patch")))) (build-system gnu-build-system) - (native-inputs `(("emacs" ,emacs-no-x))) + (native-inputs `(("emacs" ,emacs-minimal))) (home-page "http://www.gnu.org/software/idutils/") (synopsis "Identifier database utilities") (description diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 0f476eb13e..39133fcff0 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -344,7 +344,7 @@ repository and Maildir/IMAP as LOCAL repository.") ("glib" ,glib "bin") ; for gtester ("autoconf" ,autoconf) ("automake" ,automake) - ("emacs" ,emacs-no-x) + ("emacs" ,emacs-minimal) ("libtool" ,libtool) ("texinfo" ,texinfo))) ;; TODO: Add webkit and gtk to build the mug GUI. diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 434fb132bb..aafae51d3f 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -386,7 +386,7 @@ It is developed using Objective Caml and Camlp5.") (build-system gnu-build-system) (native-inputs `(("which" ,which) - ("emacs" ,emacs-no-x) + ("emacs" ,emacs-minimal) ("texinfo" ,texinfo))) (inputs `(("host-emacs" ,emacs) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 314dc90888..993808f10c 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -152,7 +152,7 @@ #t)))))) (native-inputs `(("pkg-config" ,pkg-config) - ("emacs" ,emacs-no-x))) ;for guix.el + ("emacs" ,emacs-minimal))) ;for guix.el (inputs (let ((boot-guile (lambda (arch hash) (origin diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index ef61239cab..5871fb0b55 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -189,7 +189,7 @@ colors, styles, options and details.") `(("gs" ,ghostscript) ;For tests ("texinfo" ,texinfo) ;For generating documentation ("texlive" ,texlive) ;For tests and documentation - ("emacs" ,emacs-no-x) + ("emacs" ,emacs-minimal) ("perl" ,perl))) (inputs `(("fftw" ,fftw) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 6f2ce9f51f..c378dc3349 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -576,7 +576,7 @@ threads.") (build-system gnu-build-system) (inputs `(("mit-scheme" ,mit-scheme) - ("emacs" ,emacs-no-x))) + ("emacs" ,emacs-minimal))) (arguments `(#:tests? #f ;; no tests-suite #:modules ((guix build gnu-build-system) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index d62abf1069..26cd11acde 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -852,7 +852,7 @@ masters from remote CVS hosts.") (build-system gnu-build-system) (inputs `(("perl" ,perl) ("inetutils" ,inetutils))) ; for `hostname', used in the tests - (native-inputs `(("emacs" ,emacs-no-x))) ; for `ctags' + (native-inputs `(("emacs" ,emacs-minimal))) ; for `ctags' (home-page "http://www.gnu.org/software/vc-dwim/") (synopsis "Version-control-agnostic ChangeLog diff and commit tool") (description From 8eeb301de2b4d3086f8e88f8a48bba0e83cf79bc Mon Sep 17 00:00:00 2001 From: humanitiesNerd Date: Wed, 18 May 2016 15:41:47 +0200 Subject: [PATCH 021/277] gnu: Add emacs-clojure-mode. * gnu/packages/emacs.scm (emacs-clojure-mode): New variable. Signed-off-by: Alex Kost --- gnu/packages/emacs.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 709dfe44c4..967f5832bb 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1662,3 +1662,25 @@ wrap-region, electric-pair-mode, paredit and others. With the basic features found in other packages it also brings many improvements as well as completely new features.") (license license:gpl3+))) + +(define-public emacs-clojure-mode + (package + (name "emacs-clojure-mode") + (version "5.3.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/clojure-emacs/clojure-mode/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0gi8ra3ap5m3mz4qh1yxp2cldn7z9xcxvypznr6rrlc6a9l8s5a6")))) + (build-system emacs-build-system) + (home-page "http://github.com/clojure-emacs/clojure-mode") + (synopsis "Major mode for Clojure code") + (description + "This Emacs package provides font-lock, indentation, navigation and basic +refactoring for the @uref{http://clojure.org, Clojure programming language}. +It is recommended to use @code{clojure-mode} with paredit or smartparens.") + (license license:gpl3+))) From cf5f2ad30c37d92083fa52a82fa4c4eb6d56f48a Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Mon, 16 May 2016 17:55:38 +0200 Subject: [PATCH 022/277] ui: Let users report translation bugs. * guix/ui.scm (show-bug-report-information): Add a comment for translators. --- guix/ui.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/guix/ui.scm b/guix/ui.scm index 8310974ac7..cbc9dc841a 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2014 Cyrill Schenkel ;;; Copyright © 2014, 2015 Alex Kost ;;; Copyright © 2015 David Thompson -;;; Copyright © 2015 Mathieu Lirzin +;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; ;;; This file is part of GNU Guix. ;;; @@ -313,6 +313,10 @@ There is NO WARRANTY, to the extent permitted by law. (exit 0)) (define (show-bug-report-information) + ;; TRANSLATORS: The placeholder indicates the bug-reporting address for this + ;; package. Please add another line saying "Report translation bugs to + ;; ...\n" with the address for translation bugs (typically your translation + ;; team's web or email address). (format #t (_ " Report bugs to: ~a.") %guix-bug-report-address) (format #t (_ " From c0d2e7b197a3c511eb1bf60b61ee6fdc673e36f4 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Tue, 24 May 2016 13:06:21 +0200 Subject: [PATCH 023/277] build: Use "%D%" in Makefile fragments. * doc/local.mk: Use "%D%" for the directory of the fragment relative to the base 'Makefile.am'. * emacs/local.mk: Likewise. * gnu/local.mk: Likewise. * nix/local.mk: Likewise. --- doc/local.mk | 84 +-- emacs/local.mk | 74 +-- gnu/local.mk | 1586 ++++++++++++++++++++++++------------------------ nix/local.mk | 138 ++--- 4 files changed, 941 insertions(+), 941 deletions(-) diff --git a/doc/local.mk b/doc/local.mk index b9f07c3590..64bd2a5169 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -20,49 +20,49 @@ # You should have received a copy of the GNU General Public License # along with GNU Guix. If not, see . -info_TEXINFOS = doc/guix.texi +info_TEXINFOS = %D%/guix.texi DOT_FILES = \ - doc/images/bootstrap-graph.dot \ - doc/images/bootstrap-packages.dot \ - doc/images/coreutils-graph.dot \ - doc/images/coreutils-bag-graph.dot \ - doc/images/service-graph.dot \ - doc/images/shepherd-graph.dot + %D%/images/bootstrap-graph.dot \ + %D%/images/bootstrap-packages.dot \ + %D%/images/coreutils-graph.dot \ + %D%/images/coreutils-bag-graph.dot \ + %D%/images/service-graph.dot \ + %D%/images/shepherd-graph.dot DOT_VECTOR_GRAPHICS = \ $(DOT_FILES:%.dot=%.eps) \ $(DOT_FILES:%.dot=%.pdf) EXTRA_DIST += \ - doc/htmlxref.cnf \ - doc/contributing.texi \ - doc/emacs.texi \ - doc/fdl-1.3.texi \ + %D%/htmlxref.cnf \ + %D%/contributing.texi \ + %D%/emacs.texi \ + %D%/fdl-1.3.texi \ $(DOT_FILES) \ $(DOT_VECTOR_GRAPHICS) \ - doc/images/coreutils-size-map.eps \ - doc/environment-gdb.scm \ - doc/package-hello.scm + %D%/images/coreutils-size-map.eps \ + %D%/environment-gdb.scm \ + %D%/package-hello.scm OS_CONFIG_EXAMPLES_TEXI = \ - doc/os-config-bare-bones.texi \ - doc/os-config-desktop.texi \ - doc/os-config-lightweight-desktop.texi + %D%/os-config-bare-bones.texi \ + %D%/os-config-desktop.texi \ + %D%/os-config-lightweight-desktop.texi # Bundle this file so that makeinfo finds it in out-of-source-tree builds. BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI) EXTRA_DIST += $(OS_CONFIG_EXAMPLES_TEXI) MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI) -doc/os-config-%.texi: gnu/system/examples/%.tmpl +%D%/os-config-%.texi: gnu/system/examples/%.tmpl $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ cp "$<" "$@" infoimagedir = $(infodir)/images dist_infoimage_DATA = \ $(DOT_FILES:%.dot=%.png) \ - doc/images/coreutils-size-map.png + %D%/images/coreutils-size-map.png # Try hard to obtain an image size and aspect that's reasonable for inclusion # in an Info or PDF document. @@ -86,13 +86,13 @@ DOT_OPTIONS = \ $(AM_V_GEN)convert "$<" "$@-tmp.eps"; \ mv "$@-tmp.eps" "$@" -# We cannot add new dependencies to `doc/guix.pdf' & co. (info "(automake) +# We cannot add new dependencies to `%D%/guix.pdf' & co. (info "(automake) # Extending"). Using the `-local' rules is imperfect, because they may be # triggered after the main rule. Oh, well. pdf-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.pdf) info-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.png) ps-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.eps) \ - $(top_srcdir)/doc/images/coreutils-size-map.eps + $(top_srcdir)/%D%/images/coreutils-size-map.eps dvi-local: ps-local ## ----------- ## @@ -106,25 +106,25 @@ dvi-local: ps-local # They are built in $(srcdir) like info manuals. sub_commands_mans = \ - $(srcdir)/doc/guix-archive.1 \ - $(srcdir)/doc/guix-build.1 \ - $(srcdir)/doc/guix-challenge.1 \ - $(srcdir)/doc/guix-download.1 \ - $(srcdir)/doc/guix-edit.1 \ - $(srcdir)/doc/guix-environment.1 \ - $(srcdir)/doc/guix-gc.1 \ - $(srcdir)/doc/guix-hash.1 \ - $(srcdir)/doc/guix-import.1 \ - $(srcdir)/doc/guix-lint.1 \ - $(srcdir)/doc/guix-package.1 \ - $(srcdir)/doc/guix-publish.1 \ - $(srcdir)/doc/guix-pull.1 \ - $(srcdir)/doc/guix-refresh.1 \ - $(srcdir)/doc/guix-size.1 \ - $(srcdir)/doc/guix-system.1 + $(srcdir)/%D%/guix-archive.1 \ + $(srcdir)/%D%/guix-build.1 \ + $(srcdir)/%D%/guix-challenge.1 \ + $(srcdir)/%D%/guix-download.1 \ + $(srcdir)/%D%/guix-edit.1 \ + $(srcdir)/%D%/guix-environment.1 \ + $(srcdir)/%D%/guix-gc.1 \ + $(srcdir)/%D%/guix-hash.1 \ + $(srcdir)/%D%/guix-import.1 \ + $(srcdir)/%D%/guix-lint.1 \ + $(srcdir)/%D%/guix-package.1 \ + $(srcdir)/%D%/guix-publish.1 \ + $(srcdir)/%D%/guix-pull.1 \ + $(srcdir)/%D%/guix-refresh.1 \ + $(srcdir)/%D%/guix-size.1 \ + $(srcdir)/%D%/guix-system.1 dist_man1_MANS = \ - $(srcdir)/doc/guix.1 \ + $(srcdir)/%D%/guix.1 \ $(sub_commands_mans) gen_man = \ @@ -133,14 +133,14 @@ gen_man = \ HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME) -$(srcdir)/doc/guix.1: scripts/guix.in $(sub_commands_mans) +$(srcdir)/%D%/guix.1: scripts/guix.in $(sub_commands_mans) -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1` # The 'case' ensures the man pages are only generated if the corresponding # source script (the first prerequisite) has been changed. The $(GOBJECTS) # prerequisite is solely meant to force these docs to be made only after all # Guile modules have been compiled. -$(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS) +$(srcdir)/%D%/guix-%.1: guix/scripts/%.scm $(GOBJECTS) -@case '$?' in \ *$<*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \ $(gen_man) --output="$@" "guix $*";; \ @@ -149,9 +149,9 @@ $(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS) if BUILD_DAEMON -dist_man1_MANS += $(srcdir)/doc/guix-daemon.1 +dist_man1_MANS += $(srcdir)/%D%/guix-daemon.1 -$(srcdir)/doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc +$(srcdir)/%D%/guix-daemon.1: nix/nix-daemon/guix-daemon.cc -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1` endif diff --git a/emacs/local.mk b/emacs/local.mk index f83063cf5f..959ec2dd34 100644 --- a/emacs/local.mk +++ b/emacs/local.mk @@ -17,51 +17,51 @@ # You should have received a copy of the GNU General Public License # along with GNU Guix. If not, see . -AUTOLOADS = emacs/guix-autoloads.el +AUTOLOADS = %D%/guix-autoloads.el ELFILES = \ - emacs/guix-about.el \ - emacs/guix-backend.el \ - emacs/guix-base.el \ - emacs/guix-build-log.el \ - emacs/guix-buffer.el \ - emacs/guix-command.el \ - emacs/guix-devel.el \ - emacs/guix-emacs.el \ - emacs/guix-entry.el \ - emacs/guix-external.el \ - emacs/guix-geiser.el \ - emacs/guix-guile.el \ - emacs/guix-help-vars.el \ - emacs/guix-history.el \ - emacs/guix-hydra.el \ - emacs/guix-hydra-build.el \ - emacs/guix-hydra-jobset.el \ - emacs/guix-info.el \ - emacs/guix-init.el \ - emacs/guix-license.el \ - emacs/guix-list.el \ - emacs/guix-location.el \ - emacs/guix-messages.el \ - emacs/guix-pcomplete.el \ - emacs/guix-popup.el \ - emacs/guix-prettify.el \ - emacs/guix-profiles.el \ - emacs/guix-read.el \ - emacs/guix-ui.el \ - emacs/guix-ui-license.el \ - emacs/guix-ui-location.el \ - emacs/guix-ui-package.el \ - emacs/guix-ui-generation.el \ - emacs/guix-ui-system-generation.el \ - emacs/guix-utils.el + %D%/guix-about.el \ + %D%/guix-backend.el \ + %D%/guix-base.el \ + %D%/guix-build-log.el \ + %D%/guix-buffer.el \ + %D%/guix-command.el \ + %D%/guix-devel.el \ + %D%/guix-emacs.el \ + %D%/guix-entry.el \ + %D%/guix-external.el \ + %D%/guix-geiser.el \ + %D%/guix-guile.el \ + %D%/guix-help-vars.el \ + %D%/guix-history.el \ + %D%/guix-hydra.el \ + %D%/guix-hydra-build.el \ + %D%/guix-hydra-jobset.el \ + %D%/guix-info.el \ + %D%/guix-init.el \ + %D%/guix-license.el \ + %D%/guix-list.el \ + %D%/guix-location.el \ + %D%/guix-messages.el \ + %D%/guix-pcomplete.el \ + %D%/guix-popup.el \ + %D%/guix-prettify.el \ + %D%/guix-profiles.el \ + %D%/guix-read.el \ + %D%/guix-ui.el \ + %D%/guix-ui-license.el \ + %D%/guix-ui-location.el \ + %D%/guix-ui-package.el \ + %D%/guix-ui-generation.el \ + %D%/guix-ui-system-generation.el \ + %D%/guix-utils.el if HAVE_EMACS dist_lisp_DATA = $(ELFILES) nodist_lisp_DATA = \ - emacs/guix-config.el \ + %D%/guix-config.el \ $(AUTOLOADS) $(AUTOLOADS): $(ELFILES) diff --git a/gnu/local.mk b/gnu/local.mk index c13090196e..99e43e1ed8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -26,824 +26,824 @@ GNU_SYSTEM_MODULES = \ gnu.scm \ - gnu/artwork.scm \ - gnu/packages.scm \ - gnu/packages/abduco.scm \ - gnu/packages/abiword.scm \ - gnu/packages/acct.scm \ - gnu/packages/acl.scm \ - gnu/packages/admin.scm \ - gnu/packages/adns.scm \ - gnu/packages/algebra.scm \ - gnu/packages/aidc.scm \ - gnu/packages/animation.scm \ - gnu/packages/anthy.scm \ - gnu/packages/apl.scm \ - gnu/packages/apr.scm \ - gnu/packages/aspell.scm \ - gnu/packages/attr.scm \ - gnu/packages/audacity.scm \ - gnu/packages/audio.scm \ - gnu/packages/augeas.scm \ - gnu/packages/autogen.scm \ - gnu/packages/autotools.scm \ - gnu/packages/avahi.scm \ - gnu/packages/avr.scm \ - gnu/packages/backup.scm \ - gnu/packages/base.scm \ - gnu/packages/bash.scm \ - gnu/packages/bdw-gc.scm \ - gnu/packages/bioinformatics.scm \ - gnu/packages/bittorrent.scm \ - gnu/packages/bison.scm \ - gnu/packages/boost.scm \ - gnu/packages/bootstrap.scm \ - gnu/packages/busybox.scm \ - gnu/packages/c.scm \ - gnu/packages/calcurse.scm \ - gnu/packages/ccache.scm \ - gnu/packages/cdrom.scm \ - gnu/packages/certs.scm \ - gnu/packages/check.scm \ - gnu/packages/ci.scm \ - gnu/packages/cmake.scm \ - gnu/packages/code.scm \ - gnu/packages/commencement.scm \ - gnu/packages/compression.scm \ - gnu/packages/conkeror.scm \ - gnu/packages/conky.scm \ - gnu/packages/connman.scm \ - gnu/packages/cook.scm \ - gnu/packages/cpio.scm \ - gnu/packages/cppi.scm \ - gnu/packages/cross-base.scm \ - gnu/packages/crypto.scm \ - gnu/packages/cryptsetup.scm \ - gnu/packages/cups.scm \ - gnu/packages/curl.scm \ - gnu/packages/cyrus-sasl.scm \ - gnu/packages/databases.scm \ - gnu/packages/datamash.scm \ - gnu/packages/datastructures.scm \ - gnu/packages/dav.scm \ - gnu/packages/dc.scm \ - gnu/packages/debug.scm \ - gnu/packages/dejagnu.scm \ - gnu/packages/dico.scm \ - gnu/packages/dictionaries.scm \ - gnu/packages/dillo.scm \ - gnu/packages/disk.scm \ - gnu/packages/djvu.scm \ - gnu/packages/dns.scm \ - gnu/packages/docbook.scm \ - gnu/packages/docker.scm \ - gnu/packages/documentation.scm \ - gnu/packages/dunst.scm \ - gnu/packages/dvtm.scm \ - gnu/packages/ebook.scm \ - gnu/packages/ed.scm \ - gnu/packages/elf.scm \ - gnu/packages/emacs.scm \ - gnu/packages/enchant.scm \ - gnu/packages/engineering.scm \ - gnu/packages/enlightenment.scm \ - gnu/packages/entr.scm \ - gnu/packages/fcitx.scm \ - gnu/packages/feh.scm \ - gnu/packages/figlet.scm \ - gnu/packages/file.scm \ - gnu/packages/finance.scm \ - gnu/packages/firmware.scm \ - gnu/packages/fish.scm \ - gnu/packages/flashing-tools.scm \ - gnu/packages/flex.scm \ - gnu/packages/fltk.scm \ - gnu/packages/fonts.scm \ - gnu/packages/fontutils.scm \ - gnu/packages/freedesktop.scm \ - gnu/packages/freeipmi.scm \ - gnu/packages/ftp.scm \ - gnu/packages/fribidi.scm \ - gnu/packages/fvwm.scm \ - gnu/packages/game-development.scm \ - gnu/packages/games.scm \ - gnu/packages/gawk.scm \ - gnu/packages/gcal.scm \ - gnu/packages/gcc.scm \ - gnu/packages/gd.scm \ - gnu/packages/gdb.scm \ - gnu/packages/geeqie.scm \ - gnu/packages/gettext.scm \ - gnu/packages/ghostscript.scm \ - gnu/packages/gimp.scm \ - gnu/packages/gkrellm.scm \ - gnu/packages/gl.scm \ - gnu/packages/glib.scm \ - gnu/packages/gnome.scm \ - gnu/packages/gnu-doc.scm \ - gnu/packages/gnucash.scm \ - gnu/packages/gnunet.scm \ - gnu/packages/gnupg.scm \ - gnu/packages/gnustep.scm \ - gnu/packages/gnuzilla.scm \ - gnu/packages/gnu-pw-mgr.scm \ - gnu/packages/gperf.scm \ - gnu/packages/gprolog.scm \ - gnu/packages/gps.scm \ - gnu/packages/graphics.scm \ - gnu/packages/graphviz.scm \ - gnu/packages/groff.scm \ - gnu/packages/grub.scm \ - gnu/packages/grue-hunter.scm \ - gnu/packages/gsasl.scm \ - gnu/packages/gstreamer.scm \ - gnu/packages/gtk.scm \ - gnu/packages/guile.scm \ - gnu/packages/guile-wm.scm \ - gnu/packages/gv.scm \ - gnu/packages/gxmessage.scm \ - gnu/packages/haskell.scm \ - gnu/packages/hugs.scm \ - gnu/packages/hurd.scm \ - gnu/packages/ibus.scm \ - gnu/packages/icu4c.scm \ - gnu/packages/idutils.scm \ - gnu/packages/image.scm \ - gnu/packages/imagemagick.scm \ - gnu/packages/indent.scm \ - gnu/packages/inklingreader.scm \ - gnu/packages/inkscape.scm \ - gnu/packages/irc.scm \ - gnu/packages/iso-codes.scm \ - gnu/packages/java.scm \ - gnu/packages/jemalloc.scm \ - gnu/packages/jrnl.scm \ - gnu/packages/julia.scm \ - gnu/packages/kde.scm \ - gnu/packages/kde-frameworks.scm \ - gnu/packages/key-mon.scm \ - gnu/packages/kodi.scm \ - gnu/packages/language.scm \ - gnu/packages/ldc.scm \ - gnu/packages/lego.scm \ - gnu/packages/less.scm \ - gnu/packages/lesstif.scm \ - gnu/packages/libbsd.scm \ - gnu/packages/libcanberra.scm \ - gnu/packages/libdaemon.scm \ - gnu/packages/libedit.scm \ - gnu/packages/libevent.scm \ - gnu/packages/libffcall.scm \ - gnu/packages/libffi.scm \ - gnu/packages/libftdi.scm \ - gnu/packages/calendar.scm \ - gnu/packages/libidn.scm \ - gnu/packages/libphidget.scm \ - gnu/packages/libreoffice.scm \ - gnu/packages/libsigsegv.scm \ - gnu/packages/libunistring.scm \ - gnu/packages/libusb.scm \ - gnu/packages/libunwind.scm \ - gnu/packages/libupnp.scm \ - gnu/packages/lightning.scm \ - gnu/packages/links.scm \ - gnu/packages/linux.scm \ - gnu/packages/lirc.scm \ - gnu/packages/lisp.scm \ - gnu/packages/llvm.scm \ - gnu/packages/lout.scm \ - gnu/packages/lsh.scm \ - gnu/packages/lsof.scm \ - gnu/packages/lua.scm \ - gnu/packages/lxde.scm \ - gnu/packages/lxqt.scm \ - gnu/packages/lynx.scm \ - gnu/packages/m4.scm \ - gnu/packages/machine-learning.scm \ - gnu/packages/man.scm \ - gnu/packages/mail.scm \ - gnu/packages/make-bootstrap.scm \ - gnu/packages/markdown.scm \ - gnu/packages/marst.scm \ - gnu/packages/mate.scm \ - gnu/packages/maths.scm \ - gnu/packages/mc.scm \ - gnu/packages/mcrypt.scm \ - gnu/packages/messaging.scm \ - gnu/packages/mg.scm \ - gnu/packages/mit-krb5.scm \ - gnu/packages/moe.scm \ - gnu/packages/moreutils.scm \ - gnu/packages/mpd.scm \ - gnu/packages/mp3.scm \ - gnu/packages/mpi.scm \ - gnu/packages/multiprecision.scm \ - gnu/packages/music.scm \ - gnu/packages/mtools.scm \ - gnu/packages/nano.scm \ - gnu/packages/ncdu.scm \ - gnu/packages/ncurses.scm \ - gnu/packages/netpbm.scm \ - gnu/packages/nettle.scm \ - gnu/packages/networking.scm \ - gnu/packages/ninja.scm \ - gnu/packages/node.scm \ - gnu/packages/noweb.scm \ - gnu/packages/ntp.scm \ - gnu/packages/nutrition.scm \ - gnu/packages/nvi.scm \ - gnu/packages/ocaml.scm \ - gnu/packages/ocr.scm \ - gnu/packages/onc-rpc.scm \ - gnu/packages/openbox.scm \ - gnu/packages/openldap.scm \ - gnu/packages/openstack.scm \ - gnu/packages/orpheus.scm \ - gnu/packages/ots.scm \ - gnu/packages/owncloud.scm \ - gnu/packages/package-management.scm \ - gnu/packages/parallel.scm \ - gnu/packages/password-utils.scm \ - gnu/packages/patchutils.scm \ - gnu/packages/pciutils.scm \ - gnu/packages/pcre.scm \ - gnu/packages/pdf.scm \ - gnu/packages/pem.scm \ - gnu/packages/perl.scm \ - gnu/packages/photo.scm \ - gnu/packages/pkg-config.scm \ - gnu/packages/plotutils.scm \ - gnu/packages/polkit.scm \ - gnu/packages/popt.scm \ - gnu/packages/pth.scm \ - gnu/packages/pulseaudio.scm \ - gnu/packages/pumpio.scm \ - gnu/packages/pretty-print.scm \ - gnu/packages/protobuf.scm \ - gnu/packages/pv.scm \ - gnu/packages/python.scm \ - gnu/packages/qemu.scm \ - gnu/packages/qt.scm \ - gnu/packages/ragel.scm \ - gnu/packages/ratpoison.scm \ - gnu/packages/rc.scm \ - gnu/packages/rdesktop.scm \ - gnu/packages/rdf.scm \ - gnu/packages/readline.scm \ - gnu/packages/rrdtool.scm \ - gnu/packages/rsync.scm \ - gnu/packages/ruby.scm \ - gnu/packages/rush.scm \ - gnu/packages/samba.scm \ - gnu/packages/sawfish.scm \ - gnu/packages/scanner.scm \ - gnu/packages/scheme.scm \ - gnu/packages/screen.scm \ - gnu/packages/scribus.scm \ - gnu/packages/sdl.scm \ - gnu/packages/search.scm \ - gnu/packages/serialization.scm \ - gnu/packages/serveez.scm \ - gnu/packages/shellutils.scm \ - gnu/packages/shishi.scm \ - gnu/packages/skarnet.scm \ - gnu/packages/skribilo.scm \ - gnu/packages/slang.scm \ - gnu/packages/slim.scm \ - gnu/packages/smalltalk.scm \ - gnu/packages/ssh.scm \ - gnu/packages/stalonetray.scm \ - gnu/packages/statistics.scm \ - gnu/packages/suckless.scm \ - gnu/packages/swig.scm \ - gnu/packages/sxiv.scm \ - gnu/packages/synergy.scm \ - gnu/packages/task-management.scm \ - gnu/packages/tbb.scm \ - gnu/packages/tcl.scm \ - gnu/packages/tcsh.scm \ - gnu/packages/telephony.scm \ - gnu/packages/terminals.scm \ - gnu/packages/texinfo.scm \ - gnu/packages/texlive.scm \ - gnu/packages/textutils.scm \ - gnu/packages/time.scm \ - gnu/packages/tls.scm \ - gnu/packages/tmux.scm \ - gnu/packages/tor.scm \ - gnu/packages/tre.scm \ - gnu/packages/tv.scm \ - gnu/packages/unrtf.scm \ - gnu/packages/upnp.scm \ - gnu/packages/uucp.scm \ - gnu/packages/valgrind.scm \ - gnu/packages/version-control.scm \ - gnu/packages/video.scm \ - gnu/packages/vim.scm \ - gnu/packages/vpn.scm \ - gnu/packages/vtk.scm \ - gnu/packages/w3m.scm \ - gnu/packages/wdiff.scm \ - gnu/packages/web.scm \ - gnu/packages/webkit.scm \ - gnu/packages/wget.scm \ - gnu/packages/wicd.scm \ - gnu/packages/wine.scm \ - gnu/packages/wm.scm \ - gnu/packages/wordnet.scm \ - gnu/packages/wv.scm \ - gnu/packages/wxwidgets.scm \ - gnu/packages/xfig.scm \ - gnu/packages/xiph.scm \ - gnu/packages/xml.scm \ - gnu/packages/xnee.scm \ - gnu/packages/xdisorg.scm \ - gnu/packages/xorg.scm \ - gnu/packages/xfce.scm \ - gnu/packages/yasm.scm \ - gnu/packages/yubico.scm \ - gnu/packages/zile.scm \ - gnu/packages/zip.scm \ - gnu/packages/zsh.scm \ + %D%/artwork.scm \ + %D%/packages.scm \ + %D%/packages/abduco.scm \ + %D%/packages/abiword.scm \ + %D%/packages/acct.scm \ + %D%/packages/acl.scm \ + %D%/packages/admin.scm \ + %D%/packages/adns.scm \ + %D%/packages/algebra.scm \ + %D%/packages/aidc.scm \ + %D%/packages/animation.scm \ + %D%/packages/anthy.scm \ + %D%/packages/apl.scm \ + %D%/packages/apr.scm \ + %D%/packages/aspell.scm \ + %D%/packages/attr.scm \ + %D%/packages/audacity.scm \ + %D%/packages/audio.scm \ + %D%/packages/augeas.scm \ + %D%/packages/autogen.scm \ + %D%/packages/autotools.scm \ + %D%/packages/avahi.scm \ + %D%/packages/avr.scm \ + %D%/packages/backup.scm \ + %D%/packages/base.scm \ + %D%/packages/bash.scm \ + %D%/packages/bdw-gc.scm \ + %D%/packages/bioinformatics.scm \ + %D%/packages/bittorrent.scm \ + %D%/packages/bison.scm \ + %D%/packages/boost.scm \ + %D%/packages/bootstrap.scm \ + %D%/packages/busybox.scm \ + %D%/packages/c.scm \ + %D%/packages/calcurse.scm \ + %D%/packages/ccache.scm \ + %D%/packages/cdrom.scm \ + %D%/packages/certs.scm \ + %D%/packages/check.scm \ + %D%/packages/ci.scm \ + %D%/packages/cmake.scm \ + %D%/packages/code.scm \ + %D%/packages/commencement.scm \ + %D%/packages/compression.scm \ + %D%/packages/conkeror.scm \ + %D%/packages/conky.scm \ + %D%/packages/connman.scm \ + %D%/packages/cook.scm \ + %D%/packages/cpio.scm \ + %D%/packages/cppi.scm \ + %D%/packages/cross-base.scm \ + %D%/packages/crypto.scm \ + %D%/packages/cryptsetup.scm \ + %D%/packages/cups.scm \ + %D%/packages/curl.scm \ + %D%/packages/cyrus-sasl.scm \ + %D%/packages/databases.scm \ + %D%/packages/datamash.scm \ + %D%/packages/datastructures.scm \ + %D%/packages/dav.scm \ + %D%/packages/dc.scm \ + %D%/packages/debug.scm \ + %D%/packages/dejagnu.scm \ + %D%/packages/dico.scm \ + %D%/packages/dictionaries.scm \ + %D%/packages/dillo.scm \ + %D%/packages/disk.scm \ + %D%/packages/djvu.scm \ + %D%/packages/dns.scm \ + %D%/packages/docbook.scm \ + %D%/packages/docker.scm \ + %D%/packages/documentation.scm \ + %D%/packages/dunst.scm \ + %D%/packages/dvtm.scm \ + %D%/packages/ebook.scm \ + %D%/packages/ed.scm \ + %D%/packages/elf.scm \ + %D%/packages/emacs.scm \ + %D%/packages/enchant.scm \ + %D%/packages/engineering.scm \ + %D%/packages/enlightenment.scm \ + %D%/packages/entr.scm \ + %D%/packages/fcitx.scm \ + %D%/packages/feh.scm \ + %D%/packages/figlet.scm \ + %D%/packages/file.scm \ + %D%/packages/finance.scm \ + %D%/packages/firmware.scm \ + %D%/packages/fish.scm \ + %D%/packages/flashing-tools.scm \ + %D%/packages/flex.scm \ + %D%/packages/fltk.scm \ + %D%/packages/fonts.scm \ + %D%/packages/fontutils.scm \ + %D%/packages/freedesktop.scm \ + %D%/packages/freeipmi.scm \ + %D%/packages/ftp.scm \ + %D%/packages/fribidi.scm \ + %D%/packages/fvwm.scm \ + %D%/packages/game-development.scm \ + %D%/packages/games.scm \ + %D%/packages/gawk.scm \ + %D%/packages/gcal.scm \ + %D%/packages/gcc.scm \ + %D%/packages/gd.scm \ + %D%/packages/gdb.scm \ + %D%/packages/geeqie.scm \ + %D%/packages/gettext.scm \ + %D%/packages/ghostscript.scm \ + %D%/packages/gimp.scm \ + %D%/packages/gkrellm.scm \ + %D%/packages/gl.scm \ + %D%/packages/glib.scm \ + %D%/packages/gnome.scm \ + %D%/packages/gnu-doc.scm \ + %D%/packages/gnucash.scm \ + %D%/packages/gnunet.scm \ + %D%/packages/gnupg.scm \ + %D%/packages/gnustep.scm \ + %D%/packages/gnuzilla.scm \ + %D%/packages/gnu-pw-mgr.scm \ + %D%/packages/gperf.scm \ + %D%/packages/gprolog.scm \ + %D%/packages/gps.scm \ + %D%/packages/graphics.scm \ + %D%/packages/graphviz.scm \ + %D%/packages/groff.scm \ + %D%/packages/grub.scm \ + %D%/packages/grue-hunter.scm \ + %D%/packages/gsasl.scm \ + %D%/packages/gstreamer.scm \ + %D%/packages/gtk.scm \ + %D%/packages/guile.scm \ + %D%/packages/guile-wm.scm \ + %D%/packages/gv.scm \ + %D%/packages/gxmessage.scm \ + %D%/packages/haskell.scm \ + %D%/packages/hugs.scm \ + %D%/packages/hurd.scm \ + %D%/packages/ibus.scm \ + %D%/packages/icu4c.scm \ + %D%/packages/idutils.scm \ + %D%/packages/image.scm \ + %D%/packages/imagemagick.scm \ + %D%/packages/indent.scm \ + %D%/packages/inklingreader.scm \ + %D%/packages/inkscape.scm \ + %D%/packages/irc.scm \ + %D%/packages/iso-codes.scm \ + %D%/packages/java.scm \ + %D%/packages/jemalloc.scm \ + %D%/packages/jrnl.scm \ + %D%/packages/julia.scm \ + %D%/packages/kde.scm \ + %D%/packages/kde-frameworks.scm \ + %D%/packages/key-mon.scm \ + %D%/packages/kodi.scm \ + %D%/packages/language.scm \ + %D%/packages/ldc.scm \ + %D%/packages/lego.scm \ + %D%/packages/less.scm \ + %D%/packages/lesstif.scm \ + %D%/packages/libbsd.scm \ + %D%/packages/libcanberra.scm \ + %D%/packages/libdaemon.scm \ + %D%/packages/libedit.scm \ + %D%/packages/libevent.scm \ + %D%/packages/libffcall.scm \ + %D%/packages/libffi.scm \ + %D%/packages/libftdi.scm \ + %D%/packages/calendar.scm \ + %D%/packages/libidn.scm \ + %D%/packages/libphidget.scm \ + %D%/packages/libreoffice.scm \ + %D%/packages/libsigsegv.scm \ + %D%/packages/libunistring.scm \ + %D%/packages/libusb.scm \ + %D%/packages/libunwind.scm \ + %D%/packages/libupnp.scm \ + %D%/packages/lightning.scm \ + %D%/packages/links.scm \ + %D%/packages/linux.scm \ + %D%/packages/lirc.scm \ + %D%/packages/lisp.scm \ + %D%/packages/llvm.scm \ + %D%/packages/lout.scm \ + %D%/packages/lsh.scm \ + %D%/packages/lsof.scm \ + %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 \ + %D%/packages/mail.scm \ + %D%/packages/make-bootstrap.scm \ + %D%/packages/markdown.scm \ + %D%/packages/marst.scm \ + %D%/packages/mate.scm \ + %D%/packages/maths.scm \ + %D%/packages/mc.scm \ + %D%/packages/mcrypt.scm \ + %D%/packages/messaging.scm \ + %D%/packages/mg.scm \ + %D%/packages/mit-krb5.scm \ + %D%/packages/moe.scm \ + %D%/packages/moreutils.scm \ + %D%/packages/mpd.scm \ + %D%/packages/mp3.scm \ + %D%/packages/mpi.scm \ + %D%/packages/multiprecision.scm \ + %D%/packages/music.scm \ + %D%/packages/mtools.scm \ + %D%/packages/nano.scm \ + %D%/packages/ncdu.scm \ + %D%/packages/ncurses.scm \ + %D%/packages/netpbm.scm \ + %D%/packages/nettle.scm \ + %D%/packages/networking.scm \ + %D%/packages/ninja.scm \ + %D%/packages/node.scm \ + %D%/packages/noweb.scm \ + %D%/packages/ntp.scm \ + %D%/packages/nutrition.scm \ + %D%/packages/nvi.scm \ + %D%/packages/ocaml.scm \ + %D%/packages/ocr.scm \ + %D%/packages/onc-rpc.scm \ + %D%/packages/openbox.scm \ + %D%/packages/openldap.scm \ + %D%/packages/openstack.scm \ + %D%/packages/orpheus.scm \ + %D%/packages/ots.scm \ + %D%/packages/owncloud.scm \ + %D%/packages/package-management.scm \ + %D%/packages/parallel.scm \ + %D%/packages/password-utils.scm \ + %D%/packages/patchutils.scm \ + %D%/packages/pciutils.scm \ + %D%/packages/pcre.scm \ + %D%/packages/pdf.scm \ + %D%/packages/pem.scm \ + %D%/packages/perl.scm \ + %D%/packages/photo.scm \ + %D%/packages/pkg-config.scm \ + %D%/packages/plotutils.scm \ + %D%/packages/polkit.scm \ + %D%/packages/popt.scm \ + %D%/packages/pth.scm \ + %D%/packages/pulseaudio.scm \ + %D%/packages/pumpio.scm \ + %D%/packages/pretty-print.scm \ + %D%/packages/protobuf.scm \ + %D%/packages/pv.scm \ + %D%/packages/python.scm \ + %D%/packages/qemu.scm \ + %D%/packages/qt.scm \ + %D%/packages/ragel.scm \ + %D%/packages/ratpoison.scm \ + %D%/packages/rc.scm \ + %D%/packages/rdesktop.scm \ + %D%/packages/rdf.scm \ + %D%/packages/readline.scm \ + %D%/packages/rrdtool.scm \ + %D%/packages/rsync.scm \ + %D%/packages/ruby.scm \ + %D%/packages/rush.scm \ + %D%/packages/samba.scm \ + %D%/packages/sawfish.scm \ + %D%/packages/scanner.scm \ + %D%/packages/scheme.scm \ + %D%/packages/screen.scm \ + %D%/packages/scribus.scm \ + %D%/packages/sdl.scm \ + %D%/packages/search.scm \ + %D%/packages/serialization.scm \ + %D%/packages/serveez.scm \ + %D%/packages/shellutils.scm \ + %D%/packages/shishi.scm \ + %D%/packages/skarnet.scm \ + %D%/packages/skribilo.scm \ + %D%/packages/slang.scm \ + %D%/packages/slim.scm \ + %D%/packages/smalltalk.scm \ + %D%/packages/ssh.scm \ + %D%/packages/stalonetray.scm \ + %D%/packages/statistics.scm \ + %D%/packages/suckless.scm \ + %D%/packages/swig.scm \ + %D%/packages/sxiv.scm \ + %D%/packages/synergy.scm \ + %D%/packages/task-management.scm \ + %D%/packages/tbb.scm \ + %D%/packages/tcl.scm \ + %D%/packages/tcsh.scm \ + %D%/packages/telephony.scm \ + %D%/packages/terminals.scm \ + %D%/packages/texinfo.scm \ + %D%/packages/texlive.scm \ + %D%/packages/textutils.scm \ + %D%/packages/time.scm \ + %D%/packages/tls.scm \ + %D%/packages/tmux.scm \ + %D%/packages/tor.scm \ + %D%/packages/tre.scm \ + %D%/packages/tv.scm \ + %D%/packages/unrtf.scm \ + %D%/packages/upnp.scm \ + %D%/packages/uucp.scm \ + %D%/packages/valgrind.scm \ + %D%/packages/version-control.scm \ + %D%/packages/video.scm \ + %D%/packages/vim.scm \ + %D%/packages/vpn.scm \ + %D%/packages/vtk.scm \ + %D%/packages/w3m.scm \ + %D%/packages/wdiff.scm \ + %D%/packages/web.scm \ + %D%/packages/webkit.scm \ + %D%/packages/wget.scm \ + %D%/packages/wicd.scm \ + %D%/packages/wine.scm \ + %D%/packages/wm.scm \ + %D%/packages/wordnet.scm \ + %D%/packages/wv.scm \ + %D%/packages/wxwidgets.scm \ + %D%/packages/xfig.scm \ + %D%/packages/xiph.scm \ + %D%/packages/xml.scm \ + %D%/packages/xnee.scm \ + %D%/packages/xdisorg.scm \ + %D%/packages/xorg.scm \ + %D%/packages/xfce.scm \ + %D%/packages/yasm.scm \ + %D%/packages/yubico.scm \ + %D%/packages/zile.scm \ + %D%/packages/zip.scm \ + %D%/packages/zsh.scm \ \ - gnu/services.scm \ - gnu/services/avahi.scm \ - gnu/services/base.scm \ - gnu/services/databases.scm \ - gnu/services/dbus.scm \ - gnu/services/desktop.scm \ - gnu/services/lirc.scm \ - gnu/services/mail.scm \ - gnu/services/networking.scm \ - gnu/services/shepherd.scm \ - gnu/services/herd.scm \ - gnu/services/ssh.scm \ - gnu/services/web.scm \ - gnu/services/xorg.scm \ + %D%/services.scm \ + %D%/services/avahi.scm \ + %D%/services/base.scm \ + %D%/services/databases.scm \ + %D%/services/dbus.scm \ + %D%/services/desktop.scm \ + %D%/services/lirc.scm \ + %D%/services/mail.scm \ + %D%/services/networking.scm \ + %D%/services/shepherd.scm \ + %D%/services/herd.scm \ + %D%/services/ssh.scm \ + %D%/services/web.scm \ + %D%/services/xorg.scm \ \ - gnu/system.scm \ - gnu/system/file-systems.scm \ - gnu/system/grub.scm \ - gnu/system/install.scm \ - gnu/system/linux-container.scm \ - gnu/system/linux-initrd.scm \ - gnu/system/locale.scm \ - gnu/system/mapped-devices.scm \ - gnu/system/nss.scm \ - gnu/system/pam.scm \ - gnu/system/shadow.scm \ - gnu/system/vm.scm \ + %D%/system.scm \ + %D%/system/file-systems.scm \ + %D%/system/grub.scm \ + %D%/system/install.scm \ + %D%/system/linux-container.scm \ + %D%/system/linux-initrd.scm \ + %D%/system/locale.scm \ + %D%/system/mapped-devices.scm \ + %D%/system/nss.scm \ + %D%/system/pam.scm \ + %D%/system/shadow.scm \ + %D%/system/vm.scm \ \ - gnu/build/activation.scm \ - gnu/build/file-systems.scm \ - gnu/build/install.scm \ - gnu/build/linux-boot.scm \ - gnu/build/linux-container.scm \ - gnu/build/linux-initrd.scm \ - gnu/build/linux-modules.scm \ - gnu/build/marionette.scm \ - gnu/build/vm.scm \ + %D%/build/activation.scm \ + %D%/build/file-systems.scm \ + %D%/build/install.scm \ + %D%/build/linux-boot.scm \ + %D%/build/linux-container.scm \ + %D%/build/linux-initrd.scm \ + %D%/build/linux-modules.scm \ + %D%/build/marionette.scm \ + %D%/build/vm.scm \ \ - gnu/tests.scm \ - gnu/tests/base.scm + %D%/tests.scm \ + %D%/tests/base.scm -patchdir = $(guilemoduledir)/gnu/packages/patches +patchdir = $(guilemoduledir)/%D%/packages/patches dist_patch_DATA = \ - gnu/packages/patches/4store-fix-buildsystem.patch \ - gnu/packages/patches/abiword-explictly-cast-bools.patch \ - gnu/packages/patches/abiword-wmf-version-lookup-fix.patch \ - gnu/packages/patches/acl-hurd-path-max.patch \ - gnu/packages/patches/aegis-constness-error.patch \ - gnu/packages/patches/aegis-perl-tempdir1.patch \ - gnu/packages/patches/aegis-perl-tempdir2.patch \ - gnu/packages/patches/aegis-test-fixup-1.patch \ - gnu/packages/patches/aegis-test-fixup-2.patch \ - gnu/packages/patches/agg-am_c_prototype.patch \ - gnu/packages/patches/alsa-lib-mips-atomic-fix.patch \ - gnu/packages/patches/apr-skip-getservbyname-test.patch \ - gnu/packages/patches/arb-ldconfig.patch \ - gnu/packages/patches/ath9k-htc-firmware-binutils.patch \ - gnu/packages/patches/ath9k-htc-firmware-gcc.patch \ - gnu/packages/patches/ath9k-htc-firmware-objcopy.patch \ - gnu/packages/patches/audacity-fix-ffmpeg-binding.patch \ - gnu/packages/patches/automake-skip-amhello-tests.patch \ - gnu/packages/patches/automake-regexp-syntax.patch \ - gnu/packages/patches/avahi-localstatedir.patch \ - gnu/packages/patches/avidemux-install-to-lib.patch \ - gnu/packages/patches/avrdude-fix-libusb.patch \ - gnu/packages/patches/bash-completion-directories.patch \ - gnu/packages/patches/bigloo-gc-shebangs.patch \ - gnu/packages/patches/binutils-ld-new-dtags.patch \ - gnu/packages/patches/binutils-loongson-workaround.patch \ - gnu/packages/patches/byobu-writable-status.patch \ - gnu/packages/patches/calibre-drop-unrar.patch \ - gnu/packages/patches/calibre-no-updates-dialog.patch \ - gnu/packages/patches/cdparanoia-fpic.patch \ - gnu/packages/patches/chmlib-inttypes.patch \ - gnu/packages/patches/clang-libc-search-path.patch \ - gnu/packages/patches/clucene-pkgconfig.patch \ - gnu/packages/patches/cmake-fix-tests.patch \ - gnu/packages/patches/cpio-gets-undeclared.patch \ - gnu/packages/patches/cpio-CVE-2016-2037.patch \ - gnu/packages/patches/cpufrequtils-fix-aclocal.patch \ - gnu/packages/patches/crda-optional-gcrypt.patch \ - gnu/packages/patches/crossmap-allow-system-pysam.patch \ - gnu/packages/patches/csound-header-ordering.patch \ - gnu/packages/patches/cssc-gets-undeclared.patch \ - gnu/packages/patches/cssc-missing-include.patch \ - gnu/packages/patches/clucene-contribs-lib.patch \ - gnu/packages/patches/cursynth-wave-rand.patch \ - gnu/packages/patches/dbus-helper-search-path.patch \ - gnu/packages/patches/dealii-p4est-interface.patch \ - gnu/packages/patches/devil-fix-libpng.patch \ - gnu/packages/patches/dico-libtool-deterministic.patch \ - gnu/packages/patches/diffutils-gets-undeclared.patch \ - gnu/packages/patches/dfu-programmer-fix-libusb.patch \ - gnu/packages/patches/doc++-include-directives.patch \ - gnu/packages/patches/doc++-segfault-fix.patch \ - gnu/packages/patches/doxygen-test.patch \ - gnu/packages/patches/duplicity-piped-password.patch \ - gnu/packages/patches/duplicity-test_selection-tmp.patch \ - gnu/packages/patches/elfutils-tests-ptrace.patch \ - gnu/packages/patches/einstein-build.patch \ - gnu/packages/patches/emacs-exec-path.patch \ - gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ - gnu/packages/patches/emacs-source-date-epoch.patch \ - gnu/packages/patches/eudev-rules-directory.patch \ - gnu/packages/patches/evilwm-lost-focus-bug.patch \ - gnu/packages/patches/expat-CVE-2015-1283.patch \ - gnu/packages/patches/expat-CVE-2015-1283-refix.patch \ - gnu/packages/patches/expat-CVE-2016-0718.patch \ - gnu/packages/patches/fastcap-mulGlobal.patch \ - gnu/packages/patches/fastcap-mulSetup.patch \ - gnu/packages/patches/fasthenry-spAllocate.patch \ - gnu/packages/patches/fasthenry-spBuild.patch \ - gnu/packages/patches/fasthenry-spUtils.patch \ - gnu/packages/patches/fasthenry-spSolve.patch \ - gnu/packages/patches/fasthenry-spFactor.patch \ - gnu/packages/patches/findutils-localstatedir.patch \ - gnu/packages/patches/findutils-test-xargs.patch \ - gnu/packages/patches/flashrom-use-libftdi1.patch \ - gnu/packages/patches/flint-ldconfig.patch \ - gnu/packages/patches/fltk-shared-lib-defines.patch \ - gnu/packages/patches/fltk-xfont-on-demand.patch \ - gnu/packages/patches/fontforge-svg-modtime.patch \ - gnu/packages/patches/fossil-test-fixes.patch \ - gnu/packages/patches/freeimage-CVE-2015-0852.patch \ - gnu/packages/patches/gawk-fts-test.patch \ - gnu/packages/patches/gawk-shell.patch \ - gnu/packages/patches/gcc-arm-link-spec-fix.patch \ - gnu/packages/patches/gcc-cross-environment-variables.patch \ - gnu/packages/patches/gcc-libvtv-runpath.patch \ - gnu/packages/patches/gcc-5.0-libvtv-runpath.patch \ - gnu/packages/patches/gd-CVE-2016-3074.patch \ - gnu/packages/patches/geoclue-config.patch \ - gnu/packages/patches/ghostscript-CVE-2015-3228.patch \ - gnu/packages/patches/ghostscript-runpath.patch \ - gnu/packages/patches/glib-networking-ssl-cert-file.patch \ - gnu/packages/patches/glib-tests-timer.patch \ - gnu/packages/patches/glibc-CVE-2015-7547.patch \ - gnu/packages/patches/glibc-bootstrap-system.patch \ - gnu/packages/patches/glibc-hurd-extern-inline.patch \ - gnu/packages/patches/glibc-ldd-x86_64.patch \ - gnu/packages/patches/glibc-locales.patch \ - gnu/packages/patches/glibc-locale-incompatibility.patch \ - gnu/packages/patches/glibc-o-largefile.patch \ - gnu/packages/patches/glibc-versioned-locpath.patch \ - gnu/packages/patches/gmp-arm-asm-nothumb.patch \ - gnu/packages/patches/gmp-faulty-test.patch \ - gnu/packages/patches/gnome-tweak-tool-search-paths.patch \ - gnu/packages/patches/gnucash-price-quotes-perl.patch \ - gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \ - gnu/packages/patches/gobject-introspection-cc.patch \ - gnu/packages/patches/gobject-introspection-girepository.patch \ - gnu/packages/patches/grep-timing-sensitive-test.patch \ - gnu/packages/patches/grub-CVE-2015-8370.patch \ - gnu/packages/patches/grub-gets-undeclared.patch \ - gnu/packages/patches/grub-freetype.patch \ - gnu/packages/patches/guile-1.8-cpp-4.5.patch \ - gnu/packages/patches/guile-arm-fixes.patch \ - gnu/packages/patches/guile-default-utf8.patch \ - gnu/packages/patches/guile-linux-syscalls.patch \ - gnu/packages/patches/guile-present-coding.patch \ - gnu/packages/patches/guile-relocatable.patch \ - gnu/packages/patches/guile-rsvg-pkgconfig.patch \ - gnu/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ - gnu/packages/patches/gtk2-theme-paths.patch \ - gnu/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ - gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \ - gnu/packages/patches/hdf5-config-date.patch \ - gnu/packages/patches/hop-bigloo-4.0b.patch \ - gnu/packages/patches/hop-linker-flags.patch \ - gnu/packages/patches/hydra-automake-1.15.patch \ - gnu/packages/patches/hydra-disable-darcs-test.patch \ - gnu/packages/patches/hypre-doc-tables.patch \ - gnu/packages/patches/hypre-ldflags.patch \ - gnu/packages/patches/icecat-avoid-bundled-includes.patch \ - gnu/packages/patches/icu4c-CVE-2014-6585.patch \ - gnu/packages/patches/icu4c-CVE-2015-1270.patch \ - gnu/packages/patches/icu4c-CVE-2015-4760.patch \ - gnu/packages/patches/ilmbase-fix-tests.patch \ - gnu/packages/patches/inkscape-drop-wait-for-targets.patch \ - gnu/packages/patches/irrlicht-mesa-10.patch \ - gnu/packages/patches/jasper-CVE-2007-2721.patch \ - gnu/packages/patches/jasper-CVE-2008-3520.patch \ - gnu/packages/patches/jasper-CVE-2008-3522.patch \ - gnu/packages/patches/jasper-CVE-2011-4516-and-CVE-2011-4517.patch \ - gnu/packages/patches/jasper-CVE-2014-8137.patch \ - gnu/packages/patches/jasper-CVE-2014-8138.patch \ - gnu/packages/patches/jasper-CVE-2014-8157.patch \ - gnu/packages/patches/jasper-CVE-2014-8158.patch \ - gnu/packages/patches/jasper-CVE-2014-9029.patch \ - gnu/packages/patches/jasper-CVE-2016-1577.patch \ - gnu/packages/patches/jasper-CVE-2016-1867.patch \ - gnu/packages/patches/jasper-CVE-2016-2089.patch \ - gnu/packages/patches/jasper-CVE-2016-2116.patch \ - gnu/packages/patches/jbig2dec-ignore-testtest.patch \ - gnu/packages/patches/kmod-module-directory.patch \ - gnu/packages/patches/ldc-disable-tests.patch \ - gnu/packages/patches/lftp-dont-save-unknown-host-fingerprint.patch \ - gnu/packages/patches/liba52-enable-pic.patch \ - gnu/packages/patches/liba52-link-with-libm.patch \ - gnu/packages/patches/liba52-set-soname.patch \ - gnu/packages/patches/liba52-use-mtune-not-mcpu.patch \ - gnu/packages/patches/libarchive-bsdtar-test.patch \ - gnu/packages/patches/libarchive-CVE-2013-0211.patch \ - gnu/packages/patches/libarchive-CVE-2016-1541.patch \ - gnu/packages/patches/libarchive-fix-lzo-test-case.patch \ - gnu/packages/patches/libarchive-mtree-filename-length-fix.patch \ - gnu/packages/patches/libbonobo-activation-test-race.patch \ - gnu/packages/patches/libcanberra-sound-theme-freedesktop.patch \ - gnu/packages/patches/libcmis-fix-test-onedrive.patch \ - gnu/packages/patches/libdrm-symbol-check.patch \ - gnu/packages/patches/libevent-dns-tests.patch \ - gnu/packages/patches/libextractor-ffmpeg-3.patch \ - gnu/packages/patches/libmtp-devices.patch \ - gnu/packages/patches/liboop-mips64-deplibs-fix.patch \ - gnu/packages/patches/libotr-test-auth-fix.patch \ - gnu/packages/patches/liblxqt-include.patch \ - gnu/packages/patches/libmad-armv7-thumb-pt1.patch \ - gnu/packages/patches/libmad-armv7-thumb-pt2.patch \ - gnu/packages/patches/libmad-frame-length.patch \ - gnu/packages/patches/libmad-mips-newgcc.patch \ - gnu/packages/patches/libssh-0.6.5-CVE-2016-0739.patch \ - gnu/packages/patches/libtheora-config-guess.patch \ - gnu/packages/patches/libtiff-CVE-2015-8665+CVE-2015-8683.patch \ - gnu/packages/patches/libtiff-oob-accesses-in-decode.patch \ - gnu/packages/patches/libtiff-oob-write-in-nextdecode.patch \ - gnu/packages/patches/libtool-skip-tests2.patch \ - gnu/packages/patches/libunwind-CVE-2015-3239.patch \ - gnu/packages/patches/libwmf-CAN-2004-0941.patch \ - gnu/packages/patches/libwmf-CVE-2006-3376.patch \ - gnu/packages/patches/libwmf-CVE-2007-0455.patch \ - gnu/packages/patches/libwmf-CVE-2007-2756.patch \ - gnu/packages/patches/libwmf-CVE-2007-3472.patch \ - gnu/packages/patches/libwmf-CVE-2007-3473.patch \ - gnu/packages/patches/libwmf-CVE-2007-3477.patch \ - gnu/packages/patches/libwmf-CVE-2009-1364.patch \ - gnu/packages/patches/libwmf-CVE-2009-3546.patch \ - gnu/packages/patches/libwmf-CVE-2015-0848+CVE-2015-4588.patch \ - gnu/packages/patches/libwmf-CVE-2015-4695.patch \ - gnu/packages/patches/libwmf-CVE-2015-4696.patch \ - gnu/packages/patches/libxslt-CVE-2015-7995.patch \ - gnu/packages/patches/lirc-localstatedir.patch \ - gnu/packages/patches/libpthread-glibc-preparation.patch \ - gnu/packages/patches/lm-sensors-hwmon-attrs.patch \ - gnu/packages/patches/lua-pkgconfig.patch \ - gnu/packages/patches/lua51-liblua-so.patch \ - gnu/packages/patches/lua52-liblua-so.patch \ - gnu/packages/patches/luajit-no_ldconfig.patch \ - gnu/packages/patches/luajit-symlinks.patch \ - gnu/packages/patches/luit-posix.patch \ - gnu/packages/patches/m4-gets-undeclared.patch \ - gnu/packages/patches/make-impure-dirs.patch \ - gnu/packages/patches/mars-install.patch \ - gnu/packages/patches/mars-sfml-2.3.patch \ - gnu/packages/patches/matplotlib-setupext-tk.patch \ - gnu/packages/patches/maxima-defsystem-mkdir.patch \ - gnu/packages/patches/mcron-install.patch \ - gnu/packages/patches/mhash-keygen-test-segfault.patch \ - gnu/packages/patches/mit-krb5-CVE-2015-8629.patch \ - gnu/packages/patches/mit-krb5-CVE-2015-8630.patch \ - gnu/packages/patches/mit-krb5-CVE-2015-8631.patch \ - gnu/packages/patches/mit-krb5-init-context-null-spnego.patch \ - gnu/packages/patches/mpc123-initialize-ao.patch \ - gnu/packages/patches/mplayer2-theora-fix.patch \ - gnu/packages/patches/module-init-tools-moduledir.patch \ - gnu/packages/patches/mumps-build-parallelism.patch \ - gnu/packages/patches/mupen64plus-ui-console-notice.patch \ - gnu/packages/patches/mutt-store-references.patch \ - gnu/packages/patches/net-tools-bitrot.patch \ - gnu/packages/patches/netcdf-config-date.patch \ - gnu/packages/patches/ngircd-handle-zombies.patch \ - gnu/packages/patches/ngircd-no-dns-in-tests.patch \ - gnu/packages/patches/ninja-tests.patch \ - gnu/packages/patches/ninja-zero-mtime.patch \ - gnu/packages/patches/nss-pkgconfig.patch \ - gnu/packages/patches/nvi-assume-preserve-path.patch \ - gnu/packages/patches/nvi-dbpagesize-binpower.patch \ - gnu/packages/patches/nvi-db4.patch \ - gnu/packages/patches/ocaml-CVE-2015-8869.patch \ - gnu/packages/patches/ocaml-findlib-make-install.patch \ - gnu/packages/patches/openexr-missing-samples.patch \ - gnu/packages/patches/openimageio-boost-1.60.patch \ - gnu/packages/patches/openjpeg-CVE-2015-6581.patch \ - gnu/packages/patches/openjpeg-use-after-free-fix.patch \ - gnu/packages/patches/openssh-CVE-2015-8325.patch \ - gnu/packages/patches/openssl-runpath.patch \ - gnu/packages/patches/openssl-c-rehash-in.patch \ - gnu/packages/patches/orpheus-cast-errors-and-includes.patch \ - gnu/packages/patches/ots-no-include-missing-file.patch \ - gnu/packages/patches/patchelf-page-size.patch \ - gnu/packages/patches/patchelf-rework-for-arm.patch \ - gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \ - gnu/packages/patches/patch-hurd-path-max.patch \ - gnu/packages/patches/pcre-CVE-2016-3191.patch \ - gnu/packages/patches/perl-CVE-2015-8607.patch \ - gnu/packages/patches/perl-CVE-2016-2381.patch \ - gnu/packages/patches/perl-autosplit-default-time.patch \ - gnu/packages/patches/perl-deterministic-ordering.patch \ - gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \ - gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch \ - gnu/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch \ - gnu/packages/patches/perl-net-amazon-s3-moose-warning.patch \ - gnu/packages/patches/perl-net-ssleay-disable-ede-test.patch \ - gnu/packages/patches/perl-no-build-time.patch \ - gnu/packages/patches/perl-no-sys-dirs.patch \ - gnu/packages/patches/perl-module-pluggable-search.patch \ - gnu/packages/patches/perl-source-date-epoch.patch \ - gnu/packages/patches/pidgin-add-search-path.patch \ - gnu/packages/patches/pinball-const-fix.patch \ - gnu/packages/patches/pinball-cstddef.patch \ - gnu/packages/patches/pinball-missing-separators.patch \ - gnu/packages/patches/pinball-src-deps.patch \ - gnu/packages/patches/pinball-system-ltdl.patch \ - gnu/packages/patches/pingus-sdl-libs-config.patch \ - gnu/packages/patches/plink-1.07-unclobber-i.patch \ - gnu/packages/patches/plotutils-libpng-jmpbuf.patch \ - gnu/packages/patches/polkit-drop-test.patch \ - gnu/packages/patches/portaudio-audacity-compat.patch \ - gnu/packages/patches/portmidi-modular-build.patch \ - gnu/packages/patches/procmail-ambiguous-getline-debian.patch \ - gnu/packages/patches/pt-scotch-build-parallelism.patch \ - gnu/packages/patches/pulseaudio-fix-mult-test.patch \ - gnu/packages/patches/pulseaudio-longer-test-timeout.patch \ - gnu/packages/patches/pycairo-wscript.patch \ - gnu/packages/patches/pybugz-encode-error.patch \ - gnu/packages/patches/pybugz-stty.patch \ - gnu/packages/patches/pygpgme-disable-problematic-tests.patch \ - gnu/packages/patches/pyqt-configure.patch \ - gnu/packages/patches/python-2-deterministic-build-info.patch \ - gnu/packages/patches/python-2.7-search-paths.patch \ - gnu/packages/patches/python-2.7-source-date-epoch.patch \ - gnu/packages/patches/python-3-deterministic-build-info.patch \ - gnu/packages/patches/python-3-search-paths.patch \ - gnu/packages/patches/python-disable-ssl-test.patch \ - gnu/packages/patches/python-fix-tests.patch \ - gnu/packages/patches/python-ipython-inputhook-ctype.patch \ - gnu/packages/patches/python-rarfile-fix-tests.patch \ - gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ - gnu/packages/patches/python-configobj-setuptools.patch \ - gnu/packages/patches/python-paste-remove-website-test.patch \ - gnu/packages/patches/python-paste-remove-timing-test.patch \ - gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ - gnu/packages/patches/qt4-ldflags.patch \ - gnu/packages/patches/ratpoison-shell.patch \ - gnu/packages/patches/readline-link-ncurses.patch \ - gnu/packages/patches/ripperx-missing-file.patch \ - gnu/packages/patches/rsem-makefile.patch \ - gnu/packages/patches/ruby-symlinkfix.patch \ - gnu/packages/patches/sed-hurd-path-max.patch \ - gnu/packages/patches/scheme48-tests.patch \ - gnu/packages/patches/scotch-test-threading.patch \ - gnu/packages/patches/sdl-libx11-1.6.patch \ - gnu/packages/patches/serf-comment-style-fix.patch \ - gnu/packages/patches/serf-deflate-buckets-test-fix.patch \ - gnu/packages/patches/slim-session.patch \ - gnu/packages/patches/slim-config.patch \ - gnu/packages/patches/slim-sigusr1.patch \ - gnu/packages/patches/slurm-configure-remove-nonfree-contribs.patch \ - gnu/packages/patches/soprano-find-clucene.patch \ - gnu/packages/patches/sudo-CVE-2015-5602.patch \ - gnu/packages/patches/superlu-dist-scotchmetis.patch \ - gnu/packages/patches/synfig-build-fix.patch \ - gnu/packages/patches/tar-d_ino_in_dirent-fix.patch \ - gnu/packages/patches/tar-skip-unreliable-tests.patch \ - gnu/packages/patches/tcl-mkindex-deterministic.patch \ - gnu/packages/patches/tclxml-3.2-install.patch \ - gnu/packages/patches/tcsh-fix-autotest.patch \ - gnu/packages/patches/texi2html-document-encoding.patch \ - gnu/packages/patches/texi2html-i18n.patch \ - gnu/packages/patches/tidy-CVE-2015-5522+5523.patch \ - gnu/packages/patches/tinyxml-use-stl.patch \ - gnu/packages/patches/tk-find-library.patch \ - gnu/packages/patches/ttf2eot-cstddef.patch \ - gnu/packages/patches/ttfautohint-source-date-epoch.patch \ - gnu/packages/patches/tophat-build-with-later-seqan.patch \ - gnu/packages/patches/torsocks-dns-test.patch \ - gnu/packages/patches/totem-debug-format-fix.patch \ - gnu/packages/patches/unzip-CVE-2014-8139.patch \ - gnu/packages/patches/unzip-CVE-2014-8140.patch \ - gnu/packages/patches/unzip-CVE-2014-8141.patch \ - gnu/packages/patches/unzip-CVE-2014-9636.patch \ - gnu/packages/patches/unzip-CVE-2015-7696.patch \ - gnu/packages/patches/unzip-CVE-2015-7697.patch \ - gnu/packages/patches/unzip-allow-greater-hostver-values.patch \ - gnu/packages/patches/unzip-attribs-overflow.patch \ - gnu/packages/patches/unzip-overflow-on-invalid-input.patch \ - gnu/packages/patches/unzip-format-secure.patch \ - gnu/packages/patches/unzip-initialize-symlink-flag.patch \ - gnu/packages/patches/unzip-overflow-long-fsize.patch \ - gnu/packages/patches/unzip-remove-build-date.patch \ - gnu/packages/patches/util-linux-tests.patch \ - gnu/packages/patches/upower-builddir.patch \ - gnu/packages/patches/valgrind-enable-arm.patch \ - gnu/packages/patches/vorbis-tools-CVE-2015-6749.patch \ - gnu/packages/patches/vpnc-script.patch \ - gnu/packages/patches/vtk-mesa-10.patch \ - gnu/packages/patches/w3m-libgc.patch \ - gnu/packages/patches/w3m-force-ssl_verify_server-on.patch \ - gnu/packages/patches/w3m-disable-sslv2-and-sslv3.patch \ - gnu/packages/patches/w3m-disable-weak-ciphers.patch \ - gnu/packages/patches/weechat-python.patch \ - gnu/packages/patches/weex-vacopy.patch \ - gnu/packages/patches/wicd-bitrate-none-fix.patch \ - gnu/packages/patches/wicd-get-selected-profile-fix.patch \ - gnu/packages/patches/wicd-urwid-1.3.patch \ - gnu/packages/patches/wicd-wpa2-ttls.patch \ - gnu/packages/patches/wmctrl-64-fix.patch \ - gnu/packages/patches/woff2-libbrotli.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2016-4476.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt1.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt2.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt3.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2016-4477-pt4.patch \ - gnu/packages/patches/xdotool-fix-makefile.patch \ - gnu/packages/patches/xf86-video-ark-remove-mibstore.patch \ - gnu/packages/patches/xf86-video-ast-remove-mibstore.patch \ - gnu/packages/patches/xf86-video-geode-glibc-2.20.patch \ - gnu/packages/patches/xf86-video-glint-remove-mibstore.patch \ - gnu/packages/patches/xf86-video-i128-remove-mibstore.patch \ - gnu/packages/patches/xf86-video-intel-compat-api.patch \ - gnu/packages/patches/xf86-video-intel-glibc-2.20.patch \ - gnu/packages/patches/xf86-video-mach64-glibc-2.20.patch \ - gnu/packages/patches/xf86-video-nv-remove-mibstore.patch \ - gnu/packages/patches/xf86-video-openchrome-glibc-2.20.patch \ - gnu/packages/patches/xf86-video-tga-remove-mibstore.patch \ - gnu/packages/patches/xfce4-panel-plugins.patch \ - gnu/packages/patches/xfce4-session-fix-xflock4.patch \ - gnu/packages/patches/xfce4-settings-defaults.patch \ - gnu/packages/patches/xmodmap-asprintf.patch \ - gnu/packages/patches/zathura-plugindir-environment-variable.patch + %D%/packages/patches/4store-fix-buildsystem.patch \ + %D%/packages/patches/abiword-explictly-cast-bools.patch \ + %D%/packages/patches/abiword-wmf-version-lookup-fix.patch \ + %D%/packages/patches/acl-hurd-path-max.patch \ + %D%/packages/patches/aegis-constness-error.patch \ + %D%/packages/patches/aegis-perl-tempdir1.patch \ + %D%/packages/patches/aegis-perl-tempdir2.patch \ + %D%/packages/patches/aegis-test-fixup-1.patch \ + %D%/packages/patches/aegis-test-fixup-2.patch \ + %D%/packages/patches/agg-am_c_prototype.patch \ + %D%/packages/patches/alsa-lib-mips-atomic-fix.patch \ + %D%/packages/patches/apr-skip-getservbyname-test.patch \ + %D%/packages/patches/arb-ldconfig.patch \ + %D%/packages/patches/ath9k-htc-firmware-binutils.patch \ + %D%/packages/patches/ath9k-htc-firmware-gcc.patch \ + %D%/packages/patches/ath9k-htc-firmware-objcopy.patch \ + %D%/packages/patches/audacity-fix-ffmpeg-binding.patch \ + %D%/packages/patches/automake-skip-amhello-tests.patch \ + %D%/packages/patches/automake-regexp-syntax.patch \ + %D%/packages/patches/avahi-localstatedir.patch \ + %D%/packages/patches/avidemux-install-to-lib.patch \ + %D%/packages/patches/avrdude-fix-libusb.patch \ + %D%/packages/patches/bash-completion-directories.patch \ + %D%/packages/patches/bigloo-gc-shebangs.patch \ + %D%/packages/patches/binutils-ld-new-dtags.patch \ + %D%/packages/patches/binutils-loongson-workaround.patch \ + %D%/packages/patches/byobu-writable-status.patch \ + %D%/packages/patches/calibre-drop-unrar.patch \ + %D%/packages/patches/calibre-no-updates-dialog.patch \ + %D%/packages/patches/cdparanoia-fpic.patch \ + %D%/packages/patches/chmlib-inttypes.patch \ + %D%/packages/patches/clang-libc-search-path.patch \ + %D%/packages/patches/clucene-pkgconfig.patch \ + %D%/packages/patches/cmake-fix-tests.patch \ + %D%/packages/patches/cpio-gets-undeclared.patch \ + %D%/packages/patches/cpio-CVE-2016-2037.patch \ + %D%/packages/patches/cpufrequtils-fix-aclocal.patch \ + %D%/packages/patches/crda-optional-gcrypt.patch \ + %D%/packages/patches/crossmap-allow-system-pysam.patch \ + %D%/packages/patches/csound-header-ordering.patch \ + %D%/packages/patches/cssc-gets-undeclared.patch \ + %D%/packages/patches/cssc-missing-include.patch \ + %D%/packages/patches/clucene-contribs-lib.patch \ + %D%/packages/patches/cursynth-wave-rand.patch \ + %D%/packages/patches/dbus-helper-search-path.patch \ + %D%/packages/patches/dealii-p4est-interface.patch \ + %D%/packages/patches/devil-fix-libpng.patch \ + %D%/packages/patches/dico-libtool-deterministic.patch \ + %D%/packages/patches/diffutils-gets-undeclared.patch \ + %D%/packages/patches/dfu-programmer-fix-libusb.patch \ + %D%/packages/patches/doc++-include-directives.patch \ + %D%/packages/patches/doc++-segfault-fix.patch \ + %D%/packages/patches/doxygen-test.patch \ + %D%/packages/patches/duplicity-piped-password.patch \ + %D%/packages/patches/duplicity-test_selection-tmp.patch \ + %D%/packages/patches/elfutils-tests-ptrace.patch \ + %D%/packages/patches/einstein-build.patch \ + %D%/packages/patches/emacs-exec-path.patch \ + %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ + %D%/packages/patches/emacs-source-date-epoch.patch \ + %D%/packages/patches/eudev-rules-directory.patch \ + %D%/packages/patches/evilwm-lost-focus-bug.patch \ + %D%/packages/patches/expat-CVE-2015-1283.patch \ + %D%/packages/patches/expat-CVE-2015-1283-refix.patch \ + %D%/packages/patches/expat-CVE-2016-0718.patch \ + %D%/packages/patches/fastcap-mulGlobal.patch \ + %D%/packages/patches/fastcap-mulSetup.patch \ + %D%/packages/patches/fasthenry-spAllocate.patch \ + %D%/packages/patches/fasthenry-spBuild.patch \ + %D%/packages/patches/fasthenry-spUtils.patch \ + %D%/packages/patches/fasthenry-spSolve.patch \ + %D%/packages/patches/fasthenry-spFactor.patch \ + %D%/packages/patches/findutils-localstatedir.patch \ + %D%/packages/patches/findutils-test-xargs.patch \ + %D%/packages/patches/flashrom-use-libftdi1.patch \ + %D%/packages/patches/flint-ldconfig.patch \ + %D%/packages/patches/fltk-shared-lib-defines.patch \ + %D%/packages/patches/fltk-xfont-on-demand.patch \ + %D%/packages/patches/fontforge-svg-modtime.patch \ + %D%/packages/patches/fossil-test-fixes.patch \ + %D%/packages/patches/freeimage-CVE-2015-0852.patch \ + %D%/packages/patches/gawk-fts-test.patch \ + %D%/packages/patches/gawk-shell.patch \ + %D%/packages/patches/gcc-arm-link-spec-fix.patch \ + %D%/packages/patches/gcc-cross-environment-variables.patch \ + %D%/packages/patches/gcc-libvtv-runpath.patch \ + %D%/packages/patches/gcc-5.0-libvtv-runpath.patch \ + %D%/packages/patches/gd-CVE-2016-3074.patch \ + %D%/packages/patches/geoclue-config.patch \ + %D%/packages/patches/ghostscript-CVE-2015-3228.patch \ + %D%/packages/patches/ghostscript-runpath.patch \ + %D%/packages/patches/glib-networking-ssl-cert-file.patch \ + %D%/packages/patches/glib-tests-timer.patch \ + %D%/packages/patches/glibc-CVE-2015-7547.patch \ + %D%/packages/patches/glibc-bootstrap-system.patch \ + %D%/packages/patches/glibc-hurd-extern-inline.patch \ + %D%/packages/patches/glibc-ldd-x86_64.patch \ + %D%/packages/patches/glibc-locales.patch \ + %D%/packages/patches/glibc-locale-incompatibility.patch \ + %D%/packages/patches/glibc-o-largefile.patch \ + %D%/packages/patches/glibc-versioned-locpath.patch \ + %D%/packages/patches/gmp-arm-asm-nothumb.patch \ + %D%/packages/patches/gmp-faulty-test.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 \ + %D%/packages/patches/gobject-introspection-cc.patch \ + %D%/packages/patches/gobject-introspection-girepository.patch \ + %D%/packages/patches/grep-timing-sensitive-test.patch \ + %D%/packages/patches/grub-CVE-2015-8370.patch \ + %D%/packages/patches/grub-gets-undeclared.patch \ + %D%/packages/patches/grub-freetype.patch \ + %D%/packages/patches/guile-1.8-cpp-4.5.patch \ + %D%/packages/patches/guile-arm-fixes.patch \ + %D%/packages/patches/guile-default-utf8.patch \ + %D%/packages/patches/guile-linux-syscalls.patch \ + %D%/packages/patches/guile-present-coding.patch \ + %D%/packages/patches/guile-relocatable.patch \ + %D%/packages/patches/guile-rsvg-pkgconfig.patch \ + %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ + %D%/packages/patches/gtk2-theme-paths.patch \ + %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ + %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ + %D%/packages/patches/hdf5-config-date.patch \ + %D%/packages/patches/hop-bigloo-4.0b.patch \ + %D%/packages/patches/hop-linker-flags.patch \ + %D%/packages/patches/hydra-automake-1.15.patch \ + %D%/packages/patches/hydra-disable-darcs-test.patch \ + %D%/packages/patches/hypre-doc-tables.patch \ + %D%/packages/patches/hypre-ldflags.patch \ + %D%/packages/patches/icecat-avoid-bundled-includes.patch \ + %D%/packages/patches/icu4c-CVE-2014-6585.patch \ + %D%/packages/patches/icu4c-CVE-2015-1270.patch \ + %D%/packages/patches/icu4c-CVE-2015-4760.patch \ + %D%/packages/patches/ilmbase-fix-tests.patch \ + %D%/packages/patches/inkscape-drop-wait-for-targets.patch \ + %D%/packages/patches/irrlicht-mesa-10.patch \ + %D%/packages/patches/jasper-CVE-2007-2721.patch \ + %D%/packages/patches/jasper-CVE-2008-3520.patch \ + %D%/packages/patches/jasper-CVE-2008-3522.patch \ + %D%/packages/patches/jasper-CVE-2011-4516-and-CVE-2011-4517.patch \ + %D%/packages/patches/jasper-CVE-2014-8137.patch \ + %D%/packages/patches/jasper-CVE-2014-8138.patch \ + %D%/packages/patches/jasper-CVE-2014-8157.patch \ + %D%/packages/patches/jasper-CVE-2014-8158.patch \ + %D%/packages/patches/jasper-CVE-2014-9029.patch \ + %D%/packages/patches/jasper-CVE-2016-1577.patch \ + %D%/packages/patches/jasper-CVE-2016-1867.patch \ + %D%/packages/patches/jasper-CVE-2016-2089.patch \ + %D%/packages/patches/jasper-CVE-2016-2116.patch \ + %D%/packages/patches/jbig2dec-ignore-testtest.patch \ + %D%/packages/patches/kmod-module-directory.patch \ + %D%/packages/patches/ldc-disable-tests.patch \ + %D%/packages/patches/lftp-dont-save-unknown-host-fingerprint.patch \ + %D%/packages/patches/liba52-enable-pic.patch \ + %D%/packages/patches/liba52-link-with-libm.patch \ + %D%/packages/patches/liba52-set-soname.patch \ + %D%/packages/patches/liba52-use-mtune-not-mcpu.patch \ + %D%/packages/patches/libarchive-bsdtar-test.patch \ + %D%/packages/patches/libarchive-CVE-2013-0211.patch \ + %D%/packages/patches/libarchive-CVE-2016-1541.patch \ + %D%/packages/patches/libarchive-fix-lzo-test-case.patch \ + %D%/packages/patches/libarchive-mtree-filename-length-fix.patch \ + %D%/packages/patches/libbonobo-activation-test-race.patch \ + %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \ + %D%/packages/patches/libcmis-fix-test-onedrive.patch \ + %D%/packages/patches/libdrm-symbol-check.patch \ + %D%/packages/patches/libevent-dns-tests.patch \ + %D%/packages/patches/libextractor-ffmpeg-3.patch \ + %D%/packages/patches/libmtp-devices.patch \ + %D%/packages/patches/liboop-mips64-deplibs-fix.patch \ + %D%/packages/patches/libotr-test-auth-fix.patch \ + %D%/packages/patches/liblxqt-include.patch \ + %D%/packages/patches/libmad-armv7-thumb-pt1.patch \ + %D%/packages/patches/libmad-armv7-thumb-pt2.patch \ + %D%/packages/patches/libmad-frame-length.patch \ + %D%/packages/patches/libmad-mips-newgcc.patch \ + %D%/packages/patches/libssh-0.6.5-CVE-2016-0739.patch \ + %D%/packages/patches/libtheora-config-guess.patch \ + %D%/packages/patches/libtiff-CVE-2015-8665+CVE-2015-8683.patch \ + %D%/packages/patches/libtiff-oob-accesses-in-decode.patch \ + %D%/packages/patches/libtiff-oob-write-in-nextdecode.patch \ + %D%/packages/patches/libtool-skip-tests2.patch \ + %D%/packages/patches/libunwind-CVE-2015-3239.patch \ + %D%/packages/patches/libwmf-CAN-2004-0941.patch \ + %D%/packages/patches/libwmf-CVE-2006-3376.patch \ + %D%/packages/patches/libwmf-CVE-2007-0455.patch \ + %D%/packages/patches/libwmf-CVE-2007-2756.patch \ + %D%/packages/patches/libwmf-CVE-2007-3472.patch \ + %D%/packages/patches/libwmf-CVE-2007-3473.patch \ + %D%/packages/patches/libwmf-CVE-2007-3477.patch \ + %D%/packages/patches/libwmf-CVE-2009-1364.patch \ + %D%/packages/patches/libwmf-CVE-2009-3546.patch \ + %D%/packages/patches/libwmf-CVE-2015-0848+CVE-2015-4588.patch \ + %D%/packages/patches/libwmf-CVE-2015-4695.patch \ + %D%/packages/patches/libwmf-CVE-2015-4696.patch \ + %D%/packages/patches/libxslt-CVE-2015-7995.patch \ + %D%/packages/patches/lirc-localstatedir.patch \ + %D%/packages/patches/libpthread-glibc-preparation.patch \ + %D%/packages/patches/lm-sensors-hwmon-attrs.patch \ + %D%/packages/patches/lua-pkgconfig.patch \ + %D%/packages/patches/lua51-liblua-so.patch \ + %D%/packages/patches/lua52-liblua-so.patch \ + %D%/packages/patches/luajit-no_ldconfig.patch \ + %D%/packages/patches/luajit-symlinks.patch \ + %D%/packages/patches/luit-posix.patch \ + %D%/packages/patches/m4-gets-undeclared.patch \ + %D%/packages/patches/make-impure-dirs.patch \ + %D%/packages/patches/mars-install.patch \ + %D%/packages/patches/mars-sfml-2.3.patch \ + %D%/packages/patches/matplotlib-setupext-tk.patch \ + %D%/packages/patches/maxima-defsystem-mkdir.patch \ + %D%/packages/patches/mcron-install.patch \ + %D%/packages/patches/mhash-keygen-test-segfault.patch \ + %D%/packages/patches/mit-krb5-CVE-2015-8629.patch \ + %D%/packages/patches/mit-krb5-CVE-2015-8630.patch \ + %D%/packages/patches/mit-krb5-CVE-2015-8631.patch \ + %D%/packages/patches/mit-krb5-init-context-null-spnego.patch \ + %D%/packages/patches/mpc123-initialize-ao.patch \ + %D%/packages/patches/mplayer2-theora-fix.patch \ + %D%/packages/patches/module-init-tools-moduledir.patch \ + %D%/packages/patches/mumps-build-parallelism.patch \ + %D%/packages/patches/mupen64plus-ui-console-notice.patch \ + %D%/packages/patches/mutt-store-references.patch \ + %D%/packages/patches/net-tools-bitrot.patch \ + %D%/packages/patches/netcdf-config-date.patch \ + %D%/packages/patches/ngircd-handle-zombies.patch \ + %D%/packages/patches/ngircd-no-dns-in-tests.patch \ + %D%/packages/patches/ninja-tests.patch \ + %D%/packages/patches/ninja-zero-mtime.patch \ + %D%/packages/patches/nss-pkgconfig.patch \ + %D%/packages/patches/nvi-assume-preserve-path.patch \ + %D%/packages/patches/nvi-dbpagesize-binpower.patch \ + %D%/packages/patches/nvi-db4.patch \ + %D%/packages/patches/ocaml-CVE-2015-8869.patch \ + %D%/packages/patches/ocaml-findlib-make-install.patch \ + %D%/packages/patches/openexr-missing-samples.patch \ + %D%/packages/patches/openimageio-boost-1.60.patch \ + %D%/packages/patches/openjpeg-CVE-2015-6581.patch \ + %D%/packages/patches/openjpeg-use-after-free-fix.patch \ + %D%/packages/patches/openssh-CVE-2015-8325.patch \ + %D%/packages/patches/openssl-runpath.patch \ + %D%/packages/patches/openssl-c-rehash-in.patch \ + %D%/packages/patches/orpheus-cast-errors-and-includes.patch \ + %D%/packages/patches/ots-no-include-missing-file.patch \ + %D%/packages/patches/patchelf-page-size.patch \ + %D%/packages/patches/patchelf-rework-for-arm.patch \ + %D%/packages/patches/patchutils-xfail-gendiff-tests.patch \ + %D%/packages/patches/patch-hurd-path-max.patch \ + %D%/packages/patches/pcre-CVE-2016-3191.patch \ + %D%/packages/patches/perl-CVE-2015-8607.patch \ + %D%/packages/patches/perl-CVE-2016-2381.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 \ + %D%/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch \ + %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-no-build-time.patch \ + %D%/packages/patches/perl-no-sys-dirs.patch \ + %D%/packages/patches/perl-module-pluggable-search.patch \ + %D%/packages/patches/perl-source-date-epoch.patch \ + %D%/packages/patches/pidgin-add-search-path.patch \ + %D%/packages/patches/pinball-const-fix.patch \ + %D%/packages/patches/pinball-cstddef.patch \ + %D%/packages/patches/pinball-missing-separators.patch \ + %D%/packages/patches/pinball-src-deps.patch \ + %D%/packages/patches/pinball-system-ltdl.patch \ + %D%/packages/patches/pingus-sdl-libs-config.patch \ + %D%/packages/patches/plink-1.07-unclobber-i.patch \ + %D%/packages/patches/plotutils-libpng-jmpbuf.patch \ + %D%/packages/patches/polkit-drop-test.patch \ + %D%/packages/patches/portaudio-audacity-compat.patch \ + %D%/packages/patches/portmidi-modular-build.patch \ + %D%/packages/patches/procmail-ambiguous-getline-debian.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 \ + %D%/packages/patches/pycairo-wscript.patch \ + %D%/packages/patches/pybugz-encode-error.patch \ + %D%/packages/patches/pybugz-stty.patch \ + %D%/packages/patches/pygpgme-disable-problematic-tests.patch \ + %D%/packages/patches/pyqt-configure.patch \ + %D%/packages/patches/python-2-deterministic-build-info.patch \ + %D%/packages/patches/python-2.7-search-paths.patch \ + %D%/packages/patches/python-2.7-source-date-epoch.patch \ + %D%/packages/patches/python-3-deterministic-build-info.patch \ + %D%/packages/patches/python-3-search-paths.patch \ + %D%/packages/patches/python-disable-ssl-test.patch \ + %D%/packages/patches/python-fix-tests.patch \ + %D%/packages/patches/python-ipython-inputhook-ctype.patch \ + %D%/packages/patches/python-rarfile-fix-tests.patch \ + %D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ + %D%/packages/patches/python-configobj-setuptools.patch \ + %D%/packages/patches/python-paste-remove-website-test.patch \ + %D%/packages/patches/python-paste-remove-timing-test.patch \ + %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ + %D%/packages/patches/qt4-ldflags.patch \ + %D%/packages/patches/ratpoison-shell.patch \ + %D%/packages/patches/readline-link-ncurses.patch \ + %D%/packages/patches/ripperx-missing-file.patch \ + %D%/packages/patches/rsem-makefile.patch \ + %D%/packages/patches/ruby-symlinkfix.patch \ + %D%/packages/patches/sed-hurd-path-max.patch \ + %D%/packages/patches/scheme48-tests.patch \ + %D%/packages/patches/scotch-test-threading.patch \ + %D%/packages/patches/sdl-libx11-1.6.patch \ + %D%/packages/patches/serf-comment-style-fix.patch \ + %D%/packages/patches/serf-deflate-buckets-test-fix.patch \ + %D%/packages/patches/slim-session.patch \ + %D%/packages/patches/slim-config.patch \ + %D%/packages/patches/slim-sigusr1.patch \ + %D%/packages/patches/slurm-configure-remove-nonfree-contribs.patch \ + %D%/packages/patches/soprano-find-clucene.patch \ + %D%/packages/patches/sudo-CVE-2015-5602.patch \ + %D%/packages/patches/superlu-dist-scotchmetis.patch \ + %D%/packages/patches/synfig-build-fix.patch \ + %D%/packages/patches/tar-d_ino_in_dirent-fix.patch \ + %D%/packages/patches/tar-skip-unreliable-tests.patch \ + %D%/packages/patches/tcl-mkindex-deterministic.patch \ + %D%/packages/patches/tclxml-3.2-install.patch \ + %D%/packages/patches/tcsh-fix-autotest.patch \ + %D%/packages/patches/texi2html-document-encoding.patch \ + %D%/packages/patches/texi2html-i18n.patch \ + %D%/packages/patches/tidy-CVE-2015-5522+5523.patch \ + %D%/packages/patches/tinyxml-use-stl.patch \ + %D%/packages/patches/tk-find-library.patch \ + %D%/packages/patches/ttf2eot-cstddef.patch \ + %D%/packages/patches/ttfautohint-source-date-epoch.patch \ + %D%/packages/patches/tophat-build-with-later-seqan.patch \ + %D%/packages/patches/torsocks-dns-test.patch \ + %D%/packages/patches/totem-debug-format-fix.patch \ + %D%/packages/patches/unzip-CVE-2014-8139.patch \ + %D%/packages/patches/unzip-CVE-2014-8140.patch \ + %D%/packages/patches/unzip-CVE-2014-8141.patch \ + %D%/packages/patches/unzip-CVE-2014-9636.patch \ + %D%/packages/patches/unzip-CVE-2015-7696.patch \ + %D%/packages/patches/unzip-CVE-2015-7697.patch \ + %D%/packages/patches/unzip-allow-greater-hostver-values.patch \ + %D%/packages/patches/unzip-attribs-overflow.patch \ + %D%/packages/patches/unzip-overflow-on-invalid-input.patch \ + %D%/packages/patches/unzip-format-secure.patch \ + %D%/packages/patches/unzip-initialize-symlink-flag.patch \ + %D%/packages/patches/unzip-overflow-long-fsize.patch \ + %D%/packages/patches/unzip-remove-build-date.patch \ + %D%/packages/patches/util-linux-tests.patch \ + %D%/packages/patches/upower-builddir.patch \ + %D%/packages/patches/valgrind-enable-arm.patch \ + %D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \ + %D%/packages/patches/vpnc-script.patch \ + %D%/packages/patches/vtk-mesa-10.patch \ + %D%/packages/patches/w3m-libgc.patch \ + %D%/packages/patches/w3m-force-ssl_verify_server-on.patch \ + %D%/packages/patches/w3m-disable-sslv2-and-sslv3.patch \ + %D%/packages/patches/w3m-disable-weak-ciphers.patch \ + %D%/packages/patches/weechat-python.patch \ + %D%/packages/patches/weex-vacopy.patch \ + %D%/packages/patches/wicd-bitrate-none-fix.patch \ + %D%/packages/patches/wicd-get-selected-profile-fix.patch \ + %D%/packages/patches/wicd-urwid-1.3.patch \ + %D%/packages/patches/wicd-wpa2-ttls.patch \ + %D%/packages/patches/wmctrl-64-fix.patch \ + %D%/packages/patches/woff2-libbrotli.patch \ + %D%/packages/patches/wpa-supplicant-CVE-2015-5310.patch \ + %D%/packages/patches/wpa-supplicant-CVE-2015-5314.patch \ + %D%/packages/patches/wpa-supplicant-CVE-2015-5315.patch \ + %D%/packages/patches/wpa-supplicant-CVE-2015-5316.patch \ + %D%/packages/patches/wpa-supplicant-CVE-2016-4476.patch \ + %D%/packages/patches/wpa-supplicant-CVE-2016-4477-pt1.patch \ + %D%/packages/patches/wpa-supplicant-CVE-2016-4477-pt2.patch \ + %D%/packages/patches/wpa-supplicant-CVE-2016-4477-pt3.patch \ + %D%/packages/patches/wpa-supplicant-CVE-2016-4477-pt4.patch \ + %D%/packages/patches/xdotool-fix-makefile.patch \ + %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ + %D%/packages/patches/xf86-video-ast-remove-mibstore.patch \ + %D%/packages/patches/xf86-video-geode-glibc-2.20.patch \ + %D%/packages/patches/xf86-video-glint-remove-mibstore.patch \ + %D%/packages/patches/xf86-video-i128-remove-mibstore.patch \ + %D%/packages/patches/xf86-video-intel-compat-api.patch \ + %D%/packages/patches/xf86-video-intel-glibc-2.20.patch \ + %D%/packages/patches/xf86-video-mach64-glibc-2.20.patch \ + %D%/packages/patches/xf86-video-nv-remove-mibstore.patch \ + %D%/packages/patches/xf86-video-openchrome-glibc-2.20.patch \ + %D%/packages/patches/xf86-video-tga-remove-mibstore.patch \ + %D%/packages/patches/xfce4-panel-plugins.patch \ + %D%/packages/patches/xfce4-session-fix-xflock4.patch \ + %D%/packages/patches/xfce4-settings-defaults.patch \ + %D%/packages/patches/xmodmap-asprintf.patch \ + %D%/packages/patches/zathura-plugindir-environment-variable.patch MISC_DISTRO_FILES = \ - gnu/packages/ld-wrapper.in + %D%/packages/ld-wrapper.in -bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap +bootstrapdir = $(guilemoduledir)/%D%/packages/bootstrap bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux bootstrap_armhf_linuxdir = $(bootstrapdir)/armhf-linux bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux dist_bootstrap_x86_64_linux_DATA = \ - gnu/packages/bootstrap/x86_64-linux/bash \ - gnu/packages/bootstrap/x86_64-linux/mkdir \ - gnu/packages/bootstrap/x86_64-linux/tar \ - gnu/packages/bootstrap/x86_64-linux/xz + %D%/packages/bootstrap/x86_64-linux/bash \ + %D%/packages/bootstrap/x86_64-linux/mkdir \ + %D%/packages/bootstrap/x86_64-linux/tar \ + %D%/packages/bootstrap/x86_64-linux/xz dist_bootstrap_i686_linux_DATA = \ - gnu/packages/bootstrap/i686-linux/bash \ - gnu/packages/bootstrap/i686-linux/mkdir \ - gnu/packages/bootstrap/i686-linux/tar \ - gnu/packages/bootstrap/i686-linux/xz + %D%/packages/bootstrap/i686-linux/bash \ + %D%/packages/bootstrap/i686-linux/mkdir \ + %D%/packages/bootstrap/i686-linux/tar \ + %D%/packages/bootstrap/i686-linux/xz dist_bootstrap_armhf_linux_DATA = \ - gnu/packages/bootstrap/armhf-linux/bash \ - gnu/packages/bootstrap/armhf-linux/mkdir \ - gnu/packages/bootstrap/armhf-linux/tar \ - gnu/packages/bootstrap/armhf-linux/xz + %D%/packages/bootstrap/armhf-linux/bash \ + %D%/packages/bootstrap/armhf-linux/mkdir \ + %D%/packages/bootstrap/armhf-linux/tar \ + %D%/packages/bootstrap/armhf-linux/xz dist_bootstrap_mips64el_linux_DATA = \ - gnu/packages/bootstrap/mips64el-linux/bash \ - gnu/packages/bootstrap/mips64el-linux/mkdir \ - gnu/packages/bootstrap/mips64el-linux/tar \ - gnu/packages/bootstrap/mips64el-linux/xz + %D%/packages/bootstrap/mips64el-linux/bash \ + %D%/packages/bootstrap/mips64el-linux/mkdir \ + %D%/packages/bootstrap/mips64el-linux/tar \ + %D%/packages/bootstrap/mips64el-linux/xz # Big bootstrap binaries are not included in the tarball. Instead, they # are downloaded. nodist_bootstrap_x86_64_linux_DATA = \ - gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz + %D%/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz nodist_bootstrap_i686_linux_DATA = \ - gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz + %D%/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz nodist_bootstrap_armhf_linux_DATA = \ - gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz + %D%/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz nodist_bootstrap_mips64el_linux_DATA = \ - gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz + %D%/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz # Those files must remain executable, so they remain executable once # imported into the store. @@ -862,19 +862,19 @@ DOWNLOAD_FILE = \ $(GUILE) --no-auto-compile -L "$(top_builddir)" -L "$(top_srcdir)" \ "$(top_srcdir)/build-aux/download.scm" -gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz: +%D%/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz: $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ $(DOWNLOAD_FILE) "$@" \ "037b103522a2d0d7d69c7ffd8de683dfe5bb4b59c1fafd70b4ffd397fd2f57f0" -gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz: +%D%/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz: $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ $(DOWNLOAD_FILE) "$@" \ "b757cd46bf13ecac83fb8e955fb50096ac2d17bb610ca8eb816f29302a00a846" -gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz: +%D%/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz: $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ $(DOWNLOAD_FILE) "$@" \ "e551d05d4d385d6706ab8d574856a087758294dc90ab4c06e70a157a685e23d6" -gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz: +%D%/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz: $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ $(DOWNLOAD_FILE) "$@" \ "994680f0001346864aa2c2cc5110f380ee7518dcd701c614291682b8e948f73b" diff --git a/nix/local.mk b/nix/local.mk index 3c15531f54..be57894eaf 100644 --- a/nix/local.mk +++ b/nix/local.mk @@ -21,7 +21,7 @@ # Integration of the `guix-daemon' code taken from upstream Nix. # -BUILT_SOURCES += nix/libstore/schema.sql.hh +BUILT_SOURCES += %D%/libstore/schema.sql.hh CLEANFILES += $(BUILT_SOURCES) etc/guix-daemon.service etc/guix-daemon.conf noinst_LIBRARIES = libformat.a libutil.a libstore.a @@ -30,80 +30,80 @@ noinst_LIBRARIES = libformat.a libutil.a libstore.a AM_CXXFLAGS = -Wall -std=c++11 libformat_a_SOURCES = \ - nix/boost/format/free_funcs.cc \ - nix/boost/format/parsing.cc \ - nix/boost/format/format_implementation.cc + %D%/boost/format/free_funcs.cc \ + %D%/boost/format/parsing.cc \ + %D%/boost/format/format_implementation.cc libformat_headers = \ - nix/boost/throw_exception.hpp \ - nix/boost/format.hpp \ - nix/boost/assert.hpp \ - nix/boost/format/macros_default.hpp \ - nix/boost/format/format_fwd.hpp \ - nix/boost/format/format_class.hpp \ - nix/boost/format/exceptions.hpp \ - nix/boost/format/group.hpp \ - nix/boost/format/feed_args.hpp \ - nix/boost/format/internals_fwd.hpp \ - nix/boost/format/internals.hpp + %D%/boost/throw_exception.hpp \ + %D%/boost/format.hpp \ + %D%/boost/assert.hpp \ + %D%/boost/format/macros_default.hpp \ + %D%/boost/format/format_fwd.hpp \ + %D%/boost/format/format_class.hpp \ + %D%/boost/format/exceptions.hpp \ + %D%/boost/format/group.hpp \ + %D%/boost/format/feed_args.hpp \ + %D%/boost/format/internals_fwd.hpp \ + %D%/boost/format/internals.hpp libformat_a_CPPFLAGS = \ -I$(top_srcdir)/nix libutil_a_SOURCES = \ - nix/libutil/archive.cc \ - nix/libutil/affinity.cc \ - nix/libutil/serialise.cc \ - nix/libutil/util.cc \ - nix/libutil/xml-writer.cc \ - nix/libutil/hash.cc \ - nix/libutil/gcrypt-hash.cc + %D%/libutil/archive.cc \ + %D%/libutil/affinity.cc \ + %D%/libutil/serialise.cc \ + %D%/libutil/util.cc \ + %D%/libutil/xml-writer.cc \ + %D%/libutil/hash.cc \ + %D%/libutil/gcrypt-hash.cc libutil_headers = \ - nix/libutil/affinity.hh \ - nix/libutil/hash.hh \ - nix/libutil/serialise.hh \ - nix/libutil/xml-writer.hh \ - nix/libutil/util.hh \ - nix/libutil/archive.hh \ - nix/libutil/types.hh \ - nix/libutil/gcrypt-hash.hh \ - nix/libutil/md5.h \ - nix/libutil/sha1.h \ - nix/libutil/sha256.h \ - nix/libutil/sha512.h + %D%/libutil/affinity.hh \ + %D%/libutil/hash.hh \ + %D%/libutil/serialise.hh \ + %D%/libutil/xml-writer.hh \ + %D%/libutil/util.hh \ + %D%/libutil/archive.hh \ + %D%/libutil/types.hh \ + %D%/libutil/gcrypt-hash.hh \ + %D%/libutil/md5.h \ + %D%/libutil/sha1.h \ + %D%/libutil/sha256.h \ + %D%/libutil/sha512.h libutil_a_CPPFLAGS = \ -I$(top_builddir)/nix \ - -I$(top_srcdir)/nix/libutil \ + -I$(top_srcdir)/%D%/libutil \ $(libformat_a_CPPFLAGS) libstore_a_SOURCES = \ - nix/libstore/gc.cc \ - nix/libstore/globals.cc \ - nix/libstore/misc.cc \ - nix/libstore/references.cc \ - nix/libstore/store-api.cc \ - nix/libstore/optimise-store.cc \ - nix/libstore/local-store.cc \ - nix/libstore/build.cc \ - nix/libstore/pathlocks.cc \ - nix/libstore/derivations.cc + %D%/libstore/gc.cc \ + %D%/libstore/globals.cc \ + %D%/libstore/misc.cc \ + %D%/libstore/references.cc \ + %D%/libstore/store-api.cc \ + %D%/libstore/optimise-store.cc \ + %D%/libstore/local-store.cc \ + %D%/libstore/build.cc \ + %D%/libstore/pathlocks.cc \ + %D%/libstore/derivations.cc libstore_headers = \ - nix/libstore/references.hh \ - nix/libstore/pathlocks.hh \ - nix/libstore/globals.hh \ - nix/libstore/worker-protocol.hh \ - nix/libstore/derivations.hh \ - nix/libstore/misc.hh \ - nix/libstore/local-store.hh \ - nix/libstore/store-api.hh + %D%/libstore/references.hh \ + %D%/libstore/pathlocks.hh \ + %D%/libstore/globals.hh \ + %D%/libstore/worker-protocol.hh \ + %D%/libstore/derivations.hh \ + %D%/libstore/misc.hh \ + %D%/libstore/local-store.hh \ + %D%/libstore/store-api.hh libstore_a_CPPFLAGS = \ $(libutil_a_CPPFLAGS) \ - -I$(top_srcdir)/nix/libstore \ - -I$(top_builddir)/nix/libstore \ + -I$(top_srcdir)/%D%/libstore \ + -I$(top_builddir)/%D%/libstore \ -DNIX_STORE_DIR=\"$(storedir)\" \ -DNIX_DATA_DIR=\"$(datadir)\" \ -DNIX_STATE_DIR=\"$(localstatedir)/guix\" \ @@ -121,29 +121,29 @@ bin_PROGRAMS = guix-daemon sbin_PROGRAMS = guix-register guix_daemon_SOURCES = \ - nix/nix-daemon/nix-daemon.cc \ - nix/nix-daemon/guix-daemon.cc + %D%/nix-daemon/nix-daemon.cc \ + %D%/nix-daemon/guix-daemon.cc guix_daemon_CPPFLAGS = \ -DLOCALEDIR=\"$(localedir)\" \ $(libutil_a_CPPFLAGS) \ - -I$(top_srcdir)/nix/libstore + -I$(top_srcdir)/%D%/libstore guix_daemon_LDADD = \ libstore.a libutil.a libformat.a -lbz2 \ $(SQLITE3_LIBS) $(LIBGCRYPT_LIBS) guix_daemon_headers = \ - nix/nix-daemon/shared.hh + %D%/nix-daemon/shared.hh guix_register_SOURCES = \ - nix/guix-register/guix-register.cc + %D%/guix-register/guix-register.cc guix_register_CPPFLAGS = \ $(libutil_a_CPPFLAGS) \ $(libstore_a_CPPFLAGS) \ - -I$(top_srcdir)/nix/libstore + -I$(top_srcdir)/%D%/libstore # XXX: Should we start using shared libs? guix_register_LDADD = \ @@ -155,7 +155,7 @@ noinst_HEADERS = \ $(libformat_headers) $(libutil_headers) $(libstore_headers) \ $(guix_daemon_headers) -nix/libstore/schema.sql.hh: nix/libstore/schema.sql +%D%/libstore/schema.sql.hh: %D%/libstore/schema.sql $(AM_V_GEN)$(GUILE) --no-auto-compile -c \ "(use-modules (rnrs io ports)) \ (call-with-output-file \"$@\" \ @@ -165,20 +165,20 @@ nix/libstore/schema.sql.hh: nix/libstore/schema.sql (write (get-string-all in) out)))))" nodist_pkglibexec_SCRIPTS = \ - nix/scripts/list-runtime-roots \ - nix/scripts/substitute + %D%/scripts/list-runtime-roots \ + %D%/scripts/substitute if BUILD_DAEMON_OFFLOAD nodist_pkglibexec_SCRIPTS += \ - nix/scripts/offload + %D%/scripts/offload endif BUILD_DAEMON_OFFLOAD # XXX: It'd be better to hide it in $(pkglibexecdir). nodist_libexec_SCRIPTS = \ - nix/scripts/guix-authenticate + %D%/scripts/guix-authenticate # The '.service' file for systemd. systemdservicedir = $(libdir)/systemd/system @@ -203,9 +203,9 @@ etc/guix-daemon.conf: etc/guix-daemon.conf.in \ mv "$@.tmp" "$@" EXTRA_DIST += \ - nix/libstore/schema.sql \ - nix/AUTHORS \ - nix/COPYING \ + %D%/libstore/schema.sql \ + %D%/AUTHORS \ + %D%/COPYING \ etc/guix-daemon.service.in \ etc/guix-daemon.conf.in From 493e9a5a8f613764cfa396c33ee6cb381b0dbbef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 May 2016 14:11:52 +0200 Subject: [PATCH 024/277] gnu: libxml2: Fix CVE-2016-3627 and CVE-2016-3705. * gnu/packages/patches/libxml2-CVE-2016-3627.patch, gnu/packages/patches/libxml2-CVE-2016-3705.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/xml.scm (libxml2)[replacement]: New field. (libxml2/fixed): New variable. --- gnu/local.mk | 2 + .../patches/libxml2-CVE-2016-3627.patch | 61 +++++++++++++++++ .../patches/libxml2-CVE-2016-3705.patch | 68 +++++++++++++++++++ gnu/packages/xml.scm | 11 ++- 4 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libxml2-CVE-2016-3627.patch create mode 100644 gnu/packages/patches/libxml2-CVE-2016-3705.patch diff --git a/gnu/local.mk b/gnu/local.mk index 99e43e1ed8..9cd9699499 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -606,6 +606,8 @@ dist_patch_DATA = \ %D%/packages/patches/libwmf-CVE-2015-0848+CVE-2015-4588.patch \ %D%/packages/patches/libwmf-CVE-2015-4695.patch \ %D%/packages/patches/libwmf-CVE-2015-4696.patch \ + %D%/packages/patches/libxml2-CVE-2016-3627.patch \ + %D%/packages/patches/libxml2-CVE-2016-3705.patch \ %D%/packages/patches/libxslt-CVE-2015-7995.patch \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/libpthread-glibc-preparation.patch \ diff --git a/gnu/packages/patches/libxml2-CVE-2016-3627.patch b/gnu/packages/patches/libxml2-CVE-2016-3627.patch new file mode 100644 index 0000000000..782c9270cf --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2016-3627.patch @@ -0,0 +1,61 @@ +From . + +From e5269fd1e83743f7e62c89eca45000c2e84e6edc Mon Sep 17 00:00:00 2001 +From: Peter Simons +Date: Thu, 14 Apr 2016 16:15:13 +0200 +Subject: [PATCH 1/2] xmlStringGetNodeList: limit the function to 1024 + recursions to avoid CVE-2016-3627 + +This patch prevents stack overflows like the one reported in +https://bugzilla.gnome.org/show_bug.cgi?id=762100. +--- + tree.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +Index: libxml2-2.9.3/tree.c +=================================================================== +--- libxml2-2.9.3.orig/tree.c ++++ libxml2-2.9.3/tree.c +@@ -1464,6 +1464,8 @@ out: + return(ret); + } + ++static xmlNodePtr xmlStringGetNodeListInternal(const xmlDoc *doc, const xmlChar *value, size_t recursionLevel); ++ + /** + * xmlStringGetNodeList: + * @doc: the document +@@ -1475,6 +1477,12 @@ out: + */ + xmlNodePtr + xmlStringGetNodeList(const xmlDoc *doc, const xmlChar *value) { ++ return xmlStringGetNodeListInternal(doc, value, 0); ++ } ++ ++xmlNodePtr ++xmlStringGetNodeListInternal(const xmlDoc *doc, const xmlChar *value, size_t recursionLevel) { ++ + xmlNodePtr ret = NULL, last = NULL; + xmlNodePtr node; + xmlChar *val; +@@ -1483,6 +1491,8 @@ xmlStringGetNodeList(const xmlDoc *doc, + xmlEntityPtr ent; + xmlBufPtr buf; + ++ if (recursionLevel > 1024) return(NULL); ++ + if (value == NULL) return(NULL); + + buf = xmlBufCreateSize(0); +@@ -1593,8 +1603,9 @@ xmlStringGetNodeList(const xmlDoc *doc, + else if ((ent != NULL) && (ent->children == NULL)) { + xmlNodePtr temp; + +- ent->children = xmlStringGetNodeList(doc, +- (const xmlChar*)node->content); ++ ent->children = xmlStringGetNodeListInternal(doc, ++ (const xmlChar*)node->content, ++ recursionLevel+1); + ent->owner = 1; + temp = ent->children; + while (temp) { diff --git a/gnu/packages/patches/libxml2-CVE-2016-3705.patch b/gnu/packages/patches/libxml2-CVE-2016-3705.patch new file mode 100644 index 0000000000..e803630f3a --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2016-3705.patch @@ -0,0 +1,68 @@ +From . + +From 6f0af3f6b9b1c5f82a2bb5ded65923437fee5d21 Mon Sep 17 00:00:00 2001 +From: Peter Simons +Date: Fri, 15 Apr 2016 11:56:55 +0200 +Subject: [PATCH 2/2] Add missing increments of recursion depth counter to XML + parser. + +The functions xmlParserEntityCheck() and xmlParseAttValueComplex() used to call +xmlStringDecodeEntities() in a recursive context without incrementing the +'depth' counter in the parser context. Because of that omission, the parser +failed to detect attribute recursions in certain documents before running out +of stack space. +--- + parser.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/parser.c b/parser.c +index 9604a72..4da151f 100644 +--- a/parser.c ++++ b/parser.c +@@ -144,8 +144,10 @@ xmlParserEntityCheck(xmlParserCtxtPtr ctxt, size_t size, + + ent->checked = 1; + ++ ++ctxt->depth; + rep = xmlStringDecodeEntities(ctxt, ent->content, + XML_SUBSTITUTE_REF, 0, 0, 0); ++ --ctxt->depth; + + ent->checked = (ctxt->nbentities - oldnbent + 1) * 2; + if (rep != NULL) { +@@ -3966,8 +3968,10 @@ xmlParseEntityValue(xmlParserCtxtPtr ctxt, xmlChar **orig) { + * an entity declaration, it is bypassed and left as is. + * so XML_SUBSTITUTE_REF is not set here. + */ ++ ++ctxt->depth; + ret = xmlStringDecodeEntities(ctxt, buf, XML_SUBSTITUTE_PEREF, + 0, 0, 0); ++ --ctxt->depth; + if (orig != NULL) + *orig = buf; + else +@@ -4092,9 +4096,11 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { + } else if ((ent != NULL) && + (ctxt->replaceEntities != 0)) { + if (ent->etype != XML_INTERNAL_PREDEFINED_ENTITY) { ++ ++ctxt->depth; + rep = xmlStringDecodeEntities(ctxt, ent->content, + XML_SUBSTITUTE_REF, + 0, 0, 0); ++ --ctxt->depth; + if (rep != NULL) { + current = rep; + while (*current != 0) { /* non input consuming */ +@@ -4130,8 +4136,10 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { + (ent->content != NULL) && (ent->checked == 0)) { + unsigned long oldnbent = ctxt->nbentities; + ++ ++ctxt->depth; + rep = xmlStringDecodeEntities(ctxt, ent->content, + XML_SUBSTITUTE_REF, 0, 0, 0); ++ --ctxt->depth; + + ent->checked = (ctxt->nbentities - oldnbent + 1) * 2; + if (rep != NULL) { +-- +2.8.1 diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 9eaf71aefa..96bb8b76c6 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2015 Sou Bunnbu @@ -77,6 +77,7 @@ things the parser might find in the XML document (like start tags).") (package (name "libxml2") (version "2.9.3") + (replacement libxml2/fixed) ;multiple CVEs (source (origin (method url-fetch) (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-" @@ -103,6 +104,14 @@ things the parser might find in the XML document (like start tags).") project (but it is usable outside of the Gnome platform).") (license license:x11))) +(define libxml2/fixed + (package + (inherit libxml2) + (source (origin + (inherit (package-source libxml2)) + (patches (search-patches "libxml2-CVE-2016-3627.patch" + "libxml2-CVE-2016-3705.patch")))))) + (define-public python-libxml2 (package (inherit libxml2) (name "python-libxml2") From a61cd1d0fd642c45bc61ef52f09d8f62ce3976b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 May 2016 14:45:18 +0200 Subject: [PATCH 025/277] tests: Do not run 'cve' checker in 'tests/guix-lint.sh'. Reported by Malcolm, Cook . * tests/guix-lint.sh: Pass '-c synopsis,description' in first invocation so we don't run the 'cve' checker. --- tests/guix-lint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/guix-lint.sh b/tests/guix-lint.sh index c105521ec7..7ddc7c265b 100644 --- a/tests/guix-lint.sh +++ b/tests/guix-lint.sh @@ -54,7 +54,7 @@ grep_warning () # 2) the synopsis starts with a lower-case letter; # 3) the description has a single space following the end-of-sentence period. -out=`guix lint dummy 2>&1` +out=`guix lint -c synopsis,description dummy 2>&1` if [ `grep_warning "$out"` -ne 3 ] then false; else true; fi From a371aa225c2fb0a7071609d10bbddbef353a0da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 May 2016 20:51:49 +0200 Subject: [PATCH 026/277] size: 'store-profile' takes a list of store items. * guix/scripts/size.scm (mappend-map): New procedure. (store-profile): Change 'item' to 'items' and adjust code accordingly. (guix-size): Update caller. * tests/size.scm ("store-profile"): Likewise. --- guix/scripts/size.scm | 17 ++++++++++++----- tests/size.scm | 4 ++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm index be1e8ca087..8a7974729b 100644 --- a/guix/scripts/size.scm +++ b/guix/scripts/size.scm @@ -123,13 +123,20 @@ substitutes." store))) (values (requisites store item) store)))) -(define (store-profile item) +(define (mappend-map mproc lst) + "Apply MPROC to each item of LST and concatenate the resulting list." + (with-monad %store-monad + (>>= (mapm %store-monad mproc lst) + (lambda (lstlst) + (return (concatenate lstlst)))))) + +(define (store-profile items) "Return as a monadic value a list of objects representing the -profile of ITEM and its requisites." - (mlet* %store-monad ((refs (>>= (requisites* item) +profile of ITEMS and their requisites." + (mlet* %store-monad ((refs (>>= (mappend-map requisites* items) (lambda (refs) (return (delete-duplicates - (cons item refs)))))) + (append items refs)))))) (sizes (mapm %store-monad (lambda (item) (>>= (file-size item) @@ -286,7 +293,7 @@ Report the size of PACKAGE and its dependencies.\n")) (run-with-store store (mlet* %store-monad ((item (ensure-store-item file)) - (profile (store-profile item))) + (profile (store-profile (list item)))) (if map-file (begin (profile->page-map profile map-file) diff --git a/tests/size.scm b/tests/size.scm index fcd590283d..068ebc1d68 100644 --- a/tests/size.scm +++ b/tests/size.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -54,7 +54,7 @@ (mbegin %store-monad (built-derivations (list file2)) (mlet %store-monad ((profiles (store-profile - (derivation->output-path file2))) + (list (derivation->output-path file2)))) (bash (interned-file (search-bootstrap-binary "bash" (%current-system)) "bash" From db761534df3b57122da8e8b05a678182b59a9d3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 May 2016 21:37:13 +0200 Subject: [PATCH 027/277] size: Accept several arguments. * guix/scripts/size.scm (display-profile): Display WHOLE at then end. (guix-size): Accept several FILES. * doc/guix.texi (Invoking guix size): Add example with several items. --- doc/guix.texi | 18 ++++++++++++++++++ guix/scripts/size.scm | 14 +++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index d88cc256d7..1b47193e1f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5058,6 +5058,24 @@ reports information based on the available substitutes (@pxref{Substitutes}). This makes it possible it to profile disk usage of store items that are not even on disk, only available remotely. +You can also specify several package names: + +@example +$ guix size coreutils grep sed bash +store item total self +/gnu/store/@dots{}-coreutils-8.24 77.8 13.8 13.4% +/gnu/store/@dots{}-grep-2.22 73.1 0.8 0.8% +/gnu/store/@dots{}-bash-4.3.42 72.3 4.7 4.6% +/gnu/store/@dots{}-readline-6.3 67.6 1.2 1.2% +@dots{} +total: 102.3 MiB +@end example + +@noindent +In this example we see that the combination of the four packages takes +102.3@tie{}MiB in total, which is much less than the sum of each closure +since they have a lot of dependencies in common. + The available options are: @table @option diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm index 8a7974729b..843213834e 100644 --- a/guix/scripts/size.scm +++ b/guix/scripts/size.scm @@ -91,7 +91,8 @@ if ITEM is not in the store." (sort profile (match-lambda* ((($ _ _ total1) ($ _ _ total2)) - (> total1 total2))))))) + (> total1 total2))))) + (format port (_ "total: ~,1f MiB~%") (/ whole MiB 1.)))) (define display-profile* (lift display-profile %store-monad)) @@ -280,7 +281,7 @@ Report the size of PACKAGE and its dependencies.\n")) (match files (() (leave (_ "missing store item argument\n"))) - ((file) + ((files ..1) (leave-on-EPIPE ;; Turn off grafts because (1) hydra.gnu.org does not serve grafted ;; packages, and (2) they do not make any difference on the @@ -292,13 +293,12 @@ Report the size of PACKAGE and its dependencies.\n")) #:substitute-urls urls) (run-with-store store - (mlet* %store-monad ((item (ensure-store-item file)) - (profile (store-profile (list item)))) + (mlet* %store-monad ((items (mapm %store-monad + ensure-store-item files)) + (profile (store-profile items))) (if map-file (begin (profile->page-map profile map-file) (return #t)) (display-profile* profile))) - #:system system))))) - ((files ...) - (leave (_ "too many arguments\n"))))))) + #:system system))))))))) From f6fee16e9370bdc9e912878706f69355fc40a472 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 May 2016 23:27:07 +0200 Subject: [PATCH 028/277] store: 'requisites' now takes a list of store items. * guix/store.scm (fold-path): Change 'path' to 'paths' and adjust body accordingly. (requisites): Likewise. * guix/scripts/environment.scm (inputs->requisites): Adjust user accordingly. * guix/scripts/size.scm (requisites*): Likewise. * guix/scripts/gc.scm (guix-gc): Likewise. * tests/store.scm ("requisites"): Likewise. --- guix/scripts/environment.scm | 6 +++--- guix/scripts/gc.scm | 3 ++- guix/scripts/size.scm | 2 +- guix/store.scm | 14 +++++++------- tests/store.scm | 10 ++++++---- 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 9ba487d1eb..ebe966f9cf 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -333,11 +333,11 @@ requisite store items i.e. the union closure of all the inputs." (requisites* (match input ((drv output) - (derivation->output-path drv output)) + (list (derivation->output-path drv output))) ((drv) - (derivation->output-path drv)) + (list (derivation->output-path drv))) ((? direct-store-path? path) - path)))) + (list path))))) (mlet %store-monad ((reqs (sequence %store-monad (map input->requisites inputs)))) diff --git a/guix/scripts/gc.scm b/guix/scripts/gc.scm index 4ec9ff9dca..8db28138c8 100644 --- a/guix/scripts/gc.scm +++ b/guix/scripts/gc.scm @@ -229,7 +229,8 @@ Invoke the garbage collector.\n")) ((list-references) (list-relatives references)) ((list-requisites) - (list-relatives requisites)) + (list-relatives (lambda (store item) + (requisites store (list item))))) ((list-referrers) (list-relatives referrers)) ((optimize) diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm index 843213834e..c9725aee4c 100644 --- a/guix/scripts/size.scm +++ b/guix/scripts/size.scm @@ -122,7 +122,7 @@ substitutes." (guard (c ((nix-protocol-error? c) (values (substitutable-requisites store item) store))) - (values (requisites store item) store)))) + (values (requisites store (list item)) store)))) (define (mappend-map mproc lst) "Apply MPROC to each item of LST and concatenate the resulting list." diff --git a/guix/store.scm b/guix/store.scm index 4d89f4a413..e3033ee61a 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -803,12 +803,12 @@ the list of references") (loop items tail (cons head result))))))))) -(define* (fold-path store proc seed path +(define* (fold-path store proc seed paths #:optional (relatives (cut references store <>))) - "Call PROC for each of the RELATIVES of PATH, exactly once, and return the + "Call PROC for each of the RELATIVES of PATHS, exactly once, and return the result formed from the successive calls to PROC, the first of which is passed SEED." - (let loop ((paths (list path)) + (let loop ((paths paths) (result seed) (seen vlist-null)) (match paths @@ -822,10 +822,10 @@ SEED." (() result)))) -(define (requisites store path) - "Return the requisites of PATH, including PATH---i.e., its closure (all its -references, recursively)." - (fold-path store cons '() path)) +(define (requisites store paths) + "Return the requisites of PATHS, including PATHS---i.e., their closures (all +its references, recursively)." + (fold-path store cons '() paths)) (define (topologically-sorted store paths) "Return a list containing PATHS and all their references sorted in diff --git a/tests/store.scm b/tests/store.scm index eeadcb94f8..3c2c247561 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -244,10 +244,12 @@ (and (= (length x) (length y)) (lset= equal? x y))) - (and (same? (requisites %store t1) (list t1)) - (same? (requisites %store t2) (list t1 t2)) - (same? (requisites %store t3) (list t1 t2 t3)) - (same? (requisites %store t4) (list t1 t2 t3 t4))))) + (and (same? (requisites %store (list t1)) (list t1)) + (same? (requisites %store (list t2)) (list t1 t2)) + (same? (requisites %store (list t3)) (list t1 t2 t3)) + (same? (requisites %store (list t4)) (list t1 t2 t3 t4)) + (same? (requisites %store (list t1 t2 t3 t4)) + (list t1 t2 t3 t4))))) (test-assert "derivers" (let* ((b (add-text-to-store %store "build" "echo $foo > $out" '())) From 92ed837a1eaa0e921e17497e262a6da510323726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 May 2016 23:41:30 +0200 Subject: [PATCH 029/277] size: Pass 'requisites' a list of items. * guix/scripts/size.scm (substitutable-requisites): Change 'item' to 'items' and adjust. (requisites*): Likewise. (mappend-map): Remove. (store-profile): Adjust accordingly. --- guix/scripts/size.scm | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm index c9725aee4c..f28832ce90 100644 --- a/guix/scripts/size.scm +++ b/guix/scripts/size.scm @@ -97,10 +97,10 @@ if ITEM is not in the store." (define display-profile* (lift display-profile %store-monad)) -(define (substitutable-requisites store item) - "Return the list of requisites of ITEM based on information available in +(define (substitutable-requisites store items) + "Return the list of requisites of ITEMS based on information available in substitutes." - (let loop ((items (list item)) + (let loop ((items items) (result '())) (match items (() @@ -114,27 +114,20 @@ substitutes." (append (append-map substitutable-references info) result))))))) -(define (requisites* item) +(define (requisites* items) "Return as a monadic value the requisites of ITEMS, based either on the information available in the local store or using information about substitutes." (lambda (store) (guard (c ((nix-protocol-error? c) - (values (substitutable-requisites store item) + (values (substitutable-requisites store items) store))) - (values (requisites store (list item)) store)))) - -(define (mappend-map mproc lst) - "Apply MPROC to each item of LST and concatenate the resulting list." - (with-monad %store-monad - (>>= (mapm %store-monad mproc lst) - (lambda (lstlst) - (return (concatenate lstlst)))))) + (values (requisites store items) store)))) (define (store-profile items) "Return as a monadic value a list of objects representing the profile of ITEMS and their requisites." - (mlet* %store-monad ((refs (>>= (mappend-map requisites* items) + (mlet* %store-monad ((refs (>>= (requisites* items) (lambda (refs) (return (delete-duplicates (append items refs)))))) @@ -145,7 +138,7 @@ profile of ITEMS and their requisites." (return (cons item size))))) refs))) (define (dependency-size item) - (mlet %store-monad ((deps (requisites* item))) + (mlet %store-monad ((deps (requisites* (list item)))) (foldm %store-monad (lambda (item total) (return (+ (assoc-ref sizes item) total))) From 007c20b61c84af11289f96d43374e2e688838a26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 May 2016 23:49:26 +0200 Subject: [PATCH 030/277] graft: Fail when one of the threads raises an exception. Fixes . * guix/build/graft.scm (exit-on-exception): New procedure. (rewrite-directory): Use it to wrap REWRITE-LEAF. --- guix/build/graft.scm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/guix/build/graft.scm b/guix/build/graft.scm index b61982dd64..fb21fc3af3 100644 --- a/guix/build/graft.scm +++ b/guix/build/graft.scm @@ -105,6 +105,19 @@ a list of store file name pairs." (string-append (dirname file) "/" target)))) matches))) +(define (exit-on-exception proc) + "Return a procedure that wraps PROC so that 'primitive-exit' is called when +an exception is caught." + (lambda (arg) + (catch #t + (lambda () + (proc arg)) + (lambda (key . args) + ;; Since ports are not thread-safe as of Guile 2.0, reopen stderr. + (let ((port (fdopen 2 "w0"))) + (print-exception port #f key args) + (primitive-exit 1)))))) + (define* (rewrite-directory directory output mapping #:optional (store (%store-directory))) "Copy DIRECTORY to OUTPUT, replacing strings according to MAPPING, a list of @@ -147,9 +160,13 @@ file name pairs." ;; #o777. (umask #o022) + ;; Use 'exit-on-exception' to force an exit upon I/O errors, given that + ;; 'n-par-for-each' silently swallows exceptions. + ;; See . (n-par-for-each (parallel-job-count) - rewrite-leaf (find-files directory (const #t) - #:directories? #t)) + (exit-on-exception rewrite-leaf) + (find-files directory (const #t) + #:directories? #t)) (rename-matching-files output mapping)) ;;; graft.scm ends here From 6f82a7d40dd5dd9c54b3ca112288a286adb64b8f Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 25 May 2016 00:14:32 -0400 Subject: [PATCH 031/277] gnu: webkitgtk: Update to 2.12.3 [fixes CVE-2016-{1856,1857}]. * gnu/packages/webkit.scm (webkitgtk): Update to 2.12.3. --- gnu/packages/webkit.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index 734e4fc0df..578b4c9847 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -53,14 +53,14 @@ (define-public webkitgtk (package (name "webkitgtk") - (version "2.12.2") + (version "2.12.3") (source (origin (method url-fetch) (uri (string-append "http://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "097i53ip93qfy8sgpv5qjf8fmi07gwm41q83jxrxldqwif89pi4x")))) + "01y34v62khf03w25fnzgd42rrai5mf1m95lr5vjyw8ya5sdbng0p")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no tests From 796787a57757acfcfc1e5da5f2e2cbd1971c6a0f Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 25 May 2016 00:26:40 -0400 Subject: [PATCH 032/277] gnu: linux-libre-4.1: Update to 4.1.25. * gnu/packages/linux.scm (linux-libre-4.1): Update to 4.1.25. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5b1d2a9540..0ac4be20d0 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -357,13 +357,13 @@ It has been modified to remove all non-free binary blobs.") (define-public linux-libre-4.1 (package (inherit linux-libre) - (version "4.1.24") + (version "4.1.25") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "14jlnq0k86bl4wj8shmvgf34w90bbm9in44j1pdjwwvn169zh9ra")))) + "1vpgcnmfnn005rcd60wyyg0f84fgapdmz2dpcy77p2l66mw4pakf")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) From 19d6248634a81247a9e14f8f61e485d62327bea1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 25 May 2016 09:13:13 +0300 Subject: [PATCH 033/277] gnu: freeipmi: Update to 1.5.2. * gnu/packages/freeipmi.scm (freeipmi): Update to 1.5.2. --- gnu/packages/freeipmi.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm index 6cbad6b1b6..ea81b1af8d 100644 --- a/gnu/packages/freeipmi.scm +++ b/gnu/packages/freeipmi.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Ludovic Courtès -;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2015, 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,14 +28,14 @@ (define-public freeipmi (package (name "freeipmi") - (version "1.5.1") + (version "1.5.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/freeipmi/freeipmi-" version ".tar.gz")) (sha256 (base32 - "0lhjxlha4j5rx11d81y1rgp9j18rlpxsjc0flsmj6bm60awmm627")))) + "0xgfwk6lxwwzq8pbyxjl5xxpybs9p4qwgb7q0ykf048xwxha4kvk")))) (build-system gnu-build-system) (inputs `(("readline" ,readline) ("libgcrypt" ,libgcrypt))) From 92a7e46d58c59953cc4b35dcd1413ebfc0de8ec0 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 25 May 2016 04:45:18 -0400 Subject: [PATCH 034/277] gnu: python-libxml2: Drop replacement from inherited libxml2. This is a followup to commit 493e9a5a8f613764cfa396c33ee6cb381b0dbbef. * gnu/packages/xml.scm (python-libxml2)[replacement]: Set to #f, overriding inherited value. --- gnu/packages/xml.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 96bb8b76c6..782e356a70 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -115,6 +115,7 @@ project (but it is usable outside of the Gnome platform).") (define-public python-libxml2 (package (inherit libxml2) (name "python-libxml2") + (replacement #f) (build-system python-build-system) (arguments `(;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'. From 2301195f2e63ca079c1a2564479f4fbbc746e586 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 24 May 2016 01:28:57 -0400 Subject: [PATCH 035/277] gnu: linux-libre: Update to 4.6. * gnu/packages/linux.scm (linux-libre): Update to 4.6. * gnu/packages/linux-libre-4.6-x86_64.conf, gnu/packages/linux-libre-4.6-i686.conf: New files. * gnu/packages/linux-libre-4.5-x86_64.conf, gnu/packages/linux-libre-4.5-i686.conf: Delete files. * Makefile.am (KCONFIGS): Update accordingly. --- Makefile.am | 4 +- ....5-i686.conf => linux-libre-4.6-i686.conf} | 258 ++++++++++++------ ...86_64.conf => linux-libre-4.6-x86_64.conf} | 257 +++++++++++------ gnu/packages/linux.scm | 4 +- 4 files changed, 359 insertions(+), 164 deletions(-) rename gnu/packages/{linux-libre-4.5-i686.conf => linux-libre-4.6-i686.conf} (98%) rename gnu/packages/{linux-libre-4.5-x86_64.conf => linux-libre-4.6-x86_64.conf} (98%) diff --git a/Makefile.am b/Makefile.am index c2c571cf3b..8ab574b401 100644 --- a/Makefile.am +++ b/Makefile.am @@ -174,8 +174,8 @@ dist_noinst_DATA = guix/tests.scm # Linux-Libre configurations. KCONFIGS = \ - gnu/packages/linux-libre-4.5-i686.conf \ - gnu/packages/linux-libre-4.5-x86_64.conf \ + gnu/packages/linux-libre-4.6-i686.conf \ + gnu/packages/linux-libre-4.6-x86_64.conf \ gnu/packages/linux-libre-4.4-i686.conf \ gnu/packages/linux-libre-4.4-x86_64.conf \ gnu/packages/linux-libre-4.1-i686.conf \ diff --git a/gnu/packages/linux-libre-4.5-i686.conf b/gnu/packages/linux-libre-4.6-i686.conf similarity index 98% rename from gnu/packages/linux-libre-4.5-i686.conf rename to gnu/packages/linux-libre-4.6-i686.conf index 3d09b49117..25cb00a6bd 100644 --- a/gnu/packages/linux-libre-4.5-i686.conf +++ b/gnu/packages/linux-libre-4.6-i686.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.5.0-gnu Kernel Configuration +# Linux/x86 4.6.0-gnu Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -40,6 +40,7 @@ CONFIG_X86_32_SMP=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" 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 @@ -195,6 +196,8 @@ CONFIG_SYSFS_SYSCALL=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set +CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y @@ -378,6 +381,7 @@ CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_MPPARSE=y # CONFIG_X86_BIGSMP is not set +# CONFIG_GOLDFISH is not set CONFIG_X86_EXTENDED_PLATFORM=y # CONFIG_X86_GOLDFISH is not set CONFIG_X86_INTEL_MID=y @@ -481,6 +485,7 @@ CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_PERF_EVENTS_AMD_POWER=m CONFIG_X86_MSR=m CONFIG_X86_CPUID=m # CONFIG_NOHIGHMEM is not set @@ -765,10 +770,21 @@ CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y CONFIG_PCI_LABEL=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_COMPAQ=m +CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y +CONFIG_HOTPLUG_PCI_IBM=m +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_SHPC=m # # PCI host controller drivers # +# CONFIG_PCIE_DW_PLAT is not set CONFIG_ISA_DMA_API=y CONFIG_ISA=y CONFIG_EISA=y @@ -802,16 +818,6 @@ CONFIG_I82365=m CONFIG_TCIC=m CONFIG_PCMCIA_PROBE=y CONFIG_PCCARD_NONSTATIC=y -CONFIG_HOTPLUG_PCI=y -CONFIG_HOTPLUG_PCI_COMPAQ=m -CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y -CONFIG_HOTPLUG_PCI_IBM=m -CONFIG_HOTPLUG_PCI_ACPI=y -CONFIG_HOTPLUG_PCI_ACPI_IBM=m -CONFIG_HOTPLUG_PCI_CPCI=y -CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m -CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m -CONFIG_HOTPLUG_PCI_SHPC=m CONFIG_RAPIDIO=y CONFIG_RAPIDIO_TSI721=m CONFIG_RAPIDIO_DISC_TIMEOUT=30 @@ -819,6 +825,7 @@ CONFIG_RAPIDIO_DISC_TIMEOUT=30 CONFIG_RAPIDIO_DMA_ENGINE=y # CONFIG_RAPIDIO_DEBUG is not set CONFIG_RAPIDIO_ENUM_BASIC=m +CONFIG_RAPIDIO_MPORT_CDEV=m # # RapidIO Switch drivers @@ -896,7 +903,6 @@ CONFIG_INET_TUNNEL=m CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m -CONFIG_INET_LRO=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m CONFIG_INET_UDP_DIAG=m @@ -1445,11 +1451,15 @@ CONFIG_NET_ACT_CSUM=m CONFIG_NET_ACT_VLAN=m CONFIG_NET_ACT_BPF=m CONFIG_NET_ACT_CONNMARK=m +CONFIG_NET_ACT_IFE=m +CONFIG_NET_IFE_SKBMARK=m +CONFIG_NET_IFE_SKBPRIO=m # CONFIG_NET_CLS_IND is not set CONFIG_NET_SCH_FIFO=y CONFIG_DCB=y CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_BATMAN_V is not set CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y CONFIG_BATMAN_ADV_NC=y @@ -1461,7 +1471,6 @@ CONFIG_OPENVSWITCH_VXLAN=m CONFIG_OPENVSWITCH_GENEVE=m CONFIG_VSOCKETS=m CONFIG_VMWARE_VMCI_VSOCKETS=m -CONFIG_NETLINK_MMAP=y CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=m @@ -1525,6 +1534,14 @@ CONFIG_CAN_CALC_BITTIMING=y CONFIG_CAN_LEDS=y CONFIG_CAN_JANZ_ICAN3=m CONFIG_PCH_CAN=m +CONFIG_CAN_C_CAN=m +CONFIG_CAN_C_CAN_PLATFORM=m +CONFIG_CAN_C_CAN_PCI=m +CONFIG_CAN_CC770=m +CONFIG_CAN_CC770_ISA=m +CONFIG_CAN_CC770_PLATFORM=m +CONFIG_CAN_IFI_CANFD=m +CONFIG_CAN_M_CAN=m CONFIG_CAN_SJA1000=m CONFIG_CAN_SJA1000_ISA=m CONFIG_CAN_SJA1000_PLATFORM=m @@ -1536,13 +1553,8 @@ CONFIG_CAN_PEAK_PCIEC=y CONFIG_CAN_KVASER_PCI=m CONFIG_CAN_PLX_PCI=m CONFIG_CAN_TSCAN1=m -CONFIG_CAN_C_CAN=m -CONFIG_CAN_C_CAN_PLATFORM=m -CONFIG_CAN_C_CAN_PCI=m -CONFIG_CAN_M_CAN=m -CONFIG_CAN_CC770=m -CONFIG_CAN_CC770_ISA=m -CONFIG_CAN_CC770_PLATFORM=m +CONFIG_CAN_SOFTING=m +CONFIG_CAN_SOFTING_CS=m # # CAN SPI interfaces @@ -1558,8 +1570,6 @@ CONFIG_CAN_GS_USB=m CONFIG_CAN_KVASER_USB=m CONFIG_CAN_PEAK_USB=m CONFIG_CAN_8DEV_USB=m -CONFIG_CAN_SOFTING=m -CONFIG_CAN_SOFTING_CS=m # CONFIG_CAN_DEBUG_DEVICES is not set CONFIG_IRDA=m @@ -1630,6 +1640,7 @@ CONFIG_BT_HIDP=m CONFIG_BT_HS=y CONFIG_BT_LE=y CONFIG_BT_6LOWPAN=m +# CONFIG_BT_LEDS is not set # CONFIG_BT_SELFTEST is not set CONFIG_BT_DEBUGFS=y @@ -1653,6 +1664,7 @@ CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIUART_INTEL=y CONFIG_BT_HCIUART_BCM=y CONFIG_BT_HCIUART_QCA=y +CONFIG_BT_HCIUART_AG6XX=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -1668,6 +1680,7 @@ CONFIG_BT_WILINK=m CONFIG_AF_RXRPC=m # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=m +CONFIG_AF_KCM=m CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y @@ -1678,7 +1691,6 @@ CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -# CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_CERTIFICATION_ONUS is not set CONFIG_CFG80211_DEFAULT_PS=y CONFIG_CFG80211_DEBUGFS=y @@ -1763,6 +1775,9 @@ CONFIG_NFC_S3FWRN5=m CONFIG_NFC_S3FWRN5_I2C=m CONFIG_NFC_ST95HF=m CONFIG_LWTUNNEL=y +CONFIG_DST_CACHE=y +CONFIG_NET_DEVLINK=m +CONFIG_MAY_USE_DEVLINK=m # # Device Drivers @@ -2031,6 +2046,7 @@ CONFIG_VIRTIO_BLK=y # CONFIG_BLK_DEV_HD is not set CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_RSXX=m +CONFIG_NVME_CORE=m CONFIG_BLK_DEV_NVME=m # CONFIG_BLK_DEV_NVME_SCSI is not set @@ -2063,13 +2079,17 @@ CONFIG_HMC6352=m CONFIG_DS1682=m CONFIG_TI_DAC7512=m CONFIG_VMWARE_BALLOON=m -CONFIG_BMP085=y +CONFIG_BMP085=m CONFIG_BMP085_I2C=m CONFIG_BMP085_SPI=m CONFIG_PCH_PHUB=m CONFIG_USB_SWITCH_FSA9480=m CONFIG_LATTICE_ECP3_CONFIG=m CONFIG_SRAM=y +CONFIG_PANEL=m +CONFIG_PANEL_PARPORT=0 +CONFIG_PANEL_PROFILE=5 +# CONFIG_PANEL_CHANGE_MESSAGE is not set CONFIG_C2PORT=m CONFIG_C2PORT_DURAMAR_2150=m @@ -2109,6 +2129,10 @@ CONFIG_VMWARE_VMCI=m # SCIF Bus Driver # +# +# VOP Bus Driver +# + # # Intel MIC Host Driver # @@ -2124,6 +2148,10 @@ CONFIG_VMWARE_VMCI=m # # Intel MIC Coprocessor State Management (COSM) Drivers # + +# +# VOP Driver +# CONFIG_ECHO=m # CONFIG_CXL_BASE is not set # CONFIG_CXL_KERNEL_API is not set @@ -2431,7 +2459,6 @@ CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_CACHE=m -CONFIG_DM_CACHE_MQ=m CONFIG_DM_CACHE_SMQ=m CONFIG_DM_CACHE_CLEANER=m CONFIG_DM_ERA=m @@ -2496,6 +2523,7 @@ CONFIG_MACVTAP=m CONFIG_IPVLAN=m CONFIG_VXLAN=m CONFIG_GENEVE=m +CONFIG_MACSEC=m CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y @@ -2619,6 +2647,7 @@ CONFIG_TIGON3=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNX2X_VXLAN=y +# CONFIG_BNX2X_GENEVE is not set CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_NET_VENDOR_BROCADE=y @@ -2630,6 +2659,7 @@ CONFIG_CHELSIO_T1_1G=y CONFIG_CHELSIO_T3=m CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4_DCB=y +# CONFIG_CHELSIO_T4_UWIRE is not set CONFIG_CHELSIO_T4_FCOE=y CONFIG_CHELSIO_T4VF=m CONFIG_NET_VENDOR_CIRRUS=y @@ -2673,6 +2703,7 @@ CONFIG_NET_VENDOR_INTEL=y CONFIG_E100=m CONFIG_E1000=m CONFIG_E1000E=m +CONFIG_E1000E_HWTS=y CONFIG_IGB=m CONFIG_IGB_HWMON=y CONFIG_IGBVF=m @@ -2694,6 +2725,7 @@ CONFIG_NET_VENDOR_I825XX=y CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y CONFIG_MVMDIO=m +# CONFIG_MVNETA_BM is not set CONFIG_SKGE=m # CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y @@ -2707,6 +2739,8 @@ CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_MLX5_CORE=m CONFIG_MLX5_CORE_EN=y +CONFIG_MLX5_CORE_EN_DCB=y +CONFIG_MLX5_CORE_EN_VXLAN=y CONFIG_MLXSW_CORE=m CONFIG_MLXSW_CORE_HWMON=y CONFIG_MLXSW_PCI=m @@ -3041,6 +3075,7 @@ CONFIG_IWLMVM=m CONFIG_IWLWIFI_OPMODE_MODULAR=y # CONFIG_IWLWIFI_BCAST_FILTERING is not set # CONFIG_IWLWIFI_UAPSD is not set +# CONFIG_IWLWIFI_PCIE_RTPM is not set # # Debugging Options @@ -3158,7 +3193,6 @@ CONFIG_WL1251_SDIO=m CONFIG_WL12XX=m CONFIG_WL18XX=m CONFIG_WLCORE=m -CONFIG_WLCORE_SPI=m CONFIG_WLCORE_SDIO=m CONFIG_WILINK_PLATFORM_DATA=y CONFIG_WLAN_VENDOR_ZYDAS=y @@ -3302,13 +3336,6 @@ CONFIG_HISAX_ST5481=m CONFIG_HISAX_HFCUSB=m CONFIG_HISAX_HFC4S8S=m CONFIG_HISAX_FRITZ_PCIPNP=m - -# -# Active cards -# -CONFIG_ISDN_DRV_ICN=m -CONFIG_ISDN_DRV_PCBIT=m -CONFIG_ISDN_DRV_ACT2000=m CONFIG_ISDN_CAPI=m CONFIG_CAPI_TRACE=y CONFIG_ISDN_CAPI_CAPI20=m @@ -3421,6 +3448,7 @@ CONFIG_KEYBOARD_CROS_EC=m CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=m CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_BYD=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_CYPRESS=y @@ -3519,6 +3547,7 @@ CONFIG_TOUCHSCREEN_WACOM_I2C=m CONFIG_TOUCHSCREEN_MAX11801=m CONFIG_TOUCHSCREEN_MCS5000=m CONFIG_TOUCHSCREEN_MMS114=m +CONFIG_TOUCHSCREEN_MELFAS_MIP4=m CONFIG_TOUCHSCREEN_MTOUCH=m CONFIG_TOUCHSCREEN_INEXIO=m CONFIG_TOUCHSCREEN_INTEL_MID=m @@ -3629,6 +3658,13 @@ CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_DRV260X_HAPTICS=m CONFIG_INPUT_DRV2665_HAPTICS=m CONFIG_INPUT_DRV2667_HAPTICS=m +CONFIG_RMI4_CORE=m +CONFIG_RMI4_I2C=m +CONFIG_RMI4_SPI=m +CONFIG_RMI4_2D_SENSOR=y +CONFIG_RMI4_F11=y +CONFIG_RMI4_F12=y +CONFIG_RMI4_F30=y # # Hardware I/O ports @@ -3713,6 +3749,7 @@ CONFIG_SERIAL_8250_DW=m CONFIG_SERIAL_8250_RT288X=y CONFIG_SERIAL_8250_FINTEK=m CONFIG_SERIAL_8250_MID=m +CONFIG_SERIAL_8250_MOXA=m # # Non-8250 serial port support @@ -3744,6 +3781,7 @@ CONFIG_SERIAL_RP2=m CONFIG_SERIAL_RP2_NR_UARTS=32 CONFIG_SERIAL_FSL_LPUART=m CONFIG_SERIAL_MEN_Z135=m +# CONFIG_SERIAL_MVEBU_UART is not set CONFIG_TTY_PRINTK=y CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set @@ -3913,14 +3951,18 @@ CONFIG_SPI_MASTER=y # SPI Master Controller Drivers # CONFIG_SPI_ALTERA=m +CONFIG_SPI_AXI_SPI_ENGINE=m CONFIG_SPI_BITBANG=m CONFIG_SPI_BUTTERFLY=m CONFIG_SPI_CADENCE=m +CONFIG_SPI_DESIGNWARE=m +CONFIG_SPI_DW_PCI=m +CONFIG_SPI_DW_MID_DMA=y +CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DLN2=m CONFIG_SPI_GPIO=m CONFIG_SPI_LM70_LLP=m CONFIG_SPI_OC_TINY=m -CONFIG_SPI_PXA2XX_DMA=y CONFIG_SPI_PXA2XX=m CONFIG_SPI_PXA2XX_PCI=m CONFIG_SPI_SC18IS602=m @@ -3928,10 +3970,6 @@ CONFIG_SPI_TOPCLIFF_PCH=m CONFIG_SPI_XCOMM=m # CONFIG_SPI_XILINX is not set CONFIG_SPI_ZYNQMP_GQSPI=m -CONFIG_SPI_DESIGNWARE=m -CONFIG_SPI_DW_PCI=m -CONFIG_SPI_DW_MID_DMA=y -CONFIG_SPI_DW_MMIO=m # # SPI Protocol Masters @@ -4012,18 +4050,21 @@ CONFIG_GPIO_DWAPB=m CONFIG_GPIO_GENERIC_PLATFORM=m CONFIG_GPIO_ICH=m CONFIG_GPIO_LYNXPOINT=y +CONFIG_GPIO_MENZ127=m CONFIG_GPIO_VX855=m CONFIG_GPIO_ZX=y # # Port-mapped I/O GPIO drivers # +CONFIG_GPIO_104_DIO_48E=m CONFIG_GPIO_104_IDIO_16=m CONFIG_GPIO_104_IDI_48=m CONFIG_GPIO_F7188X=m CONFIG_GPIO_IT87=m CONFIG_GPIO_SCH=m CONFIG_GPIO_SCH311X=m +CONFIG_GPIO_WS16C48=m # # I2C GPIO expanders @@ -4034,6 +4075,7 @@ CONFIG_GPIO_MAX732X=m CONFIG_GPIO_PCA953X=m CONFIG_GPIO_PCF857X=m CONFIG_GPIO_SX150X=y +CONFIG_GPIO_TPIC2810=m # # MFD GPIO expanders @@ -4052,6 +4094,8 @@ CONFIG_GPIO_MSIC=y CONFIG_GPIO_PALMAS=y CONFIG_GPIO_RC5T583=y CONFIG_GPIO_TIMBERDALE=y +CONFIG_GPIO_TPS65086=m +CONFIG_GPIO_TPS65218=m CONFIG_GPIO_TPS6586X=y CONFIG_GPIO_TPS65910=y CONFIG_GPIO_TPS65912=m @@ -4076,6 +4120,7 @@ CONFIG_GPIO_RDC321X=m # CONFIG_GPIO_MAX7301=m CONFIG_GPIO_MC33880=m +CONFIG_GPIO_PISOSR=m # # SPI or I2C GPIO expanders @@ -4231,6 +4276,7 @@ CONFIG_SENSORS_JC42=m CONFIG_SENSORS_POWR1220=m CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LTC2945=m +CONFIG_SENSORS_LTC2990=m CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4222=m @@ -4388,6 +4434,7 @@ CONFIG_ACQUIRE_WDT=m CONFIG_ADVANTECH_WDT=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_EBC_C384_WDT=m CONFIG_F71808E_WDT=m CONFIG_SP5100_TCO=m CONFIG_SBC_FITPC2_WATCHDOG=m @@ -4422,7 +4469,8 @@ CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m CONFIG_SBC_EPX_C3_WATCHDOG=m -CONFIG_BCM7038_WDT=m +CONFIG_INTEL_MEI_WDT=m +CONFIG_NI903X_WDT=m CONFIG_MEN_A21_WDT=m CONFIG_XEN_WDT=m @@ -4487,7 +4535,8 @@ CONFIG_MFD_AS3711=y CONFIG_PMIC_ADP5520=y CONFIG_MFD_AAT2870_CORE=y CONFIG_MFD_BCM590XX=m -CONFIG_MFD_AXP20X=y +CONFIG_MFD_AXP20X=m +CONFIG_MFD_AXP20X_I2C=m CONFIG_MFD_CROS_EC=m CONFIG_MFD_CROS_EC_I2C=m CONFIG_MFD_CROS_EC_SPI=m @@ -4557,6 +4606,7 @@ CONFIG_MFD_PALMAS=y CONFIG_TPS6105X=m CONFIG_TPS65010=m CONFIG_TPS6507X=m +CONFIG_MFD_TPS65086=m CONFIG_MFD_TPS65090=y CONFIG_MFD_TPS65217=m CONFIG_MFD_TPS65218=m @@ -4658,6 +4708,7 @@ CONFIG_REGULATOR_TPS6105X=m CONFIG_REGULATOR_TPS62360=m CONFIG_REGULATOR_TPS65023=m CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TPS65086=m CONFIG_REGULATOR_TPS65090=m CONFIG_REGULATOR_TPS65217=m CONFIG_REGULATOR_TPS6524X=m @@ -4985,7 +5036,6 @@ CONFIG_DVB_NETUP_UNIDVB=m CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_CAFE_CCIC=m CONFIG_VIDEO_VIA_CAMERA=m -CONFIG_VIDEO_TIMBERDALE=m CONFIG_SOC_CAMERA=m CONFIG_SOC_CAMERA_PLATFORM=m CONFIG_V4L_MEM2MEM_DRIVERS=y @@ -5378,6 +5428,7 @@ CONFIG_VGA_ARB_MAX_GPUS=16 CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y +# CONFIG_DRM_DP_AUX_CHARDEV is not set CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y @@ -5399,6 +5450,11 @@ CONFIG_DRM_AMDGPU=m # CONFIG_DRM_AMDGPU_CIK is not set CONFIG_DRM_AMDGPU_USERPTR=y # CONFIG_DRM_AMD_POWERPLAY is not set + +# +# ACP (Audio CoProcessor) Configuration +# +# CONFIG_DRM_AMD_ACP is not set CONFIG_DRM_NOUVEAU=m CONFIG_NOUVEAU_DEBUG=5 CONFIG_NOUVEAU_DEBUG_DEFAULT=3 @@ -5406,6 +5462,7 @@ CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_I810=m CONFIG_DRM_I915=m # CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set +CONFIG_DRM_I915_USERPTR=y CONFIG_DRM_MGA=m CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m @@ -5624,11 +5681,13 @@ CONFIG_SOUND_OSS_CORE=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m +CONFIG_SND_PCM_ELD=y CONFIG_SND_DMAENGINE_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m CONFIG_SND_COMPRESS_OFFLOAD=m CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_OSSEMUL=y @@ -5917,11 +5976,14 @@ CONFIG_SND_SOC_CS4349=m CONFIG_SND_SOC_DMIC=m CONFIG_SND_SOC_ES8328=m CONFIG_SND_SOC_GTM601=m +CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INNO_RK3036=m CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_MAX98357A=m CONFIG_SND_SOC_PCM1681=m CONFIG_SND_SOC_PCM179X=m +CONFIG_SND_SOC_PCM179X_I2C=m +CONFIG_SND_SOC_PCM179X_SPI=m CONFIG_SND_SOC_PCM3168A=m CONFIG_SND_SOC_PCM3168A_I2C=m CONFIG_SND_SOC_PCM3168A_SPI=m @@ -5931,6 +5993,7 @@ CONFIG_SND_SOC_PCM512x_SPI=m CONFIG_SND_SOC_RL6231=m CONFIG_SND_SOC_RL6347A=m CONFIG_SND_SOC_RT286=m +CONFIG_SND_SOC_RT5616=m CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5640=m CONFIG_SND_SOC_RT5645=m @@ -6010,6 +6073,7 @@ CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m CONFIG_HID_CORSAIR=m CONFIG_HID_PRODIKEYS=m +CONFIG_HID_CMEDIA=m CONFIG_HID_CP2112=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m @@ -6592,6 +6656,7 @@ CONFIG_INFINIBAND_MTHCA=m CONFIG_INFINIBAND_CXGB3=m # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB4=m +CONFIG_INFINIBAND_I40IW=m CONFIG_MLX4_INFINIBAND=m CONFIG_MLX5_INFINIBAND=m CONFIG_INFINIBAND_NES=m @@ -6655,10 +6720,10 @@ CONFIG_RTC_DRV_88PM80X=m CONFIG_RTC_DRV_ABB5ZES3=m CONFIG_RTC_DRV_ABX80X=m CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1307_HWMON=y CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1374_WDT=y CONFIG_RTC_DRV_DS1672=m -CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_LP8788=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_MAX8907=m @@ -6670,16 +6735,15 @@ CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_ISL12057=m CONFIG_RTC_DRV_X1205=m -CONFIG_RTC_DRV_PALMAS=m -CONFIG_RTC_DRV_PCF2127=m CONFIG_RTC_DRV_PCF8523=m -CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF85063=m +CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTC_DRV_PALMAS=m CONFIG_RTC_DRV_TPS6586X=m CONFIG_RTC_DRV_TPS65910=m CONFIG_RTC_DRV_TPS80031=m @@ -6691,6 +6755,7 @@ CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m CONFIG_RTC_DRV_EM3027=m CONFIG_RTC_DRV_RV3029C2=m +CONFIG_RTC_DRV_RV3029_HWMON=y CONFIG_RTC_DRV_RV8803=m CONFIG_RTC_DRV_S5M=m @@ -6703,13 +6768,20 @@ CONFIG_RTC_DRV_DS1305=m CONFIG_RTC_DRV_DS1343=m CONFIG_RTC_DRV_DS1347=m CONFIG_RTC_DRV_DS1390=m -CONFIG_RTC_DRV_MAX6902=m CONFIG_RTC_DRV_R9701=m -CONFIG_RTC_DRV_RS5C348=m -CONFIG_RTC_DRV_DS3234=m -CONFIG_RTC_DRV_PCF2123=m CONFIG_RTC_DRV_RX4581=m +CONFIG_RTC_DRV_RX6110=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_PCF2123=m CONFIG_RTC_DRV_MCP795=m +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_PCF2127=m # # Platform RTC drivers @@ -6768,6 +6840,8 @@ CONFIG_DMA_ACPI=y CONFIG_INTEL_IDMA64=m CONFIG_PCH_DMA=m CONFIG_TIMB_DMA=m +CONFIG_QCOM_HIDMA_MGMT=m +CONFIG_QCOM_HIDMA=m CONFIG_DW_DMAC_CORE=m CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=m @@ -6803,6 +6877,7 @@ CONFIG_VFIO_PCI=m CONFIG_VFIO_PCI_VGA=y CONFIG_VFIO_PCI_MMAP=y CONFIG_VFIO_PCI_INTX=y +CONFIG_VFIO_PCI_IGD=y CONFIG_IRQ_BYPASS_MANAGER=m CONFIG_VIRT_DRIVERS=y CONFIG_VIRTIO=y @@ -6993,10 +7068,6 @@ CONFIG_COMEDI_ISADMA=m CONFIG_COMEDI_NI_LABPC=m CONFIG_COMEDI_NI_LABPC_ISADMA=m CONFIG_COMEDI_NI_TIO=m -CONFIG_PANEL=m -CONFIG_PANEL_PARPORT=0 -CONFIG_PANEL_PROFILE=5 -# CONFIG_PANEL_CHANGE_MESSAGE is not set CONFIG_RTL8192U=m CONFIG_RTLLIB=m CONFIG_RTLLIB_CRYPTO_CCMP=m @@ -7078,13 +7149,6 @@ CONFIG_SENSORS_ISL29028=m CONFIG_TSL2583=m CONFIG_TSL2x7x=m -# -# Magnetometer sensors -# -CONFIG_SENSORS_HMC5843=m -CONFIG_SENSORS_HMC5843_I2C=m -CONFIG_SENSORS_HMC5843_SPI=m - # # Active energy metering IC # @@ -7106,7 +7170,6 @@ CONFIG_AD2S1210=m # # Triggers - standalone # -CONFIG_IIO_PERIODIC_RTC_TRIGGER=m CONFIG_FB_SM750=m CONFIG_FB_XGI=m @@ -7129,12 +7192,11 @@ CONFIG_SPEAKUP_SYNTH_SOFT=m CONFIG_SPEAKUP_SYNTH_SPKOUT=m CONFIG_SPEAKUP_SYNTH_TXPRT=m CONFIG_SPEAKUP_SYNTH_DUMMY=m -CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m CONFIG_STAGING_MEDIA=y CONFIG_I2C_BCM2048=m CONFIG_DVB_CXD2099=m CONFIG_DVB_MN88472=m -CONFIG_DVB_MN88473=m +CONFIG_VIDEO_TIMBERDALE=m CONFIG_LIRC_STAGING=y CONFIG_LIRC_BT829=m CONFIG_LIRC_IMON=m @@ -7149,22 +7211,18 @@ CONFIG_STAGING_RDMA=m # # Android # -CONFIG_WIMAX_GDM72XX=m -CONFIG_WIMAX_GDM72XX_QOS=y -CONFIG_WIMAX_GDM72XX_K_MODE=y -CONFIG_WIMAX_GDM72XX_WIMAX2=y -CONFIG_WIMAX_GDM72XX_USB=y -# CONFIG_WIMAX_GDM72XX_SDIO is not set -CONFIG_WIMAX_GDM72XX_USB_PM=y CONFIG_LTE_GDM724X=m CONFIG_FIREWIRE_SERIAL=m CONFIG_FWTTY_MAX_TOTAL_PORTS=64 CONFIG_FWTTY_MAX_CARD_PORTS=32 CONFIG_MTD_SPINAND_MT29F=m CONFIG_MTD_SPINAND_ONDIEECC=y +CONFIG_LNET=m +CONFIG_LNET_MAX_PAYLOAD=1048576 +# CONFIG_LNET_SELFTEST is not set +CONFIG_LNET_XPRT_IB=m # CONFIG_LUSTRE_FS is not set CONFIG_DGNC=m -CONFIG_DGAP=m CONFIG_GS_FPGABOOT=m CONFIG_FB_TFT=m CONFIG_FB_TFT_AGM1264K_FL=m @@ -7185,7 +7243,9 @@ CONFIG_FB_TFT_RA8875=m CONFIG_FB_TFT_S6D02A1=m CONFIG_FB_TFT_S6D1121=m CONFIG_FB_TFT_SSD1289=m +CONFIG_FB_TFT_SSD1305=m CONFIG_FB_TFT_SSD1306=m +CONFIG_FB_TFT_SSD1325=m CONFIG_FB_TFT_SSD1331=m CONFIG_FB_TFT_SSD1351=m CONFIG_FB_TFT_ST7735R=m @@ -7211,11 +7271,19 @@ 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_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m CONFIG_ALIENWARE_WMI=m CONFIG_ASUS_LAPTOP=m +CONFIG_DELL_SMBIOS=m CONFIG_DELL_LAPTOP=m CONFIG_DELL_WMI=m CONFIG_DELL_WMI_AIO=m @@ -7291,6 +7359,7 @@ CONFIG_COMMON_CLK=y # CONFIG_COMMON_CLK_WM831X=m CONFIG_COMMON_CLK_SI5351=m +CONFIG_COMMON_CLK_CDCE706=m CONFIG_COMMON_CLK_CS2000_CP=m CONFIG_COMMON_CLK_S2MPS11=m CONFIG_CLK_TWL6040=m @@ -7298,7 +7367,6 @@ CONFIG_CLK_TWL6040=m CONFIG_COMMON_CLK_PALMAS=m CONFIG_COMMON_CLK_PWM=m # CONFIG_COMMON_CLK_PXA is not set -CONFIG_COMMON_CLK_CDCE706=m # # Hardware Spinlock drivers @@ -7446,7 +7514,9 @@ CONFIG_PALMAS_GPADC=m CONFIG_QCOM_SPMI_IADC=m CONFIG_QCOM_SPMI_VADC=m CONFIG_TI_ADC081C=m +CONFIG_TI_ADC0832=m CONFIG_TI_ADC128S052=m +CONFIG_TI_ADS1015=m CONFIG_TI_AM335X_ADC=m CONFIG_TWL4030_MADC=m CONFIG_TWL6030_GPADC=m @@ -7460,6 +7530,7 @@ CONFIG_AD8366=m # # Chemical Sensors # +CONFIG_ATLAS_PH_SENSOR=m CONFIG_IAQCORE=m CONFIG_VZ89X=m @@ -7492,6 +7563,7 @@ CONFIG_AD5504=m CONFIG_AD5624R_SPI=m CONFIG_AD5686=m CONFIG_AD5755=m +CONFIG_AD5761=m CONFIG_AD5764=m CONFIG_AD5791=m CONFIG_AD7303=m @@ -7499,6 +7571,7 @@ CONFIG_M62332=m CONFIG_MAX517=m CONFIG_MCP4725=m CONFIG_MCP4922=m +CONFIG_STX104=m # # IIO dummy driver @@ -7539,8 +7612,14 @@ CONFIG_IIO_ST_GYRO_SPI_3AXIS=m CONFIG_ITG3200=m # -# Health sensors +# Health Sensors # + +# +# Heart Rate Monitors +# +CONFIG_AFE4403=m +CONFIG_AFE4404=m CONFIG_MAX30100=m # @@ -7559,6 +7638,8 @@ CONFIG_ADIS16400=m CONFIG_ADIS16480=m CONFIG_KMX61=m CONFIG_INV_MPU6050_IIO=m +CONFIG_INV_MPU6050_I2C=m +CONFIG_INV_MPU6050_SPI=m CONFIG_IIO_ADIS_LIB=m CONFIG_IIO_ADIS_LIB_BUFFER=y @@ -7605,6 +7686,9 @@ CONFIG_MMC35240=m CONFIG_IIO_ST_MAGN_3AXIS=m CONFIG_IIO_ST_MAGN_I2C_3AXIS=m CONFIG_IIO_ST_MAGN_SPI_3AXIS=m +CONFIG_SENSORS_HMC5843=m +CONFIG_SENSORS_HMC5843_I2C=m +CONFIG_SENSORS_HMC5843_SPI=m # # Inclinometer sensors @@ -7623,6 +7707,7 @@ CONFIG_IIO_SYSFS_TRIGGER=m # Digital potentiometers # CONFIG_MCP4531=m +CONFIG_TPL0102=m # # Pressure sensors @@ -7630,6 +7715,8 @@ CONFIG_MCP4531=m CONFIG_BMP280=m CONFIG_HID_SENSOR_PRESS=m CONFIG_MPL115=m +CONFIG_MPL115_I2C=m +CONFIG_MPL115_SPI=m CONFIG_MPL3115=m CONFIG_MS5611=m CONFIG_MS5611_I2C=m @@ -7692,7 +7779,6 @@ CONFIG_PWM_PCA9685=m CONFIG_PWM_TWL=m CONFIG_PWM_TWL_LED=m CONFIG_ARM_GIC_MAX_NR=1 -CONFIG_TS4800_IRQ=m CONFIG_IPACK_BUS=m CONFIG_BOARD_TPCI200=m CONFIG_SERIAL_IPOCTAL=m @@ -7741,6 +7827,7 @@ CONFIG_NVMEM=m CONFIG_STM=m CONFIG_STM_DUMMY=m CONFIG_STM_SOURCE_CONSOLE=m +CONFIG_STM_SOURCE_HEARTBEAT=m CONFIG_INTEL_TH=m CONFIG_INTEL_TH_PCI=m CONFIG_INTEL_TH_GTH=m @@ -7768,6 +7855,8 @@ CONFIG_DMI_SYSFS=m CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m +CONFIG_FW_CFG_SYSFS=m +# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_GOOGLE_FIRMWARE is not set # @@ -7843,6 +7932,7 @@ CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_MANDATORY_FILE_LOCKING=y +CONFIG_FS_ENCRYPTION=m CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y @@ -7890,6 +7980,7 @@ CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAT_DEFAULT_UTF8 is not set CONFIG_NTFS_FS=m # CONFIG_NTFS_DEBUG is not set # CONFIG_NTFS_RW is not set @@ -7913,6 +8004,7 @@ CONFIG_HUGETLB_PAGE=y CONFIG_CONFIGFS_FS=m CONFIG_EFIVAR_FS=y CONFIG_MISC_FILESYSTEMS=y +CONFIG_ORANGEFS_FS=m CONFIG_ADFS_FS=m # CONFIG_ADFS_FS_RW is not set CONFIG_AFFS_FS=m @@ -8012,7 +8104,8 @@ CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y -CONFIG_NFSD_PNFS=y +# CONFIG_NFSD_BLOCKLAYOUT is not set +# CONFIG_NFSD_SCSILAYOUT is not set CONFIG_NFSD_V4_SECURITY_LABEL=y # CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_GRACE_PERIOD=m @@ -8155,6 +8248,8 @@ CONFIG_DEBUG_KERNEL=y # 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_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set @@ -8230,6 +8325,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_RCU_EQS_DEBUG is not set # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set CONFIG_NOTIFIER_ERROR_INJECTION=m CONFIG_CPU_NOTIFIER_ERROR_INJECT=m CONFIG_PM_NOTIFIER_ERROR_INJECT=m @@ -8303,6 +8399,7 @@ CONFIG_TEST_HEXDUMP=m CONFIG_TEST_STRING_HELPERS=m CONFIG_TEST_KSTRTOX=m CONFIG_TEST_PRINTF=m +CONFIG_TEST_BITMAP=m # CONFIG_TEST_RHASHTABLE is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set @@ -8335,7 +8432,6 @@ 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=y # CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_WX is not set CONFIG_DEBUG_SET_MODULE_RONX=y @@ -8359,7 +8455,6 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=1 CONFIG_OPTIMIZE_INLINING=y # CONFIG_DEBUG_ENTRY is not set # CONFIG_DEBUG_NMI_SELFTEST is not set -# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set CONFIG_X86_DEBUG_FPU=y CONFIG_PUNIT_ATOM_DEBUG=m @@ -8455,11 +8550,9 @@ CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=m -CONFIG_CRYPTO_PCOMP=m -CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_AKCIPHER2=y -CONFIG_CRYPTO_AKCIPHER=m -CONFIG_CRYPTO_RSA=m +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_RSA=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_USER=m @@ -8560,7 +8653,6 @@ CONFIG_CRYPTO_TWOFISH_586=m # Compression # CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_ZLIB=m CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_842=m CONFIG_CRYPTO_LZ4=m @@ -8599,7 +8691,6 @@ CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y -CONFIG_PUBLIC_KEY_ALGO_RSA=y CONFIG_X509_CERTIFICATE_PARSER=y CONFIG_PKCS7_MESSAGE_PARSER=y CONFIG_PKCS7_TEST_KEY=m @@ -8610,6 +8701,7 @@ CONFIG_SIGNED_PE_FILE_VERIFICATION=y # CONFIG_SYSTEM_TRUSTED_KEYRING=y CONFIG_SYSTEM_TRUSTED_KEYS="" +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_IRQFD=y diff --git a/gnu/packages/linux-libre-4.5-x86_64.conf b/gnu/packages/linux-libre-4.6-x86_64.conf similarity index 98% rename from gnu/packages/linux-libre-4.5-x86_64.conf rename to gnu/packages/linux-libre-4.6-x86_64.conf index 8625ce6af5..a7c11eeae3 100644 --- a/gnu/packages/linux-libre-4.5-x86_64.conf +++ b/gnu/packages/linux-libre-4.6-x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.5.0-gnu Kernel Configuration +# Linux/x86 4.6.0-gnu Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -43,6 +43,7 @@ CONFIG_X86_64_SMP=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" 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 @@ -204,6 +205,8 @@ CONFIG_SYSFS_SYSCALL=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y +CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y @@ -301,6 +304,7 @@ CONFIG_ARCH_MMAP_RND_BITS=28 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 CONFIG_HAVE_COPY_THREAD_TLS=y +CONFIG_HAVE_STACK_VALIDATION=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y @@ -393,6 +397,7 @@ CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_X2APIC=y CONFIG_X86_MPPARSE=y +# CONFIG_GOLDFISH is not set CONFIG_X86_EXTENDED_PLATFORM=y CONFIG_X86_NUMACHIP=y # CONFIG_X86_VSMP is not set @@ -471,6 +476,7 @@ CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_PERF_EVENTS_AMD_POWER=m CONFIG_X86_MSR=m CONFIG_X86_CPUID=m CONFIG_ARCH_PHYS_ADDR_T_64BIT=y @@ -544,6 +550,8 @@ CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y CONFIG_IDLE_PAGE_TRACKING=y CONFIG_ZONE_DEVICE=y CONFIG_FRAME_VECTOR=y +CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y +CONFIG_ARCH_HAS_PKEYS=y CONFIG_X86_PMEM_LEGACY_DEVICE=y CONFIG_X86_PMEM_LEGACY=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y @@ -558,6 +566,7 @@ CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y CONFIG_X86_INTEL_MPX=y +CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y CONFIG_EFI=y CONFIG_EFI_STUB=y CONFIG_EFI_MIXED=y @@ -755,10 +764,19 @@ CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y CONFIG_PCI_LABEL=y +CONFIG_PCI_HYPERV=m +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_SHPC=m # # PCI host controller drivers # +# CONFIG_PCIE_DW_PLAT is not set CONFIG_ISA_DMA_API=y CONFIG_AMD_NB=y CONFIG_PCCARD=m @@ -778,13 +796,6 @@ CONFIG_YENTA_TOSHIBA=y CONFIG_PD6729=m CONFIG_I82092=m CONFIG_PCCARD_NONSTATIC=y -CONFIG_HOTPLUG_PCI=y -CONFIG_HOTPLUG_PCI_ACPI=y -CONFIG_HOTPLUG_PCI_ACPI_IBM=m -CONFIG_HOTPLUG_PCI_CPCI=y -CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m -CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m -CONFIG_HOTPLUG_PCI_SHPC=m CONFIG_RAPIDIO=y CONFIG_RAPIDIO_TSI721=m CONFIG_RAPIDIO_DISC_TIMEOUT=30 @@ -792,6 +803,7 @@ CONFIG_RAPIDIO_DISC_TIMEOUT=30 CONFIG_RAPIDIO_DMA_ENGINE=y # CONFIG_RAPIDIO_DEBUG is not set CONFIG_RAPIDIO_ENUM_BASIC=m +CONFIG_RAPIDIO_MPORT_CDEV=m # # RapidIO Switch drivers @@ -877,7 +889,6 @@ CONFIG_INET_TUNNEL=m CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m -CONFIG_INET_LRO=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m CONFIG_INET_UDP_DIAG=m @@ -1422,11 +1433,15 @@ CONFIG_NET_ACT_CSUM=m CONFIG_NET_ACT_VLAN=m CONFIG_NET_ACT_BPF=m CONFIG_NET_ACT_CONNMARK=m +CONFIG_NET_ACT_IFE=m +CONFIG_NET_IFE_SKBMARK=m +CONFIG_NET_IFE_SKBPRIO=m # CONFIG_NET_CLS_IND is not set CONFIG_NET_SCH_FIFO=y CONFIG_DCB=y CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_BATMAN_V is not set CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y CONFIG_BATMAN_ADV_NC=y @@ -1438,7 +1453,6 @@ CONFIG_OPENVSWITCH_VXLAN=m CONFIG_OPENVSWITCH_GENEVE=m CONFIG_VSOCKETS=m CONFIG_VMWARE_VMCI_VSOCKETS=m -CONFIG_NETLINK_MMAP=y CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=m @@ -1498,6 +1512,14 @@ CONFIG_CAN_DEV=m CONFIG_CAN_CALC_BITTIMING=y CONFIG_CAN_LEDS=y CONFIG_CAN_JANZ_ICAN3=m +CONFIG_CAN_C_CAN=m +CONFIG_CAN_C_CAN_PLATFORM=m +CONFIG_CAN_C_CAN_PCI=m +CONFIG_CAN_CC770=m +CONFIG_CAN_CC770_ISA=m +CONFIG_CAN_CC770_PLATFORM=m +CONFIG_CAN_IFI_CANFD=m +CONFIG_CAN_M_CAN=m CONFIG_CAN_SJA1000=m CONFIG_CAN_SJA1000_ISA=m CONFIG_CAN_SJA1000_PLATFORM=m @@ -1508,13 +1530,8 @@ CONFIG_CAN_PEAK_PCI=m CONFIG_CAN_PEAK_PCIEC=y CONFIG_CAN_KVASER_PCI=m CONFIG_CAN_PLX_PCI=m -CONFIG_CAN_C_CAN=m -CONFIG_CAN_C_CAN_PLATFORM=m -CONFIG_CAN_C_CAN_PCI=m -CONFIG_CAN_M_CAN=m -CONFIG_CAN_CC770=m -CONFIG_CAN_CC770_ISA=m -CONFIG_CAN_CC770_PLATFORM=m +CONFIG_CAN_SOFTING=m +CONFIG_CAN_SOFTING_CS=m # # CAN SPI interfaces @@ -1530,8 +1547,6 @@ CONFIG_CAN_GS_USB=m CONFIG_CAN_KVASER_USB=m CONFIG_CAN_PEAK_USB=m CONFIG_CAN_8DEV_USB=m -CONFIG_CAN_SOFTING=m -CONFIG_CAN_SOFTING_CS=m # CONFIG_CAN_DEBUG_DEVICES is not set CONFIG_IRDA=m @@ -1601,6 +1616,7 @@ CONFIG_BT_HIDP=m CONFIG_BT_HS=y CONFIG_BT_LE=y CONFIG_BT_6LOWPAN=m +# CONFIG_BT_LEDS is not set # CONFIG_BT_SELFTEST is not set CONFIG_BT_DEBUGFS=y @@ -1624,6 +1640,7 @@ CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIUART_INTEL=y CONFIG_BT_HCIUART_BCM=y CONFIG_BT_HCIUART_QCA=y +CONFIG_BT_HCIUART_AG6XX=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -1639,6 +1656,7 @@ CONFIG_BT_WILINK=m CONFIG_AF_RXRPC=m # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=m +CONFIG_AF_KCM=m CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y @@ -1649,7 +1667,6 @@ CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -# CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_CERTIFICATION_ONUS is not set CONFIG_CFG80211_DEFAULT_PS=y CONFIG_CFG80211_DEBUGFS=y @@ -1734,6 +1751,9 @@ CONFIG_NFC_S3FWRN5=m CONFIG_NFC_S3FWRN5_I2C=m CONFIG_NFC_ST95HF=m CONFIG_LWTUNNEL=y +CONFIG_DST_CACHE=y +CONFIG_NET_DEVLINK=m +CONFIG_MAY_USE_DEVLINK=m CONFIG_HAVE_BPF_JIT=y # @@ -1998,6 +2018,7 @@ CONFIG_VIRTIO_BLK=y # CONFIG_BLK_DEV_HD is not set CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_RSXX=m +CONFIG_NVME_CORE=m CONFIG_BLK_DEV_NVME=m # CONFIG_BLK_DEV_NVME_SCSI is not set @@ -2028,12 +2049,16 @@ CONFIG_HMC6352=m CONFIG_DS1682=m CONFIG_TI_DAC7512=m CONFIG_VMWARE_BALLOON=m -CONFIG_BMP085=y +CONFIG_BMP085=m CONFIG_BMP085_I2C=m CONFIG_BMP085_SPI=m CONFIG_USB_SWITCH_FSA9480=m CONFIG_LATTICE_ECP3_CONFIG=m CONFIG_SRAM=y +CONFIG_PANEL=m +CONFIG_PANEL_PARPORT=0 +CONFIG_PANEL_PROFILE=5 +# CONFIG_PANEL_CHANGE_MESSAGE is not set CONFIG_C2PORT=m CONFIG_C2PORT_DURAMAR_2150=m @@ -2075,6 +2100,11 @@ CONFIG_INTEL_MIC_BUS=m # CONFIG_SCIF_BUS=m +# +# VOP Bus Driver +# +CONFIG_VOP_BUS=m + # # Intel MIC Host Driver # @@ -2094,6 +2124,11 @@ CONFIG_SCIF=m # Intel MIC Coprocessor State Management (COSM) Drivers # CONFIG_MIC_COSM=m + +# +# VOP Driver +# +CONFIG_VOP=m CONFIG_GENWQE=m CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0 CONFIG_ECHO=m @@ -2373,7 +2408,6 @@ CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_CACHE=m -CONFIG_DM_CACHE_MQ=m CONFIG_DM_CACHE_SMQ=m CONFIG_DM_CACHE_CLEANER=m CONFIG_DM_ERA=m @@ -2438,6 +2472,7 @@ CONFIG_MACVTAP=m CONFIG_IPVLAN=m CONFIG_VXLAN=m CONFIG_GENEVE=m +CONFIG_MACSEC=m CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y @@ -2556,6 +2591,7 @@ CONFIG_TIGON3=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNX2X_VXLAN=y +# CONFIG_BNX2X_GENEVE is not set CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_NET_VENDOR_BROCADE=y @@ -2571,6 +2607,7 @@ CONFIG_CHELSIO_T1_1G=y CONFIG_CHELSIO_T3=m CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4_DCB=y +# CONFIG_CHELSIO_T4_UWIRE is not set CONFIG_CHELSIO_T4_FCOE=y CONFIG_CHELSIO_T4VF=m CONFIG_NET_VENDOR_CISCO=y @@ -2611,6 +2648,7 @@ CONFIG_NET_VENDOR_INTEL=y CONFIG_E100=m CONFIG_E1000=m CONFIG_E1000E=m +CONFIG_E1000E_HWTS=y CONFIG_IGB=m CONFIG_IGB_HWMON=y CONFIG_IGB_DCA=y @@ -2634,6 +2672,7 @@ CONFIG_NET_VENDOR_I825XX=y CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y CONFIG_MVMDIO=m +# CONFIG_MVNETA_BM is not set CONFIG_SKGE=m # CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y @@ -2647,6 +2686,8 @@ CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_MLX5_CORE=m CONFIG_MLX5_CORE_EN=y +CONFIG_MLX5_CORE_EN_DCB=y +CONFIG_MLX5_CORE_EN_VXLAN=y CONFIG_MLXSW_CORE=m CONFIG_MLXSW_CORE_HWMON=y CONFIG_MLXSW_PCI=m @@ -2790,7 +2831,9 @@ CONFIG_MICROCHIP_PHY=m CONFIG_FIXED_PHY=y CONFIG_MDIO_BITBANG=m CONFIG_MDIO_GPIO=m +CONFIG_MDIO_CAVIUM=m CONFIG_MDIO_OCTEON=m +CONFIG_MDIO_THUNDER=m CONFIG_MDIO_BCM_UNIMAC=m CONFIG_MICREL_KS8995MA=m CONFIG_PLIP=m @@ -2978,6 +3021,7 @@ CONFIG_IWLMVM=m CONFIG_IWLWIFI_OPMODE_MODULAR=y # CONFIG_IWLWIFI_BCAST_FILTERING is not set # CONFIG_IWLWIFI_UAPSD is not set +# CONFIG_IWLWIFI_PCIE_RTPM is not set # # Debugging Options @@ -3095,7 +3139,6 @@ CONFIG_WL1251_SDIO=m CONFIG_WL12XX=m CONFIG_WL18XX=m CONFIG_WLCORE=m -CONFIG_WLCORE_SPI=m CONFIG_WLCORE_SDIO=m CONFIG_WILINK_PLATFORM_DATA=y CONFIG_WLAN_VENDOR_ZYDAS=y @@ -3223,10 +3266,6 @@ CONFIG_HISAX_ST5481=m CONFIG_HISAX_HFCUSB=m CONFIG_HISAX_HFC4S8S=m CONFIG_HISAX_FRITZ_PCIPNP=m - -# -# Active cards -# CONFIG_ISDN_CAPI=m CONFIG_CAPI_TRACE=y CONFIG_ISDN_CAPI_CAPI20=m @@ -3337,6 +3376,7 @@ CONFIG_KEYBOARD_CROS_EC=m CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=m CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_BYD=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_CYPRESS=y @@ -3432,6 +3472,7 @@ CONFIG_TOUCHSCREEN_WACOM_I2C=m CONFIG_TOUCHSCREEN_MAX11801=m CONFIG_TOUCHSCREEN_MCS5000=m CONFIG_TOUCHSCREEN_MMS114=m +CONFIG_TOUCHSCREEN_MELFAS_MIP4=m CONFIG_TOUCHSCREEN_MTOUCH=m CONFIG_TOUCHSCREEN_INEXIO=m CONFIG_TOUCHSCREEN_MK712=m @@ -3539,6 +3580,13 @@ CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_DRV260X_HAPTICS=m CONFIG_INPUT_DRV2665_HAPTICS=m CONFIG_INPUT_DRV2667_HAPTICS=m +CONFIG_RMI4_CORE=m +CONFIG_RMI4_I2C=m +CONFIG_RMI4_SPI=m +CONFIG_RMI4_2D_SENSOR=y +CONFIG_RMI4_F11=y +CONFIG_RMI4_F12=y +CONFIG_RMI4_F30=y # # Hardware I/O ports @@ -3618,6 +3666,7 @@ CONFIG_SERIAL_8250_DW=m CONFIG_SERIAL_8250_RT288X=y CONFIG_SERIAL_8250_FINTEK=m CONFIG_SERIAL_8250_MID=m +CONFIG_SERIAL_8250_MOXA=m # # Non-8250 serial port support @@ -3647,6 +3696,7 @@ CONFIG_SERIAL_RP2=m CONFIG_SERIAL_RP2_NR_UARTS=32 CONFIG_SERIAL_FSL_LPUART=m CONFIG_SERIAL_MEN_Z135=m +# CONFIG_SERIAL_MVEBU_UART is not set CONFIG_TTY_PRINTK=y CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set @@ -3807,24 +3857,24 @@ CONFIG_SPI_MASTER=y # SPI Master Controller Drivers # CONFIG_SPI_ALTERA=m +CONFIG_SPI_AXI_SPI_ENGINE=m CONFIG_SPI_BITBANG=m CONFIG_SPI_BUTTERFLY=m CONFIG_SPI_CADENCE=m +CONFIG_SPI_DESIGNWARE=m +CONFIG_SPI_DW_PCI=m +CONFIG_SPI_DW_MID_DMA=y +CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DLN2=m CONFIG_SPI_GPIO=m CONFIG_SPI_LM70_LLP=m CONFIG_SPI_OC_TINY=m -CONFIG_SPI_PXA2XX_DMA=y CONFIG_SPI_PXA2XX=m CONFIG_SPI_PXA2XX_PCI=m CONFIG_SPI_SC18IS602=m CONFIG_SPI_XCOMM=m # CONFIG_SPI_XILINX is not set CONFIG_SPI_ZYNQMP_GQSPI=m -CONFIG_SPI_DESIGNWARE=m -CONFIG_SPI_DW_PCI=m -CONFIG_SPI_DW_MID_DMA=y -CONFIG_SPI_DW_MMIO=m # # SPI Protocol Masters @@ -3904,18 +3954,21 @@ CONFIG_GPIO_DWAPB=m CONFIG_GPIO_GENERIC_PLATFORM=m CONFIG_GPIO_ICH=m CONFIG_GPIO_LYNXPOINT=y +CONFIG_GPIO_MENZ127=m CONFIG_GPIO_VX855=m CONFIG_GPIO_ZX=y # # Port-mapped I/O GPIO drivers # +CONFIG_GPIO_104_DIO_48E=m CONFIG_GPIO_104_IDIO_16=m CONFIG_GPIO_104_IDI_48=m CONFIG_GPIO_F7188X=m CONFIG_GPIO_IT87=m CONFIG_GPIO_SCH=m CONFIG_GPIO_SCH311X=m +CONFIG_GPIO_WS16C48=m # # I2C GPIO expanders @@ -3926,6 +3979,7 @@ CONFIG_GPIO_MAX732X=m CONFIG_GPIO_PCA953X=m CONFIG_GPIO_PCF857X=m CONFIG_GPIO_SX150X=y +CONFIG_GPIO_TPIC2810=m # # MFD GPIO expanders @@ -3941,6 +3995,8 @@ CONFIG_GPIO_KEMPLD=m CONFIG_GPIO_LP3943=m CONFIG_GPIO_PALMAS=y CONFIG_GPIO_RC5T583=y +CONFIG_GPIO_TPS65086=m +CONFIG_GPIO_TPS65218=m CONFIG_GPIO_TPS6586X=y CONFIG_GPIO_TPS65910=y CONFIG_GPIO_TPS65912=m @@ -3964,6 +4020,7 @@ CONFIG_GPIO_RDC321X=m # CONFIG_GPIO_MAX7301=m CONFIG_GPIO_MC33880=m +CONFIG_GPIO_PISOSR=m # # SPI or I2C GPIO expanders @@ -4118,6 +4175,7 @@ CONFIG_SENSORS_JC42=m CONFIG_SENSORS_POWR1220=m CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LTC2945=m +CONFIG_SENSORS_LTC2990=m CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4222=m @@ -4275,6 +4333,7 @@ CONFIG_ACQUIRE_WDT=m CONFIG_ADVANTECH_WDT=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_EBC_C384_WDT=m CONFIG_F71808E_WDT=m CONFIG_SP5100_TCO=m CONFIG_SBC_FITPC2_WATCHDOG=m @@ -4304,7 +4363,8 @@ CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m CONFIG_SBC_EPX_C3_WATCHDOG=m -CONFIG_BCM7038_WDT=m +CONFIG_INTEL_MEI_WDT=m +CONFIG_NI903X_WDT=m CONFIG_MEN_A21_WDT=m CONFIG_XEN_WDT=m @@ -4361,7 +4421,8 @@ CONFIG_MFD_AS3711=y CONFIG_PMIC_ADP5520=y CONFIG_MFD_AAT2870_CORE=y CONFIG_MFD_BCM590XX=m -CONFIG_MFD_AXP20X=y +CONFIG_MFD_AXP20X=m +CONFIG_MFD_AXP20X_I2C=m CONFIG_MFD_CROS_EC=m CONFIG_MFD_CROS_EC_I2C=m CONFIG_MFD_CROS_EC_SPI=m @@ -4430,6 +4491,7 @@ CONFIG_MFD_PALMAS=y CONFIG_TPS6105X=m CONFIG_TPS65010=m CONFIG_TPS6507X=m +CONFIG_MFD_TPS65086=m CONFIG_MFD_TPS65090=y CONFIG_MFD_TPS65217=m CONFIG_MFD_TPS65218=m @@ -4530,6 +4592,7 @@ CONFIG_REGULATOR_TPS6105X=m CONFIG_REGULATOR_TPS62360=m CONFIG_REGULATOR_TPS65023=m CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TPS65086=m CONFIG_REGULATOR_TPS65090=m CONFIG_REGULATOR_TPS65217=m CONFIG_REGULATOR_TPS6524X=m @@ -5226,6 +5289,7 @@ CONFIG_VGA_ARB_MAX_GPUS=16 CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y +# CONFIG_DRM_DP_AUX_CHARDEV is not set CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y @@ -5247,6 +5311,11 @@ CONFIG_DRM_AMDGPU=m # CONFIG_DRM_AMDGPU_CIK is not set CONFIG_DRM_AMDGPU_USERPTR=y # CONFIG_DRM_AMD_POWERPLAY is not set + +# +# ACP (Audio CoProcessor) Configuration +# +# CONFIG_DRM_AMD_ACP is not set CONFIG_DRM_NOUVEAU=m CONFIG_NOUVEAU_DEBUG=5 CONFIG_NOUVEAU_DEBUG_DEFAULT=3 @@ -5254,6 +5323,7 @@ CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_I810=m CONFIG_DRM_I915=m # CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set +CONFIG_DRM_I915_USERPTR=y CONFIG_DRM_MGA=m CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m @@ -5465,11 +5535,13 @@ CONFIG_SOUND_OSS_CORE=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m +CONFIG_SND_PCM_ELD=y CONFIG_SND_DMAENGINE_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m CONFIG_SND_COMPRESS_OFFLOAD=m CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_OSSEMUL=y @@ -5701,11 +5773,14 @@ CONFIG_SND_SOC_CS4349=m CONFIG_SND_SOC_DMIC=m CONFIG_SND_SOC_ES8328=m CONFIG_SND_SOC_GTM601=m +CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INNO_RK3036=m CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_MAX98357A=m CONFIG_SND_SOC_PCM1681=m CONFIG_SND_SOC_PCM179X=m +CONFIG_SND_SOC_PCM179X_I2C=m +CONFIG_SND_SOC_PCM179X_SPI=m CONFIG_SND_SOC_PCM3168A=m CONFIG_SND_SOC_PCM3168A_I2C=m CONFIG_SND_SOC_PCM3168A_SPI=m @@ -5715,6 +5790,7 @@ CONFIG_SND_SOC_PCM512x_SPI=m CONFIG_SND_SOC_RL6231=m CONFIG_SND_SOC_RL6347A=m CONFIG_SND_SOC_RT286=m +CONFIG_SND_SOC_RT5616=m CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5640=m CONFIG_SND_SOC_RT5645=m @@ -5793,6 +5869,7 @@ CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m CONFIG_HID_CORSAIR=m CONFIG_HID_PRODIKEYS=m +CONFIG_HID_CMEDIA=m CONFIG_HID_CP2112=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m @@ -6375,6 +6452,7 @@ CONFIG_INFINIBAND_QIB_DCA=y CONFIG_INFINIBAND_CXGB3=m # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB4=m +CONFIG_INFINIBAND_I40IW=m CONFIG_MLX4_INFINIBAND=m CONFIG_MLX5_INFINIBAND=m CONFIG_INFINIBAND_NES=m @@ -6388,6 +6466,7 @@ CONFIG_INFINIBAND_SRP=m CONFIG_INFINIBAND_SRPT=m CONFIG_INFINIBAND_ISER=m CONFIG_INFINIBAND_ISERT=m +CONFIG_INFINIBAND_RDMAVT=m CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_EDAC=y @@ -6434,10 +6513,10 @@ CONFIG_RTC_DRV_88PM80X=m CONFIG_RTC_DRV_ABB5ZES3=m CONFIG_RTC_DRV_ABX80X=m CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1307_HWMON=y CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1374_WDT=y CONFIG_RTC_DRV_DS1672=m -CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_LP8788=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_MAX8907=m @@ -6449,16 +6528,15 @@ CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_ISL12057=m CONFIG_RTC_DRV_X1205=m -CONFIG_RTC_DRV_PALMAS=m -CONFIG_RTC_DRV_PCF2127=m CONFIG_RTC_DRV_PCF8523=m -CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF85063=m +CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTC_DRV_PALMAS=m CONFIG_RTC_DRV_TPS6586X=m CONFIG_RTC_DRV_TPS65910=m CONFIG_RTC_DRV_TPS80031=m @@ -6470,6 +6548,7 @@ CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m CONFIG_RTC_DRV_EM3027=m CONFIG_RTC_DRV_RV3029C2=m +CONFIG_RTC_DRV_RV3029_HWMON=y CONFIG_RTC_DRV_RV8803=m CONFIG_RTC_DRV_S5M=m @@ -6482,13 +6561,20 @@ CONFIG_RTC_DRV_DS1305=m CONFIG_RTC_DRV_DS1343=m CONFIG_RTC_DRV_DS1347=m CONFIG_RTC_DRV_DS1390=m -CONFIG_RTC_DRV_MAX6902=m CONFIG_RTC_DRV_R9701=m -CONFIG_RTC_DRV_RS5C348=m -CONFIG_RTC_DRV_DS3234=m -CONFIG_RTC_DRV_PCF2123=m CONFIG_RTC_DRV_RX4581=m +CONFIG_RTC_DRV_RX6110=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_PCF2123=m CONFIG_RTC_DRV_MCP795=m +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_PCF2127=m # # Platform RTC drivers @@ -6546,6 +6632,8 @@ CONFIG_DMA_ACPI=y CONFIG_INTEL_IDMA64=m CONFIG_INTEL_IOATDMA=m CONFIG_INTEL_MIC_X100_DMA=m +CONFIG_QCOM_HIDMA_MGMT=m +CONFIG_QCOM_HIDMA=m CONFIG_DW_DMAC_CORE=m CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=m @@ -6582,6 +6670,7 @@ CONFIG_VFIO_PCI=m CONFIG_VFIO_PCI_VGA=y CONFIG_VFIO_PCI_MMAP=y CONFIG_VFIO_PCI_INTX=y +CONFIG_VFIO_PCI_IGD=y CONFIG_IRQ_BYPASS_MANAGER=m CONFIG_VIRT_DRIVERS=y CONFIG_VIRTIO=y @@ -6773,10 +6862,6 @@ CONFIG_COMEDI_ISADMA=m CONFIG_COMEDI_NI_LABPC=m CONFIG_COMEDI_NI_LABPC_ISADMA=m CONFIG_COMEDI_NI_TIO=m -CONFIG_PANEL=m -CONFIG_PANEL_PARPORT=0 -CONFIG_PANEL_PROFILE=5 -# CONFIG_PANEL_CHANGE_MESSAGE is not set CONFIG_RTL8192U=m CONFIG_RTLLIB=m CONFIG_RTLLIB_CRYPTO_CCMP=m @@ -6858,13 +6943,6 @@ CONFIG_SENSORS_ISL29028=m CONFIG_TSL2583=m CONFIG_TSL2x7x=m -# -# Magnetometer sensors -# -CONFIG_SENSORS_HMC5843=m -CONFIG_SENSORS_HMC5843_I2C=m -CONFIG_SENSORS_HMC5843_SPI=m - # # Active energy metering IC # @@ -6886,7 +6964,6 @@ CONFIG_AD2S1210=m # # Triggers - standalone # -CONFIG_IIO_PERIODIC_RTC_TRIGGER=m CONFIG_FB_SM750=m CONFIG_FB_XGI=m @@ -6905,12 +6982,10 @@ CONFIG_SPEAKUP_SYNTH_SOFT=m CONFIG_SPEAKUP_SYNTH_SPKOUT=m CONFIG_SPEAKUP_SYNTH_TXPRT=m CONFIG_SPEAKUP_SYNTH_DUMMY=m -CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m CONFIG_STAGING_MEDIA=y CONFIG_I2C_BCM2048=m CONFIG_DVB_CXD2099=m CONFIG_DVB_MN88472=m -CONFIG_DVB_MN88473=m CONFIG_LIRC_STAGING=y CONFIG_LIRC_BT829=m CONFIG_LIRC_IMON=m @@ -6925,27 +7000,22 @@ CONFIG_INFINIBAND_HFI1=m # CONFIG_HFI1_DEBUG_SDMA_ORDER is not set CONFIG_HFI1_VERBS_31BIT_PSN=y # CONFIG_SDMA_VERBOSITY is not set -# CONFIG_PRESCAN_RXQ is not set # # Android # -CONFIG_WIMAX_GDM72XX=m -CONFIG_WIMAX_GDM72XX_QOS=y -CONFIG_WIMAX_GDM72XX_K_MODE=y -CONFIG_WIMAX_GDM72XX_WIMAX2=y -CONFIG_WIMAX_GDM72XX_USB=y -# CONFIG_WIMAX_GDM72XX_SDIO is not set -CONFIG_WIMAX_GDM72XX_USB_PM=y CONFIG_LTE_GDM724X=m CONFIG_FIREWIRE_SERIAL=m CONFIG_FWTTY_MAX_TOTAL_PORTS=64 CONFIG_FWTTY_MAX_CARD_PORTS=32 CONFIG_MTD_SPINAND_MT29F=m CONFIG_MTD_SPINAND_ONDIEECC=y +CONFIG_LNET=m +CONFIG_LNET_MAX_PAYLOAD=1048576 +# CONFIG_LNET_SELFTEST is not set +CONFIG_LNET_XPRT_IB=m # CONFIG_LUSTRE_FS is not set CONFIG_DGNC=m -CONFIG_DGAP=m CONFIG_GS_FPGABOOT=m CONFIG_CRYPTO_SKEIN=y CONFIG_UNISYSSPAR=y @@ -6972,7 +7042,9 @@ CONFIG_FB_TFT_RA8875=m CONFIG_FB_TFT_S6D02A1=m CONFIG_FB_TFT_S6D1121=m CONFIG_FB_TFT_SSD1289=m +CONFIG_FB_TFT_SSD1305=m CONFIG_FB_TFT_SSD1306=m +CONFIG_FB_TFT_SSD1325=m CONFIG_FB_TFT_SSD1331=m CONFIG_FB_TFT_SSD1351=m CONFIG_FB_TFT_ST7735R=m @@ -6998,11 +7070,16 @@ CONFIG_AIM_V4L2=m CONFIG_HDM_DIM2=m CONFIG_HDM_I2C=m CONFIG_HDM_USB=m + +# +# Old ISDN4Linux (deprecated) +# CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m CONFIG_ALIENWARE_WMI=m CONFIG_ASUS_LAPTOP=m +CONFIG_DELL_SMBIOS=m CONFIG_DELL_LAPTOP=m CONFIG_DELL_WMI=m CONFIG_DELL_WMI_AIO=m @@ -7073,6 +7150,7 @@ CONFIG_COMMON_CLK=y # CONFIG_COMMON_CLK_WM831X=m CONFIG_COMMON_CLK_SI5351=m +CONFIG_COMMON_CLK_CDCE706=m CONFIG_COMMON_CLK_CS2000_CP=m CONFIG_COMMON_CLK_S2MPS11=m CONFIG_CLK_TWL6040=m @@ -7080,7 +7158,6 @@ CONFIG_CLK_TWL6040=m CONFIG_COMMON_CLK_PALMAS=m CONFIG_COMMON_CLK_PWM=m # CONFIG_COMMON_CLK_PXA is not set -CONFIG_COMMON_CLK_CDCE706=m # # Hardware Spinlock drivers @@ -7230,7 +7307,9 @@ CONFIG_PALMAS_GPADC=m CONFIG_QCOM_SPMI_IADC=m CONFIG_QCOM_SPMI_VADC=m CONFIG_TI_ADC081C=m +CONFIG_TI_ADC0832=m CONFIG_TI_ADC128S052=m +CONFIG_TI_ADS1015=m CONFIG_TI_AM335X_ADC=m CONFIG_TWL4030_MADC=m CONFIG_TWL6030_GPADC=m @@ -7244,6 +7323,7 @@ CONFIG_AD8366=m # # Chemical Sensors # +CONFIG_ATLAS_PH_SENSOR=m CONFIG_IAQCORE=m CONFIG_VZ89X=m @@ -7276,6 +7356,7 @@ CONFIG_AD5504=m CONFIG_AD5624R_SPI=m CONFIG_AD5686=m CONFIG_AD5755=m +CONFIG_AD5761=m CONFIG_AD5764=m CONFIG_AD5791=m CONFIG_AD7303=m @@ -7323,8 +7404,14 @@ CONFIG_IIO_ST_GYRO_SPI_3AXIS=m CONFIG_ITG3200=m # -# Health sensors +# Health Sensors # + +# +# Heart Rate Monitors +# +CONFIG_AFE4403=m +CONFIG_AFE4404=m CONFIG_MAX30100=m # @@ -7343,6 +7430,8 @@ CONFIG_ADIS16400=m CONFIG_ADIS16480=m CONFIG_KMX61=m CONFIG_INV_MPU6050_IIO=m +CONFIG_INV_MPU6050_I2C=m +CONFIG_INV_MPU6050_SPI=m CONFIG_IIO_ADIS_LIB=m CONFIG_IIO_ADIS_LIB_BUFFER=y @@ -7389,6 +7478,9 @@ CONFIG_MMC35240=m CONFIG_IIO_ST_MAGN_3AXIS=m CONFIG_IIO_ST_MAGN_I2C_3AXIS=m CONFIG_IIO_ST_MAGN_SPI_3AXIS=m +CONFIG_SENSORS_HMC5843=m +CONFIG_SENSORS_HMC5843_I2C=m +CONFIG_SENSORS_HMC5843_SPI=m # # Inclinometer sensors @@ -7407,6 +7499,7 @@ CONFIG_IIO_SYSFS_TRIGGER=m # Digital potentiometers # CONFIG_MCP4531=m +CONFIG_TPL0102=m # # Pressure sensors @@ -7414,6 +7507,8 @@ CONFIG_MCP4531=m CONFIG_BMP280=m CONFIG_HID_SENSOR_PRESS=m CONFIG_MPL115=m +CONFIG_MPL115_I2C=m +CONFIG_MPL115_SPI=m CONFIG_MPL3115=m CONFIG_MS5611=m CONFIG_MS5611_I2C=m @@ -7478,7 +7573,6 @@ CONFIG_PWM_PCA9685=m CONFIG_PWM_TWL=m CONFIG_PWM_TWL_LED=m CONFIG_ARM_GIC_MAX_NR=1 -CONFIG_TS4800_IRQ=m CONFIG_IPACK_BUS=m CONFIG_BOARD_TPCI200=m CONFIG_SERIAL_IPOCTAL=m @@ -7529,6 +7623,7 @@ CONFIG_NVMEM=m CONFIG_STM=m CONFIG_STM_DUMMY=m CONFIG_STM_SOURCE_CONSOLE=m +CONFIG_STM_SOURCE_HEARTBEAT=m CONFIG_INTEL_TH=m CONFIG_INTEL_TH_PCI=m CONFIG_INTEL_TH_GTH=m @@ -7556,6 +7651,8 @@ CONFIG_DMI_SYSFS=m CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m +CONFIG_FW_CFG_SYSFS=m +# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_GOOGLE_FIRMWARE is not set # @@ -7632,6 +7729,7 @@ CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_MANDATORY_FILE_LOCKING=y +CONFIG_FS_ENCRYPTION=m CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y @@ -7680,6 +7778,7 @@ CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAT_DEFAULT_UTF8 is not set CONFIG_NTFS_FS=m # CONFIG_NTFS_DEBUG is not set # CONFIG_NTFS_RW is not set @@ -7703,6 +7802,7 @@ CONFIG_HUGETLB_PAGE=y CONFIG_CONFIGFS_FS=m CONFIG_EFIVAR_FS=y CONFIG_MISC_FILESYSTEMS=y +CONFIG_ORANGEFS_FS=m CONFIG_ADFS_FS=m # CONFIG_ADFS_FS_RW is not set CONFIG_AFFS_FS=m @@ -7802,7 +7902,8 @@ CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y -CONFIG_NFSD_PNFS=y +# CONFIG_NFSD_BLOCKLAYOUT is not set +# CONFIG_NFSD_SCSILAYOUT is not set CONFIG_NFSD_V4_SECURITY_LABEL=y # CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_GRACE_PERIOD=m @@ -7935,6 +8036,7 @@ CONFIG_DEBUG_FS=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y +# CONFIG_STACK_VALIDATION is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 @@ -7945,6 +8047,8 @@ CONFIG_DEBUG_KERNEL=y # # CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_PAGE_REF is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set @@ -7961,6 +8065,8 @@ CONFIG_HAVE_DEBUG_STACKOVERFLOW=y CONFIG_HAVE_ARCH_KMEMCHECK=y CONFIG_HAVE_ARCH_KASAN=y # CONFIG_KASAN is not set +CONFIG_ARCH_HAS_KCOV=y +# CONFIG_KCOV is not set # CONFIG_DEBUG_SHIRQ is not set # @@ -8021,6 +8127,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_RCU_EQS_DEBUG is not set # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set CONFIG_NOTIFIER_ERROR_INJECTION=m CONFIG_CPU_NOTIFIER_ERROR_INJECT=m CONFIG_PM_NOTIFIER_ERROR_INJECT=m @@ -8095,6 +8202,7 @@ CONFIG_TEST_HEXDUMP=m CONFIG_TEST_STRING_HELPERS=m CONFIG_TEST_KSTRTOX=m CONFIG_TEST_PRINTF=m +CONFIG_TEST_BITMAP=m # CONFIG_TEST_RHASHTABLE is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set @@ -8127,7 +8235,6 @@ 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=y # CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_WX is not set CONFIG_DEBUG_SET_MODULE_RONX=y @@ -8152,7 +8259,6 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=1 CONFIG_OPTIMIZE_INLINING=y # CONFIG_DEBUG_ENTRY is not set # CONFIG_DEBUG_NMI_SELFTEST is not set -# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set CONFIG_X86_DEBUG_FPU=y CONFIG_PUNIT_ATOM_DEBUG=m @@ -8248,11 +8354,9 @@ CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=m -CONFIG_CRYPTO_PCOMP=m -CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_AKCIPHER2=y -CONFIG_CRYPTO_AKCIPHER=m -CONFIG_CRYPTO_RSA=m +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_RSA=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_USER=m @@ -8372,7 +8476,6 @@ CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m # Compression # CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_ZLIB=m CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_842=m CONFIG_CRYPTO_LZ4=m @@ -8410,7 +8513,6 @@ CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y -CONFIG_PUBLIC_KEY_ALGO_RSA=y CONFIG_X509_CERTIFICATE_PARSER=y CONFIG_PKCS7_MESSAGE_PARSER=y CONFIG_PKCS7_TEST_KEY=m @@ -8421,6 +8523,7 @@ CONFIG_SIGNED_PE_FILE_VERIFICATION=y # CONFIG_SYSTEM_TRUSTED_KEYRING=y CONFIG_SYSTEM_TRUSTED_KEYS="" +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_IRQFD=y diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 0ac4be20d0..ed8ef8becf 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -225,7 +225,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration." (search-path %load-path file))) (define-public linux-libre - (let* ((version "4.5.5") + (let* ((version "4.6") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Avoid introducing timestamps @@ -303,7 +303,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration." (uri (linux-libre-urls version)) (sha256 (base32 - "1zys74hfdi13yyk17x45hvvbx7m97wk7pala3cd8k93xbq8qnai0")))) + "1y1fyrmv34b01a35apkpha5xwvch17fz3kx2g1657x5jhpbnlwn3")))) (build-system gnu-build-system) (supported-systems '("x86_64-linux" "i686-linux")) (native-inputs `(("perl" ,perl) From 25c288cbf12925e0f079a2ebb0247a21e14dc6b8 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sun, 22 May 2016 08:46:39 +1000 Subject: [PATCH 036/277] guix: ruby-build-system: Extract gemspec during 'extract-gemspec'. * guix/build/ruby-build-system.scm (build): Move extraction from here ... (extract-gemspec): ... to here. New variable. (first-gemspec): New variable. (%standard-phases): Add 'extract-gemspec' phase. --- guix/build/ruby-build-system.scm | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm index a4ac3b307c..79ac380cb8 100644 --- a/guix/build/ruby-build-system.scm +++ b/guix/build/ruby-build-system.scm @@ -66,14 +66,13 @@ directory." ;; Use GNU unpack strategy for things that aren't gem archives. (gnu:unpack #:source source))) -(define* (build #:key source #:allow-other-keys) - "Build a new gem using the gemspec from the SOURCE gem." - (define (first-gemspec) - (first-matching-file "\\.gemspec$")) +(define (first-gemspec) + (first-matching-file "\\.gemspec$")) - ;; Remove the original gemspec, if present, and replace it with a new one. - ;; This avoids issues with upstream gemspecs requiring tools such as git to - ;; generate the files list. +(define* (extract-gemspec #:key source #:allow-other-keys) + "Remove the original gemspec, if present, and replace it with a new one. +This avoids issues with upstream gemspecs requiring tools such as git to +generate the files list." (when (gem-archive? source) (let ((gemspec (or (false-if-exception (first-gemspec)) ;; Make new gemspec if one wasn't shipped. @@ -94,7 +93,10 @@ directory." (write-char (read-char pipe) out)))) #t) (lambda () - (close-pipe pipe)))))) + (close-pipe pipe))))))) + +(define* (build #:key source #:allow-other-keys) + "Build a new gem using the gemspec from the SOURCE gem." ;; Build a new gem from the current working directory. This also allows any ;; dynamic patching done in previous phases to be present in the installed @@ -134,6 +136,7 @@ GEM-FLAGS are passed to the 'gem' invokation, if present." (define %standard-phases (modify-phases gnu:%standard-phases (delete 'configure) + (add-before 'build 'extract-gemspec extract-gemspec) (replace 'build build) (replace 'unpack unpack) (replace 'install install) From 5e7f1b0b2a7fc1ac10f61057dfbb828979a4aade Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sun, 22 May 2016 08:49:41 +1000 Subject: [PATCH 037/277] gnu: ruby-nokogiri: Update to 1.6.7.2. * gnu/packages/ruby.scm (ruby-nokogiri): Update to 1.6.7.2. [arguments]: Relax 'mini_portile2' dependency. --- gnu/packages/ruby.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 6c2e08f29d..b9e8cae160 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1882,13 +1882,13 @@ to reproduce user environments.") (define-public ruby-nokogiri (package (name "ruby-nokogiri") - (version "1.6.7.1") + (version "1.6.7.2") (source (origin (method url-fetch) (uri (rubygems-uri "nokogiri" version)) (sha256 (base32 - "12nwv3lad5k2k73aa1d1xy4x577c143ixks6rs70yp78sinbglk2")))) + "11sbmpy60ynak6s3794q32lc99hs448msjy8rkp84ay7mq7zqspv")))) (build-system ruby-build-system) (arguments ;; Tests fail because Nokogiri can only test with an installed extension, @@ -1897,7 +1897,13 @@ to reproduce user environments.") #:gem-flags (list "--" "--use-system-libraries" (string-append "--with-xml2-include=" (assoc-ref %build-inputs "libxml2") - "/include/libxml2" )))) + "/include/libxml2" )) + #:phases + (modify-phases %standard-phases + (add-after 'extract-gemspec 'update-dependency + (lambda _ + (substitute* ".gemspec" (("2.0.0.rc2") "2.0")) + #t))))) (native-inputs `(("ruby-hoe" ,ruby-hoe) ("ruby-rake-compiler" ,ruby-rake-compiler))) From 33a45ed652dbbc8f4f2497a2678bf10b0934efc2 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 21 May 2016 22:57:07 +1000 Subject: [PATCH 038/277] gnu: ruby-domain-name: Update to 0.5.20160310. * gnu/packages/ruby.scm (ruby-domain-name): Update to 0.5.20160310. --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index b9e8cae160..1bd3e93775 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3386,14 +3386,14 @@ support to both Ruby and JRuby. It uses @code{unf_ext} on CRuby and (define-public ruby-domain-name (package (name "ruby-domain-name") - (version "0.5.25") + (version "0.5.20160310") (source (origin (method url-fetch) (uri (rubygems-uri "domain_name" version)) (sha256 (base32 - "16qvfrmcwlzz073aas55mpw2nhyhjcn96s524w0g1wlml242hjav")))) + "0g1175zspkqhlvl9s11g7p2nbmqpvpxxv02q8csd0ryc81laapys")))) (build-system ruby-build-system) (arguments `(#:phases From 80756fa66b853fb3ab2f8a7886268a64b5aac6e6 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 21 May 2016 23:01:37 +1000 Subject: [PATCH 039/277] gnu: ruby-shoulda-matchers: Update to 3.1.1. * gnu/packages/ruby.scm (ruby-shoulda-matchers): Update to 3.1.1. [arguments]: Remove 'fix-import' phase. --- gnu/packages/ruby.scm | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 1bd3e93775..8f43ec6e31 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3271,26 +3271,18 @@ names.") (define-public ruby-shoulda-matchers (package (name "ruby-shoulda-matchers") - (version "3.0.1") + (version "3.1.1") (source (origin (method url-fetch) (uri (rubygems-uri "shoulda-matchers" version)) (sha256 (base32 - "1agabvb8i39mjrp3kb78nvhl41xk1i258hdwdlj0fm8nj9yzn1jb")))) + "1cf6d2d9br82vylr9p362yk9cfrd14jz8v77n0yb0lbcxdbk7xzq")))) (build-system ruby-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-before 'build 'fix-import - (lambda _ - ;; A presumed bug reported upstream at - ;; https://github.com/thoughtbot/shoulda-matchers/pull/871 - (substitute* (string-append "lib/shoulda/matchers/active_model/" - "validate_inclusion_of_matcher.rb") - (("^require 'bigdecimal'") - "require 'bigdecimal'; require 'date'")))) (replace 'check (lambda _ ;; Do not run tests to avoid circular dependence with rails. Instead From 0907bf571dba0f3454362c46b99ace9d0adb0963 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 21 May 2016 23:03:47 +1000 Subject: [PATCH 040/277] gnu: ruby-mime-types-data: Update to 3.2016.0221. * gnu/packages/ruby.scm (ruby-mime-types-data): Update to 3.2016.0221. --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 8f43ec6e31..de858fbaed 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3135,14 +3135,14 @@ that TURN is no longer being maintained.") (define-public ruby-mime-types-data (package (name "ruby-mime-types-data") - (version "3.2015.1120") + (version "3.2016.0221") (source (origin (method url-fetch) (uri (rubygems-uri "mime-types-data" version)) (sha256 (base32 - "04fzvy02w8d0rrsg8avncn7h58pvwdxj82aps54srb3sam2dkhic")))) + "05ygjn0nnfh6yp1wsi574jckk95wqg9a6g598wk4svvrkmkrzkpn")))) (build-system ruby-build-system) (native-inputs `(("ruby-hoe" ,ruby-hoe))) From 59884b71e38fce4ba862d67d7732dc63c3ad50cd Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 21 May 2016 23:05:18 +1000 Subject: [PATCH 041/277] gnu: ruby-mini-portile-2: Update to 2.1.0. * gnu/packages/ruby.scm (ruby-mini-portile-2): Update to 2.1.0. --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index de858fbaed..5c52e32a41 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1871,13 +1871,13 @@ to reproduce user environments.") (define-public ruby-mini-portile-2 (package (inherit ruby-mini-portile) - (version "2.0.0") + (version "2.1.0") (source (origin (method url-fetch) (uri (rubygems-uri "mini_portile2" version)) (sha256 (base32 - "056drbn5m4khdxly1asmiik14nyllswr6sh3wallvsywwdiryz8l")))))) + "1y25adxb1hgg1wb2rn20g3vl07qziq6fz364jc5694611zz863hb")))))) (define-public ruby-nokogiri (package From f1ae7c6218d6b9d74dbb0ff53e1615290e2ecc96 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 21 May 2016 23:31:56 +1000 Subject: [PATCH 042/277] gnu: ruby-nokogumbo: Update to 1.4.7-1. * gnu/packages/ruby.scm (ruby-nokogumbo): Update to 1.4.7-1. --- gnu/packages/ruby.scm | 119 +++++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 59 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 5c52e32a41..afdcb33360 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2511,67 +2511,68 @@ multibyte strings, internationalization, time zones, and testing.") (license license:expat))) (define-public ruby-nokogumbo - (package - (name "ruby-nokogumbo") - (version "1.4.6") - (source (origin - ;; We use the git reference, because there's no Rakefile in the - ;; published gem and the tarball on Github is outdated. - (method git-fetch) - (uri (git-reference - (url "https://github.com/rubys/nokogumbo.git") - (commit "d56f954d20a"))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0bnppjy96xiadrsrc9dp8y6wvdwnkfa930n7acrp0mqm4qywl2wl")))) - (build-system ruby-build-system) - (arguments - `(#:modules ((guix build ruby-build-system) - (guix build utils) - (ice-9 rdelim)) - #:phases - (modify-phases %standard-phases - (add-before 'build 'build-gemspec - (lambda _ - (substitute* "Rakefile" - ;; Build Makefile even without a copy of gumbo-parser sources - (("'gumbo-parser/src',") "") - ;; We don't bundle gumbo-parser sources - (("'gumbo-parser/src/\\*',") "") - (("'gumbo-parser/visualc/include/\\*',") "") - ;; The definition of SOURCES will be cut in gemspec, and - ;; "FileList" will be undefined. - (("SOURCES \\+ FileList\\[") - "['ext/nokogumboc/extconf.rb', 'ext/nokogumboc/nokogumbo.c', ")) + (let ((commit "fb51ff299a1c34346837580b6d1d9a60fadf5dbd")) + (package + (name "ruby-nokogumbo") + (version (string-append "1.4.7-1." (string-take commit 8))) + (source (origin + ;; We use the git reference, because there's no Rakefile in the + ;; published gem and the tarball on Github is outdated. + (method git-fetch) + (uri (git-reference + (url "https://github.com/rubys/nokogumbo.git") + (commit "d56f954d20a"))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0bnppjy96xiadrsrc9dp8y6wvdwnkfa930n7acrp0mqm4qywl2wl")))) + (build-system ruby-build-system) + (arguments + `(#:modules ((guix build ruby-build-system) + (guix build utils) + (ice-9 rdelim)) + #:phases + (modify-phases %standard-phases + (add-before 'build 'build-gemspec + (lambda _ + (substitute* "Rakefile" + ;; Build Makefile even without a copy of gumbo-parser sources + (("'gumbo-parser/src',") "") + ;; We don't bundle gumbo-parser sources + (("'gumbo-parser/src/\\*',") "") + (("'gumbo-parser/visualc/include/\\*',") "") + ;; The definition of SOURCES will be cut in gemspec, and + ;; "FileList" will be undefined. + (("SOURCES \\+ FileList\\[") + "['ext/nokogumboc/extconf.rb', 'ext/nokogumboc/nokogumbo.c', ")) - ;; Copy the Rakefile and cut out the gemspec. - (copy-file "Rakefile" ".gemspec") - (with-atomic-file-replacement ".gemspec" - (lambda (in out) - (let loop ((line (read-line in 'concat)) - (skipping? #t)) - (if (eof-object? line) - #t - (let ((skip-next? (if skipping? - (not (string-prefix? "SPEC =" line)) - (string-prefix? "end" line)))) - (when (or (not skipping?) - (and skipping? (not skip-next?))) - (format #t "~a" line) - (display line out)) - (loop (read-line in 'concat) skip-next?)))))) - #t))))) - (inputs - `(("gumbo-parser" ,gumbo-parser))) - (propagated-inputs - `(("ruby-nokogiri" ,ruby-nokogiri))) - (synopsis "Ruby bindings to the Gumbo HTML5 parser") - (description - "Nokogumbo allows a Ruby program to invoke the Gumbo HTML5 parser and + ;; Copy the Rakefile and cut out the gemspec. + (copy-file "Rakefile" ".gemspec") + (with-atomic-file-replacement ".gemspec" + (lambda (in out) + (let loop ((line (read-line in 'concat)) + (skipping? #t)) + (if (eof-object? line) + #t + (let ((skip-next? (if skipping? + (not (string-prefix? "SPEC =" line)) + (string-prefix? "end" line)))) + (when (or (not skipping?) + (and skipping? (not skip-next?))) + (format #t "~a" line) + (display line out)) + (loop (read-line in 'concat) skip-next?)))))) + #t))))) + (inputs + `(("gumbo-parser" ,gumbo-parser))) + (propagated-inputs + `(("ruby-nokogiri" ,ruby-nokogiri))) + (synopsis "Ruby bindings to the Gumbo HTML5 parser") + (description + "Nokogumbo allows a Ruby program to invoke the Gumbo HTML5 parser and access the result as a Nokogiri parsed document.") - (home-page "https://github.com/rubys/nokogumbo/") - (license license:asl2.0))) + (home-page "https://github.com/rubys/nokogumbo/") + (license license:asl2.0)))) (define-public ruby-sanitize (package From cbdd428cf4aab436e3080423622c2c2d8fdb84cd Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Wed, 25 May 2016 22:08:36 +1000 Subject: [PATCH 043/277] gnu: Add ruby-sequel. * gnu/packages/ruby.scm (ruby-sequel): New variable. --- gnu/packages/ruby.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index afdcb33360..f46116e585 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3877,3 +3877,25 @@ part of the Prawn PDF generator.") ;; From the README: "Matz's terms for Ruby, GPLv2, or GPLv3. See LICENSE ;; for details." (license (list license:gpl2 license:gpl3 license:ruby)))) + +(define-public ruby-sequel + (package + (name "ruby-sequel") + (version "4.34.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "sequel" version)) + (sha256 + (base32 + "0qscddpfwcajggxvbm4a4jv8kkpn6q056bgdg03km34bz8bis1x1")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; Avoid dependency loop with ruby-minitest-hooks. + (synopsis "Database toolkit for Ruby") + (description "Sequel provides thread safety, connection pooling and a +concise DSL for constructing SQL queries and table schemas. It includes a +comprehensive ORM layer for mapping records to Ruby objects and handling +associated records.") + (home-page "http://sequel.jeremyevans.net") + (license license:expat))) From 2a96dbe6d6e49d339e54c4afd3d171712e772311 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Wed, 25 May 2016 22:15:13 +1000 Subject: [PATCH 044/277] gnu: Add ruby-minitest-hooks. * gnu/packages/ruby.scm (ruby-minitest-hooks): New variable. --- gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index f46116e585..631a1cd152 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1707,6 +1707,33 @@ instance, it provides @code{assert_true}, @code{assert_false} and (home-page "http://blowmage.com/minitest-rg") (license license:expat))) +(define-public ruby-minitest-hooks + (package + (name "ruby-minitest-hooks") + (version "1.4.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "minitest-hooks" version)) + (sha256 + (base32 + "092fymh0c09v3a585qw3hc15b0zf159s74rxx1ga87drk5jr958z")))) + (build-system ruby-build-system) + (arguments + '(#:test-target "spec")) + (native-inputs + `(("ruby-sequel" ,ruby-sequel) + ("ruby-sqlite3" ,ruby-sqlite3))) + (synopsis "Hooks for the minitest framework") + (description + "Minitest-hooks adds @code{around}, @code{before_all}, @code{after_all}, +@code{around_all} hooks for Minitest. This allows, for instance, running each +suite of specs inside a database transaction, running each spec inside its own +savepoint inside that transaction. This can significantly speed up testing +for specs that share expensive database setup code.") + (home-page "http://github.com/jeremyevans/minitest-hooks") + (license license:expat))) + (define-public ruby-daemons (package (name "ruby-daemons") From 803bcc81e21b0c2465ca20db59258121fd08a006 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Wed, 25 May 2016 21:42:05 +1000 Subject: [PATCH 045/277] gnu: ruby-mime-types: Update to 3.1. * gnu/packages/ruby.scm (ruby-mime-types): Update to 3.1. [native-inputs]: Add 'ruby-minitest-hooks'. --- gnu/packages/ruby.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 631a1cd152..6eebd9ade0 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3187,14 +3187,14 @@ look up the likely MIME type definitions.") (define-public ruby-mime-types (package (name "ruby-mime-types") - (version "3.0") + (version "3.1") (source (origin (method url-fetch) (uri (rubygems-uri "mime-types" version)) (sha256 (base32 - "1snjc38a9vqvy8j41xld1i1byq9prbl955pbjw7dxqcfcirqlzra")))) + "0087z9kbnlqhci7fxh9f6il63hj1k02icq2rs0c6cppmqchr753m")))) (build-system ruby-build-system) (propagated-inputs `(("ruby-mime-types-data" ,ruby-mime-types-data))) @@ -3203,7 +3203,8 @@ look up the likely MIME type definitions.") ("ruby-fivemat" ,ruby-fivemat) ("ruby-minitest-focus" ,ruby-minitest-focus) ("ruby-minitest-rg" ,ruby-minitest-rg) - ("ruby-minitest-bonus-assertions" ,ruby-minitest-bonus-assertions))) + ("ruby-minitest-bonus-assertions" ,ruby-minitest-bonus-assertions) + ("ruby-minitest-hooks" ,ruby-minitest-hooks))) (synopsis "Library and registry for MIME content type definitions") (description "The mime-types library provides a library and registry for information about Multipurpose Internet Mail Extensions (MIME) content type From c99bf9b2ea24bcd2f8498121f65618ff967a9140 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 25 May 2016 02:23:14 -0400 Subject: [PATCH 046/277] gnu: dnsmasq: Update to 2.76 [fixes CVE-2015-3294]. * gnu/packages/dns.scm (dnsmasq): Update to 2.76. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index e92d8d26b8..819343ad42 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -33,7 +33,7 @@ (define-public dnsmasq (package (name "dnsmasq") - (version "2.72") + (version "2.76") (source (origin (method url-fetch) (uri (string-append @@ -41,7 +41,7 @@ version ".tar.xz")) (sha256 (base32 - "1c80hq09hfm8cp5pirfb8wdlc7dqkp7zzmbmdaradcvlblzx42vx")))) + "15lzih6671gh9knzpl8mxchiml7z5lfqzr7jm2r0rjhrxs6nk4jb")))) (build-system gnu-build-system) (arguments `(#:phases From 0e9bc883b428ca7721d9bbfe7089648c1f221d14 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 May 2016 13:12:35 -0400 Subject: [PATCH 047/277] gnu: fuse: Update to 2.9.6. * gnu/packages/linux.scm (fuse): Update to 2.9.6. [home-page]: Update home-page URL. --- gnu/packages/linux.scm | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index ed8ef8becf..f1c4c7342a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1293,18 +1293,15 @@ processes currently causing I/O.") (define-public fuse (package (name "fuse") - (version "2.9.5") + (version "2.9.6") (source (origin (method url-fetch) - (uri (let ((version-with-underscores - (string-join (string-split version #\.) "_"))) - (string-append - "https://github.com/libfuse/libfuse/" - "releases/download/fuse_" version-with-underscores - "/fuse-" version ".tar.gz"))) + (uri (string-append "https://github.com/libfuse/libfuse/releases/" + "download/fuse-" version + "/fuse-" version ".tar.gz")) (sha256 (base32 - "1dfvbi1p57svbv2sfnbqwpnsk219spvjnlapf35azhgzqlf3g7sp")))) + "0szi2vlsjxg03y4ji51jks34p269jqj5ify6l0ajsqq6f6y8pd0c")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) (arguments @@ -1340,7 +1337,7 @@ processes currently causing I/O.") (("-DFUSERMOUNT_DIR=[[:graph:]]+") "-DFUSERMOUNT_DIR=\\\"/var/empty\\\""))) %standard-phases))) - (home-page "http://fuse.sourceforge.net/") + (home-page "https://github.com/libfuse/libfuse") (synopsis "Support file systems implemented in user space") (description "As a consequence of its monolithic design, file system code for Linux From 10240c7cbe9f2a425ad040bcb94817fdb47c77de Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 24 May 2016 13:13:05 -0400 Subject: [PATCH 048/277] gnu: python-llfuse: Update to 1.1. * gnu/packages/python.scm (python-llfuse, python2-llfuse): Update to 1.1. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 602da2d5ca..8bd219d297 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5443,7 +5443,7 @@ should be stored on various operating systems.") (define-public python-llfuse (package (name "python-llfuse") - (version "1.0") + (version "1.1") (source (origin (method url-fetch) (uri (string-append @@ -5451,7 +5451,7 @@ should be stored on various operating systems.") "llfuse-" version ".tar.bz2")) (sha256 (base32 - "1li7q04ljrvwharw4fblcbfhvk6s0l3lnv8yqb4c22lcgbkiqlps")))) + "1ywzbqkahrfl9kkcasxrmgilv6fybapvh6pqvimimnfh7sgxal72")))) (build-system python-build-system) (inputs `(("fuse" ,fuse) From cda20b86cf1a18dcb2bf715dfc0ddf70dd9e8fcf Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 25 May 2016 18:17:34 +0300 Subject: [PATCH 049/277] gnu: efl: Update to 1.17.1. * gnu/packages/enlightenment.scm (efl): Update to 1.17.1. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index cc7f788c9e..c075cf977a 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -54,7 +54,7 @@ (define-public efl (package (name "efl") - (version "1.17.0") + (version "1.17.1") (source (origin (method url-fetch) (uri (string-append @@ -62,7 +62,7 @@ version ".tar.xz")) (sha256 (base32 - "1zisnz4x54mn9sm46kcr571faqnazkcglyf0lbz19l34syx40df1")))) + "0d58bhvwg7c5hp07wywlwnqi01k4jhmpgac7gkx9lil1x6kmahqs")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) From fac5065b8f18ba9da857bde070165adcfe27c326 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 25 May 2016 18:18:34 +0300 Subject: [PATCH 050/277] gnu: elementary: Update to 1.17.1. * gnu/packages/enlightenment.scm (elementary): Update to 1.17.1. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index c075cf977a..1f40a8a866 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -137,7 +137,7 @@ removable devices or support for multimedia.") (define-public elementary (package (name "elementary") - (version "1.17.0") + (version "1.17.1") (source (origin (method url-fetch) (uri @@ -145,7 +145,7 @@ removable devices or support for multimedia.") "elementary/elementary-" version ".tar.xz")) (sha256 (base32 - "0avb0d6nk4d88l81c2j6py13vdfnvg080ycw2y3qvawyjf1mhska")))) + "149xjq4z71l44w1kd8zks9b2g0wjc9656w46hzd27b58afj1dqc5")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) From 68bf2f9d6b96dd60713290f49aa914d6540fbb0b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 25 May 2016 18:19:41 +0300 Subject: [PATCH 051/277] gnu: enlightenment: Update to 0.20.8. * gnu/packages/enlightenment.scm (enlightenment): Update to 0.20.8. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 1f40a8a866..c487fc1020 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -273,7 +273,7 @@ Libraries with some extra bells and whistles.") (define-public enlightenment (package (name "enlightenment") - (version "0.20.6") + (version "0.20.8") (source (origin (method url-fetch) (uri @@ -281,7 +281,7 @@ Libraries with some extra bells and whistles.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "11ahll68nlci214ka05whp5l32hy9lznmcdfqx3hxsmq2p7bl7zj")))) + "17fi3frq4a73i0x7v7244g9m0fbjfamw0cfb4zhqs2rp1z8nq1iy")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-mount-eeze"))) From 25e0037a2925d56b54ece6e42da838c5be656a52 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 25 May 2016 21:48:22 +0300 Subject: [PATCH 052/277] gnu: randomjungle: Add gfortran:lib to native-inputs. * gnu/packages/machine-learning.scm (randomjungle)[native-inputs]: Add gfortran:lib. --- gnu/packages/machine-learning.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index cbc7509416..218c50cf81 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -138,7 +139,8 @@ classification.") ("libxml2" ,libxml2) ("zlib" ,zlib))) (native-inputs - `(("gfortran" ,gfortran))) + `(("gfortran" ,gfortran) + ("gfortran:lib" ,gfortran "lib"))) (home-page "http://www.imbs-luebeck.de/imbs/de/node/227/") (synopsis "Implementation of the Random Forests machine learning method") (description From 1fd11c92592eb4e63d6044c7c840dcb69b9e65e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 25 May 2016 15:22:36 +0200 Subject: [PATCH 053/277] grafts: Create only one grafted variant of each derivation. Currently, with several grafts applicable to Inkscape, this makes: guix gc -R $(guix build inkscape -d) | wc -l go from 2376 to 2266 (4.6%). * guix/grafts.scm (cumulative-grafts): Pass 'graft-derivation/shallow' the subset of GRAFTS that applies to DRV. --- guix/grafts.scm | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/guix/grafts.scm b/guix/grafts.scm index 6bec999ad2..53e697688a 100644 --- a/guix/grafts.scm +++ b/guix/grafts.scm @@ -252,16 +252,23 @@ derivations to the corresponding set of grafts." (deps ;one or more dependencies (mlet %state-monad ((grafts (mapm %state-monad dependency-grafts deps)) (cache (current-state))) - (let* ((grafts (delete-duplicates (concatenate grafts) equal?)) - (origins (map graft-origin-file-name grafts))) - (if (find (cut member <> deps) origins) - (let* ((new (graft-derivation/shallow store drv grafts - #:guile guile - #:system system)) - (grafts (cons (graft (origin drv) (replacement new)) - grafts))) - (return/cache cache grafts)) - (return/cache cache grafts)))))))))) + (let* ((grafts (delete-duplicates (concatenate grafts) equal?)) + (origins (map graft-origin-file-name grafts))) + (match (filter (lambda (graft) + (member (graft-origin-file-name graft) deps)) + grafts) + (() + (return/cache cache grafts)) + ((applicable ..1) + ;; Use APPLICABLE, the subset of GRAFTS that is really + ;; applicable to DRV, to avoid creating several identical + ;; grafted variants of DRV. + (let* ((new (graft-derivation/shallow store drv applicable + #:guile guile + #:system system)) + (grafts (cons (graft (origin drv) (replacement new)) + grafts))) + (return/cache cache grafts)))))))))))) (define* (graft-derivation store drv grafts #:key (guile (%guile-for-build)) From 5bed95efd496d7a13dcc6dbde517a11ce5a44870 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 26 May 2016 08:59:22 +0300 Subject: [PATCH 054/277] gnu: aria2: Update to 1.23.0. * gnu/packages/bittorrent.scm (aria2): Update to 1.23.0. [inputs]: Move cppunit ... [native-inputs]: ... to here. [home-page]: Update to new Github website. --- gnu/packages/bittorrent.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index d8252c8b37..409731d1d6 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -207,7 +207,7 @@ interface, for the Transmission BitTorrent daemon.") (define-public aria2 (package (name "aria2") - (version "1.22.0") + (version "1.23.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/tatsuhiro-t/aria2/" @@ -215,7 +215,7 @@ interface, for the Transmission BitTorrent daemon.") name "-" version ".tar.xz")) (sha256 (base32 - "12agwdvvkr34wqhyyfp418dj0k7nbr297qmcd3wj5kkn7brv6gxc")))) + "14qz7686zxnhbaqj6l1hqpkykhpygm74h2mzwhh13gqmcj38alaq")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-libaria2") @@ -230,10 +230,10 @@ interface, for the Transmission BitTorrent daemon.") (("CPPUNIT_TEST_SUITE_REGISTRATION\\(LpdMessageReceiverTest\\);" text) (string-append "// " text)))))))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("cppunit" ,cppunit) ; for the tests + ("pkg-config" ,pkg-config))) (inputs `(("c-ares" ,c-ares) - ("cppunit" ,cppunit) ; for the tests ("gnutls" ,gnutls) ("gmp" ,gmp) ("libssh2" ,libssh2) @@ -241,7 +241,7 @@ interface, for the Transmission BitTorrent daemon.") ("nettle" ,nettle) ("sqlite" ,sqlite) ("zlib" ,zlib))) - (home-page "http://aria2.sourceforge.net/") + (home-page "https://aria2.github.io/") (synopsis "Utility for parallel downloading files") (description "Aria2 is a lightweight, multi-protocol & multi-source command-line From 8f9ac90182c022c69600f17ef9c1149e029bc301 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Tue, 24 May 2016 21:18:53 +0200 Subject: [PATCH 055/277] gnu: Rename texlive module to tex. * gnu/local.mk (GNU_SYSTEM_MODULES): Rename texlive.scm to tex.scm. * gnu/packages/texlive.scm: Rename file to tex.scm. * gnu/packages/tex.scm: Renamed from texlive.scm. * gnu/packages/algebra.scm: Adjust accordingly. * gnu/packages/docbook.scm: Likewise. * gnu/packages/engineering.scm: Likewise. * gnu/packages/gettext.scm: Likewise. * gnu/packages/gnome.scm: Likewise. * gnu/packages/lisp.scm: Likewise. * gnu/packages/maths.scm: Likewise. * gnu/packages/music.scm: Likewise. * gnu/packages/ocaml.scm: Likewise. * gnu/packages/photo.scm: Likewise. * gnu/packages/plotutils.scm: Likewise. * gnu/packages/python.scm: Likewise. * gnu/packages/scheme.scm: Likewise. --- gnu/local.mk | 2 +- gnu/packages/algebra.scm | 2 +- gnu/packages/docbook.scm | 2 +- gnu/packages/engineering.scm | 2 +- gnu/packages/gettext.scm | 2 +- gnu/packages/gnome.scm | 2 +- gnu/packages/lisp.scm | 2 +- gnu/packages/maths.scm | 2 +- gnu/packages/music.scm | 2 +- gnu/packages/ocaml.scm | 2 +- gnu/packages/photo.scm | 2 +- gnu/packages/plotutils.scm | 2 +- gnu/packages/python.scm | 2 +- gnu/packages/scheme.scm | 2 +- gnu/packages/{texlive.scm => tex.scm} | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) rename gnu/packages/{texlive.scm => tex.scm} (99%) diff --git a/gnu/local.mk b/gnu/local.mk index 9cd9699499..d836a88d90 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -325,7 +325,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/telephony.scm \ %D%/packages/terminals.scm \ %D%/packages/texinfo.scm \ - %D%/packages/texlive.scm \ + %D%/packages/tex.scm \ %D%/packages/textutils.scm \ %D%/packages/time.scm \ %D%/packages/tls.scm \ diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 53f6f3e3d2..9518e65db6 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -37,7 +37,7 @@ #:use-module (gnu packages flex) #:use-module (gnu packages python) #:use-module (gnu packages tcsh) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages xiph) #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index 2bd86fe5d2..b8a8ba69dc 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -23,7 +23,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages imagemagick) #:use-module (gnu packages inkscape) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages python) #:use-module (gnu packages base) #:use-module (gnu packages xml) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index c519ca59e7..46737157f3 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -52,7 +52,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) #:use-module (gnu packages tcl) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (srfi srfi-1)) (define-public librecad diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm index 50d480a4ad..34338f936b 100644 --- a/gnu/packages/gettext.scm +++ b/gnu/packages/gettext.scm @@ -28,7 +28,7 @@ #:use-module (guix build-system perl) #:use-module (gnu packages docbook) #:use-module (gnu packages perl) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages xml)) ;; Use that name to avoid clashes with Guile's 'gettext' procedure. diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c5d53d1e0a..04d9bb75bd 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -97,7 +97,7 @@ #:use-module (gnu packages geeqie) #:use-module (gnu packages gl) #:use-module (gnu packages compression) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages webkit) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 85f3f3cebb..e349907f14 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -26,7 +26,7 @@ #:use-module (guix packages) #:use-module (gnu packages readline) #:use-module (gnu packages texinfo) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages m4) #:use-module (guix download) #:use-module (guix git-download) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 19ed44f2c9..80e48ca58d 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -81,7 +81,7 @@ #:use-module (gnu packages tcsh) #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages tls) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index f2787ee2d1..50f9a70810 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -85,7 +85,7 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages web) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index aafae51d3f..a0a4b936db 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -38,7 +38,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages compression) #:use-module (gnu packages xorg) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages ghostscript) #:use-module (gnu packages lynx) #:use-module (gnu packages perl) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 2592565a36..4b21926105 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -43,7 +43,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages readline) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages web) #:use-module (gnu packages xfig) #:use-module (gnu packages xml)) diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index 5871fb0b55..3edb25a42a 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -38,7 +38,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages texinfo) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages compression) #:use-module (gnu packages)) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8bd219d297..dc54bff4b5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -68,7 +68,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages readline) #:use-module (gnu packages statistics) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index c378dc3349..6baee2b309 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -35,7 +35,7 @@ #:use-module (gnu packages databases) #:use-module (gnu packages emacs) #:use-module (gnu packages texinfo) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages pkg-config) diff --git a/gnu/packages/texlive.scm b/gnu/packages/tex.scm similarity index 99% rename from gnu/packages/texlive.scm rename to gnu/packages/tex.scm index cbcb6c87fc..eab85f15bf 100644 --- a/gnu/packages/texlive.scm +++ b/gnu/packages/tex.scm @@ -18,7 +18,7 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu packages texlive) +(define-module (gnu packages tex) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) From 4791876ce15fd4dd78c6688059fc6de7b61eee02 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Tue, 24 May 2016 21:23:31 +0200 Subject: [PATCH 056/277] gnu: Add texmaker. * gnu/packages/tex.scm (texmaker): New variable. --- gnu/packages/tex.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index eab85f15bf..c1ab8b3f5c 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2016 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -40,6 +41,7 @@ #: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 ruby) #:use-module (gnu packages tcsh) #:use-module (gnu packages base) @@ -387,3 +389,40 @@ to manage bibliographic references. Automatic execution of dvips to produce PostScript documents is also included, as well as usage of pdfLaTeX to produce PDF documents.") (license license:gpl2+))) + +(define-public texmaker + (package + (name "texmaker") + (version "4.5") + (source (origin + (method url-fetch) + (uri (string-append "http://www.xm1math.net/texmaker/texmaker-" + version ".tar.bz2")) + (sha256 + (base32 + "056njk6j8wma23mlp7xa3rgfaxx0q8ynwx8wkmj7iy0b85p9ds9c")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Qt has its own configuration utility. + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (zero? (system* "qmake" + (string-append "PREFIX=" out) + (string-append "DESKTOPDIR=" out + "/share/applications") + (string-append "ICONDIR=" out "/share/pixmaps") + "texmaker.pro")))))))) + (inputs + `(("poppler-qt5" ,poppler-qt5) + ("qt" ,qt) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.xm1math.net/texmaker/") + (synopsis "LaTeX editor") + (description "Texmaker is a program that integrates many tools needed to +develop documents with LaTeX, in a single application.") + (license license:gpl2+))) From 38efbcbb7929b2cfb12efae60acc2bfb8bb2c988 Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Tue, 24 May 2016 20:42:59 +0300 Subject: [PATCH 057/277] gnu: hurd: Add hurd-core-headers package. * gnu/packages/hurd.scm (hurd-core-headers): New variable. --- gnu/packages/hurd.scm | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index 7a0a158899..2b2e162107 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis +;;; Copyright © 2014, 2015, 2016 Manolis Fragkiskos Ragkousis ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +22,7 @@ #:use-module (guix packages) #:use-module (gnu packages) #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (gnu packages flex) #:use-module (gnu packages bison) #:use-module (gnu packages perl) @@ -185,3 +186,28 @@ Library and other user programs.") "This package provides libihash, needed to build the GNU C Library for GNU/Hurd.") (license gpl2+))) + +(define-public hurd-core-headers + (package + (name "hurd-core-headers") + (version (package-version hurd-headers)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs `(("gnumach-headers" ,gnumach-headers) + ("hurd-headers" ,hurd-headers) + ("hurd-minimal" ,hurd-minimal))) + (synopsis "Union of the Hurd headers and libraries") + (description + "This package contains the union of the Mach and Hurd headers and the +Hurd-minimal package which are needed for both glibc and GCC.") + (home-page (package-home-page hurd-headers)) + (license (package-license hurd-headers)))) From 70458ed510d8bae5b5bd50e2aabf607b20198cf4 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Thu, 26 May 2016 14:22:26 +0200 Subject: [PATCH 058/277] doc: Fix typo. * doc/guix.texi (Derivations): Add 's' to "contain". --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 1b47193e1f..bb75425a9f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3082,7 +3082,7 @@ Store Monad}). @cindex derivations Low-level build actions and the environment in which they are performed -are represented by @dfn{derivations}. A derivation contain the +are represented by @dfn{derivations}. A derivation contains the following pieces of information: @itemize From 6b0686fa9350cad5aa5cd85abd6721f4c12cc0ba Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 24 May 2016 12:47:49 -0400 Subject: [PATCH 059/277] gnu: Add autoconf-archive. * gnu/packages/autotools.scm (autoconf-archive): New variable. --- gnu/packages/autotools.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index ddc628d005..de7f1f6d15 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Mathieu Lirzin ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2016 David Thompson ;;; ;;; This file is part of GNU Guix. ;;; @@ -159,6 +160,27 @@ exec ~a --no-auto-compile \"$0\" \"$@\" port))) (chmod (string-append bin "/autoconf") #o555))))))) +(define-public autoconf-archive + (package + (name "autoconf-archive") + (version "2016.03.20") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/autoconf-archive/autoconf-archive-" + version ".tar.xz")) + (sha256 + (base32 + "0dz4fnc723jqn3by22ds5fys7g31apzm1r9allldvva0yvzjxyw8")))) + (build-system gnu-build-system) + (home-page "https://www.gnu.org/software/autoconf-archive") + (synopsis "Collection of freely reusable Autoconf macros") + (description + "Autoconf Archive is a collection of over 450 new macros for Autoconf, +greatly expanding the domain of its functionality. These macros have been +contributed as free software by the community.") + (license gpl3+))) + (define-public autobuild (package (name "autobuild") From 9698f4b74bc37439971e4b040421cc591eb1b9b7 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 24 May 2016 12:53:18 -0400 Subject: [PATCH 060/277] gnu: Add mitlm. * gnu/packages/speech.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/speech.scm | 51 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 gnu/packages/speech.scm diff --git a/gnu/local.mk b/gnu/local.mk index d836a88d90..6f56039b7e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -311,6 +311,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/slang.scm \ %D%/packages/slim.scm \ %D%/packages/smalltalk.scm \ + %D%/packages/speech.scm \ %D%/packages/ssh.scm \ %D%/packages/stalonetray.scm \ %D%/packages/statistics.scm \ diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm new file mode 100644 index 0000000000..95c7591480 --- /dev/null +++ b/gnu/packages/speech.scm @@ -0,0 +1,51 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 David Thompson +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages speech) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages gcc)) + +(define-public mitlm + (package + (name "mitlm") + (version "0.4.1") + ;; No official release tarballs, so for now we use the one from Debian + ;; that is maintained by one of the project developers. + ;; + ;; See: https://github.com/mitlm/mitlm/issues/54 + (source (origin + (method url-fetch) + (uri (string-append "mirror://debian/pool/main/m/mitlm/mitlm_" + version ".orig.tar.gz")) + (sha256 + (base32 + "12m09xxx8jbir9cnzzaysvni5sfijpfj96z1x1520qqvmpc8lmn7")))) + (build-system gnu-build-system) + (native-inputs + `(("gfortran" ,gfortran))) + (synopsis "The MIT Language Modeling toolkit") + (description "The MIT Language Modeling (MITLM) toolkit is a set of +tools designed for the efficient estimation of statistical n-gram language +models involving iterative parameter estimation. It achieves much of its +efficiency through the use of a compact vector representation of n-grams.") + (home-page "https://github.com/mitlm/mitlm") + (license license:expat))) From ac0a7b0fbd28153e2d4cc8b872ee4cc2e92579b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2016 12:15:04 +0200 Subject: [PATCH 061/277] substitute: Internationalize the "Downloading" message. * guix/scripts/substitute.scm (process-substitution): I18n "Downloading" message. --- guix/scripts/substitute.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 5cdc55f2b2..81ce770dc5 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -889,7 +889,11 @@ DESTINATION as a nar file. Verify the substitute against ACL." ;; Tell the daemon what the expected hash of the Nar itself is. (format #t "~a~%" (narinfo-hash narinfo)) - (format (current-error-port) "Downloading ~a~:[~*~; (~a installed)~]...~%" + (format (current-error-port) + ;; TRANSLATORS: The second part of this message looks like + ;; "(4.1MiB installed)"; it shows the size of the package once + ;; installed. + (_ "Downloading ~a~:[~*~; (~a installed)~]...~%") (store-path-abbreviation store-item) ;; Use the Nar size as an estimate of the installed size. (narinfo-size narinfo) From f01c461994307c5e19ff14bc695cdf1d813880e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2016 16:59:29 +0200 Subject: [PATCH 062/277] nls: Adjust to texlive.scm renaming. * po/packages/POTFILES.in: Adjust to texlive.scm rename in commit 8f9ac90182c022c69600f17ef9c1149e029bc301. --- po/packages/POTFILES.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/po/packages/POTFILES.in b/po/packages/POTFILES.in index 60c6ab32d5..29816f8b80 100644 --- a/po/packages/POTFILES.in +++ b/po/packages/POTFILES.in @@ -49,8 +49,8 @@ gnu/packages/scheme.scm gnu/packages/search.scm gnu/packages/serveez.scm gnu/packages/telephony.scm +gnu/packages/tex.scm gnu/packages/texinfo.scm -gnu/packages/texlive.scm gnu/packages/textutils.scm gnu/packages/version-control.scm gnu/packages/webkit.scm From 2ca55f939ca32f506a307a00f07eb2b027cfb812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2016 22:51:12 +0200 Subject: [PATCH 063/277] gnu: rush: Fix CVE-2013-6889. * gnu/packages/patches/rush-CVE-2013-6889.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/rush.scm (rush): Use it. --- gnu/local.mk | 1 + gnu/packages/patches/rush-CVE-2013-6889.patch | 23 +++++++++++++++++++ gnu/packages/rush.scm | 5 ++-- 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/rush-CVE-2013-6889.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6f56039b7e..f36389f819 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -717,6 +717,7 @@ dist_patch_DATA = \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rsem-makefile.patch \ %D%/packages/patches/ruby-symlinkfix.patch \ + %D%/packages/patches/rush-CVE-2013-6889.patch \ %D%/packages/patches/sed-hurd-path-max.patch \ %D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scotch-test-threading.patch \ diff --git a/gnu/packages/patches/rush-CVE-2013-6889.patch b/gnu/packages/patches/rush-CVE-2013-6889.patch new file mode 100644 index 0000000000..862528a12c --- /dev/null +++ b/gnu/packages/patches/rush-CVE-2013-6889.patch @@ -0,0 +1,23 @@ +commit 00bdccd429517f12dbf37ab4397ddec3e51a2738 +Author: Mats Erik Andersson +Date: Mon Jan 20 13:33:52 2014 +0200 + + Protect against CVE-2013-6889 (tiny change). + + Reset the effective user identification in testing mode. + +diff --git a/src/rush.c b/src/rush.c +index 45d737a..dc6518e 100644 +--- a/src/rush.c ++++ b/src/rush.c +@@ -980,6 +980,10 @@ main(int argc, char **argv) + } else if (argc > optind) + die(usage_error, NULL, _("invalid command line")); + ++ /* Relinquish root privileges in test mode */ ++ if (lint_option) ++ setuid(getuid()); ++ + if (test_user_name) { + struct passwd *pw = getpwnam(test_user_name); + if (!pw) diff --git a/gnu/packages/rush.scm b/gnu/packages/rush.scm index 6926f68787..cf9e49a7e3 100644 --- a/gnu/packages/rush.scm +++ b/gnu/packages/rush.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,7 +36,8 @@ (sha256 (base32 "0fh0gbbp0iiq3wbkf503xb40r8ljk42vyj9bnlflbz82d6ipy1rm")) - (patches (search-patches "cpio-gets-undeclared.patch")))) + (patches (search-patches "cpio-gets-undeclared.patch" + "rush-CVE-2013-6889.patch")))) (build-system gnu-build-system) (home-page "http://www.gnu.org/software/rush/") (synopsis "Restricted user (login) shell") From 159a5e019767a7f85bef355cfcfc24fd5c7162d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2016 22:56:51 +0200 Subject: [PATCH 064/277] gnu: isc-dhcp: Specify CPE name. * gnu/packages/admin.scm (isc-dhcp)[properties]: New field. --- gnu/packages/admin.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 633606e840..d954035edb 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -619,7 +619,8 @@ connection alive.") "ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a reference implementation of all aspects of DHCP, through a suite of DHCP tools: server, client, and relay agent.") - (license license:isc)))) + (license license:isc) + (properties '((cpe-name . "dhcp")))))) (define-public libpcap (package From 3af7a7a879b91c59fcd5a025ac55db2c69da4fb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2016 23:00:08 +0200 Subject: [PATCH 065/277] cve: Include the 3 previous years of vulnerabilities. * guix/cve.scm (fetch-vulnerabilities): Add 'format' call. (current-vulnerabilities): Include the 3 previous years. --- guix/cve.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/guix/cve.scm b/guix/cve.scm index 3956864938..2167028ede 100644 --- a/guix/cve.scm +++ b/guix/cve.scm @@ -25,6 +25,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-19) + #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (ice-9 vlist) @@ -179,6 +180,7 @@ the given TTL (fetch from the NIST web site when TTL has expired)." (lambda (port) ;; XXX: The SSAX "error port" is used to send pointless warnings such as ;; "warning: Skipping PI". Turn that off. + (format (current-error-port) "fetching CVE database for ~a...~%" year) (parameterize ((current-ssax-error-port (%make-void-port "w"))) (xml->vulnerabilities port))))) @@ -214,9 +216,19 @@ the given TTL (fetch from the NIST web site when TTL has expired)." (define (current-vulnerabilities) "Return the current list of Common Vulnerabilities and Exposures (CVE) as published by the US NIST." - (append-map fetch-vulnerabilities - (list %past-year %current-year) - (list %past-year-ttl %current-year-ttl))) + (let ((past-years (unfold (cut > <> 3) + (lambda (n) + (- %current-year n)) + 1+ + 1)) + (past-ttls (unfold (cut > <> 3) + (lambda (n) + (* n %past-year-ttl)) + 1+ + 1))) + (append-map fetch-vulnerabilities + (cons %current-year past-years) + (cons %current-year-ttl past-ttls)))) (define (vulnerabilities->lookup-proc vulnerabilities) "Return a lookup procedure built from VULNERABILITIES that takes a package From 219b45567a06c8b553459821ef64ff35eba2169d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2016 23:37:54 +0200 Subject: [PATCH 066/277] gnu: qemu: Disable parallel tests again. * gnu/packages/qemu.scm (qemu)[arguments]: Re-add #:parallel-tests? #f, which had been removed in a2ccaa0d790004c1c303a4421f7494ef73b65bd5. --- gnu/packages/qemu.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index 6dd6ce4d76..89741eeb6d 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2015, 2016 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; @@ -65,7 +65,11 @@ "1v1lhhd6m59hqgmiz100g779rjq70pik5v4b3g936ci73djlmb69")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-replace + '(;; Running tests in parallel can occasionally lead to failures, like: + ;; boot_sector_test: assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead) + #:parallel-tests? #f + + #:phases (alist-replace 'configure (lambda* (#:key inputs outputs (configure-flags '()) #:allow-other-keys) From 05051e8bb1ced2b34b7c7813cad70794c9792297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2016 23:39:46 +0200 Subject: [PATCH 067/277] gnu: qemu: Use 'modify-phases'. * gnu/packages/qemu.scm (qemu)[arguments]: Use 'modify-phases'. --- gnu/packages/qemu.scm | 89 +++++++++++++++++++++---------------------- 1 file changed, 43 insertions(+), 46 deletions(-) diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index 89741eeb6d..dcba27936a 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -69,55 +69,52 @@ ;; boot_sector_test: assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead) #:parallel-tests? #f - #:phases (alist-replace - 'configure - (lambda* (#:key inputs outputs (configure-flags '()) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs (configure-flags '()) #:allow-other-keys) - ;; The `configure' script doesn't understand some of the - ;; GNU options. Thus, add a new phase that's compatible. - (let ((out (assoc-ref outputs "out"))) - (setenv "SHELL" (which "bash")) + ;; The `configure' script doesn't understand some of the + ;; GNU options. Thus, add a new phase that's compatible. + (let ((out (assoc-ref outputs "out"))) + (setenv "SHELL" (which "bash")) - ;; While we're at it, patch for tests. - (substitute* "tests/libqtest.c" - (("/bin/sh") (which "sh"))) - - ;; The binaries need to be linked against -lrt. - (setenv "LDFLAGS" "-lrt") - (zero? - (apply system* - `("./configure" - ,(string-append "--cc=" (which "gcc")) - "--disable-debug-info" ; save build space - "--enable-virtfs" ; just to be sure - ,(string-append "--prefix=" out) - ,@configure-flags))))) - (alist-cons-after - 'install 'install-info - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Install the Info manual, unless Texinfo is missing. - (or (not (assoc-ref inputs "texinfo")) - (let ((out (assoc-ref outputs "out"))) - (and (zero? (system* "make" "info")) - (let ((infodir (string-append out "/share/info"))) - (mkdir-p infodir) - (for-each (lambda (info) - (copy-file - info - (string-append infodir "/" info))) - (find-files "." "\\.info$")) - #t))))) - (alist-cons-before - 'check 'disable-test-qga - (lambda _ - (substitute* "tests/Makefile" - ;; Comment out the test-qga test, which needs /sys and - ;; fails within the build environment. - (("check-unit-.* tests/test-qga" all) - (string-append "# " all))) - #t) - %standard-phases))))) + ;; While we're at it, patch for tests. + (substitute* "tests/libqtest.c" + (("/bin/sh") (which "sh"))) + ;; The binaries need to be linked against -lrt. + (setenv "LDFLAGS" "-lrt") + (zero? + (apply system* + `("./configure" + ,(string-append "--cc=" (which "gcc")) + "--disable-debug-info" ; save build space + "--enable-virtfs" ; just to be sure + ,(string-append "--prefix=" out) + ,@configure-flags)))))) + (add-after 'install 'install-info + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Install the Info manual, unless Texinfo is missing. + (or (not (assoc-ref inputs "texinfo")) + (let ((out (assoc-ref outputs "out"))) + (and (zero? (system* "make" "info")) + (let ((infodir (string-append out "/share/info"))) + (mkdir-p infodir) + (for-each (lambda (info) + (copy-file + info + (string-append infodir "/" info))) + (find-files "." "\\.info$")) + #t)))))) + (add-before 'check 'disable-test-qga + (lambda _ + (substitute* "tests/Makefile" + ;; Comment out the test-qga test, which needs /sys and + ;; fails within the build environment. + (("check-unit-.* tests/test-qga" all) + (string-append "# " all))) + #t))))) (inputs ; TODO: Add optional inputs. `(("sdl" ,sdl) ("mesa" ,mesa) From 8489d79d1b457c1da2ee5e43dda8c85e1bda080d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2016 23:40:27 +0200 Subject: [PATCH 068/277] gnu: qemu: Use 'install-file' instead of 'copy-file'. * gnu/packages/qemu.scm (qemu)[arguments]: Use 'install-file'. --- gnu/packages/qemu.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index dcba27936a..4108597b65 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -102,9 +102,7 @@ (let ((infodir (string-append out "/share/info"))) (mkdir-p infodir) (for-each (lambda (info) - (copy-file - info - (string-append infodir "/" info))) + (install-file info infodir)) (find-files "." "\\.info$")) #t)))))) (add-before 'check 'disable-test-qga From de3bbf654337782d2d9e358b848b9ded6cb06b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 26 May 2016 23:57:15 +0200 Subject: [PATCH 069/277] gnu: qemu: Make tests more verbose. * gnu/packages/qemu.scm (qemu)[arguments]: Add 'make-gtester-verbose' phase. --- gnu/packages/qemu.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index 4108597b65..4d78f9b086 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -105,6 +105,10 @@ (install-file info infodir)) (find-files "." "\\.info$")) #t)))))) + (add-before 'check 'make-gtester-verbose + (lambda _ + ;; Make GTester verbose to facilitate investigation upon failure. + (setenv "V" "1"))) (add-before 'check 'disable-test-qga (lambda _ (substitute* "tests/Makefile" From 0a20f402402799810f86b74b08f76f2006859b36 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 07:03:52 +0300 Subject: [PATCH 070/277] gnu: moreutils: Update to 0.58. * gnu/packages/moreutils.scm (moreutils): Update to 0.58. --- gnu/packages/moreutils.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/moreutils.scm b/gnu/packages/moreutils.scm index eebb20790d..a98fe33187 100644 --- a/gnu/packages/moreutils.scm +++ b/gnu/packages/moreutils.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +29,7 @@ (define-public moreutils (package (name "moreutils") - (version "0.57") + (version "0.58") (source (origin (method url-fetch) (uri (string-append @@ -36,7 +37,7 @@ version ".orig.tar.gz")) (sha256 (base32 - "078dpkwwwrv8hxnylbc901kib2d1rr3hsja37j6dlpjfcfq58z9s")))) + "02n00vqp6jxbxr5v3rdjxmzp6kxxjdkjgcclam6wrw8qamsbljww")))) (build-system gnu-build-system) (inputs `(("perl" ,perl) ("libxml2" ,libxml2) From be1e35055b479291fe538a5280f67e9b3c03e81f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 07:06:02 +0300 Subject: [PATCH 071/277] gnu: moreutils: Use 'modify-phases'. * gnu/packages/moreutils.scm (moreutils)[arguments]: Use 'modify-phases'. --- gnu/packages/moreutils.scm | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/gnu/packages/moreutils.scm b/gnu/packages/moreutils.scm index a98fe33187..79e2a42762 100644 --- a/gnu/packages/moreutils.scm +++ b/gnu/packages/moreutils.scm @@ -46,18 +46,17 @@ ("docbook-xsl" ,docbook-xsl))) (arguments `(#:phases - (alist-replace - 'configure - (lambda* (#:key inputs #:allow-other-keys) - (use-modules (srfi srfi-1)) - (substitute* "Makefile" - (("/usr/share/xml/.*/docbook.xsl") - (let* ((docbook-xsl (assoc-ref inputs "docbook-xsl")) - (files (find-files docbook-xsl "^docbook\\.xsl$"))) - (find (lambda (file) - (string-suffix? "/manpages/docbook.xsl" file)) - files))))) - %standard-phases) + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (use-modules (srfi srfi-1)) + (substitute* "Makefile" + (("/usr/share/xml/.*/docbook.xsl") + (let* ((docbook-xsl (assoc-ref inputs "docbook-xsl")) + (files (find-files docbook-xsl "^docbook\\.xsl$"))) + (find (lambda (file) + (string-suffix? "/manpages/docbook.xsl" file)) + files))))))) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "CC=gcc"))) From 847534e1d3135eea8095b32d3f0bb4c72835d03e Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 26 May 2016 12:09:36 +0300 Subject: [PATCH 072/277] gnu: magit: Update to 2.7.0. * gnu/packages/emacs.scm (magit): Update to 2.7.0. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 967f5832bb..828bc9f349 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -437,7 +437,7 @@ on stdout instead of using a socket as the Emacsclient does.") (define-public magit (package (name "magit") - (version "2.6.2") + (version "2.7.0") (source (origin (method url-fetch) (uri (string-append @@ -445,7 +445,7 @@ on stdout instead of using a socket as the Emacsclient does.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "0im1jrqw29g5anrrjflj6b2gpyqkvpghnq8zvywxyhmjwzar4rn7")))) + "1kzd8k2n0lcr04jvn5b6d29zf765mxgshfhzflkzndwmvyxmlqpl")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) ("emacs" ,emacs-minimal))) From a8ce82aca236fa6e6c05f90d6751a151ec2c93e6 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 26 May 2016 12:09:51 +0300 Subject: [PATCH 073/277] gnu: emacs-async: Update to 1.9. * gnu/packages/emacs.scm (emacs-async): Update to 1.9. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 828bc9f349..7d14db3d1e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -984,14 +984,14 @@ mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.") (define-public emacs-async (package (name "emacs-async") - (version "1.6") + (version "1.9") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/async-" version ".tar")) (sha256 (base32 - "17psvz75n42x33my967wkgi7r0blx46n3jdv510j0z5jswv66039")))) + "1ip5nc8xyln5szvqwp6wqva9xr84pn8ssn3nnphrszr19y4js2bm")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/async.html") (synopsis "Asynchronous processing in Emacs") From d345491ab4896dcf4f492bc4c8c7df2387991071 Mon Sep 17 00:00:00 2001 From: humanitiesNerd Date: Thu, 26 May 2016 01:31:30 +0200 Subject: [PATCH 074/277] gnu: Add emacs-epl. * gnu/packages/emacs.scm (emacs-epl): New variable. Signed-off-by: Alex Kost --- gnu/packages/emacs.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 7d14db3d1e..5d6db5ae11 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1684,3 +1684,25 @@ well as completely new features.") refactoring for the @uref{http://clojure.org, Clojure programming language}. It is recommended to use @code{clojure-mode} with paredit or smartparens.") (license license:gpl3+))) + +(define-public emacs-epl + (package + (name "emacs-epl") + (version "0.8") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/cask/epl/archive/" + version ".tar.gz")) + (sha256 + (base32 + "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc")))) + (build-system emacs-build-system) + (home-page "http://github.com/cask/epl") + (synopsis "Emacs Package Library") + (description + "A package management library for Emacs, based on @code{package.el}. + +The purpose of this library is to wrap all the quirks and hassle of +@code{package.el} into a sane API.") + (license license:gpl3+))) From dab2472c6a24630db7c524cb997d358a33820ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 27 May 2016 10:29:10 +0200 Subject: [PATCH 075/277] download: Use URI objects for content-addressed mirrors. This fixes a bug whereby 'http-fetch' would be passed a string instead of a URI object. * guix/build/download.scm (url-fetch): Rename 'content-addressed-urls' to 'content-addressed-uris', and call 'string->uri'. --- guix/build/download.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/guix/build/download.scm b/guix/build/download.scm index 7741726c41..ef515efdbf 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -719,11 +719,11 @@ or #f." uri) #f))) - (define content-addressed-urls + (define content-addressed-uris (append-map (lambda (make-url) (filter-map (match-lambda ((hash-algo . hash) - (make-url hash-algo hash))) + (string->uri (make-url hash-algo hash)))) hashes)) content-addressed-mirrors)) @@ -733,7 +733,7 @@ or #f." (setvbuf (current-error-port) _IOLBF) - (let try ((uri (append uri content-addressed-urls))) + (let try ((uri (append uri content-addressed-uris))) (match uri ((uri tail ...) (or (fetch uri file) From b18ede2704ca1b1bdfa5a0d5655bee90ef05fa0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 27 May 2016 10:33:23 +0200 Subject: [PATCH 076/277] download: Default to a 10s connection establishment timeout. * guix/build/download.scm (ftp-fetch): Add #:timeout and pass it to 'ftp-open'. (http-fetch): Add #:timeout and pass it to 'open-connection-for-uri' and in recursive calls. (url-fetch): Add #:timeout and pass it to 'http-fetch' and 'ftp-fetch'. --- guix/build/download.scm | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/guix/build/download.scm b/guix/build/download.scm index ef515efdbf..bd011ce878 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -234,9 +234,10 @@ and 'guix publish', something like (string-drop path 33) path))) -(define (ftp-fetch uri file) - "Fetch data from URI and write it to FILE. Return FILE on success." - (let* ((conn (ftp-open (uri-host uri))) +(define* (ftp-fetch uri file #:key timeout) + "Fetch data from URI and write it to FILE. Return FILE on success. Bail +out if the connection could not be established in less than TIMEOUT seconds." + (let* ((conn (ftp-open (uri-host uri) #:timeout timeout)) (size (false-if-exception (ftp-size conn (uri-path uri)))) (in (ftp-retr conn (basename (uri-path uri)) (dirname (uri-path uri))))) @@ -585,8 +586,10 @@ Return the resulting target URI." #:query (uri-query ref) #:fragment (uri-fragment ref))))) -(define (http-fetch uri file) - "Fetch data from URI and write it to FILE. Return FILE on success." +(define* (http-fetch uri file #:key timeout) + "Fetch data from URI and write it to FILE; when TIMEOUT is true, bail out if +the connection could not be established in less than TIMEOUT seconds. Return +FILE on success." (define post-2.0.7? (or (> (string->number (major-version)) 2) @@ -605,7 +608,7 @@ Return the resulting target URI." (Accept . "*/*"))) (let*-values (((connection) - (open-connection-for-uri uri)) + (open-connection-for-uri uri #:timeout timeout)) ((resp bv-or-port) ;; XXX: `http-get*' was introduced in 2.0.7, and replaced by ;; #:streaming? in 2.0.8. We know we're using it within the @@ -646,7 +649,7 @@ Return the resulting target URI." (format #t "following redirection to `~a'...~%" (uri->string uri)) (close connection) - (http-fetch uri file))) + (http-fetch uri file #:timeout timeout))) (else (error "download failed" (uri->string uri) code (response-reason-phrase resp)))))) @@ -686,6 +689,7 @@ Return a list of URIs." (define* (url-fetch url file #:key + (timeout 10) (mirrors '()) (content-addressed-mirrors '()) (hashes '())) "Fetch FILE from URL; URL may be either a single string, or a list of @@ -711,9 +715,9 @@ or #f." file (uri->string uri)) (case (uri-scheme uri) ((http https) - (false-if-exception* (http-fetch uri file))) + (false-if-exception* (http-fetch uri file #:timeout timeout))) ((ftp) - (false-if-exception* (ftp-fetch uri file))) + (false-if-exception* (ftp-fetch uri file #:timeout timeout))) (else (format #t "skipping URI with unsupported scheme: ~s~%" uri) From d1cd67af5dc305572b018e4dd46eb7d035244dda Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 11:29:21 +0300 Subject: [PATCH 077/277] gnu: mpc123: Add new source location. * gnu/packages/mp3.scm (mpc123)[source]: Add Debian mirror. [home-page]: Project has moved to Github. --- gnu/packages/mp3.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index fe1d13b382..e3133d788a 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -417,8 +418,10 @@ format.") (version "0.2.4") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/mpc123/version%20" - version "/mpc123-" version ".tar.gz")) + (uri (list (string-append "mirror://sourceforge/mpc123/version%20" + version "/mpc123-" version ".tar.gz") + (string-append "mirror://debian/pool/main/m/" name + "/" name "_" version ".orig.tar.gz"))) (sha256 (base32 "0sf4pns0245009z6mbxpx7kqy4kwl69bc95wz9v23wgappsvxgy1")) @@ -446,7 +449,7 @@ format.") (inputs `(("libao" ,ao) ("libmpcdec" ,libmpcdec))) - (home-page "http://mpc123.sourceforge.net/") + (home-page "https://github.com/bucciarati/mpc123") (synopsis "Audio player for Musepack-formatted files") (description "Mpc123 is a command-line player for files in the Musepack audio From 1a847b708dfa13c5ea231c6fc729db0088079925 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 11:34:44 +0300 Subject: [PATCH 078/277] gnu: mpc123: Use 'modify-phases'. * gnu/packages/mp3.scm (mpc123)[arguments]: Use 'modify-phases'. --- gnu/packages/mp3.scm | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index e3133d788a..f5789487b5 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -428,22 +428,20 @@ format.") (patches (search-patches "mpc123-initialize-ao.patch")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-replace - 'configure - (lambda _ - (substitute* "Makefile" - (("CC[[:blank:]]*:=.*") - "CC := gcc\n"))) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (mkdir-p bin) - (install-file "mpc123" bin))) - %standard-phases)) + '(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ + (substitute* "Makefile" + (("CC[[:blank:]]*:=.*") + "CC := gcc\n")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (mkdir-p bin) + (install-file "mpc123" bin))))) #:tests? #f)) - (native-inputs `(("gettext" ,gnu-gettext))) (inputs From ea3d5291ccad5b78a0edafc986366633eb60d2fe Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 11:37:12 +0300 Subject: [PATCH 079/277] gnu: eyed3: Update to 0.7.9. * gnu/packages/mp3.scm (eyed3): Update to 0.7.9. --- gnu/packages/mp3.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index f5789487b5..997c50f5f4 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -457,7 +457,7 @@ compression format (.mpc files).") (define-public eyed3 (package (name "eyed3") - (version "0.7.8") + (version "0.7.9") (source (origin (method url-fetch) (uri (string-append @@ -465,7 +465,7 @@ compression format (.mpc files).") version ".tar.gz")) (sha256 (base32 - "1nv7nhfn1d0qm7rgkzksbccgqisng8klf97np0nwaqwd5dbmdf86")))) + "08mzhqg3k63d244cgwd0y1xrb8x9m6b99ykyskpnwyxl4wxrgrzp")))) (build-system python-build-system) (arguments `(#:python ,python-2)) From cecaee420ed0cf451c3d4d01dc15db62bbd18de8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 14:56:49 +0300 Subject: [PATCH 080/277] gnu: synergy: Update project source. * gnu/packages/synergy.scm (synergy)[source]: Use new location. [home-page]: Use project's new website. --- gnu/packages/synergy.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm index bc70eaf838..8b53660fce 100644 --- a/gnu/packages/synergy.scm +++ b/gnu/packages/synergy.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Eric Bavier +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,7 +37,7 @@ (source (origin (method url-fetch) - (uri (string-append "https://github.com/synergy/synergy/archive/" + (uri (string-append "https://github.com/symless/synergy/archive/" "v" version "-stable.tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 @@ -105,7 +106,7 @@ "synergy.conf.example-advanced" "synergy.conf.example-basic"))))) %standard-phases)))))) - (home-page "http://www.synergy-project.org") + (home-page "http://symless.com/") (synopsis "Mouse and keyboard sharing utility") (description "Synergy brings your computers together in one cohesive experience; its From a3025a449011ebe404e27ebfc28669024d6665b4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 15:54:10 +0300 Subject: [PATCH 081/277] gnu: synergy: Use 'modify-phases'. * gnu/packages/synergy.scm (synergy)[arguments]; Use 'modify-phases'. --- gnu/packages/synergy.scm | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm index 8b53660fce..47fb57f606 100644 --- a/gnu/packages/synergy.scm +++ b/gnu/packages/synergy.scm @@ -66,25 +66,23 @@ (arguments `(#:phases (let ((srcdir (string-append "../synergy-" ,version "-stable"))) - (alist-cons-before - 'configure 'unpack-aux-src - ;; TODO: package and use from system - (lambda* (#:key inputs #:allow-other-keys) - (let ((unzip (string-append - (assoc-ref inputs "unzip") - "/bin/unzip"))) - (with-directory-excursion "ext" - (for-each - (lambda (f) - (system* unzip "-d" f (string-append f ".zip"))) - '("gmock-1.6.0" "gtest-1.6.0"))))) - (alist-replace - 'check - ;; Don't run "integtests" as it requires network and X an display. - (lambda _ - (zero? (system* (string-append srcdir "/bin/unittests")))) - (alist-replace - 'install + (modify-phases %standard-phases + (add-before 'configure 'unpack-aux-src + ;; TODO: package and use from system + (lambda* (#:key inputs #:allow-other-keys) + (let ((unzip (string-append + (assoc-ref inputs "unzip") + "/bin/unzip"))) + (with-directory-excursion "ext" + (for-each + (lambda (f) + (system* unzip "-d" f (string-append f ".zip"))) + '("gmock-1.6.0" "gtest-1.6.0")))))) + (replace 'check + ;; Don't run "integtests" as it requires network and X an display. + (lambda _ + (zero? (system* (string-append srcdir "/bin/unittests"))))) + (replace 'install ;; There currently is no installation process, see: ;; http://synergy-project.org/spit/issues/details/3317/ (lambda* (#:key outputs #:allow-other-keys) @@ -104,8 +102,7 @@ (install-file (string-append srcdir "/doc/" e) ex)) '("synergy.conf.example" "synergy.conf.example-advanced" - "synergy.conf.example-basic"))))) - %standard-phases)))))) + "synergy.conf.example-basic")))))))))) (home-page "http://symless.com/") (synopsis "Mouse and keyboard sharing utility") (description From 63ae20da16e4881944dea01241be1f1a752a23cc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 16:07:20 +0300 Subject: [PATCH 082/277] gnu: synergy: Update to 1.7.6. * gnu/packages/synergy.scm (synergy): Update to 1.7.6. --- gnu/packages/synergy.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm index 47fb57f606..ecff82ce7b 100644 --- a/gnu/packages/synergy.scm +++ b/gnu/packages/synergy.scm @@ -33,7 +33,7 @@ (define-public synergy (package (name "synergy") - (version "1.7.4") + (version "1.7.6") (source (origin (method url-fetch) @@ -42,7 +42,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1prb06dmi4bhfsraih4hzlsfiraiczgzhqy9gjsxygczif8w6p91")) + "07a1g2kh4f064nqjdqgfzrjfayls31scnssphbndmnvfc20bhlx4")) (modules '((guix build utils))) (snippet ;; Remove ~14MB of unnecessary bundled source and binaries From a60c705bd810e4a19f295856b8aeb0fca21fd0e3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 16:23:21 +0300 Subject: [PATCH 083/277] gnu: t1lib: Add source mirror. * gnu/packages/fontutils.scm (t1lib)[souce]: Add fossies mirror. --- gnu/packages/fontutils.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 05adc71212..919b496e54 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -281,7 +281,10 @@ high quality, anti-aliased and subpixel rendered text on a display.") (version "5.1.2") (source (origin (method url-fetch) - (uri "ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-5.1.2.tar.gz") + (uri (list (string-append "ftp://sunsite.unc.edu/pub/Linux/libs/" + "graphics/" name "-" version ".tar.gz") + (string-append "https://fossies.org/linux/misc/old/" + name "-" version ".tar.gz"))) (sha256 (base32 "0nbvjpnmcznib1nlgg8xckrmsw3haa154byds2h90y2g0nsjh4w2")))) (build-system gnu-build-system) From e4ddf924e5cb14e19421f970bea3420d47ae0da7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 16:35:47 +0300 Subject: [PATCH 084/277] gnu: xlockmore: Update to 5.47. * gnu/packages/xdisorg.scm (xlockmore): Update to 5.47. --- gnu/packages/xdisorg.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index ca198c32cb..57286ae532 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2015 Florian Paul Schmidt ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -540,7 +541,7 @@ things less distracting.") (define-public xlockmore (package (name "xlockmore") - (version "5.46") + (version "5.47") (source (origin (method url-fetch) (uri (list (string-append @@ -549,10 +550,10 @@ things less distracting.") (string-append "http://www.tux.org/~bagleyd/xlock/xlockmore-old" "/xlockmore-" version - "/xlockmore-" version ".tar.bz2"))) + "/xlockmore-" version ".tar.xz"))) (sha256 (base32 - "1ps0dmnh912x8mwns94y2607xk90rjxrjn5s1pkmmpjg5h9bxcrj")))) + "138d79b8zc2hambbr9fnxp3fhihlcljgqns04zf0kv2f53pavqwl")))) (build-system gnu-build-system) (arguments '(#:configure-flags (list (string-append "--enable-appdefaultdir=" @@ -570,8 +571,7 @@ things less distracting.") "XLockMore is a classic screen locker and screen saver for the X Window System.") (license (license:non-copyleft #f "See xlock.c.") - ;; + GPLv2 in modes/glx/biof.c. - ))) + ))) ; + GPLv2 in modes/glx/biof.c. (define-public xosd (package From 6d22653e39822bf9f3eabd2e34c04c1f3d936cb0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 16:40:05 +0300 Subject: [PATCH 085/277] gnu: serf: Update project source. * gnu/packages/web.scm (serf)[source]: Releases are now hosted by Apache. [home-page]: Project is now hosted by Apache. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index c86e0f03fc..36a61acfdf 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -701,7 +701,7 @@ from streaming URLs. It is a command-line wrapper for the libquvi library.") (source (origin (method url-fetch) - (uri (string-append "http://serf.googlecode.com/svn/src_releases/serf-" + (uri (string-append "https://archive.apache.org/dist/serf/serf-" version ".tar.bz2")) (sha256 (base32 "14155g48gamcv5s0828bzij6vr14nqmbndwq8j8f9g6vcph0nl70")) @@ -752,7 +752,7 @@ from streaming URLs. It is a command-line wrapper for the libquvi library.") (string-append "PREFIX=" out)))))) (replace 'check (lambda _ (zero? (system* "scons" "check")))) (replace 'install (lambda _ (zero? (system* "scons" "install"))))))) - (home-page "https://code.google.com/p/serf/") + (home-page "https://serf.apache.org/") (synopsis "High-performance asynchronous HTTP client library") (description "serf is a C-based HTTP client library built upon the Apache Portable From 9da459f350709af0cd92c3eb7ddd459eda5959dd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 27 May 2016 16:49:12 +0300 Subject: [PATCH 086/277] gnu: scrot: Add source mirror. * gnu/packages/xdisorg.scm (scrot)[source]: Add fossies mirror. --- gnu/packages/xdisorg.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 57286ae532..64a95d6e54 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -382,9 +382,12 @@ move windows, switch between desktops, etc.).") (version "0.8") (source (origin (method url-fetch) - (uri (string-append - "http://linuxbrit.co.uk/downloads/scrot-" - version ".tar.gz")) + (uri (list (string-append + "http://linuxbrit.co.uk/downloads/scrot-" + version ".tar.gz") + (string-append + "https://fossies.org/linux/privat/old/scrot-" + version "tar.gz"))) (sha256 (base32 "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1")))) From b5d08d7c2834610b5243db1795bd4b0724c8ff2a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 27 May 2016 11:42:22 -0400 Subject: [PATCH 087/277] gnu: gd: Update to 2.2.1 [fixes CVE-2015-{8874, 8877}]. * gnu/packages/patches/gd-CVE-2016-3074.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/gd.scm (gd): Update to 2.2.1. [source]: Remove patch. Update source URL. --- gnu/local.mk | 1 - gnu/packages/gd.scm | 11 +++---- gnu/packages/patches/gd-CVE-2016-3074.patch | 36 --------------------- 3 files changed, 5 insertions(+), 43 deletions(-) delete mode 100644 gnu/packages/patches/gd-CVE-2016-3074.patch diff --git a/gnu/local.mk b/gnu/local.mk index f36389f819..86b56d4047 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -498,7 +498,6 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-cross-environment-variables.patch \ %D%/packages/patches/gcc-libvtv-runpath.patch \ %D%/packages/patches/gcc-5.0-libvtv-runpath.patch \ - %D%/packages/patches/gd-CVE-2016-3074.patch \ %D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/ghostscript-CVE-2015-3228.patch \ %D%/packages/patches/ghostscript-runpath.patch \ diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm index e52a030f86..4d6b1a3c89 100644 --- a/gnu/packages/gd.scm +++ b/gnu/packages/gd.scm @@ -37,20 +37,19 @@ (package (name "gd") - ;; Note: With libgd.org now pointing to bitbucket.org, genuine old + ;; Note: With libgd.org now pointing to github.com, genuine old ;; tarballs are no longer available. Notably, versions 2.0.x are ;; missing. - (version "2.1.1") + (version "2.2.1") (source (origin (method url-fetch) (uri (string-append - "https://bitbucket.org/libgd/gd-libgd/downloads/" - "libgd-" version ".tar.xz")) + "https://github.com/libgd/libgd/releases/download/gd-" + version "/libgd-" version ".tar.xz")) (sha256 (base32 - "11djy9flzxczphigqgp7fbbblbq35gqwwhn9xfcckawlapa1xnls")) - (patches (search-patches "gd-CVE-2016-3074.patch")))) + "0xmrqka1ggqgml84xbmkw1y0r0lg7qn657v5b1my8pry92p651vh")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/patches/gd-CVE-2016-3074.patch b/gnu/packages/patches/gd-CVE-2016-3074.patch deleted file mode 100644 index a90c51d77b..0000000000 --- a/gnu/packages/patches/gd-CVE-2016-3074.patch +++ /dev/null @@ -1,36 +0,0 @@ -Adapted from upstream commit 2bb97f407c1145c850416a3bfbcc8cf124e68a19 -(gd2: handle corrupt images better (CVE-2016-3074)). - -This patch omits the upstream changes to '.gitignore', and the test -added in files 'tests/Makefile.am', 'tests/gd2/gd2_read_corrupt.c', and -'tests/gd2/invalid_neg_size.gd2'. - -We omit the test because its input data, -'tests/gd2/invalid_neg_size.gd2', is provided as a binary Git diff, -which is not supported by `patch`. - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3074 -https://github.com/libgd/libgd/commit/2bb97f407c1145c850416a3bfbcc8cf124e68a19 ---- - .gitignore | 1 + - src/gd_gd2.c | 2 ++ - tests/Makefile.am | 3 ++- - tests/gd2/gd2_read_corrupt.c | 25 +++++++++++++++++++++++++ - tests/gd2/invalid_neg_size.gd2 | Bin 0 -> 1676 bytes - 5 files changed, 30 insertions(+), 1 deletion(-) - create mode 100644 tests/gd2/gd2_read_corrupt.c - create mode 100644 tests/gd2/invalid_neg_size.gd2 - -diff --git a/src/gd_gd2.c b/src/gd_gd2.c -index 6f28461..a50b33d 100644 ---- a/src/gd_gd2.c -+++ b/src/gd_gd2.c -@@ -165,6 +165,8 @@ _gd2GetHeader (gdIOCtxPtr in, int *sx, int *sy, - if (gdGetInt (&cidx[i].size, in) != 1) { - goto fail2; - }; -+ if (cidx[i].offset < 0 || cidx[i].size < 0) -+ goto fail2; - }; - *chunkIdx = cidx; - }; From 494dc2fc628b754a9cc86a54c90202b13e0b68c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 27 May 2016 15:17:42 +0200 Subject: [PATCH 088/277] guix package: Inherit the transformed version number. Previously, 'guix package -i emacs --with-source=./emacs-42.tar.gz' would fail to use "42" as the version number in the manifest entry. Reported by piyo on #guix. * guix/scripts/package.scm (process-actions)[transform-entry]: Inherit the version number from the result of TRANSFORM when it's a package. * tests/guix-package.sh: Test it. --- guix/scripts/package.scm | 10 +++++++--- tests/guix-package.sh | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 697afc17c3..e2e37098fc 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -794,9 +794,13 @@ processed, #f otherwise." (define transform (options->transformation opts)) (define (transform-entry entry) - (manifest-entry - (inherit entry) - (item (transform store (manifest-entry-item entry))))) + (let ((item (transform store (manifest-entry-item entry)))) + (manifest-entry + (inherit entry) + (item item) + (version (if (package? item) + (package-version item) + (manifest-entry-version entry)))))) ;; First, process roll-backs, generation removals, etc. (for-each (match-lambda diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 28c34dbc6a..68a1946aa0 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -140,6 +140,20 @@ rm "$profile" "$profile"-[0-9]-link guix gc -d "$real_profile" [ ! -d "$real_profile" ] +# Package transformations. + +# Make sure we get the right version number when using '--with-source'. +mkdir "$module_dir" +emacs_tarball="$module_dir/emacs-42.5.9rc7.tar.gz" +touch "$emacs_tarball" +guix package -p "$profile" -i emacs --with-source="$emacs_tarball" -n \ + 2> "$tmpfile" +grep -E 'emacs[[:blank:]]+42\.5\.9rc7[[:blank:]]+.*-emacs-42.5.9rc7' \ + "$tmpfile" +rm "$emacs_tarball" "$tmpfile" +rmdir "$module_dir" + + # # Try with the default profile. # From 870bf71eb0983f0f7f7221434db3ff5f785b3b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 28 May 2016 00:44:36 +0200 Subject: [PATCH 089/277] cve: Use a more compact format for the list of package/versions. On a warm cache, "guix lint -c cve vorbis-tools" goes down from 6.5s to 2.4s. * guix/cve.scm (cpe->package-name): Change to return two values instead of a pair. (cpe->product-alist): New procedure. (%parse-vulnerability-feed): Use it instead of 'filter-map'. (fetch-vulnerabilities): Bump sexp format version to 1. (vulnerabilities->lookup-proc): Adjust accordingly. When #:version is omitted, return a list of vulnerabilities instead of a list of version/vulnerability pairs. * tests/cve.scm (%expected-vulnerabilities) ("vulnerabilities->lookup-proc): Adjust accordingly. --- guix/cve.scm | 79 +++++++++++++++++++++++++++++++++++---------------- tests/cve.scm | 17 +++++------ 2 files changed, 62 insertions(+), 34 deletions(-) diff --git a/guix/cve.scm b/guix/cve.scm index 2167028ede..088e39837a 100644 --- a/guix/cve.scm +++ b/guix/cve.scm @@ -24,6 +24,7 @@ #:use-module (web uri) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) + #:use-module (srfi srfi-11) #:use-module (srfi srfi-19) #:use-module (srfi srfi-26) #:use-module (ice-9 match) @@ -48,8 +49,8 @@ (define-record-type (vulnerability id packages) vulnerability? - (id vulnerability-id) - (packages vulnerability-packages)) + (id vulnerability-id) ;string + (packages vulnerability-packages)) ;((p1 v1 v2 v3) (p2 v1) ...) (define %now (current-date)) @@ -93,18 +94,45 @@ (define (cpe->package-name cpe) "Converts the Common Platform Enumeration (CPE) string CPE to a package -name, in a very naive way. Return #f if CPE does not look like an application -CPE string." - (and=> (regexp-exec %cpe-package-rx (string-trim-both cpe)) +name, in a very naive way. Return two values: the package name, and its +version string. Return #f and #f if CPE does not look like an application CPE +string." + (cond ((regexp-exec %cpe-package-rx (string-trim-both cpe)) + => (lambda (matches) - (cons (match:substring matches 2) - (string-append (match:substring matches 3) - (match (match:substring matches 4) - ("" "") - (patch-level - ;; Drop the colon from things like - ;; "cpe:/a:openbsd:openssh:6.8:p1". - (string-drop patch-level 1)))))))) + (values (match:substring matches 2) + (string-append (match:substring matches 3) + (match (match:substring matches 4) + ("" "") + (patch-level + ;; Drop the colon from things like + ;; "cpe:/a:openbsd:openssh:6.8:p1". + (string-drop patch-level 1))))))) + (else + (values #f #f)))) + +(define (cpe->product-alist products) + "Given PRODUCTS, a list of CPE names, return the subset limited to the +applications listed in PRODUCTS, with names converted to package names: + + (cpe->product-alist + '(\"cpe:/a:gnu:libtasn1:4.7\" \"cpe:/a:gnu:libtasn1:4.6\" \"cpe:/a:gnu:cpio:2.11\")) + => ((\"libtasn1\" \"4.7\" \"4.6\") (\"cpio\" \"2.11\")) +" + (fold (lambda (product result) + (let-values (((name version) (cpe->package-name product))) + (if name + (match result + (((previous . versions) . tail) + ;; Attempt to coalesce NAME and PREVIOUS. + (if (string=? name previous) + (alist-cons name (cons version versions) tail) + (alist-cons name (list version) result))) + (() + (alist-cons name (list version) result))) + result))) + '() + (sort products stringpackage-name products) + (match (cpe->product-alist products) (() ;; No application among PRODUCTS. rest) (packages - (cons (vulnerability id (reverse packages)) + (cons (vulnerability id packages) rest)))))) (x seed))) @@ -190,7 +218,7 @@ the given TTL (fetch from the NIST web site when TTL has expired)." (with-atomic-file-output cache (lambda (port) (write `(vulnerabilities - 0 ;format version + 1 ;format version ,(map vulnerability->sexp vulns)) port))) vulns)) @@ -206,7 +234,7 @@ the given TTL (fetch from the NIST web site when TTL has expired)." (if (old? cache) (update-cache) (match (call-with-input-file cache read) - (('vulnerabilities 0 vulns) + (('vulnerabilities 1 vulns) (map sexp->vulnerability vulns)) (x (update-cache))))) @@ -233,8 +261,8 @@ published by the US NIST." (define (vulnerabilities->lookup-proc vulnerabilities) "Return a lookup procedure built from VULNERABILITIES that takes a package name and optionally a version number. When the version is omitted, the lookup -procedure returns a list of version/vulnerability pairs; otherwise, it returns -a list of vulnerabilities affection the given package version." +procedure returns a list of vulnerabilities; otherwise, it returns a list of +vulnerabilities affecting the given package version." (define table ;; Map package names to lists of version/vulnerability pairs. (fold (lambda (vuln table) @@ -242,8 +270,8 @@ a list of vulnerabilities affection the given package version." (($ id packages) (fold (lambda (package table) (match package - ((name . version) - (vhash-cons name (cons version vuln) + ((name . versions) + (vhash-cons name (cons vuln versions) table)))) table packages)))) @@ -254,11 +282,14 @@ a list of vulnerabilities affection the given package version." (vhash-fold* (if version (lambda (pair result) (match pair - ((v . vuln) - (if (string=? v version) + ((vuln . versions) + (if (member version versions) (cons vuln result) result)))) - cons) + (lambda (pair result) + (match pair + ((vuln . _) + (cons vuln result))))) '() package table))) diff --git a/tests/cve.scm b/tests/cve.scm index 26e710ce70..3fbb22d3c6 100644 --- a/tests/cve.scm +++ b/tests/cve.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,12 +32,10 @@ (list ;; CVE-2003-0001 has no "/a" in its product list so it is omitted. ;; CVE-2004-0230 lists "tcp" as an application, but lacks a version number. - (vulnerability "CVE-2008-2335" '(("phpvid" . "1.1") ("phpvid" . "1.2"))) - (vulnerability "CVE-2008-3522" '(("enterprise_virtualization" . "3.5") - ("jasper" . "1.900.1"))) - (vulnerability "CVE-2009-3301" '(("openoffice.org" . "2.1.0") - ("openoffice.org" . "2.3.0") - ("openoffice.org" . "2.2.1"))) + (vulnerability "CVE-2008-2335" '(("phpvid" "1.2" "1.1"))) + (vulnerability "CVE-2008-3522" '(("enterprise_virtualization" "3.5") + ("jasper" "1.900.1"))) + (vulnerability "CVE-2009-3301" '(("openoffice.org" "2.3.0" "2.2.1" "2.1.0"))) ;; CVE-2015-8330 has no software list. )) @@ -48,9 +46,8 @@ %expected-vulnerabilities (call-with-input-file %sample xml->vulnerabilities)) -(test-equal "" - (list `(("1.1" . ,(first %expected-vulnerabilities)) - ("1.2" . ,(first %expected-vulnerabilities))) +(test-equal "vulnerabilities->lookup-proc" + (list (list (first %expected-vulnerabilities)) '() '() (list (second %expected-vulnerabilities)) From 6242b314c24caa38f8e402b0cd9f969481fe63a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sun, 15 May 2016 10:20:05 +0800 Subject: [PATCH 090/277] gnu: Add wiredtiger. * gnu/packages/database.scm (wiredtiger): New variable. --- gnu/packages/databases.scm | 40 +++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index bd535a3156..7e0188b2a0 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -55,7 +55,7 @@ #:use-module (gnu packages bison) #:use-module (gnu packages jemalloc) #:use-module ((guix licenses) - #:select (gpl2 gpl3+ lgpl2.1+ lgpl3+ x11-style non-copyleft + #:select (gpl2 gpl3 gpl3+ lgpl2.1+ lgpl3+ x11-style non-copyleft bsd-2 bsd-3 public-domain)) #:use-module (guix packages) #:use-module (guix download) @@ -914,3 +914,41 @@ sets, bitmaps and hyperloglogs.") and B+ Tree data storage models. It is a fast key-value lightweight database and supports many programming languages. It is a NoSQL database.") (license gpl3+))) + +(define-public wiredtiger + (package + (name "wiredtiger") + (version "2.8.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://source.wiredtiger.com/releases/wiredtiger-" + version ".tar.bz2")) + (sha256 + (base32 + "1qh7y5paisdxq19jgg81ld7i32lz920n5k30hdpxnr8ll9c4hgjr")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--enable-lz4" "--enable-zlib") + #:phases + (modify-phases %standard-phases + (add-before 'check 'disable-test/fops + (lambda _ + ;; XXX: timed out after 3600 seconds of silence + (substitute* "Makefile" + (("test/fops") "")) + #t))))) + (inputs + `(("lz4" ,lz4) + ("zlib" ,zlib))) + (home-page "http://source.wiredtiger.com/") + (synopsis "NoSQL data engine") + (description + "WiredTiger is an extensible platform for data management. It supports +row-oriented storage (where all columns of a row are stored together), +column-oriented storage (where columns are stored in groups, allowing for +more efficient access and storage of column subsets) and log-structured merge +trees (LSM), for sustained throughput under random insert workloads.") + (license gpl3) ; or GPL-2 + ;; configure.ac: WiredTiger requires a 64-bit build. + (supported-systems '("x86_64-linux" "mips64el-linux")))) From 1a6d3cd374bcff136592e04caa0dafada3352ecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Thu, 26 May 2016 21:42:15 +0800 Subject: [PATCH 091/277] gnu: gprolog: Don't install files into "$out/gprolog-1.4.4". * gnu/packages/gprolog.scm (gprolog)[arguments]: Pass '--with-install-dir' to #:configure-flags. --- gnu/packages/gprolog.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gprolog.scm b/gnu/packages/gprolog.scm index 1d9b9943bc..87c833e947 100644 --- a/gnu/packages/gprolog.scm +++ b/gnu/packages/gprolog.scm @@ -38,7 +38,10 @@ "13miyas47bmijmadm68cbvb21n4s156gjafz7kfx9brk9djfkh0q")))) (build-system gnu-build-system) (arguments - `(#:phases (alist-cons-before + `(#:configure-flags + (list (string-append + "--with-install-dir=" %output "/share/gprolog")) + #:phases (alist-cons-before 'configure 'change-dir-n-fix-shells (lambda _ (chdir "src") From de477809d77393b8fb00d99cd35d65f77d157726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sun, 15 May 2016 15:26:46 +0800 Subject: [PATCH 092/277] gnu: wxmaxima: Wrap with GSETTINGS_SCHEMA_DIR and XDG_DATA_DIRS. Fixes and . * gnu/packages/math.scm (wxmaxima)[arguments]: Wrap with GSETTINGS_SCHEMA_DIR and XDG_DATA_DIRS. --- gnu/packages/maths.scm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 80e48ca58d..e11208c32e 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1610,7 +1610,11 @@ point numbers.") (build-system gnu-build-system) (inputs `(("wxwidgets" ,wxwidgets) - ("maxima" ,maxima))) + ("maxima" ,maxima) + ;; Runtime support. + ("adwaita-icon-theme" ,adwaita-icon-theme) + ("gtk+" ,gtk+) + ("shared-mime-info" ,shared-mime-info))) (arguments `(#:phases (modify-phases %standard-phases (add-after @@ -1620,7 +1624,18 @@ point numbers.") "/bin/wxmaxima") `("PATH" ":" prefix (,(string-append (assoc-ref inputs "maxima") - "/bin")))) + "/bin"))) + ;; For GtkFileChooserDialog. + `("GSETTINGS_SCHEMA_DIR" = + (,(string-append (assoc-ref inputs "gtk+") + "/share/glib-2.0/schemas"))) + `("XDG_DATA_DIRS" ":" prefix + (;; Needed by gdk-pixbuf to know supported icon formats. + ,(string-append + (assoc-ref inputs "shared-mime-info") "/share") + ;; The default icon theme of GTK+. + ,(string-append + (assoc-ref inputs "adwaita-icon-theme") "/share")))) #t))))) (home-page "https://andrejv.github.io/wxmaxima/") (synopsis "Graphical user interface for the Maxima computer algebra system") From 68e9ee725a8f4744858ba171df6312f8d420af1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 28 May 2016 12:53:01 +0800 Subject: [PATCH 093/277] gnu: Add gcide. * gnu/packages/dictionaries.scm (gcide): New variable. --- gnu/packages/dictionaries.scm | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm index ac020b27c8..5aea716150 100644 --- a/gnu/packages/dictionaries.scm +++ b/gnu/packages/dictionaries.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016 Sou Bunnbu ;;; ;;; This file is part of GNU Guix. ;;; @@ -76,3 +77,41 @@ "V.E.R.A. (Virtual Entity of Relevant Acronyms) is a list of computing acronyms distributed as an info document.") (license fdl1.3+))) + +(define-public gcide + (package + (name "gcide") + (version "0.51") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/gcide/gcide-" version ".tar.xz")) + (sha256 + (base32 + "1wm0s51ygc6480dq8gwahzr35ls8jgpf34yiwl5yqcaa0i19fdv7")))) + (build-system trivial-build-system) + (arguments + '(#:builder (begin + (use-modules (guix build utils)) + (let* ((src (assoc-ref %build-inputs "source")) + (tar (assoc-ref %build-inputs "tar")) + (xz (assoc-ref %build-inputs "xz")) + (out (assoc-ref %outputs "out")) + (datadir (string-append out "/share/gcide"))) + (set-path-environment-variable "PATH" '("bin") + (list tar xz)) + (mkdir-p datadir) + (zero? (system* "tar" "-C" datadir + "--strip-components=1" + "-xvf" src)))) + #:modules ((guix build utils)))) + (native-inputs + `(("tar" ,tar) + ("xz" ,xz))) + (synopsis "GNU Collaborative International Dictionary of English") + (description + "GCIDE is a free dictionary based on a combination of sources. It can +be used via the GNU Dico program or accessed online at +http://gcide.gnu.org.ua/") + (home-page "http://gcide.gnu.org.ua/") + (license gpl3+))) From 9fcc3509a7af4348d855141e60501d9728fd6b6f Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 28 May 2016 23:44:16 +1000 Subject: [PATCH 094/277] gnu: Update diamond to 0.8.3. * gnu/packages/bioinformatics.scm (diamond): Update to 0.8.3. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index dae162ef0b..11e74c6d2c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1482,7 +1482,7 @@ identify enrichments with functional annotations of the genome.") (define-public diamond (package (name "diamond") - (version "0.8.1") + (version "0.8.3") (source (origin (method url-fetch) (uri (string-append @@ -1491,7 +1491,7 @@ identify enrichments with functional annotations of the genome.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1dqancz32c2l7w1b2vkvh5zqa2jnf99j1c41djnx1l8pxn044zdc")))) + "0z9sm46bivz0ghwg8kajizgiigv8dnz4w7cyzsg8wcsm9h2z6zyc")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no "check" target From 9b381643f009025d97dfc0b82d2c00800c204380 Mon Sep 17 00:00:00 2001 From: Patrick Hetu Date: Sat, 28 May 2016 18:01:48 +0200 Subject: [PATCH 095/277] gnu: Add Guile-GNOME. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gtk.scm (guile-gnome): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/gtk.scm | 56 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 1fe52a4b83..e237c6a66d 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Fabian Harfert ;;; Copyright © 2016 Kei Kebreau +;;; Copyright © 2016 Patrick Hetu ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,6 +52,7 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) + #:use-module (gnu packages libffi) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -822,6 +824,60 @@ includes a tools to generate PDF presentations out of Org mode and Texinfo documents.") (license license:lgpl3+))) +(define-public guile-gnome + (package + (name "guile-gnome") + (version "2.16.4") + (source (origin + (method url-fetch) + (uri + (string-append "mirror://gnu/" name + "/guile-gnome-platform/guile-gnome-platform-" + version ".tar.gz")) + (sha256 + (base32 + "1hqnqbb2lmr3hgbcv9kds1himn3av6h0lkk0zll8agcrsn7d9axd")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("atk" ,atk) + ;;("corba" ,corba) ; not packaged yet + ("gconf" ,gconf) + ("gobject-introspection" ,gobject-introspection) + ;;("gthread" ,gthread) ; not packaged yet + ("gnome-vfs" ,gnome-vfs) + ("gdk-pixbuf" ,gdk-pixbuf) + ("gtk+" ,gtk+-2) + ("libglade" ,libglade) + ("libgnome" ,libgnome) + ("libgnomecanvas" ,libgnomecanvas) + ("libgnomeui" ,libgnomeui) + ("pango" ,pango) + ("libffi" ,libffi) + ("glib" ,glib))) + (inputs `(("guile" ,guile-2.0))) + (propagated-inputs + `(("guile-cairo" ,guile-cairo) + ("g-wrap" ,g-wrap) + ("guile-lib" ,guile-lib))) + (arguments + `(#:tests? #f ;FIXME + #:phases (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (find-files "." "^Makefile.in$") + (("guilesite :=.*guile/site" all) + (string-append all "/2.0"))) + #t)))))) + (outputs '("out" "debug")) + (synopsis "Guile interface for GTK+ programming for GNOME") + (description + "Includes guile-clutter, guile-gnome-gstreamer, +guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.") + (home-page "http://www.gnu.org/software/guile-gnome/") + (license license:gpl2+))) + ;;; ;;; C++ bindings. ;;; From 922fe075d1e4ee7d68e1f56322c82985a953c9e4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 28 May 2016 22:57:16 +0300 Subject: [PATCH 096/277] gnu: potrace: Update to 1.13 [fixes CVE-2013-7437]. * gnu/packages/fontutils.scm (potrace): Update to 1.13. --- gnu/packages/fontutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 919b496e54..3847cfb8d7 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -389,7 +389,7 @@ and returns a sequence of positioned glyphids from the font.") (define-public potrace (package (name "potrace") - (version "1.11") + (version "1.13") (source (origin (method url-fetch) @@ -397,7 +397,7 @@ and returns a sequence of positioned glyphids from the font.") version ".tar.gz")) (sha256 (base32 - "1bbyl7jgigawmwc8r14znv8lb6lrcxh8zpvynrl6s800dr4yp9as")))) + "115p2vgyq7p2mf4nidk2x3aa341nvv2v8ml056vbji36df5l6lk2")))) (build-system gnu-build-system) (native-inputs `(("ghostscript" ,ghostscript))) ;for tests (inputs `(("zlib" ,zlib))) From a535e1222665f3fe5e195573649b7000e8bc9d34 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 28 May 2016 13:41:21 -0400 Subject: [PATCH 097/277] services: Add urandom-seed-service. Fixes . * gnu/services/base.scm (urandom-seed-service): New procedure. (%random-seed-file, urandom-seed-service-type): New variables. (%urandom-seed-shepherd-service): New procedure. (%base-services): Call 'urandom-seed-service'. * doc/guix.texi (Base Services): Document it. --- doc/guix.texi | 11 ++++++++ gnu/services/base.scm | 62 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 72 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index bb75425a9f..01363c1d13 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7355,6 +7355,17 @@ Return a service that runs the Guix build daemon according to Run @var{udev}, which populates the @file{/dev} directory dynamically. @end deffn +@deffn {Scheme Procedure} urandom-seed-service @var{#f} +Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} +when rebooting. +@end deffn + +@defvr {Scheme Variable} %random-seed-file +This is the name of the file where some random bytes are saved by +@var{urandom-seed-service} to seed @file{/dev/urandom} when rebooting. +It defaults to @file{/var/lib/random-seed}. +@end defvr + @deffn {Scheme Procedure} console-keymap-service @var{files} ... @cindex keyboard layout Return a service to load console keymaps from @var{files} using diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 96bf8da02a..a45f219643 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015, 2016 Alex Kost ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015 Sou Bunnbu +;;; Copyright © 2016 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -93,6 +94,8 @@ gpm-service-type gpm-service + urandom-seed-service + %base-services)) ;;; Commentary: @@ -420,6 +423,63 @@ stopped before 'kill' is called." (service user-processes-service-type (list (filter file-system-mount? file-systems) grace-delay))) + +;;; +;;; Preserve entropy to seed /dev/urandom on boot. +;;; + +(define %random-seed-file + "/var/lib/random-seed") + +(define %urandom-seed-activation + ;; Activation gexp for the urandom seed + #~(begin + (use-modules (guix build utils)) + + (mkdir-p (dirname #$%random-seed-file)) + (close-port (open-file #$%random-seed-file "a0b")) + (chmod #$%random-seed-file #o600))) + +(define (urandom-seed-shepherd-service _) + "Return a shepherd service for the /dev/urandom seed." + (list (shepherd-service + (documentation "Preserve entropy across reboots for /dev/urandom.") + (provision '(urandom-seed)) + (requirement '(user-processes)) + (start #~(lambda _ + ;; On boot, write random seed into /dev/urandom. + (when (file-exists? #$%random-seed-file) + (call-with-input-file #$%random-seed-file + (lambda (seed) + (call-with-output-file "/dev/urandom" + (lambda (urandom) + (dump-port seed urandom)))))) + #t)) + (stop #~(lambda _ + ;; During shutdown, write from /dev/urandom into random seed. + (let ((buf (make-bytevector 512))) + (call-with-input-file "/dev/urandom" + (lambda (urandom) + (get-bytevector-n! urandom buf 0 512) + (call-with-output-file #$%random-seed-file + (lambda (seed) + (put-bytevector seed buf))) + #t))))) + (modules `((rnrs bytevectors) + (rnrs io ports) + ,@%default-modules))))) + +(define urandom-seed-service-type + (service-type (name 'urandom-seed) + (extensions + (list (service-extension shepherd-root-service-type + urandom-seed-shepherd-service) + (service-extension activation-service-type + (const %urandom-seed-activation)))))) + +(define (urandom-seed-service) + (service urandom-seed-service-type #f)) + ;;; ;;; System-wide environment variables. @@ -1200,7 +1260,6 @@ extra rules from the packages listed in @var{rules}." "Return a service that uses @var{device} as a swap device." (service swap-service-type device)) - (define-record-type* gpm-configuration make-gpm-configuration gpm-configuration? (gpm gpm-configuration-gpm) ;package @@ -1281,6 +1340,7 @@ This is the GNU operating system, welcome!\n\n"))) (static-networking-service "lo" "127.0.0.1" #:provision '(loopback)) (syslog-service) + (urandom-seed-service) (guix-service) (nscd-service) From e00df583a232218803f19fa6dabff5f50d8e2599 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 28 May 2016 01:14:49 -0400 Subject: [PATCH 098/277] gnu: libyaml: Update to 0.1.6 [fixes CVE-2014-2525]. * gnu/packages/web.scm (libyaml): Update to 0.1.6. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 36a61acfdf..03f15e8bf4 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -604,7 +604,7 @@ of people.") (define-public libyaml (package (name "libyaml") - (version "0.1.5") + (version "0.1.6") (source (origin (method url-fetch) @@ -613,7 +613,7 @@ of people.") version ".tar.gz")) (sha256 (base32 - "1vrv5ly58bkmcyc049ad180f2m8iav6l9h3v8l2fqdmrny7yx1zs")))) + "0j9731s5zjb8mjx7wzf6vh7bsqi38ay564x6s9nri2nh9cdrg9kx")))) (build-system gnu-build-system) (home-page "http://pyyaml.org/wiki/LibYAML") (synopsis "YAML 1.1 parser and emitter written in C") From 576b1aeed6c315370135025d3cd4db54c388a143 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sun, 29 May 2016 11:09:11 +0800 Subject: [PATCH 099/277] gnu: retroarch: Update to 1.3.4. * gnu/packages/games.scm (retroarch): Update to 1.3.4. --- gnu/packages/games.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index fc16862471..e552d09efa 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014 Cyrill Schenkel ;;; Copyright © 2014 Sylvain Beucler ;;; Copyright © 2014, 2015 Ludovic Courtès -;;; Copyright © 2014, 2015 Sou Bunnbu +;;; Copyright © 2014, 2015, 2016 Sou Bunnbu ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015, 2016 Andreas Enge ;;; Copyright © 2015 David Hashe @@ -856,7 +856,7 @@ either by Infocom or created using the Inform compiler.") (define-public retroarch (package (name "retroarch") - (version "1.3.1") + (version "1.3.4") (source (origin (method url-fetch) @@ -864,7 +864,7 @@ either by Infocom or created using the Inform compiler.") version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "1wydzvligyby05x8c4lpg6xcnw9qkmvkskyhzc28xq10vm3q57fv")))) + (base32 "077v1sj000y3csjw9vradba3k2aknvg5k8521z8aya6q987klwx5")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests From 32fddd8e29ba6bfebc7ba2081f02d2dc9730256a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 29 May 2016 08:50:15 +0300 Subject: [PATCH 100/277] gnu: lua-5.1: Fix CVE-2014-5461. * gnu/packages/lua.scm (lua-5.1)[source]: Add patch. * gnu/packages/patches/lua-CVE-2014-5461: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/lua.scm | 4 +++- gnu/packages/patches/lua-CVE-2014-5461.patch | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/lua-CVE-2014-5461.patch diff --git a/gnu/local.mk b/gnu/local.mk index 86b56d4047..9a9cff4238 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -612,6 +612,7 @@ dist_patch_DATA = \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/libpthread-glibc-preparation.patch \ %D%/packages/patches/lm-sensors-hwmon-attrs.patch \ + %D%/packages/patches/lua-CVE-2014-5461.patch \ %D%/packages/patches/lua-pkgconfig.patch \ %D%/packages/patches/lua51-liblua-so.patch \ %D%/packages/patches/lua52-liblua-so.patch \ diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 17874f86ab..a5315342ea 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014 Raimon Grau ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2014 Andreas Enge +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -78,7 +79,8 @@ for configuration, scripting, and rapid prototyping.") version ".tar.gz")) (sha256 (base32 "0cskd4w0g6rdm2q8q3i4n1h3j8kylhs3rq8mxwl9vwlmlxbgqh16")) - (patches (search-patches "lua51-liblua-so.patch")))))) + (patches (search-patches "lua51-liblua-so.patch" + "lua-CVE-2014-5461.patch")))))) (define-public luajit (package diff --git a/gnu/packages/patches/lua-CVE-2014-5461.patch b/gnu/packages/patches/lua-CVE-2014-5461.patch new file mode 100644 index 0000000000..bc72ef14ad --- /dev/null +++ b/gnu/packages/patches/lua-CVE-2014-5461.patch @@ -0,0 +1,20 @@ +From: Enrico Tassi +Date: Tue, 26 Aug 2014 16:20:55 +0200 +Subject: Fix stack overflow in vararg functions + +--- + src/ldo.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ldo.c b/src/ldo.c +index d1bf786..30333bf 100644 +--- a/src/ldo.c ++++ b/src/ldo.c +@@ -274,7 +274,7 @@ int luaD_precall (lua_State *L, StkId func, int nresults) { + CallInfo *ci; + StkId st, base; + Proto *p = cl->p; +- luaD_checkstack(L, p->maxstacksize); ++ luaD_checkstack(L, p->maxstacksize + p->numparams); + func = restorestack(L, funcr); + base = func + 1; From a4349e7a00c479bb7926cfb5efc78daacf7191b4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 29 May 2016 08:56:07 +0300 Subject: [PATCH 101/277] gnu: lua: Use 'modify-phases'. * gnu/packages/lua.scm (lua)[arguments]: Use 'modify-phases'. --- gnu/packages/lua.scm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index a5315342ea..f699330899 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -47,18 +47,18 @@ (guix build utils) (srfi srfi-1)) #:test-target "test" - #:phases (alist-replace - 'build - (lambda _ (zero? (system* "make" "CFLAGS=-fPIC" "linux"))) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (zero? (system* "make" "install" - (string-append "INSTALL_TOP=" out) - (string-append "INSTALL_MAN=" out - "/share/man/man1"))))) - (alist-delete 'configure %standard-phases))))) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ (zero? (system* "make" "CFLAGS=-fPIC" "linux")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (zero? (system* "make" "install" + (string-append "INSTALL_TOP=" out) + (string-append "INSTALL_MAN=" out + "/share/man/man1"))))))))) (home-page "http://www.lua.org/") (synopsis "Embeddable scripting language") (description From 2cb33ef86e23854241fcade8342aca2fb48ce376 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 29 May 2016 08:57:27 +0300 Subject: [PATCH 102/277] gnu: lua: Update to 5.2.4. * gnu/packages/lua.scm (lua): Update to 5.2.4. --- gnu/packages/lua.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index f699330899..abe657f644 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -31,13 +31,13 @@ (define-public lua (package (name "lua") - (version "5.2.3") + (version "5.2.4") (source (origin (method url-fetch) (uri (string-append "http://www.lua.org/ftp/lua-" version ".tar.gz")) (sha256 - (base32 "0b8034v1s82n4dg5rzcn12067ha3nxaylp2vdp8gg08kjsbzphhk")) + (base32 "0jwznq0l8qg9wh5grwg07b5cy3lzngvl5m2nl1ikp6vqssmf9qmr")) (patches (search-patches "lua-pkgconfig.patch" "lua52-liblua-so.patch")))) (build-system gnu-build-system) From 89deaf167af6ddb71c656c90f8a4d6e19feb4a47 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 29 May 2016 09:12:47 +0300 Subject: [PATCH 103/277] gnu: luajit: Update to 2.0.4. * gnu/packages/lua.scm (luajit): Update to 2.0.4. --- gnu/packages/lua.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index abe657f644..b4b5dee8be 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -85,13 +85,13 @@ for configuration, scripting, and rapid prototyping.") (define-public luajit (package (name "luajit") - (version "2.0.3") + (version "2.0.4") (source (origin (method url-fetch) (uri (string-append "http://luajit.org/download/LuaJIT-" version ".tar.gz")) (sha256 - (base32 "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm")) + (base32 "0zc0y7p6nx1c0pp4nhgbdgjljpfxsb5kgwp4ysz22l1p2bms83v2")) (patches (search-patches "luajit-symlinks.patch" "luajit-no_ldconfig.patch")))) (build-system gnu-build-system) From c68d8126f9dc6f932fdbfe04b0c773c42d49938a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 29 May 2016 12:46:12 -0400 Subject: [PATCH 104/277] gnu: elfutils: Update to 0.166 [fixes CVE-2014-9447]. * gnu/packages/elf.scm (elfutils): Update to 0.166. --- gnu/packages/elf.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 82604c4e30..674b8ac7a1 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -30,7 +30,7 @@ (define-public elfutils (package (name "elfutils") - (version "0.161") + (version "0.166") (source (origin (method url-fetch) (uri (string-append @@ -38,7 +38,7 @@ version "/elfutils-" version ".tar.bz2")) (sha256 (base32 - "0w50szymyqvx8g0vkwrvnv17grqxva6x1z9dm9m3i99zg2hr232p")) + "0c5s9klq1zyb0zkmrw636k97kz30p5ih8y8dpq8b4f54r0a6j19w")) (patches (search-patches "elfutils-tests-ptrace.patch")))) (build-system gnu-build-system) From 1d982d787dfdd6739fe6c829aee332e9b24bdc31 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 29 May 2016 13:02:23 -0400 Subject: [PATCH 105/277] gnu: procmail: Fix CVE-2014-3618. * gnu/packages/patches/procmail-CVE-2014-3618.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/mail.scm (procmail): Use it. --- gnu/local.mk | 1 + gnu/packages/mail.scm | 3 ++- .../patches/procmail-CVE-2014-3618.patch | 26 +++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/procmail-CVE-2014-3618.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9a9cff4238..3f595b47ce 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -689,6 +689,7 @@ dist_patch_DATA = \ %D%/packages/patches/portaudio-audacity-compat.patch \ %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/pt-scotch-build-parallelism.patch \ %D%/packages/patches/pulseaudio-fix-mult-test.patch \ %D%/packages/patches/pulseaudio-longer-test-timeout.patch \ diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 39133fcff0..b4563277aa 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1149,7 +1149,8 @@ deliver it in various ways.") ;; The following patch fixes an ambiguous definition of ;; getline() in formail.c. The patch is provided by Debian as ;; patch 24. - (patches (search-patches "procmail-ambiguous-getline-debian.patch")))) + (patches (search-patches "procmail-ambiguous-getline-debian.patch" + "procmail-CVE-2014-3618.patch")))) (arguments `(#:phases (modify-phases %standard-phases (replace 'configure diff --git a/gnu/packages/patches/procmail-CVE-2014-3618.patch b/gnu/packages/patches/procmail-CVE-2014-3618.patch new file mode 100644 index 0000000000..e3f2759738 --- /dev/null +++ b/gnu/packages/patches/procmail-CVE-2014-3618.patch @@ -0,0 +1,26 @@ +Fixes CVE-2014-3618 (heap overflow in formisc.c allowing denial of +service and potential remote execution of arbitrary code). +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3618 + +Source: +http://seclists.org/oss-sec/2014/q3/495 + +Adopted by Debian as patch '27': +https://sources.debian.net/src/procmail/3.22-25/debian/patches/27/ + +--- a/src/formisc.c ++++ b/src/formisc.c +@@ -84,12 +84,11 @@ + case '"':*target++=delim='"';start++; + } + ;{ int i; +- do ++ while(*start) + if((i= *target++= *start++)==delim) /* corresponding delimiter? */ + break; + else if(i=='\\'&&*start) /* skip quoted character */ + *target++= *start++; +- while(*start); /* anything? */ + } + hitspc=2; + } From 5d1cd076de6474a40b8a631e41acfd2663bc40b1 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 29 May 2016 13:26:22 -0400 Subject: [PATCH 106/277] gnu: libsodium: Update to 1.0.10. * gnu/packages/crypto.scm (libsodium): Update to 1.0.10. --- gnu/packages/crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 08eb146cf7..b2ea848937 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -30,7 +30,7 @@ (define-public libsodium (package (name "libsodium") - (version "1.0.0") + (version "1.0.10") (source (origin (method url-fetch) (uri (list (string-append @@ -41,7 +41,7 @@ "releases/old/libsodium-" version ".tar.gz"))) (sha256 (base32 - "19f9vf0shfp4rc4l791r6xjg06z4i8psj1zkjkm3z5b640yzxlff")))) + "1gn45g956lyz8l6iq187yc6l627vyivyp8qc5dkr6dnhdnlqddvi")))) (build-system gnu-build-system) (synopsis "Portable NaCl-based crypto library") (description From d6c108a9160f928418ec65a68665a2f68fb61e40 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 29 May 2016 13:31:29 -0400 Subject: [PATCH 107/277] gnu: zeromq: Update to 4.0.7 [fixes CVE-2014-9721]. * gnu/packages/networking.scm (zeromq): Update to 4.0.7. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index ffad1db2f2..6f4339a460 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -115,14 +115,14 @@ or server shell scripts with network connections.") (define-public zeromq (package (name "zeromq") - (version "4.0.5") + (version "4.0.7") (source (origin (method url-fetch) (uri (string-append "http://download.zeromq.org/zeromq-" version ".tar.gz")) (sha256 (base32 - "0arl8fy8d03xd5h0mgda1s5bajwg8iyh1kk4hd1420rpcxgkrj9v")))) + "00vvwhgcdr1lva2pavicvy92iad0hj8cf71n702hv6blw1kjj2z0")))) (build-system gnu-build-system) (home-page "http://zeromq.org") (synopsis "Library for message-based applications") From 41019e9f2ae2a997b39a7091f0ef08670a5f3d7d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 29 May 2016 13:57:13 -0400 Subject: [PATCH 108/277] gnu: rpm: Update to 4.12.0.1. * gnu/packages/package-management.scm (rpm): Update to 4.12.0.1. --- gnu/packages/package-management.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 993808f10c..fdc25a5009 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -327,14 +327,14 @@ symlinks to the files in a common directory such as /usr/local.") (define-public rpm (package (name "rpm") - (version "4.12.0") + (version "4.12.0.1") (source (origin (method url-fetch) (uri (string-append "http://rpm.org/releases/rpm-4.12.x/rpm-" version ".tar.bz2")) (sha256 (base32 - "18hk47hc755nslvb7xkq4jb095z7va0nlcyxdpxayc4lmb8mq3bp")))) + "0a82ym8phx7g0f3k6smvxnvzh7yv857l42xafk49689kzhld5pbp")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-external-db" ;use the system's bdb From 65da8dd01ed02b8bf4499b175a49345633f56451 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 29 May 2016 13:57:56 -0400 Subject: [PATCH 109/277] gnu: rpm: Fix CVE-2014-8118. * gnu/packages/patches/rpm-CVE-2014-8118.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/package-management.scm (rpm): Use it. --- gnu/local.mk | 1 + gnu/packages/package-management.scm | 3 ++- gnu/packages/patches/rpm-CVE-2014-8118.patch | 25 ++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/rpm-CVE-2014-8118.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3f595b47ce..dade7367be 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -716,6 +716,7 @@ dist_patch_DATA = \ %D%/packages/patches/ratpoison-shell.patch \ %D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/ripperx-missing-file.patch \ + %D%/packages/patches/rpm-CVE-2014-8118.patch \ %D%/packages/patches/rsem-makefile.patch \ %D%/packages/patches/ruby-symlinkfix.patch \ %D%/packages/patches/rush-CVE-2013-6889.patch \ diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index fdc25a5009..46743fefb5 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -334,7 +334,8 @@ symlinks to the files in a common directory such as /usr/local.") version ".tar.bz2")) (sha256 (base32 - "0a82ym8phx7g0f3k6smvxnvzh7yv857l42xafk49689kzhld5pbp")))) + "0a82ym8phx7g0f3k6smvxnvzh7yv857l42xafk49689kzhld5pbp")) + (patches (search-patches "rpm-CVE-2014-8118.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-external-db" ;use the system's bdb diff --git a/gnu/packages/patches/rpm-CVE-2014-8118.patch b/gnu/packages/patches/rpm-CVE-2014-8118.patch new file mode 100644 index 0000000000..5fdb0f0eb2 --- /dev/null +++ b/gnu/packages/patches/rpm-CVE-2014-8118.patch @@ -0,0 +1,25 @@ +Fix CVE-2014-8118 (integer overflow allowing arbitrary remote code +execution via crafted CPIO header). + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8118 + +Source: +https://bugzilla.redhat.com/attachment.cgi?id=962159&action=diff + +Adopted by Debian: +http://anonscm.debian.org/cgit/collab-maint/rpm.git/plain/debian/patches/CVE-2014-8118.patch + +diff --git a/lib/cpio.c b/lib/cpio.c +index 253ff0f..600633a 100644 +--- a/lib/cpio.c ++++ b/lib/cpio.c +@@ -399,6 +399,9 @@ int rpmcpioHeaderRead(rpmcpio_t cpio, char ** path, int * fx) + + GET_NUM_FIELD(hdr.filesize, fsize); + GET_NUM_FIELD(hdr.namesize, nameSize); ++ if (nameSize <= 0 || nameSize > 4096) { ++ return RPMERR_BAD_HEADER; ++ } + + char name[nameSize + 1]; + read = Fread(name, nameSize, 1, cpio->fd); From fb3c855381eba87725da33fbd936bb9734a40ccf Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 29 May 2016 21:45:43 +0300 Subject: [PATCH 110/277] gnu: pciutils: Update to 3.5.1. * gnu/packages/pciutils.scm (pciutils): Update to 3.5.1. --- gnu/packages/pciutils.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index e022b6a81d..9da56ca5e8 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,16 +29,15 @@ (define-public pciutils (package (name "pciutils") - (version "3.3.1") + (version "3.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/utils/pciutils/pciutils-" - version - ".tar.xz")) + version ".tar.xz")) (sha256 (base32 - "1ag3skny1bamqil46dlppw8j1fp08spqa60fjygbxkg4fzdknjji")))) + "0byl2f897w5lhs4bvr6p7qwcz9bllj2zyfv7nywbcbsnb9ha9wrb")))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace From 0ef7a93d78b72153da168d4c356e5789f99f0869 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 29 May 2016 21:50:27 +0300 Subject: [PATCH 111/277] gnu: pciutils: Use 'modify-phases'. * gnu/packages/pciutils.scm (pciutils)[arguments]: Use 'modify-phases'. --- gnu/packages/pciutils.scm | 52 +++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index 9da56ca5e8..3f8d8e9121 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -40,33 +40,31 @@ "0byl2f897w5lhs4bvr6p7qwcz9bllj2zyfv7nywbcbsnb9ha9wrb")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; There's no 'configure' script, just a raw makefile. - (substitute* "Makefile" - (("^PREFIX=.*$") - (string-append "PREFIX := " (assoc-ref outputs "out") - "\n")) - (("^MANDIR:=.*$") - ;; By default the thing tries to automatically - ;; determine whether to use $prefix/man or - ;; $prefix/share/man, and wrongly so. - (string-append "MANDIR := " (assoc-ref outputs "out") - "/share/man\n")) - (("^SHARED=.*$") - ;; Build libpciutils.so. - "SHARED := yes\n") - (("^ZLIB=.*$") - ;; Ask for zlib support. - "ZLIB := yes\n"))) - - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - ;; Install the commands, library, and .pc files. - (zero? (system* "make" "install" "install-lib"))) - %standard-phases)) + '(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; There's no 'configure' script, just a raw makefile. + (substitute* "Makefile" + (("^PREFIX=.*$") + (string-append "PREFIX := " (assoc-ref outputs "out") + "\n")) + (("^MANDIR:=.*$") + ;; By default the thing tries to automatically + ;; determine whether to use $prefix/man or + ;; $prefix/share/man, and wrongly so. + (string-append "MANDIR := " (assoc-ref outputs "out") + "/share/man\n")) + (("^SHARED=.*$") + ;; Build libpciutils.so. + "SHARED := yes\n") + (("^ZLIB=.*$") + ;; Ask for zlib support. + "ZLIB := yes\n")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + ;; Install the commands, library, and .pc files. + (zero? (system* "make" "install" "install-lib"))))) ;; Make sure programs have an RPATH so they can find libpciutils.so. #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" From 43ec6ca06e1c94432f35467f3455c9cfa8439aaf Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 29 May 2016 21:58:57 +0300 Subject: [PATCH 112/277] gnu: pciutils: Add kmod support. * gnu/packages/pciutils.scm (pciutils)[inputs]: Add kmod. --- gnu/packages/pciutils.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index 3f8d8e9121..553e3f8cac 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -24,6 +24,7 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages compression) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages linux) #:use-module (gnu packages base)) (define-public pciutils @@ -76,8 +77,8 @@ `(("which" ,which) ("pkg-config" ,pkg-config))) (inputs - ;; TODO: Add dependency on Linux libkmod. - `(("zlib" ,zlib))) + `(("kmod" ,kmod) + ("zlib" ,zlib))) (home-page "http://mj.ucw.cz/sw/pciutils/") (synopsis "Programs for inspecting and manipulating PCI devices") (description From 89d80159b1da81c4017b46a575c3ec5dd9a96c90 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 29 May 2016 22:46:29 +0300 Subject: [PATCH 113/277] gnu: libtar: Update to 1.2.20 [fixes CVE-2013-4397, CVE-2013-4420]. * gnu/packages/compression.scm (libtar): Update to 1.2.20. [source]: Add Debian mirror. [arguments]: Add 'autoconf phase. [native-inputs]: Add autoconf, automake, libtool. [inputs]: Add zlib. [home-page]: Point to temporary home. --- gnu/packages/compression.scm | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 8043422f8b..8148ecb070 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -110,22 +110,37 @@ utility. Instead of being written in Java, FastJar is written in C.") (define-public libtar (package (name "libtar") - (version "1.2.11") + (version "1.2.20") (source (origin (method url-fetch) - (uri (string-append - "ftp://ftp.feep.net/pub/software/libtar/libtar-" - version ".tar.gz")) + (uri (list + (string-append + "ftp://ftp.feep.net/pub/software/libtar/libtar-" + version ".tar.gz") + (string-append + "mirror://debian/pool/main/libt/libtar/libtar_" + version ".orig.tar.gz"))) (sha256 (base32 - "1f3vx1wa69a6c5y0z0aakd81gygirdcm0vimazg433q8nyvfybja")))) + "02cihzl77ia0dcz7z2cga2412vyhhs5pa2355q4wpwbyga2lrwjh")))) (build-system gnu-build-system) - (arguments `(#:tests? #f)) ;no "check" target + (arguments + `(#:tests? #f ;no "check" target + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'autoconf + (lambda _ (zero? (system* "sh" "autoreconf" "-vfi"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (inputs + `(("zlib" ,zlib))) (synopsis "C library for manipulating POSIX tar files") (description "libtar is a C library for manipulating POSIX tar files. It handles adding and extracting files to/from a tar archive.") - (home-page "http://www.feep.net/libtar/") + (home-page "https://repo.or.cz/libtar.git") (license license:bsd-3))) (define-public gzip From 28dc10a455689c807abc9241ed1094d902a9d9fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 29 May 2016 23:15:14 +0200 Subject: [PATCH 114/277] gnu: glibc: Refer to the target kernel headers when cross-compiling. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes a regression introduced in efc4eb147512fa7a2c6d74d9b296cfc22b1ef198 whereby the build process corresponding to 'guix build glibc --target=mips64el-linux-gnu' would refer to the native headers instead of the target headers, leading to a build failure: ../sysdeps/unix/sysv/linux/statfs64.c: In function ‘__statfs64’: ../sysdeps/unix/sysv/linux/statfs64.c:73:1: error: control reaches end of non-void function [-Werror=return-type] } ^ When we were using CROSS_CPATH instead of CROSS_C_INCLUDE_PATH, the problem was hidden by the fact that CPATH corresponds to '-I' whereas C_INCLUDE_PATH corresponds to '-isystem', and '-isystem' directories are searched after '-I' directories. * gnu/packages/base.scm (glibc)[arguments]: Refer to the kernel headers from '%build-target-inputs' when cross-building. --- gnu/packages/base.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index beb689ea95..b5e229e06c 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -532,7 +532,10 @@ store.") ,version) (string-append "--with-headers=" - (assoc-ref %build-inputs "linux-headers") + (assoc-ref ,(if (%current-target-system) + '%build-target-inputs + '%build-inputs) + "linux-headers") "/include") ;; This is the default for most architectures as of GNU libc 2.21, From e99dd67ad8634cbfa62a3e6996f03c6d73487e53 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 06:04:46 +0300 Subject: [PATCH 115/277] gnu: libtar: Fix CVE-2013-4420. * gnu/packages/compression.scm (libtar)[source]: Add patch. * gnu/packages/patches/libtar-CVE-2013-4420.patch: New variable. * gnu/local.mk (dist_patch_DATA): Add it. This is a follow-up to 89d80159b1da81c4017b46a575c3ec5dd9a96c90. --- gnu/local.mk | 1 + gnu/packages/compression.scm | 4 +- .../patches/libtar-CVE-2013-4420.patch | 118 ++++++++++++++++++ 3 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libtar-CVE-2013-4420.patch diff --git a/gnu/local.mk b/gnu/local.mk index dade7367be..60dbb7faf3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -588,6 +588,7 @@ dist_patch_DATA = \ %D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \ %D%/packages/patches/libssh-0.6.5-CVE-2016-0739.patch \ + %D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtheora-config-guess.patch \ %D%/packages/patches/libtiff-CVE-2015-8665+CVE-2015-8683.patch \ %D%/packages/patches/libtiff-oob-accesses-in-decode.patch \ diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 8148ecb070..5746ca3e03 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -34,6 +34,7 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) + #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) @@ -122,7 +123,8 @@ utility. Instead of being written in Java, FastJar is written in C.") version ".orig.tar.gz"))) (sha256 (base32 - "02cihzl77ia0dcz7z2cga2412vyhhs5pa2355q4wpwbyga2lrwjh")))) + "02cihzl77ia0dcz7z2cga2412vyhhs5pa2355q4wpwbyga2lrwjh")) + (patches (search-patches "libtar-CVE-2013-4420.patch")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target diff --git a/gnu/packages/patches/libtar-CVE-2013-4420.patch b/gnu/packages/patches/libtar-CVE-2013-4420.patch new file mode 100644 index 0000000000..cc64711ae9 --- /dev/null +++ b/gnu/packages/patches/libtar-CVE-2013-4420.patch @@ -0,0 +1,118 @@ +Author: Raphael Geissert +Bug-Debian: https://bugs.debian.org/731860 +Description: Avoid directory traversal when extracting archives + by skipping over leading slashes and any prefix containing ".." components. +Forwarded: yes + +--- a/lib/decode.c ++++ b/lib/decode.c +@@ -22,6 +22,36 @@ + #endif + + ++char * ++safer_name_suffix (char const *file_name) ++{ ++ char const *p, *t; ++ p = t = file_name; ++ while (*p == '/') t = ++p; ++ while (*p) ++ { ++ while (p[0] == '.' && p[0] == p[1] && p[2] == '/') ++ { ++ p += 3; ++ t = p; ++ } ++ /* advance pointer past the next slash */ ++ while (*p && (p++)[0] != '/'); ++ } ++ ++ if (!*t) ++ { ++ t = "."; ++ } ++ ++ if (t != file_name) ++ { ++ /* TODO: warn somehow that the path was modified */ ++ } ++ return (char*)t; ++} ++ ++ + /* determine full path name */ + char * + th_get_pathname(TAR *t) +@@ -29,17 +59,17 @@ th_get_pathname(TAR *t) + static char filename[MAXPATHLEN]; + + if (t->th_buf.gnu_longname) +- return t->th_buf.gnu_longname; ++ return safer_name_suffix(t->th_buf.gnu_longname); + + if (t->th_buf.prefix[0] != '\0') + { + snprintf(filename, sizeof(filename), "%.155s/%.100s", + t->th_buf.prefix, t->th_buf.name); +- return filename; ++ return safer_name_suffix(filename); + } + + snprintf(filename, sizeof(filename), "%.100s", t->th_buf.name); +- return filename; ++ return safer_name_suffix(filename); + } + + +--- a/lib/extract.c ++++ b/lib/extract.c +@@ -298,14 +298,14 @@ tar_extract_hardlink(TAR * t, char *real + if (mkdirhier(dirname(filename)) == -1) + return -1; + libtar_hashptr_reset(&hp); +- if (libtar_hash_getkey(t->h, &hp, th_get_linkname(t), ++ if (libtar_hash_getkey(t->h, &hp, safer_name_suffix(th_get_linkname(t)), + (libtar_matchfunc_t)libtar_str_match) != 0) + { + lnp = (char *)libtar_hashptr_data(&hp); + linktgt = &lnp[strlen(lnp) + 1]; + } + else +- linktgt = th_get_linkname(t); ++ linktgt = safer_name_suffix(th_get_linkname(t)); + + #ifdef DEBUG + printf(" ==> extracting: %s (link to %s)\n", filename, linktgt); +@@ -343,9 +343,9 @@ tar_extract_symlink(TAR *t, char *realna + + #ifdef DEBUG + printf(" ==> extracting: %s (symlink to %s)\n", +- filename, th_get_linkname(t)); ++ filename, safer_name_suffix(th_get_linkname(t))); + #endif +- if (symlink(th_get_linkname(t), filename) == -1) ++ if (symlink(safer_name_suffix(th_get_linkname(t)), filename) == -1) + { + #ifdef DEBUG + perror("symlink()"); +--- a/lib/internal.h ++++ b/lib/internal.h +@@ -15,3 +15,4 @@ + + #include + ++char* safer_name_suffix(char const*); +--- a/lib/output.c ++++ b/lib/output.c +@@ -123,9 +123,9 @@ th_print_long_ls(TAR *t) + else + printf(" link to "); + if ((t->options & TAR_GNU) && t->th_buf.gnu_longlink != NULL) +- printf("%s", t->th_buf.gnu_longlink); ++ printf("%s", safer_name_suffix(t->th_buf.gnu_longlink)); + else +- printf("%.100s", t->th_buf.linkname); ++ printf("%.100s", safer_name_suffix(t->th_buf.linkname)); + } + + putchar('\n'); From b3d20b82809a2895402936a162e0ddc5725cb1cd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 06:42:02 +0300 Subject: [PATCH 116/277] gnu: vorbis-tools: Fix CVE-2014-9638, CVE-2014-9639, CVE-2014-9640. * gnu/packages/xiph.scm (vorbis-tools)[source]: Add patches. * gnu/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch, gnu/packages/patches/vorbis-tools-CVE-2014-9640.patch: New variables. * gnu/local.mk (dist_patch_DATA): Add them. --- gnu/local.mk | 2 + ...is-tools-CVE-2014-9638+CVE-2014-9639.patch | 83 +++++++++++++++++++ .../patches/vorbis-tools-CVE-2014-9640.patch | 29 +++++++ gnu/packages/xiph.scm | 5 +- 4 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch create mode 100644 gnu/packages/patches/vorbis-tools-CVE-2014-9640.patch diff --git a/gnu/local.mk b/gnu/local.mk index 60dbb7faf3..00acfbccf6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -766,6 +766,8 @@ dist_patch_DATA = \ %D%/packages/patches/util-linux-tests.patch \ %D%/packages/patches/upower-builddir.patch \ %D%/packages/patches/valgrind-enable-arm.patch \ + %D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch \ + %D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \ %D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \ %D%/packages/patches/vpnc-script.patch \ %D%/packages/patches/vtk-mesa-10.patch \ diff --git a/gnu/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch b/gnu/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch new file mode 100644 index 0000000000..6e389dd59e --- /dev/null +++ b/gnu/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch @@ -0,0 +1,83 @@ +From: Petter Reinholdtsen +Date: Tue, 22 Sep 2015 15:14:06 +0200 +Subject: oggenc: validate count of channels in the header (CVE-2014-9638 & + CVE-2014-9639) + +Author: Kamil Dudka +Origin: http://lists.xiph.org/pipermail/vorbis-dev/2015-February/020423.html +Bug: https://trac.xiph.org/ticket/2136 +Bug: https://trac.xiph.org/ticket/2137 +Bug-Debian: https://bugs.debian.org/776086 +Forwarded: not-needed +Reviewed-By: Petter Reinholdtsen +Last-Update: 2015-09-22 +--- + oggenc/audio.c | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +diff --git a/oggenc/audio.c b/oggenc/audio.c +index 05e42b3..1b3f179 100644 +--- a/oggenc/audio.c ++++ b/oggenc/audio.c +@@ -13,6 +13,7 @@ + #include + #endif + ++#include + #include + #include + #include +@@ -251,6 +252,7 @@ int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen) + aiff_fmt format; + aifffile *aiff = malloc(sizeof(aifffile)); + int i; ++ long channels; + + if(buf[11]=='C') + aifc=1; +@@ -277,11 +279,16 @@ int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen) + return 0; + } + +- format.channels = READ_U16_BE(buffer); ++ format.channels = channels = READ_U16_BE(buffer); + format.totalframes = READ_U32_BE(buffer+2); + format.samplesize = READ_U16_BE(buffer+6); + format.rate = (int)read_IEEE80(buffer+8); + ++ if(channels <= 0L || SHRT_MAX < channels) ++ { ++ fprintf(stderr, _("Warning: Unsupported count of channels in AIFF header\n")); ++ return 0; ++ } + aiff->bigendian = 1; + + if(aifc) +@@ -412,6 +419,7 @@ int wav_open(FILE *in, oe_enc_opt *opt, unsigned char *oldbuf, int buflen) + wav_fmt format; + wavfile *wav = malloc(sizeof(wavfile)); + int i; ++ long channels; + + /* Ok. At this point, we know we have a WAV file. Now we have to detect + * whether we support the subtype, and we have to find the actual data +@@ -449,12 +457,18 @@ int wav_open(FILE *in, oe_enc_opt *opt, unsigned char *oldbuf, int buflen) + } + + format.format = READ_U16_LE(buf); +- format.channels = READ_U16_LE(buf+2); ++ format.channels = channels = READ_U16_LE(buf+2); + format.samplerate = READ_U32_LE(buf+4); + format.bytespersec = READ_U32_LE(buf+8); + format.align = READ_U16_LE(buf+12); + format.samplesize = READ_U16_LE(buf+14); + ++ if(channels <= 0L || SHRT_MAX < channels) ++ { ++ fprintf(stderr, _("Warning: Unsupported count of channels in WAV header\n")); ++ return 0; ++ } ++ + if(format.format == -2) /* WAVE_FORMAT_EXTENSIBLE */ + { + if(len<40) diff --git a/gnu/packages/patches/vorbis-tools-CVE-2014-9640.patch b/gnu/packages/patches/vorbis-tools-CVE-2014-9640.patch new file mode 100644 index 0000000000..97d18e0db7 --- /dev/null +++ b/gnu/packages/patches/vorbis-tools-CVE-2014-9640.patch @@ -0,0 +1,29 @@ +Index: vorbis-tools/oggenc/oggenc.c +=================================================================== +--- vorbis-tools/oggenc/oggenc.c (revision 19116) ++++ vorbis-tools/oggenc/oggenc.c (revision 19117) +@@ -98,4 +98,6 @@ + 0,0,0.f, + 0, 0, 0, 0, 0}; ++ input_format raw_format = {NULL, 0, raw_open, wav_close, "raw", ++ N_("RAW file reader")}; + + int i; +@@ -240,6 +242,4 @@ + if(opt.rawmode) + { +- input_format raw_format = {NULL, 0, raw_open, wav_close, "raw", +- N_("RAW file reader")}; + + enc_opts.rate=opt.raw_samplerate; +Index: vorbis-tools/oggenc/skeleton.h +=================================================================== +--- vorbis-tools/oggenc/skeleton.h (revision 19116) ++++ vorbis-tools/oggenc/skeleton.h (revision 19117) +@@ -42,5 +42,5 @@ + ogg_int64_t start_granule; /* start granule value */ + ogg_uint32_t preroll; /* preroll */ +- unsigned char granule_shift; // a 8-bit field /* 1 byte value holding the granule shift */ ++ unsigned char granule_shift; /* 1 byte value holding the granule shift */ + char *message_header_fields; /* holds all the message header fields */ + /* current total size of the message header fields, for realloc purpose, initially zero */ diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 68f76d5c5c..d1597e96ea 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -270,7 +270,10 @@ Kate stream.") (sha256 (base32 "1g12bnh5ah08v529y72kfdz5lhvy75iaz7f9jskyby23m9dkk2d3")) - (patches (search-patches "vorbis-tools-CVE-2015-6749.patch")))) + (patches (search-patches + "vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch" + "vorbis-tools-CVE-2014-9640.patch" + "vorbis-tools-CVE-2015-6749.patch")))) (build-system gnu-build-system) (inputs `(("ao" ,ao) ("curl" ,curl) From d8862778c1b334cefafb92cc88e158b2cdf82a76 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 29 May 2016 23:36:37 -0400 Subject: [PATCH 117/277] gnu: graphicsmagick: Fix CVE-2016-5118. * gnu/packages/patches/graphicsmagick-CVE-2016-5118.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/imagemagick.scm (graphicsmagick): Use it. --- gnu/local.mk | 1 + gnu/packages/imagemagick.scm | 1 + .../graphicsmagick-CVE-2016-5118.patch | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 gnu/packages/patches/graphicsmagick-CVE-2016-5118.patch diff --git a/gnu/local.mk b/gnu/local.mk index 00acfbccf6..8844d1dbdc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -518,6 +518,7 @@ dist_patch_DATA = \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \ + %D%/packages/patches/graphicsmagick-CVE-2016-5118.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/grub-CVE-2015-8370.patch \ %D%/packages/patches/grub-gets-undeclared.patch \ diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index a7bbe0cce0..c356a47148 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -160,6 +160,7 @@ script.") (uri (string-append "ftp://ftp.graphicsmagick.org/pub/" "GraphicsMagick/" (version-major+minor version) "/GraphicsMagick-" version ".tar.xz")) + (patches (search-patches "graphicsmagick-CVE-2016-5118.patch")) (sha256 (base32 "03g6l2h8cmf231y1vma0z7x85070jm1ysgs9ppqcd3jj56jka9gx")))) diff --git a/gnu/packages/patches/graphicsmagick-CVE-2016-5118.patch b/gnu/packages/patches/graphicsmagick-CVE-2016-5118.patch new file mode 100644 index 0000000000..ddd1ce93f4 --- /dev/null +++ b/gnu/packages/patches/graphicsmagick-CVE-2016-5118.patch @@ -0,0 +1,19 @@ +Fix CVE-2016-5118 (popen() shell vulnerability via filename). + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5118 + +Upstream patch copied from the bug announcement: +http://seclists.org/oss-sec/2016/q2/432 +https://marc.info/?l=oss-security&m=146455222600609&w=2 + +diff -r 33200fc645f6 magick/blob.c +--- a/magick/blob.c Sat Nov 07 14:49:16 2015 -0600 ++++ b/magick/blob.c Sun May 29 14:12:57 2016 -0500 +@@ -68,6 +68,7 @@ + */ + #define DefaultBlobQuantum 65541 + ++#undef HAVE_POPEN + + /* + Enum declarations. From 0d567b553153921488ddf18879768b4125c9613e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 28 May 2016 01:16:43 -0400 Subject: [PATCH 118/277] gnu: libyaml: Fix CVE-2014-9130. * gnu/packages/patches/libyaml-CVE-2014-9130.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/web.scm (libyaml): Use it. --- gnu/local.mk | 1 + .../patches/libyaml-CVE-2014-9130.patch | 30 +++++++++++++++++++ gnu/packages/web.scm | 1 + 3 files changed, 32 insertions(+) create mode 100644 gnu/packages/patches/libyaml-CVE-2014-9130.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8844d1dbdc..eab390d228 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -809,6 +809,7 @@ dist_patch_DATA = \ %D%/packages/patches/xfce4-session-fix-xflock4.patch \ %D%/packages/patches/xfce4-settings-defaults.patch \ %D%/packages/patches/xmodmap-asprintf.patch \ + %D%/packages/patches/libyaml-CVE-2014-9130.patch \ %D%/packages/patches/zathura-plugindir-environment-variable.patch MISC_DISTRO_FILES = \ diff --git a/gnu/packages/patches/libyaml-CVE-2014-9130.patch b/gnu/packages/patches/libyaml-CVE-2014-9130.patch new file mode 100644 index 0000000000..800358c0d6 --- /dev/null +++ b/gnu/packages/patches/libyaml-CVE-2014-9130.patch @@ -0,0 +1,30 @@ +Fixes CVE-2014-9130 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9130 + +Upstream source: +https://bitbucket.org/xi/libyaml/commits/2b9156756423e967cfd09a61d125d883fca6f4f2 + +# HG changeset patch +# User Kirill Simonov +# Date 1417197312 21600 +# Node ID 2b9156756423e967cfd09a61d125d883fca6f4f2 +# Parent 053f53a381ff6adbbc93a31ab7fdee06a16c8a33 +Removed invalid simple key assertion (thank to Jonathan Gray). + +diff --git a/src/scanner.c b/src/scanner.c +--- a/src/scanner.c ++++ b/src/scanner.c +@@ -1106,13 +1106,6 @@ + && parser->indent == (ptrdiff_t)parser->mark.column); + + /* +- * A simple key is required only when it is the first token in the current +- * line. Therefore it is always allowed. But we add a check anyway. +- */ +- +- assert(parser->simple_key_allowed || !required); /* Impossible. */ +- +- /* + * If the current position may start a simple key, save it. + */ + diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 03f15e8bf4..7cadf9b930 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -611,6 +611,7 @@ of people.") (uri (string-append "http://pyyaml.org/download/libyaml/yaml-" version ".tar.gz")) + (patches (search-patches "libyaml-CVE-2014-9130.patch")) (sha256 (base32 "0j9731s5zjb8mjx7wzf6vh7bsqi38ay564x6s9nri2nh9cdrg9kx")))) From ccda7c8317fcbcdf929d6f8a183d4dbd2f5c1391 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 29 May 2016 14:38:54 -0400 Subject: [PATCH 119/277] gnu: pcre2: Fix CVE-2016-3191. * gnu/packages/patches/pcre2-CVE-2016-3191.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/pcre.scm (pcre2): Use it. --- gnu/local.mk | 1 + .../patches/pcre2-CVE-2016-3191.patch | 179 ++++++++++++++++++ gnu/packages/pcre.scm | 2 + 3 files changed, 182 insertions(+) create mode 100644 gnu/packages/patches/pcre2-CVE-2016-3191.patch diff --git a/gnu/local.mk b/gnu/local.mk index eab390d228..66d7c62b8d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -665,6 +665,7 @@ dist_patch_DATA = \ %D%/packages/patches/patchutils-xfail-gendiff-tests.patch \ %D%/packages/patches/patch-hurd-path-max.patch \ %D%/packages/patches/pcre-CVE-2016-3191.patch \ + %D%/packages/patches/pcre2-CVE-2016-3191.patch \ %D%/packages/patches/perl-CVE-2015-8607.patch \ %D%/packages/patches/perl-CVE-2016-2381.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \ diff --git a/gnu/packages/patches/pcre2-CVE-2016-3191.patch b/gnu/packages/patches/pcre2-CVE-2016-3191.patch new file mode 100644 index 0000000000..80f9d3d4f1 --- /dev/null +++ b/gnu/packages/patches/pcre2-CVE-2016-3191.patch @@ -0,0 +1,179 @@ +Fixes CVE-2016-3191 (remote execution of arbitrary code or denial of +service (stack-based buffer overflow) via a crafted regular expression). + +See . + +This is svn r489 at , omitting the +changes to 'testdata/testoutput8-16-4', which does not exist in the +source tarball. + +git-svn-id: svn://vcs.exim.org/pcre2/code/trunk@489 6239d852-aaf2-0410-a92c-79f79f948069 +--- + ChangeLog | 4 ++++ + src/pcre2_compile.c | 16 ++++++++++++++-- + testdata/testinput8 | 2 ++ + testdata/testoutput8-16-2 | 3 +++ + testdata/testoutput8-16-3 | 3 +++ + testdata/testoutput8-16-4 | 3 +++ + testdata/testoutput8-32-2 | 3 +++ + testdata/testoutput8-32-3 | 3 +++ + testdata/testoutput8-32-4 | 3 +++ + testdata/testoutput8-8-2 | 3 +++ + testdata/testoutput8-8-3 | 3 +++ + testdata/testoutput8-8-4 | 3 +++ + 12 files changed, 47 insertions(+), 2 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 3ce0207..65e333e 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -58,6 +58,10 @@ some head-scratching the next time this happens. + assertion, caused pcre2test to output a very large number of spaces when the + callout was taken, making the program appearing to loop. + ++12. A pattern that included (*ACCEPT) in the middle of a sufficiently deeply ++nested set of parentheses of sufficient size caused an overflow of the ++compiling workspace (which was diagnosed, but of course is not desirable). ++ + + Version 10.21 12-January-2016 + ----------------------------- +diff --git a/src/pcre2_compile.c b/src/pcre2_compile.c +index e33d620..887fbfd 100644 +--- a/src/pcre2_compile.c ++++ b/src/pcre2_compile.c +@@ -5901,10 +5901,22 @@ for (;; ptr++) + goto FAILED; + } + cb->had_accept = TRUE; ++ ++ /* In the first pass, just accumulate the length required; ++ otherwise hitting (*ACCEPT) inside many nested parentheses can ++ cause workspace overflow. */ ++ + for (oc = cb->open_caps; oc != NULL; oc = oc->next) + { +- *code++ = OP_CLOSE; +- PUT2INC(code, 0, oc->number); ++ if (lengthptr != NULL) ++ { ++ *lengthptr += CU2BYTES(1) + IMM2_SIZE; ++ } ++ else ++ { ++ *code++ = OP_CLOSE; ++ PUT2INC(code, 0, oc->number); ++ } + } + setverb = *code++ = + (cb->assert_depth > 0)? OP_ASSERT_ACCEPT : OP_ACCEPT; +diff --git a/testdata/testinput8 b/testdata/testinput8 +index ca3b1b9..7e2a1f0 100644 +--- a/testdata/testinput8 ++++ b/testdata/testinput8 +@@ -182,4 +182,6 @@ + + /((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++ + # End of testinput8 +diff --git a/testdata/testoutput8-16-2 b/testdata/testoutput8-16-2 +index 05669bb..a5e8dec 100644 +--- a/testdata/testoutput8-16-2 ++++ b/testdata/testoutput8-16-2 +@@ -1027,4 +1027,7 @@ Capturing subpattern count = 10 + May match empty string + Subject length lower bound = 0 + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++Failed: error 186 at offset 490: regular expression is too complicated ++ + # End of testinput8 +diff --git a/testdata/testoutput8-16-3 b/testdata/testoutput8-16-3 +index 31884e1..36133b3 100644 +--- a/testdata/testoutput8-16-3 ++++ b/testdata/testoutput8-16-3 +@@ -1023,4 +1023,7 @@ Capturing subpattern count = 10 + May match empty string + Subject length lower bound = 0 + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++Failed: error 114 at offset 509: missing closing parenthesis ++ + # End of testinput8 +diff --git a/testdata/testoutput8-32-2 b/testdata/testoutput8-32-2 +index babd0c7..99c4fad 100644 +--- a/testdata/testoutput8-32-2 ++++ b/testdata/testoutput8-32-2 +@@ -1023,4 +1023,7 @@ Capturing subpattern count = 10 + May match empty string + Subject length lower bound = 0 + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++Failed: error 114 at offset 509: missing closing parenthesis ++ + # End of testinput8 +diff --git a/testdata/testoutput8-32-3 b/testdata/testoutput8-32-3 +index babd0c7..99c4fad 100644 +--- a/testdata/testoutput8-32-3 ++++ b/testdata/testoutput8-32-3 +@@ -1023,4 +1023,7 @@ Capturing subpattern count = 10 + May match empty string + Subject length lower bound = 0 + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++Failed: error 114 at offset 509: missing closing parenthesis ++ + # End of testinput8 +diff --git a/testdata/testoutput8-32-4 b/testdata/testoutput8-32-4 +index babd0c7..99c4fad 100644 +--- a/testdata/testoutput8-32-4 ++++ b/testdata/testoutput8-32-4 +@@ -1023,4 +1023,7 @@ Capturing subpattern count = 10 + May match empty string + Subject length lower bound = 0 + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++Failed: error 114 at offset 509: missing closing parenthesis ++ + # End of testinput8 +diff --git a/testdata/testoutput8-8-2 b/testdata/testoutput8-8-2 +index 6a9aa0a..6dc1f42 100644 +--- a/testdata/testoutput8-8-2 ++++ b/testdata/testoutput8-8-2 +@@ -1026,4 +1026,7 @@ Capturing subpattern count = 10 + May match empty string + Subject length lower bound = 0 + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++Failed: error 114 at offset 509: missing closing parenthesis ++ + # End of testinput8 +diff --git a/testdata/testoutput8-8-3 b/testdata/testoutput8-8-3 +index 2fe1168..ae14946 100644 +--- a/testdata/testoutput8-8-3 ++++ b/testdata/testoutput8-8-3 +@@ -1024,4 +1024,7 @@ Capturing subpattern count = 10 + May match empty string + Subject length lower bound = 0 + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++Failed: error 114 at offset 509: missing closing parenthesis ++ + # End of testinput8 +diff --git a/testdata/testoutput8-8-4 b/testdata/testoutput8-8-4 +index 91993b2..6c79956 100644 +--- a/testdata/testoutput8-8-4 ++++ b/testdata/testoutput8-8-4 +@@ -1022,4 +1022,7 @@ Capturing subpattern count = 10 + May match empty string + Subject length lower bound = 0 + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++Failed: error 114 at offset 509: missing closing parenthesis ++ + # End of testinput8 +-- +2.8.3 + diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index 24ecf905e0..e954492554 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2016 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -83,6 +84,7 @@ POSIX regular expression API.") (uri (string-append "mirror://sourceforge/pcre/pcre2/" version "/pcre2-" version ".tar.bz2")) + (patches (search-patches "pcre2-CVE-2016-3191.patch")) (sha256 (base32 "1q6lrj9b08l1q39vxipb0fi88x6ybvkr6439h8bjb9r8jd81fsn6")))) From 6447e19108c69277ff2ead3fb084b04cd516e76a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 07:13:47 +0300 Subject: [PATCH 120/277] gnu: a2ps: Fix CVE-2001-1593, CVE-2014-0466. * gnu/packages/pretty-print.scm (a2ps)[source]: Add patches. * gnu/packages/patches/a2ps-CVE-2001-1593.patch, gnu/packages/patches/a2ps-CVE-2014-0466.patch: New variables. * gnu/local.mk (dist_patch_DATA): Add them. --- gnu/local.mk | 2 + gnu/packages/patches/a2ps-CVE-2001-1593.patch | 69 +++++++++++++++++++ gnu/packages/patches/a2ps-CVE-2014-0466.patch | 30 ++++++++ gnu/packages/pretty-print.scm | 6 +- 4 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/a2ps-CVE-2001-1593.patch create mode 100644 gnu/packages/patches/a2ps-CVE-2014-0466.patch diff --git a/gnu/local.mk b/gnu/local.mk index 66d7c62b8d..f5745d3372 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -412,6 +412,8 @@ GNU_SYSTEM_MODULES = \ patchdir = $(guilemoduledir)/%D%/packages/patches dist_patch_DATA = \ %D%/packages/patches/4store-fix-buildsystem.patch \ + %D%/packages/patches/a2ps-CVE-2001-1593.patch \ + %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/acl-hurd-path-max.patch \ diff --git a/gnu/packages/patches/a2ps-CVE-2001-1593.patch b/gnu/packages/patches/a2ps-CVE-2001-1593.patch new file mode 100644 index 0000000000..17b7e7d932 --- /dev/null +++ b/gnu/packages/patches/a2ps-CVE-2001-1593.patch @@ -0,0 +1,69 @@ +Index: b/lib/routines.c +=================================================================== +--- a/lib/routines.c ++++ b/lib/routines.c +@@ -242,3 +242,50 @@ + /* Don't complain if you can't unlink. Who cares of a tmp file? */ + unlink (filename); + } ++ ++/* ++ * Securely generate a temp file, and make sure it gets ++ * deleted upon exit. ++ */ ++static char ** tempfiles; ++static unsigned ntempfiles; ++ ++static void ++cleanup_tempfiles() ++{ ++ while (ntempfiles--) ++ unlink(tempfiles[ntempfiles]); ++} ++ ++char * ++safe_tempnam(const char *pfx) ++{ ++ char *dirname, *filename; ++ int fd; ++ ++ if (!(dirname = getenv("TMPDIR"))) ++ dirname = "/tmp"; ++ ++ tempfiles = (char **) realloc(tempfiles, ++ (ntempfiles+1) * sizeof(char *)); ++ if (tempfiles == NULL) ++ return NULL; ++ ++ filename = malloc(strlen(dirname) + strlen(pfx) + sizeof("/XXXXXX")); ++ if (!filename) ++ return NULL; ++ ++ sprintf(filename, "%s/%sXXXXXX", dirname, pfx); ++ ++ if ((fd = mkstemp(filename)) < 0) { ++ free(filename); ++ return NULL; ++ } ++ close(fd); ++ ++ if (ntempfiles == 0) ++ atexit(cleanup_tempfiles); ++ tempfiles[ntempfiles++] = filename; ++ ++ return filename; ++} +Index: b/lib/routines.h +=================================================================== +--- a/lib/routines.h ++++ b/lib/routines.h +@@ -255,7 +255,8 @@ + /* If _STR_ is not defined, give it a tempname in _TMPDIR_ */ + #define tempname_ensure(Str) \ + do { \ +- (Str) = (Str) ? (Str) : tempnam (NULL, "a2_"); \ ++ (Str) = (Str) ? (Str) : safe_tempnam("a2_"); \ + } while (0) ++char * safe_tempnam(const char *); + + #endif diff --git a/gnu/packages/patches/a2ps-CVE-2014-0466.patch b/gnu/packages/patches/a2ps-CVE-2014-0466.patch new file mode 100644 index 0000000000..85199e35b0 --- /dev/null +++ b/gnu/packages/patches/a2ps-CVE-2014-0466.patch @@ -0,0 +1,30 @@ +Description: CVE-2014-0466: fixps does not invoke gs with -dSAFER + A malicious PostScript file could delete files with the privileges of + the invoking user. +Origin: vendor +Bug-Debian: http://bugs.debian.org/742902 +Author: Salvatore Bonaccorso +Last-Update: 2014-03-28 + +--- a/contrib/fixps.in ++++ b/contrib/fixps.in +@@ -389,7 +389,7 @@ + eval "$command" ;; + gs) + $verbose "$program: making a full rewrite of the file ($gs)." >&2 +- $gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; ++ $gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; + esac + ) + fi +--- a/contrib/fixps.m4 ++++ b/contrib/fixps.m4 +@@ -307,7 +307,7 @@ + eval "$command" ;; + gs) + $verbose "$program: making a full rewrite of the file ($gs)." >&2 +- $gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; ++ $gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; + esac + ) + fi diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index a1692dd4de..1662126d53 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,7 +44,10 @@ version ".tar.gz")) (sha256 (base32 - "195k78m1h03m961qn7jr120z815iyb93gwi159p1p9348lyqvbpk")))) + "195k78m1h03m961qn7jr120z815iyb93gwi159p1p9348lyqvbpk")) + (patches (search-patches + "a2ps-CVE-2001-1593.patch" + "a2ps-CVE-2014-0466.patch")))) (build-system gnu-build-system) (inputs `(("psutils" ,psutils) From d01f680c07294b4b8e981ac78da5b551951175bc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 07:15:42 +0300 Subject: [PATCH 121/277] gnu: a2ps: Use 'modify-phases'. * gnu/packages/pretty-print.scm (a2ps)[arguments]: Use 'modify-phases'. --- gnu/packages/pretty-print.scm | 61 +++++++++++++++++------------------ 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index 1662126d53..8ba9780685 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -58,37 +58,36 @@ `(("gperf" ,gperf) ("perl" ,perl))) (arguments - '(#:phases (alist-cons-before - 'build 'patch-scripts - (lambda _ - (substitute* - '("afm/make_fonts_map.sh" - "tests/defs" - "tests/backup.tst" - "tests/styles.tst") - (("/bin/rm") (which "rm")))) - (alist-cons-before - 'check 'patch-test-files - ;; Alternatively, we could unpatch the shebangs in tstfiles - (lambda* (#:key inputs #:allow-other-keys) - (let ((perl (assoc-ref inputs "perl"))) - (substitute* '("tests/ps-ref/includeres.ps" - "tests/gps-ref/includeres.ps") - (("/usr/local/bin/perl") - (string-append perl "/bin/perl")))) - ;; Some of the reference postscript contain a 'version 3' - ;; string that in inconsistent with the source text in the - ;; tstfiles directory. Erroneous search-and-replace? - (substitute* '("tests/ps-ref/InsertBlock.ps" - "tests/gps-ref/InsertBlock.ps" - "tests/ps-ref/bookie.ps" - "tests/gps-ref/bookie.ps") - (("version 3") "version 2")) - (substitute* '("tests/ps-ref/psmandup.ps" - "tests/gps-ref/psmandup.ps") - (("#! */bin/sh") (string-append - "#!" (which "sh"))))) - %standard-phases)))) + '(#:phases + (modify-phases %standard-phases + (add-before 'build 'patch-scripts + (lambda _ + (substitute* + '("afm/make_fonts_map.sh" + "tests/defs" + "tests/backup.tst" + "tests/styles.tst") + (("/bin/rm") (which "rm"))))) + (add-before 'check 'patch-test-files + ;; Alternatively, we could unpatch the shebangs in tstfiles + (lambda* (#:key inputs #:allow-other-keys) + (let ((perl (assoc-ref inputs "perl"))) + (substitute* '("tests/ps-ref/includeres.ps" + "tests/gps-ref/includeres.ps") + (("/usr/local/bin/perl") + (string-append perl "/bin/perl")))) + ;; Some of the reference postscript contain a 'version 3' + ;; string that in inconsistent with the source text in the + ;; tstfiles directory. Erroneous search-and-replace? + (substitute* '("tests/ps-ref/InsertBlock.ps" + "tests/gps-ref/InsertBlock.ps" + "tests/ps-ref/bookie.ps" + "tests/gps-ref/bookie.ps") + (("version 3") "version 2")) + (substitute* '("tests/ps-ref/psmandup.ps" + "tests/gps-ref/psmandup.ps") + (("#! */bin/sh") (string-append + "#!" (which "sh"))))))))) (home-page "http://www.gnu.org/software/a2ps") (synopsis "Any file to PostScript, including pretty-printing") (description From 9116f1269089ecf88ed9465498f7f9482dd978c6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 09:35:10 +0300 Subject: [PATCH 122/277] gnu: antiword: Fix CVE-2014-8123. * gnu/packages/textutils.scm (antiword)[source]: Add patch. * gnu/packages/patches/antiword-CVE-2014-8123: New variable. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../patches/antiword-CVE-2014-8123.patch | 21 +++++++++++++++++++ gnu/packages/textutils.scm | 5 ++++- 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/antiword-CVE-2014-8123.patch diff --git a/gnu/local.mk b/gnu/local.mk index f5745d3372..4dda1fa28a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -424,6 +424,7 @@ dist_patch_DATA = \ %D%/packages/patches/aegis-test-fixup-2.patch \ %D%/packages/patches/agg-am_c_prototype.patch \ %D%/packages/patches/alsa-lib-mips-atomic-fix.patch \ + %D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/apr-skip-getservbyname-test.patch \ %D%/packages/patches/arb-ldconfig.patch \ %D%/packages/patches/ath9k-htc-firmware-binutils.patch \ diff --git a/gnu/packages/patches/antiword-CVE-2014-8123.patch b/gnu/packages/patches/antiword-CVE-2014-8123.patch new file mode 100644 index 0000000000..d8d346a634 --- /dev/null +++ b/gnu/packages/patches/antiword-CVE-2014-8123.patch @@ -0,0 +1,21 @@ +Description: Add check for buffer overflow with malformed input files + This was later re-found and became CVE-2014-8123. +Author: +Bug-Debian: http://bugs.debian.org/407015 +Bug-Debian: https://bugs.debian.org/771768 +Forwarded: http://seclists.org/oss-sec/2014/q4/870 +Last-Update: 2016-01-11 + +--- antiword-0.37~/wordole.c 2005-08-26 21:49:57.000000000 +0200 ++++ antiword-0.37/wordole.c 2009-06-03 22:31:15.948014682 +0200 +@@ -259,6 +259,10 @@ + } + tNameSize = (size_t)usGetWord(0x40, aucBytes); + tNameSize = (tNameSize + 1) / 2; ++ if ( tNameSize > sizeof(atPPSlist[iIndex].szName)) { ++ werr(0, "Name Size of PPS %d is too large", iIndex); ++ tNameSize = sizeof(atPPSlist[iIndex].szName); ++ } + vName2String(atPPSlist[iIndex].szName, aucBytes, tNameSize); + atPPSlist[iIndex].ucType = ucGetByte(0x42, aucBytes); + if (atPPSlist[iIndex].ucType == 5) { diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 080c95ba1c..ebcf4b9a1f 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Roel Janssen ;;; Copyright © 2016 Jelle Licht ;;; Copyright © 2016 Alex Griffin +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +30,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (guix build-system trivial) + #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages python) #:use-module (gnu packages zip)) @@ -306,7 +308,8 @@ regular expression object can be specified.") "/antiword-" version ".tar.gz")) (sha256 (base32 - "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f")))) + "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f")) + (patches (search-patches "antiword-CVE-2014-8123.patch")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests From 538884ccef762c3410bf2a75af236803eca6b024 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 09:56:39 +0300 Subject: [PATCH 123/277] gnu: jansson: Fix CVE-2016-4425. * gnu/packages/web.scm (jansson)[source]: Add patch. * gnu/packages/patches/jansson-CVE-2016-4425.patch: New variable. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../patches/jansson-CVE-2016-4425.patch | 125 ++++++++++++++++++ gnu/packages/web.scm | 3 +- 3 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/jansson-CVE-2016-4425.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4dda1fa28a..63ac668fc9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -551,6 +551,7 @@ dist_patch_DATA = \ %D%/packages/patches/ilmbase-fix-tests.patch \ %D%/packages/patches/inkscape-drop-wait-for-targets.patch \ %D%/packages/patches/irrlicht-mesa-10.patch \ + %D%/packages/patches/jansson-CVE-2016-4425.patch \ %D%/packages/patches/jasper-CVE-2007-2721.patch \ %D%/packages/patches/jasper-CVE-2008-3520.patch \ %D%/packages/patches/jasper-CVE-2008-3522.patch \ diff --git a/gnu/packages/patches/jansson-CVE-2016-4425.patch b/gnu/packages/patches/jansson-CVE-2016-4425.patch new file mode 100644 index 0000000000..ebe9aa7809 --- /dev/null +++ b/gnu/packages/patches/jansson-CVE-2016-4425.patch @@ -0,0 +1,125 @@ +From 64ce0ad3731ebd77e02897b07920eadd0e2cc318 Mon Sep 17 00:00:00 2001 +From: Dmitry Janushkevich +Date: Mon, 2 May 2016 13:59:26 +0200 +Subject: [PATCH] Fix for issue #282 + +The fix limits recursion depths when parsing arrays and objects. +The limit is configurable via the `JSON_PARSER_MAX_DEPTH` setting +within `jansson_config.h` and is set by default to 2048. + +Update the RFC conformance document to note the limit; the RFC +allows limits to be set by the implementation so nothing has +actually changed w.r.t. conformance state. + +Reported by Gustavo Grieco. +--- + android/jansson_config.h | 4 ++++ + cmake/jansson_config.h.cmake | 4 ++++ + doc/conformance.rst | 10 ++++++++++ + src/jansson_config.h.in | 4 ++++ + src/load.c | 10 ++++++++++ + test/suites/invalid/recursion-depth/error | 2 ++ + test/suites/invalid/recursion-depth/input | 1 + + 7 files changed, 35 insertions(+) + create mode 100644 test/suites/invalid/recursion-depth/error + create mode 100644 test/suites/invalid/recursion-depth/input + +--- a/android/jansson_config.h ++++ b/android/jansson_config.h +@@ -36,4 +36,8 @@ + otherwise to 0. */ + #define JSON_HAVE_LOCALECONV 0 + ++/* Maximum recursion depth for parsing JSON input. ++ This limits the depth of e.g. array-within-array constructions. */ ++#define JSON_PARSER_MAX_DEPTH 2048 ++ + #endif +--- a/cmake/jansson_config.h.cmake ++++ b/cmake/jansson_config.h.cmake +@@ -60,5 +60,9 @@ + #define JSON_HAVE_LOCALECONV @JSON_HAVE_LOCALECONV@ + + ++/* Maximum recursion depth for parsing JSON input. ++ This limits the depth of e.g. array-within-array constructions. */ ++#define JSON_PARSER_MAX_DEPTH 2048 ++ + + #endif +--- a/doc/conformance.rst ++++ b/doc/conformance.rst +@@ -108,3 +108,13 @@ + are implicitly handled via the ordinary C type coercion rules (subject + to overflow semantics). Also, no support or hooks are provided for any + supplemental "bignum" type add-on packages. ++ ++Depth of nested values ++---------------------- ++ ++To avoid stack exhaustion, Jansson currently limits the nesting depth ++for arrays and objects to a certain value (default: 2048), defined as ++a macro ``JSON_PARSER_MAX_DEPTH`` within ``jansson_config.h``. ++ ++The limit is allowed to be set by the RFC; there is no recommended value ++or required minimum depth to be supported. +--- a/src/jansson_config.h.in ++++ b/src/jansson_config.h.in +@@ -36,4 +36,8 @@ + otherwise to 0. */ + #define JSON_HAVE_LOCALECONV @json_have_localeconv@ + ++/* Maximum recursion depth for parsing JSON input. ++ This limits the depth of e.g. array-within-array constructions. */ ++#define JSON_PARSER_MAX_DEPTH 2048 ++ + #endif +--- a/src/load.c ++++ b/src/load.c +@@ -61,6 +61,7 @@ + typedef struct { + stream_t stream; + strbuffer_t saved_text; ++ size_t depth; + int token; + union { + struct { +@@ -800,6 +801,12 @@ + json_t *json; + double value; + ++ lex->depth++; ++ if(lex->depth > JSON_PARSER_MAX_DEPTH) { ++ error_set(error, lex, "maximum parsing depth reached"); ++ return NULL; ++ } ++ + switch(lex->token) { + case TOKEN_STRING: { + const char *value = lex->value.string.val; +@@ -870,6 +877,7 @@ + if(!json) + return NULL; + ++ lex->depth--; + return json; + } + +@@ -877,6 +885,8 @@ + { + json_t *result; + ++ lex->depth = 0; ++ + lex_scan(lex, error); + if(!(flags & JSON_DECODE_ANY)) { + if(lex->token != '[' && lex->token != '{') { +--- /dev/null ++++ b/test/suites/invalid/recursion-depth/error +@@ -0,0 +1,2 @@ ++1 2049 2049 ++maximum parsing depth reached near '[' +--- /dev/null ++++ b/test/suites/invalid/recursion-depth/input +@@ -0,0 +1 @@ ++[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 7cadf9b930..9a7f9d2b3c 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -232,7 +232,8 @@ and UNIX socket support.") version ".tar.gz")) (sha256 (base32 - "1mvq9p85khsl818i4vbszyfab0fd45mdrwrxjkzw05mk1xcyc1br")))) + "1mvq9p85khsl818i4vbszyfab0fd45mdrwrxjkzw05mk1xcyc1br")) + (patches (search-patches "jansson-CVE-2016-4425.patch")))) (build-system gnu-build-system) (home-page "http://www.digip.org/jansson/") (synopsis "JSON C library") From b507646160b1c20ce9bbb5a74a5f5bc842fa21b1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 10:16:42 +0300 Subject: [PATCH 124/277] gnu: tinyproxy: Update to 1.8.4 [Fixes CVE-2012-3505]. * gnu/packages/web.scm (tinyproxy): Update to 1.8.4. [source]: Download from new location. [home-page]: Project has moved to Github. --- gnu/packages/web.scm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 9a7f9d2b3c..f1e03da3ca 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -528,16 +528,15 @@ used to validate and fix HTML data.") (define-public tinyproxy (package (name "tinyproxy") - (version "1.8.3") + (version "1.8.4") (source (origin (method url-fetch) - (uri (string-append - "https://download.banu.com/tinyproxy/" - (version-major+minor version) - "/tinyproxy-" version ".tar.gz")) + (uri (string-append "https://github.com/tinyproxy/tinyproxy/" + "releases/download/" version "/tinyproxy-" + version ".tar.xz")) (sha256 (base32 - "05y0y2q9j10x72y1fipya6bmc8hjcdf3kfw7dh8ahczpy341c938")))) + "002hi97687czhfkwsjkr174yvlp10224qi6gd5s53z230bgls7x4")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -560,7 +559,7 @@ used to validate and fix HTML data.") ("docbook-xml" ,docbook-xml) ("docbook-xsl" ,docbook-xsl) ("libxslt" ,libxslt))) - (home-page "https://banu.com/tinyproxy/") + (home-page "https://tinyproxy.github.io/") (synopsis "Light-weight HTTP/HTTPS proxy daemon") (description "Tinyproxy is a light-weight HTTP/HTTPS proxy daemon. Designed from the ground up to be fast and yet small, it is an ideal From 4b23c4b36ab0a7cd5a54631861610b9adb92d582 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 10:20:23 +0300 Subject: [PATCH 125/277] gnu: dtach: Update to 0.9 [Fixes CVE-2012-3368]. * gnu/packages/screen.scm (dtach): Update to 0.9. --- gnu/packages/screen.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index 4b9bacf3e5..ea17659b1b 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,14 +68,14 @@ view to show two terminals at once.") (define-public dtach (package (name "dtach") - (version "0.8") + (version "0.9") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/dtach/dtach-" version ".tar.gz")) (sha256 (base32 - "1agjp08zxxxfni62sqx9qsd9526yqwlz7ry07lfq3clavyylwq8n")))) + "1wwj2hlngi8qn2pisvhyfxxs8gyqjlgrrv5lz91w8ly54dlzvs9j")))) (build-system gnu-build-system) (arguments ;; No install target. From f228aa154304ae56dd229b2bdda02d8582acb763 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 10:21:48 +0300 Subject: [PATCH 126/277] gnu: dtach: Use 'modify-phases'. * gnu/packages/screen.scm (dtach)[arguments]: Use 'modify-phases'. --- gnu/packages/screen.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index ea17659b1b..5827a1c53e 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -79,12 +79,12 @@ view to show two terminals at once.") (build-system gnu-build-system) (arguments ;; No install target. - '(#:phases (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (install-file "dtach" (string-append out "/bin")))) - %standard-phases) + '(#:phases + (modify-phases %standard-phases + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (install-file "dtach" (string-append out "/bin")))))) ;; No check target. #:tests? #f)) (home-page "http://dtach.sourceforge.net/") From 321dc4dfe4392b847c089110fb57e160635d6719 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 11:37:03 +0300 Subject: [PATCH 127/277] download: Update Sourceforge mirrors. * guix/download.scm (mirrors)[sourceforge]: Update mirror list. --- guix/download.scm | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/guix/download.scm b/guix/download.scm index 67c55aff33..c6f2d6c8e6 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -98,14 +98,28 @@ "http://savannah.c3sl.ufpr.br/" "http://www.centervenus.com/mirrors/nongnu/" "http://download.savannah.gnu.org/releases-noredirect/") - (sourceforge + (sourceforge ; https://sourceforge.net/p/forge/documentation/Mirrors/ "http://prdownloads.sourceforge.net/" "http://heanet.dl.sourceforge.net/sourceforge/" - "http://surfnet.dl.sourceforge.net/sourceforge/" "http://dfn.dl.sourceforge.net/sourceforge/" - "http://mesh.dl.sourceforge.net/sourceforge/" - "http://ovh.dl.sourceforge.net/sourceforge/" - "http://osdn.dl.sourceforge.net/sourceforge/") + "http://freefr.dl.sourceforge.net/sourceforge/" + "http://internode.dl.sourceforge.net/sourceforge/" + "http://iweb.dl.sourceforge.net/sourceforge/" + "http://jaist.dl.sourceforge.net/sourceforge/" + "http://kaz.dl.sourceforge.net/sourceforge/" + "http://kent.dl.sourceforge.net/sourceforge/" + "http://liquidtelecom.dl.sourceforge.net/sourceforge/" + "http://nbtelecom.dl.sourceforge.net/sourceforge/" + "http://nchc.dl.sourceforge.net/sourceforge/" + "http://ncu.dl.sourceforge.net/sourceforge/" + "http://netcologne.dl.sourceforge.net/sourceforge/" + "http://netix.dl.sourceforge.net/sourceforge/" + "http://pilotfiber.dl.sourceforge.net/sourceforge/" + "http://superb-sea2.dl.sourceforge.net/sourceforge/" + "http://tenet.dl.sourceforge.net/sourceforge/" + "http://ufpr.dl.sourceforge.net/sourceforge/" + "http://vorboss.dl.sourceforge.net/sourceforge/" + "http://netassist.dl.sourceforge.net/sourceforge/") (kernel.org "http://www.all.kernel.org/pub/" "http://ramses.wh2.tu-dresden.de/pub/mirrors/kernel.org/" From 4f3e02f198719c98a46aa3060fbd9bececa20f87 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 11:46:12 +0300 Subject: [PATCH 128/277] gnu: t1lib: Fix CVE-2010-2642, CVE-2011-{0764, 1552, 1553, 1554}. * gnu/packages/fontutils.scm (t1lib)[source]: Add patches. * gnu/packages/patches/t1lib-CVE-2010-2642.patch, gnu/packages/patches/t1lib-CVE-2011-0764.patch, gnu/packages/patches/t1lib-CVE-2011-1552+CVE-2011-1553+CVE-2011-1554.patch: New variables. * gnu/local.mk (dist_patch_DATA): Add them. --- gnu/local.mk | 3 + gnu/packages/fontutils.scm | 6 +- .../patches/t1lib-CVE-2010-2642.patch | 24 ++++ .../patches/t1lib-CVE-2011-0764.patch | 32 +++++ ...011-1552+CVE-2011-1553+CVE-2011-1554.patch | 133 ++++++++++++++++++ 5 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/t1lib-CVE-2010-2642.patch create mode 100644 gnu/packages/patches/t1lib-CVE-2011-0764.patch create mode 100644 gnu/packages/patches/t1lib-CVE-2011-1552+CVE-2011-1553+CVE-2011-1554.patch diff --git a/gnu/local.mk b/gnu/local.mk index 63ac668fc9..1f2c2dd24d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -741,6 +741,9 @@ dist_patch_DATA = \ %D%/packages/patches/sudo-CVE-2015-5602.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/synfig-build-fix.patch \ + %D%/packages/patches/t1lib-CVE-2010-2642.patch \ + %D%/packages/patches/t1lib-CVE-2011-0764.patch \ + %D%/packages/patches/t1lib-CVE-2011-1552+CVE-2011-1553+CVE-2011-1554.patch \ %D%/packages/patches/tar-d_ino_in_dirent-fix.patch \ %D%/packages/patches/tar-skip-unreliable-tests.patch \ %D%/packages/patches/tcl-mkindex-deterministic.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 3847cfb8d7..73ce685d51 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -286,7 +286,11 @@ high quality, anti-aliased and subpixel rendered text on a display.") (string-append "https://fossies.org/linux/misc/old/" name "-" version ".tar.gz"))) (sha256 (base32 - "0nbvjpnmcznib1nlgg8xckrmsw3haa154byds2h90y2g0nsjh4w2")))) + "0nbvjpnmcznib1nlgg8xckrmsw3haa154byds2h90y2g0nsjh4w2")) + (patches (search-patches + "t1lib-CVE-2010-2642.patch" + "t1lib-CVE-2011-0764.patch" + "t1lib-CVE-2011-1552+CVE-2011-1553+CVE-2011-1554.patch")))) (build-system gnu-build-system) (arguments ;; Making the documentation requires latex, but t1lib is also an input diff --git a/gnu/packages/patches/t1lib-CVE-2010-2642.patch b/gnu/packages/patches/t1lib-CVE-2010-2642.patch new file mode 100644 index 0000000000..cd54889585 --- /dev/null +++ b/gnu/packages/patches/t1lib-CVE-2010-2642.patch @@ -0,0 +1,24 @@ +diff --git a/lib/t1lib/parseAFM.c b/lib/t1lib/parseAFM.c +index 6a31d7f..ba64541 100644 +--- a/lib/t1lib/parseAFM.c ++++ b/lib/t1lib/parseAFM.c +@@ -199,7 +199,9 @@ static char *token(stream) + idx = 0; + + while (ch != EOF && ch != ' ' && ch != CR && ch != LF && +- ch != CTRL_Z && ch != '\t' && ch != ':' && ch != ';'){ ++ ch != CTRL_Z && ch != '\t' && ch != ':' && ch != ';' ++ && idx < (MAX_NAME -1)) ++ { + ident[idx++] = ch; + ch = fgetc(stream); + } /* while */ +@@ -235,7 +237,7 @@ static char *linetoken(stream) + while ((ch = fgetc(stream)) == ' ' || ch == '\t' ); + + idx = 0; +- while (ch != EOF && ch != CR && ch != LF && ch != CTRL_Z) ++ while (ch != EOF && ch != CR && ch != LF && ch != CTRL_Z && idx < (MAX_NAME - 1)) + { + ident[idx++] = ch; + ch = fgetc(stream); diff --git a/gnu/packages/patches/t1lib-CVE-2011-0764.patch b/gnu/packages/patches/t1lib-CVE-2011-0764.patch new file mode 100644 index 0000000000..c2d9e173b7 --- /dev/null +++ b/gnu/packages/patches/t1lib-CVE-2011-0764.patch @@ -0,0 +1,32 @@ +Description: Don't lookup previous point if there isn't any +Author: Marc Deslauriers +Forwarded: no + +Index: t1lib-5.1.2/lib/type1/type1.c +=================================================================== +--- t1lib-5.1.2.orig/lib/type1/type1.c 2011-12-13 14:24:14.280965637 -0600 ++++ t1lib-5.1.2/lib/type1/type1.c 2011-12-13 14:25:25.893320747 -0600 +@@ -1700,6 +1700,7 @@ + long pindex = 0; + + /* compute hinting for previous segment! */ ++ if (ppoints == NULL) Error0i("RLineTo: No previous point!\n"); + FindStems( currx, curry, currx-ppoints[numppoints-2].x, curry-ppoints[numppoints-2].y, dx, dy); + + /* Allocate a new path point and pre-setup data */ +@@ -1728,6 +1729,7 @@ + long pindex = 0; + + /* compute hinting for previous point! */ ++ if (ppoints == NULL) Error0i("RRCurveTo: No previous point!\n"); + FindStems( currx, curry, currx-ppoints[numppoints-2].x, curry-ppoints[numppoints-2].y, dx1, dy1); + + /* Allocate three new path points and pre-setup data */ +@@ -1903,6 +1905,7 @@ + FindStems( currx, curry, 0, 0, dx, dy); + } + else { ++ if (ppoints == NULL) Error0i("RMoveTo: No previous point!\n"); + FindStems( currx, curry, ppoints[numppoints-2].x, ppoints[numppoints-2].y, dx, dy); + } + diff --git a/gnu/packages/patches/t1lib-CVE-2011-1552+CVE-2011-1553+CVE-2011-1554.patch b/gnu/packages/patches/t1lib-CVE-2011-1552+CVE-2011-1553+CVE-2011-1554.patch new file mode 100644 index 0000000000..aaa31f7b93 --- /dev/null +++ b/gnu/packages/patches/t1lib-CVE-2011-1552+CVE-2011-1553+CVE-2011-1554.patch @@ -0,0 +1,133 @@ +Author: Jaroslav Škarvada +Description: Fix more crashes on oversized fonts +Bug-Redhat: http://bugzilla.redhat.com/show_bug.cgi?id=692909 +Index: t1lib-5.1.2/lib/type1/lines.c +=================================================================== +--- t1lib-5.1.2.orig/lib/type1/lines.c 2007-12-23 09:49:42.000000000 -0600 ++++ t1lib-5.1.2/lib/type1/lines.c 2012-01-17 14:15:08.000000000 -0600 +@@ -67,6 +67,10 @@ + None. + */ + ++#define BITS (sizeof(LONG)*8) ++#define HIGHTEST(p) (((p)>>(BITS-2)) != 0) /* includes sign bit */ ++#define TOOBIG(xy) ((xy < 0) ? HIGHTEST(-xy) : HIGHTEST(xy)) ++ + /* + :h2.StepLine() - Produces Run Ends for a Line After Checks + +@@ -84,6 +88,9 @@ + IfTrace4((LineDebug > 0), ".....StepLine: (%d,%d) to (%d,%d)\n", + x1, y1, x2, y2); + ++ if ( TOOBIG(x1) || TOOBIG(x2) || TOOBIG(y1) || TOOBIG(y2)) ++ abort("Lines this big not supported", 49); ++ + dy = y2 - y1; + + /* +Index: t1lib-5.1.2/lib/type1/objects.c +=================================================================== +--- t1lib-5.1.2.orig/lib/type1/objects.c 2007-12-23 09:49:42.000000000 -0600 ++++ t1lib-5.1.2/lib/type1/objects.c 2012-01-17 14:15:08.000000000 -0600 +@@ -1137,12 +1137,13 @@ + "Context: out of them", /* 46 */ + "MatrixInvert: can't", /* 47 */ + "xiStub called", /* 48 */ +- "Illegal access type1 abort() message" /* 49 */ ++ "Lines this big not supported", /* 49 */ ++ "Illegal access type1 abort() message" /* 50 */ + }; + +- /* no is valid from 1 to 48 */ +- if ( (number<1)||(number>48)) +- number=49; ++ /* no is valid from 1 to 49 */ ++ if ( (number<1)||(number>49)) ++ number=50; + return( err_msgs[number-1]); + + } +Index: t1lib-5.1.2/lib/type1/type1.c +=================================================================== +--- t1lib-5.1.2.orig/lib/type1/type1.c 2012-01-17 14:13:28.000000000 -0600 ++++ t1lib-5.1.2/lib/type1/type1.c 2012-01-17 14:19:54.000000000 -0600 +@@ -1012,6 +1012,7 @@ + double nextdtana = 0.0; /* tangent of post-delta against horizontal line */ + double nextdtanb = 0.0; /* tangent of post-delta against vertical line */ + ++ if (ppoints == NULL || numppoints < 1) Error0v("FindStems: No previous point!\n"); + + /* setup default hinted position */ + ppoints[numppoints-1].ax = ppoints[numppoints-1].x; +@@ -1289,7 +1290,7 @@ + static int DoRead(CodeP) + int *CodeP; + { +- if (strindex >= CharStringP->len) return(FALSE); /* end of string */ ++ if (!CharStringP || strindex >= CharStringP->len) return(FALSE); /* end of string */ + /* We handle the non-documented Adobe convention to use lenIV=-1 to + suppress charstring encryption. */ + if (blues->lenIV==-1) { +@@ -1700,7 +1701,7 @@ + long pindex = 0; + + /* compute hinting for previous segment! */ +- if (ppoints == NULL) Error0i("RLineTo: No previous point!\n"); ++ if (ppoints == NULL || numppoints < 2) Error0i("RLineTo: No previous point!\n"); + FindStems( currx, curry, currx-ppoints[numppoints-2].x, curry-ppoints[numppoints-2].y, dx, dy); + + /* Allocate a new path point and pre-setup data */ +@@ -1729,7 +1730,7 @@ + long pindex = 0; + + /* compute hinting for previous point! */ +- if (ppoints == NULL) Error0i("RRCurveTo: No previous point!\n"); ++ if (ppoints == NULL || numppoints < 2) Error0i("RRCurveTo: No previous point!\n"); + FindStems( currx, curry, currx-ppoints[numppoints-2].x, curry-ppoints[numppoints-2].y, dx1, dy1); + + /* Allocate three new path points and pre-setup data */ +@@ -1788,7 +1789,9 @@ + long tmpind; + double deltax = 0.0; + double deltay = 0.0; +- ++ ++ if (ppoints == NULL || numppoints < 1) Error0i("DoClosePath: No previous point!"); ++ + /* If this ClosePath command together with the starting point of this + path completes to a segment aligned to a stem, we would miss + hinting for this point. --> Check and explicitly care for this! */ +@@ -1803,6 +1806,7 @@ + deltax = ppoints[i].x - ppoints[numppoints-1].x; + deltay = ppoints[i].y - ppoints[numppoints-1].y; + ++ if (ppoints == NULL || numppoints <= i + 1) Error0i("DoClosePath: No previous point!"); + /* save nummppoints and reset to move point */ + tmpind = numppoints; + numppoints = i + 1; +@@ -1905,7 +1909,7 @@ + FindStems( currx, curry, 0, 0, dx, dy); + } + else { +- if (ppoints == NULL) Error0i("RMoveTo: No previous point!\n"); ++ if (ppoints == NULL || numppoints < 2) Error0i("RMoveTo: No previous point!\n"); + FindStems( currx, curry, ppoints[numppoints-2].x, ppoints[numppoints-2].y, dx, dy); + } + +@@ -2155,6 +2159,7 @@ + DOUBLE cx, cy; + DOUBLE ex, ey; + ++ if (ppoints == NULL || numppoints < 8) Error0v("FlxProc: No previous point!"); + + /* Our PPOINT list now contains 7 moveto commands which + are about to be consumed by the Flex mechanism. --> Remove these +@@ -2324,6 +2329,7 @@ + /* Returns currentpoint on stack */ + static void FlxProc2() + { ++ if (ppoints == NULL || numppoints < 1) Error0v("FlxProc2: No previous point!"); + /* Push CurrentPoint on fake PostScript stack */ + PSFakePush( ppoints[numppoints-1].x); + PSFakePush( ppoints[numppoints-1].y); From 7d48938a590c676e6f140a976bfcf26aadeb008a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 11:53:45 +0300 Subject: [PATCH 129/277] gnu: vte-0.28: Fix CVE-2012-2738. * gnu/packages/gnome.scm (vte-0.28)[source]: Add patches. * gnu/packages/patches/vte-CVE-2012-2738-pt1.patch, gnu/packages/patches/vte-CVE-2012-2738-pt2.patch: New variables. * gnu/local.mk (dist_patch_DATA): Add them. --- gnu/local.mk | 2 + gnu/packages/gnome.scm | 5 +- .../patches/vte-CVE-2012-2738-pt1.patch | 40 +++++++++ .../patches/vte-CVE-2012-2738-pt2.patch | 82 +++++++++++++++++++ 4 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/vte-CVE-2012-2738-pt1.patch create mode 100644 gnu/packages/patches/vte-CVE-2012-2738-pt2.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1f2c2dd24d..dc1b521b6e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -779,6 +779,8 @@ dist_patch_DATA = \ %D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \ %D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \ %D%/packages/patches/vpnc-script.patch \ + %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ + %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ %D%/packages/patches/vtk-mesa-10.patch \ %D%/packages/patches/w3m-libgc.patch \ %D%/packages/patches/w3m-force-ssl_verify_server-on.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 04d9bb75bd..0d9c946fd5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1820,7 +1820,10 @@ editors, IDEs, etc.") name "-" version ".tar.xz")) (sha256 (base32 - "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6")))) + "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6")) + (patches (search-patches + "vte-CVE-2012-2738-pt1.patch" + "vte-CVE-2012-2738-pt2.patch")))) (arguments '(#:configure-flags '("--disable-python"))) (native-inputs diff --git a/gnu/packages/patches/vte-CVE-2012-2738-pt1.patch b/gnu/packages/patches/vte-CVE-2012-2738-pt1.patch new file mode 100644 index 0000000000..fd45407939 --- /dev/null +++ b/gnu/packages/patches/vte-CVE-2012-2738-pt1.patch @@ -0,0 +1,40 @@ +From feeee4b5832b17641e505b7083e0d299fdae318e Mon Sep 17 00:00:00 2001 +From: Christian Persch +Date: Sat, 19 May 2012 17:36:09 +0000 +Subject: emulation: Limit integer arguments to 65535 + +To guard against malicious sequences containing excessively big numbers, +limit all parsed numbers to 16 bit range. Doing this here in the parsing +routine is a catch-all guard; this doesn't preclude enforcing +more stringent limits in the handlers themselves. + +https://bugzilla.gnome.org/show_bug.cgi?id=676090 +--- +diff --git a/src/table.c b/src/table.c +index 140e8c8..85cf631 100644 +--- a/src/table.c ++++ b/src/table.c +@@ -550,7 +550,7 @@ _vte_table_extract_numbers(GValueArray **array, + if (G_UNLIKELY (*array == NULL)) { + *array = g_value_array_new(1); + } +- g_value_set_long(&value, total); ++ g_value_set_long(&value, CLAMP (total, 0, G_MAXUSHORT)); + g_value_array_append(*array, &value); + } while (i++ < arginfo->length); + g_value_unset(&value); +diff --git a/src/vteseq.c b/src/vteseq.c +index 457c06a..46def5b 100644 +--- a/src/vteseq.c ++++ b/src/vteseq.c +@@ -557,7 +557,7 @@ vte_sequence_handler_multiple(VteTerminal *terminal, + GValueArray *params, + VteTerminalSequenceHandler handler) + { +- vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXLONG); ++ vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXUSHORT); + } + + static void +-- +cgit v0.9.0.2 diff --git a/gnu/packages/patches/vte-CVE-2012-2738-pt2.patch b/gnu/packages/patches/vte-CVE-2012-2738-pt2.patch new file mode 100644 index 0000000000..e98fd35b95 --- /dev/null +++ b/gnu/packages/patches/vte-CVE-2012-2738-pt2.patch @@ -0,0 +1,82 @@ +From 98ce2f265f986fb88c38d508286bb5e3716b9e74 Mon Sep 17 00:00:00 2001 +From: Christian Persch +Date: Sat, 19 May 2012 18:04:12 +0000 +Subject: emulation: Limit repetitions + +Don't allow malicious sequences to cause excessive repetitions. + +https://bugzilla.gnome.org/show_bug.cgi?id=676090 +--- +diff --git a/src/vteseq.c b/src/vteseq.c +index 46def5b..7fb4707 100644 +--- a/src/vteseq.c ++++ b/src/vteseq.c +@@ -1397,7 +1397,7 @@ vte_sequence_handler_dc (VteTerminal *terminal, GValueArray *params) + static void + vte_sequence_handler_DC (VteTerminal *terminal, GValueArray *params) + { +- vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_dc); ++ vte_sequence_handler_multiple_r(terminal, params, vte_sequence_handler_dc); + } + + /* Delete a line at the current cursor position. */ +@@ -1790,7 +1790,7 @@ vte_sequence_handler_reverse_index (VteTerminal *terminal, GValueArray *params) + static void + vte_sequence_handler_RI (VteTerminal *terminal, GValueArray *params) + { +- vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_nd); ++ vte_sequence_handler_multiple_r(terminal, params, vte_sequence_handler_nd); + } + + /* Save cursor (position). */ +@@ -2782,8 +2782,7 @@ vte_sequence_handler_insert_lines (VteTerminal *terminal, GValueArray *params) + { + GValue *value; + VteScreen *screen; +- long param, end, row; +- int i; ++ long param, end, row, i, limit; + screen = terminal->pvt->screen; + /* The default is one. */ + param = 1; +@@ -2801,7 +2800,13 @@ vte_sequence_handler_insert_lines (VteTerminal *terminal, GValueArray *params) + } else { + end = screen->insert_delta + terminal->row_count - 1; + } +- /* Insert the new lines at the cursor. */ ++ ++ /* Only allow to insert as many lines as there are between this row ++ * and the end of the scrolling region. See bug #676090. ++ */ ++ limit = end - row + 1; ++ param = MIN (param, limit); ++ + for (i = 0; i < param; i++) { + /* Clear a line off the end of the region and add one to the + * top of the region. */ +@@ -2822,8 +2827,7 @@ vte_sequence_handler_delete_lines (VteTerminal *terminal, GValueArray *params) + { + GValue *value; + VteScreen *screen; +- long param, end, row; +- int i; ++ long param, end, row, i, limit; + + screen = terminal->pvt->screen; + /* The default is one. */ +@@ -2842,6 +2846,13 @@ vte_sequence_handler_delete_lines (VteTerminal *terminal, GValueArray *params) + } else { + end = screen->insert_delta + terminal->row_count - 1; + } ++ ++ /* Only allow to delete as many lines as there are between this row ++ * and the end of the scrolling region. See bug #676090. ++ */ ++ limit = end - row + 1; ++ param = MIN (param, limit); ++ + /* Clear them from below the current cursor. */ + for (i = 0; i < param; i++) { + /* Insert a line at the end of the region and remove one from +-- +cgit v0.9.0.2 From 5f1ba08953dfa44aee9efe4d38a50ffb3d949dc2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 12:01:32 +0300 Subject: [PATCH 130/277] gnu: gegl: Fix CVE-2012-4433. * gnu/packages/gimp.scm (gegl)[source]: Add patch. * gnu/packages/patches/gegl-CVE-2012-4433.patch: New variable. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/gimp.scm | 5 +- gnu/packages/patches/gegl-CVE-2012-4433.patch | 117 ++++++++++++++++++ 3 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gegl-CVE-2012-4433.patch diff --git a/gnu/local.mk b/gnu/local.mk index dc1b521b6e..66538e69cb 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -501,6 +501,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-cross-environment-variables.patch \ %D%/packages/patches/gcc-libvtv-runpath.patch \ %D%/packages/patches/gcc-5.0-libvtv-runpath.patch \ + %D%/packages/patches/gegl-CVE-2012-4433.patch \ %D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/ghostscript-CVE-2015-3228.patch \ %D%/packages/patches/ghostscript-runpath.patch \ diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index bd2794305b..b11791b921 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) + #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages pkg-config) #:use-module (gnu packages glib) @@ -75,7 +77,8 @@ provided as well as the framework to add new color models and data types.") "/" name "-" version ".tar.bz2"))) (sha256 (base32 - "09nlv06li9nrn74ifpm7223mxpg0s7cii702z72cpbwrjh6nlbnz")))) + "09nlv06li9nrn74ifpm7223mxpg0s7cii702z72cpbwrjh6nlbnz")) + (patches (search-patches "gegl-CVE-2012-4433.patch")))) (build-system gnu-build-system) (arguments `(;; More than just the one test disabled below now fails; disable them diff --git a/gnu/packages/patches/gegl-CVE-2012-4433.patch b/gnu/packages/patches/gegl-CVE-2012-4433.patch new file mode 100644 index 0000000000..7352b78dba --- /dev/null +++ b/gnu/packages/patches/gegl-CVE-2012-4433.patch @@ -0,0 +1,117 @@ +From: Michael Gilbert +Date: Mon, 9 Sep 2013 17:34:32 +0200 +Subject: Fix_CVE-2012-4433 + +Multiple buffer overflow issues. + +Closes: #692435 +--- + operations/external/ppm-load.c | 62 ++++++++++++++++++++++++++++++++++++------ + 1 file changed, 53 insertions(+), 9 deletions(-) + +diff --git a/operations/external/ppm-load.c b/operations/external/ppm-load.c +index efe6d56..465096d 100644 +--- a/operations/external/ppm-load.c ++++ b/operations/external/ppm-load.c +@@ -36,6 +36,7 @@ gegl_chant_file_path (path, _("File"), "", _("Path of file to load.")) + #include "gegl-chant.h" + #include + #include ++#include + + typedef enum { + PIXMAP_ASCII = 51, +@@ -44,8 +45,8 @@ typedef enum { + + typedef struct { + map_type type; +- gint width; +- gint height; ++ glong width; ++ glong height; + gsize numsamples; /* width * height * channels */ + gsize bpc; /* bytes per channel */ + guchar *data; +@@ -82,12 +83,33 @@ ppm_load_read_header(FILE *fp, + } + + /* Get Width and Height */ +- img->width = strtol (header,&ptr,0); +- img->height = atoi (ptr); +- img->numsamples = img->width * img->height * CHANNEL_COUNT; ++ errno = 0; ++ img->width = strtol (header,&ptr,10); ++ if (errno) ++ { ++ g_warning ("Error reading width: %s", strerror(errno)); ++ return FALSE; ++ } ++ else if (img->width < 0) ++ { ++ g_warning ("Error: width is negative"); ++ return FALSE; ++ } ++ ++ img->height = strtol (ptr,&ptr,10); ++ if (errno) ++ { ++ g_warning ("Error reading height: %s", strerror(errno)); ++ return FALSE; ++ } ++ else if (img->width < 0) ++ { ++ g_warning ("Error: height is negative"); ++ return FALSE; ++ } + + fgets (header,MAX_CHARS_IN_ROW,fp); +- maxval = strtol (header,&ptr,0); ++ maxval = strtol (header,&ptr,10); + + if ((maxval != 255) && (maxval != 65535)) + { +@@ -109,6 +131,16 @@ ppm_load_read_header(FILE *fp, + g_warning ("%s: Programmer stupidity error", G_STRLOC); + } + ++ /* Later on, img->numsamples is multiplied with img->bpc to allocate ++ * memory. Ensure it doesn't overflow. */ ++ if (!img->width || !img->height || ++ G_MAXSIZE / img->width / img->height / CHANNEL_COUNT < img->bpc) ++ { ++ g_warning ("Illegal width/height: %ld/%ld", img->width, img->height); ++ return FALSE; ++ } ++ img->numsamples = img->width * img->height * CHANNEL_COUNT; ++ + return TRUE; + } + +@@ -229,12 +261,24 @@ process (GeglOperation *operation, + if (!ppm_load_read_header (fp, &img)) + goto out; + +- rect.height = img.height; +- rect.width = img.width; +- + /* Allocating Array Size */ ++ ++ /* Should use g_try_malloc(), but this causes crashes elsewhere because the ++ * error signalled by returning FALSE isn't properly acted upon. Therefore ++ * g_malloc() is used here which aborts if the requested memory size can't be ++ * allocated causing a controlled crash. */ + img.data = (guchar*) g_malloc (img.numsamples * img.bpc); + ++ /* No-op without g_try_malloc(), see above. */ ++ if (! img.data) ++ { ++ g_warning ("Couldn't allocate %" G_GSIZE_FORMAT " bytes, giving up.", ((gsize)img.numsamples * img.bpc)); ++ goto out; ++ } ++ ++ rect.height = img.height; ++ rect.width = img.width; ++ + switch (img.bpc) + { + case 1: From 4509ec72a4f7034e9a7087e802a84bbe04f4c12c Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 26 May 2016 11:45:16 +0300 Subject: [PATCH 131/277] gnu: emacs: Fix indentation of scheme keyword lists. * gnu/packages/patches/emacs-fix-scheme-indent-function.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/emacs.scm (emacs)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/emacs.scm | 1 + .../emacs-fix-scheme-indent-function.patch | 29 +++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 gnu/packages/patches/emacs-fix-scheme-indent-function.patch diff --git a/gnu/local.mk b/gnu/local.mk index 66538e69cb..6110d2d784 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -472,6 +472,7 @@ dist_patch_DATA = \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/einstein-build.patch \ %D%/packages/patches/emacs-exec-path.patch \ + %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \ %D%/packages/patches/eudev-rules-directory.patch \ diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 5d6db5ae11..7d0427d071 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -80,6 +80,7 @@ (base32 "0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx")) (patches (search-patches "emacs-exec-path.patch" + "emacs-fix-scheme-indent-function.patch" "emacs-source-date-epoch.patch")) (modules '((guix build utils))) (snippet diff --git a/gnu/packages/patches/emacs-fix-scheme-indent-function.patch b/gnu/packages/patches/emacs-fix-scheme-indent-function.patch new file mode 100644 index 0000000000..c5a426802c --- /dev/null +++ b/gnu/packages/patches/emacs-fix-scheme-indent-function.patch @@ -0,0 +1,29 @@ +Fix 'scheme-indent-function' to indent s-expressions starting with a keyword +properly, like this: + +(#:foo 1 + #:bar 2) + +instead of like this: + +(#:foo 1 + #:bar 2) + +The fix is made by Mark H Weaver : + + +--- a/lisp/progmodes/scheme.el ++++ b/lisp/progmodes/scheme.el +@@ -482,6 +482,12 @@ + (> (length function) 3) + (string-match "\\`def" function))) + (lisp-indent-defform state indent-point)) ++ ((and (null method) ++ (> (length function) 1) ++ ;; The '#' in '#:' seems to get lost, not sure why ++ (string-match "\\`:" function)) ++ (let ((lisp-body-indent 1)) ++ (lisp-indent-defform state indent-point))) + ((integerp method) + (lisp-indent-specform method state + indent-point normal-indent)) From ad6c4bc48a3fcb6195e4382df4036e2efae2b5c0 Mon Sep 17 00:00:00 2001 From: humanitiesNerd Date: Fri, 27 May 2016 10:01:59 +0200 Subject: [PATCH 132/277] gnu: Add emacs-queue. * gnu/packages/emacs.scm (emacs-queue): New variable. Signed-off-by: Alex Kost --- gnu/packages/emacs.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 7d0427d071..676e6232f4 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1707,3 +1707,25 @@ It is recommended to use @code{clojure-mode} with paredit or smartparens.") The purpose of this library is to wrap all the quirks and hassle of @code{package.el} into a sane API.") (license license:gpl3+))) + +(define-public emacs-queue + (package + (name "emacs-queue") + (version "0.1.1") + (source (origin + (method uncompressed-file-fetch) + (uri (string-append "http://elpa.gnu.org/packages/queue-" + version ".el")) + (sha256 + (base32 + "0jw24fxqnf9qcaf2nh09cnds1kqfk7hal35dw83x1ari95say391")))) + (build-system emacs-build-system) + (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html") + (synopsis "Queue data structure for Emacs") + (description + "This Emacs library provides queue data structure. These queues can be +used both as a first-in last-out (FILO) and as a first-in first-out (FIFO) +stack, i.e. elements can be added to the front or back of the queue, and can +be removed from the front. This type of data structure is sometimes called an +\"output-restricted deque\".") + (license license:gpl3+))) From 32abfcf4ee6a42d0678ba40a4fcc97ca041cc382 Mon Sep 17 00:00:00 2001 From: humanitiesNerd Date: Sun, 29 May 2016 10:23:00 +0200 Subject: [PATCH 133/277] gnu: Add emacs-pkg-info. * gnu/packages/emacs.scm (emacs-pkg-info): New variable. Signed-off-by: Alex Kost --- gnu/packages/emacs.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 676e6232f4..847b609a4f 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1729,3 +1729,24 @@ stack, i.e. elements can be added to the front or back of the queue, and can be removed from the front. This type of data structure is sometimes called an \"output-restricted deque\".") (license license:gpl3+))) + +(define-public emacs-pkg-info + (package + (name "emacs-pkg-info") + (version "0.6") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/lunaryorn/pkg-info.el/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5")))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-epl" ,emacs-epl))) + (home-page "https://github.com/lunaryorn/pkg-info.el") + (synopsis "Information about Emacs packages") + (description + "This library extracts information from the installed Emacs packages.") + (license license:gpl3+))) From 565bccc569e0f74807e0474d417f2f78362c9237 Mon Sep 17 00:00:00 2001 From: humanitiesNerd Date: Sun, 29 May 2016 10:25:21 +0200 Subject: [PATCH 134/277] gnu: Add emacs-spinner. * gnu/packages/emacs.scm (emacs-spinner): New variable. Signed-off-by: Alex Kost --- gnu/packages/emacs.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 847b609a4f..a49afcf2bf 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1750,3 +1750,22 @@ be removed from the front. This type of data structure is sometimes called an (description "This library extracts information from the installed Emacs packages.") (license license:gpl3+))) + +(define-public emacs-spinner + (package + (name "emacs-spinner") + (version "1.7.1") + (source (origin + (method uncompressed-file-fetch) + (uri (string-append "http://elpa.gnu.org/packages/spinner-" + version ".el")) + (sha256 + (base32 + "1fmwzdih0kbyvs8bn38mpm4sbs2mikqy2vdykfy9g20wpa8vb681")))) + (build-system emacs-build-system) + (home-page "https://github.com/Malabarba/spinner.el") + (synopsis "Emacs mode-line spinner for operations in progress") + (description + "This Emacs package adds spinners and progress-bars to the mode-line for +ongoing operations.") + (license license:gpl3+))) From 62a45cb647b9a54005557b6d503c4df58487e887 Mon Sep 17 00:00:00 2001 From: humanitiesNerd Date: Sun, 29 May 2016 13:44:00 +0200 Subject: [PATCH 135/277] gnu: Add emacs-seq. * gnu/packages/emacs.scm (emacs-seq): New variable. Signed-off-by: Alex Kost --- gnu/packages/emacs.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index a49afcf2bf..8e66e49e76 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1769,3 +1769,23 @@ be removed from the front. This type of data structure is sometimes called an "This Emacs package adds spinners and progress-bars to the mode-line for ongoing operations.") (license license:gpl3+))) + +(define-public emacs-seq + (package + (name "emacs-seq") + (version "2.15") + (source (origin + (method url-fetch) + (uri (string-append "http://elpa.gnu.org/packages/seq-" + version ".tar")) + (sha256 + (base32 + "09wi1765bmn7i8fg6ajjfaxgs4ipc42d58zx2fdqpidrdg9c7q73")))) + (build-system emacs-build-system) + (home-page "http://elpa.gnu.org/packages/seq.html") + (synopsis "Sequence manipulation functions for Emacs") + (description + "This Emacs library provides sequence-manipulation functions that +complement basic functions provided by @code{subr.el}. All provided functions +work on lists, strings and vectors.") + (license license:gpl3+))) From 578b96af69057883a2a49a34dd6fe261cb2f4e5c Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 27 May 2016 09:58:39 -0400 Subject: [PATCH 136/277] build: emacs: Handle sources that are a single elisp file. * guix/build/emacs-build-system.scm (gnu:unpack) (store-file->elisp-source-file, unpack): New procedures. (%standard-phases): Use the new unpack procedure. --- guix/build/emacs-build-system.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index f0a9a6e125..ab970012a7 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -21,6 +21,7 @@ #:use-module (guix build utils) #:use-module (guix build emacs-utils) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (ice-9 rdelim) #:use-module (ice-9 regex) @@ -39,6 +40,27 @@ ;; archive signature. (define %install-suffix "/share/emacs/site-lisp/guix.d") +(define gnu:unpack (assoc-ref gnu:%standard-phases 'unpack)) + +(define (store-file->elisp-source-file file) + "Convert FILE, a store file name for an Emacs Lisp source file, into a file +name that has been stripped of the hash and version number." + (let-values (((name version) + (package-name->name+version + (strip-store-file-name file)))) + (string-append name ".el"))) + +(define* (unpack #:key source #:allow-other-keys) + "Unpack SOURCE into the build directory. SOURCE may be a compressed +archive, a directory, or an Emacs Lisp file." + (if (string-suffix? ".el" source) + (begin + (mkdir "source") + (chdir "source") + (copy-file source (store-file->elisp-source-file source)) + #t) + (gnu:unpack #:source source))) + (define* (build #:key outputs inputs #:allow-other-keys) "Compile .el files." (let* ((emacs (string-append (assoc-ref inputs "emacs") "/bin/emacs")) @@ -151,6 +173,7 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages." (define %standard-phases (modify-phases gnu:%standard-phases + (replace 'unpack unpack) (delete 'configure) (delete 'check) (delete 'install) From 02736daa8ca1be621b49b7ce282dfabf4919fa0a Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 30 May 2016 11:04:47 -0400 Subject: [PATCH 137/277] gnu: emacs: Remove uncompressed-file-fetch. * gnu/packages/emacs.scm (uncompressed-file-fetch): Delete. (emacs-rfcview, emacs-ffap-rfc-space, emacs-queue, emacs-spinner): Replace uncompressed-file-fetch with url-fetch. --- gnu/packages/emacs.scm | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 8e66e49e76..be397f133a 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1423,20 +1423,6 @@ to a key in your preferred mode.") identifiers in the MIT-Scheme documentation.") (license license:gpl2+))) -;;; XXX: move this procedure to an utility module -(define* (uncompressed-file-fetch url hash-algo hash - #:optional name - #:key (system (%current-system)) - (guile (default-guile))) - (mlet %store-monad ((drv (url-fetch url hash-algo hash name - #:system system - #:guile guile))) - (gexp->derivation (or name (basename url)) - #~(begin - (mkdir #$output) - (chdir #$output) - (copy-file #$drv (basename #$url)))))) - (define-public emacs-constants (package (name "emacs-constants") @@ -1572,7 +1558,7 @@ insertion mode. When enabled all keys are implicitly prefixed with (version "0.13") (home-page "http://www.loveshack.ukfsn.org/emacs") (source (origin - (method uncompressed-file-fetch) + (method url-fetch) (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el") (sha256 (base32 @@ -1596,7 +1582,7 @@ local directories.") (version "12") (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html") (source (origin - (method uncompressed-file-fetch) + (method url-fetch) (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el") (sha256 (base32 @@ -1713,7 +1699,7 @@ The purpose of this library is to wrap all the quirks and hassle of (name "emacs-queue") (version "0.1.1") (source (origin - (method uncompressed-file-fetch) + (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/queue-" version ".el")) (sha256 @@ -1756,7 +1742,7 @@ be removed from the front. This type of data structure is sometimes called an (name "emacs-spinner") (version "1.7.1") (source (origin - (method uncompressed-file-fetch) + (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/spinner-" version ".el")) (sha256 From 6ede256f77c32ba07ec43f1e7016103e5edcb626 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 27 May 2016 10:09:18 -0400 Subject: [PATCH 138/277] gnu: Add emacs-better-defaults. * gnu/packages/emacs.scm (emacs-better-defaults): New variable. --- gnu/packages/emacs.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index be397f133a..bfc4764541 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1775,3 +1775,24 @@ ongoing operations.") complement basic functions provided by @code{subr.el}. All provided functions work on lists, strings and vectors.") (license license:gpl3+))) + +(define-public emacs-better-defaults + (package + (name "emacs-better-defaults") + (version "0.1.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/technomancy/better-defaults" + "/archive/" version ".tar.gz")) + (sha256 + (base32 + "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2")))) + (build-system emacs-build-system) + (home-page "https://github.com/technomancy/better-defaults") + (synopsis "Better defaults for Emacs") + (description + "Better defaults attempts to address the most obvious deficiencies of the +Emacs default configuration in uncontroversial ways that nearly everyone can +agree upon.") + (license license:gpl3+))) From ac9fc78ff0c0d908b8df31474db25784b0b4d6bb Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 30 May 2016 12:18:27 -0400 Subject: [PATCH 139/277] gnu: iptables: Update to 1.4.21. * gnu/packages/linux.scm (iptables): Update to 1.4.21. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index f1c4c7342a..fb5a34dd18 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -869,7 +869,7 @@ MIDI functionality to the Linux-based operating system.") (define-public iptables (package (name "iptables") - (version "1.4.16.2") + (version "1.4.21") (source (origin (method url-fetch) (uri (string-append @@ -877,7 +877,7 @@ MIDI functionality to the Linux-based operating system.") version ".tar.bz2")) (sha256 (base32 - "0vkg5lzkn4l3i1sm6v3x96zzvnv9g7mi0qgj6279ld383mzcws24")))) + "1q6kg7sf0pgpq0qhab6sywl23cngxxfzc9zdzscsba8x09l4q02j")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no test suite From 726f0888849102b4ba4df6dd8738012c1d4c90d4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 30 May 2016 12:30:49 -0400 Subject: [PATCH 140/277] gnu: devil: Fix CVE-2009-3994. * gnu/packages/patches/devil-CVE-2009-3994.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/image.scm (devil): Use it. --- gnu/local.mk | 1 + gnu/packages/image.scm | 3 ++- .../patches/devil-CVE-2009-3994.patch | 24 +++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/devil-CVE-2009-3994.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6110d2d784..5f10dd86be 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -460,6 +460,7 @@ dist_patch_DATA = \ %D%/packages/patches/cursynth-wave-rand.patch \ %D%/packages/patches/dbus-helper-search-path.patch \ %D%/packages/patches/dealii-p4est-interface.patch \ + %D%/packages/patches/devil-CVE-2009-3994.patch \ %D%/packages/patches/devil-fix-libpng.patch \ %D%/packages/patches/dico-libtool-deterministic.patch \ %D%/packages/patches/diffutils-gets-undeclared.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 3651e97f3e..eca9012bf8 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -693,7 +693,8 @@ channels.") "1zd850nn7nvkkhasrv7kn17kzgslr5ry933v6db62s4lr0zzlbv8")) ;; Backported from upstream: ;; https://github.com/DentonW/DevIL/commit/724194d7a9a91221a564579f64bdd6f0abd64219.patch - (patches (search-patches "devil-fix-libpng.patch")) + (patches (search-patches "devil-fix-libpng.patch" + "devil-CVE-2009-3994.patch")) (modules '((guix build utils))) (snippet ;; Fix old lcms include directives and lib flags. diff --git a/gnu/packages/patches/devil-CVE-2009-3994.patch b/gnu/packages/patches/devil-CVE-2009-3994.patch new file mode 100644 index 0000000000..e009a95c44 --- /dev/null +++ b/gnu/packages/patches/devil-CVE-2009-3994.patch @@ -0,0 +1,24 @@ +Fix CVE-2009-3994 (buffer overflow in GetUID() allows remote DOS or +arbitrary code execution via crafted DICOM file). + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3994 + +Copied from Fedora +https://pkgs.fedoraproject.org/cgit/rpms/DevIL.git/tree/DevIL-1.7.8-CVE-2009-3994.patch?id=9c656a75393d6c455aef9f4968fbbee9c53f4fdb + +diff -up devil-1.7.8/src-IL/src/il_dicom.c~ devil-1.7.8/src-IL/src/il_dicom.c +--- devil-1.7.8/src-IL/src/il_dicom.c~ 2009-03-08 08:10:09.000000000 +0100 ++++ devil-1.7.8/src-IL/src/il_dicom.c 2009-12-03 12:07:45.000000000 +0100 +@@ -427,9 +427,11 @@ ILboolean GetUID(ILubyte *UID) + return IL_FALSE; + + ValLen = GetLittleUShort(); ++ if (ValLen > 64) ++ return IL_FALSE; + if (iread(UID, ValLen, 1) != 1) + return IL_FALSE; +- UID[64] = 0; // Just to make sure that our string is terminated. ++ UID[ValLen] = 0; // Just to make sure that our string is terminated. + + return IL_TRUE; + } From 3d55d04ab8f11cf8e9612c0ef92b10347a867309 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 30 May 2016 12:51:09 -0400 Subject: [PATCH 141/277] gnu: cyrus-sasl: Update URLs. * gnu/packages/cyrus-sasl.scm (cyrus-sasl)[source]: Use HTTPS URL. [home-page]: Update home-page URL. --- gnu/packages/cyrus-sasl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm index 8f3e1a1b70..99ff1e228e 100644 --- a/gnu/packages/cyrus-sasl.scm +++ b/gnu/packages/cyrus-sasl.scm @@ -34,7 +34,7 @@ (source (origin (method url-fetch) (uri (list (string-append - "http://cyrusimap.org/releases/cyrus-sasl-" + "https://cyrusimap.org/releases/cyrus-sasl-" version ".tar.gz") (string-append "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-" @@ -63,4 +63,4 @@ library makes supporting various SASL mechanisms easy for both client and server writers.") (license (license:non-copyleft "file://COPYING" "See COPYING in the distribution.")) - (home-page "http://cyrusimap.web.cmu.edu/index.php"))) + (home-page "http://cyrusimap.web.cmu.edu"))) From 1f521b7055a464439774332f1a69ed31b565715f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 17:17:09 +0300 Subject: [PATCH 142/277] gnu: id3lib: Fix CVE-2007-4460. * gnu/packages/mp3.scm (id3lib)[source]: Add patch. * gnu/packages/patches/id3lib-CVE-2007-4460.patch: New variable. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/mp3.scm | 6 +-- .../patches/id3lib-CVE-2007-4460.patch | 54 +++++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/id3lib-CVE-2007-4460.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5f10dd86be..11b7ccb692 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -551,6 +551,7 @@ dist_patch_DATA = \ %D%/packages/patches/icu4c-CVE-2014-6585.patch \ %D%/packages/patches/icu4c-CVE-2015-1270.patch \ %D%/packages/patches/icu4c-CVE-2015-4760.patch \ + %D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ %D%/packages/patches/inkscape-drop-wait-for-targets.patch \ %D%/packages/patches/irrlicht-mesa-10.patch \ diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 997c50f5f4..8451f0ac9f 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -108,11 +108,11 @@ versions of ID3v2.") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/id3lib/id3lib/" - version "/id3lib-" - version ".tar.gz")) + version "/id3lib-" version ".tar.gz")) (sha256 (base32 - "0yfhqwk0w8q2hyv1jib1008jvzmwlpsxvc8qjllhna6p1hycqj97")))) + "0yfhqwk0w8q2hyv1jib1008jvzmwlpsxvc8qjllhna6p1hycqj97")) + (patches (search-patches "id3lib-CVE-2007-4460.patch")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/id3lib-CVE-2007-4460.patch b/gnu/packages/patches/id3lib-CVE-2007-4460.patch new file mode 100644 index 0000000000..36c84179fc --- /dev/null +++ b/gnu/packages/patches/id3lib-CVE-2007-4460.patch @@ -0,0 +1,54 @@ +This patch fixes an issues where temporary files were created in an insecure +way. + +It was first intruduced in version 3.8.3-7 and fixes +http://bugs.debian.org/438540 +--- a/src/tag_file.cpp ++++ b/src/tag_file.cpp +@@ -242,8 +242,8 @@ + strcpy(sTempFile, filename.c_str()); + strcat(sTempFile, sTmpSuffix.c_str()); + +-#if ((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP)) +- // This section is for Windows folk && gcc 3.x folk ++#if !defined(HAVE_MKSTEMP) ++ // This section is for Windows folk + fstream tmpOut; + createFile(sTempFile, tmpOut); + +@@ -257,7 +257,7 @@ + tmpOut.write((char *)tmpBuffer, nBytes); + } + +-#else //((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP)) ++#else //!defined(HAVE_MKSTEMP) + + // else we gotta make a temp file, copy the tag into it, copy the + // rest of the old file after the tag, delete the old file, rename +@@ -270,7 +270,7 @@ + //ID3_THROW_DESC(ID3E_NoFile, "couldn't open temp file"); + } + +- ofstream tmpOut(fd); ++ ofstream tmpOut(sTempFile); + if (!tmpOut) + { + tmpOut.close(); +@@ -285,14 +285,14 @@ + uchar tmpBuffer[BUFSIZ]; + while (file) + { +- file.read(tmpBuffer, BUFSIZ); ++ file.read((char *)tmpBuffer, BUFSIZ); + size_t nBytes = file.gcount(); +- tmpOut.write(tmpBuffer, nBytes); ++ tmpOut.write((char *)tmpBuffer, nBytes); + } + + close(fd); //closes the file + +-#endif ////((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP)) ++#endif ////!defined(HAVE_MKSTEMP) + + tmpOut.close(); + file.close(); From c1dbd3a8709f143fa72b2f893a069ca5f1afe7ac Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 20:11:39 +0300 Subject: [PATCH 143/277] gnu: wordnet: Fix CVE-2008-2149, CVE-2008-3908. * gnu/packages/wordnet.scm (wordnet)[source]: Add patches. * gnu/packages/patches/wordnet-CVE-2008-2149.patch, gnu/packages/patches/wordnet-CVE-2008-3908-pt1.patch, gnu/packages/patches/wordnet-CVE-2008-3908-pt2.patch: New variables. * gnu/local.mk (dist_patch_DATA): Add them. --- gnu/local.mk | 3 + .../patches/wordnet-CVE-2008-2149.patch | 19 + .../patches/wordnet-CVE-2008-3908-pt1.patch | 710 ++++++++++++++++++ .../patches/wordnet-CVE-2008-3908-pt2.patch | 18 + gnu/packages/wordnet.scm | 11 +- 5 files changed, 758 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/wordnet-CVE-2008-2149.patch create mode 100644 gnu/packages/patches/wordnet-CVE-2008-3908-pt1.patch create mode 100644 gnu/packages/patches/wordnet-CVE-2008-3908-pt2.patch diff --git a/gnu/local.mk b/gnu/local.mk index 11b7ccb692..d97c2218b5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -798,6 +798,9 @@ dist_patch_DATA = \ %D%/packages/patches/wicd-wpa2-ttls.patch \ %D%/packages/patches/wmctrl-64-fix.patch \ %D%/packages/patches/woff2-libbrotli.patch \ + %D%/packages/patches/wordnet-CVE-2008-2149.patch \ + %D%/packages/patches/wordnet-CVE-2008-3908-pt1.patch \ + %D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \ %D%/packages/patches/wpa-supplicant-CVE-2015-5310.patch \ %D%/packages/patches/wpa-supplicant-CVE-2015-5314.patch \ %D%/packages/patches/wpa-supplicant-CVE-2015-5315.patch \ diff --git a/gnu/packages/patches/wordnet-CVE-2008-2149.patch b/gnu/packages/patches/wordnet-CVE-2008-2149.patch new file mode 100644 index 0000000000..9828efa4bc --- /dev/null +++ b/gnu/packages/patches/wordnet-CVE-2008-2149.patch @@ -0,0 +1,19 @@ +Fix CVE-2008-2149: buffer overflows by limiting the length of the string in sprintf +format string +Closes: #481186 (CVE-2008-2149) +Please note: The WordNet code contains several other occurences of potentially +exploitable functions like strcpy()/strcat()/... and so even if there are no +known exploits the code needs a full security audit. + +--- a/src/wn.c ++++ b/src/wn.c +@@ -206,7 +206,8 @@ static int searchwn(int ac, char *av[]) + outsenses += do_search(av[1], optptr->pos, optptr->search, + whichsense, optptr->label); + } else { +- sprintf(tmpbuf, "wn: invalid search option: %s\n", av[j]); ++ /* Fix CVE-2008-2149: buffer overflows Andreas Tille */ ++ sprintf(tmpbuf, "wn: invalid search option: %.200s\n", av[j]); + display_message(tmpbuf); + errcount++; + } diff --git a/gnu/packages/patches/wordnet-CVE-2008-3908-pt1.patch b/gnu/packages/patches/wordnet-CVE-2008-3908-pt1.patch new file mode 100644 index 0000000000..a2e796b535 --- /dev/null +++ b/gnu/packages/patches/wordnet-CVE-2008-3908-pt1.patch @@ -0,0 +1,710 @@ +Author: Anton Gladky +LastChanged: Tue, 26 Feb 2013 20:40:25 +0100 +BugDebian: http://bugs.debian.org/700914 +Description: This patch was created by oCert according to + http://www.ocert.org/advisories/ocert-2008-014.html + and can be downloaded from + http://www.ocert.org/analysis/2008-014/wordnet.patch + Unfortunately the original patch had a problem which + caused 'wordnet test -synsn' to fail. The critical + part of the patch was removed from the whole patch + set and is moved to 51_overflows_memcpy.patch which + uses memcpy instead of the formerly used strcpy. + +--- a/lib/binsrch.c ++++ b/lib/binsrch.c +@@ -28,7 +28,7 @@ char *read_index(long offset, FILE *fp) + char *linep; + + linep = line; +- line[0] = '0'; ++ line[0] = '\0'; + + fseek( fp, offset, SEEK_SET ); + fgets(linep, LINE_LEN, fp); +@@ -58,6 +58,8 @@ char *bin_search(char *searchkey, FILE * + last_bin_search_offset = ftell( fp ); + fgets(linep, LINE_LEN, fp); + length = (int)(strchr(linep, ' ') - linep); ++ if (length > (sizeof(key) - 1)) ++ return(NULL); + strncpy(key, linep, length); + key[length] = '\0'; + if(strcmp(key, searchkey) < 0) { +@@ -110,6 +112,8 @@ static int bin_search_key(char *searchke + line[length++] = c; + if (getc(fp) == EOF) { /* only 1 line in file */ + length = (int)(strchr(linep, ' ') - linep); ++ if (length > (sizeof(key) - 1)) ++ return(0); + strncpy(key, linep, length); + key[length] = '\0'; + if(strcmp(key, searchkey) > 0) { +@@ -132,6 +136,8 @@ static int bin_search_key(char *searchke + if (fgets(linep, LINE_LEN, fp) != NULL) { + offset2 = ftell(fp); /* offset at start of next line */ + length = (int)(strchr(linep, ' ') - linep); ++ if (length > (sizeof(key) - 1)) ++ return(0); + strncpy(key, linep, length); + key[length] = '\0'; + if(strcmp(key, searchkey) < 0) { /* further in file */ +--- a/lib/morph.c ++++ b/lib/morph.c +@@ -51,21 +51,21 @@ static struct { + char *str; + int strlen; + } prepositions[NUMPREPS] = { +- "to", 2, +- "at", 2, +- "of", 2, +- "on", 2, +- "off", 3, +- "in", 2, +- "out", 3, +- "up", 2, +- "down", 4, +- "from", 4, +- "with", 4, +- "into", 4, +- "for", 3, +- "about", 5, +- "between", 7, ++ { "to", 2 }, ++ { "at", 2 }, ++ { "of", 2 }, ++ { "on", 2 }, ++ { "off", 3 }, ++ { "in", 2 }, ++ { "out", 3 }, ++ { "up", 2 }, ++ { "down", 4 }, ++ { "from", 4 }, ++ { "with", 4 }, ++ { "into", 4 }, ++ { "for", 3 }, ++ { "about", 5 }, ++ { "between", 7 } + }; + + static FILE *exc_fps[NUMPARTS + 1]; +@@ -144,18 +144,19 @@ static int do_init(void) + } else + sprintf(searchdir, DEFAULTPATH); + #else +- if ((env = getenv("WNSEARCHDIR")) != NULL) +- strcpy(searchdir, env); +- else if ((env = getenv("WNHOME")) != NULL) +- sprintf(searchdir, "%s%s", env, DICTDIR); +- else ++ if ((env = getenv("WNSEARCHDIR")) != NULL) { ++ snprintf(searchdir, sizeof(searchdir), "%s", env); ++ } else if ((env = getenv("WNHOME")) != NULL) { ++ snprintf(searchdir, sizeof(searchdir), "%s%s", env, DICTDIR); ++ } else { + strcpy(searchdir, DEFAULTPATH); ++ } + #endif + + for (i = 1; i <= NUMPARTS; i++) { +- sprintf(fname, EXCFILE, searchdir, partnames[i]); ++ snprintf(fname, sizeof(fname), EXCFILE, searchdir, partnames[i]); + if ((exc_fps[i] = fopen(fname, "r")) == NULL) { +- sprintf(msgbuf, ++ snprintf(msgbuf, sizeof(msgbuf), + "WordNet library error: Can't open exception file(%s)\n\n", + fname); + display_message(msgbuf); +@@ -178,13 +179,16 @@ char *morphstr(char *origstr, int pos) + int prep; + char *end_idx1, *end_idx2; + char *append; +- ++ + if (pos == SATELLITE) + pos = ADJ; + + /* First time through for this string */ + + if (origstr != NULL) { ++ if (strlen(origstr) > WORDBUF - 1) ++ return(NULL); ++ + /* Assume string hasn't had spaces substitued with '_' */ + strtolower(strsubst(strcpy(str, origstr), ' ', '_')); + searchstr[0] = '\0'; +@@ -232,7 +236,7 @@ char *morphstr(char *origstr, int pos) + if (end_idx < 0) return(NULL); /* shouldn't do this */ + strncpy(word, str + st_idx, end_idx - st_idx); + word[end_idx - st_idx] = '\0'; +- if(tmp = morphword(word, pos)) ++ if ((tmp = morphword(word, pos)) != NULL) + strcat(searchstr,tmp); + else + strcat(searchstr,word); +@@ -240,7 +244,7 @@ char *morphstr(char *origstr, int pos) + st_idx = end_idx + 1; + } + +- if(tmp = morphword(strcpy(word, str + st_idx), pos)) ++ if ((tmp = morphword(strcpy(word, str + st_idx), pos)) != NULL) + strcat(searchstr,tmp); + else + strcat(searchstr,word); +@@ -270,16 +274,15 @@ char *morphword(char *word, int pos) + { + int offset, cnt; + int i; +- static char retval[WORDBUF]; +- char *tmp, tmpbuf[WORDBUF], *end; +- +- sprintf(retval,""); +- sprintf(tmpbuf, ""); +- end = ""; +- ++ static char retval[WORDBUF] = ""; ++ char *tmp, tmpbuf[WORDBUF] = "", *end = ""; ++ + if(word == NULL) + return(NULL); + ++ if (strlen(word) > WORDBUF - 1) ++ return(NULL); ++ + /* first look for word on exception list */ + + if((tmp = exc_lookup(word, pos)) != NULL) +@@ -335,7 +338,10 @@ static char *wordbase(char *word, int en + { + char *pt1; + static char copy[WORDBUF]; +- ++ ++ if (strlen(word) > WORDBUF - 1) ++ return(NULL); ++ + strcpy(copy, word); + if(strend(copy,sufx[ender])) { + pt1=strchr(copy,'\0'); +@@ -368,13 +374,14 @@ static char *exc_lookup(char *word, int + { + static char line[WORDBUF], *beglp, *endlp; + char *excline; +- int found = 0; + + if (exc_fps[pos] == NULL) + return(NULL); + + /* first time through load line from exception file */ + if(word != NULL){ ++ if (strlen(word) > WORDBUF - 1) ++ return(NULL); + if ((excline = bin_search(word, exc_fps[pos])) != NULL) { + strcpy(line, excline); + endlp = strchr(line,' '); +@@ -403,6 +410,9 @@ static char *morphprep(char *s) + char word[WORDBUF], end[WORDBUF]; + static char retval[WORDBUF]; + ++ if (strlen(s) > WORDBUF - 1) ++ return (NULL); ++ + /* Assume that the verb is the first word in the phrase. Strip it + off, check for validity, then try various morphs with the + rest of the phrase tacked on, trying to find a match. */ +@@ -410,7 +420,7 @@ static char *morphprep(char *s) + rest = strchr(s, '_'); + last = strrchr(s, '_'); + if (rest != last) { /* more than 2 words */ +- if (lastwd = morphword(last + 1, NOUN)) { ++ if ((lastwd = morphword(last + 1, NOUN)) != NULL) { + strncpy(end, rest, last - rest + 1); + end[last-rest+1] = '\0'; + strcat(end, lastwd); +--- a/lib/search.c ++++ b/lib/search.c +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + #include "wn.h" + +@@ -119,33 +120,22 @@ IndexPtr parse_index(long offset, int db + if ( !line ) + line = read_index( offset, indexfps[dbase] ); + +- idx = (IndexPtr)malloc(sizeof(Index)); ++ idx = (IndexPtr)calloc(1, sizeof(Index)); + assert(idx); + + /* set offset of entry in index file */ + idx->idxoffset = offset; + +- idx->wd='\0'; +- idx->pos='\0'; +- idx->off_cnt=0; +- idx->tagged_cnt = 0; +- idx->sense_cnt=0; +- idx->offset='\0'; +- idx->ptruse_cnt=0; +- idx->ptruse='\0'; +- + /* get the word */ + ptrtok=strtok(line," \n"); + +- idx->wd = malloc(strlen(ptrtok) + 1); ++ idx->wd = strdup(ptrtok); + assert(idx->wd); +- strcpy(idx->wd, ptrtok); + + /* get the part of speech */ + ptrtok=strtok(NULL," \n"); +- idx->pos = malloc(strlen(ptrtok) + 1); ++ idx->pos = strdup(ptrtok); + assert(idx->pos); +- strcpy(idx->pos, ptrtok); + + /* get the collins count */ + ptrtok=strtok(NULL," \n"); +@@ -154,7 +144,12 @@ IndexPtr parse_index(long offset, int db + /* get the number of pointers types */ + ptrtok=strtok(NULL," \n"); + idx->ptruse_cnt = atoi(ptrtok); +- ++ ++ if (idx->ptruse_cnt < 0 || (unsigned int)idx->ptruse_cnt > UINT_MAX/sizeof(int)) { ++ free_index(idx); ++ return(NULL); ++ } ++ + if (idx->ptruse_cnt) { + idx->ptruse = (int *) malloc(idx->ptruse_cnt * (sizeof(int))); + assert(idx->ptruse); +@@ -173,9 +168,14 @@ IndexPtr parse_index(long offset, int db + /* get the number of senses that are tagged */ + ptrtok=strtok(NULL," \n"); + idx->tagged_cnt = atoi(ptrtok); +- ++ ++ if (idx->off_cnt < 0 || (unsigned long)idx->off_cnt > ULONG_MAX/sizeof(long)) { ++ free_index(idx); ++ return(NULL); ++ } ++ + /* make space for the offsets */ +- idx->offset = (long *) malloc(idx->off_cnt * (sizeof(long))); ++ idx->offset = (unsigned long *) malloc(idx->off_cnt * sizeof(long)); + assert(idx->offset); + + /* get the offsets */ +@@ -197,15 +197,21 @@ IndexPtr getindex(char *searchstr, int d + char strings[MAX_FORMS][WORDBUF]; /* vector of search strings */ + static IndexPtr offsets[MAX_FORMS]; + static int offset; +- ++ + /* This works like strrok(): if passed with a non-null string, + prepare vector of search strings and offsets. If string + is null, look at current list of offsets and return next + one, or NULL if no more alternatives for this word. */ + + if (searchstr != NULL) { ++ /* Bail out if the input is too long for us to handle */ ++ if (strlen(searchstr) > (WORDBUF - 1)) { ++ strcpy(msgbuf, "WordNet library error: search term is too long\n"); ++ display_message(msgbuf); ++ return(NULL); ++ } + +- offset = 0; ++ offset = 0; + strtolower(searchstr); + for (i = 0; i < MAX_FORMS; i++) { + strcpy(strings[i], searchstr); +@@ -229,11 +235,11 @@ IndexPtr getindex(char *searchstr, int d + /* Get offset of first entry. Then eliminate duplicates + and get offsets of unique strings. */ + +- if (strings[0][0] != NULL) ++ if (strings[0] != NULL) + offsets[0] = index_lookup(strings[0], dbase); + + for (i = 1; i < MAX_FORMS; i++) +- if ((strings[i][0]) != NULL && (strcmp(strings[0], strings[i]))) ++ if (strings[i] != NULL && (strcmp(strings[0], strings[i]))) + offsets[i] = index_lookup(strings[i], dbase); + } + +@@ -272,7 +278,7 @@ SynsetPtr read_synset(int dbase, long bo + SynsetPtr parse_synset(FILE *fp, int dbase, char *word) + { + static char line[LINEBUF]; +- char tbuf[SMLINEBUF]; ++ char tbuf[SMLINEBUF] = ""; + char *ptrtok; + char *tmpptr; + int foundpert = 0; +@@ -286,33 +292,11 @@ SynsetPtr parse_synset(FILE *fp, int dba + if ((tmpptr = fgets(line, LINEBUF, fp)) == NULL) + return(NULL); + +- synptr = (SynsetPtr)malloc(sizeof(Synset)); ++ synptr = (SynsetPtr)calloc(1, sizeof(Synset)); + assert(synptr); +- +- synptr->hereiam = 0; ++ + synptr->sstype = DONT_KNOW; +- synptr->fnum = 0; +- synptr->pos = '\0'; +- synptr->wcount = 0; +- synptr->words = '\0'; +- synptr->whichword = 0; +- synptr->ptrcount = 0; +- synptr->ptrtyp = '\0'; +- synptr->ptroff = '\0'; +- synptr->ppos = '\0'; +- synptr->pto = '\0'; +- synptr->pfrm = '\0'; +- synptr->fcount = 0; +- synptr->frmid = '\0'; +- synptr->frmto = '\0'; +- synptr->defn = '\0'; +- synptr->key = 0; +- synptr->nextss = NULL; +- synptr->nextform = NULL; + synptr->searchtype = -1; +- synptr->ptrlist = NULL; +- synptr->headword = NULL; +- synptr->headsense = 0; + + ptrtok = line; + +@@ -322,7 +306,7 @@ SynsetPtr parse_synset(FILE *fp, int dba + + /* sanity check - make sure starting file offset matches first field */ + if (synptr->hereiam != loc) { +- sprintf(msgbuf, "WordNet library error: no synset at location %d\n", ++ sprintf(msgbuf, "WordNet library error: no synset at location %ld\n", + loc); + display_message(msgbuf); + free(synptr); +@@ -335,16 +319,20 @@ SynsetPtr parse_synset(FILE *fp, int dba + + /* looking at POS */ + ptrtok = strtok(NULL, " \n"); +- synptr->pos = malloc(strlen(ptrtok) + 1); ++ synptr->pos = strdup(ptrtok); + assert(synptr->pos); +- strcpy(synptr->pos, ptrtok); + if (getsstype(synptr->pos) == SATELLITE) + synptr->sstype = INDIRECT_ANT; + + /* looking at numwords */ + ptrtok = strtok(NULL, " \n"); + synptr->wcount = strtol(ptrtok, NULL, 16); +- ++ ++ if (synptr->wcount < 0 || (unsigned int)synptr->wcount > UINT_MAX/sizeof(char *)) { ++ free_syns(synptr); ++ return(NULL); ++ } ++ + synptr->words = (char **)malloc(synptr->wcount * sizeof(char *)); + assert(synptr->words); + synptr->wnsns = (int *)malloc(synptr->wcount * sizeof(int)); +@@ -354,9 +342,8 @@ SynsetPtr parse_synset(FILE *fp, int dba + + for (i = 0; i < synptr->wcount; i++) { + ptrtok = strtok(NULL, " \n"); +- synptr->words[i] = malloc(strlen(ptrtok) + 1); ++ synptr->words[i] = strdup(ptrtok); + assert(synptr->words[i]); +- strcpy(synptr->words[i], ptrtok); + + /* is this the word we're looking for? */ + +@@ -371,6 +358,12 @@ SynsetPtr parse_synset(FILE *fp, int dba + ptrtok = strtok(NULL," \n"); + synptr->ptrcount = atoi(ptrtok); + ++ /* Should we check for long here as well? */ ++ if (synptr->ptrcount < 0 || (unsigned int)synptr->ptrcount > UINT_MAX/sizeof(int)) { ++ free_syns(synptr); ++ return(NULL); ++ } ++ + if (synptr->ptrcount) { + + /* alloc storage for the pointers */ +@@ -455,21 +448,23 @@ SynsetPtr parse_synset(FILE *fp, int dba + ptrtok = strtok(NULL," \n"); + if (ptrtok) { + ptrtok = strtok(NULL," \n"); +- sprintf(tbuf, ""); + while (ptrtok != NULL) { ++ if (strlen(ptrtok) + strlen(tbuf) + 1 + 1 > sizeof(tbuf)) { ++ free_syns(synptr); ++ return(NULL); ++ } + strcat(tbuf,ptrtok); + ptrtok = strtok(NULL, " \n"); + if(ptrtok) + strcat(tbuf," "); + } +- assert((1 + strlen(tbuf)) < sizeof(tbuf)); +- synptr->defn = malloc(strlen(tbuf) + 4); ++ synptr->defn = malloc(strlen(tbuf) + 3); + assert(synptr->defn); + sprintf(synptr->defn,"(%s)",tbuf); + } + + if (keyindexfp) { /* we have unique keys */ +- sprintf(tmpbuf, "%c:%8.8d", partchars[dbase], synptr->hereiam); ++ sprintf(tmpbuf, "%c:%8.8ld", partchars[dbase], synptr->hereiam); + synptr->key = GetKeyForOffset(tmpbuf); + } + +@@ -635,7 +630,7 @@ static void traceptrs(SynsetPtr synptr, + + if ((ptrtyp == PERTPTR || ptrtyp == PPLPTR) && + synptr->pto[i] != 0) { +- sprintf(tbuf, " (Sense %d)\n", ++ snprintf(tbuf, sizeof(tbuf), " (Sense %d)\n", + cursyn->wnsns[synptr->pto[i] - 1]); + printsynset(prefix, cursyn, tbuf, DEFOFF, synptr->pto[i], + SKIP_ANTS, PRINT_MARKER); +@@ -656,7 +651,7 @@ static void traceptrs(SynsetPtr synptr, + traceptrs(cursyn, HYPERPTR, getpos(cursyn->pos), 0); + } + } else if (ptrtyp == ANTPTR && dbase != ADJ && synptr->pto[i] != 0) { +- sprintf(tbuf, " (Sense %d)\n", ++ snprintf(tbuf, sizeof(tbuf), " (Sense %d)\n", + cursyn->wnsns[synptr->pto[i] - 1]); + printsynset(prefix, cursyn, tbuf, DEFOFF, synptr->pto[i], + SKIP_ANTS, PRINT_MARKER); +@@ -817,7 +812,7 @@ static void tracenomins(SynsetPtr synptr + + cursyn = read_synset(synptr->ppos[i], synptr->ptroff[i], ""); + +- sprintf(tbuf, "#%d\n", ++ snprintf(tbuf, sizeof(tbuf), "#%d\n", + cursyn->wnsns[synptr->pto[i] - 1]); + printsynset(prefix, cursyn, tbuf, DEFOFF, synptr->pto[i], + SKIP_ANTS, SKIP_MARKER); +@@ -989,12 +984,12 @@ void getexample(char *offset, char *wd) + char sentbuf[512]; + + if (vsentfilefp != NULL) { +- if (line = bin_search(offset, vsentfilefp)) { ++ if ((line = bin_search(offset, vsentfilefp)) != NULL) { + while(*line != ' ') + line++; + + printbuffer(" EX: "); +- sprintf(sentbuf, line, wd); ++ snprintf(sentbuf, sizeof(sentbuf), line, wd); + printbuffer(sentbuf); + } + } +@@ -1011,7 +1006,7 @@ int findexample(SynsetPtr synptr) + if (vidxfilefp != NULL) { + wdnum = synptr->whichword - 1; + +- sprintf(tbuf,"%s%%%-1.1d:%-2.2d:%-2.2d::", ++ snprintf(tbuf, sizeof(tbuf), "%s%%%-1.1d:%-2.2d:%-2.2d::", + synptr->words[wdnum], + getpos(synptr->pos), + synptr->fnum, +@@ -1124,7 +1119,7 @@ static void freq_word(IndexPtr index) + if (cnt >= 17 && cnt <= 32) familiar = 6; + if (cnt > 32 ) familiar = 7; + +- sprintf(tmpbuf, ++ snprintf(tmpbuf, sizeof(tmpbuf), + "\n%s used as %s is %s (polysemy count = %d)\n", + index->wd, a_an[getpos(index->pos)], freqcats[familiar], cnt); + printbuffer(tmpbuf); +@@ -1147,6 +1142,9 @@ void wngrep (char *word_passed, int pos) + } + rewind(inputfile); + ++ if (strlen(word_passed) + 1 > sizeof(word)) ++ return; ++ + strcpy (word, word_passed); + ToLowerCase(word); /* map to lower case for index file search */ + strsubst (word, ' ', '_'); /* replace spaces with underscores */ +@@ -1169,7 +1167,7 @@ void wngrep (char *word_passed, int pos) + ((line[loc + wordlen] == '-') || (line[loc + wordlen] == '_'))) + ) { + strsubst (line, '_', ' '); +- sprintf (tmpbuf, "%s\n", line); ++ snprintf (tmpbuf, sizeof(tmpbuf), "%s\n", line); + printbuffer (tmpbuf); + break; + } +@@ -1683,9 +1681,8 @@ SynsetPtr traceptrs_ds(SynsetPtr synptr, + cursyn = read_synset(synptr->ppos[i], + synptr->ptroff[i], + ""); +- synptr->headword = malloc(strlen(cursyn->words[0]) + 1); ++ synptr->headword = strdup(cursyn->words[0]); + assert(synptr->headword); +- strcpy(synptr->headword, cursyn->words[0]); + synptr->headsense = cursyn->lexid[0]; + free_synset(cursyn); + break; +@@ -2013,7 +2010,7 @@ static int getsearchsense(SynsetPtr synp + strsubst(strcpy(wdbuf, synptr->words[whichword - 1]), ' ', '_'); + strtolower(wdbuf); + +- if (idx = index_lookup(wdbuf, getpos(synptr->pos))) { ++ if ((idx = index_lookup(wdbuf, getpos(synptr->pos))) != NULL) { + for (i = 0; i < idx->off_cnt; i++) + if (idx->offset[i] == synptr->hereiam) { + free_index(idx); +@@ -2037,7 +2034,7 @@ static void printsynset(char *head, Syns + by flags */ + + if (offsetflag) /* print synset offset */ +- sprintf(tbuf + strlen(tbuf),"{%8.8d} ", synptr->hereiam); ++ sprintf(tbuf + strlen(tbuf),"{%8.8ld} ", synptr->hereiam); + if (fileinfoflag) { /* print lexicographer file information */ + sprintf(tbuf + strlen(tbuf), "<%s> ", lexfiles[synptr->fnum]); + prlexid = 1; /* print lexicographer id after word */ +@@ -2072,7 +2069,7 @@ static void printantsynset(SynsetPtr syn + tbuf[0] = '\0'; + + if (offsetflag) +- sprintf(tbuf,"{%8.8d} ", synptr->hereiam); ++ sprintf(tbuf,"{%8.8ld} ", synptr->hereiam); + if (fileinfoflag) { + sprintf(tbuf + strlen(tbuf),"<%s> ", lexfiles[synptr->fnum]); + prlexid = 1; +--- a/lib/wnutil.c ++++ b/lib/wnutil.c +@@ -48,7 +48,7 @@ int wninit(void) + char *env; + + if (!done) { +- if (env = getenv("WNDBVERSION")) { ++ if ((env = getenv("WNDBVERSION")) != NULL) { + wnrelease = strdup(env); /* set release */ + assert(wnrelease); + } +@@ -70,7 +70,7 @@ int re_wninit(void) + + closefps(); + +- if (env = getenv("WNDBVERSION")) { ++ if ((env = getenv("WNDBVERSION")) != NULL) { + wnrelease = strdup(env); /* set release */ + assert(wnrelease); + } +@@ -149,25 +149,25 @@ static int do_init(void) + sprintf(searchdir, DEFAULTPATH); + #else + if ((env = getenv("WNSEARCHDIR")) != NULL) +- strcpy(searchdir, env); ++ snprintf(searchdir, sizeof(searchdir), "%s", env); + else if ((env = getenv("WNHOME")) != NULL) +- sprintf(searchdir, "%s%s", env, DICTDIR); ++ snprintf(searchdir, sizeof(searchdir), "%s%s", env, DICTDIR); + else + strcpy(searchdir, DEFAULTPATH); + #endif + + for (i = 1; i < NUMPARTS + 1; i++) { +- sprintf(tmpbuf, DATAFILE, searchdir, partnames[i]); ++ snprintf(tmpbuf, sizeof(tmpbuf), DATAFILE, searchdir, partnames[i]); + if((datafps[i] = fopen(tmpbuf, "r")) == NULL) { +- sprintf(msgbuf, ++ snprintf(msgbuf, sizeof(msgbuf), + "WordNet library error: Can't open datafile(%s)\n", + tmpbuf); + display_message(msgbuf); + openerr = -1; + } +- sprintf(tmpbuf, INDEXFILE, searchdir, partnames[i]); ++ snprintf(tmpbuf, sizeof(tmpbuf), INDEXFILE, searchdir, partnames[i]); + if((indexfps[i] = fopen(tmpbuf, "r")) == NULL) { +- sprintf(msgbuf, ++ snprintf(msgbuf, sizeof(msgbuf), + "WordNet library error: Can't open indexfile(%s)\n", + tmpbuf); + display_message(msgbuf); +@@ -178,35 +178,35 @@ static int do_init(void) + /* This file isn't used by the library and doesn't have to + be present. No error is reported if the open fails. */ + +- sprintf(tmpbuf, SENSEIDXFILE, searchdir); ++ snprintf(tmpbuf, sizeof(tmpbuf), SENSEIDXFILE, searchdir); + sensefp = fopen(tmpbuf, "r"); + + /* If this file isn't present, the runtime code will skip printint out + the number of times each sense was tagged. */ + +- sprintf(tmpbuf, CNTLISTFILE, searchdir); ++ snprintf(tmpbuf, sizeof(tmpbuf), CNTLISTFILE, searchdir); + cntlistfp = fopen(tmpbuf, "r"); + + /* This file doesn't have to be present. No error is reported if the + open fails. */ + +- sprintf(tmpbuf, KEYIDXFILE, searchdir); ++ snprintf(tmpbuf, sizeof(tmpbuf), KEYIDXFILE, searchdir); + keyindexfp = fopen(tmpbuf, "r"); + +- sprintf(tmpbuf, REVKEYIDXFILE, searchdir); ++ snprintf(tmpbuf, sizeof(tmpbuf), REVKEYIDXFILE, searchdir); + revkeyindexfp = fopen(tmpbuf, "r"); + +- sprintf(tmpbuf, VRBSENTFILE, searchdir); ++ snprintf(tmpbuf, sizeof(tmpbuf), VRBSENTFILE, searchdir); + if ((vsentfilefp = fopen(tmpbuf, "r")) == NULL) { +- sprintf(msgbuf, ++ snprintf(msgbuf, sizeof(msgbuf), + "WordNet library warning: Can't open verb example sentence file(%s)\n", + tmpbuf); + display_message(msgbuf); + } + +- sprintf(tmpbuf, VRBIDXFILE, searchdir); ++ snprintf(tmpbuf, sizeof(tmpbuf), VRBIDXFILE, searchdir); + if ((vidxfilefp = fopen(tmpbuf, "r")) == NULL) { +- sprintf(msgbuf, ++ snprintf(msgbuf, sizeof(msgbuf), + "WordNet library warning: Can't open verb example sentence index file(%s)\n", + tmpbuf); + display_message(msgbuf); +--- a/src/wn.c ++++ b/src/wn.c +@@ -131,7 +131,7 @@ static void printusage(), printlicense() + printsearches(char *, int, unsigned long); + static int error_message(char *); + +-main(int argc,char *argv[]) ++int main(int argc,char *argv[]) + { + display_message = error_message; + +@@ -228,14 +228,14 @@ static int do_search(char *searchword, i + printf("\n%s of %s %s\n%s", + label, partnames[pos], searchword, outbuf); + +- if (morphword = morphstr(searchword, pos)) ++ if ((morphword = morphstr(searchword, pos)) != NULL) + do { + outbuf = findtheinfo(morphword, pos, search, whichsense); + totsenses += wnresults.printcnt; + if (strlen(outbuf) > 0) + printf("\n%s of %s %s\n%s", + label, partnames[pos], morphword, outbuf); +- } while (morphword = morphstr(NULL, pos)); ++ } while ((morphword = morphstr(NULL, pos)) != NULL); + + return(totsenses); + } diff --git a/gnu/packages/patches/wordnet-CVE-2008-3908-pt2.patch b/gnu/packages/patches/wordnet-CVE-2008-3908-pt2.patch new file mode 100644 index 0000000000..2ef2239a7f --- /dev/null +++ b/gnu/packages/patches/wordnet-CVE-2008-3908-pt2.patch @@ -0,0 +1,18 @@ +This patch was created by oCert according to + http://www.ocert.org/advisories/ocert-2008-014.html +Unfortunately the original patch contained a bug which was +later fixed by the issuer of the patch Rob Holland +This part was now separated in this file. + +--- a/lib/search.c ++++ b/lib/search.c +@@ -1568,7 +1568,8 @@ char *findtheinfo(char *searchstr, int d + bufstart[0] = '\n'; + bufstart++; + } +- strncpy(bufstart, tmpbuf, strlen(tmpbuf)); ++ /* Avoid writing a trailing \0 after the string */ ++ memcpy(bufstart, tmpbuf, strlen(tmpbuf)); + bufstart = searchbuffer + strlen(searchbuffer); + } + } diff --git a/gnu/packages/wordnet.scm b/gnu/packages/wordnet.scm index 1823a624ed..9cd7a56104 100644 --- a/gnu/packages/wordnet.scm +++ b/gnu/packages/wordnet.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +22,7 @@ #:use-module (guix build-system gnu) #:use-module (guix licenses) #:use-module (guix download) + #:use-module (gnu packages) #:use-module (gnu packages tcl)) (define-public wordnet @@ -30,11 +32,14 @@ (source (origin (method url-fetch) (uri (string-append "http://wordnetcode.princeton.edu/" - version "/WordNet-" - version ".tar.bz2")) + version "/WordNet-" version ".tar.bz2")) (sha256 (base32 - "08pgjvd2vvmqk3h641x63nxp7wqimb9r30889mkyfh2agc62sjbc")))) + "08pgjvd2vvmqk3h641x63nxp7wqimb9r30889mkyfh2agc62sjbc")) + (patches (search-patches + "wordnet-CVE-2008-2149.patch" + "wordnet-CVE-2008-3908-pt1.patch" + "wordnet-CVE-2008-3908-pt2.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list (string-append "--with-tcl=" From 983911d62731c42702526c9a049181a89cafb443 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 20:19:04 +0300 Subject: [PATCH 144/277] gnu: wordnet: Use 'modify-phases'. * gnu/packages/wordnet.scm (wordnet)[arguments]: Use 'modify-phases'. --- gnu/packages/wordnet.scm | 48 ++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/gnu/packages/wordnet.scm b/gnu/packages/wordnet.scm index 9cd7a56104..dbc75860ef 100644 --- a/gnu/packages/wordnet.scm +++ b/gnu/packages/wordnet.scm @@ -52,30 +52,30 @@ ;; Provide the `result' field in `Tcl_Interp'. ;; See . "CFLAGS=-DUSE_INTERP_RESULT") - #:phases (alist-cons-after - 'install 'post-install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (bin (assoc-ref outputs "tk")) - (tk (assoc-ref inputs "tk")) - (tkv ,(let ((v (package-version tk))) - (string-take v (string-index-right v #\.))))) - ;; Move `wishwn' and `wnb' to BIN. - (for-each (lambda (prog) - (let ((orig (string-append out "/bin/" prog)) - (dst (string-append bin "/bin/" prog)) - (dir (string-append tk "/lib/tk" tkv))) - (mkdir-p (dirname dst)) - (copy-file orig dst) - (delete-file orig) - (wrap-program dst - `("TK_LIBRARY" "" = (,dir)) - `("PATH" ":" prefix - (,(string-append out - "/bin")))))) - '("wishwn" "wnb")) - #t)) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-after 'install 'post-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (bin (assoc-ref outputs "tk")) + (tk (assoc-ref inputs "tk")) + (tkv ,(let ((v (package-version tk))) + (string-take v (string-index-right v #\.))))) + ;; Move `wishwn' and `wnb' to BIN. + (for-each (lambda (prog) + (let ((orig (string-append out "/bin/" prog)) + (dst (string-append bin "/bin/" prog)) + (dir (string-append tk "/lib/tk" tkv))) + (mkdir-p (dirname dst)) + (copy-file orig dst) + (delete-file orig) + (wrap-program dst + `("TK_LIBRARY" "" = (,dir)) + `("PATH" ":" prefix + (,(string-append out + "/bin")))))) + '("wishwn" "wnb")) + #t)))))) (outputs '("out" "tk")) ; for the Tcl/Tk GUI (inputs `(("tk" ,tk) From cdc5cfdc4a50c5fda9ec50bfd9477838b8013203 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 14 Apr 2016 08:42:42 -0400 Subject: [PATCH 145/277] gnu: Add avr-binutils. * gnu/packages/avr.scm (avr-binutils): New variable. --- gnu/packages/avr.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index d59816b6b8..3276de765b 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Manolis Fragkiskos Ragkousis +;;; Copyright © 2014, 2016 Manolis Fragkiskos Ragkousis ;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2016 David Thompson ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,11 @@ #:use-module (gnu packages vim) #:use-module (gnu packages zip)) +(define-public avr-binutils + (package + (inherit (cross-binutils "avr")) + (name "avr-binutils"))) + (define-public avr-libc (package (name "avr-libc") From 09b05fc7e9bdcdcfd2690777e0cd94c2ecd3afab Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 14 Apr 2016 08:43:56 -0400 Subject: [PATCH 146/277] gnu: Add avr-gcc. * gnu/packages/avr.scm (avr-gcc): New variable. --- gnu/packages/avr.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index 3276de765b..fd51f074f2 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -20,6 +20,7 @@ (define-module (gnu packages avr) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix utils) #:use-module (guix download) #:use-module (guix packages) #:use-module (guix build-system gnu) @@ -33,6 +34,35 @@ (inherit (cross-binutils "avr")) (name "avr-binutils"))) +(define-public avr-gcc-4.9 + (let ((xgcc (cross-gcc "avr" avr-binutils))) + (package + (inherit xgcc) + (name "avr-gcc") + (arguments + (substitute-keyword-arguments (package-arguments xgcc) + ((#:phases phases) + `(modify-phases ,phases + ;; Without a working multilib build, the resulting GCC lacks + ;; support for nearly every AVR chip. + (add-after 'unpack 'fix-genmultilib + (lambda _ + ;; patch-shebang doesn't work here because there are actually + ;; several scripts inside this script, each with a #!/bin/sh + ;; that needs patching. + (substitute* "gcc/genmultilib" + (("#!/bin/sh") (string-append "#!" (which "sh")))) + #t)))) + ((#:configure-flags flags) + `(delete "--disable-multilib" ,flags)))) + (native-search-paths + (list (search-path-specification + (variable "CROSS_CPATH") + (files '("avr/include"))) + (search-path-specification + (variable "CROSS_LIBRARY_PATH") + (files '("avr/lib")))))))) + (define-public avr-libc (package (name "avr-libc") From a17eea4ba41fc0ab234db618770727da3432be8a Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 15 Apr 2016 09:48:26 -0400 Subject: [PATCH 147/277] gnu: Add avr-gcc-5. * gnu/packages/avr.scm (avr-gcc-5): New variable. --- gnu/packages/avr.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index fd51f074f2..00c4e47ebe 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -26,6 +26,7 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages cross-base) + #:use-module (gnu packages gcc) #:use-module (gnu packages vim) #:use-module (gnu packages zip)) @@ -63,6 +64,12 @@ (variable "CROSS_LIBRARY_PATH") (files '("avr/lib")))))))) +(define-public avr-gcc-5 + (package + (inherit avr-gcc-4.9) + (version (package-version gcc-5)) + (source (package-source gcc-5)))) + (define-public avr-libc (package (name "avr-libc") From e60972f28847f4a207186754a954dbebe92f207f Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 14 Apr 2016 08:44:46 -0400 Subject: [PATCH 148/277] gnu: avr-libc: Fix build. * gnu/packages/avr.scm (avr-libc): Update to 2.0.0. [native-inputs]: Use new avr-gcc and avr-binutils. [arguments]: Add phase to unset C_INCLUDE_PATH. --- gnu/packages/avr.scm | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index 00c4e47ebe..72411d9251 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -84,17 +84,28 @@ "0sd9qkvhmk9av4g1f8dsjwc309hf1g0731bhvicnjb3b3d42l1n3")))) (build-system gnu-build-system) (arguments - `(#:out-of-source? #t - #:configure-flags '("--host=avr"))) - - (native-inputs `(("cross-binutils" ,(cross-binutils "avr")) - ("cross-gcc" ,xgcc-avr))) + '(#:out-of-source? #t + #:configure-flags '("--host=avr") + #:phases + (modify-phases %standard-phases + (add-before 'unpack 'fix-cpath + (lambda _ + ;; C_INCLUDE_PATH poses issues for cross-building, leading to + ;; failures when building avr-libc on 64-bit systems. Simply + ;; unsetting it allows the build to succeed because it doesn't + ;; try to use any of the native system's headers. + (unsetenv "C_INCLUDE_PATH") + #t))))) + (native-inputs `(("avr-binutils" ,avr-binutils) + ("avr-gcc" ,avr-gcc-4.9))) (home-page "http://www.nongnu.org/avr-libc/") (synopsis "The AVR C Library") (description "AVR Libc is a project whose goal is to provide a high quality C library for use with GCC on Atmel AVR microcontrollers.") - (license (license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt")))) + (license + (license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt")))) + (define-public microscheme (package From 3087b7077ce6b2125bd0c81d57ea12d4b6b7e956 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 15 Apr 2016 09:14:28 -0400 Subject: [PATCH 149/277] gnu: avr-libc: Update to 2.0.0. * gnu/packages/avr.scm (avr-libc): Update to 2.0.0. --- gnu/packages/avr.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index 72411d9251..88ebb42252 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -73,15 +73,14 @@ (define-public avr-libc (package (name "avr-libc") - (version "1.8.1") + (version "2.0.0") (source (origin (method url-fetch) - (uri (string-append - "mirror://savannah//avr-libc/avr-libc-" - version ".tar.bz2")) + (uri (string-append "mirror://savannah//avr-libc/avr-libc-" + version ".tar.bz2")) (sha256 (base32 - "0sd9qkvhmk9av4g1f8dsjwc309hf1g0731bhvicnjb3b3d42l1n3")))) + "15svr2fx8j6prql2il2fc0ppwlv50rpmyckaxx38d3gxxv97zpdj")))) (build-system gnu-build-system) (arguments '(#:out-of-source? #t From 9d2bab09aa6e7306ed9eacb74d737b40c221b8f8 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 14 Apr 2016 08:48:18 -0400 Subject: [PATCH 150/277] gnu: Add avr-toolchain. * gnu/packages/avr.scm (avr-toolchain): New procedure. (avr-toolchain-4.9, avr-toolchain-5): New variables. --- gnu/packages/avr.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index 88ebb42252..7ce737f570 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -24,8 +24,10 @@ #:use-module (guix download) #:use-module (guix packages) #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages cross-base) + #:use-module (gnu packages flashing-tools) #:use-module (gnu packages gcc) #:use-module (gnu packages vim) #:use-module (gnu packages zip)) @@ -105,6 +107,28 @@ for use with GCC on Atmel AVR microcontrollers.") (license (license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt")))) +(define (avr-toolchain avr-gcc) + (package + (name "avr-toolchain") + (version (package-version avr-gcc)) + (source #f) + (build-system trivial-build-system) + (arguments '(#:builder (mkdir %output))) + (propagated-inputs + `(("avrdude" ,avrdude) + ("binutils" ,avr-binutils) + ("gcc" ,avr-gcc) + ("libc" ,avr-libc))) + (synopsis "Complete GCC tool chain for AVR microcontroller development") + (description "This package provides a complete GCC tool chain for AVR +microcontroller development. This includes the GCC AVR cross compiler and +avrdude for firmware flashing. The supported programming languages are C and +C++.") + (home-page (package-home-page avr-libc)) + (license (package-license avr-gcc)))) + +(define-public avr-toolchain-4.9 (avr-toolchain avr-gcc-4.9)) +(define-public avr-toolchain-5 (avr-toolchain avr-gcc-5)) (define-public microscheme (package From 503a43f3fc58a4c495d205cd694b2d7a4330eed5 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 14 Apr 2016 08:48:47 -0400 Subject: [PATCH 151/277] gnu: Remove xgcc-avr. We now have a dedicated package module for the AVR toolchain with important modifications on top of what cross-gcc produces. * gnu/packages/cross-base.scm (xgcc-avr): Delete. --- gnu/packages/cross-base.scm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 4856069e0f..a9c337e6ed 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -376,12 +376,6 @@ XBINUTILS and the cross tool chain." (package-supported-systems xgcc) '("mips64el-linux" "i686-linux")))))) -(define-public xgcc-avr - ;; AVR cross-compiler, used to build AVR-Libc. - (let ((triplet "avr")) - (cross-gcc triplet - (cross-binutils triplet)))) - (define-public xgcc-xtensa ;; Bare-bones Xtensa cross-compiler, used to build the Atheros firmware. (cross-gcc "xtensa-elf")) From 5ae77a6f5a3b6d38c2279f97e31f0f35adc7c29b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 30 May 2016 13:25:20 -0400 Subject: [PATCH 152/277] gnu: imagemagick: Update to 6.9.4-5. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.4-5. --- gnu/packages/imagemagick.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index c356a47148..f129b16289 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -40,14 +40,14 @@ (define-public imagemagick (package (name "imagemagick") - (version "6.9.4-4") + (version "6.9.4-5") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "005nnp0masv59yfcdip6qld86567zjbz59c9lkcqrxclm27vmx0p")))) + "0niwa7ci50865x1h6qffz1q6i2ph2l5ym7bhcg5kdnvi4f75p9ir")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths") From fd1461879c63c608617d30524183a71370a7451c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 30 May 2016 21:45:00 +0300 Subject: [PATCH 153/277] gnu: mcrypt: Fix CVE-2012-4409, CVE-2012-4426, CVE-2012-4527. * gnu/packages/mcrypt.scm (mcrypt)[source]: Add patches. * gnu/packages/patches/mcrypt-CVE-2012-4409.patch, gnu/packages/patches/mcrypt-CVE-2012-4426.patch, gnu/packages/patches/mcrypt-CVE-2012-4527.patch: New variables. * gnu/local.mk (dist_patch_DATA): Add them. --- gnu/local.mk | 3 + gnu/packages/mcrypt.scm | 7 +- .../patches/mcrypt-CVE-2012-4409.patch | 33 ++++++ .../patches/mcrypt-CVE-2012-4426.patch | 36 ++++++ .../patches/mcrypt-CVE-2012-4527.patch | 111 ++++++++++++++++++ 5 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/mcrypt-CVE-2012-4409.patch create mode 100644 gnu/packages/patches/mcrypt-CVE-2012-4426.patch create mode 100644 gnu/packages/patches/mcrypt-CVE-2012-4527.patch diff --git a/gnu/local.mk b/gnu/local.mk index d97c2218b5..e94920e554 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -636,6 +636,9 @@ dist_patch_DATA = \ %D%/packages/patches/matplotlib-setupext-tk.patch \ %D%/packages/patches/maxima-defsystem-mkdir.patch \ %D%/packages/patches/mcron-install.patch \ + %D%/packages/patches/mcrypt-CVE-2012-4409.patch \ + %D%/packages/patches/mcrypt-CVE-2012-4426.patch \ + %D%/packages/patches/mcrypt-CVE-2012-4527.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \ %D%/packages/patches/mit-krb5-CVE-2015-8629.patch \ %D%/packages/patches/mit-krb5-CVE-2015-8630.patch \ diff --git a/gnu/packages/mcrypt.scm b/gnu/packages/mcrypt.scm index a683ad7ac9..7ac0b92d81 100644 --- a/gnu/packages/mcrypt.scm +++ b/gnu/packages/mcrypt.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,7 +37,11 @@ version ".tar.gz")) (sha256 (base32 - "161031n1w9pb4yzz9i47szc12a4mwpcpvyxnvafsik2l9s2aliai")))) + "161031n1w9pb4yzz9i47szc12a4mwpcpvyxnvafsik2l9s2aliai")) + (patches (search-patches + "mcrypt-CVE-2012-4409.patch" + "mcrypt-CVE-2012-4426.patch" + "mcrypt-CVE-2012-4527.patch")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib) diff --git a/gnu/packages/patches/mcrypt-CVE-2012-4409.patch b/gnu/packages/patches/mcrypt-CVE-2012-4409.patch new file mode 100644 index 0000000000..60cf8e0430 --- /dev/null +++ b/gnu/packages/patches/mcrypt-CVE-2012-4409.patch @@ -0,0 +1,33 @@ +From 4876e3a692739bb9ca00d0f500fd5f4b3eb16ce3 Mon Sep 17 00:00:00 2001 +From: Tom Callaway +Date: Fri, 7 Sep 2012 11:39:29 -0400 +Subject: apply fix for CVE-2012-4409 (thanks to Raphael Geissert) + +--- + mcrypt-CVE-2012-4409.patch | 12 ++++++++++++ + mcrypt.spec | 10 +++++++++- + 2 files changed, 21 insertions(+), 1 deletion(-) + create mode 100644 mcrypt-CVE-2012-4409.patch + +diff --git a/mcrypt-CVE-2012-4409.patch b/mcrypt-CVE-2012-4409.patch +new file mode 100644 +index 0000000..747f428 +--- /dev/null ++++ b/mcrypt-CVE-2012-4409.patch +@@ -0,0 +1,12 @@ ++diff -up mcrypt-2.6.8/src/extra.c.CVE-2012-4409 mcrypt-2.6.8/src/extra.c ++--- mcrypt-2.6.8/src/extra.c.CVE-2012-4409 2012-09-07 11:00:55.906870746 -0400 +++++ mcrypt-2.6.8/src/extra.c 2012-09-07 11:00:27.967858365 -0400 ++@@ -242,6 +242,8 @@ int check_file_head(FILE * fstream, char ++ if (m_getbit(0, sflag) != 0) { /* if the first bit is set */ ++ *salt_size = m_setbit(0, sflag, 0); ++ if (*salt_size > 0) { +++ if (*salt_size > sizeof(tmp_buf)) +++ err_quit(_("Salt is too long\n")); ++ fread(tmp_buf, 1, *salt_size, ++ fstream); ++ memmove(salt, tmp_buf, *salt_size); + +-- +cgit v0.12 + diff --git a/gnu/packages/patches/mcrypt-CVE-2012-4426.patch b/gnu/packages/patches/mcrypt-CVE-2012-4426.patch new file mode 100644 index 0000000000..61c197b0c9 --- /dev/null +++ b/gnu/packages/patches/mcrypt-CVE-2012-4426.patch @@ -0,0 +1,36 @@ +diff --git a/mcrypt-CVE-2012-4426.patch b/mcrypt-CVE-2012-4426.patch +new file mode 100644 +index 0000000..747f428 +--- mcrypt-2.6.8/src/errors.c ++++ mcrypt-2.6.8/src/errors.c +@@ -25,24 +25,24 @@ + + void err_quit(char *errmsg) + { +- fprintf(stderr, errmsg); ++ fprintf(stderr, "%s", errmsg); + exit(-1); + } + + void err_warn(char *errmsg) + { + if (quiet <= 1) +- fprintf(stderr, errmsg); ++ fprintf(stderr, "%s", errmsg); + } + + void err_info(char *errmsg) + { + if (quiet == 0) +- fprintf(stderr, errmsg); ++ fprintf(stderr, "%s", errmsg); + } + + void err_crit(char *errmsg) + { + if (quiet <= 2) +- fprintf(stderr, errmsg); ++ fprintf(stderr, "%s", errmsg); + } + +--- diff --git a/gnu/packages/patches/mcrypt-CVE-2012-4527.patch b/gnu/packages/patches/mcrypt-CVE-2012-4527.patch new file mode 100644 index 0000000000..d931dd174b --- /dev/null +++ b/gnu/packages/patches/mcrypt-CVE-2012-4527.patch @@ -0,0 +1,111 @@ +From b0716eac4e800a0ea53e1b949250f671702f28a0 Mon Sep 17 00:00:00 2001 +From: Tom Callaway +Date: Tue, 30 Oct 2012 15:39:24 -0400 +Subject: apply workaround to CVE-2012-4527 + +--- + mcrypt-CVE-2012-4527-80-width-patch | 91 +++++++++++++++++++++++++++++++++++++ + mcrypt.spec | 10 +++- + 2 files changed, 100 insertions(+), 1 deletion(-) + create mode 100644 mcrypt-CVE-2012-4527-80-width-patch + +diff --git a/mcrypt-CVE-2012-4527-80-width-patch b/mcrypt-CVE-2012-4527-80-width-patch +new file mode 100644 +index 0000000..0eb94d8 +--- /dev/null ++++ b/mcrypt-CVE-2012-4527-80-width-patch +@@ -0,0 +1,91 @@ ++--- mcrypt-2.6.8.orig/src/mcrypt.c +++++ mcrypt-2.6.8/src/mcrypt.c ++@@ -41,6 +41,8 @@ ++ # include ++ #endif ++ +++#define WIDTH 80 +++ ++ static char rcsid[] = ++ "$Id: mcrypt.c,v 1.2 2007/11/07 17:10:21 nmav Exp $"; ++ ++@@ -482,7 +484,7 @@ ++ #ifdef HAVE_STAT ++ if (stream_flag == FALSE) { ++ if (is_normal_file(file[i]) == FALSE) { ++- sprintf(tmperr, +++ snprintf(tmperr, WIDTH, ++ _ ++ ("%s: %s is not a regular file. Skipping...\n"), ++ program_name, file[i]); ++@@ -501,7 +503,7 @@ ++ dinfile = file[i]; ++ if ((isatty(fileno((FILE *) (stdin))) == 1) ++ && (stream_flag == TRUE) && (force == 0)) { /* not a tty */ ++- sprintf(tmperr, +++ snprintf(tmperr, WIDTH, ++ _ ++ ("%s: Encrypted data will not be read from a terminal.\n"), ++ program_name); ++@@ -520,7 +522,7 @@ ++ einfile = file[i]; ++ if ((isatty(fileno((FILE *) (stdout))) == 1) ++ && (stream_flag == TRUE) && (force == 0)) { /* not a tty */ ++- sprintf(tmperr, +++ snprintf(tmperr, WIDTH, ++ _ ++ ("%s: Encrypted data will not be written to a terminal.\n"), ++ program_name); ++@@ -544,7 +546,7 @@ ++ strcpy(outfile, einfile); ++ /* if file has already the .nc ignore it */ ++ if (strstr(outfile, ".nc") != NULL) { ++- sprintf(tmperr, +++ snprintf(tmperr, WIDTH, ++ _ ++ ("%s: file %s has the .nc suffix... skipping...\n"), ++ program_name, outfile); ++@@ -590,10 +592,10 @@ ++ ++ if (x == 0) { ++ if (stream_flag == FALSE) { ++- sprintf(tmperr, _("File %s was decrypted.\n"), dinfile); +++ snprintf(tmperr, WIDTH, _("File %s was decrypted.\n"), dinfile); ++ err_warn(tmperr); ++ } else { ++- sprintf(tmperr, _("Stdin was decrypted.\n")); +++ snprintf(tmperr, WIDTH, _("Stdin was decrypted.\n")); ++ err_warn(tmperr); ++ } ++ #ifdef HAVE_STAT ++@@ -610,7 +612,7 @@ ++ ++ } else { ++ if (stream_flag == FALSE) { ++- sprintf(tmperr, +++ snprintf(tmperr, WIDTH, ++ _ ++ ("File %s was NOT decrypted successfully.\n"), ++ dinfile); ++@@ -636,10 +638,10 @@ ++ ++ if (x == 0) { ++ if (stream_flag == FALSE) { ++- sprintf(tmperr, _("File %s was encrypted.\n"), einfile); +++ snprintf(tmperr, WIDTH, _("File %s was encrypted.\n"), einfile); ++ err_warn(tmperr); ++ } else { ++- sprintf(tmperr, _("Stdin was encrypted.\n")); +++ snprintf(tmperr, WIDTH, _("Stdin was encrypted.\n")); ++ err_warn(tmperr); ++ } ++ #ifdef HAVE_STAT ++@@ -655,7 +657,7 @@ ++ ++ } else { ++ if (stream_flag == FALSE) { ++- sprintf(tmperr, +++ snprintf(tmperr, WIDTH, ++ _ ++ ("File %s was NOT encrypted successfully.\n"), ++ einfile); +-- +cgit v0.12 + From 365a4a7f405b76b4f397e18a8cb1980654bf9db6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 29 May 2016 14:48:42 +0300 Subject: [PATCH 154/277] gnu: Add zimg. * gnu/packages/image.scm (zimg): New variable. --- gnu/packages/image.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index eca9012bf8..0ab3f60c5e 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -767,3 +767,37 @@ implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e., ISO/IEC 15444-1).") (home-page "https://www.ece.uvic.ca/~frodo/jasper/") (license (license:x11-style "file://LICENSE")))) + +(define-public zimg + (package + (name "zimg") + (version "2.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/sekrit-twc/zimg/archive/" + "release-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1hqp1gcsa2zhypms5dnasb1srjgxdqm7cip3w5i571kk9nxkn289")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ + (zero? (system* "sh" "autogen.sh"))))))) + (synopsis "Scaling, colorspace conversion, and dithering library") + (description "Zimg implements the commonly required image processing basics +of scaling, colorspace conversion, and depth conversion. A simple API enables +conversion between any supported formats to operate with minimal knowledge from +the programmer.") + (home-page "https://github.com/sekrit-twc/zimg") + ;; test/extra/ contains musl-libm, + ;; which is MIT/expat licensed, but only used for tests + (license (license:fsf-free "file://COPYING")))) ;WTFPL version 2 From f80d5fe02e301acb8f9e568e20505eb945343eed Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 29 May 2016 14:52:15 +0300 Subject: [PATCH 155/277] gnu: vapoursynth: Update to 32. * gnu/packages/video.scm (vapoursynth): Update to 32. --- gnu/packages/video.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 6578a4031f..d9a324a374 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1167,7 +1167,7 @@ capabilities.") (define-public vapoursynth (package (name "vapoursynth") - (version "28") + (version "32") (source (origin (method url-fetch) (uri (string-append @@ -1176,7 +1176,7 @@ capabilities.") (file-name (string-append name "-" version)) (sha256 (base32 - "0pnrawcg1j65i46yim0z447lglq1af5zgx0lkqf1x5xl1bfwc0v7")))) + "1j08whj946v2kkpgxsfhpca8xf0ax9iqzn73wvwjx319p9j0ymp9")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -1189,7 +1189,8 @@ capabilities.") (inputs `(("ffmpeg" ,ffmpeg) ("libass" ,libass) - ("tesseract-ocr" ,tesseract-ocr))) + ("tesseract-ocr" ,tesseract-ocr) + ("zimg" ,zimg))) (arguments '(#:phases (modify-phases %standard-phases From 552ffa021ce87ece4aeecf5c8d9786f559991d3a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 00:05:54 +0300 Subject: [PATCH 156/277] download: Update CPAN mirrors. * guix/download.scm (mirrors)[cpan]: Add to mirror list. --- guix/download.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/guix/download.scm b/guix/download.scm index c6f2d6c8e6..9b238dcbdf 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -173,13 +173,22 @@ "ftp://artfiles.org/cpan.org/" "http://www.cpan.org/" "ftp://cpan.rinet.ru/pub/mirror/CPAN/" - "http://cpan.cu.be/" "ftp://cpan.inode.at/" "ftp://cpan.iht.co.il/" "ftp://ftp.osuosl.org/pub/CPAN/" "ftp://ftp.nara.wide.ad.jp/pub/CPAN/" "http://mirrors.163.com/cpan/" - "ftp://cpan.mirror.ac.za/") + "ftp://cpan.mirror.ac.za/" + "http://cpan.mirrors.ionfish.org/" + "http://cpan.mirror.dkm.cz/pub/CPAN/" + "http://cpan.mirror.iphh.net/" + "http://mirrors.teentelecom.net/CPAN/" + "http://mirror.teklinks.com/CPAN/" + "http://cpan.weepeetelecom.be/" + "http://mirrors.xservers.ro/CPAN/" + "http://cpan.yimg.com/" + "http://mirror.yazd.ac.ir/cpan/" + "http://ftp.belnet.be/ftp.cpan.org/") (cran ;; Arbitrary mirrors from http://cran.r-project.org/mirrors.html ;; This one automatically redirects to servers worldwide From 4c14d4eaa7ee9d5d89c04a41adb50c7c532d14e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 30 May 2016 22:13:09 +0200 Subject: [PATCH 157/277] container: Gracefully handle failure to set up user namespaces. * gnu/build/linux-container.scm (run-container): Exit when the parent process doesn't say 'ready. --- gnu/build/linux-container.scm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm index ec68679f0b..562d50bcc7 100644 --- a/gnu/build/linux-container.scm +++ b/gnu/build/linux-container.scm @@ -214,15 +214,18 @@ host user identifiers to map into the user namespace." (lambda () (close out) ;; Wait for parent to set things up. - (read in) - (close in) - (purify-environment) - (when (memq 'mnt namespaces) - (mount-file-systems root mounts - #:mount-/proc? (memq 'pid namespaces) - #:mount-/sys? (memq 'net namespaces))) - ;; TODO: Manage capabilities. - (thunk)))) + (match (read in) + ('ready + (close in) + (purify-environment) + (when (memq 'mnt namespaces) + (mount-file-systems root mounts + #:mount-/proc? (memq 'pid namespaces) + #:mount-/sys? (memq 'net namespaces))) + ;; TODO: Manage capabilities. + (thunk)) + (_ ;parent died or something + (primitive-exit 2)))))) (pid (when (memq 'user namespaces) (initialize-user-namespace pid host-uids)) From c06f6db7a424fd47e3cd2625dbfda2367316f3bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 30 May 2016 22:44:58 +0200 Subject: [PATCH 158/277] container: Gracefully report mount errors in the child process. Fixes . * gnu/build/linux-container.scm (run-container): Use 'socketpair' instead of 'pipe'. Rename 'in' to 'child' and 'out' to 'parent'. Send a 'ready message or an exception argument list from the child to the parent; adjust the parent accordingly. * tests/containers.scm ("call-with-container, mnt namespace, wrong bind mount"): New test. * tests/guix-environment-container.sh: Add test with --expose=/does-not-exist. --- gnu/build/linux-container.scm | 42 ++++++++++++++++++++--------- tests/containers.scm | 12 +++++++++ tests/guix-environment-container.sh | 10 +++++++ 3 files changed, 52 insertions(+), 12 deletions(-) diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm index 562d50bcc7..91996d06ca 100644 --- a/gnu/build/linux-container.scm +++ b/gnu/build/linux-container.scm @@ -205,35 +205,53 @@ host user identifiers to map into the user namespace." ;; The parent process must initialize the user namespace for the child ;; before it can boot. To negotiate this, a pipe is used such that the ;; child process blocks until the parent writes to it. - (match (pipe) - ((in . out) + (match (socketpair PF_UNIX SOCK_STREAM 0) + ((child . parent) (let ((flags (namespaces->bit-mask namespaces))) (match (clone flags) (0 (call-with-clean-exit (lambda () - (close out) + (close-port parent) ;; Wait for parent to set things up. - (match (read in) + (match (read child) ('ready - (close in) (purify-environment) (when (memq 'mnt namespaces) - (mount-file-systems root mounts - #:mount-/proc? (memq 'pid namespaces) - #:mount-/sys? (memq 'net namespaces))) + (catch #t + (lambda () + (mount-file-systems root mounts + #:mount-/proc? (memq 'pid namespaces) + #:mount-/sys? (memq 'net + namespaces))) + (lambda args + ;; Forward the exception to the parent process. + (write args child) + (primitive-exit 3)))) ;; TODO: Manage capabilities. + (write 'ready child) + (close-port child) (thunk)) (_ ;parent died or something (primitive-exit 2)))))) (pid + (close-port child) (when (memq 'user namespaces) (initialize-user-namespace pid host-uids)) ;; TODO: Initialize cgroups. - (close in) - (write 'ready out) - (close out) - pid)))))) + (write 'ready parent) + (newline parent) + + ;; Check whether the child process' setup phase succeeded. + (let ((message (read parent))) + (close-port parent) + (match message + ('ready ;success + pid) + (((? symbol? key) args ...) ;exception + (apply throw key args)) + (_ ;unexpected termination + #f))))))))) (define* (call-with-container mounts thunk #:key (namespaces %namespaces) (host-uids 1)) diff --git a/tests/containers.scm b/tests/containers.scm index c11cdd1ce5..5a0f9937bb 100644 --- a/tests/containers.scm +++ b/tests/containers.scm @@ -79,6 +79,18 @@ (assert-exit (file-exists? "/testing"))) #:namespaces '(user mnt)))) +(test-equal "call-with-container, mnt namespace, wrong bind mount" + `(system-error ,ENOENT) + ;; An exception should be raised; see . + (catch 'system-error + (lambda () + (call-with-container '(("/does-not-exist" device "/foo" + "none" (bind-mount) #f #f)) + (const #t) + #:namespaces '(user mnt))) + (lambda args + (list 'system-error (system-error-errno args))))) + (test-assert "call-with-container, all namespaces" (zero? (call-with-container '() diff --git a/tests/guix-environment-container.sh b/tests/guix-environment-container.sh index 0a7ea481fc..5ea6c49263 100644 --- a/tests/guix-environment-container.sh +++ b/tests/guix-environment-container.sh @@ -44,6 +44,16 @@ else test $? = 42 fi +# Make sure file-not-found errors in mounts are reported. +if guix environment --container --ad-hoc --bootstrap guile-bootstrap \ + --expose=/does-not-exist -- guile -c 1 2> "$tmpdir/error" +then + false +else + grep "/does-not-exist" "$tmpdir/error" + grep "[Nn]o such file" "$tmpdir/error" +fi + # Make sure that the right directories are mapped. mount_test_code=" (use-modules (ice-9 rdelim) From df2dd07b880432a0205dd399fede6dee5b9af76b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 26 May 2016 22:29:24 -0400 Subject: [PATCH 159/277] gnu: libxml2: Update replacement to 2.9.4 [security fixes]. This fixes CVE-2016-{1762, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 3627, 3705, 4483}. * gnu/packages/patches/libxml2-CVE-2016-3627.patch, gnu/packages/patches/libxml2-CVE-2016-3705.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them. * gnu/packages/xml.scm (libxml2/fixed): Update to 2.9.4. [source]: Remove patches. --- gnu/local.mk | 2 - .../patches/libxml2-CVE-2016-3627.patch | 61 ----------------- .../patches/libxml2-CVE-2016-3705.patch | 68 ------------------- gnu/packages/xml.scm | 14 ++-- 4 files changed, 10 insertions(+), 135 deletions(-) delete mode 100644 gnu/packages/patches/libxml2-CVE-2016-3627.patch delete mode 100644 gnu/packages/patches/libxml2-CVE-2016-3705.patch diff --git a/gnu/local.mk b/gnu/local.mk index e94920e554..6e2d765159 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -616,8 +616,6 @@ dist_patch_DATA = \ %D%/packages/patches/libwmf-CVE-2015-0848+CVE-2015-4588.patch \ %D%/packages/patches/libwmf-CVE-2015-4695.patch \ %D%/packages/patches/libwmf-CVE-2015-4696.patch \ - %D%/packages/patches/libxml2-CVE-2016-3627.patch \ - %D%/packages/patches/libxml2-CVE-2016-3705.patch \ %D%/packages/patches/libxslt-CVE-2015-7995.patch \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/libpthread-glibc-preparation.patch \ diff --git a/gnu/packages/patches/libxml2-CVE-2016-3627.patch b/gnu/packages/patches/libxml2-CVE-2016-3627.patch deleted file mode 100644 index 782c9270cf..0000000000 --- a/gnu/packages/patches/libxml2-CVE-2016-3627.patch +++ /dev/null @@ -1,61 +0,0 @@ -From . - -From e5269fd1e83743f7e62c89eca45000c2e84e6edc Mon Sep 17 00:00:00 2001 -From: Peter Simons -Date: Thu, 14 Apr 2016 16:15:13 +0200 -Subject: [PATCH 1/2] xmlStringGetNodeList: limit the function to 1024 - recursions to avoid CVE-2016-3627 - -This patch prevents stack overflows like the one reported in -https://bugzilla.gnome.org/show_bug.cgi?id=762100. ---- - tree.c | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -Index: libxml2-2.9.3/tree.c -=================================================================== ---- libxml2-2.9.3.orig/tree.c -+++ libxml2-2.9.3/tree.c -@@ -1464,6 +1464,8 @@ out: - return(ret); - } - -+static xmlNodePtr xmlStringGetNodeListInternal(const xmlDoc *doc, const xmlChar *value, size_t recursionLevel); -+ - /** - * xmlStringGetNodeList: - * @doc: the document -@@ -1475,6 +1477,12 @@ out: - */ - xmlNodePtr - xmlStringGetNodeList(const xmlDoc *doc, const xmlChar *value) { -+ return xmlStringGetNodeListInternal(doc, value, 0); -+ } -+ -+xmlNodePtr -+xmlStringGetNodeListInternal(const xmlDoc *doc, const xmlChar *value, size_t recursionLevel) { -+ - xmlNodePtr ret = NULL, last = NULL; - xmlNodePtr node; - xmlChar *val; -@@ -1483,6 +1491,8 @@ xmlStringGetNodeList(const xmlDoc *doc, - xmlEntityPtr ent; - xmlBufPtr buf; - -+ if (recursionLevel > 1024) return(NULL); -+ - if (value == NULL) return(NULL); - - buf = xmlBufCreateSize(0); -@@ -1593,8 +1603,9 @@ xmlStringGetNodeList(const xmlDoc *doc, - else if ((ent != NULL) && (ent->children == NULL)) { - xmlNodePtr temp; - -- ent->children = xmlStringGetNodeList(doc, -- (const xmlChar*)node->content); -+ ent->children = xmlStringGetNodeListInternal(doc, -+ (const xmlChar*)node->content, -+ recursionLevel+1); - ent->owner = 1; - temp = ent->children; - while (temp) { diff --git a/gnu/packages/patches/libxml2-CVE-2016-3705.patch b/gnu/packages/patches/libxml2-CVE-2016-3705.patch deleted file mode 100644 index e803630f3a..0000000000 --- a/gnu/packages/patches/libxml2-CVE-2016-3705.patch +++ /dev/null @@ -1,68 +0,0 @@ -From . - -From 6f0af3f6b9b1c5f82a2bb5ded65923437fee5d21 Mon Sep 17 00:00:00 2001 -From: Peter Simons -Date: Fri, 15 Apr 2016 11:56:55 +0200 -Subject: [PATCH 2/2] Add missing increments of recursion depth counter to XML - parser. - -The functions xmlParserEntityCheck() and xmlParseAttValueComplex() used to call -xmlStringDecodeEntities() in a recursive context without incrementing the -'depth' counter in the parser context. Because of that omission, the parser -failed to detect attribute recursions in certain documents before running out -of stack space. ---- - parser.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/parser.c b/parser.c -index 9604a72..4da151f 100644 ---- a/parser.c -+++ b/parser.c -@@ -144,8 +144,10 @@ xmlParserEntityCheck(xmlParserCtxtPtr ctxt, size_t size, - - ent->checked = 1; - -+ ++ctxt->depth; - rep = xmlStringDecodeEntities(ctxt, ent->content, - XML_SUBSTITUTE_REF, 0, 0, 0); -+ --ctxt->depth; - - ent->checked = (ctxt->nbentities - oldnbent + 1) * 2; - if (rep != NULL) { -@@ -3966,8 +3968,10 @@ xmlParseEntityValue(xmlParserCtxtPtr ctxt, xmlChar **orig) { - * an entity declaration, it is bypassed and left as is. - * so XML_SUBSTITUTE_REF is not set here. - */ -+ ++ctxt->depth; - ret = xmlStringDecodeEntities(ctxt, buf, XML_SUBSTITUTE_PEREF, - 0, 0, 0); -+ --ctxt->depth; - if (orig != NULL) - *orig = buf; - else -@@ -4092,9 +4096,11 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { - } else if ((ent != NULL) && - (ctxt->replaceEntities != 0)) { - if (ent->etype != XML_INTERNAL_PREDEFINED_ENTITY) { -+ ++ctxt->depth; - rep = xmlStringDecodeEntities(ctxt, ent->content, - XML_SUBSTITUTE_REF, - 0, 0, 0); -+ --ctxt->depth; - if (rep != NULL) { - current = rep; - while (*current != 0) { /* non input consuming */ -@@ -4130,8 +4136,10 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { - (ent->content != NULL) && (ent->checked == 0)) { - unsigned long oldnbent = ctxt->nbentities; - -+ ++ctxt->depth; - rep = xmlStringDecodeEntities(ctxt, ent->content, - XML_SUBSTITUTE_REF, 0, 0, 0); -+ --ctxt->depth; - - ent->checked = (ctxt->nbentities - oldnbent + 1) * 2; - if (rep != NULL) { --- -2.8.1 diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 782e356a70..dc5c60dca8 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -107,10 +107,16 @@ project (but it is usable outside of the Gnome platform).") (define libxml2/fixed (package (inherit libxml2) - (source (origin - (inherit (package-source libxml2)) - (patches (search-patches "libxml2-CVE-2016-3627.patch" - "libxml2-CVE-2016-3705.patch")))))) + (source + (let ((name "libxml2") + (version "2.9.4")) + (origin + (method url-fetch) + (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-" + version ".tar.gz")) + (sha256 + (base32 + "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz"))))))) (define-public python-libxml2 (package (inherit libxml2) From 8fe5d95e6653a8ca2f40048b71bb596c80bb264f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 29 May 2016 11:13:59 -0400 Subject: [PATCH 160/277] services: urandom-seed: Set umask to 077 while shutting down. * gnu/services/base.scm (urandom-seed-shepherd-service): Call 'umask'. --- gnu/services/base.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index a45f219643..b8e4741739 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -460,10 +460,12 @@ stopped before 'kill' is called." (let ((buf (make-bytevector 512))) (call-with-input-file "/dev/urandom" (lambda (urandom) - (get-bytevector-n! urandom buf 0 512) - (call-with-output-file #$%random-seed-file - (lambda (seed) - (put-bytevector seed buf))) + (let ((previous-umask (umask #o077))) + (get-bytevector-n! urandom buf 0 512) + (call-with-output-file #$%random-seed-file + (lambda (seed) + (put-bytevector seed buf))) + (umask previous-umask)) #t))))) (modules `((rnrs bytevectors) (rnrs io ports) From e08380fb6cefd3fd67c3c220a3ddaf385e6413cf Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 22 Dec 2015 17:16:17 +0100 Subject: [PATCH 161/277] daemon: Handle /tmp being a symlink. * nix/libstore/build.cc (DerivationGoal::startBuilder): Call 'canonPath' on "/tmp". --- nix/libstore/build.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index f9fd61adde..f0f60d7df1 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -1717,7 +1717,7 @@ void DerivationGoal::startBuilder() /* In a sandbox, for determinism, always use the same temporary directory. */ - tmpDirInSandbox = useChroot ? "/tmp/guix-build-" + drvName + "-0" : tmpDir; + tmpDirInSandbox = useChroot ? canonPath("/tmp/guix-build-", true) + drvName + "-0" : tmpDir; /* For convenience, set an environment pointing to the top build directory. */ From 63a5be07e252904eeb83a88dce37008e1affec1a Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 4 Jan 2016 11:32:46 +0100 Subject: [PATCH 162/277] daemon: ~PathLocks(): Handle exceptions. Otherwise, since the call to write a "d" character to the lock file can fail with ENOSPC, we can get an unhandled exception resulting in a call to terminate(). --- nix/libstore/pathlocks.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nix/libstore/pathlocks.cc b/nix/libstore/pathlocks.cc index 830858ff8d..9797ddd7ab 100644 --- a/nix/libstore/pathlocks.cc +++ b/nix/libstore/pathlocks.cc @@ -162,7 +162,11 @@ bool PathLocks::lockPaths(const PathSet & _paths, PathLocks::~PathLocks() { - unlock(); + try { + unlock(); + } catch (...) { + ignoreException(); + } } From 1a9574e3a73e6ec1641c7238d87e45d00b862283 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 6 Jan 2016 21:49:32 +0100 Subject: [PATCH 163/277] daemon: Fix --repair failure on multiple-output derivations. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If repair found a corrupted/missing path that depended on a multiple-output derivation, and some of the outputs of the latter were not present, it failed with a message like error: path ‘/nix/store/cnfn9d5fjys1y93cz9shld2xwaibd7nn-bash-4.3-p42-doc’ is not valid Co-authored-by: Ludovic Courtès --- nix/libstore/build.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index f0f60d7df1..bbcb55a0b9 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -1106,8 +1106,10 @@ void DerivationGoal::repairClosure() /* Get the output closure. */ PathSet outputClosure; - foreach (DerivationOutputs::iterator, i, drv.outputs) + foreach (DerivationOutputs::iterator, i, drv.outputs) { + if (!wantOutput(i->first, wantedOutputs)) continue; computeFSClosure(worker.store, i->second.path, outputClosure); + } /* Filter out our own outputs (which we have already checked). */ foreach (DerivationOutputs::iterator, i, drv.outputs) From c56cd90cc93898ce4633cebc6ec5e490eb10fce4 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 6 Jan 2016 22:07:59 +0100 Subject: [PATCH 164/277] daemon: When repairing, rebuild if there is no substituter. --- nix/libstore/build.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index bbcb55a0b9..2f8b4dabba 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -3482,8 +3482,17 @@ void LocalStore::repairPath(const Path & path) worker.run(goals); - if (goal->getExitCode() != Goal::ecSuccess) - throw Error(format("cannot repair path `%1%'") % path, worker.exitStatus()); + if (goal->getExitCode() != Goal::ecSuccess) { + /* Since substituting the path didn't work, if we have a valid + deriver, then rebuild the deriver. */ + Path deriver = queryDeriver(path); + if (deriver != "" && isValidPath(deriver)) { + goals.clear(); + goals.insert(worker.makeDerivationGoal(deriver, StringSet(), bmRepair)); + worker.run(goals); + } else + throw Error(format("cannot repair path `%1%'") % path, worker.exitStatus()); + } } From f83e82cd00653b443b180ad100886bd096209b83 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 12 Jan 2016 14:54:39 +0100 Subject: [PATCH 165/277] daemon: check: Fix assertion failure when some outputs are missing. E.g. $ nix-build pkgs/stdenv/linux/ -A stage1.pkgs.perl --check nix-store: src/libstore/build.cc:1323: void nix::DerivationGoal::tryToBuild(): Assertion `buildMode != bmCheck || validPaths.size() == drv->outputs.size()' failed. when perl.out exists but perl.man doesn't. The fix is to only check the outputs that exist. Note that "nix-build -A stage1.pkgs.all --check" will still give a (proper) error in this case. --- nix/libstore/build.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index 2f8b4dabba..07babf9797 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -1291,7 +1291,6 @@ void DerivationGoal::tryToBuild() now hold the locks on the output paths, no other process can build this derivation, so no further checks are necessary. */ validPaths = checkPathValidity(true, buildMode == bmRepair); - assert(buildMode != bmCheck || validPaths.size() == drv.outputs.size()); if (buildMode != bmCheck && validPaths.size() == drv.outputs.size()) { debug(format("skipping build of derivation `%1%', someone beat us to it") % drvPath); outputLocks.setDeletion(true); @@ -2430,6 +2429,7 @@ void DerivationGoal::registerOutputs() PathSet references = scanForReferences(actualPath, allPaths, hash); if (buildMode == bmCheck) { + if (!store->isValidPath(path)) continue; ValidPathInfo info = worker.store.queryPathInfo(path); if (hash.first != info.hash) throw Error(format("derivation `%1%' may not be deterministic: hash mismatch in output `%2%'") % drvPath % path); From 7889e72dad81cdf9ab6c94635976a612662baa09 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 12 Jan 2016 15:13:47 +0100 Subject: [PATCH 166/277] daemon: check: Fix "failed to produce output path". This occured when sandbox building is disabled, at least one output exists, and at least one other output does not. --- nix/libstore/build.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index 07babf9797..dd8660dffe 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -2345,7 +2345,7 @@ void DerivationGoal::registerOutputs() && redirectedBadOutputs.find(path) != redirectedBadOutputs.end() && pathExists(redirected)) replaceValidPath(path, redirected); - if (buildMode == bmCheck) + if (buildMode == bmCheck && redirected != "") actualPath = redirected; } From 7f3b2510d6b050b8fb0974fa0cd7a164ac51f6d1 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 12 Jan 2016 16:44:26 +0100 Subject: [PATCH 167/277] daemon: check: Keep the differing output if -K is given. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes it easier to investigate the non-determinism, e.g. $ nix-build pkgs/stdenv/linux -A stage1.pkgs.zlib --check -K error: derivation ‘/nix/store/l54i8wlw22656i4pk05c52ngv9rpl39q-zlib-1.2.8.drv’ may not be deterministic: output ‘/nix/store/11a27shh6n2ivi4a7s964i65ql80cf27-zlib-1.2.8’ differs from ‘/nix/store/11a27shh6n2ivi4a7s964i65ql80cf27-zlib-1.2.8-check’ $ diffoscope /nix/store/11a27shh6n2ivi4a7s964i65ql80cf27-zlib-1.2.8 /nix/store/11a27shh6n2ivi4a7s964i65ql80cf27-zlib-1.2.8-check ... ├── lib/libz.a │ ├── metadata │ │ @@ -1,15 +1,15 @@ │ │ -rw-r--r-- 30001/30000 3096 Jan 12 15:20 2016 adler32.o ... │ │ +rw-r--r-- 30001/30000 3096 Jan 12 15:28 2016 adler32.o ... Co-authored-by: Ludovic Courtès --- doc/guix.texi | 4 ++++ nix/libstore/build.cc | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 01363c1d13..cd4e550ef3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4332,6 +4332,10 @@ substitutes are genuine (@pxref{Substitutes}), or whether the build result of a package is deterministic. @xref{Invoking guix challenge}, for more background information and tools. +When used in conjunction with @option{--keep-failed}, the differing +output is kept in the store, under @file{/gnu/store/@dots{}-check}. +This makes it easy to look for differences between the two results. + @item --derivations @itemx -d Return the derivation paths, not the output paths, of the given diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index dd8660dffe..d51705b48f 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -2431,8 +2431,18 @@ void DerivationGoal::registerOutputs() if (buildMode == bmCheck) { if (!store->isValidPath(path)) continue; ValidPathInfo info = worker.store.queryPathInfo(path); - if (hash.first != info.hash) - throw Error(format("derivation `%1%' may not be deterministic: hash mismatch in output `%2%'") % drvPath % path); + if (hash.first != info.hash) { + if (settings.keepFailed) { + Path dst = path + "-check"; + if (pathExists(dst)) deletePath(dst); + if (rename(actualPath.c_str(), dst.c_str())) + throw SysError(format("renaming `%1%' to `%2%'") % actualPath % dst); + throw Error(format("derivation `%1%' may not be deterministic: output `%2%' differs from ‘%3%’") + % drvPath % path % dst); + } else + throw Error(format("derivation `%1%' may not be deterministic: output `%2%' differs") + % drvPath % path); + } continue; } From 56b8f56788b082fc54dedbb003b2891294dd6c22 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 12 Jan 2016 17:27:40 +0100 Subject: [PATCH 168/277] daemon: Canonicalize gids to 0. Previously files in the Nix store were owned by root or by nixbld, depending on whether they were created by a substituter or by a builder. This doesn't matter much, but causes spurious diffoscope differences. So use root everywhere. --- nix/libstore/local-store.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nix/libstore/local-store.cc b/nix/libstore/local-store.cc index 11f61ae030..1eed0ca77f 100644 --- a/nix/libstore/local-store.cc +++ b/nix/libstore/local-store.cc @@ -606,10 +606,10 @@ static void canonicalisePathMetaData_(const Path & path, uid_t fromUid, InodesSe users group); we check for this case below. */ if (st.st_uid != geteuid()) { #if HAVE_LCHOWN - if (lchown(path.c_str(), geteuid(), (gid_t) -1) == -1) + if (lchown(path.c_str(), geteuid(), getegid()) == -1) #else if (!S_ISLNK(st.st_mode) && - chown(path.c_str(), geteuid(), (gid_t) -1) == -1) + chown(path.c_str(), geteuid(), getegid()) == -1) #endif throw SysError(format("changing owner of `%1%' to %2%") % path % geteuid()); From b4528110c647b6fe9389730826941bea05801394 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 12 Jan 2016 18:25:57 +0100 Subject: [PATCH 169/277] daemon: rounds: Keep the differing output if -K is given. Regardless of -K, we now also print which output differs. --- doc/guix.texi | 4 ++++ nix/libstore/build.cc | 45 ++++++++++++++++++++++++++++++++++++------- 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index cd4e550ef3..4222e011e5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -998,6 +998,10 @@ consecutive build results are not bit-for-bit identical. Note that this setting can be overridden by clients such as @command{guix build} (@pxref{Invoking guix build}). +When used in conjunction with @option{--keep-failed}, the differing +output is kept in the store, under @file{/gnu/store/@dots{}-check}. +This makes it easy to look for differences between the two results. + @item --debug Produce debugging output. diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index d51705b48f..2d3960bf89 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -2320,6 +2320,8 @@ void DerivationGoal::registerOutputs() outputs to allow hard links between outputs. */ InodesSeen inodesSeen; + Path checkSuffix = "-check"; + /* Check whether the output paths were created, and grep each output path to determine what other paths it references. Also make all output paths read-only. */ @@ -2433,7 +2435,7 @@ void DerivationGoal::registerOutputs() ValidPathInfo info = worker.store.queryPathInfo(path); if (hash.first != info.hash) { if (settings.keepFailed) { - Path dst = path + "-check"; + Path dst = path + checkSuffix; if (pathExists(dst)) deletePath(dst); if (rename(actualPath.c_str(), dst.c_str())) throw SysError(format("renaming `%1%' to `%2%'") % actualPath % dst); @@ -2487,9 +2489,11 @@ void DerivationGoal::registerOutputs() checkRefs("disallowedReferences", false, false); checkRefs("disallowedRequisites", false, true); - worker.store.optimisePath(path); // FIXME: combine with scanForReferences() + if (curRound == nrRounds) { + worker.store.optimisePath(path); // FIXME: combine with scanForReferences() - worker.store.markContentsGood(path); + worker.store.markContentsGood(path); + } ValidPathInfo info; info.path = path; @@ -2502,10 +2506,37 @@ void DerivationGoal::registerOutputs() if (buildMode == bmCheck) return; - if (curRound > 1 && prevInfos != infos) - throw NotDeterministic( - format("result of ‘%1%’ differs from previous round; rejecting as non-deterministic") - % drvPath); + /* Compare the result with the previous round, and report which + path is different, if any.*/ + if (curRound > 1 && prevInfos != infos) { + assert(prevInfos.size() == infos.size()); + for (auto i = prevInfos.begin(), j = infos.begin(); i != prevInfos.end(); ++i, ++j) + if (!(*i == *j)) { + Path prev = i->path + checkSuffix; + if (pathExists(prev)) + throw NotDeterministic( + format("output ‘%1%’ of ‘%2%’ differs from ‘%3%’ from previous round") + % i->path % drvPath % prev); + else + throw NotDeterministic( + format("output ‘%1%’ of ‘%2%’ differs from previous round") + % i->path % drvPath); + } + assert(false); // shouldn't happen + } + + if (settings.keepFailed) { + for (auto & i : drv.outputs) { + Path prev = i.second.path + checkSuffix; + if (pathExists(prev)) deletePath(prev); + if (curRound < nrRounds) { + Path dst = i.second.path + checkSuffix; + if (rename(i.second.path.c_str(), dst.c_str())) + throw SysError(format("renaming ‘%1%’ to ‘%2%’") % i.second.path % dst); + } + } + + } if (curRound < nrRounds) { prevInfos = infos; From 4ce3c2872b11a9d177300b3aaf1201627e2e12fd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 24 May 2016 14:53:31 +0200 Subject: [PATCH 170/277] gnu: Add r-knitrbootstrap. * gnu/packages/statistics.scm (r-knitrbootstrap): New variable. --- gnu/packages/statistics.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 1a6644391f..d3696e6b09 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -792,6 +792,29 @@ generation in R using Literate Programming techniques.") ;; here. (license license:gpl2+))) +(define-public r-knitrbootstrap + (package + (name "r-knitrbootstrap") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "knitrBootstrap" version)) + (sha256 + (base32 + "0pshn2slzqwpryklslsxwh1dmqcnwv6bwi7yfm6m342wjybpk0wl")))) + (properties `((upstream-name . "knitrBootstrap"))) + (build-system r-build-system) + (propagated-inputs + `(("r-knitr" ,r-knitr) + ("r-rmarkdown" ,r-rmarkdown))) + (home-page "https://github.com/jimhester/knitrBootstrap") + (synopsis "Knitr bootstrap framework") + (description + "This package provides a framework to create Bootstrap 3 HTML reports +from knitr Rmarkdown.") + (license license:expat))) + (define-public r-microbenchmark (package (name "r-microbenchmark") From 81701725023dcc83154bcbdc5be1bfa39da8db3d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 May 2016 17:25:23 +0200 Subject: [PATCH 171/277] gnu: julia: Update to 0.4.5. * gnu/packages/julia.scm (julia): Update to 0.4.5. (libuv-julia): Update commit. --- gnu/packages/julia.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index 4e6b87116a..d358a003e7 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -43,8 +43,8 @@ #:use-module (ice-9 match)) (define libuv-julia - (let ((commit "07730c4bd595b4d45a498a8ee0bcd53878ff7c10") - (revision "2")) + (let ((commit "efb40768b7c7bd9f173a7868f74b92b1c5a61a0e") + (revision "3")) (package (inherit libuv) (name "libuv-julia") (version (string-append "0.11.26." revision "-" (string-take commit 8))) @@ -56,7 +56,7 @@ (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1r0d4wb41w8k3bi9sjr7kapk1ag131ss2fbqa4jz4gnrzvw94sqx")))) + "16k6pm2jl0ymz5j4ldxn94imdimahqqfd2izgr3zf1vwyyay77w3")))) (build-system gnu-build-system) (arguments (substitute-keyword-arguments (package-arguments libuv) @@ -68,7 +68,7 @@ (define-public julia (package (name "julia") - (version "0.4.3") + (version "0.4.5") (source (origin (method url-fetch) (uri (string-append @@ -76,7 +76,7 @@ version "/julia-" version "-full.tar.gz")) (sha256 (base32 - "1i8k847d8n9v37xg69grpl51dysx36p0phwf0d1qxpsqixdg579b")))) + "1nbi78fav5f4zj5332iwm4mfk0qhd5qh61z881q69rvp7b163wyb")))) (build-system gnu-build-system) (arguments `(#:test-target "test" From aa3b391092aa50b4f29cd9e548042beed062b9af Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 31 May 2016 16:24:59 +0200 Subject: [PATCH 172/277] gnu: Add r-runit. * gnu/packages/statistics.scm (r-runit): New variable. --- gnu/packages/statistics.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index d3696e6b09..1288d9d7ef 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2640,6 +2640,26 @@ noncentral hypergeometric distribution (also called extended hypergeometric distribution).") (license license:gpl3+))) +(define-public r-runit + (package + (name "r-runit") + (version "0.4.31") + (source + (origin + (method url-fetch) + (uri (cran-uri "RUnit" version)) + (sha256 + (base32 + "1jqr871jkll2xmk7wk5hv1z3a36hyn2ibgivw7bwk4b346940xlx")))) + (properties `((upstream-name . "RUnit"))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/RUnit") + (synopsis "R unit test framework") + (description + "This package provides R functions implementing a standard unit testing +framework, with additional code inspection and report generation tools.") + (license license:gpl2+))) + (define-public r-zoo (package (name "r-zoo") From 64efa3078a487a059ada076519d94411685727e9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 23 May 2016 16:57:16 +0200 Subject: [PATCH 173/277] gnu: Add r-genomationdata. * gnu/packages/bioinformatics.scm (r-genomationdata): New variable. --- gnu/packages/bioinformatics.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 11e74c6d2c..94ae4455b8 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4776,6 +4776,34 @@ genomic feature data as long as it has minimal information on the locations of genomic intervals. In addition, it can use BAM or BigWig files as input.") (license license:artistic2.0))) +(define-public r-genomationdata + (package + (name "r-genomationdata") + (version "1.4.0") + (source (origin + (method url-fetch) + ;; We cannot use bioconductor-uri here because this tarball is + ;; located under "data/annotation/" instead of "bioc/". + (uri (string-append "https://bioconductor.org/packages/" + "release/data/experiment/src/contrib/" + "genomationData_" version ".tar.gz")) + (sha256 + (base32 + "1xzq2j722d8lcn5bc3aq3yb34xwis2d0bpsf6jsq4xw1bg0bsy79")))) + (build-system r-build-system) + ;; As this package provides little more than large data files, it doesn't + ;; make sense to build substitutes. + (arguments `(#:substitutable? #f)) + (native-inputs + `(("r-knitr" ,r-knitr))) + (home-page "http://bioinformatics.mdc-berlin.de/genomation/") + (synopsis "Experimental data for use with the genomation package") + (description + "This package contains experimental genetic data for use with the +genomation package. Included are Chip Seq, Methylation and Cage data, +downloaded from Encode.") + (license license:gpl3+))) + (define-public r-org-hs-eg-db (package (name "r-org-hs-eg-db") From a5dd8db4ffd9c70ac56bd61e2012dca6404cef49 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 17:49:48 +0300 Subject: [PATCH 174/277] gnu: gimp: Update to 2.8.16. * gnu/packages/gimp.scm (gimp): Update to 2.8.16. --- gnu/packages/gimp.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index b11791b921..1cd779a9b0 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -124,14 +124,15 @@ buffers.") (define-public gimp (package (name "gimp") - (version "2.8.14") + (version "2.8.16") (source (origin (method url-fetch) - (uri (string-append "http://download.gimp.org/pub/gimp/v2.8/gimp-" - version ".tar.bz2")) + (uri (string-append "http://download.gimp.org/pub/gimp/v" + (version-major+minor version) + "/gimp-" version ".tar.bz2")) (sha256 (base32 - "0bdj0l7a94jqhjnj40m9rqaf622wj905iximivb55iy98639aanq")))) + "1dsgazia9hmab8cw3iis7s69dvqyfj5wga7ds7w2q5mms1xqbqwm")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;8 MiB of gtk-doc HTML From 23aab4ab2cb8464b3c7907c8a164fd5710a24e0e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 23 May 2016 12:52:00 +0200 Subject: [PATCH 175/277] gnu: Add ghmm. * gnu/packages/machine-learning.scm (ghmm): New variable. --- gnu/packages/machine-learning.scm | 94 ++++++++++++++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 218c50cf81..2ccf0f2557 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. @@ -22,12 +22,15 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix download) + #:use-module (guix svn-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system r) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages boost) #:use-module (gnu packages compression) + #:use-module (gnu packages dejagnu) #:use-module (gnu packages gcc) #:use-module (gnu packages maths) #:use-module (gnu packages pkg-config) @@ -108,6 +111,95 @@ classification.") `(("python" ,python))) (synopsis "Python bindings of libSVM"))) +(define-public ghmm + ;; The latest release candidate is several years and a couple of fixes have + ;; been published since. This is why we download the sources from the SVN + ;; repository. + (let ((svn-revision 2341)) + (package + (name "ghmm") + (version (string-append "0.9-rc3-0." (number->string svn-revision))) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url "http://svn.code.sf.net/p/ghmm/code/trunk") + (revision svn-revision))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "0qbq1rqp94l530f043qzp8aw5lj7dng9wq0miffd7spd1ff638wq")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-dir + (lambda _ (chdir "ghmm") #t)) + (add-after 'enter-dir 'fix-PYTHONPATH + (lambda* (#:key outputs #:allow-other-keys) + ;; The Python tests fail as the library is assumed to be stored + ;; in ./build/lib.linux-i686-*. To fix this we detect the CPU + ;; and use it in the path. + (substitute* "configure.in" + (("AM_INIT_AUTOMAKE" line) + (string-append line "\nAC_CANONICAL_HOST\n"))) + (substitute* "ghmmwrapper/Makefile.am" + (("i686") "@host_cpu@")) + #t)) + (add-after 'enter-dir 'fix-runpath + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "ghmmwrapper/setup.py" + (("^(.*)extra_compile_args = \\[" line indent) + (string-append indent + "extra_link_args = [\"-Wl,-rpath=" + (assoc-ref outputs "out") "/lib\"],\n" + line + "\"-Wl,-rpath=" + (assoc-ref outputs "out") + "/lib\", "))) + #t)) + (add-after 'enter-dir 'disable-broken-tests + (lambda _ + (substitute* "tests/Makefile.am" + ;; GHMM_SILENT_TESTS is assumed to be a command. + (("TESTS_ENVIRONMENT.*") "") + ;; Do not build broken tests. + (("chmm .*") "") + (("read_fa .*") "") + (("mcmc .*") "") + (("label_higher_order_test.*$") + "label_higher_order_test\n")) + + ;; These Python unittests are broken as there is no gato. + ;; See https://sourceforge.net/p/ghmm/support-requests/3/ + (substitute* "ghmmwrapper/ghmmunittests.py" + (("^(.*)def (testNewXML|testMultipleTransitionClasses|testNewXML)" + line indent) + (string-append indent + "@unittest.skip(\"Disabled by Guix\")\n" + line))) + #t)) + (add-before 'configure 'autogen + (lambda _ + (zero? (system* "bash" "./autogen.sh"))))))) + (inputs + `(("python" ,python-2) ; only Python 2 is supported + ("libxml2" ,libxml2))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("dejagnu" ,dejagnu) + ("swig" ,swig) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (home-page "http://ghmm.org") + (synopsis "Hidden Markov Model library") + (description + "The General Hidden Markov Model library (GHMM) is a C library with +additional Python bindings implementing a wide range of types of @dfn{Hidden +Markov Models} (HMM) and algorithms: discrete, continous emissions, basic +training, HMM clustering, HMM mixtures.") + (license license:lgpl2.0+)))) + (define-public randomjungle (package (name "randomjungle") From 75abbd0cbe2c42f07fa104f97bd206891eb576ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 31 May 2016 14:37:54 +0200 Subject: [PATCH 176/277] daemon: Remove unused XML output code. * nix/local.mk (libutil_a_SOURCES): Remove libutil/xml-writer.cc. (libutil_headers): Remove libutil/xml-writer.hh. * nix/libutil/xml-writer.hh, nix/libutil/xml-writer.cc: Remove. --- nix/libutil/xml-writer.cc | 94 --------------------------------------- nix/libutil/xml-writer.hh | 69 ---------------------------- nix/local.mk | 2 - 3 files changed, 165 deletions(-) delete mode 100644 nix/libutil/xml-writer.cc delete mode 100644 nix/libutil/xml-writer.hh diff --git a/nix/libutil/xml-writer.cc b/nix/libutil/xml-writer.cc deleted file mode 100644 index 01794001b2..0000000000 --- a/nix/libutil/xml-writer.cc +++ /dev/null @@ -1,94 +0,0 @@ -#include - -#include "xml-writer.hh" - - -namespace nix { - - -XMLWriter::XMLWriter(bool indent, std::ostream & output) - : output(output), indent(indent) -{ - output << "" << std::endl; - closed = false; -} - - -XMLWriter::~XMLWriter() -{ - close(); -} - - -void XMLWriter::close() -{ - if (closed) return; - while (!pendingElems.empty()) closeElement(); - closed = true; -} - - -void XMLWriter::indent_(unsigned int depth) -{ - if (!indent) return; - output << string(depth * 2, ' '); -} - - -void XMLWriter::openElement(const string & name, - const XMLAttrs & attrs) -{ - assert(!closed); - indent_(pendingElems.size()); - output << "<" << name; - writeAttrs(attrs); - output << ">"; - if (indent) output << std::endl; - pendingElems.push_back(name); -} - - -void XMLWriter::closeElement() -{ - assert(!pendingElems.empty()); - indent_(pendingElems.size() - 1); - output << ""; - if (indent) output << std::endl; - pendingElems.pop_back(); - if (pendingElems.empty()) closed = true; -} - - -void XMLWriter::writeEmptyElement(const string & name, - const XMLAttrs & attrs) -{ - assert(!closed); - indent_(pendingElems.size()); - output << "<" << name; - writeAttrs(attrs); - output << " />"; - if (indent) output << std::endl; -} - - -void XMLWriter::writeAttrs(const XMLAttrs & attrs) -{ - for (XMLAttrs::const_iterator i = attrs.begin(); i != attrs.end(); ++i) { - output << " " << i->first << "=\""; - for (unsigned int j = 0; j < i->second.size(); ++j) { - char c = i->second[j]; - if (c == '"') output << """; - else if (c == '<') output << "<"; - else if (c == '>') output << ">"; - else if (c == '&') output << "&"; - /* Escape newlines to prevent attribute normalisation (see - XML spec, section 3.3.3. */ - else if (c == '\n') output << " "; - else output << c; - } - output << "\""; - } -} - - -} diff --git a/nix/libutil/xml-writer.hh b/nix/libutil/xml-writer.hh deleted file mode 100644 index 3cefe3712c..0000000000 --- a/nix/libutil/xml-writer.hh +++ /dev/null @@ -1,69 +0,0 @@ -#pragma once - -#include -#include -#include -#include - - -namespace nix { - -using std::string; -using std::map; -using std::list; - - -typedef map XMLAttrs; - - -class XMLWriter -{ -private: - - std::ostream & output; - - bool indent; - bool closed; - - list pendingElems; - -public: - - XMLWriter(bool indent, std::ostream & output); - ~XMLWriter(); - - void close(); - - void openElement(const string & name, - const XMLAttrs & attrs = XMLAttrs()); - void closeElement(); - - void writeEmptyElement(const string & name, - const XMLAttrs & attrs = XMLAttrs()); - -private: - void writeAttrs(const XMLAttrs & attrs); - - void indent_(unsigned int depth); -}; - - -class XMLOpenElement -{ -private: - XMLWriter & writer; -public: - XMLOpenElement(XMLWriter & writer, const string & name, - const XMLAttrs & attrs = XMLAttrs()) - : writer(writer) - { - writer.openElement(name, attrs); - } - ~XMLOpenElement() - { - writer.closeElement(); - } -}; - - -} diff --git a/nix/local.mk b/nix/local.mk index be57894eaf..07a92f74ea 100644 --- a/nix/local.mk +++ b/nix/local.mk @@ -55,7 +55,6 @@ libutil_a_SOURCES = \ %D%/libutil/affinity.cc \ %D%/libutil/serialise.cc \ %D%/libutil/util.cc \ - %D%/libutil/xml-writer.cc \ %D%/libutil/hash.cc \ %D%/libutil/gcrypt-hash.cc @@ -63,7 +62,6 @@ libutil_headers = \ %D%/libutil/affinity.hh \ %D%/libutil/hash.hh \ %D%/libutil/serialise.hh \ - %D%/libutil/xml-writer.hh \ %D%/libutil/util.hh \ %D%/libutil/archive.hh \ %D%/libutil/types.hh \ From 0a40626fd21423715508ca0bff3772c46fb3dc55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 31 May 2016 15:08:42 +0200 Subject: [PATCH 177/277] offload: Use (guix build syscalls). This is a followup to 4e0ea3eb288c2143b44bf324c64047762c72d3b3. * guix/scripts/offload.scm: Use (guix build syscalls). --- guix/scripts/offload.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index d594be18e5..7db0c9d610 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +24,7 @@ #:use-module (guix serialization) #:use-module (guix nar) #:use-module (guix utils) + #:use-module ((guix build syscalls) #:select (fcntl-flock)) #:use-module ((guix build utils) #:select (which mkdir-p)) #:use-module (guix ui) #:use-module (srfi srfi-1) From 4078fa8f72fd109882f8b5e918cb6f7a9c1ed535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 31 May 2016 17:47:07 +0200 Subject: [PATCH 178/277] daemon: Fix typo. Fixes a regression/typo introduced in e08380fb6cefd3fd67c3c220a3ddaf385e6413cf. * nix/libstore/build.cc (DerivationGoal::startBuilder): Canonicalize "/tmp", not "/tmp/guix-build". --- nix/libstore/build.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index 2d3960bf89..ae78e65199 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -1718,7 +1718,7 @@ void DerivationGoal::startBuilder() /* In a sandbox, for determinism, always use the same temporary directory. */ - tmpDirInSandbox = useChroot ? canonPath("/tmp/guix-build-", true) + drvName + "-0" : tmpDir; + tmpDirInSandbox = useChroot ? canonPath("/tmp", true) + "/guix-build-" + drvName + "-0" : tmpDir; /* For convenience, set an environment pointing to the top build directory. */ From 151afd84dc9bf8f13de79a689f7f163fba7254ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 31 May 2016 17:58:46 +0200 Subject: [PATCH 179/277] daemon: Substitute queries return immediately when substitutes are disabled. Reported by Federico Beffa at . * nix/libstore/local-store.cc (LocalStore::querySubstitutablePaths) (LocalStore::querySubstitutablePathInfos): Return when 'settings.useSubstitutes' is false. * tests/store.scm ("references/substitutes missing reference info"): Make sure to return #f on failure. * tests/store.scm ("substitutable-path-info when substitutes are turned off"): ("substitutable-paths when substitutes are turned off"): New tests. --- nix/libstore/local-store.cc | 5 +++++ tests/store.scm | 29 ++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/nix/libstore/local-store.cc b/nix/libstore/local-store.cc index 1eed0ca77f..347e8a703f 100644 --- a/nix/libstore/local-store.cc +++ b/nix/libstore/local-store.cc @@ -1213,6 +1213,9 @@ template T LocalStore::getIntLineFromSubstituter(RunningSubstituter & r PathSet LocalStore::querySubstitutablePaths(const PathSet & paths) { PathSet res; + + if (!settings.useSubstitutes) return res; + foreach (Paths::iterator, i, settings.substituters) { if (res.size() == paths.size()) break; RunningSubstituter & run(runningSubstituters[*i]); @@ -1239,6 +1242,8 @@ PathSet LocalStore::querySubstitutablePaths(const PathSet & paths) void LocalStore::querySubstitutablePathInfos(const Path & substituter, PathSet & paths, SubstitutablePathInfos & infos) { + if (!settings.useSubstitutes) return; + RunningSubstituter & run(runningSubstituters[substituter]); startSubstituter(substituter, run); if (run.disabled) return; diff --git a/tests/store.scm b/tests/store.scm index 3c2c247561..38b8efce96 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -205,7 +205,8 @@ (%current-system)))) (d (derivation s "the-thing" b '("--help") #:inputs `((,b))))) - (references/substitutes s (list (derivation->output-path d) b)))))) + (references/substitutes s (list (derivation->output-path d) b)) + #f)))) (test-assert "references/substitutes with substitute info" (with-store s @@ -231,6 +232,32 @@ (,t1) ;refs of T2 ())))))) ;refs of T1 +(test-equal "substitutable-path-info when substitutes are turned off" + '() + (with-store s + (set-build-options s #:use-substitutes? #f) + (let* ((b (add-to-store s "bash" #t "sha256" + (search-bootstrap-binary "bash" + (%current-system)))) + (d (derivation s "the-thing" b '("--version") + #:inputs `((,b)))) + (o (derivation->output-path d))) + (with-derivation-narinfo d + (substitutable-path-info s (list o)))))) + +(test-equal "substitutable-paths when substitutes are turned off" + '() + (with-store s + (set-build-options s #:use-substitutes? #f) + (let* ((b (add-to-store s "bash" #t "sha256" + (search-bootstrap-binary "bash" + (%current-system)))) + (d (derivation s "the-thing" b '("--version") + #:inputs `((,b)))) + (o (derivation->output-path d))) + (with-derivation-narinfo d + (substitutable-paths s (list o)))))) + (test-assert "requisites" (let* ((t1 (add-text-to-store %store "random1" (random-text) '())) From 4d93a76138246ba1f9d6f81da4039e89e14570be Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 31 May 2016 13:23:17 -0400 Subject: [PATCH 180/277] gnu: graphicsmagick: Update to 1.3.24 [security update]. Fixes CVE-2016-{2317, 2318, 5118} and many other security issues described in 'NEWS.txt'. * gnu/packages/patches/graphicsmagick-CVE-2016-5118.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/imagemagick.scm (graphicsmagick): Update to 1.3.24. [source]: Remove patch. --- gnu/local.mk | 1 - gnu/packages/imagemagick.scm | 6 +++--- .../graphicsmagick-CVE-2016-5118.patch | 19 ------------------- 3 files changed, 3 insertions(+), 23 deletions(-) delete mode 100644 gnu/packages/patches/graphicsmagick-CVE-2016-5118.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6e2d765159..f669167091 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -524,7 +524,6 @@ dist_patch_DATA = \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \ - %D%/packages/patches/graphicsmagick-CVE-2016-5118.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/grub-CVE-2015-8370.patch \ %D%/packages/patches/grub-gets-undeclared.patch \ diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index f129b16289..dc03ea48a4 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2016 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -154,16 +155,15 @@ script.") (define-public graphicsmagick (package (name "graphicsmagick") - (version "1.3.23") + (version "1.3.24") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.graphicsmagick.org/pub/" "GraphicsMagick/" (version-major+minor version) "/GraphicsMagick-" version ".tar.xz")) - (patches (search-patches "graphicsmagick-CVE-2016-5118.patch")) (sha256 (base32 - "03g6l2h8cmf231y1vma0z7x85070jm1ysgs9ppqcd3jj56jka9gx")))) + "1q40w5hcl8rcpszm0r7rpr3a9lj390p39zfvavkvlgxyyk7bmgsj")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/patches/graphicsmagick-CVE-2016-5118.patch b/gnu/packages/patches/graphicsmagick-CVE-2016-5118.patch deleted file mode 100644 index ddd1ce93f4..0000000000 --- a/gnu/packages/patches/graphicsmagick-CVE-2016-5118.patch +++ /dev/null @@ -1,19 +0,0 @@ -Fix CVE-2016-5118 (popen() shell vulnerability via filename). - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5118 - -Upstream patch copied from the bug announcement: -http://seclists.org/oss-sec/2016/q2/432 -https://marc.info/?l=oss-security&m=146455222600609&w=2 - -diff -r 33200fc645f6 magick/blob.c ---- a/magick/blob.c Sat Nov 07 14:49:16 2015 -0600 -+++ b/magick/blob.c Sun May 29 14:12:57 2016 -0500 -@@ -68,6 +68,7 @@ - */ - #define DefaultBlobQuantum 65541 - -+#undef HAVE_POPEN - - /* - Enum declarations. From e88eb07110a9e6bf49bfe9020ad9a9a08c2dd61b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 31 May 2016 13:20:19 -0400 Subject: [PATCH 181/277] gnu: imagemagick: Fix CVE-2016-5118. * gnu/packages/patches/imagemagick-CVE-2016-5118.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/imagemagick.scm (imagemagick): Use it. --- gnu/local.mk | 1 + gnu/packages/imagemagick.scm | 1 + .../patches/imagemagick-CVE-2016-5118.patch | 29 +++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 gnu/packages/patches/imagemagick-CVE-2016-5118.patch diff --git a/gnu/local.mk b/gnu/local.mk index f669167091..21f9f81d10 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -552,6 +552,7 @@ dist_patch_DATA = \ %D%/packages/patches/icu4c-CVE-2015-4760.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ + %D%/packages/patches/imagemagick-CVE-2016-5118.patch \ %D%/packages/patches/inkscape-drop-wait-for-targets.patch \ %D%/packages/patches/irrlicht-mesa-10.patch \ %D%/packages/patches/jansson-CVE-2016-4425.patch \ diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index dc03ea48a4..1549497483 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -46,6 +46,7 @@ (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) + (patches (search-patches "imagemagick-CVE-2016-5118.patch")) (sha256 (base32 "0niwa7ci50865x1h6qffz1q6i2ph2l5ym7bhcg5kdnvi4f75p9ir")))) diff --git a/gnu/packages/patches/imagemagick-CVE-2016-5118.patch b/gnu/packages/patches/imagemagick-CVE-2016-5118.patch new file mode 100644 index 0000000000..0df4ce57ca --- /dev/null +++ b/gnu/packages/patches/imagemagick-CVE-2016-5118.patch @@ -0,0 +1,29 @@ +From c0c5c9fc7271fd141531b0bdb55b7f7ff5afc481 Mon Sep 17 00:00:00 2001 +From: Leo Famulari +Date: Tue, 31 May 2016 13:06:10 -0400 +Subject: [PATCH] Fix CVE-2016-5118. + +This is the temporary fix suggested by upstream: +https://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=29803#p134039 +--- + magick/magick-baseconfig.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/magick/magick-baseconfig.h b/magick/magick-baseconfig.h +index d320f2a..c9cce82 100644 +--- a/magick/magick-baseconfig.h ++++ b/magick/magick-baseconfig.h +@@ -519,7 +519,10 @@ + + /* Define to 1 if you have the `popen' function. */ + #ifndef MAGICKCORE_HAVE_POPEN ++/* Temporary mitigation for CVE-2016-5118 (popen() shell vulnerability via ++ * filename) + #define MAGICKCORE_HAVE_POPEN 1 ++*/ + #endif + + /* Define to 1 if you have the `posix_fadvise' function. */ +-- +2.8.3 + From 13384842f8ac7ba2b267ca7f8195e4744da245f5 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 31 May 2016 13:39:58 -0400 Subject: [PATCH 182/277] gnu: emacs-better-defaults: Specify source file name. * gnu/packages/emacs.scm (emacs-better-defaults)[source]: Specify a useful file name, as usual with tarballs from GitHub. --- gnu/packages/emacs.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index bfc4764541..8a6e8bb247 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1785,6 +1785,7 @@ work on lists, strings and vectors.") (method url-fetch) (uri (string-append "https://github.com/technomancy/better-defaults" "/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "08fg4zslzlxbvyil5g4gwvwd22fh4zsgqprs5wh9hv1rgc6757m2")))) From 57d83cd29bd4b590a9819a897af90c8cff58d09b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 18:53:07 +0300 Subject: [PATCH 183/277] gnu: obs: Update to 0.14.2. * gnu/packages/video.scm (obs): Update to 0.14.2. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index d9a324a374..eae7f64d85 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1352,7 +1352,7 @@ be used for realtime video capture via Linux-specific APIs.") (define-public obs (package (name "obs") - (version "0.14.1") + (version "0.14.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/jp9000/obs-studio" @@ -1360,7 +1360,7 @@ be used for realtime video capture via Linux-specific APIs.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1w07ign2swfigmsjd2jyaqqdnj2zpzs8hzsjzzk5l377jbx3ml5g")))) + "1cb8naa67kfnnngkzv1wpd4y241j29ggnk1w7jgnymp9j8dny1xl")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no tests (native-inputs From b93efac026844c88e947c73c02070231f079182c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 18:55:25 +0300 Subject: [PATCH 184/277] import github: Add to extension list. * guix/import/github.scm (find-extension): Add '.tgz' extension. --- guix/import/github.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/import/github.scm b/guix/import/github.scm index 29116d79f0..bbf916ceeb 100644 --- a/guix/import/github.scm +++ b/guix/import/github.scm @@ -44,7 +44,7 @@ failure." "Return the extension of the archive e.g. '.tar.gz' given a URL, or false if none is recognized" (find (lambda x (string-suffix? (first x) url)) - (list ".tar.gz" ".tar.bz2" ".tar.xz" ".zip" ".tar"))) + (list ".tar.gz" ".tar.bz2" ".tar.xz" ".zip" ".tar" ".tgz"))) (define (updated-github-url old-package new-version) ;; Return a url for the OLD-PACKAGE with NEW-VERSION. If no source url in From b52ae4de460ff5d995a6912d202bee642263102b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 19:17:52 +0300 Subject: [PATCH 185/277] gnu: munge: Update to 0.5.12. * gnu/packages/admin.scm (munge): Update to 0.5.12. --- gnu/packages/admin.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index d954035edb..45e973c2f0 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1505,20 +1505,20 @@ displays a table of current bandwidth usage by pairs of hosts.") (define-public munge (package (name "munge") - (version "0.5.11") + (version "0.5.12") (source (origin (method url-fetch) - (uri (string-append "https://github.com/dun/munge/archive/munge-" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append "https://github.com/dun/munge/releases/" + "download/munge-" version "/munge-" + version ".tar.xz")) (sha256 (base32 - "0njplyalwwqh7xr7xc7klc6x06mq0ak8w2pxh85w8n4hxkmqqnf5")))) + "1s0vlwgm3hcx75vcmjf2y3icy5nv8y07bx93w2cmm6a7x71y6wp9")))) (inputs `(("openssl" ,openssl) ("libgcrypt" ,libgcrypt))) (build-system gnu-build-system) - (home-page "http://dun.github.io/munge/") + (home-page "https://dun.github.io/munge/") (synopsis "Cluster computing authentication service") (description "Munge is an authentication service for creating and validating From 2b8ca5fcb4f9d1ee209988ecb1f482a12f1aa57d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 20:29:34 +0300 Subject: [PATCH 186/277] gnu: microscheme: Update to 0.9.3. * gnu/packages/avr.scm (microscheme): Update to 0.9.3. --- gnu/packages/avr.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index 7ce737f570..987347713c 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014, 2016 Manolis Fragkiskos Ragkousis ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2016 David Thompson +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -133,15 +134,15 @@ C++.") (define-public microscheme (package (name "microscheme") - (version "0.9.2") + (version "0.9.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/ryansuchocki/" - "microscheme/archive/v" version ".zip")) + "microscheme/archive/v" version ".tar.gz")) (sha256 (base32 - "0cmp1c6ilcib4w9ysqghav310g8jsq9gdfpfa9sd23wgl7mlncxf")) - (file-name (string-append name "-" version ".zip")))) + "1n404mh7z2icy3ga1mx249lk9x091k7idj6xpcf20hnmzabd0k0x")) + (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f ; fails to build otherwise From 805117827c52aa7f21f22deda95c8cff50be6b7d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 20:45:07 +0300 Subject: [PATCH 187/277] gnu: dosfstools: Update to 4.0. * gnu/packages/disk.scm (dosfstools): Update to 4.0. [arguments]: Re-enable the 'configure phase. --- gnu/packages/disk.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index c7aa0dc556..c60eacb15e 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -123,7 +123,7 @@ to recover data more efficiently by only reading the necessary blocks.") (define-public dosfstools (package (name "dosfstools") - (version "3.0.28") + (version "4.0") (source (origin (method url-fetch) @@ -132,14 +132,12 @@ to recover data more efficiently by only reading the necessary blocks.") name "-" version ".tar.xz")) (sha256 (base32 - "1qkya6lald91c8nsf29jwnk0k5v42wlj24gacfdp3wpc8hq935gf")))) + "1bvxbv1w6vhbx0nx7ygp700wq5k2hjv0hm7w0kz1x7amaf4p6dwh")))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "PREFIX=" %output) "CC=gcc") - #:tests? #f ;no tests - #:phases (modify-phases %standard-phases - (delete 'configure)))) + #:tests? #f)) ;no tests (home-page "https://github.com/dosfstools/dosfstools") (synopsis "Utilities for making and checking MS-DOS FAT filesystems") (description From b1b84979258473803ec701b017bcac40316f480a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 21:58:54 +0300 Subject: [PATCH 188/277] gnu: librecad: Update to 2.0.11. * gnu/packages/engineering.scm (librecad): Update to 2.0.11. --- gnu/packages/engineering.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 46737157f3..02b1c4e9eb 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -58,7 +58,7 @@ (define-public librecad (package (name "librecad") - (version "2.0.9") + (version "2.0.11") (source (origin (method url-fetch) (uri (string-append @@ -67,7 +67,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0xyn4ps9ia94h0vg53rsww8xfd1bgp4200phl8ihyhv7w5v4d8d0")))) + "0jda23qspziph6fwgq1q3nmnllbgn9kwfpjylv1f0wa7c5l85gh5")))) (build-system gnu-build-system) (arguments '(#:phases From 0985f5269c0b06f5a836b5406e35cc60fb038512 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 21:59:30 +0300 Subject: [PATCH 189/277] gnu: emms: Update to 4.1. * gnu/packages/emacs.scm (emms): Update to 4.1. --- gnu/packages/emacs.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 8a6e8bb247..1b0fecbeaf 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2016 Chris Marusich ;;; Copyright © 2015, 2016 Christopher Allan Webber ;;; Copyright © 2016 humanitiesNerd +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -825,14 +826,14 @@ provides an optional IDE-like error list.") (define-public emms (package (name "emms") - (version "4.0") + (version "4.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz")) (sha256 (base32 - "1q0n3iwva8bvai2rl9sm49sdjmk0wi7vajz4knz01l7g67nrp87l")) + "0ay6631p3dr6xnhkm7skwn0gp317r1mxbip28m126w4zqf05cbh3")) (modules '((guix build utils))) (snippet '(substitute* "Makefile" From 2fe176be0fc612370a22105a736fc7f70b7da7cf Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 22:05:26 +0300 Subject: [PATCH 190/277] gnu: emms: Use 'modify-phases'. * gnu/packages/emacs.scm (emms)[arguments]: Use 'modify-phases'. --- gnu/packages/emacs.scm | 119 ++++++++++++++++++++--------------------- 1 file changed, 58 insertions(+), 61 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 1b0fecbeaf..16ef72ee55 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -859,69 +859,66 @@ provides an optional IDE-like error list.") #:imported-modules (,@%gnu-build-system-modules (guix build emacs-utils)) - #:phases (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (vorbis (assoc-ref inputs "vorbis-tools")) - (alsa (assoc-ref inputs "alsa-utils")) - (mpg321 (assoc-ref inputs "mpg321")) - (mp3info (assoc-ref inputs "mp3info"))) - ;; Specify the installation directory. - (substitute* "Makefile" - (("PREFIX=.*$") - (string-append "PREFIX := " out "\n"))) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (vorbis (assoc-ref inputs "vorbis-tools")) + (alsa (assoc-ref inputs "alsa-utils")) + (mpg321 (assoc-ref inputs "mpg321")) + (mp3info (assoc-ref inputs "mp3info"))) + ;; Specify the installation directory. + (substitute* "Makefile" + (("PREFIX=.*$") + (string-append "PREFIX := " out "\n"))) - (setenv "SHELL" (which "sh")) - (setenv "CC" "gcc") + (setenv "SHELL" (which "sh")) + (setenv "CC" "gcc") - ;; Specify the absolute file names of the various - ;; programs so that everything works out-of-the-box. - (with-directory-excursion "lisp" - (emacs-substitute-variables - "emms-player-mpg321-remote.el" - ("emms-player-mpg321-remote-command" - (string-append mpg321 "/bin/mpg321"))) - (substitute* "emms-player-simple.el" - (("\"ogg123\"") - (string-append "\"" vorbis "/bin/ogg123\""))) - (emacs-substitute-variables "emms-info-ogginfo.el" - ("emms-info-ogginfo-program-name" - (string-append vorbis "/bin/ogginfo"))) - (emacs-substitute-variables "emms-info-libtag.el" - ("emms-info-libtag-program-name" - (string-append out "/bin/emms-print-metadata"))) - (emacs-substitute-variables "emms-info-mp3info.el" - ("emms-info-mp3info-program-name" - (string-append mp3info "/bin/mp3info"))) - (substitute* "emms-volume-amixer.el" - (("\"amixer\"") - (string-append "\"" alsa "/bin/amixer\""))) - (substitute* "emms-tag-editor.el" - (("\"mp3info\"") - (string-append "\"" mp3info "/bin/mp3info\"")))))) - (alist-cons-before - 'install 'pre-install - (lambda* (#:key outputs #:allow-other-keys) - ;; The 'install' rule expects the target directory to - ;; exist. - (let* ((out (assoc-ref outputs "out")) - (man1 (string-append out "/share/man/man1"))) - (mkdir-p man1) - #t)) - (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (target (string-append - out "/bin/emms-print-metadata"))) - (symlink "emms-auto.el" - (string-append out "/share/emacs/site-lisp/" - "emms-autoloads.el")) - (mkdir-p (dirname target)) - (copy-file "src/emms-print-metadata" target) - (chmod target #o555))) - %standard-phases))) + ;; Specify the absolute file names of the various + ;; programs so that everything works out-of-the-box. + (with-directory-excursion "lisp" + (emacs-substitute-variables + "emms-player-mpg321-remote.el" + ("emms-player-mpg321-remote-command" + (string-append mpg321 "/bin/mpg321"))) + (substitute* "emms-player-simple.el" + (("\"ogg123\"") + (string-append "\"" vorbis "/bin/ogg123\""))) + (emacs-substitute-variables "emms-info-ogginfo.el" + ("emms-info-ogginfo-program-name" + (string-append vorbis "/bin/ogginfo"))) + (emacs-substitute-variables "emms-info-libtag.el" + ("emms-info-libtag-program-name" + (string-append out "/bin/emms-print-metadata"))) + (emacs-substitute-variables "emms-info-mp3info.el" + ("emms-info-mp3info-program-name" + (string-append mp3info "/bin/mp3info"))) + (substitute* "emms-volume-amixer.el" + (("\"amixer\"") + (string-append "\"" alsa "/bin/amixer\""))) + (substitute* "emms-tag-editor.el" + (("\"mp3info\"") + (string-append "\"" mp3info "/bin/mp3info\""))))))) + (add-before 'install 'pre-install + (lambda* (#:key outputs #:allow-other-keys) + ;; The 'install' rule expects the target directory to exist. + (let* ((out (assoc-ref outputs "out")) + (man1 (string-append out "/share/man/man1"))) + (mkdir-p man1) + #t))) + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (target (string-append + out "/bin/emms-print-metadata"))) + (symlink "emms-auto.el" + (string-append out "/share/emacs/site-lisp/" + "emms-autoloads.el")) + (mkdir-p (dirname target)) + (copy-file "src/emms-print-metadata" target) + (chmod target #o555))))) #:tests? #f)) (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils) ("texinfo" ,texinfo))) From c5d15d41b730a30c8580611c7aa94c5ce56141a1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 22:09:43 +0300 Subject: [PATCH 191/277] gnu: scrot: Fix typo in source uri. * gnu/packages/xdisorg.scm (scrot)[source]: Fix typo in uri. This is a follow-up to 9da459f350709af0cd92c3eb7ddd459eda5959dd. --- gnu/packages/xdisorg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 64a95d6e54..7aaf7f2c9f 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -387,7 +387,7 @@ move windows, switch between desktops, etc.).") version ".tar.gz") (string-append "https://fossies.org/linux/privat/old/scrot-" - version "tar.gz"))) + version ".tar.gz"))) (sha256 (base32 "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1")))) From d5047266a952b705c22ad68249e8515d3160e122 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 22:11:35 +0300 Subject: [PATCH 192/277] gnu: scrot: Use 'modify-phases'. * gnu/packages/xdisorg.scm (scrot)[arguments]: Use 'modify-phases'. --- gnu/packages/xdisorg.scm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 7aaf7f2c9f..6059da935f 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -399,16 +399,16 @@ move windows, switch between desktops, etc.).") (list (string-append "--mandir=" (assoc-ref %outputs "out") "/share/man")) - #:phases (alist-replace - 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (string-append out "/share/doc/scrot"))) - (mkdir-p doc) - (zero? - (system* "make" "install" - (string-append "docsdir=" doc))))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/scrot"))) + (mkdir-p doc) + (zero? + (system* "make" "install" + (string-append "docsdir=" doc))))))))) (inputs `(("libx11" ,libx11) ("giblib" ,giblib))) From e85ff3e2fdb8979e4482e99c218a8d6d76504e5f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 22:20:57 +0300 Subject: [PATCH 193/277] gnu: autogen: Update to 5.18.10. * gnu/packages/autogen.scm (autogen): Update to 5.18.10. --- gnu/packages/autogen.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/autogen.scm b/gnu/packages/autogen.scm index 238c66fe33..704a5d1342 100644 --- a/gnu/packages/autogen.scm +++ b/gnu/packages/autogen.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013,2014 Eric Bavier -;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2013, 2014 Eric Bavier +;;; Copyright © 2015, 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,7 +31,7 @@ (define-public autogen (package (name "autogen") - (version "5.18.7") + (version "5.18.10") (source (origin (method url-fetch) @@ -39,7 +39,7 @@ "/autogen-" version ".tar.xz")) (sha256 (base32 - "01d4m8ckww12sy50vgyxlnz83z9dxqpyqp153cscncc9w6jq19d7")))) + "0j61mf3qab5ya7w5xsp7xalrby00cv92g462bxffl104ql18w92f")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) ;for doc generator mdoc ("pkg-config" ,pkg-config))) From 99e4aa54a6cba0136335b3b525966ac2793cbb8a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 22:24:59 +0300 Subject: [PATCH 194/277] gnu: autogen: Use 'modify-phases'. * gnu/packages/autogen.scm (autogen)[arguments]: Use 'modify-phases'. --- gnu/packages/autogen.scm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gnu/packages/autogen.scm b/gnu/packages/autogen.scm index 704a5d1342..2b90623e5d 100644 --- a/gnu/packages/autogen.scm +++ b/gnu/packages/autogen.scm @@ -46,16 +46,16 @@ (inputs `(("which" ,which) ("guile" ,guile-2.0))) (arguments - '(#:phases (alist-cons-before - 'patch-source-shebangs 'patch-test-scripts - (lambda _ - (let ((sh (which "sh"))) - (substitute* - (append (find-files "agen5/test" "\\.test$") - (find-files "autoopts/test" "\\.(test|in)$")) - (("/bin/sh") sh) - (("/usr/bin/tr") "tr")))) - %standard-phases))) + '(#:phases + (modify-phases %standard-phases + (add-before 'patch-source-shebangs 'patch-test-scripts + (lambda _ + (let ((sh (which "sh"))) + (substitute* + (append (find-files "agen5/test" "\\.test$") + (find-files "autoopts/test" "\\.(test|in)$")) + (("/bin/sh") sh) + (("/usr/bin/tr") "tr")))))))) (home-page "http://www.gnu.org/software/autogen/") (synopsis "Automated program generator") (description From c095330a8ce25a7bcd7cbf020af5ed8402b19764 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 31 May 2016 22:50:41 +0300 Subject: [PATCH 195/277] gnu: nginx: Update to 1.10.1 [Fixes CVE-2016-4450]. * gnu/packages/web.scm (nginx): Update to 1.10.1. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index f1e03da3ca..43fb5a083f 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -111,14 +111,14 @@ and its related documentation.") (define-public nginx (package (name "nginx") - (version "1.10.0") + (version "1.10.1") (source (origin (method url-fetch) (uri (string-append "http://nginx.org/download/nginx-" version ".tar.gz")) (sha256 (base32 - "0kdyqa5xaxvhz6y75ixs05mzygk3kszzdq5h0gnlrg35vp1lgmlf")))) + "00d8hxj8453c7989qd7z4f1mjp0k3ib8k29i1qyf11b4ar35ilqz")))) (build-system gnu-build-system) (inputs `(("pcre" ,pcre) ("openssl" ,openssl) From 6ba8ca17fb43a1f70e4ca6a7797ef8e63d1a21e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20=C4=8Cech?= Date: Mon, 30 May 2016 21:16:38 +0200 Subject: [PATCH 196/277] gnu: Add py3status. * gnu/packages/python.scm (python-py3status): New variable. --- gnu/packages/python.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index dc54bff4b5..701ee45e17 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8788,3 +8788,24 @@ the renaming, moving and extracting of attributes, functions, modules, fields and parameters in Python 2 source code. These refactorings can also be applied to occurences in strings and comments.") (license gpl2))) + +(define-public python-py3status + (package + (name "python-py3status") + (version "2.9") + (source + (origin + (method url-fetch) + (uri (pypi-uri "py3status" version)) + (sha256 + (base32 + "09y7h8rjay5kzwk5akq7f5f9wqnvjkxhivck04hdc8ny1nw3vqzp")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/ultrabug/py3status") + (synopsis "Extensible i3status wrapper written in Python") + (description "py3status is an i3status wrapper which extends i3status +functionality in a modular way, allowing you to extend your panel with your +own code, responding to click events and updating clock every second.") + (license bsd-3))) From 7a0094a5f29cd6f49213c020ac55cb2f17f5d8cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20=C4=8Cech?= Date: Tue, 31 May 2016 22:14:52 +0200 Subject: [PATCH 197/277] gnu: taskwarrior: Update to 2.5.1 * gnu/packages/task-management.scm (taskwarrior): Update to 2.5.1. --- gnu/packages/task-management.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm index 340475c666..701e14a5e2 100644 --- a/gnu/packages/task-management.scm +++ b/gnu/packages/task-management.scm @@ -28,14 +28,14 @@ (define-public taskwarrior (package (name "taskwarrior") - (version "2.4.3") + (version "2.5.1") (source (origin (method url-fetch) (uri (string-append "http://taskwarrior.org/download/task-" version ".tar.gz")) (sha256 (base32 - "1lkbw2fhshynbl7hppar1viapyrs712s14xhd8p3l8gyhvxbh0mv")))) + "059a9yc58wcicc6xxsjh1ph7k2yrag0spsahp1wqmsq6h7jwwyyq")))) (build-system cmake-build-system) (inputs `(("gnutls" ,gnutls) From d01ebd05d11775dea7c8d0a084c3ab02b958e18b Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sun, 8 May 2016 23:27:42 +0300 Subject: [PATCH 198/277] emacs: Show built output directories in Package Info. * emacs/guix-main.scm (package-store-path): New procedure. * emacs/guix-base.el (guix-package-store-path): New procedure. * emacs/guix-ui-package.el (guix-package-info-auto-find-package): New variable. (guix-package-info-show-store-path, guix-package-info-insert-misc): New procedures. (guix-package-info-format, guix-output-info-format): Add 'guix-package-info-insert-misc'. --- emacs/guix-base.el | 7 +++++ emacs/guix-main.scm | 11 ++++++++ emacs/guix-ui-package.el | 56 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 72 insertions(+), 2 deletions(-) diff --git a/emacs/guix-base.el b/emacs/guix-base.el index 888836428f..962010050b 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -207,6 +207,13 @@ Ask a user with PROMPT for continuing an operation." (guix-make-guile-expression 'package-source-path package-id))) +(defun guix-package-store-path (package-id) + "Return a list of store directories of outputs of package PACKAGE-ID." + (message "Calculating the package derivation ...") + (guix-eval-read + (guix-make-guile-expression + 'package-store-path package-id))) + (defvar guix-after-source-download-hook nil "Hook run after successful performing a 'source-download' operation.") diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index e645a85e7d..c4f1b4ada0 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -953,6 +953,17 @@ GENERATIONS is a list of generation numbers." ((package _ ...) package))) (compose location->string package-location))) +(define (package-store-path package-id) + "Return a list of store directories of outputs of package PACKAGE-ID." + (match (package-by-id package-id) + (#f '()) + (package + (with-store store + (map (match-lambda + ((_ . drv) + (derivation-output-path drv))) + (derivation-outputs (package-derivation store package))))))) + (define (package-source-derivation->store-path derivation) "Return a store path of the package source DERIVATION." (match (derivation-outputs derivation) diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index edc36486fc..eebecc7077 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -222,6 +222,7 @@ ENTRIES is a list of package entries to get info about packages." (description ignore (simple guix-package-info-description)) ignore (outputs simple guix-package-info-insert-outputs) + guix-package-info-insert-misc (source simple guix-package-info-insert-source) (location simple guix-package-info-insert-location) (home-url format (format guix-url)) @@ -309,9 +310,15 @@ ENTRIES is a list of package entries to get info about packages." "Face used if a package is obsolete." :group 'guix-package-info-faces) +(defcustom guix-package-info-auto-find-package t + "If non-nil, open store directory after pressing \"Show\" package button. +If nil, just display the store directory (or directories) without finding." + :type 'boolean + :group 'guix-package-info) + (defcustom guix-package-info-auto-find-source nil - "If non-nil, find a source file after pressing a \"Show\" button. -If nil, just display the source file path without finding." + "If non-nil, open source file after pressing \"Show\" source button. +If nil, just display the source file name without finding." :type 'boolean :group 'guix-package-info) @@ -521,6 +528,50 @@ ENTRY is an alist with package info." (guix-entry-id entry)) 'output output))) +(defun guix-package-info-show-store-path (entry-id package-id) + "Show store directories of the package outputs in the current buffer. +ENTRY-ID is an ID of the current entry (package or output). +PACKAGE-ID is an ID of the package which store path to show." + (let* ((entries (guix-buffer-current-entries)) + (entry (guix-entry-by-id entry-id entries)) + (dirs (guix-package-store-path package-id))) + (or dirs + (error "Couldn't define store directory of the package")) + (let* ((new-entry (cons (cons 'store-path dirs) + entry)) + (new-entries (guix-replace-entry entry-id new-entry entries))) + (setf (guix-buffer-item-entries guix-buffer-item) + new-entries) + (guix-buffer-redisplay-goto-button) + (let ((dir (car dirs))) + (if (file-exists-p dir) + (if guix-package-info-auto-find-package + (find-file dir) + (message nil)) + (message "'%s' does not exist.\nTry to build this package." + dir)))))) + +(defun guix-package-info-insert-misc (entry) + "Insert various buttons and other info for package ENTRY at point." + (if (guix-entry-value entry 'obsolete) + (guix-format-insert nil) + (let* ((entry-id (guix-entry-id entry)) + (package-id (or (guix-entry-value entry 'package-id) + entry-id)) + (store-path (guix-entry-value entry 'store-path))) + (guix-info-insert-title-simple "Package") + (if store-path + (guix-info-insert-value-indent store-path 'guix-file) + (guix-info-insert-action-button + "Show" + (lambda (btn) + (guix-package-info-show-store-path + (button-get btn 'entry-id) + (button-get btn 'package-id))) + "Show the store directory of the current package" + 'entry-id entry-id + 'package-id package-id))))) + (defun guix-package-info-show-source (entry-id package-id) "Show file name of a package source in the current info buffer. Find the file if needed (see `guix-package-info-auto-find-source'). @@ -817,6 +868,7 @@ for all ARGS." (version format guix-output-info-insert-version) (output format guix-output-info-insert-output) (synopsis simple (indent guix-package-info-synopsis)) + guix-package-info-insert-misc (source simple guix-package-info-insert-source) (path simple (indent guix-file)) (dependencies simple (indent guix-file)) From 65e5fe54bae67fbd6de225fd8cc909401045a099 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sun, 15 May 2016 10:34:47 +0300 Subject: [PATCH 199/277] emacs: Extend 'guix-mapinsert'. * emacs/guix-utils.el (guix-mapinsert): Add 'indent' and 'column' keyword arguments. --- emacs/guix-utils.el | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/emacs/guix-utils.el b/emacs/guix-utils.el index ea9933f5c3..3e4ecc36ab 100644 --- a/emacs/guix-utils.el +++ b/emacs/guix-utils.el @@ -84,16 +84,33 @@ If FORMAT is non-nil, format VAL with FORMAT." (format format str) str)))) -(defun guix-mapinsert (function sequence separator) +(cl-defun guix-mapinsert (function sequence separator &key indent column) "Like `mapconcat' but for inserting text. Apply FUNCTION to each element of SEQUENCE, and insert SEPARATOR -at point between each FUNCTION call." - (when sequence - (funcall function (car sequence)) - (mapc (lambda (obj) - (insert separator) - (funcall function obj)) - (cdr sequence)))) +at point between each FUNCTION call. + +If INDENT is non-nil, it should be a number of spaces used to +indent each line of the inserted text. + +If COLUMN is non-nil, it should be a column number which +shouldn't be exceeded by the inserted text." + (pcase sequence + (`(,first . ,rest) + (let* ((indent (or indent 0)) + (max-column (and column (- column indent)))) + (guix-with-indent indent + (funcall function first) + (dolist (element rest) + (let ((before-sep-pos (and column (point)))) + (insert separator) + (let ((after-sep-pos (and column (point)))) + (funcall function element) + (when (and column + (> (current-column) max-column)) + (save-excursion + (delete-region before-sep-pos after-sep-pos) + (goto-char before-sep-pos) + (insert "\n"))))))))))) (defun guix-insert-button (label &optional type &rest properties) "Make button of TYPE with LABEL and insert it at point. From e98316e69f2480bde709d92ec00db66fd8e66aea Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sun, 15 May 2016 11:10:04 +0300 Subject: [PATCH 200/277] emacs: Add "Build" button to Package Info. * emacs/guix-main.scm: Use (guix scripts) module for 'build-package' procedure. * emacs/guix-base.el (guix-build-package): New procedure. * emacs/guix-ui-package.el (guix-package-info-insert-build-button): New procedure. (guix-package-info-button-functions): New variable. (guix-package-info-insert-misc): Insert buttons using it. --- emacs/guix-base.el | 14 ++++++++++++++ emacs/guix-main.scm | 1 + emacs/guix-ui-package.el | 28 +++++++++++++++++++++++++++- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/emacs/guix-base.el b/emacs/guix-base.el index 962010050b..658cfdb5fa 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -231,6 +231,20 @@ Ask a user with PROMPT for continuing an operation." :dry-run? (or guix-dry-run 'f)) nil 'source-download))) +(defun guix-build-package (package-id &optional prompt) + "Build package with PACKAGE-ID. +Ask a user with PROMPT for continuing the build operation." + (when (or (not guix-operation-confirm) + (guix-operation-prompt (or prompt "Build package?"))) + (guix-eval-in-repl + (format (concat ",run-in-store " + "(build-package (package-by-id %d)" + " #:use-substitutes? %s" + " #:dry-run? %s)") + package-id + (guix-guile-boolean guix-use-substitutes) + (guix-guile-boolean guix-dry-run))))) + ;;;###autoload (defun guix-apply-manifest (profile file &optional operation-buffer) "Apply manifest from FILE to PROFILE. diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index c4f1b4ada0..8914933b4b 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -51,6 +51,7 @@ (guix licenses) (guix utils) (guix ui) + (guix scripts) (guix scripts package) (gnu packages) (gnu system)) diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index eebecc7077..4eb70831dd 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -332,6 +332,13 @@ prompt depending on `guix-operation-confirm' variable)." :type 'boolean :group 'guix-package-info) +(defcustom guix-package-info-button-functions + '(guix-package-info-insert-build-button) + "List of functions used to insert package buttons in Info buffer. +Each function is called with 2 arguments: package ID and full name." + :type '(repeat function) + :group 'guix-package-info) + (defvar guix-package-info-download-buffer nil "Buffer from which a current download operation was performed.") @@ -558,6 +565,7 @@ PACKAGE-ID is an ID of the package which store path to show." (let* ((entry-id (guix-entry-id entry)) (package-id (or (guix-entry-value entry 'package-id) entry-id)) + (full-name (guix-package-entry->name-specification entry)) (store-path (guix-entry-value entry 'store-path))) (guix-info-insert-title-simple "Package") (if store-path @@ -570,7 +578,25 @@ PACKAGE-ID is an ID of the package which store path to show." (button-get btn 'package-id))) "Show the store directory of the current package" 'entry-id entry-id - 'package-id package-id))))) + 'package-id package-id)) + (when guix-package-info-button-functions + (insert "\n") + (guix-mapinsert (lambda (fun) + (funcall fun package-id full-name)) + guix-package-info-button-functions + (guix-info-get-indent) + :indent guix-info-indent + :column (guix-info-fill-column)))))) + +(defun guix-package-info-insert-build-button (id full-name) + "Insert button to build a package defined by ID." + (guix-info-insert-action-button + "Build" + (lambda (btn) + (guix-build-package (button-get btn 'id) + (format "Build '%s' package?" full-name))) + (format "Build the current package") + 'id id)) (defun guix-package-info-show-source (entry-id package-id) "Show file name of a package source in the current info buffer. From b097dd72c4ffab9622300db9950c5a0b1b1579f7 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 27 May 2016 10:43:25 +0300 Subject: [PATCH 201/277] emacs: Add "Build Log" button to Package Info. * emacs/guix-main.scm (package-build-log-file): New procedure. * emacs/guix-ui-package.el (guix-package-build-log-file) (guix-package-find-build-log) (guix-package-info-insert-build-log-button): New procedures. (guix-package-info-button-functions): Add 'guix-package-info-insert-build-log-button'. --- emacs/guix-main.scm | 10 ++++++++++ emacs/guix-ui-package.el | 25 ++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index 8914933b4b..cbf7cdc474 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -1000,6 +1000,16 @@ GENERATIONS is a list of generation numbers." (format #t "The source store path: ~a~%" (package-source-derivation->store-path derivation)))))) +(define (package-build-log-file package-id) + "Return the build log file of a package PACKAGE-ID. +Return #f if the build log is not found." + (and-let* ((package (package-by-id package-id))) + (with-store store + (let* ((derivation (package-derivation store package)) + (file (derivation-file-name derivation))) + (or (log-file store file) + ((@@ (guix scripts build) log-url) store file)))))) + ;;; Executing guix commands diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index 4eb70831dd..4280246bb8 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -111,6 +111,19 @@ is found and `guix-package-list-single' is nil." (list (if (= 0 package-id) package-id-str package-id) output)))) +(defun guix-package-build-log-file (id) + "Return build log file name of a package defined by ID." + (guix-eval-read + (guix-make-guile-expression 'package-build-log-file id))) + +(defun guix-package-find-build-log (id) + "Show build log of a package defined by ID." + (require 'guix-build-log) + (let ((file (guix-package-build-log-file id))) + (if file + (guix-build-log-find-file file) + (message "Couldn't find the package build log.")))) + ;;; Processing package actions @@ -333,7 +346,8 @@ prompt depending on `guix-operation-confirm' variable)." :group 'guix-package-info) (defcustom guix-package-info-button-functions - '(guix-package-info-insert-build-button) + '(guix-package-info-insert-build-button + guix-package-info-insert-build-log-button) "List of functions used to insert package buttons in Info buffer. Each function is called with 2 arguments: package ID and full name." :type '(repeat function) @@ -598,6 +612,15 @@ PACKAGE-ID is an ID of the package which store path to show." (format "Build the current package") 'id id)) +(defun guix-package-info-insert-build-log-button (id _name) + "Insert button to show build log of a package defined by ID." + (guix-info-insert-action-button + "Build Log" + (lambda (btn) + (guix-package-find-build-log (button-get btn 'id))) + "View build log of the current package" + 'id id)) + (defun guix-package-info-show-source (entry-id package-id) "Show file name of a package source in the current info buffer. Find the file if needed (see `guix-package-info-auto-find-source'). From 37dbfc50841a8e91f9fb0dc80ff9b5f23de38689 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 31 May 2016 23:41:30 +0300 Subject: [PATCH 202/277] gnu: emacs-constants: Fix source file-name. Fixes a regression introduced in f99f3f24ef604f44023379da4b375c80e6844be1. * gnu/packages/emacs.scm (emacs-constants)[source]: Fix file-name. --- gnu/packages/emacs.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 16ef72ee55..b7c0a1f5fd 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1428,7 +1428,7 @@ identifiers in the MIT-Scheme documentation.") (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants") (source (origin - (file-name (string-append name "-" version ".el")) + (file-name (string-append name "-" version ".tar.gz")) (method url-fetch) (uri (string-append "https://github.com/fedeinthemix/emacs-constants" "/archive/v" version ".tar.gz")) From f40dfcd055213c14c51c8117ce03d63f4820c4b5 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 May 2016 02:56:19 +0200 Subject: [PATCH 203/277] gnu: rofi: New variable. * gnu/packages/xdisorg.scm (rofi): New variable. Signed-off-by: Leo Famulari --- gnu/packages/xdisorg.scm | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 6059da935f..1ece2e164b 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -910,3 +910,44 @@ demos. It also acts as a nice screen locker.") (string-append "http://metadata.ftp-master.debian.org/changelogs/" "/main/x/xscreensaver/xscreensaver_5.34-2_copyright"))))) + +(define-public rofi + (package + (name "rofi") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/DaveDavenport/rofi/" + "releases/download/" + version "/rofi-" version ".tar.xz")) + (sha256 + (base32 + "01jxml9vk4cw7pngpan7dipmb98s6ibh6f0023lw3hbgxy650637")))) + (build-system gnu-build-system) + (inputs + `(("libx11" ,libx11) + ("pango" ,pango) + ("cairo" ,cairo) + ("glib" ,glib) + ("startup-notification" ,startup-notification) + ("libxkbcommon" ,libxkbcommon) + ("libxcb" ,libxcb) + ("xcb-util" ,xcb-util) + ("xcb-util-wm" ,xcb-util-wm))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'adjust-tests + (lambda _ + (substitute* '("test/helper-expand.c") + (("~root") "/root") + (("~") "") + (("g_get_home_dir \\(\\)") "\"/\""))))))) + (home-page "https://davedavenport.github.io/rofi/") + (synopsis "Application Launcher") + (description "Rofi is a minimalist Application Launcher. It memorizes which +applications you regularily use and also allows you to search for an application +by name.") + (license license:expat))) From 405d043ddd46a2ae5dbd68f2487529e805e8fc1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 31 May 2016 22:11:51 +0200 Subject: [PATCH 204/277] import: github: Tiny cosmetic change. * guix/import/github.scm (find-extension): Use a one-argument lambda. --- guix/import/github.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/import/github.scm b/guix/import/github.scm index bbf916ceeb..9ba9a10ba0 100644 --- a/guix/import/github.scm +++ b/guix/import/github.scm @@ -43,7 +43,7 @@ failure." (define (find-extension url) "Return the extension of the archive e.g. '.tar.gz' given a URL, or false if none is recognized" - (find (lambda x (string-suffix? (first x) url)) + (find (lambda (x) (string-suffix? x url)) (list ".tar.gz" ".tar.bz2" ".tar.xz" ".zip" ".tar" ".tgz"))) (define (updated-github-url old-package new-version) From 0adabad72d58492f08975af0b6b837ebde32a51b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 31 May 2016 22:51:07 +0200 Subject: [PATCH 205/277] install: 'cow-store' now bind-mounts the target's /tmp. Reported by Matthew Jordan at . * gnu/system/install.scm (make-cow-store): Bind-mount TARGET's /tmp on /tmp. --- gnu/system/install.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 07ad3cbcb2..a72613e9c5 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -145,6 +145,11 @@ current store is on a RAM disk." (chmod #$directory #o1775))) #~(begin + ;; Bind-mount TARGET's /tmp in case we need space to build things. + (let ((tmpdir (string-append #$target "/tmp"))) + (mkdir-p tmpdir) + (mount tmpdir "/tmp" "none" MS_BIND)) + (unless (file-exists? "/.ro-store") (mkdir "/.ro-store") (mount #$(%store-prefix) "/.ro-store" "none" From f0e60e89cb0fdbc9a1eee02123ff03f51c43c7d9 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 31 May 2016 23:59:56 -0400 Subject: [PATCH 206/277] gnu: autogen: Fix source URL. * gnu/packages/autogen.scm (autogen)[source]: Fix source URL. --- gnu/packages/autogen.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/autogen.scm b/gnu/packages/autogen.scm index 2b90623e5d..4cbc215070 100644 --- a/gnu/packages/autogen.scm +++ b/gnu/packages/autogen.scm @@ -35,7 +35,7 @@ (source (origin (method url-fetch) - (uri (string-append "mirror://gnu/autogen" + (uri (string-append "mirror://gnu/autogen/rel" version "/autogen-" version ".tar.xz")) (sha256 (base32 From 1c6303fae05815d3127a6bc480b1a794ad5dc49f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 27 May 2016 23:50:51 -0400 Subject: [PATCH 207/277] gnu: icedtea: Update to 1.13.11. Fixes CVE-2016-{0686, 0687, 0695, 3425, 3427}. * gnu/packages/patches/icedtea-remove-overrides.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/java.scm (icedtea): Update to 1.13.11. [source]: Use the patch. [inputs]: Add libxcomposite. --- gnu/local.mk | 1 + gnu/packages/java.scm | 10 +- .../patches/icedtea-remove-overrides.patch | 291 ++++++++++++++++++ 3 files changed, 298 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/icedtea-remove-overrides.patch diff --git a/gnu/local.mk b/gnu/local.mk index 21f9f81d10..59aaccc9b5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -547,6 +547,7 @@ dist_patch_DATA = \ %D%/packages/patches/hypre-doc-tables.patch \ %D%/packages/patches/hypre-ldflags.patch \ %D%/packages/patches/icecat-avoid-bundled-includes.patch \ + %D%/packages/patches/icedtea-remove-overrides.patch \ %D%/packages/patches/icu4c-CVE-2014-6585.patch \ %D%/packages/patches/icu4c-CVE-2015-1270.patch \ %D%/packages/patches/icu4c-CVE-2015-4760.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index ff785efad6..fa6109a07d 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -181,15 +181,16 @@ build process and its dependencies, whereas Make uses Makefile format.") (define-public icedtea-6 (package (name "icedtea") - (version "1.13.10") + (version "1.13.11") (source (origin (method url-fetch) (uri (string-append "http://icedtea.wildebeest.org/download/source/icedtea6-" version ".tar.xz")) + (patches (search-patches "icedtea-remove-overrides.patch")) (sha256 (base32 - "1mq08sfyfjlfw0c1czjs47303zv4h91s1jc0nhdlra4rbbx0g2d0")) + "1grki39a4rf8n74zc0iglcggxxbpniyfh1gk1lb10p63zvvcsvjj")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" @@ -539,6 +540,7 @@ build process and its dependencies, whereas Make uses Makefile format.") ("mit-krb5" ,mit-krb5) ("nss" ,nss) ("libx11" ,libx11) + ("libxcomposite" ,libxcomposite) ("libxt" ,libxt) ("libxtst" ,libxtst) ("libxi" ,libxi) @@ -552,10 +554,10 @@ build process and its dependencies, whereas Make uses Makefile format.") ("openjdk6-src" ,(origin (method url-fetch) - (uri "https://java.net/downloads/openjdk6/openjdk-6-src-b38-20_jan_2016.tar.gz") + (uri "https://java.net/downloads/openjdk6/openjdk-6-src-b39-03_may_2016.tar.gz") (sha256 (base32 - "1fapj9w4ahzf5nwvdgi1dsxjyh9dqbcvf9638r60h1by13wjqk5p")))) + "1brxbsgwcj4js26y5lk6capc3pvghgjidvv9cavw6z8n7c7aw8af")))) ("lcms" ,lcms) ("zlib" ,zlib) ("gtk" ,gtk+-2) diff --git a/gnu/packages/patches/icedtea-remove-overrides.patch b/gnu/packages/patches/icedtea-remove-overrides.patch new file mode 100644 index 0000000000..e4d68a9e58 --- /dev/null +++ b/gnu/packages/patches/icedtea-remove-overrides.patch @@ -0,0 +1,291 @@ +Upstream patch: +http://icedtea.classpath.org/hg/icedtea6/rev/60be25a84f2d + +Fixes build failure: +http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2954 + +Changes to the files 'NEWS' and 'ChangeLog' are omitted here. + +# HG changeset patch +# User Andrew John Hughes +# Date 1463144538 -3600 +# Node ID 60be25a84f2dd2bce8ff277cc3854cca1b3f7931 +# Parent c23ceebb80a19a33316f1e743eb93bdf79aac220 +PR2954: ecj/override.patch is missing new @Overrides in RMIJRMPServerImpl.java + +2016-05-13 Andrew John Hughes + + PR2954: ecj/override.patch is missing new + @Overrides in RMIJRMPServerImpl.java + * patches/ecj/override.patch: + Add cases in RMIJRMPServerImpl and others + which show up when source/target 5 is + used in the rt-class-files pre-build. + * patches/openjdk/8014205-blank_swing_dialogs_windows.patch: + Remove addition of @Override. + +diff -r c23ceebb80a1 -r 60be25a84f2d patches/ecj/override.patch +--- a/patches/ecj/override.patch Sun May 08 21:28:21 2016 +0100 ++++ b/patches/ecj/override.patch Fri May 13 14:02:18 2016 +0100 +@@ -362,3 +362,240 @@ + public Class run() { + try { + ReflectUtil.checkPackageAccess(className); ++diff -r 545db1dd8c2a src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java ++--- openjdk-ecj/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java Thu May 12 01:30:54 2016 +0100 ++@@ -1870,7 +1870,6 @@ ++ ++ private ModifiableClassLoaderRepository getInstantiatorCLR() { ++ return AccessController.doPrivileged(new PrivilegedAction() { ++- @Override ++ public ModifiableClassLoaderRepository run() { ++ return instantiator != null ? instantiator.getClassLoaderRepository() : null; ++ } ++diff -r 545db1dd8c2a src/share/classes/com/sun/media/sound/Platform.java ++--- openjdk-ecj/jdk/src/share/classes/com/sun/media/sound/Platform.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/share/classes/com/sun/media/sound/Platform.java Thu May 12 01:30:54 2016 +0100 ++@@ -160,7 +160,6 @@ ++ try { ++ // load the main library ++ AccessController.doPrivileged(new PrivilegedAction() { ++- @Override ++ public Void run() { ++ System.loadLibrary(libNameMain); ++ return null; ++@@ -182,7 +181,6 @@ ++ final String lib = st.nextToken(); ++ try { ++ AccessController.doPrivileged(new PrivilegedAction() { ++- @Override ++ public Void run() { ++ System.loadLibrary(lib); ++ return null; ++diff -r 545db1dd8c2a src/share/classes/java/awt/EventQueue.java ++--- openjdk-ecj/jdk/src/share/classes/java/awt/EventQueue.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/share/classes/java/awt/EventQueue.java Thu May 12 01:30:54 2016 +0100 ++@@ -190,7 +190,6 @@ ++ EventQueue.invokeAndWait(source, r); ++ } ++ ++- @Override ++ public long getMostRecentEventTime(EventQueue eventQueue) { ++ return eventQueue.getMostRecentEventTimeImpl(); ++ } ++diff -r 545db1dd8c2a src/share/classes/java/io/ObjectInputStream.java ++--- openjdk-ecj/jdk/src/share/classes/java/io/ObjectInputStream.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/share/classes/java/io/ObjectInputStream.java Thu May 12 01:30:54 2016 +0100 ++@@ -3571,7 +3571,6 @@ ++ } ++ static { ++ SharedSecrets.setJavaObjectInputStreamAccess(new JavaObjectInputStreamAccess() { ++- @Override ++ public void setValidator(ObjectInputStream ois, ObjectStreamClassValidator validator) { ++ ObjectInputStream.setValidator(ois, validator); ++ } ++diff -r 545db1dd8c2a src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java ++--- openjdk-ecj/jdk/src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java Thu May 12 01:30:54 2016 +0100 ++@@ -64,7 +64,6 @@ ++ final String propName = "sun.rmi.server.invocationhandler.allowFinalizeInvocation"; ++ String allowProp = java.security.AccessController.doPrivileged( ++ new PrivilegedAction() { ++- @Override ++ public String run() { ++ return System.getProperty(propName); ++ } ++diff -r 545db1dd8c2a src/share/classes/sun/awt/image/SunVolatileImage.java ++--- openjdk-ecj/jdk/src/share/classes/sun/awt/image/SunVolatileImage.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/share/classes/sun/awt/image/SunVolatileImage.java Thu May 12 01:30:54 2016 +0100 ++@@ -262,7 +262,6 @@ ++ * ++ * @see sun.java2d.DestSurfaceProvider#getDestSurface ++ */ ++- @Override ++ public Surface getDestSurface() { ++ return volSurfaceManager.getPrimarySurfaceData(); ++ } ++diff -r 545db1dd8c2a src/share/classes/sun/java2d/SunGraphics2D.java ++--- openjdk-ecj/jdk/src/share/classes/sun/java2d/SunGraphics2D.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/share/classes/sun/java2d/SunGraphics2D.java Thu May 12 01:30:54 2016 +0100 ++@@ -3294,7 +3294,6 @@ ++ * ++ * @see sun.java2d.DestSurfaceProvider#getDestSurface ++ */ ++- @Override ++ public Surface getDestSurface() { ++ return surfaceData; ++ } ++diff -r 545db1dd8c2a src/share/classes/sun/rmi/server/UnicastServerRef.java ++--- openjdk-ecj/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java Thu May 12 01:30:54 2016 +0100 ++@@ -630,12 +630,10 @@ ++ this.callID = callID; ++ } ++ ++- @Override ++ public void validateDescriptor(ObjectStreamClass descriptor) { ++ descriptorCheck.check(method, descriptor, parameterIndex, callID); ++ } ++ ++- @Override ++ public void checkProxyInterfaceNames(String[] ifaces) { ++ descriptorCheck.checkProxyClass(method, ifaces, parameterIndex, callID); ++ } ++diff -r 545db1dd8c2a src/share/classes/sun/rmi/transport/Transport.java ++--- openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/Transport.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/Transport.java Thu May 12 01:30:54 2016 +0100 ++@@ -133,7 +133,6 @@ ++ */ ++ private static void setContextClassLoader(final ClassLoader ccl) { ++ AccessController.doPrivileged(new PrivilegedAction () { ++- @Override ++ public Void run() { ++ Thread.currentThread().setContextClassLoader(ccl); ++ return null; ++diff -r 545db1dd8c2a src/share/classes/sun/rmi/transport/tcp/TCPTransport.java ++--- openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java Thu May 12 01:30:54 2016 +0100 ++@@ -676,7 +676,6 @@ ++ connectionCount.incrementAndGet() + ++ ")-" + remoteHost); ++ AccessController.doPrivileged(new PrivilegedAction() { ++- @Override ++ public Void run() { ++ run0(); ++ return null; ++diff -r 545db1dd8c2a src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java ++--- openjdk-ecj/jdk/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java Thu May 12 01:30:54 2016 +0100 ++@@ -92,7 +92,6 @@ ++ return this; ++ } ++ ++- @Override ++ public SurfaceData createManagedSurface(int w, int h, int transparency) { ++ return GLXSurfaceData.createData(this, w, h, ++ getColorModel(transparency), ++@@ -165,12 +164,10 @@ ++ * Returns true if the provided capability bit is present for this config. ++ * See OGLContext.java for a list of supported capabilities. ++ */ ++- @Override ++ public final boolean isCapPresent(int cap) { ++ return ((oglCaps.getCaps() & cap) != 0); ++ } ++ ++- @Override ++ public final long getNativeConfigInfo() { ++ return pConfigInfo; ++ } ++@@ -180,7 +177,6 @@ ++ * ++ * @see sun.java2d.pipe.hw.BufferedContextProvider#getContext ++ */ ++- @Override ++ public final OGLContext getContext() { ++ return context; ++ } ++@@ -394,7 +390,6 @@ ++ * ++ * @see sun.java2d.pipe.hw.AccelGraphicsConfig#createCompatibleVolatileImage ++ */ ++- @Override ++ public VolatileImage ++ createCompatibleVolatileImage(int width, int height, ++ int transparency, int type) ++@@ -434,17 +429,14 @@ ++ * ++ * @see sun.java2d.pipe.hw.AccelGraphicsConfig#getContextCapabilities ++ */ ++- @Override ++ public ContextCapabilities getContextCapabilities() { ++ return oglCaps; ++ } ++ ++- @Override ++ public void addDeviceEventListener(AccelDeviceEventListener l) { ++ AccelDeviceEventNotifier.addListener(l, screen.getScreen()); ++ } ++ ++- @Override ++ public void removeDeviceEventListener(AccelDeviceEventListener l) { ++ AccelDeviceEventNotifier.removeListener(l); ++ } ++diff -r 545db1dd8c2a src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java ++--- openjdk-ecj/jdk/src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java Wed May 04 23:23:55 2016 +0100 +++++ openjdk-ecj/jdk/src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java Thu May 12 01:51:42 2016 +0100 ++@@ -236,7 +236,6 @@ ++ final MBeanInstantiator fInstantiator = instantiator; ++ this.secureClr = new ++ SecureClassLoaderRepository(AccessController.doPrivileged(new PrivilegedAction() { ++- @Override ++ public ClassLoaderRepository run() { ++ return fInstantiator.getClassLoaderRepository(); ++ } ++@@ -1257,7 +1256,6 @@ ++ ClassLoader myLoader = outerShell.getClass().getClassLoader(); ++ final ModifiableClassLoaderRepository loaders = AccessController.doPrivileged(new PrivilegedAction() { ++ ++- @Override ++ public ModifiableClassLoaderRepository run() { ++ return instantiator.getClassLoaderRepository(); ++ } ++diff -r b72e7b89dda9 src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java ++--- openjdk-ecj/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java Thu Sep 08 11:00:33 2011 -0700 +++++ openjdk-ecj/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java Thu May 12 16:39:37 2016 +0100 ++@@ -227,17 +227,14 @@ ++ allowedTypes = credentialsTypes; ++ } ++ ++- @Override ++ public String getVersion() throws RemoteException { ++ return impl.getVersion(); ++ } ++ ++- @Override ++ public RMIConnection newClient(Object credentials) throws IOException { ++ return impl.newClient(credentials); ++ } ++ ++- @Override ++ public void check(Method method, ObjectStreamClass descriptor, ++ int paramIndex, int callID) { ++ ++@@ -247,7 +244,6 @@ ++ } ++ } ++ ++- @Override ++ public void checkProxyClass(Method method, String[] ifaces, ++ int paramIndex, int callID) { ++ if (ifaces != null && ifaces.length > 0) { ++@@ -259,7 +255,6 @@ ++ } ++ } ++ ++- @Override ++ public void end(int callID) { ++ /* Do nothing */ ++ } +diff -r c23ceebb80a1 -r 60be25a84f2d patches/openjdk/8014205-blank_swing_dialogs_windows.patch +--- a/patches/openjdk/8014205-blank_swing_dialogs_windows.patch Sun May 08 21:28:21 2016 +0100 ++++ b/patches/openjdk/8014205-blank_swing_dialogs_windows.patch Fri May 13 14:02:18 2016 +0100 +@@ -116,7 +116,7 @@ + { + if (numBands == 3 && !ccm.hasAlpha()) { + imageType = TYPE_3BYTE_BGR; +-@@ -804,6 +801,27 @@ ++@@ -804,6 +801,26 @@ + } // else if ((raster instanceof ByteComponentRaster) && + } + +@@ -129,7 +129,6 @@ + + new PrivilegedAction() + + { + + +-+ @Override + + public Boolean run() { + + final ClassLoader std = System.class.getClassLoader(); + + + From c44fb4df8a2114b482285d522033050c1c94dfba Mon Sep 17 00:00:00 2001 From: McKinley Olsen Date: Tue, 31 May 2016 14:28:44 -0600 Subject: [PATCH 208/277] gnu: Add vte-ng. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnome.scm (vte-ng): New variable. Signed-off-by: 宋文武 --- gnu/packages/gnome.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0d9c946fd5..8384c76d66 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1787,6 +1787,39 @@ gnome-terminal, but can also be used to embed a console/terminal in games, editors, IDEs, etc.") (license license:lgpl2.1+))) +(define-public vte-ng + (package + (inherit vte) + (name "vte-ng") + (version "0.44.1.b") + (native-inputs + `(("gtk-doc" ,gtk-doc) + ("gperf" ,gperf) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ,@(package-native-inputs vte))) + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/thestinger/" + name "/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1mhz4i1qkdlrs49vgm7nsrb60lry9v6wsgwsmji7fln1nyrp1pag")))) + (arguments + `(#:configure-flags '("CXXFLAGS=-Wformat=0") + #:phases (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + (setenv "NOCONFIGURE" "true") + (zero? (system* "sh" "autogen.sh"))))))) + (synopsis "Enhanced VTE terminal widget") + (description + "VTE is a library (libvte) implementing a terminal emulator widget for +GTK+, this fork provides additional functions exposed for keyboard text +selection and URL hints."))) + ;; provides vte 2.90, required for some terminal emulators ;; tilda bug: https://github.com/lanoxx/tilda/issues/94 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021 From b2e13aa287ef366aa6374dc915520199ef5589ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 1 Jun 2016 22:08:29 +0200 Subject: [PATCH 209/277] doc: Suggest pgp.mit.edu. * doc/guix.texi (Binary Installation): Use pgp.mit.edu instead of keys.gnupg.net, which seems to be dead. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 4222e011e5..dc61aa8537 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -375,7 +375,7 @@ If that command fails because you do not have the required public key, then run this command to import it: @example -$ gpg --keyserver keys.gnupg.net --recv-keys 090B11993D9AEBB5 +$ gpg --keyserver pgp.mit.edu --recv-keys 090B11993D9AEBB5 @end example @noindent From af3166c33504237e3af3feda080d2aeff35b3a69 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 29 May 2016 17:28:04 +0200 Subject: [PATCH 210/277] gnu: Add dfu-util. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/flashing-tools.scm (dfu-util): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/flashing-tools.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm index 9f9f1b9c6a..37a10726e3 100644 --- a/gnu/packages/flashing-tools.scm +++ b/gnu/packages/flashing-tools.scm @@ -1,6 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis +;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +32,7 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages libftdi) #:use-module (gnu packages pciutils) + #:use-module (gnu packages autotools) #:use-module (gnu packages admin)) (define-public flashrom @@ -130,3 +133,30 @@ technique (ISP).") Atmel (8051, AVR, XMEGA & AVR32) chips with a USB bootloader supporting ISP.") (license gpl2+))) + +(define-public dfu-util + (package + (name "dfu-util") + (version "0.9") + (source (origin + (method url-fetch) + (uri (string-append + "http://dfu-util.sourceforge.net/releases/dfu-util-" + version ".tar.gz")) + (sha256 + (base32 + "0czq73m92ngf30asdzrfkzraag95hlrr74imbanqq25kdim8qhin")))) + (build-system gnu-build-system) + (inputs + `(("libusb" ,libusb))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "Host side of the USB Device Firmware Upgrade (DFU) protocol") + (description + "The DFU (Universal Serial Bus Device Firmware Upgrade) protocol is +intended to download and upload firmware to devices connected over USB. It +ranges from small devices like micro-controller boards up to mobile phones. +With dfu-util you are able to download firmware to your device or upload +firmware from it.") + (home-page "http://dfu-util.sourceforge.net/") + (license gpl2+))) From b8fdbca32026a7f814f2bb2064774c54d803a8a6 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 29 May 2016 19:00:33 +0200 Subject: [PATCH 211/277] gnu: Add python-tblib and python2-tblib. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python.scm (python-tblib, python2-tblib): New variables. Signed-off-by: Ludovic Courtès --- gnu/packages/python.scm | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 701ee45e17..043c2a54f4 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2015, 2016 Chris Marusich ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016 Lukas Gradl +;;; Copyright © 2016 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -8809,3 +8810,46 @@ to occurences in strings and comments.") functionality in a modular way, allowing you to extend your panel with your own code, responding to click events and updating clock every second.") (license bsd-3))) + +(define-public python-tblib + (package + (name "python-tblib") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "tblib" version)) + (sha256 (base32 + "02iahfkfa927hb4jq2bak36ldihwapzacfiq5lyxg8llwn98a1yi")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; Upstream runs tests after installation and the package itself + ;; resides in a subdirectory. Extend PYTHONPATH so it will be + ;; found. + (setenv "PYTHONPATH" + (string-append (getcwd) "/build/lib:" + (getenv "PYTHONPATH"))) + (zero? (system* "py.test" "-vv" "tests" "README.rst"))))))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-setuptools" ,python-setuptools) + ("python-six" ,python-six))) + (home-page "https://github.com/ionelmc/python-tblib") + (synopsis "Traceback serialization library") + (description + "Traceback serialization allows you to: + +@enumerate +@item Pickle tracebacks and raise exceptions with pickled tracebacks in +different processes. This allows better error handling when running code over +multiple processes (imagine multiprocessing, billiard, futures, celery etc). + +@item Parse traceback strings and raise with the parsed tracebacks. +@end itemize") + (license bsd-3))) + +(define-public python2-tblib + (package-with-python2 python-tblib)) From 1a024de45e0fe57342d3cec3ba54e129976fd914 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 29 May 2016 19:00:34 +0200 Subject: [PATCH 212/277] gnu: Add python-sqlparse and python2-sqlparse. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python.scm (python-sqlparse, python2-sqlparse): New variables. Signed-off-by: Ludovic Courtès --- gnu/packages/python.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 043c2a54f4..642fbd6ffe 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8853,3 +8853,37 @@ multiple processes (imagine multiprocessing, billiard, futures, celery etc). (define-public python2-tblib (package-with-python2 python-tblib)) + +(define-public python-sqlparse + (package + (name "python-sqlparse") + (version "0.1.19") + (source (origin + (method url-fetch) + (uri (pypi-uri "sqlparse" version)) + (sha256 + (base32 + "1s2fvaxgh9kqzrd6iwy5h7i61ckn05plx9np13zby93z3hdbx5nq")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* _ + ;; setup.py-integrated 2to3 only affects the build files, but + ;; py.test is using the source files. So we need to convert them + ;; manually. + (when (zero? (system* "python3")) + (system* "2to3" "--no-diff" "-wn" "sqlparse" "tests")) + (zero? (system* "py.test"))))))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/andialbrecht/sqlparse") + (synopsis "Non-validating SQL parser") + (description "Sqlparse is a non-validating SQL parser for Python. It +provides support for parsing, splitting and formatting SQL statements.") + (license bsd-3))) + +(define-public python2-sqlparse + (package-with-python2 python-sqlparse)) From 4a23818659b0f46f5730d9501e7cfe87cc81e45a Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 29 May 2016 19:00:35 +0200 Subject: [PATCH 213/277] gnu: Add python2-ipaddr. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python.scm: (python2-ipaddr): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/python.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 642fbd6ffe..332018321f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5788,6 +5788,35 @@ IPv6 addresses and networks. This is a port of the Python 3.3 ipaddress module to older versions of Python.") (license psfl))) +(define-public python2-ipaddr + (package + (name "python2-ipaddr") + (version "2.1.11") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ipaddr" version)) + (sha256 + (base32 "1dwq3ngsapjc93fw61rp17fvzggmab5x1drjzvd4y4q0i255nm8v")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 ;version 2 only + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* _ + (zero? (system* "python" "ipaddr_test.py"))))))) + (home-page "https://github.com/google/ipaddr-py") + (synopsis "IP address manipulation library") + (description + "Ipaddr is a Python@tie{}2 library for creating and manupilating IPv4 and +IPv6 addresses and networks. + +For new implementations you may prefer to use the standard module +@code{ipaddress}, which was introduced in Python 3.3 and backported to older +versions of Python.") + (license asl2.0))) + (define-public python-idna (package (name "python-idna") From d23ef788b3fff804d017247c4fee170b693c533d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 1 Jun 2016 22:56:33 +0200 Subject: [PATCH 214/277] doc: Clarify non-interference when installed on a foreign distro. Suggested by Hartmut Goebel . * doc/guix.texi (Installation): Add paragraph explaining that files live in two directories. --- doc/guix.texi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index dc61aa8537..2cd30f6f86 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -336,6 +336,13 @@ manager, which can be done on top of a running GNU/Linux system. If, instead, you want to install the complete GNU operating system, @pxref{System Installation}. +@cindex foreign distro +When installed on a running GNU/Linux system---thereafter called a +@dfn{foreign distro}---GNU@tie{}Guix complements the available tools +without interference. Its data lives exclusively in two directories, +usually @file{/gnu/store} and @file{/var/guix}; other files on your +system, such as @file{/etc}, are left untouched. + @menu * Binary Installation:: Getting Guix running in no time! * Requirements:: Software needed to build and run Guix. @@ -1096,6 +1103,7 @@ daemons on the same machine. @node Application Setup @section Application Setup +@cindex foreign distro When using Guix on top of GNU/Linux distribution other than GuixSD---a so-called @dfn{foreign distro}---a few additional steps are needed to get everything in place. Here are some of them. From 99c866a0bbe48b1c5c1558f7dd870bac85dcf0ad Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 29 May 2016 19:05:40 +0200 Subject: [PATCH 215/277] doc: Update specification for Python packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Python Packages): Add rule for packages with upstream name starting with "py". Signed-off-by: Ludovic Courtès --- doc/guix.texi | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2cd30f6f86..6d47976378 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11113,7 +11113,9 @@ packages with the corresponding names. If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names -@code{python-dateutil} and @code{python2-dateutil}. +@code{python-dateutil} and @code{python2-dateutil}. If the project name +starts with @code{py} (e.g. @code{pytz}), we keep it and prefix it as +described above. @node Perl Modules From 234d0b69140f1771cd46cbf61b3bffc6eaffde27 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 31 May 2016 18:58:18 -0400 Subject: [PATCH 216/277] gnu: certbot, python-acme: Update to 0.7.0. These packages should be updated together. * gnu/packages/tls.scm (certbot): Update to 0.7.0. (arguments): Adjust 'docs' phase to new build system and work around upstream typo. (python-acme, python2-acme): Update to 0.7.0. --- gnu/packages/tls.scm | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 0bce811112..27addbe0f9 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -358,16 +358,16 @@ security, and applying best practice development processes.") (define-public python-acme (package (name "python-acme") - (version "0.6.0") + (version "0.7.0") (source (origin (method url-fetch) (uri (string-append "https://pypi.python.org/packages/" - "af/33/703e5ec3d7efde7c4d2fcea9cdf88953a33d4e72aafd5b0a330173a7b395/" + "d9/8c/69dfff1020cd05d00cb44879db401ea3aca13eeed56cc72bea5ebe118ee5/" "acme-" version ".tar.gz")) (sha256 (base32 - "1ipck25c6nr0x54w2cc8ziwjmyyrpyz6pc1y8xc9nqmxvw4n0kpc")))) + "1fgf32zpkwp5nwiyay4vagyiqnpw325fxga1nwk20h3qg6aa2xcz")))) (build-system python-build-system) (arguments `(#:phases @@ -420,30 +420,31 @@ security, and applying best practice development processes.") (define-public certbot (package (name "certbot") - (version "0.6.0") + (version "0.7.0") (source (origin (method url-fetch) (uri (string-append "https://pypi.python.org/packages/" - "fc/eb/7594bf16d89909a9d52c46edbeae669d4b2ee6e12453bd97e674d0371920/" + "d8/08/dde6bc98204c79bdefe0c1ae3a08c44f4f319197b0fc34c109a9f6a6df64/" name "-" version ".tar.gz")) (sha256 (base32 - "0ba95cf6shmyhi4vzvk64vbkrmr8qvkn32k3xwb2iv7ybbfbgc40")))) + "127ykqsw39h7gvlax0zhv9x6sfwp6hps7lq2d20apl8nbvbq6l5d")))) (build-system python-build-system) (arguments `(#:python ,python-2 #:phases (modify-phases %standard-phases - (add-after 'install 'docs + (add-after 'build 'docs (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (man1 (string-append out "/share/man/man1")) (man7 (string-append out "/share/man/man7")) (info (string-append out "/info"))) + ;; Fix path. + ;; https://github.com/certbot/certbot/pull/3102 (substitute* "docs/man/certbot.rst" - (("certbot --help all") - (string-append out "/bin/certbot" " --help all"))) + (("cli-help.txt") "../cli-help.txt")) (and (zero? (system* "make" "-C" "docs" "man" "info")) (install-file "docs/_build/texinfo/Certbot.info" info) From 4ff2060524b1a15b37ad2d52108b94a7e7fdef4a Mon Sep 17 00:00:00 2001 From: Lukas Gradl Date: Wed, 1 Jun 2016 09:33:44 -0500 Subject: [PATCH 217/277] gnu: Add libiax2. * gnu/packages/telephony.scm (libiax2): New variable. Signed-off-by: Leo Famulari --- gnu/packages/telephony.scm | 41 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 50a83fbcf3..b27dd1f6d6 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 David Hashe ;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2016 Lukas Gradl ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +22,7 @@ (define-module (gnu packages telephony) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages gnupg) #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) @@ -211,3 +213,42 @@ Real-time Transport Protocol (SRTP), the Universal Security Transform (UST), and a supporting cryptographic kernel.") (home-page "https://github.com/cisco/libsrtp") (license bsd-3))) + +(define-public libiax2 + (let ((commit "0e5980f1d78ce462e2d1ed6bc39ff35c8341f201")) + ;; This is the commit used by the Ring Project. + (package + (name "libiax2") + (version (string-append "0.0.0-1." (string-take commit 7))) + (source + (origin + (method url-fetch) + (uri + (string-append + "https://gitlab.savoirfairelinux.com/sflphone/libiax2/" + "repository/archive.tar.gz?ref=" + commit)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0cj5293bixp3k5x3hjwyd0iq7z8w5p7yavxvvkqk5817hjq386y2")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'configure 'autoconf + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (home-page "https://gitlab.savoirfairelinux.com/sflphone/libiax2") + (synopsis "Inter-Asterisk-Protocol library") + (description "LibIAX2 implements the Inter-Asterisk-Protocol for relaying +Voice-over-IP (VoIP) communications.") + ;; The file 'src/md5.c' is released into the public domain by RSA Data + ;; Security. The files 'src/answer.h', 'src/miniphone.c', + ;; 'src/options.c', 'src/options.h', 'src/ring10.h', 'src/winiphone.c' are + ;; covered under the 'GPL'. + ;; The package as a whole is distributed under the LGPL 2.0. + (license (list lgpl2.0 public-domain gpl2+))))) From 7cd9b0140767f713c289cc2fb9a6c28777384091 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 1 Jun 2016 21:01:33 -0400 Subject: [PATCH 218/277] gnu: bundler: Update to 1.12.5. * guix/packages/ruby.scm (bundler): Update to 1.12.5. --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 6eebd9ade0..c6b6eedb9d 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -423,13 +423,13 @@ expectations and mocks frameworks.") (define-public bundler (package (name "bundler") - (version "1.11.2") + (version "1.12.5") (source (origin (method url-fetch) (uri (rubygems-uri "bundler" version)) (sha256 (base32 - "0s37j1hyngc4shq0in8f9y1knjdqkisdg3dd1mfwgq7n1bz8zan7")))) + "1q84xiwm9j771lpmiply0ls9l2bpvl5axn3jblxjvrldh8di2pkc")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; avoid dependency cycles From 005c787d5983858ee0313cbb03bfae1f52e9254b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 2 Jun 2016 18:22:26 +0200 Subject: [PATCH 219/277] gnu: Add IpOpt. * gnu/packages/maths.scm (ipopt): New variable. --- gnu/packages/maths.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index e11208c32e..7281e43adc 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -582,6 +582,37 @@ common interface for a number of different free optimization routines available online as well as original implementations of various other algorithms.") (license license:lgpl2.1+))) +(define-public ipopt + (package + (name "ipopt") + (version "3.12.5") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.coin-or.org/download/source/Ipopt/Ipopt-" + version".tgz")) + (sha256 + (base32 + "09bk2hqy2vgi4yi76xng9zxakddwqy3wij9nx7wf2vfbxxpazrsk")) + (modules '((guix build utils))) + (snippet + ;; Make sure we don't use the bundled software. + '(delete-file-recursively "ThirdParty")))) + (build-system gnu-build-system) + (native-inputs + `(("gfortran" ,gfortran))) + (inputs + ;; TODO: Maybe add dependency on COIN-MUMPS, ASL, and HSL. + `(("blas" ,openblas) + ("lapack" ,lapack))) + (home-page "http://www.coin-or.org") + (synopsis "Large-scale nonlinear optimizer") + (description + "The Interior Point Optimizer (IPOPT) is a software package for +large-scale nonlinear optimization. It provides C++, C, and Fortran +interfaces.") + (license license:epl1.0))) + ;; For a fully featured Octave, users are strongly recommended also to install ;; the following packages: texinfo, less, ghostscript, gnuplot. (define-public octave From 6cde5c34a1b7acb953e87055b845629015903888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 2 Jun 2016 18:59:58 +0200 Subject: [PATCH 220/277] gnu: icecat: Install '.desktop' entry. Fixes . Reported by Danny Milosavljevic . * gnu/packages/gnuzilla.scm (icecat)[arguments]: Add 'install-desktop-entry' phase. --- gnu/packages/gnuzilla.scm | 45 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 7e52534b8f..4ffa3ac165 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -448,6 +448,8 @@ standards.") ) #:modules ((ice-9 ftw) + (ice-9 rdelim) + (ice-9 match) ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases @@ -509,7 +511,48 @@ standards.") (format #t "configure flags: ~s~%" flags) (zero? (apply system* bash (string-append srcdir "/configure") - flags)))))))) + flags))))) + (add-before 'configure 'install-desktop-entry + (lambda* (#:key outputs #:allow-other-keys) + ;; Install the '.desktop' file. + (define (swallow-%%-directives input output) + ;; Interpret '%%ifdef' directives found in the '.desktop' file. + (let loop ((state 'top)) + (match (read-line input 'concat) + ((? eof-object?) + #t) + ((? string? line) + (cond ((string-prefix? "%%ifdef" line) + (loop 'ifdef)) + ((string-prefix? "%%else" line) + (loop 'else)) + ((string-prefix? "%%endif" line) + (loop 'top)) + (else + (case state + ((top else) + (display line output) + (loop state)) + (else + (loop state))))))))) + + (let* ((out (assoc-ref outputs "out")) + (applications (string-append out "/share/applications"))) + (call-with-input-file "debian/icecat.desktop.in" + (lambda (input) + (call-with-output-file "debian/icecat.desktop" + (lambda (output) + (swallow-%%-directives input output))))) + + (substitute* "debian/icecat.desktop" + (("@MOZ_DISPLAY_NAME@") + "GNU IceCat") + (("^Exec=@MOZ_APP_NAME@") + (string-append "Exec=" out "/bin/icecat")) + (("@MOZ_APP_NAME@") + "icecat")) + (install-file "debian/icecat.desktop" applications) + #t)))))) (home-page "http://www.gnu.org/software/gnuzilla/") (synopsis "Entirely free browser derived from Mozilla Firefox") (description From 7f125616cada36f492977ea1f6bad8a8c25d03c3 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 3 Jun 2016 03:50:20 -0400 Subject: [PATCH 221/277] gnu: linux-libre-4.4: Update to 4.4.12. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.12. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index fb5a34dd18..871b183016 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -340,13 +340,13 @@ It has been modified to remove all non-free binary blobs.") (define-public linux-libre-4.4 (package (inherit linux-libre) - (version "4.4.11") + (version "4.4.12") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "17pb9w72vigdrhm8hnkdyw9kwc2l06nabzygpdkwbvf7fg3j03vc")))) + "1zbds4ihk4x3lxr1jw7yrjzv1dkl995m41a54dfgqm0kj70li8ws")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) From d9e61683ccd55204eff996fe0997b07b05b0f1f1 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 3 Jun 2016 03:51:58 -0400 Subject: [PATCH 222/277] gnu: linux-libre: Update to 4.6.1. * gnu/packages/linux.scm (linux-libre): Update to 4.6.1. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 871b183016..df6983047c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -225,7 +225,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration." (search-path %load-path file))) (define-public linux-libre - (let* ((version "4.6") + (let* ((version "4.6.1") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Avoid introducing timestamps @@ -303,7 +303,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration." (uri (linux-libre-urls version)) (sha256 (base32 - "1y1fyrmv34b01a35apkpha5xwvch17fz3kx2g1657x5jhpbnlwn3")))) + "16cwr2jhd688bxdjfjpymap7sq0qsl24k5dylbz1rwfblnv2wn51")))) (build-system gnu-build-system) (supported-systems '("x86_64-linux" "i686-linux")) (native-inputs `(("perl" ,perl) From 0e69cf67cb07a2f955bdebed19aec63d1d28a635 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 3 Jun 2016 09:53:46 +0200 Subject: [PATCH 223/277] doc: Explain that packages can be installed in the installation system. * doc/guix.texi (Preparing for Installation): Add paragraph about package installation in the installation system. --- doc/guix.texi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 6d47976378..c8c755580a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5982,6 +5982,11 @@ dependencies of your system configuration can be downloaded. See the ``Networking'' section below. @end quotation +The installation system includes many common tools needed for this task. +But it is also a full-blown GuixSD system, which means that you can +install additional packages, should you need it, using @command{guix +package} (@pxref{Invoking guix package}). + @subsubsection Keyboard Layout @cindex keyboard layout From 89978a0a0d70ee31225133b61f8b006cac14c0bd Mon Sep 17 00:00:00 2001 From: McKinley Olsen Date: Wed, 1 Jun 2016 11:54:53 -0600 Subject: [PATCH 224/277] gnu: Add Termite. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/terminals.scm (termite): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/terminals.scm | 56 +++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 1a83eda3c0..ee36f64354 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2016 Mckinley Olsen ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +22,7 @@ #:use-module (guix build utils) #:use-module (guix build-system gnu) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages autotools) #:use-module (gnu packages gettext) @@ -28,7 +30,10 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages wm)) + #:use-module (gnu packages wm) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages gtk) + #:use-module (gnu packages gnome)) (define-public tilda (package @@ -67,3 +72,52 @@ is similar to the built-in consoles in some applications. Tilda is highly configureable through a graphical wizard.") (home-page "https://github.com/lanoxx/tilda") (license license:gpl2+))) + +(define-public termite + (package + (name "termite") + (version "11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/thestinger/" + name ".git")) + (commit (string-append "v" version)) + (recursive? #t))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1cw4yw7n9m2si8b7zcfyz9pyihncabxm5g39v1mxslfajxgwzmd8")))) + (build-system gnu-build-system) + (arguments + `(#:phases (alist-delete 'configure %standard-phases) + #:tests? #f + ;; This sets the destination when installing the necessary terminal + ;; capability data, which are not provided by 'ncurses'. See + ;; . + #:make-flags (list "PREFIX=" + (string-append "VERSION=v" (version)) + (string-append "DESTDIR=" + (assoc-ref %outputs "out"))))) + (inputs + `(("vte", vte-ng) + ("gtk+", gtk+) + ("ncurses", ncurses))) + (native-inputs + `(("pkg-config" ,pkg-config))) + + ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is + ;; provided for usability reasons. See . + (native-search-paths + (list (search-path-specification + (variable "TERMINFO_DIRS") + (files '("share/terminfo"))))) + (home-page "https://github.com/thestinger/termite/") + (synopsis "Keyboard-centric, VTE-based terminal") + (description "Termite is a minimal terminal emulator designed for use with +tiling window managers. It is a modal application, similar to Vim, with an +insert mode and command mode where keybindings have different functions.") + + ;; Files under util/ are under the Expat license; the rest is LGPLv2+. + (license license:lgpl2.0+))) From 085115ed8c2bfb2d0e05e648521078b65f08da7a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 3 Jun 2016 08:26:41 +0300 Subject: [PATCH 225/277] gnu: gdb: Update to 7.11.1. * gnu/packages/gdb.scm (gdb): Update to 7.11.1. --- gnu/packages/gdb.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index 9065732c78..80d53935e2 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -37,14 +37,14 @@ (define-public gdb (package (name "gdb") - (version "7.11") + (version "7.11.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gdb/gdb-" version ".tar.xz")) (sha256 (base32 - "1hg5kwwdvi9b9nxzxfjnx8fx3gip75fqyvkp82xpf3b3rcb42hvs")))) + "0w7wi1llznlqdqk2lmzygz2xylb2c9mh580s9i0rypkmwfj6s8g9")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; FIXME "make check" fails on single-processor systems. From 4b4e1b4b26a8ba56d57568ebd832a0ab8c1bf2a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 3 Jun 2016 11:41:39 +0200 Subject: [PATCH 226/277] gnu: Add gflags. * gnu/packages/popt.scm (gflags): New variable. --- gnu/packages/popt.scm | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/gnu/packages/popt.scm b/gnu/packages/popt.scm index 7739c7a276..0832766512 100644 --- a/gnu/packages/popt.scm +++ b/gnu/packages/popt.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Ludovic Courtès +;;; Copyright © 2013, 2014, 2016 Ludovic Courtès ;;; Copyright © 2015 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. @@ -20,7 +20,9 @@ (define-module (gnu packages popt) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) #:use-module (guix licenses)) (define-public argtable @@ -88,3 +90,32 @@ similar to getopt(3), it contains a number of enhancements, including: - popt provides convience functions for parsing strings into argv[] style arrays.") (license x11))) + +(define-public gflags + (package + (name "gflags") + (version "2.1.2") + (source (origin + (method git-fetch) + (uri (git-reference + (commit (string-append "v" version)) + (url "https://github.com/gflags/gflags.git"))) + (sha256 + (base32 + "0qxvr9cyxq3px60jglkm94pq5bil8dkjjdb99l3ypqcds7iypx9w")) + (file-name (string-append name "-" version "-checkout")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON" + "-DBUILD_TESTING=ON"))) + (home-page "https://gflags.github.io/gflags/") + (synopsis "C++ library for command-line argument parsing") + (description + "Gflags is a C++ library to parse command-line flags. It differs from +other such libraries in that command-line flag definitions can be scattered +around the source code, and not just listed in one place such as @code{main}. +This means that a single source-code file will define and use flags that are +meaningful to that file. Any application that links in that file will get the +flags, and the gflags library will automatically handle that flag +appropriately.") + (license bsd-3))) From f9940ef1e81d3f1f397157787598e7b02691f698 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 3 Jun 2016 13:54:20 +0200 Subject: [PATCH 227/277] gnu: Add ceres-solver. * gnu/packages/maths.scm (ceres): New variable. --- gnu/packages/maths.scm | 49 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 7281e43adc..4498ea0308 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -613,6 +613,55 @@ large-scale nonlinear optimization. It provides C++, C, and Fortran interfaces.") (license license:epl1.0))) +(define-public ceres + (package + (name "ceres-solver") + (version "1.11.0") + (home-page "http://ceres-solver.org/") + (source (origin + (method url-fetch) + (uri (string-append home-page "ceres-solver-" + version ".tar.gz")) + (sha256 + (base32 + "0i7qkbf8g6pd8arxzldppga26ckv93y8zldsfz6wbd4n6b1nqrjd")))) + (build-system cmake-build-system) + (arguments + ;; TODO: Build HTML user documentation and install separately. + ;; XXX: Use the embedded "miniglog" as a replacement for + ;; . TODO: Use Glog when it's available. + '(#:configure-flags '("-DMINIGLOG=ON" + "-DBUILD_EXAMPLES=OFF" + "-DBUILD_SHARED_LIBS=ON") + + #:phases (modify-phases %standard-phases + (add-before 'configure 'set-library-directory + (lambda _ + ;; Install libraries to lib/, not lib64/. + (substitute* "internal/ceres/CMakeLists.txt" + (("set\\(LIB_SUFFIX \"64\"\\)") + "set(LIB_SUFFIX \"\")")) + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("eigen" ,eigen) + ("blas" ,openblas) + ("lapack" ,lapack) + ("suitesparse" ,suitesparse) + ("gflags" ,gflags))) + (synopsis "C++ library for solving large optimization problems") + (description + "Ceres Solver is a C++ library for modeling and solving large, +complicated optimization problems. It is a feature rich, mature and +performant library which has been used in production since 2010. Ceres Solver +can solve two kinds of problems: +@enumerate +@item non-linear least squares problems with bounds constraints; +@item general unconstrained optimization problems. +@end enumerate\n") + (license license:bsd-3))) + ;; For a fully featured Octave, users are strongly recommended also to install ;; the following packages: texinfo, less, ghostscript, gnuplot. (define-public octave From ad1c453731d5b320fbd94c6486bf0bc96a4e7e7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 3 Jun 2016 14:34:32 +0200 Subject: [PATCH 228/277] gnu: ipopt: Use libblas from LAPACK, and fix 'Libs' in 'ipopt.pc'. * gnu/packages/maths.scm (ipopt)[inputs]: Remove OPENBLAS. [arguments]: New field. --- gnu/packages/maths.scm | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 4498ea0308..3b860a957f 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -599,12 +599,28 @@ online as well as original implementations of various other algorithms.") ;; Make sure we don't use the bundled software. '(delete-file-recursively "ThirdParty")))) (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'install 'add--L-flags-in-ipopt.pc + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; The '.pc' file lists '-llapack -lblas' in "Libs"; + ;; move it to "Libs.private" where it belongs, and add a + ;; '-L' flag for LAPACK. + (let ((out (assoc-ref outputs "out")) + (lapack (assoc-ref inputs "lapack"))) + (substitute* (string-append out "/lib/pkgconfig/" + "ipopt.pc") + (("Libs: (.*)-llapack -lblas(.*)$" _ before after) + (string-append "Libs: " before " " after "\n" + "Libs.private: " before + "-L" lapack "/lib -llapack -lblas " + after "\n"))) + #t)))))) (native-inputs `(("gfortran" ,gfortran))) (inputs ;; TODO: Maybe add dependency on COIN-MUMPS, ASL, and HSL. - `(("blas" ,openblas) - ("lapack" ,lapack))) + `(("lapack" ,lapack))) ;for both libblas and liblapack (home-page "http://www.coin-or.org") (synopsis "Large-scale nonlinear optimizer") (description From c5c08f1b1ea1a2adde4f746209cdea0e8696c4e3 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 31 May 2016 13:33:14 -0400 Subject: [PATCH 229/277] gnu: Add emacs-smex. * gnu/packages/emacs.scm (emacs-smex): New variable. --- gnu/packages/emacs.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index b7c0a1f5fd..71f2f8b531 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2015, 2016 Christopher Allan Webber ;;; Copyright © 2016 humanitiesNerd ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016 David Thompson ;;; ;;; This file is part of GNU Guix. ;;; @@ -1795,3 +1796,24 @@ work on lists, strings and vectors.") Emacs default configuration in uncontroversial ways that nearly everyone can agree upon.") (license license:gpl3+))) + +(define-public emacs-smex + (package + (name "emacs-smex") + (version "3.0") + (source (origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com" + "/nonsequitur/smex/" version "/smex.el")) + (file-name (string-append "smex-" version ".el")) + (sha256 + (base32 + "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp")))) + (build-system emacs-build-system) + (home-page "http://github.com/nonsequitur/smex/") + (synopsis "M-x interface with Ido-style fuzzy matching") + (description + "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a +convenient interface to your recently and most frequently used commands. And +to all the other commands, too.") + (license license:gpl3+))) From 3e5be84b69c859677620cb3311ed7427d88735a7 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 31 May 2016 13:52:30 -0400 Subject: [PATCH 230/277] gnu: Add emacs-js2-mode. * gnu/packages/emacs.scm (emacs-js2-mode): New variable. --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 71f2f8b531..cad843c41e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1817,3 +1817,26 @@ agree upon.") convenient interface to your recently and most frequently used commands. And to all the other commands, too.") (license license:gpl3+))) + +(define-public emacs-js2-mode + (package + (name "emacs-js2-mode") + (version "20150909") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mooz/js2-mode/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1nsm36c4kwb473p13i58fgrnlk8fbn3rdhj47d9xz70az4ra44q0")))) + (build-system emacs-build-system) + (home-page "https://github.com/mooz/js2-mode/") + (synopsis "Improved JavaScript editing mode for Emacs") + (description + "Js2-mode provides a JavaScript major mode for Emacs that is more +advanced than the built-in javascript-mode. Features include accurate syntax +highlighting using a recursive-descent parser, on-the-fly reporting of syntax +errors and strict-mode warnings, smart line-wrapping within comments and +strings, and code folding.") + (license license:gpl3+))) From b78b6e8040ed6666de07b8378bf364abb0046093 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 31 May 2016 15:08:53 -0400 Subject: [PATCH 231/277] gnu: Add emacs-markdown-mode. * gnu/packages/emacs.scm (emacs-markdown-mode): New variable. --- gnu/packages/emacs.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index cad843c41e..cd6438311b 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1840,3 +1840,24 @@ highlighting using a recursive-descent parser, on-the-fly reporting of syntax errors and strict-mode warnings, smart line-wrapping within comments and strings, and code folding.") (license license:gpl3+))) + +(define-public emacs-markdown-mode + (package + (name "emacs-markdown-mode") + (version "2.1") + (source (origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/jrblevin" + "/markdown-mode/v" version + "/markdown-mode.el")) + (file-name (string-append "markdown-mode-" version ".el")) + (sha256 + (base32 + "1faibar32jnjia9202swblw91q6z1g5s4k9xmypwjahfh8yznl6w")))) + (build-system emacs-build-system) + (home-page "http://jblevins.org/projects/markdown-mode/") + (synopsis "Emacs Major mode for Markdown files") + (description + "Markdown-mode is a major mode for editing Markdown-formatted text files +in Emacs.") + (license license:gpl3+))) From a2670dde107717a0f6298e9e6d125848cbdfbb57 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 31 May 2016 15:25:10 -0400 Subject: [PATCH 232/277] gnu: Add emacs-projectile. * gnu/packages/emacs.scm (emacs-projectile): New variable. --- gnu/packages/emacs.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index cd6438311b..1b54439bc7 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1861,3 +1861,29 @@ strings, and code folding.") "Markdown-mode is a major mode for editing Markdown-formatted text files in Emacs.") (license license:gpl3+))) + +(define-public emacs-projectile + (package + (name "emacs-projectile") + (version "0.13.0") + (source (origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/bbatsov" + "/projectile/v" version "/projectile.el")) + (file-name (string-append "projectile-" version ".el")) + (sha256 + (base32 + "1pc6xb61hzxzc5hkqkli1ab0s7wz0rfgx4kcn9y30ksvhw18smbz")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-pkg-info" ,emacs-pkg-info))) + (home-page "https://github.com/bbatsov/projectile") + (synopsis "Manage and navigate projects in Emacs easily") + (description + "This library provides easy project management and navigation. The +concept of a project is pretty basic - just a folder containing special file. +Currently git, mercurial and bazaar repos are considered projects by default. +If you want to mark a folder manually as a project just create an empty +.projectile file in it.") + (license license:gpl3+))) From 4aea1e016035671d2be1f13f94849a9f5fd2c4d8 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 31 May 2016 15:42:02 -0400 Subject: [PATCH 233/277] gnu: Add emacs-elfeed. * gnu/pacakges/emacs.scm (emacs-elfeed): New variable. --- gnu/packages/emacs.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 1b54439bc7..04dc7596c6 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1887,3 +1887,23 @@ Currently git, mercurial and bazaar repos are considered projects by default. If you want to mark a folder manually as a project just create an empty .projectile file in it.") (license license:gpl3+))) + +(define-public emacs-elfeed + (package + (name "emacs-elfeed") + (version "1.4.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/skeeto/elfeed/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0i75r8x9ypbfjlnym04h16ikcrlks86p7wsgawrx7mh1lk4inp89")))) + (build-system emacs-build-system) + (home-page "https://github.com/skeeto/elfeed") + (synopsis "Atom/RSS feed reader for Emacs") + (description + "Elfeed is an extensible web feed reader for Emacs, supporting both Atom +and RSS, with a user interface inspired by notmuch.") + (license license:gpl3+))) From c86f0207cee9da871c05920b243f92ae369f8505 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 31 May 2016 16:30:03 -0400 Subject: [PATCH 234/277] gnu: Add emacs-rainbow-delimiters. * gnu/packages/emacs.scm (emacs-rainbow-delimiters): New variable. --- gnu/packages/emacs.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 04dc7596c6..54885f4047 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1907,3 +1907,27 @@ If you want to mark a folder manually as a project just create an empty "Elfeed is an extensible web feed reader for Emacs, supporting both Atom and RSS, with a user interface inspired by notmuch.") (license license:gpl3+))) + +(define-public emacs-rainbow-delimiters + (package + (name "emacs-rainbow-delimiters") + (version "2.1.3") + (source (origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/Fanael" + "/rainbow-delimiters/" version + "/rainbow-delimiters.el")) + (file-name (string-append "rainbow-delimiters-" version ".el")) + (sha256 + (base32 + "1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck")))) + (build-system emacs-build-system) + (home-page "https://github.com/Fanael/rainbow-delimiters") + (synopsis "Highlight brackets according to their depth") + (description + "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which +highlights parentheses, brackets, and braces according to their depth. Each +successive level is highlighted in a different color, making it easy to spot +matching delimiters, orient yourself in the code, and tell which statements +are at a given level.") + (license license:gpl3+))) From 65b49ae702e4da3826355cb2f6c58eab97c15cbb Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 31 May 2016 16:30:44 -0400 Subject: [PATCH 235/277] gnu: Add emacs-ido-completing-read+. * gnu/packages/emacs.scm (emacs-ido-completing-read+): New variable. --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 54885f4047..ee875eff27 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1931,3 +1931,26 @@ successive level is highlighted in a different color, making it easy to spot matching delimiters, orient yourself in the code, and tell which statements are at a given level.") (license license:gpl3+))) + +(define-public emacs-ido-completing-read+ + (package + (name "emacs-ido-completing-read+") + (version "3.12") + (source (origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com" + "/DarwinAwardWinner/ido-ubiquitous/v" + version "/ido-completing-read+.el")) + (file-name (string-append "ido-completing-read+-" version ".el")) + (sha256 + (base32 + "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf")))) + (build-system emacs-build-system) + (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous") + (synopsis "Replacement for completing-read using ido") + (description + "The ido-completing-read+ function is a wrapper for ido-completing-read. +Importantly, it detects edge cases that ordinary ido cannot handle and either +adjusts them so ido can handle them, or else simply falls back to the standard +Emacs completion function instead.") + (license license:gpl3+))) From 529fe99204a8418f52d0c220430c727fc1c7a0cb Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 31 May 2016 16:31:14 -0400 Subject: [PATCH 236/277] gnu: Add emacs-ido-ubiquitous. * gnu/packages/emacs.scm (emacs-ido-ubiquitous): New variable. --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index ee875eff27..0ea317a06f 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1954,3 +1954,26 @@ Importantly, it detects edge cases that ordinary ido cannot handle and either adjusts them so ido can handle them, or else simply falls back to the standard Emacs completion function instead.") (license license:gpl3+))) + +(define-public emacs-ido-ubiquitous + (package + (name "emacs-ido-ubiquitous") + (version "3.12") + (source (origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com" + "/DarwinAwardWinner/ido-ubiquitous/v" + version "/ido-ubiquitous.el")) + (file-name (string-append "ido-ubiquitous-" version ".el")) + (sha256 + (base32 + "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+))) + (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous") + (synopsis "Use ido (nearly) everywhere") + (description + "Ido-ubiquitous enables ido-style completion for almost every function +that uses the standard completion function completing-read.") + (license license:gpl3+))) From 63de1231e2f0ec92685decba022bd35404619171 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 31 May 2016 16:39:47 -0400 Subject: [PATCH 237/277] gnu: Add emacs-yaml-mode. * gnu/packages/emacs.scm (emacs-yaml-mode): New variable. --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 0ea317a06f..bfa46c45e7 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1977,3 +1977,26 @@ Emacs completion function instead.") "Ido-ubiquitous enables ido-style completion for almost every function that uses the standard completion function completing-read.") (license license:gpl3+))) + +(define-public emacs-yaml-mode + (package + (name "emacs-yaml-mode") + (version "0.0.12") + (source (origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/yoshiki" + "/yaml-mode/v" version "/yaml-mode.el")) + (file-name (string-append "yaml-mode-" version ".el")) + (sha256 + (base32 + "05zbb7l5j0jhn1z65lhy1f6yf77rd3rsf5ayvwm5a6dfkhr9zwnm")))) + (build-system emacs-build-system) + (home-page "https://github.com/yoshiki/yaml-mode") + (synopsis "Major mode for editing YAML files") + (description + "Yaml-mode is an Emacs major mode for editing files in the YAML data +serialization format. It was initially developed by Yoshiki Kurihara and many +features were added by Marshall Vandegrift. As YAML and Python share the fact +that indentation determines structure, this mode provides indentation and +indentation command behavior very similar to that of python-mode.") + (license license:gpl3+))) From 7529c883af70540fd0086763b795605e79576797 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 31 May 2016 16:51:40 -0400 Subject: [PATCH 238/277] gnu: Add emacs-web-mode. * gnu/packages/emacs.scm (emacs-web-mode): New variable. --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index bfa46c45e7..95e6bea064 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2000,3 +2000,26 @@ features were added by Marshall Vandegrift. As YAML and Python share the fact that indentation determines structure, this mode provides indentation and indentation command behavior very similar to that of python-mode.") (license license:gpl3+))) + +(define-public emacs-web-mode + (package + (name "emacs-web-mode") + (version "14") + (source (origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/fxbois" + "/web-mode/v" version "/web-mode.el")) + (file-name (string-append "web-mode-" version ".el")) + (sha256 + (base32 + "086hik5fmxg3kx74qmransx9cz961qd22d4m6ah2dw6cwaj1s3s5")))) + (build-system emacs-build-system) + (synopsis "Major mode for editing web templates") + (description "Web-mode is an Emacs major mode for editing web templates +aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by +client/server side engines). Web-mode is compatible with many template +engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker, +Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template, +Dust.js, React/JSX, Angularjs, ejs, etc.") + (home-page "http://web-mode.org/") + (license license:gpl3+))) From e08580c5c313b0028501a5f8acc1c72045e2fb20 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 3 Jun 2016 11:42:17 -0400 Subject: [PATCH 239/277] gnu: emacs-yaml-mode: Fix source hash. * gnu/packages/emacs.scm (emacs-yaml-mode)[source]: Fix hash. --- gnu/packages/emacs.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 95e6bea064..0ce34b9001 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1989,7 +1989,7 @@ that uses the standard completion function completing-read.") (file-name (string-append "yaml-mode-" version ".el")) (sha256 (base32 - "05zbb7l5j0jhn1z65lhy1f6yf77rd3rsf5ayvwm5a6dfkhr9zwnm")))) + "17wq433ycli0qx4gdhgrmb392qblm6y2dwcyn38j5ja1lasfb0ax")))) (build-system emacs-build-system) (home-page "https://github.com/yoshiki/yaml-mode") (synopsis "Major mode for editing YAML files") From d0533afa3b41ae51259e4e364d6f2630fbcceba9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 3 Jun 2016 02:38:16 -0400 Subject: [PATCH 240/277] gnu: certbot, python-acme: Update to 0.8.0. These packages should be updated together. * gnu/packages/tls.scm (certbot): Update to 0.8.0. [arguments]: Remove substitution in 'docs' phase. (python-acme, python-acme): Update to 0.8.0. --- gnu/packages/tls.scm | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 27addbe0f9..0b0a2a2d37 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -358,16 +358,16 @@ security, and applying best practice development processes.") (define-public python-acme (package (name "python-acme") - (version "0.7.0") + (version "0.8.0") (source (origin (method url-fetch) (uri (string-append "https://pypi.python.org/packages/" - "d9/8c/69dfff1020cd05d00cb44879db401ea3aca13eeed56cc72bea5ebe118ee5/" + "45/17/6fdcede92c7fe4d9c1ab9d7513ded5aa969a0b9c90f3d7b3b074cd37e898/" "acme-" version ".tar.gz")) (sha256 (base32 - "1fgf32zpkwp5nwiyay4vagyiqnpw325fxga1nwk20h3qg6aa2xcz")))) + "1nk48p0pi6xmqpsqjvw6xkx5vv4vl33yzq67fpr33ci8fra6pa6z")))) (build-system python-build-system) (arguments `(#:phases @@ -420,16 +420,16 @@ security, and applying best practice development processes.") (define-public certbot (package (name "certbot") - (version "0.7.0") + (version "0.8.0") (source (origin (method url-fetch) (uri (string-append "https://pypi.python.org/packages/" - "d8/08/dde6bc98204c79bdefe0c1ae3a08c44f4f319197b0fc34c109a9f6a6df64/" + "da/b8/fa6d7f0f8c0d37944ca4a1940b1e933fc6673498995a45db03c034bb11dd/" name "-" version ".tar.gz")) (sha256 (base32 - "127ykqsw39h7gvlax0zhv9x6sfwp6hps7lq2d20apl8nbvbq6l5d")))) + "052338jdiy8dniskqxm2hzbca084ms0xqnjicshl6cpvhjs70g1w")))) (build-system python-build-system) (arguments `(#:python ,python-2 @@ -441,10 +441,6 @@ security, and applying best practice development processes.") (man1 (string-append out "/share/man/man1")) (man7 (string-append out "/share/man/man7")) (info (string-append out "/info"))) - ;; Fix path. - ;; https://github.com/certbot/certbot/pull/3102 - (substitute* "docs/man/certbot.rst" - (("cli-help.txt") "../cli-help.txt")) (and (zero? (system* "make" "-C" "docs" "man" "info")) (install-file "docs/_build/texinfo/Certbot.info" info) From b37b854e2d65433ec1809ed96d2ab4a652f3fca3 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 1 Jun 2016 07:57:11 +0200 Subject: [PATCH 241/277] gnu: wxwidgets: Enable support for "advanced" regular expressions. * gnu/packages/wxwidgets.scm (wxwidgets)[arguments]: Enable support for "advanced" regular expressions. Signed-off-by: Leo Famulari --- gnu/packages/wxwidgets.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 2c4a26aeac..3231e3d48d 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -63,7 +63,7 @@ `(("pkg-config" ,pkg-config))) (arguments '(#:configure-flags - '("--with-regex=sys" "--with-libmspack" + '("--with-regex" "--with-libmspack" "--with-sdl" "--enable-webview" "--enable-webkit" From 1c5ee417f4c05e5937aae0a34c60d574bba197a0 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 1 Jun 2016 22:01:36 -0400 Subject: [PATCH 242/277] gnu: imagemagick: Update to 6.9.4-7. * gnu/packages/patches/imagemagick-CVE-2016-5118.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.4-7. [source]: Remove patch. --- gnu/local.mk | 1 - gnu/packages/imagemagick.scm | 5 ++-- .../patches/imagemagick-CVE-2016-5118.patch | 29 ------------------- 3 files changed, 2 insertions(+), 33 deletions(-) delete mode 100644 gnu/packages/patches/imagemagick-CVE-2016-5118.patch diff --git a/gnu/local.mk b/gnu/local.mk index 59aaccc9b5..1cc4c7d809 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -553,7 +553,6 @@ dist_patch_DATA = \ %D%/packages/patches/icu4c-CVE-2015-4760.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ - %D%/packages/patches/imagemagick-CVE-2016-5118.patch \ %D%/packages/patches/inkscape-drop-wait-for-targets.patch \ %D%/packages/patches/irrlicht-mesa-10.patch \ %D%/packages/patches/jansson-CVE-2016-4425.patch \ diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 1549497483..5231200919 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -41,15 +41,14 @@ (define-public imagemagick (package (name "imagemagick") - (version "6.9.4-5") + (version "6.9.4-7") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) - (patches (search-patches "imagemagick-CVE-2016-5118.patch")) (sha256 (base32 - "0niwa7ci50865x1h6qffz1q6i2ph2l5ym7bhcg5kdnvi4f75p9ir")))) + "11jcbc9phx37m7ra4v3qsfa2iqh3srsvxplxz38h911jvgfchkzm")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths") diff --git a/gnu/packages/patches/imagemagick-CVE-2016-5118.patch b/gnu/packages/patches/imagemagick-CVE-2016-5118.patch deleted file mode 100644 index 0df4ce57ca..0000000000 --- a/gnu/packages/patches/imagemagick-CVE-2016-5118.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c0c5c9fc7271fd141531b0bdb55b7f7ff5afc481 Mon Sep 17 00:00:00 2001 -From: Leo Famulari -Date: Tue, 31 May 2016 13:06:10 -0400 -Subject: [PATCH] Fix CVE-2016-5118. - -This is the temporary fix suggested by upstream: -https://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=29803#p134039 ---- - magick/magick-baseconfig.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/magick/magick-baseconfig.h b/magick/magick-baseconfig.h -index d320f2a..c9cce82 100644 ---- a/magick/magick-baseconfig.h -+++ b/magick/magick-baseconfig.h -@@ -519,7 +519,10 @@ - - /* Define to 1 if you have the `popen' function. */ - #ifndef MAGICKCORE_HAVE_POPEN -+/* Temporary mitigation for CVE-2016-5118 (popen() shell vulnerability via -+ * filename) - #define MAGICKCORE_HAVE_POPEN 1 -+*/ - #endif - - /* Define to 1 if you have the `posix_fadvise' function. */ --- -2.8.3 - From 90322fdbe3c60a039224ceded296fc772f4b642e Mon Sep 17 00:00:00 2001 From: Matthew Jordan Date: Tue, 31 May 2016 07:26:24 -0400 Subject: [PATCH 243/277] gnu: Add ruby-debug-inspector. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/rails.scm: New file. --- gnu/local.mk | 1 + gnu/packages/rails.scm | 57 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 gnu/packages/rails.scm diff --git a/gnu/local.mk b/gnu/local.mk index 1cc4c7d809..c3a3ea47b5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -285,6 +285,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/qemu.scm \ %D%/packages/qt.scm \ %D%/packages/ragel.scm \ + %D%/packages/rails.scm \ %D%/packages/ratpoison.scm \ %D%/packages/rc.scm \ %D%/packages/rdesktop.scm \ diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm new file mode 100644 index 0000000000..83abc65237 --- /dev/null +++ b/gnu/packages/rails.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Matthew Jordan +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages rails) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (gnu packages ruby) + #:use-module (guix build-system ruby)) + +(define-public ruby-debug-inspector + (package + (name "ruby-debug-inspector") + (version "0.0.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "debug_inspector" version)) + (sha256 + (base32 + "109761g00dbrw5q0dfnbqg8blfm699z4jj70l4zrgf9mzn7ii50m")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (and + (zero? (system* "rake" "compile")) + (zero? + (system* + "ruby" "-Ilib" "-e" + (string-append + "require 'debug_inspector'; RubyVM::DebugInspector." + "open{|dc| p dc.backtrace_locations}"))))))))) + (synopsis "Ruby wrapper for the MRI 2.0 debug_inspector API") + (description + "This package provides a Ruby wrapper for the MRI 2.0 debug_inspector +API.") + (home-page + "https://github.com/banister/debug_inspector") + (license license:expat))) From 3aeb6e1d1acfeeae61739fbaeeb6e94848557436 Mon Sep 17 00:00:00 2001 From: Matthew Jordan Date: Tue, 31 May 2016 07:29:24 -0400 Subject: [PATCH 244/277] gnu: Add ruby-spring. * gnu/packages/rails.scm (ruby-spring): New variable. --- gnu/packages/rails.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm index 83abc65237..e1e14f5b70 100644 --- a/gnu/packages/rails.scm +++ b/gnu/packages/rails.scm @@ -23,6 +23,44 @@ #:use-module (gnu packages ruby) #:use-module (guix build-system ruby)) +(define-public ruby-spring + (package + (name "ruby-spring") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://github.com/rails/spring/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0czc4mkwfngcqmna49a0l98f6wlhdq2i8gwr63lrmk90d9k25x1n")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "test:unit" + #:phases + (modify-phases %standard-phases + (add-before 'check 'remove-bump + (lambda _ + (substitute* "spring.gemspec" + (("gem.add_development_dependency 'bump'") "")) + (substitute* "Rakefile" + (("require \\\"bump/tasks\\\"") "")) + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-activesupport" ,ruby-activesupport))) + (synopsis "Ruby on Rails application preloader") + (description + "Spring is a Ruby on Rails application preloader. It speeds up +development by keeping your application running in the background so the +application does need to boot it every time you run a test, rake task or +migration.") + (home-page "https://github.com/rails/spring") + (license license:expat))) + (define-public ruby-debug-inspector (package (name "ruby-debug-inspector") From 6ac0a0fbe72a467cbf5d871c5a22b1f67fb80d58 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 4 Jun 2016 09:28:54 +1000 Subject: [PATCH 245/277] gnu: diamond: Update to 0.8.5. * gnu/packages/bioinformatics.scm (diamond): Update to 0.8.5. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 94ae4455b8..22bd81c75b 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1482,7 +1482,7 @@ identify enrichments with functional annotations of the genome.") (define-public diamond (package (name "diamond") - (version "0.8.3") + (version "0.8.5") (source (origin (method url-fetch) (uri (string-append @@ -1491,7 +1491,7 @@ identify enrichments with functional annotations of the genome.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0z9sm46bivz0ghwg8kajizgiigv8dnz4w7cyzsg8wcsm9h2z6zyc")))) + "18zx8k3axnsrg016kikl8xs1ifnjmj36dk1sv3fq1jgpg9j9584b")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no "check" target From 85de436530b81ecdcd6fe1a079d734340c8170b9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 3 Jun 2016 23:11:45 -0400 Subject: [PATCH 246/277] gnu: smartmontools: Update to 6.5. * gnu/packages/admin.scm (smartmontools): Update to 6.5. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 45e973c2f0..abfef36660 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1253,7 +1253,7 @@ various ways that may be running with too much privilege.") (define-public smartmontools (package (name "smartmontools") - (version "6.3") + (version "6.5") (source (origin (method url-fetch) (uri (string-append @@ -1261,7 +1261,7 @@ various ways that may be running with too much privilege.") version "/smartmontools-" version ".tar.gz")) (sha256 (base32 - "06gy71jh2d3gcfmlbbrsqw7215knkfq59q3j6qdxfrar39fhcxx7")))) + "1g25r6sx85b5lay5n6sbnqv05qxzj6xsafsp93hnrg1h044bps49")))) (build-system gnu-build-system) (inputs `(("libcap-ng" ,libcap-ng))) (home-page "http://www.smartmontools.org/") From 68b9d2422cfceef459e8bee6833e19ff5608d3f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 4 Jun 2016 14:40:50 +0800 Subject: [PATCH 247/277] gnu: Add python-greenlet and python2-greenlet. * gnu/packages/python.scm (python-greenlet, python2-greenlet): New variables. --- gnu/packages/python.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 332018321f..2abf6bedce 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8916,3 +8916,28 @@ provides support for parsing, splitting and formatting SQL statements.") (define-public python2-sqlparse (package-with-python2 python-sqlparse)) + +(define-public python-greenlet + (package + (name "python-greenlet") + (version "0.4.9") + (source (origin + (method url-fetch) + (uri (pypi-uri "greenlet" version)) + (sha256 + (base32 + "04h0m54dyqg49vyarq26mry6kbivnpl47rnmmrk9qn8wpfxviybr")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "https://greenlet.readthedocs.io/") + (synopsis "Lightweight in-process concurrent programming") + (description + "Greenlet package is a spin-off of Stackless, a version of CPython +that supports micro-threads called \"tasklets\". Tasklets run +pseudo-concurrently (typically in a single or a few OS-level threads) and +are synchronized with data exchanges on \"channels\".") + (license (list psfl license:expat)))) + +(define-public python2-greenlet + (package-with-python2 python-greenlet)) From d79a343b91202a927f76a850be0e3db527960a21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 4 Jun 2016 14:41:42 +0800 Subject: [PATCH 248/277] gnu: Add python-gevent and python2-gevent. * gnu/packages/python.scm (python-gevent, python2-gevent): New variables. --- gnu/packages/python.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2abf6bedce..456bf3b30e 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -45,6 +45,7 @@ #:use-module ((guix licenses) #:select (expat zlib) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages algebra) + #:use-module (gnu packages adns) #:use-module (gnu packages attr) #:use-module (gnu packages backup) #:use-module (gnu packages compression) @@ -58,6 +59,7 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) + #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) #:use-module (gnu packages linux) #:use-module (gnu packages maths) @@ -8941,3 +8943,42 @@ are synchronized with data exchanges on \"channels\".") (define-public python2-greenlet (package-with-python2 python-greenlet)) + +(define-public python-gevent + (package + (name "python-gevent") + (version "1.1.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "gevent" version)) + (sha256 + (base32 + "1smf3kvidpdiyi2c81alal74p2zm0clrm6xbyy6y1k9a3f2vkrbf")) + (modules '((guix build utils))) + (snippet + '(begin + ;; unbunding libev and c-ares + (for-each delete-file-recursively '("libev" "c-ares")) + ;; fixing testsuite + (call-with-output-file "greentest/__init__.py" noop) + (substitute* "greentest/testrunner.py" + (("import util") "from . import util") + (("from util import log") "from .util import log")))))) + (build-system python-build-system) + (propagated-inputs + `(("python-greenlet" ,python-greenlet))) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-six" ,python-six))) + (inputs + `(("c-ares" ,c-ares) + ("libev" ,libev))) + (home-page "http://www.gevent.org/") + (synopsis "Coroutine-based network library") + (description + "gevent is a coroutine-based Python networking library that uses greenlet +to provide a high-level synchronous API on top of the libev event loop.") + (license license:expat))) + +(define-public python2-gevent + (package-with-python2 python-gevent)) From da3aeeb62bba0b545baf7beac641615080f9e68d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 4 Jun 2016 16:05:07 +0800 Subject: [PATCH 249/277] gnu: Add python-twisted and python2-twisted. * gnu/packages/python.scm (python-twisted, python2-twisted): New variables. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 456bf3b30e..dfbf2cc916 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8982,3 +8982,30 @@ to provide a high-level synchronous API on top of the libev event loop.") (define-public python2-gevent (package-with-python2 python-gevent)) + +(define-public python-twisted + (package + (name "python-twisted") + (version "16.2.0") + (source (origin + (method url-fetch) + (uri (list (pypi-uri "Twisted" version ".tar.bz2") ; 404 + (string-append + "https://pypi.io/packages/source/T/Twisted/" + "Twisted-" version ".tar.bz2"))) + (sha256 + (base32 + "0ydxrp9myw1mvsz3qfzx5579y5llmqa82pxvqchgp5syczffi450")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-zope-interface" ,python-zope-interface))) + (home-page "https://twistedmatrix.com/") + (synopsis "Asynchronous networking framework written in Python") + (description + "Twisted is an extensible framework for Python programming, with special +focus on event-based network programming and multiprotocol integration.") + (license license:expat))) + +(define-public python2-twisted + (package-with-python2 python-twisted)) From a88825d9653cab7ba4620f8ccec84e12810f1b4b Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sat, 28 May 2016 23:34:20 +0300 Subject: [PATCH 250/277] gnu: lirc: Update to 0.9.4. * gnu/packages/lirc.scm (lirc): Update to 0.9.4. [arguments]: Add 'patch-lirc-make-devinput' and 'patch-doc/Makefile.in' phases. [inputs]: Add 'libusb-compat' and 'linux-libre-headers'. --- gnu/packages/lirc.scm | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/gnu/packages/lirc.scm b/gnu/packages/lirc.scm index b077825529..6b1eee3ef2 100644 --- a/gnu/packages/lirc.scm +++ b/gnu/packages/lirc.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Alex Kost +;;; Copyright © 2015, 2016 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +23,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -31,23 +32,46 @@ (define-public lirc (package (name "lirc") - (version "0.9.3") + (version "0.9.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/lirc/lirc-" version ".tar.bz2")) (sha256 (base32 - "19c6ldjsdnk1md66q3nb035ja1xj217k8iabhxpsb8rs10a6kwi6")) + "1l2xzhnm4hrla51ik09hcafki0y8wnww7svfm7j63zbl2rssc66x")) (patches (search-patches "lirc-localstatedir.patch")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--localstatedir=/var"))) + '(#:configure-flags '("--localstatedir=/var") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-lirc-make-devinput + (lambda* (#:key inputs #:allow-other-keys) + ;; 'lirc-make-devinput' script assumes that linux headers + ;; are placed in "/usr/...". + (let ((headers (assoc-ref inputs "linux-headers"))) + (substitute* "tools/lirc-make-devinput" + (("/usr/include") (string-append headers "/include")))) + #t)) + (add-after 'unpack 'patch-doc/Makefile.in + (lambda _ + ;; Lirc wants to install several images and a useless html page + ;; to "$(localstatedir)/lib/lirc/". This makes 'install' phase + ;; fail as localstatedir is "/var", so do not install these + ;; files there (the same images are installed in + ;; "share/doc/lirc/images/" anyway). + (substitute* "doc/Makefile.in" + (("^vardocs_DATA =.*") "vardocs_DATA =\n") + (("^varimage_DATA =.*") "varimage_DATA =\n")) + #t))))) (native-inputs `(("pkg-config" ,pkg-config) ("libxslt" ,libxslt))) (inputs `(("libx11" ,libx11) + ("libusb-compat" ,libusb-compat) + ("linux-headers" ,linux-libre-headers) ("alsa-lib" ,alsa-lib) ("python" ,python))) (home-page "http://www.lirc.org/") From ae60900199d8b19155a3ccf52a957148e974454c Mon Sep 17 00:00:00 2001 From: Matthew Jordan Date: Wed, 18 May 2016 17:39:45 -0400 Subject: [PATCH 251/277] gnu: Add emacs-helm. * gnu/packages/emacs.scm (emacs-helm): New variable. Signed-off-by: Alex Kost --- gnu/packages/emacs.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 0ce34b9001..797041f05d 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2016 humanitiesNerd ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 David Thompson +;;; Copyright © 2016 Matthew Jordan ;;; ;;; This file is part of GNU Guix. ;;; @@ -2023,3 +2024,32 @@ Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template, Dust.js, React/JSX, Angularjs, ejs, etc.") (home-page "http://web-mode.org/") (license license:gpl3+))) + +(define-public emacs-helm + (package + (name "emacs-helm") + (version "1.9.6") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/" name "/helm/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0fc897rwf1fm2m7jrsikkgcyzhngfcysxfmzchpwzfj6v9sb5rl9")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-async" ,emacs-async) + ("emacs-popup" ,emacs-popup))) + (home-page "https://emacs-helm.github.io/helm/") + (synopsis "Incremental completion and selection narrowing +framework for Emacs") + (description "Helm is incremental completion and selection narrowing +framework for Emacs. It will help steer you in the right direction when +you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork +of @code{anything.el} originally written by Tamas Patrovic and can be +considered to be its successor. Helm sets out to clean up the legacy code in +@code{anything.el} and provide a cleaner, leaner and more modular tool, that's +not tied in the trap of backward compatibility.") + (license license:gpl3+))) From 7868000fe4fceb6036fbf80cfad13cfe33c84992 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Thu, 2 Jun 2016 20:46:32 +0200 Subject: [PATCH 252/277] gnu: Add qtbase. * gnu/packages/qt.scm (qtbase): New variable. Co-authored by: Efraim Flashner --- gnu/packages/qt.scm | 135 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 134 insertions(+), 1 deletion(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 47720384c2..b1f72fd7e1 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -20,7 +20,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages qt) - #:use-module ((guix licenses) #:select (bsd-3 gpl2 gpl3 lgpl2.1 lgpl2.1+ x11-style)) + #:use-module ((guix licenses) #:select (bsd-3 gpl2 gpl3 lgpl2.1 lgpl2.1+ lgpl3 x11-style)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build utils) @@ -298,6 +298,139 @@ developers using C++ or QML, a CSS & JavaScript like language.") (delete-file-recursively olddoc) #t)))))))) +(define-public qtbase + (package + (name "qtbase") + (version "5.6.0") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" name "-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "0ynnvcs5idivzldsq5ciqg9myg82b3l3906l4vjv54lyamf8mykf")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove one of the two bundled harfbuzz copies in addition + ;; to passing "-system-harfbuzz". + (delete-file-recursively "src/3rdparty/harfbuzz-ng") + ;; Remove the bundled sqlite copy in addition to + ;; passing "-system-sqlite". + (delete-file-recursively "src/3rdparty/sqlite"))))) + (build-system gnu-build-system) + (propagated-inputs + `(("mesa" ,mesa))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("cups" ,cups) + ("dbus" ,dbus) + ("expat" ,expat) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("glib" ,glib) + ("harfbuzz" ,harfbuzz) + ("icu4c" ,icu4c) + ("libjpeg" ,libjpeg) + ("libmng" ,libmng) + ("libpng" ,libpng) + ("libx11" ,libx11) + ("libxcomposite" ,libxcomposite) + ("libxcursor" ,libxcursor) + ("libxfixes" ,libxfixes) + ("libxi" ,libxi) + ("libxinerama" ,libxinerama) + ("libxkbcommon" ,libxkbcommon) + ("libxml2" ,libxml2) + ("libxrandr" ,libxrandr) + ("libxrender" ,libxrender) + ("libxslt" ,libxslt) + ("libxtst" ,libxtst) + ("mtdev" ,mtdev) + ("mysql" ,mysql) + ("nss" ,nss) + ("openssl" ,openssl) + ("pcre" ,pcre) + ("postgresql" ,postgresql) + ("pulseaudio" ,pulseaudio) + ("sqlite" ,sqlite) + ("unixodbc" ,unixodbc) + ("xcb-util" ,xcb-util) + ("xcb-util-image" ,xcb-util-image) + ("xcb-util-keysyms" ,xcb-util-keysyms) + ("xcb-util-renderutil" ,xcb-util-renderutil) + ("xcb-util-wm" ,xcb-util-wm) + ("zlib" ,zlib))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("gperf" ,gperf) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python" ,python-2) + ("ruby" ,ruby) + ("which" ,(@ (gnu packages base) which)))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'configure 'patch-bin-sh + (lambda _ + (substitute* '("config.status" + "configure" + "mkspecs/features/qt_functions.prf" + "qmake/library/qmakebuiltins.cpp") + (("/bin/sh") (which "sh"))) + #t)) + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "configure" + (("/bin/pwd") (which "pwd"))) + (substitute* "src/corelib/global/global.pri" + (("/bin/ls") (which "ls"))) + ;; do not pass "--enable-fast-install", which makes the + ;; configure process fail + (zero? (system* + "./configure" + "-verbose" + "-prefix" out + "-opensource" + "-confirm-license" + ;; Do not build examples; if desired, these could go + ;; into a separate output, but for the time being, we + ;; prefer to save the space and build time. + "-nomake" "examples" + ;; Most "-system-..." are automatic, but some use + ;; the bundled copy by default. + "-system-sqlite" + "-system-harfbuzz" + ;; explicitly link with openssl instead of dlopening it + "-openssl-linked" + ;; explicitly link with dbus instead of dlopening it + "-dbus-linked" + ;; drop special machine instructions not supported + ;; on all instances of the target + ,@(if (string-prefix? "x86_64" + (or (%current-target-system) + (%current-system))) + '() + '("-no-sse2")) + "-no-sse3" + "-no-ssse3" + "-no-sse4.1" + "-no-sse4.2" + "-no-avx" + "-no-avx2" + "-no-mips_dsp" + "-no-mips_dspr2")))))))) + (home-page "https://www.qt.io/") + (synopsis "Cross-platform GUI library") + (description "Qt is a cross-platform application and UI framework for +developers using C++ or QML, a CSS & JavaScript like language.") + (license (list lgpl2.1 lgpl3)))) + (define-public qjson (package (name "qjson") From 1713c37f835a0566a47d76d2379b2d0b12c0b548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 4 Jun 2016 22:38:11 +0200 Subject: [PATCH 253/277] doc: Mention the 'ip' command. Suggested by Alex Kost . * doc/guix.texi (Preparing for Installation): Mention 'ip'. --- doc/guix.texi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index c8c755580a..12dd3541f0 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6010,6 +6010,13 @@ Run the following command see what your network interfaces are called: ifconfig -a @end example +@noindent +@dots{} or, using the GNU/Linux-specific @command{ip} command: + +@example +ip a +@end example + @c http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20 Wired interfaces have a name starting with @samp{e}; for example, the interface corresponding to the first on-board Ethernet controller is From 698bd29799089c84bc2aa2c5f40e61eba83dd0b8 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 2 Jun 2016 13:29:52 +0200 Subject: [PATCH 254/277] gnu: Use full SHA1 commit ids. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/bioinformatics.scm (pbtranscript-tofu, mosaik, smithlab-cpp, piranha): Use full SHA1 commit ids. * gnu/packages/ci.scm (hydra): Likewise. * gnu/packages/compression.scm (sfarkxtc): Likewise. * gnu/packages/emacs.scm (emacs-ob-ipython): Likewise. * gnu/packages/games.scm (mars, emulation-station): Likewise. * gnu/packages/gnunet.scm (guile-gnunet): Likewise. * gnu/packages/music.scm (non-sequencer): Likewise. * gnu/packages/version-control.scm (git-flow, git-test-sequence): Likewise. * gnu/packages/xorg.scm (xf86-video-intel): Likewise. Signed-off-by: Ludovic Courtès --- gnu/packages/bioinformatics.scm | 12 +++---- gnu/packages/ci.scm | 4 +-- gnu/packages/compression.scm | 7 ++-- gnu/packages/emacs.scm | 2 +- gnu/packages/games.scm | 59 ++++++++++++++++---------------- gnu/packages/gnunet.scm | 4 +-- gnu/packages/music.scm | 4 +-- gnu/packages/version-control.scm | 6 ++-- gnu/packages/xorg.scm | 4 +-- 9 files changed, 52 insertions(+), 50 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 22bd81c75b..6a90aa9456 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2670,10 +2670,10 @@ the phenotype as it models the data.") (license license:asl2.0))) (define-public pbtranscript-tofu - (let ((commit "8f5467fe6")) + (let ((commit "8f5467fe6a4472bcfb4226c8720993c8507adfe4")) (package (name "pbtranscript-tofu") - (version (string-append "2.2.3." commit)) + (version (string-append "2.2.3." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference @@ -3009,7 +3009,7 @@ viewer.") (delete 'configure)))))))) (define-public mosaik - (let ((commit "5c25216d")) + (let ((commit "5c25216d3522d6a33e53875cd76a6d65001e4e67")) (package (name "mosaik") (version "2.2.30") @@ -3259,10 +3259,10 @@ subsequent visualization, annotation and storage of results.") (define-public smithlab-cpp (let ((revision "1") - (commit "728a097")) + (commit "728a097bec88c6f4b8528b685932049e660eff2e")) (package (name "smithlab-cpp") - (version (string-append "0." revision "." commit)) + (version (string-append "0." revision "." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference @@ -5169,7 +5169,7 @@ libraries for systems that do not have these available via other means.") ("samtools" ,samtools-0.1) ("gsl" ,gsl) ("smithlab-cpp" - ,(let ((commit "3723e2d")) + ,(let ((commit "3723e2db438c51501d0423429ff396c3035ba46a")) (origin (method git-fetch) (uri (git-reference diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index be18ebd29f..e0ff873b3e 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -39,10 +39,10 @@ #:use-module (guix build-system gnu)) (define-public hydra - (let ((commit "4c0e3e4")) + (let ((commit "4c0e3e47034545ad3e9e86dd069138bcebb8ccee")) (package (name "hydra") - (version (string-append "20150407." commit)) + (version (string-append "20150407." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 5746ca3e03..dd107487fb 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -443,16 +443,17 @@ with the sfArk algorithm.") (license license:gpl3+))) (define-public sfarkxtc + (let ((commit "b5e0a2ba3921f019d74d4b92bd31c36dd19d2cf1")) (package (name "sfarkxtc") - (version "b5e0a2ba39") + (version (string-take commit 10)) (source (origin ;; There are no release tarballs, so we just fetch the latest ;; commit at this time. (method git-fetch) (uri (git-reference (url "https://github.com/raboof/sfarkxtc.git") - (commit version))) + (commit commit))) (sha256 (base32 "0f5x6i46qfl6ry21s7g2p4sd4b2r1g4fb03yqi2vv4kq3saryhvj")))) @@ -473,7 +474,7 @@ with the sfArk algorithm.") (synopsis "Basic sfArk decompressor") (description "SfArk extractor converts SoundFonts in the compressed legacy sfArk file format to the uncompressed sf2 format.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public libmspack (package diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 797041f05d..07b4255adb 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1238,7 +1238,7 @@ files and directories.") (source (origin (method git-fetch) (uri (git-reference - (commit "8807064693") + (commit "880706469338ab59b5bb7dbe8460016f89755364") (url "https://github.com/gregsexton/ob-ipython.git"))) (sha256 (base32 diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index e552d09efa..368f09632c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -590,11 +590,11 @@ for common mesh file formats, and collision detection.") ;; The latest release on SourceForge relies on an unreleased version of SFML ;; with a different API, so we take the latest version from the official ;; repository on Github. - (let ((commit "c855d04409") + (let ((commit "c855d044094a1d92317e38935d81ba938946132e") (revision "1")) (package (name "mars") - (version (string-append "0.7.5." revision "." commit )) + (version (string-append "0.7.5." revision "." (string-take commit 7) )) (source (origin (method git-fetch) (uri (git-reference @@ -1833,36 +1833,37 @@ emulation community. It provides highly accurate emulation.") (license license:gpl2+))) (define-public emulation-station - (package - (name "emulation-station") - (version "2.0.1") - (source (origin - (method git-fetch) ; no tarball available - (uri (git-reference - (url "https://github.com/Aloshi/EmulationStation.git") - (commit "646bede"))) ; no version tag - (sha256 - (base32 - "0cm0sq2wri2l9cvab1l0g02za59q7klj0h3p028vr96n6njj4w9v")))) - (build-system cmake-build-system) - (arguments - '(#:tests? #f)) ; no tests - (inputs - `(("alsa-lib" ,alsa-lib) - ("boost" ,boost) - ("curl" ,curl) - ("eigin" ,eigen) - ("freeimage" ,freeimage) - ("freetype" ,freetype) - ("mesa" ,mesa) - ("sdl2" ,sdl2))) - (synopsis "Video game console emulator front-end") - (description "EmulationStation provides a graphical front-end to a large + (let ((commit "646bede3d9ec0acf0ae378415edac136774a66c5")) + (package + (name "emulation-station") + (version "2.0.1") + (source (origin + (method git-fetch) ; no tarball available + (uri (git-reference + (url "https://github.com/Aloshi/EmulationStation.git") + (commit commit))) ; no version tag + (sha256 + (base32 + "0cm0sq2wri2l9cvab1l0g02za59q7klj0h3p028vr96n6njj4w9v")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f)) ; no tests + (inputs + `(("alsa-lib" ,alsa-lib) + ("boost" ,boost) + ("curl" ,curl) + ("eigin" ,eigen) + ("freeimage" ,freeimage) + ("freetype" ,freetype) + ("mesa" ,mesa) + ("sdl2" ,sdl2))) + (synopsis "Video game console emulator front-end") + (description "EmulationStation provides a graphical front-end to a large number of video game console emulators. It features an interface that is usable with any game controller that has at least 4 buttons, theming support, and a game metadata scraper.") - (home-page "http://www.emulationstation.org") - (license license:expat))) + (home-page "http://www.emulationstation.org") + (license license:expat)))) (define openttd-engine (package diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index b5a2685f65..0819c485cb 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -266,10 +266,10 @@ privacy-preserving, decentralized public key infrastructure.") (home-page "https://gnunet.org/"))) (define-public guile-gnunet ;GSoC 2015! - (let ((commit "383eac2")) + (let ((commit "383eac2aab175d8d9ea5315c2f1c8a5055c76a52")) (package (name "guile-gnunet") - (version (string-append "0.0." commit)) + (version (string-append "0.0." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 50f9a70810..d491aa605e 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -437,10 +437,10 @@ Guile.") (define-public non-sequencer ;; The latest tagged release is three years old and uses a custom build ;; system, so we take the last commit affecting the "sequencer" directory. - (let ((commit "1d9bd576")) + (let ((commit "1d9bd576f6bf7ea240af5f7a60260592750af0dd")) (package (name "non-sequencer") - (version (string-append "1.9.5-" commit)) + (version (string-append "1.9.5-" (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 26cd11acde..346f9753a8 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -479,7 +479,7 @@ will work.") (method git-fetch) (uri (git-reference (url "https://github.com/nvie/gitflow/") - (commit "15aab26"))) + (commit "15aab26490facf285acef56cb5d61025eacb3a69"))) (sha256 (base32 "01fs97q76fdfnvmrh2cyjhywcs3pykf1dg58sy0frflnsdzs6prx")))) @@ -513,10 +513,10 @@ lot easier.") (license bsd-2))) (define-public git-test-sequence - (let ((commit "48e5a2f")) + (let ((commit "48e5a2f5a13a5f30452647237e23362b459b9c76")) (package (name "git-test-sequence") - (version (string-append "20140312." commit)) + (version (string-append "20140312." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index fd933e36a7..46f0f6ec99 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2810,10 +2810,10 @@ X server.") (define-public xf86-video-intel - (let ((commit "d167280")) + (let ((commit "d1672806a5222f00dcc2eb24ccddd03f727f71bc")) (package (name "xf86-video-intel") - (version (string-append "2.99.917-1-" commit)) + (version (string-append "2.99.917-1-" (string-take commit 7))) (source (origin ;; there's no current tarball From 834a2fc1ff170aa66b8f4d2694b61dac1f43b0ae Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Thu, 2 Jun 2016 21:02:14 +0200 Subject: [PATCH 255/277] gnu: Add Wireshark. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/networking.scm (wireshark): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/networking.scm | 71 +++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 3 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 6f4339a460..ba8023aeaa 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Raimon Grau ;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; Copyright 2016 John Darrington +;;; Copyright © 2016 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,12 +27,25 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) - #:use-module (gnu packages tls) - #:use-module (gnu packages ncurses) + #:use-module (gnu packages admin) + #:use-module (gnu packages adns) + #:use-module (gnu packages audio) + #:use-module (gnu packages bison) #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages flex) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages gtk) + #:use-module (gnu packages linux) + #:use-module (gnu packages lua) + #:use-module (gnu packages mit-krb5) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages compression)) + #:use-module (gnu packages python) + #:use-module (gnu packages tls)) (define-public macchanger (package @@ -273,3 +287,54 @@ DNS queries are allowed. The bandwidth is asymmetrical, with limited upstream and up to 1 Mbit/s downstream.") ;; src/md5.[ch] is released under the zlib license (license (list license:isc license:zlib)))) + +(define-public wireshark + (package + (name "wireshark") + (version "2.0.3") + (synopsis "Network traffic analyzer") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.wireshark.org/download/src/wireshark-" + version ".tar.bz2")) + (sha256 + (base32 + "1z358k65frp9m0l07cppwxhvbcp1w9ya5sml87pzs8gyfmp3g5p1")))) + (build-system glib-or-gtk-build-system) + (inputs `(("bison" ,bison) + ("c-ares" ,c-ares) + ("flex" ,flex) + ("gnutls" ,gnutls) + ("gtk+" ,gtk+) + ("libcap" ,libcap) + ("libgcrypt" ,libgcrypt) + ("libnl" ,libnl) + ("libpcap" ,libpcap) + ("lua" ,lua) + ("krb5" ,mit-krb5) + ("openssl" ,openssl) + ("portaudio" ,portaudio) + ("sbc" ,sbc) + ("zlib" ,zlib))) + (native-inputs `(("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper))) + (arguments + `(#:configure-flags + (list (string-append "--with-c-ares=" (assoc-ref %build-inputs "c-ares")) + (string-append "--with-krb5=" (assoc-ref %build-inputs "krb5")) + (string-append "--with-libcap=" (assoc-ref %build-inputs "libcap")) + (string-append "--with-lua=" (assoc-ref %build-inputs "lua")) + (string-append "--with-pcap=" (assoc-ref %build-inputs "libpcap")) + (string-append "--with-portaudio=" + (assoc-ref %build-inputs "portaudio")) + (string-append "--with-sbc=" (assoc-ref %build-inputs "sbc")) + (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")) + (string-append "--with-zlib=" (assoc-ref %build-inputs "zlib")) + "--without-qt"))) + (description "Wireshark is a network protocol analyzer, or @dfn{packet +sniffer}, that lets you capture and interactively browse the contents of +network frames.") + (license license:gpl2+) + (home-page "https://www.wireshark.org/"))) From 40d71e44f5068b28f48bd131940260cc0ab2e2d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 5 Jun 2016 00:04:05 +0200 Subject: [PATCH 256/277] profiles: 'profile-derivation' now honors #:system. Fixes . Reported by Ander GM . * guix/profiles.scm (profile-derivation): Pass #:system to 'gexp->derivation'. * tests/guix-environment.sh: Add 'guix environment -s' test. --- guix/profiles.scm | 1 + tests/guix-environment.sh | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/guix/profiles.scm b/guix/profiles.scm index 8355af7a48..ce8a11fbe5 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -811,6 +811,7 @@ the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc." #:search-paths search-paths))) (gexp->derivation "profile" builder + #:system system #:modules '((guix build profiles) (guix build union) (guix build utils) diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index 5ad8dfa82a..0b5123ab45 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -57,6 +57,21 @@ else test $? = 42 fi +case "`uname -m`" in + x86_64) + # On x86_64, we should be able to create a 32-bit environment. + guix environment --bootstrap --ad-hoc guile-bootstrap --pure \ + -- guile -c '(exit (string-prefix? "x86_64" %host-type))' + guix environment --bootstrap --ad-hoc guile-bootstrap --pure \ + -s i686-linux \ + -- guile -c '(exit (string-prefix? "i686" %host-type))' + ;; + *) + echo "nothing to do" >&2 + ;; +esac + + # Same as above, but with deprecated -E flag. if guix environment --bootstrap --ad-hoc guile-bootstrap --pure \ -E "guile -c '(exit 42)'" From 5d52ac7453e1144086bdc0ac31f01b06edadd04a Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sun, 5 Jun 2016 09:54:33 +1000 Subject: [PATCH 257/277] gnu: krona-tools: Correct paths used internally. * gnu/packages/web.scm (krona-tools)[arguments]: Add 'check' phase. Correct paths used internally. --- gnu/packages/web.scm | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 43fb5a083f..6ac03fcce6 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -291,8 +291,7 @@ parse JSON formatted strings back into the C representation of JSON objects.") "1fj5mf6wbwz7v74n2safbw7fpw32fik19vf0wdbc2srn82i8fiwz")))) (build-system perl-build-system) (arguments - `(#:tests? #f ; no tests - #:phases + `(#:phases (modify-phases %standard-phases ;; There is no configure or build steps. (delete 'configure) @@ -314,9 +313,7 @@ parse JSON formatted strings back into the C representation of JSON objects.") (lambda* (#:key outputs #:allow-other-keys) (let ((bin (string-append (assoc-ref outputs "out") "/bin")) (perl (string-append (assoc-ref outputs "out") - "/lib/perl5/site_perl")) - (share (string-append - (assoc-ref outputs "out") "/share/krona-tools"))) + "/lib/perl5/site_perl/krona-tools/lib"))) (mkdir-p bin) (for-each (lambda (script) @@ -341,13 +338,13 @@ parse JSON formatted strings back into the C representation of JSON objects.") "ImportTaxonomy" "ImportText" "ImportXML")) - (mkdir-p share) - (copy-recursively "data" (string-append share "/data")) - (copy-recursively "img" (string-append share "/img")) - (copy-recursively "taxonomy" (string-append share "/taxonomy")) - (substitute* '("lib/KronaTools.pm") - (("taxonomyDir = \".libPath/../taxonomy\"") - (string-append "taxonomyDir = \"" share "/taxonomy\""))) + (copy-recursively "data" (string-append perl "/../data")) + (copy-recursively "img" (string-append perl "/../img")) + (copy-recursively "taxonomy" (string-append perl "/../taxonomy")) + (install-file "src/krona-2.0.js" (string-append perl "/../src")) + (substitute* "lib/KronaTools.pm" + (("`ktGetLibPath`") + (string-append "\"" perl "\""))) (install-file "lib/KronaTools.pm" perl)))) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) @@ -357,8 +354,14 @@ parse JSON formatted strings back into the C representation of JSON objects.") (lambda (executable) (wrap-program executable `("PERL5LIB" ":" prefix - (,(string-append out "/lib/perl5/site_perl"))))) - (find-files (string-append out "/bin/") ".*")))))))) + (,(string-append out "/lib/perl5/site_perl/krona-tools/lib"))))) + (find-files (string-append out "/bin/") ".*"))))) + (delete 'check) + (add-after 'wrap-program 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (with-directory-excursion "data" + (zero? (system* (string-append (assoc-ref outputs "out") "/bin/ktImportText") + "ec.tsv")))))))) (inputs `(("perl" ,perl))) (home-page "https://github.com/marbl/Krona/wiki") From 71cb237a7d98dafda7dfbb5f3ba7c68463310383 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 3 Jun 2016 02:44:32 -0400 Subject: [PATCH 258/277] services: urandom-seed: Refresh seed at boot. * gnu/services/base.scm (urandom-seed-shepherd-service): Refresh the random seed unconditionally at boot. Ensure directory structure for %random-seed-file exists when shutting down. (%urandom-seed-activation): Remove variable. (urandom-seed-service-type): Remove deleted variable from list of extensions. --- gnu/services/base.scm | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index b8e4741739..2780d124c7 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -431,15 +431,6 @@ stopped before 'kill' is called." (define %random-seed-file "/var/lib/random-seed") -(define %urandom-seed-activation - ;; Activation gexp for the urandom seed - #~(begin - (use-modules (guix build utils)) - - (mkdir-p (dirname #$%random-seed-file)) - (close-port (open-file #$%random-seed-file "a0b")) - (chmod #$%random-seed-file #o600))) - (define (urandom-seed-shepherd-service _) "Return a shepherd service for the /dev/urandom seed." (list (shepherd-service @@ -454,6 +445,18 @@ stopped before 'kill' is called." (call-with-output-file "/dev/urandom" (lambda (urandom) (dump-port seed urandom)))))) + ;; Immediately refresh the seed in case the system doesn't + ;; shut down cleanly. + (call-with-input-file "/dev/urandom" + (lambda (urandom) + (let ((previous-umask (umask #o077)) + (buf (make-bytevector 512))) + (mkdir-p (dirname #$%random-seed-file)) + (get-bytevector-n! urandom buf 0 512) + (call-with-output-file #$%random-seed-file + (lambda (seed) + (put-bytevector seed buf))) + (umask previous-umask)))) #t)) (stop #~(lambda _ ;; During shutdown, write from /dev/urandom into random seed. @@ -462,6 +465,7 @@ stopped before 'kill' is called." (lambda (urandom) (let ((previous-umask (umask #o077))) (get-bytevector-n! urandom buf 0 512) + (mkdir-p (dirname #$%random-seed-file)) (call-with-output-file #$%random-seed-file (lambda (seed) (put-bytevector seed buf))) @@ -475,9 +479,7 @@ stopped before 'kill' is called." (service-type (name 'urandom-seed) (extensions (list (service-extension shepherd-root-service-type - urandom-seed-shepherd-service) - (service-extension activation-service-type - (const %urandom-seed-activation)))))) + urandom-seed-shepherd-service))))) (define (urandom-seed-service) (service urandom-seed-service-type #f)) From 620ce2ef23326c40cd907f564483d133b0bedd07 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 3 Jun 2016 16:56:44 -0400 Subject: [PATCH 259/277] gnu: ntp: Add HTTPS URL. This works around an HTTP -> HTTPS redirection. * gnu/packages/ntp.scm (ntp)[source]: Add HTTPS URL. --- gnu/packages/ntp.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 4ae25450e8..8b4f53d4d3 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -42,10 +42,14 @@ (version "4.2.8p7") (source (origin (method url-fetch) - (uri (string-append - "http://archive.ntp.org/ntp4/ntp-" - (version-major+minor version) - "/ntp-" version ".tar.gz")) + (uri (list (string-append + "http://archive.ntp.org/ntp4/ntp-" + (version-major+minor version) + "/ntp-" version ".tar.gz") + (string-append + "https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-" + (version-major+minor version) + "/ntp-" version ".tar.gz"))) (sha256 (base32 "1p100856h17nb0kpnppy70nja57hbcc95h7shhxvw6mhl030rll1")) From 64a42a08cda2842d5feb1406d2d32c7fd77cccbd Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 3 Jun 2016 16:57:29 -0400 Subject: [PATCH 260/277] gnu: ntp: Update to 4.2.8p8 [fixes CVE-2016-{4953, 4954, 4955, 4956, 4957}]. * gnu/packages/ntp.scm (ntp): Update to 4.2.8p8. --- gnu/packages/ntp.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 8b4f53d4d3..bb8bffc40d 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -39,7 +39,7 @@ (define-public ntp (package (name "ntp") - (version "4.2.8p7") + (version "4.2.8p8") (source (origin (method url-fetch) (uri (list (string-append @@ -52,7 +52,7 @@ "/ntp-" version ".tar.gz"))) (sha256 (base32 - "1p100856h17nb0kpnppy70nja57hbcc95h7shhxvw6mhl030rll1")) + "1vlpgd0dk2wkpmmf869sfxi8f46sfnmjgk51vl8n6vj5y2sx1cra")) (modules '((guix build utils))) (snippet '(begin From c3d38b2b9d91f5632436eb74809622bc9f1ac6d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Fri, 3 Jun 2016 22:30:00 +0800 Subject: [PATCH 261/277] gnu: services: Add dicod-service. * gnu/services/dict.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Various Services): Document it. --- doc/guix.texi | 49 ++++++++++++++++ gnu/local.mk | 1 + gnu/services/dict.scm | 131 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 181 insertions(+) create mode 100644 gnu/services/dict.scm diff --git a/doc/guix.texi b/doc/guix.texi index 12dd3541f0..b9bf986640 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -9395,6 +9395,55 @@ Finally, @var{extra-options} is a list of additional command-line options passed to @command{lircd}. @end deffn +@subsubsection Dictionary Services +The @code{(gnu services dict)} module provides the following service: + +@deffn {Scheme Procedure} dicod-service [#:config (dicod-configuration)] +Return a service that runs the @command{dicod} daemon, an implementation +of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}). + +The optional @var{config} argument specifies the configuration for +@command{dicod}, which should be a @code{} object, by +default it serves the GNU Collaborative International Dictonary of English. + +You can add @command{open localhost} to your @file{~/.dico} file to make +@code{localhost} the default server for @command{dico} client +(@pxref{Initialization File,,, dico, GNU Dico Manual}). +@end deffn + +@deftp {Data Type} dicod-configuration +Data type representing the configuration of dicod. + +@table @asis +@item @code{dico} (default: @var{dico}) +Package object of the GNU Dico dictionary server. + +@item @code{databases} (default: @var{(list %dicod-database:gcide)}) +List of @code{} objects denoting dictionaries to be served. +@end table +@end deftp + +@deftp {Data Type} dicod-database +Data type representing a dictionary database. + +@table @asis +@item @code{name} +Name of the database, will be used in DICT commands. + +@item @code{module} +Name of the dicod module used by this database +(@pxref{Modules,,, dico, GNU Dico Manual}). + +@item @code{options} +List of strings or gexps representing the arguments for the module handler +(@pxref{Handlers,,, dico, GNU Dico Manual}). +@end table +@end deftp + +@defvr {Scheme Variable} %dicod-database:gcide +A @code{} object serving the GNU Collaborative International +Dictonary of English using the @code{gcide} package. +@end defvr @node Setuid Programs @subsection Setuid Programs diff --git a/gnu/local.mk b/gnu/local.mk index c3a3ea47b5..d3e72629bc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -374,6 +374,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/databases.scm \ %D%/services/dbus.scm \ %D%/services/desktop.scm \ + %D%/services/dict.scm \ %D%/services/lirc.scm \ %D%/services/mail.scm \ %D%/services/networking.scm \ diff --git a/gnu/services/dict.scm b/gnu/services/dict.scm new file mode 100644 index 0000000000..abab6a3eba --- /dev/null +++ b/gnu/services/dict.scm @@ -0,0 +1,131 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Sou Bunnbu +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu services dict) + #:use-module (guix gexp) + #:use-module (guix records) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (gnu system shadow) + #:use-module ((gnu packages admin) #:select (shadow)) + #:use-module (gnu packages dico) + #:use-module (gnu packages dictionaries) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match) + #:export (dicod-service + dicod-configuration + dicod-database + %dicod-database:gcide)) + + +;;; +;;; GNU Dico. +;;; + +(define-record-type* + dicod-configuration make-dicod-configuration + dicod-configuration? + (dico dicod-configuration-dico (default dico)) + (databases dicod-configuration-databases + ;; list of + (default (list %dicod-database:gcide)))) + +(define-record-type* + dicod-database make-dicod-database + dicod-database? + (name dicod-database-name) + (module dicod-database-module) + (options dicod-database-options (default '()))) + +(define %dicod-database:gcide + (dicod-database + (name "gcide") + (module "gcide") + (options (list #~(string-append "dbdir=" #$gcide "/share/gcide") + "idxdir=/var/run/dicod")))) + +(define %dicod-accounts + (list (user-group + (name "dicod") + (system? #t)) + (user-account + (name "dicod") + (group "dicod") + (system? #t) + (home-directory "/var/empty") + (shell #~(string-append #$shadow "/sbin/nologin"))))) + +(define (dicod-configuration-file config) + (define dicod-configuration->text + (match-lambda + (($ dico databases) + (append-map (match-lambda + (($ name module options) + `(" +load-module " ,module "; +database { + name \"" ,name "\"; + handler \"" ,module + (string-join (list ,@options) " " 'prefix) "\"; +}\n"))) + databases)))) + (apply mixed-text-file "dicod.conf" (dicod-configuration->text config))) + +(define %dicod-activation + #~(begin + (use-modules (guix build utils)) + (let ((user (getpwnam "dicod")) + (rundir "/var/run/dicod")) + (mkdir-p rundir) + (chown rundir (passwd:uid user) (passwd:gid user))))) + +(define (dicod-shepherd-service config) + (list (shepherd-service + (provision '(dicod)) + (documentation "Run the dicod daemon.") + (start #~(make-forkexec-constructor + (list (string-append #$dico "/bin/dicod") "--foreground" + (string-append + "--config=" #$(dicod-configuration-file config))) + #:user "dicod" #:group "dicod")) + (stop #~(make-kill-destructor))))) + +(define dicod-service-type + (service-type + (name 'dict) + (extensions + (list (service-extension account-service-type + (const %dicod-accounts)) + (service-extension activation-service-type + (const %dicod-activation)) + (service-extension shepherd-root-service-type + dicod-shepherd-service))))) + +(define* (dicod-service #:key (config (dicod-configuration))) + "Return a service that runs the @command{dicod} daemon, an implementation +of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}). + +The optional @var{config} argument specifies the configuration for +@command{dicod}, which should be a @code{} object, by +default it serves the GNU Collaborative International Dictonary of English. + +You can add @command{open localhost} to your @file{~/.dico} file to make +@code{localhost} the default server for @command{dico} +client (@pxref{Initialization File,,, dico, GNU Dico Manual})." + (service dicod-service-type config)) From 555d02e739e3c91ccad67d83b691380a545e794d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sun, 5 Jun 2016 16:55:48 +0800 Subject: [PATCH 262/277] gnu: znc: Update to 1.6.3. * gnu/packages/messaging.scm (znc): Update to 1.6.3. --- gnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 3ac3888da4..215fa19bb8 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -378,14 +378,14 @@ compromised.") (define-public znc (package (name "znc") - (version "1.6.2") + (version "1.6.3") (source (origin (method url-fetch) (uri (string-append "http://znc.in/releases/archive/znc-" version ".tar.gz")) (sha256 (base32 - "14q5dyr5zg99hm6j6g1gilcn1zf7dskhxfpz3bnkyhy6q0kpgwgf")))) + "09xqi5fs40x6nj9gq99bnw1a7saq96bvqxknxx0ilq7yfvg4c733")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; tries to download GoogleTest with wget From f9be43660f6dad9b52f7349bc13803e8edb04004 Mon Sep 17 00:00:00 2001 From: humanitiesNerd Date: Thu, 2 Jun 2016 21:53:12 +0200 Subject: [PATCH 263/277] gnu: Add emacs-cider. * gnu/packages/emacs.scm (emacs-cider): New variable. Signed-off-by: Alex Kost --- gnu/packages/emacs.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 07b4255adb..1f1d201a32 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2053,3 +2053,39 @@ considered to be its successor. Helm sets out to clean up the legacy code in @code{anything.el} and provide a cleaner, leaner and more modular tool, that's not tied in the trap of backward compatibility.") (license license:gpl3+))) + +(define-public emacs-cider + (package + (name "emacs-cider") + (version "0.12.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/clojure-emacs/cider/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "00qzbfjy3w6bcnki7gw0clmi0cc5yqjdrcyhgv4ymijjs79h9p5s")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-clojure-mode" ,emacs-clojure-mode) + ("emacs-spinner" ,emacs-spinner) + ("emacs-pkg-info" ,emacs-pkg-info) + ("emacs-queue" ,emacs-queue) + ("emacs-seq" ,emacs-seq))) + (home-page "https://cider.readthedocs.org/") + (synopsis "Clojure development environment for Emacs") + (description + "CIDER (Clojure Interactive Development Environment that Rocks) aims to +provide an interactive development experience similar to the one you'd get +when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with +Geiser) and Smalltalk. + +CIDER is the successor to the now deprecated combination of using SLIME + +swank-clojure for Clojure development. + +There are plenty of differences between CIDER and SLIME, but the core ideas +are pretty much the same (and SLIME served as the principle inspiration for +CIDER).") + (license license:gpl3+))) From 8fa7f8d90736b0dfb1e76050b215f070eef31d26 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 5 Jun 2016 23:08:00 +0300 Subject: [PATCH 264/277] gnu: python-sip: Update to 4.18. * gnu/packages/qt.scm (python-sip, python2-sip): Update to 4.18. --- gnu/packages/qt.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index b1f72fd7e1..2b8b8a7491 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -458,17 +458,16 @@ while JSON objects are mapped to QVariantMap.") (define-public python-sip (package (name "python-sip") - (version "4.16.9") + (version "4.18") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pyqt/sip/" - "sip-" version "/sip-" - version ".tar.gz")) + "sip-" version "/sip-" version ".tar.gz")) (sha256 (base32 - "0m85dgm3g9s9h7s5sfxvcxi423vqxwq1vg5wnl5wl9kfasm77qfv")))) + "1dlw4kyiwd9bzmd1djm79c121r219abaz86lvizdk6ksq20mrp7i")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-wrapper))) @@ -496,7 +495,7 @@ while JSON objects are mapped to QVariantMap.") (zero? (system* "python" "configure.py" "--bindir" bin - "--destdir" lib + "--destdir" lib "--incdir" include)))) %standard-phases))) (home-page "http://www.riverbankcomputing.com/software/sip/intro") From 39766868a5d03a02a662be66b5286f710735822c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 5 Jun 2016 23:10:34 +0300 Subject: [PATCH 265/277] gnu: python-sip: Use 'modify-phases'. * gnu/packages/qt.scm (python-sip)[arguments]: Use 'modify-phases'. --- gnu/packages/qt.scm | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 2b8b8a7491..80a1c02f75 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -476,29 +476,28 @@ while JSON objects are mapped to QVariantMap.") #:modules ((srfi srfi-1) ,@%gnu-build-system-modules) #:phases - (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (include (string-append out "/include")) - (python (assoc-ref inputs "python")) - (python-version - (last (string-split python #\-))) - (python-major+minor - (string-join - (take (string-split python-version #\.) 2) - ".")) - (lib (string-append out "/lib/python" - python-major+minor - "/site-packages"))) - (zero? - (system* "python" "configure.py" - "--bindir" bin - "--destdir" lib - "--incdir" include)))) - %standard-phases))) - (home-page "http://www.riverbankcomputing.com/software/sip/intro") + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (include (string-append out "/include")) + (python (assoc-ref inputs "python")) + (python-version + (last (string-split python #\-))) + (python-major+minor + (string-join + (take (string-split python-version #\.) 2) + ".")) + (lib (string-append out "/lib/python" + python-major+minor + "/site-packages"))) + (zero? + (system* "python" "configure.py" + "--bindir" bin + "--destdir" lib + "--incdir" include)))))))) + (home-page "https://www.riverbankcomputing.com/software/sip/intro") (synopsis "Python binding creator for C and C++ libraries") (description "SIP is a tool to create Python bindings for C and C++ libraries. It From 2be068136799b4b1ce332ef8785835f2fd4f037c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 5 Jun 2016 23:12:38 +0300 Subject: [PATCH 266/277] gnu: python-pyqt: Update to 5.6. * gnu/packages/qt.scm (python-pyqt, python2-pyqt): Update to 5.6. (python-pyqt)[native-inputs]: Remove qt, add qtbase. (python2-pyqt)[native-inputs]: Remove qt, add qtbase. --- gnu/packages/qt.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 80a1c02f75..aaf5bc246c 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -521,22 +521,22 @@ module provides support functions to the automatically generated code.") (define-public python-pyqt (package (name "python-pyqt") - (version "5.5") + (version "5.6") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pyqt/PyQt5/" - "PyQt-" version "/PyQt-gpl-" + "PyQt-" version "/PyQt5_gpl-" version ".tar.gz")) (sha256 (base32 - "056qmkv02wdcfblqdaxiswrgn4wa88sz22i1x58dpb1iniavplfd")) + "1qgh42zsr9jppl9k7fcdbhxcd1wrb7wyaj9lng9nxfa19in1lj1f")) (patches (search-patches "pyqt-configure.patch")))) (build-system gnu-build-system) (native-inputs `(("python-sip" ,python-sip) - ("qt" ,qt))) ; for qmake + ("qtbase" ,qtbase))) ; for qmake (inputs `(("python" ,python-wrapper))) (arguments @@ -583,7 +583,7 @@ contain over 620 classes.") (name "python2-pyqt") (native-inputs `(("python-sip" ,python2-sip) - ("qt" ,qt))) + ("qtbase" ,qtbase))) (inputs `(("python" ,python-2))))) From eef988c82edb3a83bca7b72946e8365dcd96a98e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 5 Jun 2016 23:14:29 +0300 Subject: [PATCH 267/277] gnu: python-pyqt: Use 'modify-phases'. * gnu/packages/qt.scm (python-pyqt)[arguments]: Use 'modify-phases'. --- gnu/packages/qt.scm | 55 ++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index aaf5bc246c..8a2b4d6a0c 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -543,34 +543,33 @@ module provides support functions to the automatically generated code.") `(#:modules ((srfi srfi-1) ,@%gnu-build-system-modules) #:phases - (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (sip (string-append out "/share/sip")) - (plugins (string-append out "/plugins")) - (designer (string-append plugins "/designer")) - (qml (string-append plugins "/PyQt5")) - (python (assoc-ref inputs "python")) - (python-version - (last (string-split python #\-))) - (python-major+minor - (string-join - (take (string-split python-version #\.) 2) - ".")) - (lib (string-append out "/lib/python" - python-major+minor - "/site-packages"))) - (zero? (system* "python" "configure.py" - "--confirm-license" - "--bindir" bin - "--destdir" lib - "--designer-plugindir" designer - "--qml-plugindir" qml - "--sipdir" sip)))) - %standard-phases))) - (home-page "http://www.riverbankcomputing.com/software/pyqt/intro") + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (sip (string-append out "/share/sip")) + (plugins (string-append out "/plugins")) + (designer (string-append plugins "/designer")) + (qml (string-append plugins "/PyQt5")) + (python (assoc-ref inputs "python")) + (python-version + (last (string-split python #\-))) + (python-major+minor + (string-join + (take (string-split python-version #\.) 2) + ".")) + (lib (string-append out "/lib/python" + python-major+minor + "/site-packages"))) + (zero? (system* "python" "configure.py" + "--confirm-license" + "--bindir" bin + "--destdir" lib + "--designer-plugindir" designer + "--qml-plugindir" qml + "--sipdir" sip)))))))) + (home-page "https://www.riverbankcomputing.com/software/pyqt/intro") (synopsis "Python bindings for Qt") (description "PyQt is a set of Python v2 and v3 bindings for the Qt application From 9acd40fee8aa5db435f4068f4fa4c4b00e36e9dc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 6 Jun 2016 09:27:48 +0300 Subject: [PATCH 268/277] gnu: calibre: Update to 2.58.0. * gnu/packages/ebook.scm (calibre): Update to 2.58.0. --- gnu/packages/ebook.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index f972d8831f..2b450cabd6 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016 Andreas Enge +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,7 +61,7 @@ (define-public calibre (package (name "calibre") - (version "2.51.0") + (version "2.58.0") (source (origin (method url-fetch) @@ -68,8 +69,8 @@ version "/calibre-" version ".tar.xz")) (sha256 - (base32 - "1rhpcxic4g2zyr5s3xn8dayyb45l9r8zyniaig8j7pl5kmsfjijn")) + (base32 + "0npqvfjqj1vwa7nmnsyd4d30z40brydw275ldf1jankrp6dr9dyd")) ;; Remove non-free or doubtful code, see ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html (modules '((guix build utils))) From 6e8dee98e5bc730e12e595b2c491b456d05b7340 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 6 Jun 2016 13:01:26 +0300 Subject: [PATCH 269/277] gnu: qtkeychain: Update to 0.7.0. * gnu/packages/qt.scm (qtkeychain): Update to 0.7.0. --- gnu/packages/qt.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 8a2b4d6a0c..acfda4a2df 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -635,7 +635,7 @@ contain over 620 classes.") (define-public qtkeychain (package (name "qtkeychain") - (version "0.6.2") + (version "0.7.0") (source (origin (method url-fetch) @@ -643,7 +643,7 @@ contain over 620 classes.") "archive/v" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "0g76pa786mg0fxy52hrljw09dvi6kffk2ms42lxapvpy6j94a4xf")))) + (base32 "0fka5q5cdzlf79igcjgbnb2smvwbwfasqawkzkbr34whispgm6lz")))) (build-system cmake-build-system) (inputs `(("qt" ,qt))) From b2c108ff3346531f63968f0501ef3fdbe2ea8d1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 6 Jun 2016 10:22:59 +0200 Subject: [PATCH 270/277] file-systems: Remove unneeded import. * gnu/system/file-systems.scm: Remove import of (guix gexp), unneeded since commit 060d62a740fc1932a3be505534feff099b59ac9f. --- gnu/system/file-systems.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 7e8c4489dd..f4cfaf0990 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -18,7 +18,6 @@ (define-module (gnu system file-systems) #:use-module (ice-9 match) - #:use-module (guix gexp) #:use-module (guix records) #:use-module (guix store) #:use-module ((gnu build file-systems) From 2aa0bada76dc664e9e38f4206ec526fd278a6114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 6 Jun 2016 16:45:22 +0200 Subject: [PATCH 271/277] gnu: Add ghc-aeson-pretty. * gnu/packages/haskell.scm (ghc-aeson-pretty): New variable. --- gnu/packages/haskell.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c3e0a6100b..738c3a18c0 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Siniša Biđin ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -4856,6 +4857,39 @@ for Haskell, optimized for ease of use and high performance. (A note on naming: in Greek mythology, Aeson was the father of Jason.)") (license license:bsd-3))) +(define-public ghc-aeson-pretty + (package + (name "ghc-aeson-pretty") + (version "0.7.2") + (source (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/aeson-pretty/aeson-pretty-" + version ".tar.gz")) + (sha256 + (base32 + "03ap81853qi8yd9kdgczllrrni23a6glsfxrwj8zab6ipjrbh234")))) + (build-system haskell-build-system) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-vector" ,ghc-vector) + ("ghc-text" ,ghc-text) + ("ghc-unordered-containers" + ,ghc-unordered-containers) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-cmdargs" ,ghc-cmdargs))) + (home-page "http://github.com/informatikr/aeson-pretty") + (synopsis "JSON pretty-printing library and command-line tool") + (description + "This package provides a JSON pretty-printing library compatible with aeson +as well as a command-line tool to improve readabilty of streams of JSON data. +The library provides the function @code{encodePretty}. It is a drop-in +replacement for aeson's @code{encode} function, producing JSON-ByteStrings for +human readers. The command-line tool reads JSON from stdin and writes +prettified JSON to stdout. It also offers a complementary \"compact\"-mode, +essentially the opposite of pretty-printing.") + (license license:bsd-3))) + (define-public ghc-wai (package (name "ghc-wai") From 839415ecbcb3c614284a60d55eb4a51591153290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 6 Jun 2016 16:49:22 +0200 Subject: [PATCH 272/277] gnu: Add ghc-concatenative. * gnu/packages/haskell.scm (ghc-concatenative): New variable. --- gnu/packages/haskell.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 738c3a18c0..5a01eeceec 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -732,6 +732,28 @@ tool lex or flex for C/C++.") "This library provides an easy way to define command line parsers.") (license license:bsd-3))) +(define-public ghc-concatenative + (package + (name "ghc-concatenative") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/concatenative/concatenative-" + version ".tar.gz")) + (sha256 + (base32 + "05xwqvcdnk8bsyj698ab9jxpa1nk23pf3m7wi9mwmw0q8n99fngd")))) + (build-system haskell-build-system) + (home-page + "https://patch-tag.com/r/salazar/concatenative/snapshot/current/content/pretty") + (synopsis "Library for postfix control flow") + (description + "Concatenative gives Haskell Factor-style combinators and arrows for +postfix notation. For more information on stack based languages, see +@uref{http://concatenative.org}.") + (license license:bsd-3))) + (define-public ghc-happy (package (name "ghc-happy") From b6bfa2cacfd3e8940098bc7c365337308d170300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 6 Jun 2016 16:49:53 +0200 Subject: [PATCH 273/277] gnu: Add ghc-indents. * gnu/packages/haskell.scm (ghc-indents): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 5a01eeceec..5e99ba2287 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -2002,6 +2002,31 @@ isn't available, portable implementations are used.") both client and server code).") (license license:bsd-3))) +(define-public ghc-indents + (package + (name "ghc-indents") + (version "0.3.3") + (source (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/indents/indents-" + version ".tar.gz")) + (sha256 + (base32 + "16lz21bp9j14xilnq8yym22p3saxvc9fsgfcf5awn2a6i6n527xn")))) + (build-system haskell-build-system) + (inputs + `(("ghc-parsec" ,ghc-parsec) + ("ghc-concatenative" ,ghc-concatenative) + ("ghc-mtl" ,ghc-mtl))) + (home-page "http://patch-tag.com/r/salazar/indents") + (synopsis "Indentation sensitive parser-combinators for parsec") + (description + "This library provides functions for use in parsing indentation sensitive +contexts. It parses blocks of lines all indented to the same level as well as +lines continued at an indented level below.") + (license license:bsd-3))) + (define-public ghc-iproute (package (name "ghc-iproute") From abbf26238d19f2d2c574cd96bc3a786dd0755377 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 6 Jun 2016 16:54:12 +0200 Subject: [PATCH 274/277] gnu: Add ghc-union-find. * gnu/packages/haskell.scm (ghc-union-find): New variable. --- gnu/packages/haskell.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 5e99ba2287..d31cf68a17 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -6323,6 +6323,31 @@ definition lists, tables, and other features. A compatibility mode is provided for those who need a drop-in replacement for Markdown.pl.") (license license:gpl2+))) +(define-public ghc-union-find + (package + (name "ghc-union-find") + (version "0.2") + (source (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/union-find/union-find-" + version ".tar.gz")) + (sha256 + (base32 + "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6")))) + (build-system haskell-build-system) + (home-page "http://github.com/nominolo/union-find") + (synopsis "Efficient union and equivalence testing of sets") + (description + "The Union/Find algorithm implements these operations in (effectively) +constant-time: +@enumerate +@item Check whether two elements are in the same equivalence class. +@item Create a union of two equivalence classes. +@item Look up the descriptor of the equivalence class. +@end enumerate\n") + (license license:bsd-3))) + (define-public idris (package (name "idris") From febf7ef67570749067c2c2e9376fdbefed427023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 6 Jun 2016 17:00:43 +0200 Subject: [PATCH 275/277] gnu: Add ghc-wl-pprint. * gnu/packages/haskell.scm (ghc-wl-pprint): New variable. --- gnu/packages/haskell.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index d31cf68a17..b043e03ea4 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -3198,6 +3198,27 @@ to annotate the text with semantic information, which can later be rendered in a variety of ways.") (license license:bsd-3))) +(define-public ghc-wl-pprint + (package + (name "ghc-wl-pprint") + (version "1.2") + (source (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/wl-pprint/wl-pprint-" + version ".tar.gz")) + (sha256 + (base32 + "166zvk4zwn2zaa9kx66m1av38m34qp6h4i65bri2sfnxgvx0700r")))) + (build-system haskell-build-system) + (home-page "http://hackage.haskell.org/package/wl-pprint") + (synopsis "Wadler/Leijen pretty printer") + (description + "This is a pretty printing library based on Wadler's paper @i{A Prettier +Printer}. This version allows the library user to declare overlapping +instances of the @code{Pretty} class.") + (license license:bsd-3))) + (define-public ghc-ansi-wl-pprint (package (name "ghc-ansi-wl-pprint") From 8bebe00a76012a07e91930dcfd68058d4309ae99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 6 Jun 2016 18:06:58 +0200 Subject: [PATCH 276/277] bournish: Handle EOF in the reader. * guix/build/bournish.scm (read-bournish): Add case for EOF. --- guix/build/bournish.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/guix/build/bournish.scm b/guix/build/bournish.scm index 4022796658..3bea1c80c2 100644 --- a/guix/build/bournish.scm +++ b/guix/build/bournish.scm @@ -134,8 +134,10 @@ commands such as 'ls' and 'cd'; it lacks globbing, pipes---everything.\n")) (define (read-bournish port env) "Read a Bournish expression from PORT, and return the corresponding Scheme code as an sexp." - (match (string-tokenize (read-line port)) - ((command args ...) + (match (read-line port) + ((? eof-object? eof) + eof) + ((= string-tokenize (command args ...)) (match (assoc command %commands) ((command proc) ;built-in command (apply proc (map expand-variable args))) From f82c58539e1f7b9b864e68ea2ab0c6a17c15fbb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 6 Jun 2016 18:12:31 +0200 Subject: [PATCH 277/277] bournish: Allow compilation of multiple expressions. * guix/build/bournish.scm (%bournish-language): Add a joiner to SCHEME. Compile only to Scheme. * tests/bournish.scm: New file. * Makefile.am (SCM_TESTS): Add it. --- Makefile.am | 1 + guix/build/bournish.scm | 17 +++++++++++++++-- tests/bournish.scm | 42 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 tests/bournish.scm diff --git a/Makefile.am b/Makefile.am index 8ab574b401..50cde52701 100644 --- a/Makefile.am +++ b/Makefile.am @@ -248,6 +248,7 @@ SCM_TESTS = \ tests/profiles.scm \ tests/syscalls.scm \ tests/gremlin.scm \ + tests/bournish.scm \ tests/lint.scm \ tests/publish.scm \ tests/scripts.scm \ diff --git a/guix/build/bournish.scm b/guix/build/bournish.scm index 3bea1c80c2..1f17e0a22d 100644 --- a/guix/build/bournish.scm +++ b/guix/build/bournish.scm @@ -149,11 +149,24 @@ code as an sexp." (define %bournish-language (let ((scheme (lookup-language 'scheme))) + ;; XXX: The 'scheme' language lacks a "joiner", so we add one here. This + ;; allows us to have 'read-bournish' read one shell statement at a time + ;; instead of having to read until EOF. + (set! (language-joiner scheme) + (lambda (exps env) + (match exps + (() '(begin)) + ((exp) exp) + (_ `(begin ,@exps))))) + (make-language #:name 'bournish #:title "Bournish" + + ;; The reader does all the heavy lifting. #:reader read-bournish - #:compilers (language-compilers scheme) - #:decompilers (language-decompilers scheme) + #:compilers `((scheme . ,(lambda (exp env options) + (values exp env env)))) + #:decompilers '() #:evaluator (language-evaluator scheme) #:printer (language-printer scheme) #:make-default-environment diff --git a/tests/bournish.scm b/tests/bournish.scm new file mode 100644 index 0000000000..0f529ce42f --- /dev/null +++ b/tests/bournish.scm @@ -0,0 +1,42 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (test-bournish) + #:use-module (guix build bournish) + #:use-module (system base compile) + #:use-module (system base language) + #:use-module (srfi srfi-64)) + + +(test-begin "bournish") + +(test-equal "single statement" + '(chdir "/foo") + (read-and-compile (open-input-string "cd /foo") + #:from %bournish-language #:to 'scheme)) + +(test-equal "multiple statements" + '(begin + (chdir "/foo") + (getcwd) + ((@@ (guix build bournish) ls-command-implementation))) + (read-and-compile (open-input-string "cd /foo\npwd\nls") + #:from %bournish-language #:to 'scheme)) + +(test-end "bournish") +