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 @@ (define-public vsearch ;; 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 @@ (define-module (gnu packages parallel) #: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 @@ (define-public slurm 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 @@ (define-public poppler-qt4 ,@(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 @@ (define (xml->vulnerabilities port) 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 %past-year-ttl (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 @@ (define (file=? file1 file2) 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 @@ (define-public libchop (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 @@ (define-public r-biased-urn 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 @@ (define-public git ;; 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 @@ (define-public git-manpages 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 @@ (define-public radicale (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 @@ (define (all-packages) (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 @@ (define core-package? (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 @@ (define-module (guix graph) node-edges node-back-edges + traverse/depth-first node-transitive-edges %graphviz-backend @@ -99,13 +100,13 @@ (define (node-back-edges type nodes) (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 @@ (define (node-transitive-edges nodes node-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 @@ (define-module (guix graph) node-back-edges traverse/depth-first node-transitive-edges + node-reachable-count %graphviz-backend graph-backend? @@ -126,6 +127,13 @@ (define (node-transitive-edges nodes node-edges) 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 @@ (define (edge->tuple source target) (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 @@ (define-module (gnu packages grub) #: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 @@ (define-public grub ;; 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 @@ (define-public grub ;; 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 @@ (define-module (gnu packages photo) #: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 @@ (define-public libpano13 (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 @@ (define-public enblend-enfuse name "-" version ".tar.gz")) (sha256 (base32 - "1b7r1nnwaind0344ckwggy0ghl0ipbk9jzylsxcjfl05rnasw00w")))) + "0j5x011ilalb47ssah50ag0a4phgh1b0wdgxdbbp1gcyjcjf60w7")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -235,8 +238,10 @@ (define-public enblend-enfuse ("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 @@ (define-public emacs (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 @@ (define-public emacs 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 @@ (define-public emacs-auctex (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 @@ (define (default-emacs) "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 @@ (define-public geiser "/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 @@ (define-public paredit (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 @@ (define-public haskell-mode 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 @@ (define-public emacs-w3m (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 @@ (define-public emacs-wget (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 @@ (define-public mu ("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 @@ (define-public vc-dwim "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 @@ (define-public cflow (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 @@ (define-public recutils (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 @@ (define-public geiser "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 @@ (define-public paredit (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 @@ (define-public git-modes (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 @@ (define-public magit "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 @@ (define-public magit-svn (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 @@ (define-public haskell-mode (sha256 (base32 "1kxc2yj8vb122dv91r68h7c5ladcryx963fr16plfhg71fv7f9av")))) (native-inputs - `(("emacs" ,emacs-no-x) + `(("emacs" ,emacs-minimal) ("texinfo" ,texinfo))) (build-system gnu-build-system) (arguments @@ -650,7 +650,7 @@ (define-public let-alist (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 @@ (define-public emacs-w3m "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 @@ (define-public emacs-wget (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 @@ (define-public emms (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 @@ (define-public bbdb (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 @@ (define-public emacs-mmm-mode (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 @@ (define-public emacs-pdf-tools (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 @@ (define-public emacs-popup (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 @@ (define-public emacs-rfcview (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 @@ (define-public emacs-ffap-rfc-space (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 @@ (define-public ledger ("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 @@ (define-public idutils "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 @@ (define-public mu ("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 @@ (define-public proof-general (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 @@ (define (copy arch) #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 @@ (define-public asymptote `(("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 @@ (define (system-suffix) (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 @@ (define-public vc-dwim (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 @@ (define-public emacs-smartparens 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 @@ (define* (show-version-and-exit #:optional (command (car (command-line)))) (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 @@ (define-public libxml2 (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 @@ (define-public libxml2 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 @@ (define (requisites* item) 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 @@ (define (guix-size . args) (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 @@ (define (matching-profile item) (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 @@ (define MiB (expt 2 20)) (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 @@ (define (guix-size . args) (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 @@ (define (guix-size . args) #: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 @@ (define (input->requisites input) (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 @@ (define (list-relatives relatives) ((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 @@ (define (requisites* item) (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 @@ (define (references/substitutes store items) (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 @@ (define* (fold-path store proc seed path (() 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 @@ (define (same? x y) (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 @@ (define MiB (expt 2 20)) (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 @@ (define (substitutable-requisites store item) (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 @@ (define (store-profile items) (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 @@ (define (rename-matching-files directory mapping) (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 @@ (define (rewrite-leaf file) ;; #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-module (gnu packages webkit) (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 @@ (define-public linux-libre-4.4 (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-module (gnu packages freeipmi) (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 @@ (define libxml2/fixed (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 @@ (define* (kernel-config system #:key variant) (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 @@ (define-public linux-libre (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 @@ (define* (unpack #:key source #:allow-other-keys) ;; 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 @@ (define (first-gemspec) (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 @@ (define* (install #:key inputs outputs (gem-flags '()) (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 @@ (define-public ruby-mini-portile-2 (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 @@ (define-public ruby-nokogiri #: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 @@ (define-public ruby-unf (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 @@ (define-public ruby-shoulda-context (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 @@ (define-public ruby-turn (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 @@ (define-public ruby-mini-portile (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 @@ (define-public ruby-crass (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 @@ (define-public ruby-ttfunk ;; 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 @@ (define-public ruby-minitest-rg (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 @@ (define-public ruby-mime-types-data (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 @@ (define-public ruby-mime-types ("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-module (gnu packages dns) (define-public dnsmasq (package (name "dnsmasq") - (version "2.72") + (version "2.76") (source (origin (method url-fetch) (uri (string-append @@ -41,7 +41,7 @@ (define-public dnsmasq 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 @@ (define-public iotop (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 @@ (define-public fuse (("-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 @@ (define-public python2-appdirs (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 @@ (define-public python-llfuse "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-module (gnu packages enlightenment) (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 @@ (define-public efl 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 @@ (define-public efl (define-public elementary (package (name "elementary") - (version "1.17.0") + (version "1.17.1") (source (origin (method url-fetch) (uri @@ -145,7 +145,7 @@ (define-public elementary "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 @@ (define-public rage (define-public enlightenment (package (name "enlightenment") - (version "0.20.6") + (version "0.20.8") (source (origin (method url-fetch) (uri @@ -281,7 +281,7 @@ (define-public enlightenment 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 @@ (define-public randomjungle ("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 @@ (define (return/cache cache value) (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 @@ (define-public transmission-remote-cli (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 @@ (define-public aria2 name "-" version ".tar.xz")) (sha256 (base32 - "12agwdvvkr34wqhyyfp418dj0k7nbr297qmcd3wj5kkn7brv6gxc")))) + "14qz7686zxnhbaqj6l1hqpkykhpygm74h2mzwhh13gqmcj38alaq")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-libaria2") @@ -230,10 +230,10 @@ (define-public aria2 (("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 @@ (define-public aria2 ("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 @@ (define-module (gnu packages algebra) #: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 @@ (define-module (gnu packages docbook) #: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 @@ (define-module (gnu packages engineering) #: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 @@ (define-module (gnu packages gettext) #: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 @@ (define-module (gnu packages gnome) #: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 @@ (define-module (gnu packages lisp) #: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 @@ (define-module (gnu packages maths) #: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 @@ (define-module (gnu packages music) #: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 @@ (define-module (gnu packages ocaml) #: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 @@ (define-module (gnu packages photo) #: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 @@ (define-module (gnu packages plotutils) #: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 @@ (define-module (gnu packages python) #: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 @@ (define-module (gnu packages scheme) #: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 @@ (define-module (gnu packages tex) #: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 @@ (define-public rubber 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 @@ (define-module (gnu packages hurd) #: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 @@ (define-public hurd-minimal "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 @@ (define* (autoconf-wrapper #:optional (autoconf autoconf)) 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 @@ (define* (process-substitution store-item destination ;; 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 @@ (define-public rush (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 @@ (define-public isc-dhcp "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 @@ (define-module (guix cve) #: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 @@ (define (do-fetch) (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 @@ (define (old? file) (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 @@ (define-public qemu "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 @@ (define-public qemu ;; 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 @@ (define-public qemu (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 @@ (define-public qemu (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-module (gnu packages moreutils) (define-public moreutils (package (name "moreutils") - (version "0.57") + (version "0.58") (source (origin (method url-fetch) (uri (string-append @@ -36,7 +37,7 @@ (define-public moreutils 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 @@ (define-public moreutils ("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 @@ (define-public emacs-with-editor (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 @@ (define-public magit 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 @@ (define-public bbdb (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 @@ (define-public emacs-clojure-mode 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 @@ (define (fetch uri file) 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 @@ (define content-addressed-urls (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 @@ (define (nar-uri-abbreviation uri) (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 @@ (define (remove-dot-segments path) #: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 @@ (define headers (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 @@ (define headers (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 @@ (define (maybe-expand-mirrors uri mirrors) (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 @@ (define (fetch uri file) 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 @@ (define-public mpc123 (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 @@ (define-public mpc123 (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 @@ (define-public mpc123 (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 @@ (define-public mpc123 (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 @@ (define-public eyed3 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 @@ (define-public synergy (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 @@ (define-public synergy "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 @@ (define-public synergy (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 @@ (define-public synergy (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-module (gnu packages synergy) (define-public synergy (package (name "synergy") - (version "1.7.4") + (version "1.7.6") (source (origin (method url-fetch) @@ -42,7 +42,7 @@ (define-public synergy (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 @@ (define-public t1lib (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 @@ (define-public unclutter (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 @@ (define-public xlockmore (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 @@ (define-public xlockmore "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 @@ (define-public serf (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 @@ (define-public serf (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 @@ (define-public scrot (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 @@ (define-public gd (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 @@ (define profile (or (assoc-ref opts 'profile) %current-profile)) (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 @@ (define-module (guix cve) #: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-module (guix cve) (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-rx (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 @@ (define (update-cache) (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 @@ (define (old? file) (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 @@ (define (current-vulnerabilities) (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 @@ (define table (($ 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 @@ (define table (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 @@ (define %expected-vulnerabilities (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 @@ (define %expected-vulnerabilities %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 @@ (define-module (gnu packages databases) #: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 @@ (define-public kyotocabinet 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 @@ (define-public gprolog "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 @@ (define-public wxmaxima (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 @@ (define-public wxmaxima "/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 @@ (define-public vera "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 @@ (define-public deeptools (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 @@ (define-public diamond (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 @@ (define-module (gnu packages gtk) #: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 @@ (define-public guile-present 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 @@ (define-public graphite2 (define-public potrace (package (name "potrace") - (version "1.11") + (version "1.13") (source (origin (method url-fetch) @@ -397,7 +397,7 @@ (define-public potrace 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 @@ (define-module (gnu services base) gpm-service-type gpm-service + urandom-seed-service + %base-services)) ;;; Commentary: @@ -420,6 +423,63 @@ (define* (user-processes-service file-systems #:key (grace-delay 4)) (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 @@ (define (swap-service device) "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 @@ (define %base-services (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 @@ (define-public polipo (define-public libyaml (package (name "libyaml") - (version "0.1.5") + (version "0.1.6") (source (origin (method url-fetch) @@ -613,7 +613,7 @@ (define-public libyaml 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 @@ (define-public fizmo (define-public retroarch (package (name "retroarch") - (version "1.3.1") + (version "1.3.4") (source (origin (method url-fetch) @@ -864,7 +864,7 @@ (define-public retroarch 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 @@ (define-public lua-5.1 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 @@ (define-public lua (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-module (gnu packages lua) (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 @@ (define-public lua-5.1 (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-module (gnu packages elf) (define-public elfutils (package (name "elfutils") - (version "0.161") + (version "0.166") (source (origin (method url-fetch) (uri (string-append @@ -38,7 +38,7 @@ (define-public elfutils 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 @@ (define-public procmail ;; 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-module (gnu packages crypto) (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 @@ (define-public libsodium "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 @@ (define-public socat (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 @@ (define-public stow (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 @@ (define-public rpm 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-module (gnu packages pciutils) (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 @@ (define-public pciutils "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 @@ (define-module (gnu packages pciutils) #: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 @@ (define-public pciutils `(("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 @@ (define-public fastjar (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 @@ (define-public glibc ,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 @@ (define-module (gnu packages compression) #: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 @@ (define-public libtar 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 @@ (define vorbis-tools (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 @@ (define-public graphicsmagick (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 @@ (define-public libyaml (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 @@ (define-public pcre2 (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 @@ (define-public a2ps 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 @@ (define-public a2ps `(("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 @@ (define-module (gnu packages textutils) #: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 @@ (define-public antiword "/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 @@ (define-public jansson 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 @@ (module "tidy") (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 @@ (define-public tinyproxy ("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 @@ (define-public screen (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 @@ (define-public dtach (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 @@ (define %mirrors "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 @@ (define-public t1lib (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 @@ (define-public vte/gtk+-2 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 @@ (define-module (gnu packages gimp) #: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 @@ (define-public gegl "/" 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 @@ (define-public emacs (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 @@ (define-public emacs-epl 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 @@ (define-public emacs-queue 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 @@ (define-public emacs-pkg-info (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 @@ (define-public emacs-spinner "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 @@ (define-module (guix build emacs-build-system) #: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 @@ (define-module (guix build emacs-build-system) ;; 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 @@ (define (store-directory->elpa-name-version store-dir) (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 @@ (define-public emacs-mit-scheme-doc 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 @@ (define-public emacs-rfcview (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 @@ (define-public emacs-ffap-rfc-space (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 @@ (define-public emacs-queue (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 @@ (define-public emacs-spinner (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 @@ (define-public emacs-seq 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 @@ (define-public alsa-utils (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 @@ (define-public iptables 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 @@ (define-public devil "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 @@ (define-public cyrus-sasl (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 @@ (define-public cyrus-sasl 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 @@ (define-public id3lib (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 @@ (define-module (gnu packages wordnet) #: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 @@ (define-public wordnet (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 @@ (define-public wordnet ;; 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 @@ (define-module (gnu packages avr) #: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 @@ (define-public avr-binutils (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 @@ (define-module (gnu packages avr) #: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 @@ (define-public avr-gcc-4.9 (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 @@ (define-public avr-libc "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-gcc-5 (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 @@ (define-module (gnu packages avr) #: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 @@ (define-public avr-libc (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 @@ (define-public xgcc-mips64el (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-module (gnu packages imagemagick) (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 @@ (define-public mcrypt 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 @@ (define-public jasper 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 @@ (define-public avidemux (define-public vapoursynth (package (name "vapoursynth") - (version "28") + (version "32") (source (origin (method url-fetch) (uri (string-append @@ -1176,7 +1176,7 @@ (define-public vapoursynth (file-name (string-append name "-" version)) (sha256 (base32 - "0pnrawcg1j65i46yim0z447lglq1af5zgx0lkqf1x5xl1bfwc0v7")))) + "1j08whj946v2kkpgxsfhpca8xf0ax9iqzn73wvwjx319p9j0ymp9")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -1189,7 +1189,8 @@ (define-public vapoursynth (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 @@ (define %mirrors "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 @@ (define (run-container root mounts namespaces host-uids thunk) (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 @@ (define (run-container root mounts namespaces host-uids thunk) ;; 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 @@ (define (assert-exit x) (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 @@ (define-public libxml2 (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 @@ (define (urandom-seed-shepherd-service _) (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 @@ (define-public r-knitr ;; 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 @@ (define-module (gnu packages julia) #: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 @@ (define libuv-julia (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 libuv-julia (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 @@ (define-public julia 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 @@ (define-public r-biased-urn 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 @@ (define-public r-genomation 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 @@ (define-public gegl (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 @@ (define-module (gnu packages machine-learning) #: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 @@ (define-public python-libsvm `(("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 @@ (define-module (guix scripts offload) #: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 @@ (define %store (%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 @@ (define %store (,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 @@ (define-public perl-image-magick (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 @@ (define-public imagemagick (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 @@ (define-public emacs-better-defaults (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 @@ (define-public v4l-utils (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 @@ (define-public obs (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 @@ (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)) - (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 @@ (define-public iftop (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 @@ (define-public avr-toolchain-5 (avr-toolchain avr-gcc-5)) (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 @@ (define-public ddrescue (define-public dosfstools (package (name "dosfstools") - (version "3.0.28") + (version "4.0") (source (origin (method url-fetch) @@ -132,14 +132,12 @@ (define-public dosfstools 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-module (gnu packages engineering) (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 @@ (define-public librecad (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 @@ (define-public emacs-wget (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 @@ (define-public emms #: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 @@ (define-public scrot 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 @@ (define-public scrot (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-module (gnu packages autogen) (define-public autogen (package (name "autogen") - (version "5.18.7") + (version "5.18.10") (source (origin (method url-fetch) @@ -39,7 +39,7 @@ (define-public autogen "/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 @@ (define-public autogen (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 @@ (define-public httpd (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 @@ (define-public python2-rope 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-module (gnu packages task-management) (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 @@ (define (package-location-string id-or-name) ((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 @@ (define* (package-source-build-derivation package-id #:key dry-run? (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 @@ (define-public emacs-constants (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 @@ (define-public xscreensaver (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 @@ (define (json-fetch* url) (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 @@ (define (set-store-permissions directory) (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 @@ (define-public autogen (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 @@ (define-public ant (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 @@ (define-public icedtea-6 ("mit-krb5" ,mit-krb5) ("nss" ,nss) ("libx11" ,libx11) + ("libxcomposite" ,libxcomposite) ("libxt" ,libxt) ("libxtst" ,libxtst) ("libxi" ,libxi) @@ -552,10 +554,10 @@ (define-public icedtea-6 ("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 @@ (define-public vte 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 @@ (define-module (gnu packages flashing-tools) #: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 @@ (define-public dfu-programmer 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 @@ (define-public python-py3status 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 @@ (define-public python-tblib (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 @@ (define-public python2-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 @@ (define-public libressl (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 @@ (define-public python2-acme (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 @@ (define-public libsrtp 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 @@ (define-public ruby-rspec-2 (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 @@ (define-public nlopt 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 @@ (define-public icecat ) #:modules ((ice-9 ftw) + (ice-9 rdelim) + (ice-9 match) ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases @@ -509,7 +511,48 @@ (define-public icecat (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 @@ (define-public linux-libre (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 @@ (define* (kernel-config system #:key variant) (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 @@ (define-public linux-libre (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 @@ (define-module (gnu packages terminals) #: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 @@ (define-module (gnu packages terminals) #: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 @@ (define-public tilda 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-module (gnu packages gdb) (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 @@ (define-public popt - 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 @@ (define-public ipopt 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 @@ (define-public ipopt ;; 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 @@ (define-public emacs-better-defaults 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 @@ (define-public emacs-smex 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 @@ (define-public emacs-js2-mode 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 @@ (define-public emacs-markdown-mode "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 @@ (define-public emacs-projectile 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 @@ (define-public emacs-elfeed "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 @@ (define-public emacs-rainbow-delimiters 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 @@ (define-public emacs-ido-completing-read+ 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 @@ (define-public emacs-ido-ubiquitous "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 @@ (define-public emacs-yaml-mode 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 @@ (define-public emacs-yaml-mode (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 @@ (define-public libressl (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 @@ (define-public python2-acme (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 @@ (define-public certbot (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 @@ (define-public wxwidgets `(("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-module (gnu packages imagemagick) (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 @@ (define-module (gnu packages rails) #: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 @@ (define-public deeptools (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 @@ (define-public diamond (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 @@ (define-public libcap-ng (define-public smartmontools (package (name "smartmontools") - (version "6.3") + (version "6.5") (source (origin (method url-fetch) (uri (string-append @@ -1261,7 +1261,7 @@ (define-public smartmontools 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 @@ (define-public python-sqlparse (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 @@ (define-module (gnu packages python) #: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 @@ (define-module (gnu packages python) #: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 @@ (define-public python-greenlet (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 @@ (define-public python-gevent (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 @@ (define-module (gnu packages lirc) #: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-module (gnu packages lirc) (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 @@ (define-public emacs-web-mode 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 @@ (define-public qt-4 (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 @@ (define-public python2-warpedlmm (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 @@ (define-public samtools-0.1 (delete 'configure)))))))) (define-public mosaik - (let ((commit "5c25216d")) + (let ((commit "5c25216d3522d6a33e53875cd76a6d65001e4e67")) (package (name "mosaik") (version "2.2.30") @@ -3259,10 +3259,10 @@ (define-public plink (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 @@ (define-public piranha ("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 @@ (define-module (gnu packages ci) #: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 @@ (define-public sfarklib (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 @@ (define-public sfarkxtc (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 @@ (define-public emacs-ob-ipython (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 @@ (define-public mars ;; 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 @@ (define-public nestopia-ue (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 @@ (define-public gnunet (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 @@ (define-public lilypond (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 @@ (define-public git-flow (method git-fetch) (uri (git-reference (url "https://github.com/nvie/gitflow/") - (commit "15aab26"))) + (commit "15aab26490facf285acef56cb5d61025eacb3a69"))) (sha256 (base32 "01fs97q76fdfnvmrh2cyjhywcs3pykf1dg58sy0frflnsdzs6prx")))) @@ -513,10 +513,10 @@ (define-public git-flow (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 @@ (define-public xf86-video-i128 (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 @@ (define-module (gnu packages networking) #: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 @@ (define-public iodine 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 @@ (define search-paths #: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 @@ (define-public krona-tools "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 @@ (define-public krona-tools (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 @@ (define-public krona-tools "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 @@ (define-public krona-tools (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 @@ (define* (user-processes-service file-systems #:key (grace-delay 4)) (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 @@ (define (urandom-seed-shepherd-service _) (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 @@ (define (urandom-seed-shepherd-service _) (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 @@ (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)))))) + 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 @@ (define-public ntp (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-module (gnu packages ntp) (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 @@ (define-public ntp "/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 @@ (define-public pidgin-otr (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 @@ (define-public emacs-helm @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 @@ (define-public qjson (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 @@ (define-public python-sip (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 @@ (define-public python-sip #: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 @@ (define-public python2-sip (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 @@ (define-public python2-pyqt (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 @@ (define-public python-pyqt `(#: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 chmlib (define-public calibre (package (name "calibre") - (version "2.51.0") + (version "2.58.0") (source (origin (method url-fetch) @@ -68,8 +69,8 @@ (define-public calibre 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 @@ (define-public python-pyqt-4 (define-public qtkeychain (package (name "qtkeychain") - (version "0.6.2") + (version "0.7.0") (source (origin (method url-fetch) @@ -643,7 +643,7 @@ (define-public qtkeychain "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 @@ (define-public ghc-aeson 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 @@ (define-public ghc-cmdargs "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 @@ (define-public ghc-http-types 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 @@ (define-public ghc-pandoc 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 @@ (define-public ghc-annotated-wl-pprint 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 @@ (define %commands (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 @@ (define (read-bournish port env) (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") +