aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi12
-rw-r--r--gnu/local.mk5
-rw-r--r--gnu/packages/admin.scm4
-rw-r--r--gnu/packages/algebra.scm11
-rw-r--r--gnu/packages/apr.scm8
-rw-r--r--gnu/packages/aspell.scm113
-rw-r--r--gnu/packages/bioinformatics.scm66
-rw-r--r--gnu/packages/calcurse.scm11
-rw-r--r--gnu/packages/commencement.scm15
-rw-r--r--gnu/packages/conkeror.scm4
-rw-r--r--gnu/packages/crypto.scm38
-rw-r--r--gnu/packages/emacs.scm116
-rw-r--r--gnu/packages/engineering.scm167
-rw-r--r--gnu/packages/ftp.scm6
-rw-r--r--gnu/packages/games.scm6
-rw-r--r--gnu/packages/gnupg.scm31
-rw-r--r--gnu/packages/gnuzilla.scm15
-rw-r--r--gnu/packages/golang.scm4
-rw-r--r--gnu/packages/gstreamer.scm2
-rw-r--r--gnu/packages/image.scm2
-rw-r--r--gnu/packages/java.scm17
-rw-r--r--gnu/packages/libcanberra.scm28
-rw-r--r--gnu/packages/lighting.scm4
-rw-r--r--gnu/packages/linux.scm12
-rw-r--r--gnu/packages/mail.scm51
-rw-r--r--gnu/packages/messaging.scm2
-rw-r--r--gnu/packages/mpd.scm8
-rw-r--r--gnu/packages/music.scm5
-rw-r--r--gnu/packages/networking.scm14
-rw-r--r--gnu/packages/node.scm10
-rw-r--r--gnu/packages/ocaml.scm179
-rw-r--r--gnu/packages/package-management.scm36
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch66
-rw-r--r--gnu/packages/patches/exiv2-CVE-2017-14860.patch48
-rw-r--r--gnu/packages/patches/wget-CVE-2017-6508.patch45
-rw-r--r--gnu/packages/patches/wget-fix-504-test-timeout.patch160
-rw-r--r--gnu/packages/patches/wget-perl-5.26.patch96
-rw-r--r--gnu/packages/perl.scm73
-rw-r--r--gnu/packages/php.scm4
-rw-r--r--gnu/packages/python.scm171
-rw-r--r--gnu/packages/scribus.scm79
-rw-r--r--gnu/packages/statistics.scm62
-rw-r--r--gnu/packages/syndication.scm36
-rw-r--r--gnu/packages/synergy.scm4
-rw-r--r--gnu/packages/terminals.scm33
-rw-r--r--gnu/packages/version-control.scm12
-rw-r--r--gnu/packages/video.scm146
-rw-r--r--gnu/packages/virtualization.scm16
-rw-r--r--gnu/packages/web.scm24
-rw-r--r--gnu/packages/webkit.scm4
-rw-r--r--gnu/packages/wget.scm13
-rw-r--r--gnu/packages/wine.scm6
-rw-r--r--gnu/packages/xml.scm4
-rw-r--r--gnu/packages/xorg.scm40
-rw-r--r--gnu/tests/install.scm2
-rw-r--r--guix/build/go-build-system.scm2
-rw-r--r--guix/download.scm77
-rw-r--r--guix/import/cpan.scm7
-rw-r--r--guix/import/elpa.scm7
-rw-r--r--guix/import/github.scm11
-rw-r--r--guix/scripts.scm14
-rw-r--r--guix/scripts/challenge.scm19
-rw-r--r--guix/scripts/gc.scm8
-rw-r--r--guix/scripts/graph.scm11
-rw-r--r--guix/scripts/hash.scm9
-rw-r--r--guix/scripts/lint.scm55
-rw-r--r--guix/scripts/package.scm3
-rw-r--r--guix/scripts/refresh.scm8
-rw-r--r--guix/scripts/size.scm3
-rwxr-xr-xguix/scripts/substitute.scm19
-rw-r--r--guix/scripts/weather.scm3
-rw-r--r--tests/cpan.scm4
73 files changed, 1735 insertions, 675 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index d7fabe9599..e4ba15cd2e 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3592,6 +3592,11 @@ package source code's remote URI and filesystem hierarchy structure. In
some cases, you will need to unpack the package's source code to a
different directory structure than the one indicated by the import path,
and @code{#:unpack-path} should be used in such cases.
+
+Packages that provide Go libraries should be installed along with their
+source code. The key @code{#:install-source?}, which defaults to
+@code{#t}, controls whether or not the source code is installed. It can
+be set to @code{#f} for packages that only provide executable files.
@end defvr
@defvr {Scheme Variable} glib-or-gtk-build-system
@@ -7276,6 +7281,13 @@ updating list of substitutes from 'https://guix.example.org'... 100.0%
local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
https://hydra.gnu.org/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs
+
+@dots{}
+
+6,406 store items were analyzed:
+ - 4,749 (74.1%) were identical
+ - 525 (8.2%) differed
+ - 1,132 (17.7%) were inconclusive
@end smallexample
@noindent
diff --git a/gnu/local.mk b/gnu/local.mk
index 329a71f214..a8f4e1e574 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -602,6 +602,8 @@ dist_patch_DATA = \
%D%/packages/patches/eudev-rules-directory.patch \
%D%/packages/patches/evilwm-lost-focus-bug.patch \
%D%/packages/patches/exim-CVE-2017-1000369.patch \
+ %D%/packages/patches/exiv2-CVE-2017-14860.patch \
+ %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch \
%D%/packages/patches/fastcap-mulGlobal.patch \
%D%/packages/patches/fastcap-mulSetup.patch \
%D%/packages/patches/fasthenry-spAllocate.patch \
@@ -1087,9 +1089,6 @@ dist_patch_DATA = \
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
%D%/packages/patches/weechat-python.patch \
- %D%/packages/patches/wget-CVE-2017-6508.patch \
- %D%/packages/patches/wget-fix-504-test-timeout.patch \
- %D%/packages/patches/wget-perl-5.26.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 \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index cb5e86d39a..8f3f3cd892 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1382,14 +1382,14 @@ of supported upstream metrics systems simultaneously.")
(define-public ansible
(package
(name "ansible")
- (version "2.3.1.0")
+ (version "2.4.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ansible" version))
(sha256
(base32
- "1xdr82fy8gahxh3586wm5k1bxksys7yl1f2n24shrk8gf99qyjyd"))
+ "0spv0kjaicwss4q52s727b6grdizcxpa0bbsfg26pgf5kjrayqfs"))
(patches (search-patches "ansible-wrap-program-hack.patch"))))
(build-system python-build-system)
(native-inputs
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 08940e4f90..ede137b22c 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -207,7 +207,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
(define-public giac-xcas
(package
(name "giac-xcas")
- (version "1.2.3-57")
+ (version "1.4.9-17")
(source (origin
(method url-fetch)
;; "~parisse/giac" is not used because the maintainer regularly
@@ -219,7 +219,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
"source/giac_" version ".tar.gz"))
(sha256
(base32
- "0a7c1r2rgsin671qy98yvwgkg6a81d0pp0p4p7sydhrfi1k9xpr1"))))
+ "0fabw706hixp4da4pgkbjrlf9gk4xrmv404f884jb24bnmb5hbax"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -229,13 +229,6 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
;; Some Makefiles contain hard-coded "/bin/cp".
(substitute* (find-files "doc" "^Makefile")
(("/bin/cp") (which "cp")))
- #t))
- (add-after 'unpack 'disable-broken-test
- (lambda _
- ;; Disable failing test. Actually, the results are correct but
- ;; a sorting discrepancy prevents the test from being validated.
- (substitute* "check/Makefile.in"
- (("chk_fhan16") ""))
#t)))))
(inputs
`(("fltk" ,fltk)
diff --git a/gnu/packages/apr.scm b/gnu/packages/apr.scm
index baadb41b60..62af24f0c7 100644
--- a/gnu/packages/apr.scm
+++ b/gnu/packages/apr.scm
@@ -30,14 +30,14 @@
(define-public apr
(package
(name "apr")
- (version "1.5.2")
+ (version "1.6.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/apr/apr-"
version ".tar.bz2"))
(sha256
(base32
- "0ypn51xblix5ys9xy7da3ngdydip0qqh9rdq8nz54w9aq8lys0vx"))
+ "0wiik6amxn6lkc55fv9yz5i3kbxnqbp36alrzabx1avsdp8hc7qk"))
(patches
(search-patches "apr-skip-getservbyname-test.patch"))
(patch-flags '("-p0"))))
@@ -65,14 +65,14 @@ around or take advantage of platform-specific deficiencies or features.")
(define-public apr-util
(package
(name "apr-util")
- (version "1.5.4")
+ (version "1.6.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/apr/apr-util-"
version ".tar.bz2"))
(sha256
(base32
- "0bn81pfscy9yjvbmyx442svf43s6dhrdfcsnkpxz43fai5qk5kx6"))))
+ "0nq3s1yn13vplgl6qfm09f7n0wm08malff9s59bqf9nid9xjzqfk"))))
(build-system gnu-build-system)
(inputs
`(("apr" ,apr)))
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index c97d32260b..3eeeee64fd 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -28,8 +28,9 @@
#:use-module (guix build-system gnu)
#:use-module (guix licenses)
#:use-module (gnu packages)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages base))
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages perl))
(define-public aspell
(package
@@ -115,6 +116,13 @@ dictionaries, including personal ones.")
(home-page "http://aspell.net/")))
+(define-public aspell-dict-ca
+ (aspell-dictionary "ca" "Catalan"
+ #:version "2.1.5-1"
+ #:sha256
+ (base32
+ "1fb5y5kgvk25nlsfvc8cai978hg66x3pbp9py56pldc7vxzf9npb")))
+
(define-public aspell-dict-de
(aspell-dictionary "de" "German"
#:version "20030222-1"
@@ -210,3 +218,104 @@ dictionaries, including personal ones.")
#:sha256
(base32
"1y09lx9zf2rnp55r16b2vgj953l3538z1vaqgflg9mdvm555bz3p")))
+
+
+;;;
+;;; Hunspell packages made from the Aspell word lists.
+;;;
+
+(define* (aspell-word-list language synopsis
+ #:optional
+ (nick (string-map (lambda (chr)
+ (if (char=? #\_ chr)
+ #\-
+ chr))
+ (string-downcase language))))
+ (package
+ (name (string-append "hunspell-dict-" nick))
+ (version "2017.08.24")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://downloads.sourceforge.net/wordlist/scowl-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1kdhydzg5z5x20ad2j1x5hbdhvy08ljkfdi2v3gbyvghbagxm15s"))))
+ (native-inputs
+ `(("tar" ,tar)
+ ("gzip" ,gzip)
+ ("perl" ,perl)
+ ("aspell" ,aspell)))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (replace 'build
+ (lambda _
+ (substitute* "speller/make-hunspell-dict"
+ (("zip -9 .*$")
+ "return\n"))
+ (mkdir "speller/hunspell")
+
+ ;; XXX: This actually builds all the dictionary variants.
+ (zero? (system* "make" "-C" "speller" "hunspell"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref %outputs "out"))
+ (hunspell (string-append out "/share/hunspell"))
+ (myspell (string-append out "/share/myspell"))
+ (doc (string-append out "/share/doc/"
+ ,name)))
+ (mkdir-p myspell)
+ (install-file ,(string-append "speller/" language ".aff")
+ hunspell)
+ (symlink hunspell (string-append myspell "/dicts"))
+ (for-each (lambda (file)
+ (install-file file doc))
+ (find-files "."
+ "^(Copyright|.*\\.(txt|org|md))$"))
+ #t))))))
+ (synopsis synopsis)
+ (description
+ "This package provides a dictionary for the Hunspell spell-checking
+library.")
+ (home-page "http://wordlist.aspell.net/")
+ (license (non-copyleft "file://Copyright"
+ "Word lists come from several sources, all
+under permissive licensing terms. See the 'Copyright' file."))))
+
+(define-syntax define-word-list-dictionary
+ (syntax-rules (synopsis)
+ ((_ name language (synopsis text))
+ (define-public name
+ (aspell-word-list language text)))
+ ((_ name language nick (synopsis text))
+ (define-public name
+ (aspell-word-list language text nick)))))
+
+(define-word-list-dictionary hunspell-dict-en
+ "en"
+ (synopsis "Hunspell dictionary for English"))
+
+(define-word-list-dictionary hunspell-dict-en-au
+ "en_AU"
+ (synopsis "Hunspell dictionary for Australian English"))
+
+(define-word-list-dictionary hunspell-dict-en-ca
+ "en_CA"
+ (synopsis "Hunspell dictionary for Canadian English"))
+
+(define-word-list-dictionary hunspell-dict-en-gb
+ "en_GB-ise" "en-gb"
+ (synopsis "Hunspell dictionary for British English, with -ise endings"))
+
+(define-word-list-dictionary hunspell-dict-en-gb-ize
+ "en_GB-ize"
+ (synopsis "Hunspell dictionary for British English, with -ize endings"))
+
+(define-word-list-dictionary hunspell-dict-en-us
+ "en_US"
+ (synopsis "Hunspell dictionary for United States English"))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 43a00f196c..987662fc89 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1836,64 +1836,6 @@ files between different genome assemblies. It supports most commonly used
file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
(license license:gpl2+)))
-(define-public cufflinks
- (package
- (name "cufflinks")
- (version "2.2.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://cole-trapnell-lab.github.io/"
- "cufflinks/assets/downloads/cufflinks-"
- version ".tar.gz"))
- (sha256
- (base32
- "1bnm10p8m7zq4qiipjhjqb24csiqdm1pwc8c795z253r2xk6ncg8"))))
- (build-system gnu-build-system)
- (arguments
- `(#:make-flags
- (list
- ;; The includes for "eigen" are located in a subdirectory.
- (string-append "EIGEN_CPPFLAGS="
- "-I" (assoc-ref %build-inputs "eigen")
- "/include/eigen3/")
- ;; Cufflinks must be linked with various boost libraries.
- (string-append "LDFLAGS="
- (string-join '("-lboost_system"
- "-lboost_serialization"
- "-lboost_thread"))))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-search-for-bam
- (lambda _
- (substitute* '("ax_bam.m4"
- "configure"
- "src/hits.h")
- (("<bam/sam\\.h>") "<samtools/sam.h>")
- (("<bam/bam\\.h>") "<samtools/bam.h>")
- (("<bam/version\\.hpp>") "<samtools/version.h>"))
- #t)))
- #:configure-flags
- (list (string-append "--with-bam="
- (assoc-ref %build-inputs "samtools")))))
- (inputs
- `(("eigen" ,eigen)
- ("samtools" ,samtools-0.1)
- ("htslib" ,htslib)
- ("boost" ,boost)
- ("python" ,python-2)
- ("zlib" ,zlib)))
- (home-page "http://cole-trapnell-lab.github.io/cufflinks/")
- (synopsis "Transcriptome assembly and RNA-Seq expression analysis")
- (description
- "Cufflinks assembles RNA transcripts, estimates their abundances,
-and tests for differential expression and regulation in RNA-Seq
-samples. It accepts aligned RNA-Seq reads and assembles the
-alignments into a parsimonious set of transcripts. Cufflinks then
-estimates the relative abundances of these transcripts based on how
-many reads support each one, taking into account biases in library
-preparation protocols.")
- (license license:boost1.0)))
-
(define-public cutadapt
(package
(name "cutadapt")
@@ -2117,7 +2059,7 @@ identify enrichments with functional annotations of the genome.")
(define-public diamond
(package
(name "diamond")
- (version "0.9.10")
+ (version "0.9.11")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2126,7 +2068,7 @@ identify enrichments with functional annotations of the genome.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "13qqzwg54n5dqh8pm5n3v8x6gqbczzakphwwjix63qv60hcd5bqd"))))
+ "1yqil5531p35xkqa44x75vvq8s7w8kqjqn1p5hf1nh0d91j9ihby"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no "check" target
@@ -6199,7 +6141,7 @@ SELECT or UPDATE queries to an end-point.")
(define-public vsearch
(package
(name "vsearch")
- (version "2.5.0")
+ (version "2.5.2")
(source
(origin
(method url-fetch)
@@ -6209,7 +6151,7 @@ SELECT or UPDATE queries to an end-point.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1k8wf3qns4mqrsizywbkqcasqjw000m4drxsag3qd7390pwvf9kz"))
+ "1z10psrwhflchwzw1fvzwnsn59xglf94qrn7msj93fpnjgafvmks"))
(patches (search-patches "vsearch-unbundle-cityhash.patch"))
(snippet
'(begin
diff --git a/gnu/packages/calcurse.scm b/gnu/packages/calcurse.scm
index 20a9a8fb47..44e90448cd 100644
--- a/gnu/packages/calcurse.scm
+++ b/gnu/packages/calcurse.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2017 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -38,13 +39,17 @@
(base32
"0il0y06akdqgy0f9p40m4x6arn66nh7sr1w1i41bszycs7div266"))))
(build-system gnu-build-system)
- (inputs `(("ncurses" ,ncurses)
- ("tzdata" ,tzdata)))
+ (inputs `(("ncurses" ,ncurses)))
+ (native-inputs `(("tzdata" ,tzdata-2017a)))
(arguments
;; The ical tests all want to create a ".calcurse" directory, and may
;; fail with "cannot create directory '.calcurse': File exists" if run
;; concurently.
- '(#:parallel-tests? #f
+ `(#:parallel-tests? #f
+ ;; Since this tzdata is only used for tests and not referenced by the
+ ;; built package, used the "fixed" obsolete version of tzdata and ensure
+ ;; it does not sneak in to the closure.
+ #:disallowed-references (,tzdata-2017a)
#:phases (modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda* (#:key inputs #:allow-other-keys)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 93199d210d..f3afb28e18 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -967,7 +967,7 @@ COREUTILS-FINAL vs. COREUTILS, etc."
;;; GCC toolchain.
;;;
-(define (gcc-toolchain gcc)
+(define (make-gcc-toolchain gcc)
"Return a complete toolchain for GCC."
(package
(name "gcc-toolchain")
@@ -1013,18 +1013,21 @@ and binaries, plus debugging symbols in the 'debug' output), and Binutils.")
("libc-debug" ,glibc-final "debug")))))
(define-public gcc-toolchain-4.8
- (gcc-toolchain gcc-4.8))
+ (make-gcc-toolchain gcc-4.8))
(define-public gcc-toolchain-4.9
- (gcc-toolchain gcc-4.9))
+ (make-gcc-toolchain gcc-4.9))
+
+(define-public gcc-toolchain
+ (make-gcc-toolchain gcc-final))
(define-public gcc-toolchain-5
- (gcc-toolchain gcc-final))
+ gcc-toolchain)
(define-public gcc-toolchain-6
- (gcc-toolchain gcc-6))
+ (make-gcc-toolchain gcc-6))
(define-public gcc-toolchain-7
- (gcc-toolchain gcc-7))
+ (make-gcc-toolchain gcc-7))
;;; commencement.scm ends here
diff --git a/gnu/packages/conkeror.scm b/gnu/packages/conkeror.scm
index d9722a1906..6145dbf445 100644
--- a/gnu/packages/conkeror.scm
+++ b/gnu/packages/conkeror.scm
@@ -29,7 +29,7 @@
(define-public conkeror
(package
(name "conkeror")
- (version "1.0.3")
+ (version "1.1.0")
(source (origin
(method url-fetch)
(uri
@@ -38,7 +38,7 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0ybmincxw3msnrfpby9gnckbq2x94c7fra2m66zham54cjc7mav3"))))
+ "0jz216mjwis7f03j98s4wkcrrq2j3f41fb2y47a5qszc340zhdzv"))))
(build-system gnu-build-system)
(inputs `(("icecat" ,icecat)))
(arguments
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 0021bee7b4..e17db289e5 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -664,3 +664,41 @@ of improving usability, security and speed.")
;; The compilation is distributed under the Boost license; the individual
;; files in the compilation are in the public domain.
(license (list license:boost1.0 license:public-domain))))
+
+(define-public python2-roca-detect
+ (package
+ (name "python2-roca-detect")
+ (version "1.0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "roca-detect" version))
+ (sha256
+ (base32
+ "1di4akyw2lf5r8zfwvyhkilz8jv8g4b66rgaqwfabmjwma6gnw27"))))
+ (build-system python-build-system)
+ (native-inputs
+ ;; TODO: apk_parse_ph4, pyjks
+ `(("python2-dateutil" ,python2-dateutil)
+ ("python2-six" ,python2-six)
+ ("python2-cryptography" ,python2-cryptography)
+ ("python2-future" ,python2-future)
+ ("python2-coloredlogs" ,python2-coloredlogs)
+ ("python2-pgpdump" ,python2-pgpdump)))
+ (arguments
+ `(;; Basic testing routine is quite simple and works with Py3
+ ;; but the rest of the code that processes the different
+ ;; key formats and extracts the modulus for inspection is
+ ;; not yet fully py3 ready.
+ #:python ,python-2))
+ (home-page "https://github.com/crocs-muni/roca")
+ (synopsis "ROCA detection tool")
+ (description
+ "This tool is related to the paper entitled @i{Return of the
+Coppersmith’s Attack: Practical Factorization of Widely Used RSA Moduli}. It
+enables you to test public RSA keys for a presence of the described
+vulnerability. Currently the tool supports the following key formats: X.509
+Certificate (DER encoded, PEM encoded), RSA PEM (encoded private key, public
+key), SSH public key, ASC-encoded OpenPGP key, APK Android application, LDIFF
+file, and more.")
+ (license license:gpl3)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index bc803892af..ad96093c3f 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1216,6 +1216,51 @@ Using emacs-direnv means that programs started from Emacs will use the
environment set through Direnv.")
(license license:gpl3+)))
+(define-public emacs-ggtags
+ (package
+ (name "emacs-ggtags")
+ (version "0.8.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://elpa.gnu.org/packages/ggtags-"
+ version ".el"))
+ (sha256
+ (base32
+ "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/leoliu/ggtags")
+ (synopsis "Frontend to the GNU Global source code tagging system")
+ (description "@code{ggtags} provides a frontend to the GNU Global source
+code tagging system.
+
+Features:
+
+@itemize
+@item Build on @code{compile.el} for asynchronicity and its large feature-set.
+@item Automatically update Global's tag files when needed with tuning for
+large source trees.
+@item Intuitive navigation among multiple matches with mode-line display of
+current match, total matches and exit status.
+@item Read tag with completion.
+@item Show definition at point.
+@item Jump to #include files.
+@item Support search history and saving a search to register/bookmark.
+@item Query replace.
+@item Manage Global's environment variables on a per-project basis.
+@item Highlight (definition) tag at point.
+@item Abbreviated display of file names.
+@item Support all Global search backends: @code{grep}, @code{idutils}, etc.
+@item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
+@code{pygments} backend.
+@item Support all Global's output formats: @code{grep}, @code{ctags-x},
+@code{cscope} etc.
+@item Support projects on remote hosts (e.g. via @code{tramp}).
+@item Support eldoc.
+@item Search @code{GTAGSLIBPATH} for references and symbols.
+@end itemize\n")
+ (license license:gpl3+)))
+
(define-public emacs-go-mode
(package
(name "emacs-go-mode")
@@ -1630,7 +1675,7 @@ allows easily move between them.")
(define-public emacs-s
(package
(name "emacs-s")
- (version "1.11.0")
+ (version "1.12.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1639,7 +1684,7 @@ allows easily move between them.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0krq5nz3llfx0vwdqn18pmq777ja0fac185w0h9qymppb1j1hvc2"))))
+ "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
(build-system emacs-build-system)
(arguments
`(#:phases
@@ -1698,7 +1743,7 @@ Stack Overflow, Super User, and other StackExchange sites.")
(define-public emacs-f
(package
(name "emacs-f")
- (version "0.18.2")
+ (version "0.19.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1707,7 +1752,7 @@ Stack Overflow, Super User, and other StackExchange sites.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1926shh2ymdsgz05c6q181mzzz1rci99ch568j151xi865jinyg5"))))
+ "05195n80ywa68qykxn7dza6qd59rhakvlzhaa9l6mcpmjf9l9grs"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-s" ,emacs-s)
@@ -2362,6 +2407,30 @@ front-ends. Company comes with many back-ends, e.g. @code{company-elisp}.
These are distributed in separate files and can be used individually.")
(license license:gpl3+)))
+(define-public emacs-company-quickhelp
+ (package
+ (name "emacs-company-quickhelp")
+ (version "2.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/expez/company-quickhelp/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-pos-tip" ,emacs-pos-tip)
+ ("emacs-company" ,emacs-company)))
+ (home-page "https://github.com/expez/company-quickhelp")
+ (synopsis "Popup documentation for completion candidates")
+ (description "@code{company-quickhelp} shows documentation for the
+completion candidate when using the Company text completion framework.")
+ (license license:gpl3+)))
+
(define-public emacs-multiple-cursors
(package
(name "emacs-multiple-cursors")
@@ -3039,7 +3108,7 @@ fully-functional one.")
(define-public emacs-hydra
(package
(name "emacs-hydra")
- (version "0.13.6")
+ (version "0.14.0")
(source
(origin
(method url-fetch)
@@ -3048,7 +3117,7 @@ fully-functional one.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0575vh858gm35p57s49dy6pc2ij46dmj9zaa4z0cp98sqra3j3l0"))))
+ "0884k3ffwzhh6krbd8l7vvm184dkagb2jf4q8xzg72plln34qrm8"))))
(build-system emacs-build-system)
(home-page "https://github.com/abo-abo/hydra")
(synopsis "Make Emacs bindings that stick around")
@@ -3568,7 +3637,7 @@ If you want to mark a folder manually as a project just create an empty
(define-public emacs-elfeed
(package
(name "emacs-elfeed")
- (version "2.1.1")
+ (version "2.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/skeeto/elfeed/archive/"
@@ -3576,7 +3645,7 @@ If you want to mark a folder manually as a project just create an empty
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1wlwc8fbkg6w1c8p856ikc20xm72f51clnzz419p0g8cavy27npw"))))
+ "0d7i93l3b0ck3iad9ddqp7sqa8w16hnamrby8bwvl316rqk4lzlf"))))
(build-system emacs-build-system)
(arguments
`(#:phases
@@ -3896,6 +3965,33 @@ for search-based navigation of buffers.")
"This Emacs library provides a Helm interface for Projectile.")
(license license:gpl3+)))
+(define-public emacs-helm-make
+ (let ((commit "786104ac0c3cf4fe5b53f841eb9fe10bda2e4031")
+ (revision "1"))
+ (package
+ (name "emacs-helm-make")
+ (version (string-append "0.1.0-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/abo-abo/helm-make.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0qdfk0p2j8jah7m0ngy2mm7775cn779m3a84yll86wqc74g331qs"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-helm" ,emacs-helm)
+ ("emacs-projectile" ,emacs-projectile)))
+ (home-page "https://github.com/abo-abo/helm-make")
+ (synopsis "Select a Makefile target with helm")
+ (description "@code{helm-make} or @code{helm-make-projectile} will give
+you a @code{helm} selection of directory Makefile's targets. Selecting a
+target will call @code{compile} on it.")
+ (license license:gpl3+))))
+
(define-public emacs-cider
(package
(name "emacs-cider")
@@ -4564,7 +4660,7 @@ mode-line.")
(define-public emacs-yasnippet
(package
(name "emacs-yasnippet")
- (version "0.12.0")
+ (version "0.12.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/joaotavora/yasnippet/"
@@ -4572,7 +4668,7 @@ mode-line.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1yqiprighgqz1hsslph50cy09xxqabc06jffrnjcsdf6nj70xlkc"))
+ "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index c9e184d7d5..911f519e2f 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -42,10 +42,12 @@
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
+ #:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages fpga)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
@@ -54,6 +56,7 @@
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages image)
@@ -626,8 +629,8 @@ language.")
;; We use kicad from a git commit, because support for boost 1.61.0 has been
;; recently added.
(define-public kicad
- (let ((commit "4ee344e150bfaf3a6f3f7bf935fb96ae07c423fa")
- (revision "1"))
+ (let ((commit "5f4599fb56da4dd748845ab10abec02961d477f3")
+ (revision "2"))
(package
(name "kicad")
(version (string-append "4.0-" revision "."
@@ -639,7 +642,7 @@ language.")
(url "https://git.launchpad.net/kicad")
(commit commit)))
(sha256
- (base32 "0kf6r92nps0658i9n3p9vp5dzbssmc22lvjv5flyvnlf83l63s4n"))
+ (base32 "1833pln2975gmc5s18xf7s8m9vg834lmxxdjk0wlk3lq7bvjjnff"))
(file-name (string-append name "-" version "-checkout"))))
(build-system cmake-build-system)
(arguments
@@ -661,6 +664,7 @@ language.")
(assoc-ref %build-inputs "wxpython")
"/include/wx-3.0")
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
+ "-DKICAD_SPICE=TRUE"
;; TODO: Enable this when CA certs are working with curl.
"-DBUILD_GITHUB_PLUGIN=OFF")
#:phases
@@ -679,6 +683,14 @@ language.")
`("PYTHONPATH" ":" prefix (,path))
`("PATH" ":" prefix
(,(string-append python "/bin:")))))
+ #t))
+ (add-after 'wrap-program 'install-lib-3d
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (for-each
+ (lambda (file)
+ (install-file file (string-append (assoc-ref outputs "out")
+ "/lib")))
+ (find-files "." "^libkicad_3dsg.*"))
#t)))))
(native-inputs
`(("boost" ,boost)
@@ -693,6 +705,7 @@ language.")
("glew" ,glew)
("glm" ,glm)
("hicolor-icon-theme" ,hicolor-icon-theme)
+ ("libngspice" ,libngspice)
("libsm" ,libsm)
("mesa" ,mesa)
("openssl" ,openssl)
@@ -708,7 +721,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(license license:gpl3+))))
(define-public kicad-library
- (let ((version "4.0.4"))
+ (let ((version "4.0.6"))
(package
(name "kicad-library")
(version version)
@@ -719,7 +732,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
version ".tar.gz"))
(sha256
(base32
- "1wyda58y39lhxml0xv1ngvddi0nqihx9bnlza46ajzms38ajvh12"))))
+ "16f47pd6f0ddsdxdrp327nr9v05gl8c24d0qypq2aqx5hdjmkp7f"))))
(build-system cmake-build-system)
(arguments
`(#:out-of-source? #t
@@ -762,7 +775,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
version ".tar.gz"))
(sha256
(base32
- "0ya4gg6clz3vp2wrb67xwg0bhwh5q8ag39jjmpcp4zjcqs1f48rb"))))))
+ "0vmgqhdw05k5fdnqv42grnvlz7v75g9md82jp2d3dvw2zw050lfb"))))))
(home-page "http://kicad-pcb.org/")
(synopsis "Libraries for kicad")
(description "This package provides Kicad component, footprint and 3D
@@ -1441,25 +1454,62 @@ parallel computing platforms. It also supports serial execution.")
(string-append (assoc-ref inputs "coreutils")
"/bin/cat")))
#t))
+ (add-after 'patch-pkg-config 'setenv
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CXX" (string-append (assoc-ref inputs "gcc")
+ "/bin/g++"))
+ (setenv "SYSTEM_LIBTOOL" (string-append (assoc-ref inputs "libtool")
+ "/bin/libtool"))
+ #t))
+ (add-after 'setenv 'patch-gvhdl
+ (lambda _
+ (substitute* "v2cc/gvhdl.in"
+ (("--mode=link") "--mode=link --tag=CXX")
+ (("-lm") "-lm FREEHDL/lib/freehdl/libieee.la"))
+ #t))
+ (add-after 'patch-gvhdl 'patch-freehdl-gennodes
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "freehdl/freehdl-gennodes.in"
+ (("guile")
+ (string-append (assoc-ref inputs "guile") "/bin/guile"))
+ (("\\(debug") ";(debug")
+ (("\\(@ ") "(apply-emit")
+ (("\\(@@ ") "(apply-mini-format"))
+ #t))
(add-after 'configure 'patch-freehdl-pc
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "freehdl.pc"
(("=g\\+\\+")
- (string-append "=" (assoc-ref inputs "gcc")
+ (string-append "=" (assoc-ref inputs "gcc-toolchain")
"/bin/g++"))
(("=libtool")
(string-append "=" (assoc-ref inputs "libtool")
"/bin/libtool")))
#t))
(add-after 'install-scripts 'make-wrapper
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
+ ;; 'gvhdl' invokes the C compiler directly, so hard-code its
+ ;; file name.
+ (wrap-program (string-append out "/bin/gvhdl")
+ `("CPLUS_INCLUDE_PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "gcc-toolchain")
+ "/include")))
+ `("LIBRARY_PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "gcc-toolchain")
+ "/lib")))
+ `("PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "gcc-toolchain")
+ "/bin")
+ ,(string-append (assoc-ref inputs "coreutils")
+ "/bin"))))
(wrap-program (string-append out "/bin/freehdl-config")
`("PKG_CONFIG_PATH" ":" prefix (,(string-append out "/lib/pkgconfig")))))
#t)))))
(inputs
`(("coreutils" ,coreutils)
- ("gcc" ,gcc)
+ ("gcc-toolchain" ,gcc-toolchain)
+ ("guile" ,guile-2.2)
("perl" ,perl)
("pkg-config" ,pkg-config)
("libtool" ,libtool)))
@@ -1474,3 +1524,102 @@ parallel computing platforms. It also supports serial execution.")
(license (list license:gpl2+
license:lgpl2.0+)))) ; freehdl's libraries
+(define-public qucs
+ (package
+ (name "qucs")
+ (version "0.0.19")
+ (source (origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "https://sourceforge.net/projects/qucs/files/qucs/" version
+ "/qucs-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0giv9gfyfdizvjhq56x2pdncrlyv3k15lrsh6pk37i94vr7l7ij5"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'patch-configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "qucs/configure"
+ (("\\$QTDIR") (assoc-ref inputs "qt4")))
+ #t))
+ (add-after 'patch-configure 'patch-scripts
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* '("qucs/qucs/qucsdigi"
+ "qucs/qucs/qucsdigilib"
+ "qucs/qucs/qucsveri")
+ (("\\$BINDIR")
+ (string-append (assoc-ref outputs "out") "/bin"))
+ (("freehdl-config")
+ (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-config"))
+ (("freehdl-v2cc")
+ (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-v2cc"))
+ (("cp ")
+ (string-append (assoc-ref inputs "coreutils") "/bin/cp "))
+ (("glibtool")
+ (string-append (assoc-ref inputs "libtool") "/bin/libtool"))
+ (("sed")
+ (string-append (assoc-ref inputs "sed") "/bin/sed"))
+ (("iverilog")
+ (string-append (assoc-ref inputs "iverilog") "/bin/iverilog"))
+ (("vvp")
+ (string-append (assoc-ref inputs "iverilog") "/bin/vvp")))
+ #t))
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; The test suite requires a running X server.
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")
+ #t))
+ (add-after 'install 'make-wrapper
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; 'qucs' directly invokes gcc, hence this wrapping.
+ (wrap-program (string-append out "/bin/qucs")
+ `("CPLUS_INCLUDE_PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "gcc-toolchain")
+ "/include")))
+ `("PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "gcc-toolchain")
+ "/bin")))
+ `("LIBRARY_PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "gcc-toolchain")
+ "/lib")))
+ `("ADMSXMLBINDIR" ":" prefix
+ (,(string-append (assoc-ref inputs "adms") "/bin")))
+ `("ASCOBINDIR" ":" prefix
+ (,(string-append (assoc-ref inputs "asco") "/bin")))
+ `("QUCS_OCTAVE" ":" prefix
+ (,(string-append (assoc-ref inputs "octave") "/bin/octave")))))
+ #t)))
+ #:parallel-build? #f ; race condition
+ #:configure-flags '("--disable-doc"))) ; we need octave-epstk
+ (native-inputs
+ `(("gperf" ,gperf)
+ ("libtool-native" ,libtool)
+ ("python" ,python-2) ; for tests
+ ("matplotlib" ,python2-matplotlib) ; for tests
+ ("numpy" ,python2-numpy) ; for tests
+ ("xorg-server" ,xorg-server))) ; for tests
+ (inputs
+ `(("adms" ,adms)
+ ("asco" ,asco)
+ ("coreutils" ,coreutils)
+ ("freehdl" ,freehdl)
+ ("gcc-toolchain" ,gcc-toolchain)
+ ("iverilog" ,iverilog)
+ ("libtool" ,libtool)
+ ("octave" ,octave)
+ ("qt4" ,qt-4)
+ ("sed" ,sed)))
+ (home-page "http://qucs.sourceforge.net/")
+ (synopsis "Circuit simulator with graphical user interface")
+ (description
+ "Qucs is a circuit simulator with graphical user interface. The software
+aims to support all kinds of circuit simulation types---e.g. DC, AC,
+S-parameter, transient, noise and harmonic balance analysis. Pure digital
+simulations are also supported.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index cbec25be15..9f4e4fc1c3 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
@@ -173,7 +173,7 @@ as required.")
(define-public libfilezilla
(package
(name "libfilezilla")
- (version "0.11.0")
+ (version "0.11.1")
(source
(origin
(method url-fetch)
@@ -181,7 +181,7 @@ as required.")
name "/" name "-" version ".tar.bz2"))
(sha256
(base32
- "1l4yhw269dyarqb2spqhycxzzyfn8pj4qh9vfycdw1c93hj6fx6c"))))
+ "1xv4is3zaz66h6iblj9pikapsjasjcbxx31bhkgn62xdq1sadfpc"))))
(build-system gnu-build-system)
(native-inputs
`(("cppunit" ,cppunit)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 61eed39ef0..896d53412e 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -2648,6 +2648,12 @@ Transport Tycoon Deluxe.")
`(#:tests? #f ;; no tests available
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-usr-share-paths
+ (lambda* (#:key make-flags outputs #:allow-other-keys)
+ ;; Fix some references to /usr/share.
+ (substitute* "src/openrct2/platform/linux.c"
+ (("/usr/share")
+ (string-append (assoc-ref %outputs "out") "/share")))))
(add-after 'build 'fix-cmake-install-file
(lambda _
;; The build system tries to download a file and compare hashes.
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 1d69e48d13..52a8a75739 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -965,3 +965,34 @@ keyring content. Parcimonie is a daemon that fetches one key at a time using
the Tor network, waits a bit, changes the Tor circuit being used, and starts
over.")
(license license:gpl1+)))
+
+(define-public python2-pgpdump
+ (package
+ (name "python2-pgpdump")
+ (version "1.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pgpdump" version))
+ (sha256
+ (base32
+ "0s4nh8h7qsdj2yf29bspjs1zvxd4lcd11r6g11dp7fppgf2h0iqw"))))
+ (build-system python-build-system)
+
+ ;; Currently fails to build with Python 3.
+ (arguments `(#:python ,python-2))
+
+ (home-page "https://github.com/toofishes/python-pgpdump")
+ (synopsis "Python library for parsing PGP packets")
+ (description
+ "Python-pgpdump is an OpenPGP packet parser based on
+@uref{http://www.mew.org/~kazu/proj/pgpdump/, pgpdump}. It notably supports:
+
+@itemize
+@item signature packets;
+@item public key packets;
+@item secret key packets;
+@item trust, user ID, and user attribute packets;
+@item ASCII-armor decoding and CRC check.
+@end itemize\n")
+ (license license:bsd-3)))
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 2d607360c2..1b52732a78 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -450,7 +450,20 @@ standards.")
(mozilla-patch "icecat-bug-1400003.patch" "3af5bf8bdea0" "07az28dnpxr36j7i3llxkrlkrmg0bwk4f3sm75x1f0r1v5575p3p")
(mozilla-patch "icecat-bug-1407751.patch" "592df6088926" "1gy27idik4b6wcg4szww08cmpcljssja8wql6w1d807h7ni65lr7")
(mozilla-patch "icecat-bug-1261175.patch" "77a2d4610275" "13ysbwflnysj4rs45ibckd621s0vyg1s8dvannlvanvrz1g72zcz")
- (mozilla-patch "icecat-bug-1394265.patch" "2b30335d0b95" "0hs5cwickvfw7r5dn7y148jgr2b21hl613qp83k56634d0y64qwp")))
+ (mozilla-patch "icecat-bug-1394265.patch" "2b30335d0b95" "0hs5cwickvfw7r5dn7y148jgr2b21hl613qp83k56634d0y64qwp")
+ (mozilla-patch "icecat-bug-1397811.patch" "d6f008f95598" "0xclxrbg7pv8pa2j15p0gy9c8sigy2i9j0kvazl5fbyg6jsg3xgd")
+ (mozilla-patch "icecat-bug-1407740.patch" "ab9b51cd75ac" "08jy3rbkyh934aw261ls0s87947d2mhss7xqk1xfdir9crij2g27")
+ (mozilla-patch "icecat-bug-1343147-pt1.patch" "971d6345bc3a" "13791cvc51i991i5qyz6gp94vwzwkx479bnr8fsf8dw7z72wrsch")
+ (mozilla-patch "icecat-bug-1343147-pt2.patch" "60df7db06669" "0r372g1zksvkzyz0qpq0mp30frilgsfxxx2xida8xc08wgxp5lh9")
+ (mozilla-patch "icecat-bug-1408005.patch" "df49c25e6e4c" "0j77xbkxpflqf4jlccrv61vq0jgp4lfn8kb0zw1lswp3cyd6ml4i")
+ (mozilla-patch "icecat-bug-1411458.patch" "3b899f872623" "01zjcpm8yp4s8yf4mj1bzq01aylmi69kd8qv0rrcl9hmj4g3pzr2")
+ (mozilla-patch "icecat-bug-1387799.patch" "3d6d558ae6a6" "17wynknvs5wi7m9g5vn43rjmivbg1l6pnv8jymz1ccidy27qgdqi")
+ (mozilla-patch "icecat-bug-1408412.patch" "8426754b7130" "0bbm2294bkvld55rdbpsc8b82ljqdcxpbg6cwdzvwfhqayl2pnqm")
+ (mozilla-patch "icecat-bug-1406750.patch" "5ddd5d2aa769" "12z5i8h6qwjb1h1fvp2426bgsnsxx539d8k2is9x1q4133356niy")
+ (mozilla-patch "icecat-bug-1404636.patch" "dd068f4e132a" "17qy9c1vfkz3pj6y8qmqbic73wrangsbdlylk2s54nbzhhp9cj1g")
+ (mozilla-patch "icecat-bug-1406398.patch" "e6bd533b57e9" "1mmqav9yhxd0j47yffcdykaqjibfwjsk0jn0f44099s87y8qn9zy")
+ (mozilla-patch "icecat-bug-1401804.patch" "2a87fb6b9c07" "0z0scw4y1vqhqkbw1ag14g8xrif14l95x7fd50q2sw425lli29lc")
+ (mozilla-patch "icecat-bug-1404910.patch" "5007f2472f64" "0ns1l4yipwbb52sps2xzg30qd1rkpwykxq4chjg3wllhmcxbvvpw")))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index f97f6f1711..b8f86ac5fd 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -205,7 +205,7 @@ sequential processes (CSP) concurrent programming features added.")
(package
(inherit go-1.4)
(name "go")
- (version "1.9.1")
+ (version "1.9.2")
(source
(origin
(method url-fetch)
@@ -213,7 +213,7 @@ sequential processes (CSP) concurrent programming features added.")
name version ".src.tar.gz"))
(sha256
(base32
- "03jmrgqq852wqyphvd8p46i32f72xki3bmylhkxf0kynqyfzqjm8"))))
+ "1p23n4xzbknl3bbhlckbvxbhpxknd5rn0i2szmn9i2dcz15ihpv6"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.4)
((#:phases phases)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index c308dc9f34..c87465db09 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -409,7 +409,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
("python" ,python)))
(inputs
`(("gst-plugins-base" ,gst-plugins-base)
- ("ffmpeg" ,ffmpeg)
+ ("ffmpeg" ,ffmpeg-3.3)
("orc" ,orc)
("zlib" ,zlib)))
(home-page "http://gstreamer.freedesktop.org/")
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 7d23d41be0..591c163ac3 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -866,6 +866,8 @@ channels.")
version ".tar.gz")
(string-append "https://fossies.org/linux/misc/exiv2-"
version ".tar.gz")))
+ (patches (search-patches "exiv2-CVE-2017-14860.patch"
+ "exiv2-CVE-2017-14859-14862-14864.patch"))
(sha256
(base32
"1yza317qxd8yshvqnay164imm0ks7cvij8y8j86p1gqi1153qpn7"))))
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index ff5f1c9ae6..1fcd237d55 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1405,6 +1405,23 @@ bootstrapping purposes.")
(copy-recursively "openjdk.build/j2re-image" jre)
(copy-recursively "openjdk.build/j2sdk-image" jdk))
#t))
+ ;; Some of the libraries in the lib/amd64 folder link to libjvm.so.
+ ;; But that shared object is located in the server/ folder, so it
+ ;; cannot be found. This phase creates a symbolic link in the
+ ;; lib/amd64 folder so that the other libraries can find it.
+ ;;
+ ;; See:
+ ;; https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00169.html
+ ;;
+ ;; FIXME: Find the bug in the build system, so that this symlink is
+ ;; not needed.
+ (add-after 'install 'install-libjvm
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((lib-path (string-append (assoc-ref outputs "out")
+ "/lib/amd64")))
+ (symlink (string-append lib-path "/server/libjvm.so")
+ (string-append lib-path "/libjvm.so")))
+ #t))
;; By default IcedTea only generates an empty keystore. In order to
;; be able to use certificates in Java programs we need to generate a
;; keystore from a set of certificates. For convenience we use the
diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm
index 941d3dcc45..9af6b40ffc 100644
--- a/gnu/packages/libcanberra.scm
+++ b/gnu/packages/libcanberra.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
+;;; Copyright © 2017 ng0 <ng0@infotropique.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,8 +25,11 @@
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#:use-module (guix build utils)
+ #:use-module (guix utils)
#:use-module (gnu packages autotools)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
@@ -33,6 +37,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
#:use-module (gnu packages xiph))
(define-public libcanberra
@@ -126,3 +131,26 @@ sounds for various system events.")
(license (list cc-by-sa4.0 cc-by3.0 gpl2 gpl2+))
(home-page "http://www.freedesktop.org/wiki/Specifications/sound-theme-spec/")))
+
+(define-public python-pycanberra
+ (package
+ (name "python-pycanberra")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://dist.ng0.infotropique.org/releases/"
+ "pycanberra/pycanberra-" version ".tar.xz"))
+ (sha256
+ (base32
+ "16jjf8fcgaprmz6jacsxrh17l1ad891fns38bxv49lg3s3mn1nj2"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;No tests included.
+ (propagated-inputs
+ `(("libcanberra" ,libcanberra)))
+ (synopsis "Ctypes wrapper for the libcanberra API")
+ (description
+ "Pycanberra is a basic Python wrapper for libcanberra.")
+ (home-page "https://git.ng0.infotropique.org/pycanberra/")
+ (license lgpl2.1+)))
diff --git a/gnu/packages/lighting.scm b/gnu/packages/lighting.scm
index ab7069b53b..18512105cb 100644
--- a/gnu/packages/lighting.scm
+++ b/gnu/packages/lighting.scm
@@ -37,7 +37,7 @@
(define-public ola
(package
(name "ola")
- (version "0.10.4")
+ (version "0.10.5")
(source (origin
(method url-fetch)
(uri (string-append
@@ -46,7 +46,7 @@
(patches (search-patches "ola-readdir-r.patch"))
(sha256
(base32
- "01zpm0vpin784jyjhbdad097a4i0cjdfrqqfbsvx47d6nbssq2my"))))
+ "10q25mln4m628f1b2jgsdcw2398hsrhydnxjzi60w9yds3sdrpz9"))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index d4df711266..9c7bc67fcb 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -368,8 +368,8 @@ It has been modified to remove all non-free binary blobs.")
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
-(define %linux-libre-version "4.13.9")
-(define %linux-libre-hash "1ymsdvm4djh7hg2wmn2v11w380i0ss9nkp4slfrgihdvn6yp5gbv")
+(define %linux-libre-version "4.13.10")
+(define %linux-libre-hash "0y1p5b1rxpbr3apvqqv589qwzfyzjpdrzysfj4h17s0k4gy6c5p8")
(define-public linux-libre
(make-linux-libre %linux-libre-version
@@ -378,14 +378,14 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config))
(define-public linux-libre-4.9
- (make-linux-libre "4.9.58"
- "0f1yxdvzdr1zfkh86i9z0p7ywdlz0blxnd11wbnw763qyk3qydyk"
+ (make-linux-libre "4.9.59"
+ "0z8hq8a6ic38xh33idzl0k0yi4isgd7ncl2g1d6mzf9ixw5krhvc"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.94"
- "0g63is8d2k1mf1kaljkll79n7gzh4qn0fmrm2r9sab2sq41hch1m"
+ (make-linux-libre "4.4.95"
+ "1k2lp1jgbm5xkl3qf0cqmp07hlv03jaws68l3irid95j99prsw0b"
%intel-compatible-systems
#:configuration-file kernel-config))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index e9a7283cf2..1ae88a02e8 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -275,9 +275,8 @@ operating systems.")
(define-public neomutt
(package
- (inherit mutt)
(name "neomutt")
- (version "20171013")
+ (version "20171027")
(source
(origin
(method url-fetch)
@@ -285,7 +284,8 @@ operating systems.")
"/archive/" name "-" version ".tar.gz"))
(sha256
(base32
- "0mcs5rhlajyxl0bw2hpwcwx14rzrgk6sf8yr0gdj1di3sq166z2s"))))
+ "10z523cy3s6syh0mwpsncl87wrvyzsk99y7nzicwvx6y3hmdw01d"))))
+ (build-system gnu-build-system)
(inputs
`(("cyrus-sasl" ,cyrus-sasl)
("gdbm" ,gdbm)
@@ -323,7 +323,6 @@ operating systems.")
"--without-ssl"
"--with-sasl"
- "--with-regex"
"--enable-smime"
"--enable-notmuch"
"--with-idn"
@@ -333,8 +332,6 @@ operating systems.")
;; in the chroot. The workaround is this.
"--with-mailpath=/var/mail"
- "--with-external-dotlock"
-
(string-append "--with-curses="
(assoc-ref %build-inputs "ncurses")))
#:phases
@@ -346,7 +343,8 @@ operating systems.")
(synopsis "Command-line mail reader based on Mutt")
(description
"NeoMutt is a command-line mail reader which is based on mutt.
-It adds a large amount of new and improved features to mutt.")))
+It adds a large amount of new and improved features to mutt.")
+ (license gpl2+)))
(define-public gmime
(package
@@ -428,7 +426,7 @@ and corrections. It is based on a Bayesian filter.")
(define-public offlineimap
(package
(name "offlineimap")
- (version "7.1.3")
+ (version "7.1.4")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
@@ -436,7 +434,7 @@ and corrections. It is based on a Bayesian filter.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0iaznh8q3fmia43r0600vrd3w8njis1x65ry9fv3zsyx0ili1z02"))))
+ "0m34iks3l9p6shqkgfhfpiccglm6gk5nj98x20pvahl58nclmzn6"))))
(build-system python-build-system)
(native-inputs
`(("asciidoc" ,asciidoc)))
@@ -548,7 +546,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
;; TODO: Add webkit and gtk to build the mug GUI.
(inputs
`(("xapian" ,xapian)
- ("guile" ,guile-2.0)
+ ("guile" ,guile-2.2)
("glib" ,glib)
("gmime" ,gmime)
("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c
@@ -567,7 +565,19 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
;; the lispdir anyway, so we have to modify "configure.ac".
(lambda _
(substitute* "configure"
- (("^ +lispdir=\"\\$\\{lispdir\\}/mu4e/\".*") ""))
+ (("^ +lispdir=\"\\$\\{lispdir\\}/mu4e/\".*") "")
+ ;; Use latest Guile
+ (("guile-2.0") "guile-2.2"))
+ (substitute* '("guile/Makefile.in"
+ "guile/mu/Makefile.in")
+ (("share/guile/site/2.0/") "share/guile/site/2.2/"))
+ #t))
+ (add-before 'install 'fix-ffi
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "guile/mu.scm"
+ (("\"libguile-mu\"")
+ (format #f "\"~a/lib/libguile-mu\""
+ (assoc-ref outputs "out"))))
#t))
(add-before 'check 'check-tz-setup
(lambda* (#:key inputs #:allow-other-keys)
@@ -1363,7 +1373,7 @@ identify a message uniquely.")
(define-public perl-email-mime
(package
(name "perl-email-mime")
- (version "1.940")
+ (version "1.946")
(source
(origin
(method url-fetch)
@@ -1371,7 +1381,7 @@ identify a message uniquely.")
"Email-MIME-" version ".tar.gz"))
(sha256
(base32
- "0pnxbr16cn5qy96xqhp9zmd94ashc9ivqh10qbgbc3f637a0mfir"))))
+ "0z1k3i0lzp2k421gc8f3wq0jbqflkbw2xqd2k7n7pmv56417kvk8"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-email-address" ,perl-email-address)
@@ -1379,7 +1389,8 @@ identify a message uniquely.")
("perl-email-mime-contenttype" ,perl-email-mime-contenttype)
("perl-email-mime-encodings" ,perl-email-mime-encodings)
("perl-email-simple" ,perl-email-simple)
- ("perl-mime-types" ,perl-mime-types)))
+ ("perl-mime-types" ,perl-mime-types)
+ ("perl-module-runtime" ,perl-module-runtime)))
(home-page "http://search.cpan.org/dist/Email-MIME")
(synopsis "MIME message handling")
(description "Email::MIME is an extension of the Email::Simple module, to
@@ -1391,7 +1402,7 @@ message. Headers are decoded from MIME encoding.")
(define-public perl-email-mime-contenttype
(package
(name "perl-email-mime-contenttype")
- (version "1.018")
+ (version "1.022")
(source
(origin
(method url-fetch)
@@ -1399,7 +1410,7 @@ message. Headers are decoded from MIME encoding.")
"Email-MIME-ContentType-" version ".tar.gz"))
(sha256
(base32
- "1y8hpwm7p5a9y2azy0cgvlv2i2d0nj66ajfa0fj51wdq4w9cs23m"))))
+ "042kxhs3bp1ab9z0mbr1wy21ld4lxd6v2a2mmrashqnsn2075fws"))))
(build-system perl-build-system)
(native-inputs
`(("perl-capture-tiny" ,perl-capture-tiny)))
@@ -1432,7 +1443,7 @@ header.")
(define-public perl-email-sender
(package
(name "perl-email-sender")
- (version "1.300028")
+ (version "1.300031")
(source
(origin
(method url-fetch)
@@ -1440,7 +1451,7 @@ header.")
"Email-Sender-" version ".tar.gz"))
(sha256
(base32
- "0c5dv1x9856nryj5mcbgb67a4irmadz80g0qnf4van3bd8wbj72a"))))
+ "052g0slw3h2lzn93j71fi47nfawww2aph4jhr3c860ji70lkf4n4"))))
(build-system perl-build-system)
(native-inputs
`(("perl-capture-tiny" ,perl-capture-tiny)))
@@ -1464,7 +1475,7 @@ Email::Send library.")
(define-public perl-email-simple
(package
(name "perl-email-simple")
- (version "2.213")
+ (version "2.214")
(source
(origin
(method url-fetch)
@@ -1472,7 +1483,7 @@ Email::Send library.")
"Email-Simple-" version ".tar.gz"))
(sha256
(base32
- "1ibwsng63gvqqc6r2135mjwfdzazxkb1x8q7f87wqcbjcjfpmffd"))))
+ "14kb86hi0m0bqc7kxpm4x5kvfsyj2x86gggbvpxhx9hy8hvjpw5j"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-email-date-format" ,perl-email-date-format)))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index cd9c41fccf..72dbbcd1e9 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -822,7 +822,7 @@ instant messenger with audio and video chat capabilities.")
(("TIMESTAMP") "\"\""))
#t)))))
(inputs
- `(("ffmpeg" ,ffmpeg)
+ `(("ffmpeg" ,ffmpeg-3.3)
("glib" ,glib)
("gtk+" ,gtk+-2)
("libsodium" ,libsodium)
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 4ed0303be1..c305e457cb 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -75,7 +75,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd
(package
(name "mpd")
- (version "0.20.10")
+ (version "0.20.11")
(source (origin
(method url-fetch)
(uri
@@ -84,7 +84,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
"/mpd-" version ".tar.xz"))
(sha256
(base32
- "089i9lh3fa8bix6v0sq0jgs7rkpk8l6q5lmdk6lip96vbh9c3ysj"))))
+ "1g0lwm8p98q2hxa9vd6jx61s7d3r665s2bmz6ipkv9ijmyfps8p9"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -195,7 +195,7 @@ terminal using ncurses.")
(define-public ncmpcpp
(package
(name "ncmpcpp")
- (version "0.8")
+ (version "0.8.1")
(source (origin
(method url-fetch)
(uri
@@ -203,7 +203,7 @@ terminal using ncurses.")
version ".tar.bz2"))
(sha256
(base32
- "0nj6ky805a55acj0w57sbn3vfmmkbqp97rhbi0q9848n10f2l3rg"))))
+ "1zw8d07b2bkssbsybg6jnmpq001w525viajrnz4jvfml3l55gyad"))))
(build-system gnu-build-system)
(inputs `(("libmpdclient" ,libmpdclient)
("boost" ,boost)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 2fd38362c2..f5df440709 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -3316,6 +3316,11 @@ notation and includes basic support for digital audio.")
`(#:tests? #f ; no tests included
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'remove-architecture-specific-flags
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("-msse2 -mfpmath=sse") ""))
+ #t))
(add-after 'unpack 'build-faust-sources
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "faust"
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index a6c1042978..57b32c252f 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016, 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
-;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
@@ -322,14 +322,14 @@ receiving NDP messages.")
(define-public ethtool
(package
(name "ethtool")
- (version "4.11")
+ (version "4.13")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/network/"
name "/" name "-" version ".tar.xz"))
(sha256
(base32
- "1cp132kk2xd2cwn1ysjv0cl8i9lnq3n4zi4wy676p5k4h2mfvn0j"))))
+ "1flwz4x76ajxigadq9knxgwr778g03y3qfx6c7rflc3x020a7hdp"))))
(build-system gnu-build-system)
(home-page "https://www.kernel.org/pub/software/network/ethtool/")
(synopsis "Display or change Ethernet device settings")
@@ -709,7 +709,7 @@ allows for heavy scripting.")
(define-public perl-net-dns
(package
(name "perl-net-dns")
- (version "1.12")
+ (version "1.13")
(source
(origin
(method url-fetch)
@@ -719,7 +719,7 @@ allows for heavy scripting.")
".tar.gz"))
(sha256
(base32
- "1zy16idzc96n20fm9976qapz89n3f44xpylhs5cvfgyyg7z03zr5"))))
+ "0dlca65l45mqs7l58fg838bj3as5kmnbs1zy8vg9cbsz6rindivy"))))
(build-system perl-build-system)
(inputs
`(("perl-digest-hmac" ,perl-digest-hmac)))
@@ -1392,14 +1392,14 @@ does not use SSH and requires a pre-shared symmetric key.")
(define-public quagga
(package
(name "quagga")
- (version "1.2.1")
+ (version "1.2.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/quagga/quagga-"
version ".tar.gz"))
(sha256
(base32
- "1kgvcr9cfgys5asvb5lh5h95silkr624apqm5x68xva19xfvmpda"))
+ "0c99rjjc62xl5kwvx2pwyvs0709vbwax1qydqbqf6r7fpvr24bjj"))
(patches
(search-patches "quagga-reproducible-build.patch"))))
(build-system gnu-build-system)
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 805b81bd2e..e354130ad2 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -40,14 +40,14 @@
(define-public node
(package
(name "node")
- (version "8.4.0")
+ (version "8.7.0")
(source (origin
(method url-fetch)
(uri (string-append "http://nodejs.org/dist/v" version
"/node-v" version ".tar.gz"))
(sha256
(base32
- "1vrpc4lspm33hmb8c2q4w1fzg3iaip2gx4wpr4nyy417hbx1a6k4"))))
+ "1a0ginagx3pav6v7adyp76jisia4qgbsq6pz3als4kshwlk4a667"))))
(build-system gnu-build-system)
(arguments
;; TODO: Purge the bundled copies from the source.
@@ -76,10 +76,6 @@
(("'/usr/bin/env'")
(string-append "'" (which "env") "'")))
- ;; Linting is no longer supported in the release tarball
- (substitute* '("Makefile")
- ((" \\$\\(MAKE\\) lint") ""))
-
;; FIXME: This test seems to depends on files that are not
;; available in the bundled v8. See
;; https://github.com/nodejs/node/issues/13344
@@ -92,6 +88,8 @@
"test/parallel/test-util-inspect.js"
"test/parallel/test-v8-serdes.js"
"test/parallel/test-dgram-membership.js"
+ "test/parallel/test-dgram-multicast-set-interface-lo.js"
+ "test/parallel/test-dns-cancel-reverse-lookup.js"
"test/parallel/test-dns-resolveany.js"
"test/parallel/test-cluster-master-error.js"
"test/parallel/test-cluster-master-kill.js"
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index b13168c7da..5b2536ae67 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -897,6 +897,28 @@ compilation and linkage, there are new frontends of the various OCaml
compilers that can directly deal with packages.")
(license license:x11)))
+(define-public ocaml-findlib-1.7.3
+ (package
+ (inherit ocaml-findlib)
+ (version "1.7.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://download.camlcity.org/download/"
+ "findlib" "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "12xx8si1qv3xz90qsrpazjjk4lc1989fzm97rsmc4diwla7n15ni"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments ocaml-findlib)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (zero? (system* "make" "install"
+ (string-append "OCAML_CORE_STDLIB="
+ out))))))))))))
+
(define-public ocaml4.01-findlib
(package
(inherit ocaml-findlib)
@@ -3557,6 +3579,163 @@ library is currently designed for Unicode Standard 3.2.")
;; with an exception for linked libraries to use a different license
(license license:lgpl2.0+)))
+(define-public ocaml-jbuilder
+ (package
+ (name "ocaml-jbuilder")
+ (version "1.0+beta14")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/janestreet/jbuilder/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "06jdcb4jmmp4wqyf9cm59jzgj0mxkpdzd9q3728gdxc1sz3v1sz0"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (setenv "PREFIX" out))
+ #t)))))
+ (native-inputs
+ `(("menhir" ,ocaml-menhir)))
+ (propagated-inputs
+ `(("opam" ,opam)))
+ (home-page "https://github.com/janestreet/jbuilder")
+ (synopsis "Composable build system for OCaml")
+ (description "Jbuilder is a build system designed for OCaml/Reason projects
+only. It focuses on providing the user with a consistent experience and takes
+care of most of the low-level details of OCaml compilation. All you have to do
+is provide a description of your project and Jbuilder will do the rest.")
+ (license license:asl2.0)))
+
+(define-public ocaml-zed
+ (package
+ (name "ocaml-zed")
+ (version "1.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/diml/zed/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1q281slzwgdrrxalayll75bxgghadswlh2zcvzy08nrywqnlq5y8"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key #:allow-other-keys)
+ (zero? (system* "jbuilder" "build"))))
+ (delete 'check)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (zero? (system* "jbuilder" "install" "--prefix" out))))))))
+ (native-inputs
+ `(("jbuilder" ,ocaml-jbuilder)))
+ (propagated-inputs
+ `(("camomile" ,ocaml-camomile)
+ ("react" ,ocaml-react)))
+ (home-page "https://github.com/diml/zed")
+ (synopsis "Abstract engine for text editing in OCaml")
+ (description "Zed is an abstract engine for text edition. It can be used
+to write text editors, edition widgets, readlines, etc. You just have to
+connect an engine to your inputs and rendering functions to get an editor.")
+ (license license:bsd-3)))
+
+(define-public ocaml-lambda-term
+ (package
+ (name "ocaml-lambda-term")
+ (version "1.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/diml/lambda-term/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "10lx1jqgmmfwwlv64di4a8nia9l53v7179z70n9fx6aq5l7r8nba"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ ;; currently, ocaml-lwt is an old version of lwt from before lwt.react
+ ;; was split into a separate module called lwt_react
+ (add-before 'build 'use-old-lwt-react-name
+ (lambda _
+ (substitute* "src/jbuild" (("lwt_react") "lwt.react"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (zero? (system* "jbuilder" "install" "--prefix" out))))))))
+ (native-inputs
+ `(("jbuilder" ,ocaml-jbuilder)))
+ (propagated-inputs
+ `(("lwt" ,ocaml-lwt)
+ ("zed" ,ocaml-zed)))
+ (home-page "https://github.com/diml/lambda-term")
+ (synopsis "Terminal manipulation library for OCaml")
+ (description "Lambda-Term is a cross-platform library for manipulating the
+terminal. It provides an abstraction for keys, mouse events, colors, as well as
+a set of widgets to write curses-like applications. The main objective of
+Lambda-Term is to provide a higher level functional interface to terminal
+manipulation than, for example, ncurses, by providing a native OCaml interface
+instead of bindings to a C library.")
+ (license license:bsd-3)))
+
+(define-public ocaml-utop
+ (package
+ (name "ocaml-utop")
+ (version "2.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/diml/utop/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1v22bzw1vgwbbmpvi7lkyp2r59w5mag85rmqplb4fwik78x7k4ss"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (libdir (string-append out "/lib/ocaml/site-lib")))
+ (mkdir-p libdir)
+ (zero? (system* "jbuilder" "install"
+ "--prefix" out
+ "--libdir" libdir))))))))
+ (native-inputs
+ `(("ocaml" ,ocaml)
+ ("cppo" ,ocaml-cppo)
+ ("jbuilder" ,ocaml-jbuilder)))
+ (propagated-inputs
+ `(("findlib" ,ocaml-findlib-1.7.3)
+ ("lambda-term" ,ocaml-lambda-term)
+ ("lwt" ,ocaml-lwt)
+ ("react" ,ocaml-react)
+ ("camomile" ,ocaml-camomile)
+ ("zed" ,ocaml-zed)))
+ (home-page "https://github.com/diml/utop")
+ (synopsis "Improved interface to the OCaml toplevel")
+ (description "UTop is an improved toplevel for OCaml. It can run in a
+terminal or in Emacs. It supports line editing, history, real-time and context
+sensitive completion, colors, and more.")
+ (license license:bsd-3)))
+
(define-public coq-flocq
(package
(name "coq-flocq")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 07ac59da5b..cd81888cbb 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,7 +29,8 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system emacs)
- #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+ asl2.0 bsd-3))
+ #:use-module ((guix licenses) #:select (gpl2+ gpl3+ agpl3+ lgpl2.1+ asl2.0
+ bsd-3 silofl1.1))
#:use-module (gnu packages)
#:use-module (gnu packages guile)
#:use-module (gnu packages file)
@@ -41,6 +43,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages autotools)
#:use-module (gnu packages gettext)
+ #:use-module (gnu packages lisp)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages nettle)
#:use-module (gnu packages perl)
@@ -717,3 +720,34 @@ is the package manager used by Anaconda installations, but it may be used for
other systems as well. Conda makes environments first-class citizens, making
it easy to create independent environments even for C libraries. Conda is
written entirely in Python.")))
+
+(define-public gwl
+ (package
+ (name "gwl")
+ (version "0.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.guixwl.org/releases/gwl-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1x4swwp7kmhd57j3scii5c4h8swkcvab2r6mz7wxwwbx300wcqpy"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("guile" ,guile-2.2)))
+ (propagated-inputs
+ `(("guix" ,guix)
+ ("guile-commonmark" ,guile-commonmark)))
+ (home-page "https://www.guixwl.org")
+ (synopsis "Workflow management extension for GNU Guix")
+ (description "This project provides two subcommands to GNU Guix and
+introduces two record types that provide a workflow management extension built
+on top of GNU Guix.")
+ ;; The Scheme modules in guix/ and gnu/ are licensed GPL3+,
+ ;; the web interface modules in gwl/ are licensed AGPL3+,
+ ;; and the fonts included in this package are licensed OFL1.1.
+ (license (list gpl3+ agpl3+ silofl1.1))))
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 739c51e396..ffdda102e9 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -45,7 +45,7 @@
(define-public parallel
(package
(name "parallel")
- (version "20170922")
+ (version "20171022")
(source
(origin
(method url-fetch)
@@ -53,7 +53,7 @@
version ".tar.bz2"))
(sha256
(base32
- "0r8mdnmimdf4n6q5k0l8zdql83ka5plrb5qm3rcgkcfwmnk0p0k1"))))
+ "18pq10npl7g764ww7cy9r5n5s3kiy984jclf932qfgndcxsbpqpp"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch b/gnu/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch
new file mode 100644
index 0000000000..69e65aeb6b
--- /dev/null
+++ b/gnu/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch
@@ -0,0 +1,66 @@
+Fix CVE-2017-14859, CVE-2017-14862 and CVE-2017-14864.
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14859
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14862
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14864
+
+Copied from upstream:
+
+https://github.com/Exiv2/exiv2/commit/8a586c74bbe3fbca64e86e42a42282c73f427607
+
+From 8a586c74bbe3fbca64e86e42a42282c73f427607 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= <dan.cermak@cgc-instruments.com>
+Date: Sat, 7 Oct 2017 23:08:36 +0200
+Subject: [PATCH] Fix for CVE-2017-14864, CVE-2017-14862 and CVE-2017-14859
+
+The invalid memory dereference in
+Exiv2::getULong()/Exiv2::StringValueBase::read()/Exiv2::DataValue::read()
+is caused further up the call-stack, by
+v->read(pData, size, byteOrder) in TiffReader::readTiffEntry()
+passing an invalid pData pointer (pData points outside of the Tiff
+file). pData can be set out of bounds in the (size > 4) branch where
+baseOffset() and offset are added to pData_ without checking whether
+the result is still in the file. As offset comes from an untrusted
+source, an attacker can craft an arbitrarily large offset into the
+file.
+
+This commit adds a check into the problematic branch, whether the
+result of the addition would be out of bounds of the Tiff
+file. Furthermore the whole operation is checked for possible
+overflows.
+---
+ src/tiffvisitor.cpp | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/src/tiffvisitor.cpp b/src/tiffvisitor.cpp
+index 4ab733d4..ef13542e 100644
+--- a/src/tiffvisitor.cpp
++++ b/src/tiffvisitor.cpp
+@@ -47,6 +47,7 @@ EXIV2_RCSID("@(#) $Id$")
+ #include <iostream>
+ #include <iomanip>
+ #include <cassert>
++#include <limits>
+
+ // *****************************************************************************
+ namespace {
+@@ -1517,7 +1518,19 @@ namespace Exiv2 {
+ size = 0;
+ }
+ if (size > 4) {
++ // setting pData to pData_ + baseOffset() + offset can result in pData pointing to invalid memory,
++ // as offset can be arbitrarily large
++ if ((static_cast<uintptr_t>(baseOffset()) > std::numeric_limits<uintptr_t>::max() - static_cast<uintptr_t>(offset))
++ || (static_cast<uintptr_t>(baseOffset() + offset) > std::numeric_limits<uintptr_t>::max() - reinterpret_cast<uintptr_t>(pData_)))
++ {
++ throw Error(59);
++ }
++ if (pData_ + static_cast<uintptr_t>(baseOffset()) + static_cast<uintptr_t>(offset) > pLast_) {
++ throw Error(58);
++ }
+ pData = const_cast<byte*>(pData_) + baseOffset() + offset;
++
++ // check for size being invalid
+ if (size > static_cast<uint32_t>(pLast_ - pData)) {
+ #ifndef SUPPRESS_WARNINGS
+ EXV_ERROR << "Upper boundary of data for "
diff --git a/gnu/packages/patches/exiv2-CVE-2017-14860.patch b/gnu/packages/patches/exiv2-CVE-2017-14860.patch
new file mode 100644
index 0000000000..43e6076b71
--- /dev/null
+++ b/gnu/packages/patches/exiv2-CVE-2017-14860.patch
@@ -0,0 +1,48 @@
+Fix CVE-2017-14860.
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14860
+https://nvd.nist.gov/vuln/detail/CVE-2017-14860
+
+Copied from upstream:
+
+https://github.com/Exiv2/exiv2/commit/ff18fec24b119579df26fd2ebb8bb012cde102ce
+
+From ff18fec24b119579df26fd2ebb8bb012cde102ce Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= <dan.cermak@cgc-instruments.com>
+Date: Fri, 6 Oct 2017 23:09:08 +0200
+Subject: [PATCH] Fix for CVE-2017-14860
+
+A heap buffer overflow could occur in memcpy when icc.size_ is larger
+than data.size_ - pad, as then memcpy would read out of bounds of data.
+
+This commit adds a sanity check to iccLength (= icc.size_): if it is
+larger than data.size_ - pad (i.e. an overflow would be caused) an
+exception is thrown.
+
+This fixes #71.
+---
+ src/jp2image.cpp | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/src/jp2image.cpp b/src/jp2image.cpp
+index 747145cf..748d39b5 100644
+--- a/src/jp2image.cpp
++++ b/src/jp2image.cpp
+@@ -269,10 +269,15 @@ namespace Exiv2
+ std::cout << "Exiv2::Jp2Image::readMetadata: "
+ << "Color data found" << std::endl;
+ #endif
+- long pad = 3 ; // 3 padding bytes 2 0 0
++ const long pad = 3 ; // 3 padding bytes 2 0 0
+ DataBuf data(subBox.length+8);
+ io_->read(data.pData_,data.size_);
+- long iccLength = getULong(data.pData_+pad, bigEndian);
++ const long iccLength = getULong(data.pData_+pad, bigEndian);
++ // subtracting pad from data.size_ is safe:
++ // size_ is at least 8 and pad = 3
++ if (iccLength > data.size_ - pad) {
++ throw Error(58);
++ }
+ DataBuf icc(iccLength);
+ ::memcpy(icc.pData_,data.pData_+pad,icc.size_);
+ #ifdef DEBUG
diff --git a/gnu/packages/patches/wget-CVE-2017-6508.patch b/gnu/packages/patches/wget-CVE-2017-6508.patch
deleted file mode 100644
index 0218fceaad..0000000000
--- a/gnu/packages/patches/wget-CVE-2017-6508.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Fix CVE-2017-6508:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6508
-
-Patch copied from upstream source repository:
-
-https://git.savannah.gnu.org/cgit/wget.git/commit/?id=4d729e322fae359a1aefaafec1144764a54e8ad4
-
-From 4d729e322fae359a1aefaafec1144764a54e8ad4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
-Date: Mon, 6 Mar 2017 10:04:22 +0100
-Subject: [PATCH] Fix CRLF injection in Wget host part
-
-* src/url.c (url_parse): Reject control characters in host part of URL
-
-Reported-by: Orange Tsai
----
- src/url.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/src/url.c b/src/url.c
-index 8f8ff0b8..7d36b27d 100644
---- a/src/url.c
-+++ b/src/url.c
-@@ -925,6 +925,17 @@ url_parse (const char *url, int *error, struct iri *iri, bool percent_encode)
- url_unescape (u->host);
- host_modified = true;
-
-+ /* check for invalid control characters in host name */
-+ for (p = u->host; *p; p++)
-+ {
-+ if (c_iscntrl(*p))
-+ {
-+ url_free(u);
-+ error_code = PE_INVALID_HOST_NAME;
-+ goto error;
-+ }
-+ }
-+
- /* Apply IDNA regardless of iri->utf8_encode status */
- if (opt.enable_iri && iri)
- {
---
-2.12.0
-
diff --git a/gnu/packages/patches/wget-fix-504-test-timeout.patch b/gnu/packages/patches/wget-fix-504-test-timeout.patch
deleted file mode 100644
index d9bf154103..0000000000
--- a/gnu/packages/patches/wget-fix-504-test-timeout.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-This patch is from upstream. If a machine is too slow it can cause
-test-504.py to fail.
-http://git.savannah.gnu.org/cgit/wget.git/patch/?id=ac4fed32204e9ec1874e7cb5ecc55f1b35c1c8de
-
-From ac4fed32204e9ec1874e7cb5ecc55f1b35c1c8de Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
-Date: Tue, 14 Feb 2017 16:20:26 +0100
-Subject: Fix 504 status handling
-
-* src/http.c (gethttp): Move 504 handling to correct place.
- (http_loop): Fix memeory leak.
-* testenv/server/http/http_server.py: Add Content-Length header on non-2xx
- status codes with a body
-
-Reported-by: Adam Sampson
----
- src/http.c | 30 +++++++++++-------------------
- testenv/server/http/http_server.py | 9 +++++----
- 2 files changed, 16 insertions(+), 23 deletions(-)
-
-diff --git a/src/http.c b/src/http.c
-index 898e184..d2c5c77 100644
---- a/src/http.c
-+++ b/src/http.c
-@@ -3476,7 +3476,7 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs,
-
- #ifdef HAVE_METALINK
- /* We need to check for the Metalink data in the very first response
-- we get from the server (before redirectionrs, authorization, etc.). */
-+ we get from the server (before redirections, authorization, etc.). */
- if (metalink)
- {
- hs->metalink = metalink_from_http (resp, hs, u);
-@@ -3496,7 +3496,7 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs,
- uerr_t auth_err = RETROK;
- bool retry;
- /* Normally we are not interested in the response body.
-- But if we are writing a WARC file we are: we like to keep everyting. */
-+ But if we are writing a WARC file we are: we like to keep everything. */
- if (warc_enabled)
- {
- int _err;
-@@ -3556,20 +3556,6 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs,
- pconn.authorized = true;
- }
-
-- if (statcode == HTTP_STATUS_GATEWAY_TIMEOUT)
-- {
-- hs->len = 0;
-- hs->res = 0;
-- hs->restval = 0;
--
-- CLOSE_FINISH (sock);
-- xfree (hs->message);
--
-- retval = GATEWAYTIMEOUT;
-- goto cleanup;
-- }
--
--
- {
- uerr_t ret = check_file_output (u, hs, resp, hdrval, sizeof hdrval);
- if (ret != RETROK)
-@@ -3910,8 +3896,8 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs,
- retval = _err;
- goto cleanup;
- }
-- else
-- CLOSE_FINISH (sock);
-+
-+ CLOSE_FINISH (sock);
- }
- else
- {
-@@ -3934,7 +3920,11 @@ gethttp (const struct url *u, struct url *original_url, struct http_stat *hs,
- CLOSE_INVALIDATE (sock);
- }
-
-- retval = RETRFINISHED;
-+ if (statcode == HTTP_STATUS_GATEWAY_TIMEOUT)
-+ retval = GATEWAYTIMEOUT;
-+ else
-+ retval = RETRFINISHED;
-+
- goto cleanup;
- }
-
-@@ -4208,6 +4198,8 @@ http_loop (const struct url *u, struct url *original_url, char **newloc,
- bring them to "while" statement at the end, to judge
- whether the number of tries was exceeded. */
- printwhat (count, opt.ntry);
-+ xfree (hstat.message);
-+ xfree (hstat.error);
- continue;
- case FWRITEERR: case FOPENERR:
- /* Another fatal error. */
-diff --git a/testenv/server/http/http_server.py b/testenv/server/http/http_server.py
-index e96f6e8..b222df0 100644
---- a/testenv/server/http/http_server.py
-+++ b/testenv/server/http/http_server.py
-@@ -204,7 +204,6 @@ class _Handler(BaseHTTPRequestHandler):
-
- def Response(self, resp_obj):
- self.send_response(resp_obj.response_code)
-- self.finish_headers()
- if resp_obj.response_code == 304:
- raise NoBodyServerError("Conditional get falling to head")
- raise ServerError("Custom Response code sent.")
-@@ -329,7 +328,6 @@ class _Handler(BaseHTTPRequestHandler):
- except AuthError as se:
- self.send_response(401, "Authorization Required")
- self.send_challenge(auth_rule.auth_type, auth_rule.auth_parm)
-- self.finish_headers()
- raise se
-
- def handle_auth(self, auth_rule):
-@@ -362,7 +360,6 @@ class _Handler(BaseHTTPRequestHandler):
- if header_recd is None or header_recd != exp_headers[header_line]:
- self.send_error(400, "Expected Header %s not found" %
- header_line)
-- self.finish_headers()
- raise ServerError("Header " + header_line + " not found")
-
- def RejectHeader(self, header_obj):
-@@ -372,7 +369,6 @@ class _Handler(BaseHTTPRequestHandler):
- if header_recd and header_recd == rej_headers[header_line]:
- self.send_error(400, 'Blacklisted Header %s received' %
- header_line)
-- self.finish_headers()
- raise ServerError("Header " + header_line + ' received')
-
- def __log_request(self, method):
-@@ -400,6 +396,7 @@ class _Handler(BaseHTTPRequestHandler):
-
- content = self.server.fileSys.get(path)
- content_length = len(content)
-+
- for rule_name in self.rules:
- try:
- assert hasattr(self, rule_name)
-@@ -410,12 +407,16 @@ class _Handler(BaseHTTPRequestHandler):
- return(None, None)
- except AuthError as ae:
- print(ae.__str__())
-+ self.finish_headers()
- return(None, None)
- except NoBodyServerError as nbse:
- print(nbse.__str__())
-+ self.finish_headers()
- return(None, None)
- except ServerError as se:
- print(se.__str__())
-+ self.add_header("Content-Length", content_length)
-+ self.finish_headers()
- return(content, None)
-
- try:
---
-cgit v1.0-41-gc330
-
diff --git a/gnu/packages/patches/wget-perl-5.26.patch b/gnu/packages/patches/wget-perl-5.26.patch
deleted file mode 100644
index ee3a984daa..0000000000
--- a/gnu/packages/patches/wget-perl-5.26.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-This upstream commit adjusts tests for Perl 5.26.
-
-commit 7ffe93cabb181f39ad5091c31ab9f61bd940a55f
-Author: Anton Yuzhaninov <citrin+github@citrin.ru>
-Date: Wed Apr 5 19:06:42 2017 +0300
-
- Fix perl warnings in tests
-
- * tests/FTPServer.pm: Escape '{' in RE to fix warnings
- * tests/FTPTest.pm: Likewise
- * tests/HTTPServer.pm: Likewise
- * tests/HTTPTest.pm: Likewise
- * tests/Test-proxied-https-auth-keepalive.px: Likewise
- * tests/Test-proxied-https-auth.px: Likewise
- Escape '{' in RE to fix warnings:
- Unescaped left brace in regex is deprecated, passed through in regex;
- marked by <-- HERE in m/{{ <-- HERE port}}/
-
-diff --git a/tests/FTPServer.pm b/tests/FTPServer.pm
-index a5185d66..cac80942 100644
---- a/tests/FTPServer.pm
-+++ b/tests/FTPServer.pm
-@@ -589,7 +589,7 @@ sub new
- foreach my $file (keys %{$self->{_input}})
- {
- my $ref = \$self->{_input}{$file}{content};
-- $$ref =~ s/{{port}}/$self->sockport/eg;
-+ $$ref =~ s/\Q{{port}}/$self->sockport/eg;
- }
-
- return $self;
-diff --git a/tests/FTPTest.pm b/tests/FTPTest.pm
-index 50385ad0..0a1c768c 100644
---- a/tests/FTPTest.pm
-+++ b/tests/FTPTest.pm
-@@ -53,7 +53,7 @@ sub _substitute_port
- {
- my $self = shift;
- my $ret = shift;
-- $ret =~ s/{{port}}/$self->{_server}->sockport/eg;
-+ $ret =~ s/\Q{{port}}/$self->{_server}->sockport/eg;
- return $ret;
- }
-
-diff --git a/tests/HTTPServer.pm b/tests/HTTPServer.pm
-index dd8ec043..78609f65 100644
---- a/tests/HTTPServer.pm
-+++ b/tests/HTTPServer.pm
-@@ -310,7 +310,7 @@ sub _substitute_port
- {
- my $self = shift;
- my $ret = shift;
-- $ret =~ s/{{port}}/$self->sockport/eg;
-+ $ret =~ s/\Q{{port}}/$self->sockport/eg;
- return $ret;
- }
-
-diff --git a/tests/HTTPTest.pm b/tests/HTTPTest.pm
-index 00f079f8..6225c7f1 100644
---- a/tests/HTTPTest.pm
-+++ b/tests/HTTPTest.pm
-@@ -47,7 +47,7 @@ sub _substitute_port
- {
- my $self = shift;
- my $ret = shift;
-- $ret =~ s/{{port}}/$self->{_server}->sockport/eg;
-+ $ret =~ s/\Q{{port}}/$self->{_server}->sockport/eg;
- return $ret;
- }
-
-diff --git a/tests/Test-proxied-https-auth-keepalive.px b/tests/Test-proxied-https-auth-keepalive.px
-index 049bebec..2a18ccfd 100755
---- a/tests/Test-proxied-https-auth-keepalive.px
-+++ b/tests/Test-proxied-https-auth-keepalive.px
-@@ -153,7 +153,7 @@ my $cmdline = $WgetTest::WGETPATH . " --user=fiddle-dee-dee"
- . " --password=Dodgson -e https_proxy=localhost:{{port}}"
- . " --no-check-certificate"
- . " https://no.such.domain/needs-auth.txt";
--$cmdline =~ s/{{port}}/$SOCKET->sockport()/e;
-+$cmdline =~ s/\Q{{port}}/$SOCKET->sockport()/e;
-
- if (defined $srcdir) {
- $VALGRIND_SUPP_FILE = $srcdir . '/valgrind-suppressions-ssl';
-diff --git a/tests/Test-proxied-https-auth.px b/tests/Test-proxied-https-auth.px
-index ce4e736c..878114e7 100755
---- a/tests/Test-proxied-https-auth.px
-+++ b/tests/Test-proxied-https-auth.px
-@@ -152,7 +152,7 @@ my $cmdline = $WgetTest::WGETPATH . " --user=fiddle-dee-dee"
- . " --password=Dodgson -e https_proxy=localhost:{{port}}"
- . " --no-check-certificate"
- . " https://no.such.domain/needs-auth.txt";
--$cmdline =~ s/{{port}}/$SOCKET->sockport()/e;
-+$cmdline =~ s/\Q{{port}}/$SOCKET->sockport()/e;
-
- if (defined $srcdir) {
- $VALGRIND_SUPP_FILE = $srcdir . '/valgrind-suppressions-ssl';
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 044f93e818..7225336c7c 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
@@ -584,7 +584,7 @@ Standard Serial Numbers.")
(define-public perl-business-ismn
(package
(name "perl-business-ismn")
- (version "1.13")
+ (version "1.131")
(source
(origin
(method url-fetch)
@@ -592,7 +592,7 @@ Standard Serial Numbers.")
"Business-ISMN-" version ".tar.gz"))
(sha256
(base32
- "0cm1v75axg4gp6cnbyavmnqqjscsxh7nc60vcbw34rqivvf9idc9"))))
+ "1xyc7x4c4xl930rz7grs1l52f1vg4rbiv0c6xlxdsim8qsh7k94g"))))
(build-system perl-build-system)
(native-inputs
`(("perl-tie-cycle" ,perl-tie-cycle)))
@@ -1165,7 +1165,7 @@ little other than manage the instantiation of a single object.")
(define-public perl-class-tiny
(package
(name "perl-class-tiny")
- (version "1.000")
+ (version "1.006")
(source
(origin
(method url-fetch)
@@ -1173,7 +1173,7 @@ little other than manage the instantiation of a single object.")
"Class-Tiny-" version ".tar.gz"))
(sha256
(base32
- "0jll90byj0nl16hwpf28k54i4n53jidjsj1bnlbx72v0n56qfpb2"))))
+ "0knbi1agcfc9d7fca0szvxr6335pb22pc5n648q1vrcba8qvvz1f"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/Class-Tiny/")
(synopsis "Minimalist class construction")
@@ -3130,14 +3130,14 @@ self-contained C libraries. This module main goal is to help in that task.")
(define-public perl-extutils-pkgconfig
(package
(name "perl-extutils-pkgconfig")
- (version "1.15")
+ (version "1.16")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/"
"ExtUtils-PkgConfig-" version ".tar.gz"))
(sha256
(base32
- "1cxh6w8vmyqmhl6afys2q6z6jkp1m6zvacpk70196zmk48p1kcv9"))))
+ "0vhwh0731rhh1sswmvagq0myn754dnkab8sizh6d3n6pjpcwxsmv"))))
(build-system perl-build-system)
(propagated-inputs
`(("pkg-config" ,pkg-config)))
@@ -3447,7 +3447,7 @@ the installation.")
(define-public perl-file-sharedir-dist
(package
(name "perl-file-sharedir-dist")
- (version "0.04")
+ (version "0.05")
(source
(origin
(method url-fetch)
@@ -3455,7 +3455,7 @@ the installation.")
"File-ShareDir-Dist-" version ".tar.gz"))
(sha256
(base32
- "028vnjw3fdmwk540w3b07cmr93ap0s13ni2b4c7iv56mgyy6gfc1"))))
+ "1xkmrckp1qfi9ik098n2vz0r8g7wfwp2y05zjd100w6wcqwfzcpn"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/File-ShareDir-Dist/")
(synopsis "Locate per-dist shared files")
@@ -4120,7 +4120,7 @@ versa using either JSON::XS or JSON::PP.")
(define-public perl-json-any
(package
(name "perl-json-any")
- (version "1.38")
+ (version "1.39")
(source
(origin
(method url-fetch)
@@ -4128,7 +4128,7 @@ versa using either JSON::XS or JSON::PP.")
"JSON-Any-" version ".tar.gz"))
(sha256
(base32
- "0mk6shg82i7y852bvj5d0qqma1d9k0jh10k4mg62hbgr800gb2m4"))))
+ "1hspg6khjb38syn59cysnapc1q77qgavfym3fqr6l2kiydf7ajdf"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-fatal" ,perl-test-fatal)
@@ -4252,7 +4252,7 @@ logging mechanism.")
(define-public perl-log-log4perl
(package
(name "perl-log-log4perl")
- (version "1.47")
+ (version "1.49")
(source
(origin
(method url-fetch)
@@ -4262,7 +4262,7 @@ logging mechanism.")
".tar.gz"))
(sha256
(base32
- "0vxraq9navx5mgf8y8g6l5rbl3dv2ml8bishka5m69hj07nxs0ch"))))
+ "05ifhx1lmv91dbs9ck2zbjrkhh8z9g32gi6gxdmwnilia5zihfdp"))))
(build-system perl-build-system)
(home-page
"http://search.cpan.org/dist/Log-Log4perl/")
@@ -6622,7 +6622,7 @@ and @code{deserialize_regexp}.")
(define-public perl-safe-isa
(package
(name "perl-safe-isa")
- (version "1.000005")
+ (version "1.000008")
(source
(origin
(method url-fetch)
@@ -6630,7 +6630,7 @@ and @code{deserialize_regexp}.")
"Safe-Isa-" version ".tar.gz"))
(sha256
(base32
- "1vib54cp64dy3ic4n73skadp1pl4gn8s9qpxmzvi078dm3mpnbcw"))))
+ "08r74hwxq5b3bibnbwjr9anybg15l3zqdgcirpw1xm2qpvcxgdkx"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/Safe-Isa/")
(synopsis "Call isa, can, does, and DOES safely")
@@ -6957,7 +6957,7 @@ custom-built routines.")
(define-public perl-sub-exporter-progressive
(package
(name "perl-sub-exporter-progressive")
- (version "0.001011")
+ (version "0.001013")
(source
(origin
(method url-fetch)
@@ -6965,7 +6965,7 @@ custom-built routines.")
"Sub-Exporter-Progressive-" version ".tar.gz"))
(sha256
(base32
- "01kwzbqwdhvadpphnczid03nlyj0h4cxaq3m3v2401bckkkcc606"))))
+ "0mn0x8mkh36rrsr58s1pk4srwxh2hbwss7sv630imnk49navfdfm"))))
(build-system perl-build-system)
(native-inputs `(("perl-sub-exporter" ,perl-sub-exporter)))
(home-page "http://search.cpan.org/dist/Sub-Exporter-Progressive/")
@@ -7134,7 +7134,36 @@ statements: @code{switch} and @code{case}.")
"Sys-CPU-" version ".tar.gz"))
(sha256
(base32
- "1r6976bs86j7zp51m5vh42xlyah951jgdlkimv202413kjvqc2i5"))))
+ "1r6976bs86j7zp51m5vh42xlyah951jgdlkimv202413kjvqc2i5"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; The contents of /proc/cpuinfo can differ and confuse the
+ ;; cpu_clock and cpu_type methods, so we replace the test
+ ;; with one that marks cpu_clock and cpu_type as TODO.
+ ;; Borrowed from Debian.
+ (call-with-output-file "t/Sys-CPU.t"
+ (lambda (port)
+ (format port "#!/usr/bin/perl
+
+use Test::More tests => 4;
+
+BEGIN { use_ok('Sys::CPU'); }
+
+$number = &Sys::CPU::cpu_count();
+ok( defined($number), \"CPU Count: $number\" );
+
+TODO: {
+ local $TODO = \"/proc/cpuinfo doesn't always report 'cpu MHz' or 'clock' or 'bogomips' ...\";
+ $speed = &Sys::CPU::cpu_clock();
+ ok( defined($speed), \"CPU Speed: $speed\" );
+}
+
+TODO: {
+ local $TODO = \"/proc/cpuinfo doesn't always report 'model name' or 'machine' ...\";
+ $type = &Sys::CPU::cpu_type();
+ ok( defined($type), \"CPU Type: $type\" );
+}~%")))))))
(build-system perl-build-system)
(synopsis "Perl extension for getting CPU information")
(description
@@ -8697,7 +8726,7 @@ algorism to indicate multiplication by 1000.")
(define-public perl-text-table
(package
(name "perl-text-table")
- (version "1.130")
+ (version "1.133")
(source
(origin
(method url-fetch)
@@ -8705,7 +8734,7 @@ algorism to indicate multiplication by 1000.")
"Text-Table-" version ".tar.gz"))
(sha256
(base32
- "02c8v38k639r23dgxwgvsy4myjjzvgdb238kpiffsiz25ab3xp5j"))))
+ "04kh5x5inq183rdg221wlqaaqi1ipyj588mxsslik6nhc14f17nd"))))
(build-system perl-build-system)
(native-inputs
`(("perl-module-build" ,perl-module-build)))
@@ -8813,7 +8842,7 @@ approximately follow the suggestions in the Perl Style Guide.")
(define-public perl-tie-cycle
(package
(name "perl-tie-cycle")
- (version "1.221")
+ (version "1.225")
(source
(origin
(method url-fetch)
@@ -8821,7 +8850,7 @@ approximately follow the suggestions in the Perl Style Guide.")
version ".tar.gz"))
(sha256
(base32
- "10g6kirf6jfaldckg98y4pl87vrm7grqlg6ymb7a9vhrznyn7qn6"))))
+ "0i9xq2qm50p2ih24265jndp2x8hfq7ap0d88nrlv5yaad4hxhc7k"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/Tie-Cycle/")
(synopsis "Cycle through a list of values")
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 1f3c7b556d..03e9d4bd94 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -52,7 +52,7 @@
(define-public php
(package
(name "php")
- (version "7.1.10")
+ (version "7.1.11")
(home-page "https://secure.php.net/")
(source (origin
(method url-fetch)
@@ -60,7 +60,7 @@
name "-" version ".tar.xz"))
(sha256
(base32
- "02y52ml1svksx6fclg47vim2hnsva3531db7msrhpb9f39vzm3ib"))
+ "0gl9hk4888fjirrd4s73mdabhiqam0c45406a7fgw6njszlr6h07"))
(modules '((guix build utils)))
(snippet
'(with-directory-excursion "ext"
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 119dde7d99..d257d48bc4 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2015, 2017 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@@ -1098,6 +1098,119 @@ etc.). The package is structured to make adding new modules easy.")
"python"
(package-inputs pycrypto)))))))
+(define-public python-humanfriendly
+ (package
+ (name "python-humanfriendly")
+ (version "4.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "humanfriendly" version))
+ (sha256
+ (base32
+ "0pisgizjql86785jchfjv217g0lsgk114g2lja5j4y3lsc3b9szi"))))
+ (build-system python-build-system)
+ (arguments
+ `(;; XXX: Tests depend on coloredlogs, which in turn depends on humanfriendly.
+ #:tests? #f))
+ (propagated-inputs
+ `(("python-monotonic" ,python-monotonic)))
+ (home-page "https://humanfriendly.readthedocs.io")
+ (synopsis "Human-friendly input and output in Python")
+ (description
+ "The functions and classes in @code{humanfriendly} can be used to make
+text interfaces more user-friendly. It includes tools to parse and format
+numbers, file sizes, and timespans, timers for long-running operations, menus
+to allow the user to choose from a list of options, and terminal interaction
+helpers.")
+ (license license:expat)))
+
+(define-public python2-humanfriendly
+ (package-with-python2 python-humanfriendly))
+
+(define-public python-capturer
+ (package
+ (name "python-capturer")
+ (version "2.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "capturer" version))
+ (sha256
+ (base32
+ "05d6ji4j8ipiq0br7bwam38qc6hd9l1djmfxlzrxx19ziyjl4089"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f))
+ (propagated-inputs
+ `(("python-humanfriendly" ,python-humanfriendly)))
+ (home-page "https://capturer.readthedocs.io")
+ (synopsis "Capture stdout and stderr streams of the current process")
+ (description
+ "The capturer package makes it easy to capture the stdout and stderr
+streams of the current process and subprocesses. Output can be relayed
+to the terminal in real time but is also available to the Python program
+for additional processing.")
+ (license license:expat)))
+
+(define-public python2-capturer
+ (package-with-python2 python-capturer))
+
+(define-public python-verboselogs
+ (package
+ (name "python-verboselogs")
+ (version "1.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "verboselogs" version))
+ (sha256
+ (base32
+ "09z4d1jiasn7k1hs5af2ckmnrd0i1d1m04bhfjhv7z6svzfdwgg3"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-astroid" ,python-astroid)
+ ("python-pylint" ,python-pylint)))
+ (home-page "https://verboselogs.readthedocs.io")
+ (synopsis "Verbose logging level for Python's logging module")
+ (description
+ "The @code{verboselogs} package extends Python's @code{logging} module to
+add the log levels NOTICE, SPAM, SUCCESS and VERBOSE.")
+ (license license:expat)))
+
+(define-public python2-verboselogs
+ (package-with-python2 python-verboselogs))
+
+(define-public python-coloredlogs
+ (package
+ (name "python-coloredlogs")
+ (version "7.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "coloredlogs" version))
+ (sha256
+ (base32
+ "1blcann6dyg5dhps9pg12rn0q0rjrlajpmmil0gy0j4cbvnl2il9"))))
+ (build-system python-build-system)
+ (arguments
+ `(;Tests require some updated modules
+ #:tests? #f))
+ (propagated-inputs
+ `(("python-capturer" ,python-capturer)))
+ (home-page "https://coloredlogs.readthedocs.io")
+ (synopsis "Colored stream handler for Python's logging module")
+ (description
+ "The @code{coloredlogs} package enables colored terminal output for
+Python's logging module. The @code{ColoredFormatter} class inherits from
+@code{logging.Formatter} and uses ANSI escape sequences to render your logging
+messages in color.")
+ (license license:expat)))
+
+(define-public python2-coloredlogs
+ (package-with-python2 python-coloredlogs))
+
(define-public python-eventlet
(package
(name "python-eventlet")
@@ -6524,13 +6637,13 @@ of the structure, dynamics, and functions of complex networks.")
(define-public snakemake
(package
(name "snakemake")
- (version "3.13.3")
+ (version "4.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "snakemake" version))
(sha256
- (base32 "1nixb944r4hlskwkzc4wjs34b40xpxpw9gmhhm5p09gvmm22ap5d"))))
+ (base32 "0mgl44q152ws40zj2vicqark5szyd73vqy9pf26g6hk6dk0y0c79"))))
(build-system python-build-system)
(arguments
;; TODO: Package missing test dependencies.
@@ -6549,7 +6662,11 @@ of the structure, dynamics, and functions of complex networks.")
#t)))))
(propagated-inputs
`(("python-wrapt" ,python-wrapt)
- ("python-requests" ,python-requests)))
+ ("python-requests" ,python-requests)
+ ("python-appdirs" ,python-appdirs)
+ ("python-configargparse" ,python-configargparse)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-ratelimiter" ,python-ratelimiter)))
(home-page "https://bitbucket.org/snakemake/snakemake/wiki/Home")
(synopsis "Python-based execution environment for make-like workflows")
(description
@@ -9186,20 +9303,30 @@ config files.")
(define-public python-configargparse
(package
(name "python-configargparse")
- (version "0.10.0")
+ (version "0.12.0")
(source (origin
(method url-fetch)
(uri (string-append
- "https://pypi.python.org/packages/source/C/ConfigArgParse/"
+ "https://pypi.io/packages/source/C/ConfigArgParse/"
"ConfigArgParse-" version ".tar.gz"))
(sha256
(base32
- "19wh919gbdbzxzpagg52q3lm62yicm95ddlcx77dyjc1slyshl1v"))))
+ "0fgkiqh6r3rbkdq3k8c48m85g52k96686rw3a6jg4lcncrkpvk98"))))
(build-system python-build-system)
+ (native-inputs
+ `(("python-pyyaml" ,python-pyyaml)))
(arguments
- ;; FIXME: Bug in test suite filed upstream:
- ;; https://github.com/bw2/ConfigArgParse/issues/32
- '(#:tests? #f))
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ ;; Bypass setuptools-shim because one test relies on "setup.py"
+ ;; being the first argument passed to the python call.
+ ;;
+ ;; NOTE: Many tests do not run because they rely on Python's
+ ;; built-in test.test_argparse, but we remove the unit tests from
+ ;; our Python installation.
+ (zero? (system* "python" "setup.py" "test")))))))
(synopsis "Replacement for argparse")
(description "A drop-in replacement for argparse that allows options to also
be set via config files and/or environment variables.")
@@ -16740,3 +16867,27 @@ interpreter when it prints a stack trace.")
(define-public python2-traceback2
(package-with-python2 python-traceback2))
+
+(define-public python-ratelimiter
+ (package
+ (name "python-ratelimiter")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ratelimiter" version))
+ (sha256
+ (base32
+ "1dhz85mj5bqd2mij84ncs6pz32hgidr79hay4aqfmzaa4rbb497p"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:tests? #f)) ; There are no tests in the pypi archive.
+ (home-page "https://github.com/RazerM/ratelimiter")
+ (synopsis "Simple rate limiting object")
+ (description
+ "The @code{ratelimiter} module ensures that an operation will not be
+executed more than a given number of times during a given period.")
+ (license license:asl2.0)))
+
+(define-public python2-ratelimiter
+ (package-with-python2 python-ratelimiter))
diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm
index d48051ee33..6230195ed4 100644
--- a/gnu/packages/scribus.scm
+++ b/gnu/packages/scribus.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,53 +25,95 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
+ #:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages cups)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages libreoffice)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages pdf)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
- #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages tls)
#:use-module (gnu packages xml))
(define-public scribus
(package
(name "scribus")
- (version "1.5.2")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/scribus/scribus-devel/"
- version "/scribus-" version ".tar.xz"))
- (sha256
- (base32
- "1xbl7h4x32y2nfhn57ivjziyvlnwadcbizqwfqx5srfsmqiyqppc"))))
+ (version "1.5.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/scribus/scribus-devel/"
+ version "/scribus-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0kyp45vidxa3v35ic9592db4zk3m8al26vck38q5v7z14x3hp8vk"))
+ (patches
+ (list
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/scribusproject/scribus/commit/"
+ "61186c7ef083046b7e0c908952e8a773e2787d82.patch"))
+ (file-name "scribus-fix-poppler-0.58-breakage.patch")
+ (sha256
+ (base32 "189qw9xmgz01xz1w1bi9lzrp399zk1j1iz5qdhchdrhgnd69b7ly")))
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/scribusproject/scribus/commit/"
+ "d82b1c989bd0e79b5611521f671adbfb94996e5e.patch"))
+ (file-name "scribus-fix-poppler-packaging.patch")
+ (sha256
+ (base32 "1p9s18jjvj2h0ba1xvk1zhmnn4f4n3ykrgb56mjd6in30h0vrykx")))))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Fix typo. Equivalent to patch at
+ ;; https://bugs.scribus.net/view.php?id=14850
+ '(substitute* "cmake/modules/FindLIBPODOFO.cmake"
+ (("find_package\\(OPENSSL\\)") "find_package(OpenSSL)")))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; no test target
+ `(#:tests? #f ;no test target
#:configure-flags
- '("-DCMAKE_CXX_FLAGS=-std=gnu++11")))
+ '("-DWANT_GRAPHICSMAGICK=1")))
(inputs
- `(("cairo" ,cairo)
+ `(("boost" ,boost)
+ ("cairo" ,cairo)
("cups" ,cups)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
("graphicsmagick" ,graphicsmagick)
+ ("harfbuzz" ,harfbuzz)
+ ("hunspell" ,hunspell)
+ ("icu4c" ,icu4c)
("lcms" ,lcms)
+ ("libcdr" ,libcdr)
+ ("libfreehand" ,libfreehand)
("libjpeg" ,libjpeg)
+ ("libmspub" ,libmspub)
+ ("libpagemaker" ,libpagemaker)
+ ("librevenge" ,librevenge)
("libtiff" ,libtiff)
+ ("libvisio" ,libvisio)
("libxml2" ,libxml2)
- ("python" ,python-2)
- ("freetype" ,freetype)
+ ("openssl" ,openssl)
+ ("podofo" ,podofo)
+ ("poppler" ,poppler)
+ ("python" ,python-2) ;need Python library
("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)
- ("qttools" ,qttools)
("zlib" ,zlib)))
(native-inputs
- `(("util-linux" ,util-linux)
- ("pkg-config" ,pkg-config)))
- (home-page "http://scribus.net")
+ `(("pkg-config" ,pkg-config)
+ ("qttools" ,qttools)
+ ("util-linux" ,util-linux)))
+ (home-page "https://www.scribus.net")
(synopsis "Desktop publishing and page layout program")
(description
"Scribus is a @dfn{desktop publishing} (DTP) application and can be used
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 96b390185a..3367c7aa46 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -28,6 +28,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix hg-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system r)
@@ -5071,7 +5072,7 @@ expected shortfall risk are also included.")
(uri (cran-uri "nloptr" version))
(sha256
(base32
- "1cypz91z28vhvwq2rzqjrbdc6a2lvfr2g16vid2sax618q6ai089"))))
+ "1sz1xj3785x4vsm4nd6in298bk32hs2jk5nsxma7ivxi7jcmn8l4"))))
(build-system r-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -5467,3 +5468,62 @@ appearance, reversing, and randomly shuffling), and tools for modifying factor
levels (including collapsing rare levels into other, \"anonymizing\", and
manually \"recoding\").")
(license license:gpl3)))
+
+(define-public r-tgstat
+ (let ((changeset "4f8e60c03598f49aff6f5beeab40f2b995377e9f")
+ (revision "1"))
+ (package
+ (name "r-tgstat")
+ (version (string-append "1.0.2-" revision "." (string-take changeset 7)))
+ (source
+ (origin
+ (method hg-fetch)
+ (uri (hg-reference
+ (url "https://bitbucket.org/tanaylab/tgstat")
+ (changeset changeset)))
+ (sha256
+ (base32
+ "0ilkkyximy77zbncm91kdfqbxf0qyndg16pd3q3p6a3xc9qcmxvn"))))
+ (build-system r-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-isnan
+ (lambda _
+ (substitute* "src/tgstat.h"
+ (("#define isnan ::isnan")
+ "#define isnan std::isnan"))
+ #t)))))
+ (propagated-inputs
+ `(("r-rcpp" ,r-rcpp)))
+ (home-page "https://bitbucket.org/tanaylab/tgstat/")
+ (synopsis "Tanay's group statistical utilities")
+ (description
+ "The goal of tgstat is to provide fast and efficient statistical
+tools.")
+ (license license:gpl2))))
+
+(define-public r-tgconfig
+ (let ((changeset "1e02c7614713bd0866c46f0c679a058f8c6d627e")
+ (revision "1"))
+ (package
+ (name "r-tgconfig")
+ (version (string-append "0.0.0.9000-" revision "." (string-take changeset 7)))
+ (source
+ (origin
+ (method hg-fetch)
+ (uri (hg-reference
+ (url "https://bitbucket.org/tanaylab/tgconfig")
+ (changeset changeset)))
+ (sha256
+ (base32
+ "0xy6c7s7mn1yx191154bwbv1bl424bnvc80syqpl1vdl28ba46rj"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-yaml" ,r-yaml)))
+ (home-page "https://bitbucket.org/tanaylab/tgconfig/")
+ (synopsis "Infrastructure for managing package parameters")
+ (description
+ "The goal of tgconfig is to provide infrastructure for managing package
+parameters.")
+ (license license:gpl3))))
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index 8ac0524fc6..b182e13395 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -21,13 +21,15 @@
#:use-module (gnu packages)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages ruby)
#:use-module (gnu packages xml)
- #:use-module (gnu packages web))
+ #:use-module (gnu packages web)
+ #:use-module (srfi srfi-1))
(define-public newsbeuter
(package
@@ -76,3 +78,35 @@ more features. Its user interface is coherent, easy to use, and might look
common to users of @command{mutt} and @command{slrn}.")
(license (list license:gpl2+ ; filter/*
license:x11))))
+
+(define-public newsboat
+ (package
+ (inherit newsbeuter)
+ (name "newsboat")
+ (version "2.10.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://newsboat.org/releases/" version
+ "/newsboat-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1xgqkhpjbq916g9hkaxs0s2fz8bg103pzjx75ziq5ba688l9imj4"))))
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (delete 'configure) ; no configure
+ (add-after 'build 'build-documentation
+ (lambda _ (zero? (system* "make" "doc")))))
+ #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))
+ ;; see https://github.com/newsboat/newsboat/issues/43
+ "WARNFLAGS=-Wno-sign-compare")
+ #:test-target "test"))
+ (native-inputs
+ `(("asciidoc" ,asciidoc)
+ ,@(alist-delete "ruby" (package-native-inputs newsbeuter))))
+ (home-page "https://newsboat.org/")
+ (description "Newsboat is a fork of Newsbeuter, an RSS/Atom feed reader for
+the text console. It supports OPML import/exports, HTML rendering, podcast
+(podboat), offline reading, searching and storing articles to your filesystem,
+and many more features. Its user interface is coherent, easy to use, and might
+look common to users of @command{mutt} and @command{slrn}.")))
diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm
index 79f7ca0816..310a0f6194 100644
--- a/gnu/packages/synergy.scm
+++ b/gnu/packages/synergy.scm
@@ -38,12 +38,12 @@
(source
(origin
(method url-fetch)
- (uri (string-append "https://github.com/symless/synergy/archive/"
+ (uri (string-append "https://github.com/symless/synergy-core/archive/"
"v" version "-stable.tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "16vxbly4a33c63da3kmj7j47cam583l7bip33jc43mw173wqihw5"))
+ "052z1yiwck9hlshf8in2dgz6p7jxmq9yfj32mfzjaygpz6mmmr4y"))
(modules '((guix build utils)))
(snippet
;; Remove ~14MB of unnecessary bundled source and binaries
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 2fa5f7e4cd..1bfe6a7762 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;;
@@ -27,6 +28,7 @@
(define-module (gnu packages terminals)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build utils)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system python)
@@ -51,6 +53,7 @@
#:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg)
#:use-module (srfi srfi-26))
(define-public tilda
@@ -537,3 +540,33 @@ eye-candy, customizable, and reasonably lightweight.")
license:silofl1.1
license:x11
license:bsd-3)))))
+
+(define-public sakura
+ (package
+ (name "sakura")
+ (version "3.5.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://launchpad.net/" name "/trunk/"
+ version "/+download/" name "-" version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "0fhcn3540iw22l5zg3njh5z8cj0g2n9p6fvagjqa5zc323jfsc7b"))))
+ (build-system cmake-build-system)
+ (arguments
+ ;; no check phase
+ '(#:tests? #f))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("perl" ,perl) ; for pod2man
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libxft" ,libxft)
+ ("vte" ,vte)))
+ (home-page "https://launchpad.net/sakura")
+ (synopsis "A simple but powerful libvte-based terminal emulator")
+ (description "@code{Sakura} is a terminal emulator based on GTK+ and VTE.
+It's a terminal emulator with few dependencies, so you don't need a full GNOME
+desktop installed to have a decent terminal emulator.")
+ (license license:gpl2)))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 8480f74fec..d03f5b58d3 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1328,15 +1328,15 @@ from Subversion to any supported Distributed Version Control System (DVCS).")
(define-public tig
(package
(name "tig")
- (version "2.2")
+ (version "2.3.0")
(source (origin
(method url-fetch)
(uri (string-append
- "http://jonas.nitro.dk/tig/releases/tig-"
- version ".tar.gz"))
+ "https://github.com/jonas/tig/releases/download/tig-"
+ version "/tig-" version ".tar.gz"))
(sha256
(base32
- "0k3m894vfkgkj7xbr0j6ph91351dl6id5f0hk2ksjp5lmg9i6llg"))))
+ "1vf02snz8qiiqiyqss1z63rzzmwbrc9agcgh21jdq13rja306vv8"))))
(build-system gnu-build-system)
(native-inputs
`(("asciidoc" ,asciidoc)
@@ -1351,8 +1351,8 @@ from Subversion to any supported Distributed Version Control System (DVCS).")
(lambda _
(zero? (system* "make" "install-doc")))))
#:tests? #f)) ; tests require access to /dev/tty
- ;;`(#:test-target "test"))
- (home-page "http://jonas.nitro.dk/tig/")
+ ;; #:test-target "test"))
+ (home-page "https://jonas.github.io/tig/")
(synopsis "Ncurses-based text user interface for Git")
(description
"Tig is an ncurses text user interface for Git, primarily intended as
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 63824f6c57..9fd252aaf2 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -11,7 +11,7 @@
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
+;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Feng Shu <tumashu@163.com>
@@ -49,6 +49,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (guix build-system waf)
#:use-module (gnu packages)
@@ -68,6 +69,7 @@
#:use-module (gnu packages databases)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages docbook)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
#:use-module (gnu packages file)
#:use-module (gnu packages flex)
@@ -585,18 +587,19 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(define-public ffmpeg
(package
(name "ffmpeg")
- (version "3.3.4")
+ (version "3.4")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
- "0mx9dvad3lkyhvsrblf280x2bz6dxajya1ylnspbdzldj0dpxfcq"))))
+ "1vzvpx8ixy8m44f8qwp833hv253hpghybgzbc4n8b3div3j0dvmf"))))
(build-system gnu-build-system)
(inputs
`(("fontconfig" ,fontconfig)
("freetype" ,freetype)
+ ("frei0r-plugins" ,frei0r-plugins)
("gnutls" ,gnutls)
("opus" ,opus)
("ladspa" ,ladspa)
@@ -636,7 +639,6 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
;; possible additional inputs:
;; --enable-avisynth enable reading of AviSynth script
;; files [no]
- ;; --enable-frei0r enable frei0r video filtering
;; --enable-libaacplus enable AAC+ encoding via libaacplus [no]
;; --enable-libcelt enable CELT decoding via libcelt [no]
;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
@@ -684,6 +686,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
'("--enable-avresample"
"--enable-gpl" ; enable optional gpl licensed parts
"--enable-shared"
+ "--enable-frei0r"
"--enable-fontconfig"
"--enable-gnutls"
"--enable-ladspa"
@@ -751,6 +754,19 @@ convert and stream audio and video. It includes the libavcodec
audio/video codec library.")
(license license:gpl2+)))
+;; XXX: Remove this when gst-libav and qtox supports 3.4.
+(define-public ffmpeg-3.3
+ (package
+ (inherit ffmpeg)
+ (version "3.3.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "00nq8ng2p16yb48acargaz1hlp9kq24vfwvkqjlslz4a7864k4x8"))))))
+
(define-public ffmpeg-2.8
(package
(inherit ffmpeg)
@@ -1050,7 +1066,7 @@ projects while introducing many more.")
(define-public gnome-mpv
(package
(name "gnome-mpv")
- (version "0.12")
+ (version "0.13")
(source
(origin
(method url-fetch)
@@ -1059,7 +1075,7 @@ projects while introducing many more.")
".tar.xz"))
(sha256
(base32
- "0dcnz9vlf791v8d15j7hpymv87h6nb15alww6xjq0zpal5hi44kc"))))
+ "1w944ymyssgfcjiczrq4saig90crw9b9hhdsnchfbjsw173qi8n5"))))
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
@@ -1116,7 +1132,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2017.10.20")
+ (version "2017.10.29")
(source (origin
(method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/"
@@ -1124,7 +1140,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz"))
(sha256
(base32
- "0npr8b1xg1dylz717kfllw433h1y16251npzch48lchq69bhm4iy"))))
+ "1yajwi2cr8j05j1rn61gs7yrr93nri4cq8n4zkb3w4a8413h7q4g"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
@@ -1233,7 +1249,7 @@ other site that youtube-dl supports.")
(define-public you-get
(package
(name "you-get")
- (version "0.4.915")
+ (version "0.4.939")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1242,7 +1258,7 @@ other site that youtube-dl supports.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "147qf8kdxjv9003fgx50ws0rmjjq98sv11q6c3sdwd29zylaj1ql"))))
+ "1amkdfnjn2j4k7jlr7qw9mg5whd7dy6z1flh5cd0n9v3d4m7k0c5"))))
(build-system python-build-system)
(arguments
;; no tests
@@ -2472,3 +2488,113 @@ tools for styling them, including a built-in real-time video preview.")
; by upstream). See https://github.com/Aegisub/Aegisub/blob/master/LICENCE
; src/MatroskaParser.(c|h) is under bsd-3 with permission from the author
+(define-public gst-transcoder
+ (package
+ (name "gst-transcoder")
+ (version "1.12.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/pitivi/gst-transcoder/"
+ "archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0cnwmrsd321s02ff91m3j27ydj7f8wks0jvmp5admlhka6z7zxm9"))))
+ (build-system meson-build-system)
+ (inputs
+ `(("gobject-introspection" ,gobject-introspection)
+ ("glib" ,glib)
+ ("gstreamer" ,gstreamer)
+ ("gst-plugins-base" ,gst-plugins-base)))
+ (native-inputs
+ `(("python" ,python)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/pitivi/gst-transcoder/")
+ (synopsis "GStreamer Transcoding API")
+ (description "GStreamer Transcoding API")
+ (license license:lgpl2.1)))
+
+(define-public gavl
+ (package
+ (name "gavl")
+ (version "1.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/gmerlin/"
+ name "/" version "/"
+ name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1kikkn971a14zzm7svi7190ldc14fjai0xyhpbcmp48s750sraji"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags '("LIBS=-lm")))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("doxygen" ,doxygen)))
+ (home-page "http://gmerlin.sourceforge.net")
+ (synopsis "Low level library for multimedia API building")
+ (description
+ "Gavl is short for Gmerlin Audio Video Library. It is a low level
+library, upon which multimedia APIs can be built. Gavl handles all the
+details of audio and video formats like colorspaces, sample rates,
+multichannel configurations, etc. It provides standardized definitions for
+those formats as well as container structures for carrying audio samples or
+video images inside an application.
+
+In addition, it handles the sometimes ugly task of converting between all
+these formats and provides some elementary operations (copying, scaling,
+alpha blending etc).")
+ (license license:gpl3)))
+
+(define-public frei0r-plugins
+ (package
+ (name "frei0r-plugins")
+ (version "1.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://files.dyne.org/frei0r/"
+ "frei0r-plugins-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0pji26fpd0dqrx1akyhqi6729s394irl73dacnyxk58ijqq4dhp0"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'autotools
+ (lambda _
+ (zero? (system* "sh" "autogen.sh")))))))
+ ;; TODO: opencv for additional face detection filters
+ (inputs
+ `(("gavl" ,gavl)
+ ("cairo" ,cairo)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("libtool" ,libtool)
+ ("automake" ,automake)
+ ("autoconf" ,autoconf)))
+ (home-page "https://www.dyne.org/software/frei0r/")
+ (synopsis "Minimalistic plugin API for video effects")
+ (description
+ "Frei0r is a minimalistic plugin API for video effects.
+The main emphasis is on simplicity for an API that will round up
+the most common video effects into simple filters, sources and
+mixers that can be controlled by parameters. Frei0r wants to
+provide a way to share these simple effects between many
+applications, avoiding their reimplementation by different projects.
+It counts more than 100 plugins.")
+ (license (list license:gpl2+
+ ;; The following files are licensed as LGPL2.1+:
+ ;; src/generator/ising0r/ising0r.c
+ ;; src/generator/onecol0r/onecol0r.cpp
+ ;; src/generator/nois0r/nois0r.cpp
+ ;; src/generator/lissajous0r/lissajous0r.cpp
+ ;; src/filter/ndvi/gradientlut.hpp
+ ;; src/filter/ndvi/ndvi.cpp
+ ;; src/filter/facedetect/facedetect.cpp
+ license:lgpl2.1+))))
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index c8ab607028..14b1dfbe04 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -275,7 +275,7 @@ all common programming languages. Vala bindings are also provided.")
(define-public lxc
(package
(name "lxc")
- (version "2.0.8")
+ (version "2.1.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -283,7 +283,7 @@ all common programming languages. Vala bindings are also provided.")
version ".tar.gz"))
(sha256
(base32
- "15449r56rqg3487kzsnfvz0w4p5ajrq0krcsdh6c9r6g0ark93hd"))))
+ "1xpghrinxhm2072fwmn42pxhjwh7qx6cbsipw4s6g38a8mkklrk8"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -509,9 +509,12 @@ virtualization library.")
;; Some of the tests seem to require network access to install virtual
;; machines.
#:tests? #f
+ #:imported-modules ((guix build glib-or-gtk-build-system)
+ ,@%python-build-system-modules)
#:modules ((ice-9 match)
(srfi srfi-26)
(guix build python-build-system)
+ ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
(guix build utils))
#:phases
(modify-phases %standard-phases
@@ -545,9 +548,14 @@ virtualization library.")
`("GI_TYPELIB_PATH" ":" prefix
,(filter identity paths))))
bin-files))
- #t)))))
+ #t))
+ (add-after 'install 'glib-or-gtk-compile-schemas
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+ (add-after 'install 'glib-or-gtk-wrap
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(inputs
- `(("gtk+" ,gtk+)
+ `(("dconf" ,dconf)
+ ("gtk+" ,gtk+)
("gtk-vnc" ,gtk-vnc)
("libvirt" ,libvirt)
("libvirt-glib" ,libvirt-glib)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index a544680143..22a8ea0c43 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
@@ -2391,7 +2391,7 @@ composed of HTML::Element style components.")
(define-public perl-html-lint
(package
(name "perl-html-lint")
- (version "2.20")
+ (version "2.26")
(source
(origin
(method url-fetch)
@@ -2399,7 +2399,7 @@ composed of HTML::Element style components.")
"HTML-Lint-" version ".tar.gz"))
(sha256
(base32
- "15vrqjnlb0f8rib1kqdf4islqy6i33h08wy7b1bkgd550p7lfjwk"))))
+ "02vi1s4sw3hjnndxd6s91cp54iw5pg8n5kl9v0109dfxzn1n9bnl"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-html-parser" ,perl-html-parser)
@@ -2586,15 +2586,15 @@ jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
(define-public perl-http-cookies
(package
(name "perl-http-cookies")
- (version "6.01")
+ (version "6.04")
(source (origin
(method url-fetch)
(uri (string-append
- "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Cookies-"
+ "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Cookies-"
version ".tar.gz"))
(sha256
(base32
- "087bqmg22dg3vj7gssh3pcsh9y1scimkbl5h1kc8jqyfhgisvlzm"))))
+ "1m0kxcirbvbkrm2c59p1bkbvzlcdymg8fdpa7wlxijlx0xwz1iqc"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-http-message" ,perl-http-message)))
@@ -3331,7 +3331,7 @@ either mocked HTTP or a locally spawned server.")
(define-public perl-test-www-mechanize
(package
(name "perl-test-www-mechanize")
- (version "1.44")
+ (version "1.48")
(source
(origin
(method url-fetch)
@@ -3339,7 +3339,7 @@ either mocked HTTP or a locally spawned server.")
"Test-WWW-Mechanize-" version ".tar.gz"))
(sha256
(base32
- "062pj242vsc73bw11jqpap92ax9wzc9f2m4xhyp1wzrwkfchpl2q"))))
+ "1d11fx9155d5v17d5w7q3kj37b01l8yj2yb0g6b0z1vh938rrlcr"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-exception" ,perl-test-exception)))
@@ -3399,7 +3399,7 @@ testing of Catalyst applications without needing to start up a web server.")
(define-public perl-test-www-mechanize-psgi
(package
(name "perl-test-www-mechanize-psgi")
- (version "0.35")
+ (version "0.37")
(source
(origin
(method url-fetch)
@@ -3407,7 +3407,7 @@ testing of Catalyst applications without needing to start up a web server.")
"Test-WWW-Mechanize-PSGI-" version ".tar.gz"))
(sha256
(base32
- "1hih8s49zf38bisvhnhzrrj0zwyiivkrbs7nmmdqm1qqy27wv7pc"))))
+ "0c9a9w0d2whadnrich7f09w37fgq5hws4gq04zgz4jsdjcvr3qv2"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-pod" ,perl-test-pod)))
@@ -3471,7 +3471,7 @@ and time-saving way.")
(define-public perl-uri-find
(package
(name "perl-uri-find")
- (version "20140709")
+ (version "20160806")
(source
(origin
(method url-fetch)
@@ -3479,7 +3479,7 @@ and time-saving way.")
"URI-Find-" version ".tar.gz"))
(sha256
(base32
- "0czc4h182s7sx3k123m7qlg7yybnwxgh369hap3c3b6xgrglrhy0"))))
+ "1mk3jv8x0mcq3ajrn9garnxd0jc7sw4pkwqi88r5apqvlljs84z2"))))
(build-system perl-build-system)
(native-inputs
`(("perl-module-build" ,perl-module-build)))
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 59188ac4db..f8efad2e57 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -54,14 +54,14 @@
(define-public webkitgtk
(package
(name "webkitgtk")
- (version "2.18.1")
+ (version "2.18.2")
(source (origin
(method url-fetch)
(uri (string-append "https://www.webkitgtk.org/releases/"
name "-" version ".tar.xz"))
(sha256
(base32
- "15fp7szmkpannx7avsynf0nv3y343qwq0fvq3rz2m2mw5wq7pnww"))))
+ "1ry8zvv6k01g9p7agg326n0ziqpqjxd49h5w1b2is6rjnpqv6k5i"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no tests
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index 3673ad5cc4..bfcfcad230 100644
--- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@ -21,6 +21,7 @@
(define-module (gnu packages wget)
#:use-module (guix licenses)
#:use-module (gnu packages)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages libidn)
#:use-module (gnu packages python)
#:use-module (gnu packages perl)
@@ -34,18 +35,15 @@
(define-public wget
(package
(name "wget")
- (version "1.19.1")
+ (version "1.19.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/wget/wget-"
- version ".tar.xz"))
- (patches (search-patches "wget-CVE-2017-6508.patch"
- "wget-fix-504-test-timeout.patch"
- "wget-perl-5.26.patch"))
+ version ".tar.lz"))
(sha256
(base32
- "1ljcfhbkdsd0zjfm520rbl1ai62fc34i7c45sfj244l8f6b0p58c"))))
+ "01yzal7xm85543x02bij3capnigr063d6c5vc039f8n5s9d796nm"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@@ -65,7 +63,8 @@
(inputs
`(("gnutls" ,gnutls)
("libidn2" ,libidn2)
- ("libpsl" ,libpsl)))
+ ("libpsl" ,libpsl)
+ ("lzip" ,lzip)))
(native-inputs
`(("pkg-config" ,pkg-config)
("perl" ,perl)
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index a1637b9d78..b4c3c194f8 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -55,14 +55,14 @@
(define-public wine
(package
(name "wine")
- (version "2.0.2")
+ (version "2.0.3")
(source (origin
(method url-fetch)
(uri (string-append "https://dl.winehq.org/wine/source/2.0"
"/wine-" version ".tar.xz"))
(sha256
(base32
- "16iwf48cfi39aqyy8131jz4x7lr551c9yc0mnks7g24j77sq867p"))))
+ "0mmyc94r5drffir8zr8jx6iawhgfzjk96fj494aa18vhz1jcc4d8"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
@@ -157,7 +157,7 @@ integrate Windows applications into your desktop.")
,@(strip-keyword-arguments '(#:configure-flags #:system)
(package-arguments wine))))
(synopsis "Implementation of the Windows API (64-bit version)")
- (supported-systems '("x86_64-linux"))))
+ (supported-systems '("x86_64-linux" "aarch64-linux"))))
;; TODO: This is wine development version, provided for historical reasons.
;; We can remove it as soon as a new stable release is out.
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 23641842e6..c91e72a5a2 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -361,7 +361,7 @@ module.")
(define-public perl-xml-libxml
(package
(name "perl-xml-libxml")
- (version "2.0128")
+ (version "2.0132")
(source
(origin
(method url-fetch)
@@ -369,7 +369,7 @@ module.")
"XML-LibXML-" version ".tar.gz"))
(sha256
(base32
- "0awgd2gjzy7kn38bqblsigikzl81xsi561phkz9f9b9v3x2vmrr6"))))
+ "0xnl281hb590i287fxpl947f1s4zl9dnvc4ajvsqi89w23im453j"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 1a2bf80004..4c03a858c2 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5170,6 +5170,12 @@ over Xlib, including:
;; It's not used anyway, so set it to empty.
"--with-default-font-path="
+ ;; The default is to use "uname -srm", which captures the kernel
+ ;; version and makes builds non-reproducible.
+ "--with-os-name=GNU"
+
+ "--with-os-vendor=GuixSD" ;not strictly needed, but looks nice
+
;; For the log file, etc.
"--localstatedir=/var"
@@ -5179,17 +5185,25 @@ over Xlib, including:
#:phases
(modify-phases %standard-phases
- (add-before
- 'configure 'pre-configure
- (lambda _
- (substitute* (find-files "." "\\.c$")
- (("/bin/sh") (which "sh")))
-
- ;; Don't try to 'mkdir /var'.
- (substitute* "hw/xfree86/Makefile.in"
- (("\\$\\(MKDIR_P\\).*logdir.*")
- "true\n"))
- #t)))))
+ (add-before 'configure 'pre-configure
+ (lambda _
+ (substitute* (find-files "." "\\.c$")
+ (("/bin/sh") (which "sh")))
+
+ ;; Don't try to 'mkdir /var'.
+ (substitute* "hw/xfree86/Makefile.in"
+ (("\\$\\(MKDIR_P\\).*logdir.*")
+ "true\n"))
+
+ ;; Strip timestamps that would otherwise end up in the 'Xorg'
+ ;; binary.
+ (substitute* "configure"
+ (("^BUILD_DATE=.*$")
+ "BUILD_DATE=19700101\n")
+ (("^BUILD_TIME=.*$")
+ "BUILD_TIME=000001\n"))
+
+ #t)))))
(home-page "https://www.x.org/wiki/")
(synopsis "Xorg implementation of the X Window System")
(description
@@ -5909,7 +5923,7 @@ basic eye-candy effects.")
(define-public xpra
(package
(name "xpra")
- (version "2.1.2")
+ (version "2.1.3")
(source
(origin
(method url-fetch)
@@ -5917,7 +5931,7 @@ basic eye-candy effects.")
version ".tar.xz"))
(sha256
(base32
- "0a5ffs6gm7j7vzqdbhfmjn9z8qxm9m9as7a1vjmjx63yxv9jqihn"))))
+ "0r0l3p59q05fmvkp3jv8vmny2v8m1vyhqkg6b9r2qgxn1kcxx7rm"))))
(build-system python-build-system)
(inputs `(("ffmpeg", ffmpeg)
("flac", flac)
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index d0cc08f431..a80c520ecc 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -219,7 +219,7 @@ packages defined in installation-os."
(image (system-disk-image
(operating-system-with-gc-roots
os (list target))
- #:disk-image-size (* 1500 MiB)
+ #:disk-image-size 'guess
#:file-system-type
installation-disk-image-file-system-type)))
(define install
diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm
index 72af6ce7b6..d175f3b76a 100644
--- a/guix/build/go-build-system.scm
+++ b/guix/build/go-build-system.scm
@@ -171,7 +171,7 @@ respectively."
(setenv "GOPATH" (string-append (getcwd) ":" (getenv "GOPATH")))
(setenv "GOPATH" (getcwd)))
;; Where to install compiled executable files ('commands' in Go parlance').
- (setenv "GOBIN" out)
+ (setenv "GOBIN" (string-append out "/bin"))
#t))
(define* (build #:key import-path #:allow-other-keys)
diff --git a/guix/download.scm b/guix/download.scm
index 449521c199..1bd4875b10 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -176,28 +176,63 @@
"ftp://mirrors.go-part.com/xorg/"
"http://x.cs.pu.edu.tw/"
"ftp://ftp.is.co.za/pub/x.org") ; South Africa
- (cpan ; from http://www.cpan.org/SITES.html
- "http://mirror.ibcp.fr/pub/CPAN/"
- "ftp://ftp.ciril.fr/pub/cpan/"
- "ftp://artfiles.org/cpan.org/"
+ (cpan
"http://www.cpan.org/"
- "ftp://cpan.rinet.ru/pub/mirror/CPAN/"
- "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/"
- "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/")
+ "http://cpan.metacpan.org/"
+ ;; A selection of HTTP mirrors from http://www.cpan.org/SITES.html.
+ ;; Europe.
+ "http://ftp.belnet.be/mirror/ftp.cpan.org/"
+ "http://mirrors.nic.cz/CPAN/"
+ "http://mirror.ibcp.fr/pub/CPAN/"
+ "http://ftp.ntua.gr/pub/lang/perl/"
+ "http://kvin.lv/pub/CPAN/"
+ "http://mirror.as43289.net/pub/CPAN/"
+ "http://cpan.cs.uu.nl/"
+ "http://cpan.uib.no/"
+ "http://cpan-mirror.rbc.ru/pub/CPAN/"
+ "http://mirror.sbb.rs/CPAN/"
+ "http://cpan.lnx.sk/"
+ "http://ftp.rediris.es/mirror/CPAN/"
+ "http://mirror.ox.ac.uk/sites/www.cpan.org/"
+ ;; Africa.
+ "http://mirror.liquidtelecom.com/CPAN/"
+ "http://cpan.mirror.ac.za/"
+ "http://mirror.is.co.za/pub/cpan/"
+ "http://cpan.saix.net/"
+ "http://mirror.ucu.ac.ug/cpan/"
+ ;; North America.
+ "http://mirrors.gossamer-threads.com/CPAN/"
+ "http://mirror.csclub.uwaterloo.ca/CPAN/"
+ "http://mirrors.ucr.ac.cr/CPAN/"
+ "http://www.msg.com.mx/CPAN/"
+ "http://mirrors.namecheap.com/CPAN/"
+ "http://mirror.uic.edu/CPAN/"
+ "http://mirror.datapipe.net/CPAN/"
+ "http://mirror.cc.columbia.edu/pub/software/cpan/"
+ "http://mirror.uta.edu/CPAN/"
+ ;; South America.
+ "http://cpan.mmgdesigns.com.ar/"
+ "http://mirror.nbtelecom.com.br/CPAN/"
+ "http://linorg.usp.br/CPAN/"
+ "http://cpan.dcc.uchile.cl/"
+ "http://mirror.cedia.org.ec/CPAN/"
+ ;; Oceania.
+ "http://cpan.mirror.serversaustralia.com.au/"
+ "http://mirror.waia.asn.au/pub/cpan/"
+ "http://mirror.as24220.net/pub/cpan/"
+ "http://cpan.lagoon.nc/pub/CPAN/"
+ "http://cpan.inspire.net.nz/"
+ ;; Asia.
+ "http://mirror.dhakacom.com/CPAN/"
+ "http://mirrors.ustc.edu.cn/CPAN/"
+ "http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/"
+ "http://kambing.ui.ac.id/cpan/"
+ "http://cpan.hostiran.ir/"
+ "http://ftp.nara.wide.ad.jp/pub/CPAN/"
+ "http://mirror.neolabs.kz/CPAN/"
+ "http://cpan.nctu.edu.tw/"
+ "http://cpan.ulak.net.tr/"
+ "http://mirrors.vinahost.vn/CPAN/")
(cran
;; Arbitrary mirrors from http://cran.r-project.org/mirrors.html
;; This one automatically redirects to servers worldwide
diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm
index 6261e3e924..2ef02c43a4 100644
--- a/guix/import/cpan.scm
+++ b/guix/import/cpan.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -115,7 +116,7 @@ or #f on failure. MODULE should be e.g. \"Test::Script\""
(json-fetch (string-append "https://fastapi.metacpan.org/v1/release/" name)))
(define (cpan-home name)
- (string-append "http://search.cpan.org/dist/" name))
+ (string-append "http://search.cpan.org/dist/" name "/"))
(define (cpan-source-url meta)
"Return the download URL for a module's source tarball."
@@ -242,9 +243,9 @@ META."
;; have not yet had a need for cross-compiled perl
;; modules, however, so we leave it out.
(convert-inputs '("configure" "build" "test")))
- ,@(maybe-inputs 'inputs
+ ,@(maybe-inputs 'propagated-inputs
(convert-inputs '("runtime")))
- (home-page ,(string-append "http://search.cpan.org/dist/" name))
+ (home-page ,(cpan-home name))
(synopsis ,(assoc-ref meta "abstract"))
(description fill-in-yourself!)
(license ,(string->license (assoc-ref meta "license"))))))
diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm
index 858eea88e2..45a419217c 100644
--- a/guix/import/elpa.scm
+++ b/guix/import/elpa.scm
@@ -80,8 +80,11 @@ NAMES (strings)."
(cut string-append <> "/archive-contents"))))
(if url
;; Use a relatively small TTL for the archive itself.
- (parameterize ((%http-cache-ttl (* 6 3600)))
- (call-with-downloaded-file url read))
+ (let* ((port (http-fetch/cached (string->uri url)
+ #:ttl (* 6 3600)))
+ (data (read port)))
+ (close-port port)
+ data)
(leave (G_ "~A: currently not supported~%") repo))))
(define* (call-with-downloaded-file url proc #:optional (error-thunk #f))
diff --git a/guix/import/github.scm b/guix/import/github.scm
index b249b39067..4b7d53c704 100644
--- a/guix/import/github.scm
+++ b/guix/import/github.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -19,6 +20,7 @@
(define-module (guix import github)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (json)
#:use-module (guix utils)
@@ -182,7 +184,14 @@ https://github.com/settings/tokens"))
(define (latest-release pkg)
"Return an <upstream-source> for the latest release of PKG."
- (let* ((source-uri (origin-uri (package-source pkg)))
+ (define (origin-github-uri origin)
+ (match (origin-uri origin)
+ ((? string? url)
+ url) ;surely a github.com URL
+ ((urls ...)
+ (find (cut string-contains <> "github.com") urls))))
+
+ (let* ((source-uri (origin-github-uri (package-source pkg)))
(name (package-name pkg))
(newest-version (latest-released-version source-uri name)))
(if newest-version
diff --git a/guix/scripts.scm b/guix/scripts.scm
index 9ff7f25548..4a7ae7baa3 100644
--- a/guix/scripts.scm
+++ b/guix/scripts.scm
@@ -67,11 +67,13 @@ reporting."
(define* (parse-command-line args options seeds
#:key
+ (build-options? #t)
(argument-handler %default-argument-handler))
- "Parse the command-line arguments ARGS as well as arguments passed via the
-'GUIX_BUILD_OPTIONS' environment variable according to OPTIONS (a list of
-SRFI-37 options) and return the result, seeded by SEEDS.
-Command-line options take precedence those passed via 'GUIX_BUILD_OPTIONS'.
+ "Parse the command-line arguments ARGS according to OPTIONS (a list of
+SRFI-37 options) and return the result, seeded by SEEDS. When BUILD-OPTIONS?
+is true, also pass arguments passed via the 'GUIX_BUILD_OPTIONS' environment
+variable. Command-line options take precedence those passed via
+'GUIX_BUILD_OPTIONS'.
ARGUMENT-HANDLER is called for non-option arguments, like the 'operand-proc'
parameter of 'args-fold'."
@@ -85,7 +87,9 @@ parameter of 'args-fold'."
(call-with-values
(lambda ()
- (parse-options-from (environment-build-options) seeds))
+ (if build-options?
+ (parse-options-from (environment-build-options) seeds)
+ (apply values seeds)))
(lambda seeds
;; ARGS take precedence over what the environment variable specifies.
(parse-options-from args seeds))))
diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm
index 681394f9cf..f0693ed8df 100644
--- a/guix/scripts/challenge.scm
+++ b/guix/scripts/challenge.scm
@@ -210,6 +210,20 @@ inconclusive reports."
(report (G_ "~a contents match:~%") item)
(report-hashes item local narinfos)))))
+(define (summarize-report-list reports)
+ "Display the overall summary of REPORTS."
+ (let ((total (length reports))
+ (inconclusive (count comparison-report-inconclusive? reports))
+ (matches (count comparison-report-match? reports))
+ (discrepancies (count comparison-report-mismatch? reports)))
+ (report (G_ "~h store items were analyzed:~%") total)
+ (report (G_ " - ~h (~,1f%) were identical~%")
+ matches (* 100. (/ matches total)))
+ (report (G_ " - ~h (~,1f%) differed~%")
+ discrepancies (* 100. (/ discrepancies total)))
+ (report (G_ " - ~h (~,1f%) were inconclusive~%")
+ inconclusive (* 100. (/ inconclusive total)))))
+
;;;
;;; Command-line options.
@@ -264,7 +278,8 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n"))
(define (guix-challenge . args)
(with-error-handling
- (let* ((opts (parse-command-line args %options (list %default-options)))
+ (let* ((opts (parse-command-line args %options (list %default-options)
+ #:build-options? #f))
(files (filter-map (match-lambda
(('argument . file) file)
(_ #f))
@@ -292,6 +307,8 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n"))
(reports (compare-contents items urls)))
(for-each (cut summarize-report <> #:verbose? verbose?)
reports)
+ (report "\n")
+ (summarize-report-list reports)
(exit (cond ((any comparison-report-mismatch? reports) 2)
((every comparison-report-match? reports) 0)
diff --git a/guix/scripts/gc.scm b/guix/scripts/gc.scm
index 0a9719d259..378a47d113 100644
--- a/guix/scripts/gc.scm
+++ b/guix/scripts/gc.scm
@@ -159,12 +159,8 @@ Invoke the garbage collector.\n"))
(define (guix-gc . args)
(define (parse-options)
;; Return the alist of option values.
- (args-fold* args %options
- (lambda (opt name arg result)
- (leave (G_ "~A: unrecognized option~%") name))
- (lambda (arg result)
- (alist-cons 'argument arg result))
- %default-options))
+ (parse-command-line args %options (list %default-options)
+ #:build-options? #f))
(define (symlink-target file)
(let ((s (false-if-exception (lstat file))))
diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm
index d5be442884..78f09f181b 100644
--- a/guix/scripts/graph.scm
+++ b/guix/scripts/graph.scm
@@ -417,7 +417,7 @@ substitutes."
;; TRANSLATORS: Here 'dot' is the name of a program; it must not be
;; translated.
(display (G_ "Usage: guix graph PACKAGE...
-Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n"))
+Emit a representation of the dependency graph of PACKAGE...\n"))
(display (G_ "
-b, --backend=TYPE produce a graph with the given backend TYPE"))
(display (G_ "
@@ -447,12 +447,9 @@ Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n"))
(define (guix-graph . args)
(with-error-handling
- (let* ((opts (args-fold* args %options
- (lambda (opt name arg . rest)
- (leave (G_ "~A: unrecognized option~%") name))
- (lambda (arg result)
- (alist-cons 'argument arg result))
- %default-options))
+ (let* ((opts (parse-command-line args %options
+ (list %default-options)
+ #:build-options? #f))
(backend (assoc-ref opts 'backend))
(type (assoc-ref opts 'node-type))
(items (filter-map (match-lambda
diff --git a/guix/scripts/hash.scm b/guix/scripts/hash.scm
index 1fa6bb8d1f..cae5d6bcdf 100644
--- a/guix/scripts/hash.scm
+++ b/guix/scripts/hash.scm
@@ -104,13 +104,8 @@ and 'hexadecimal' can be used as well).\n"))
(define (guix-hash . args)
(define (parse-options)
;; Return the alist of option values.
- (args-fold* args %options
- (lambda (opt name arg result)
- (leave (G_ "unrecognized option: ~a~%")
- name))
- (lambda (arg result)
- (alist-cons 'argument arg result))
- %default-options))
+ (parse-command-line args %options (list %default-options)
+ #:build-options? #f))
(define (vcs-file? file stat)
(case (stat:type stat)
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index a26f92f49c..8840b1acb5 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -792,35 +792,44 @@ be determined."
((? origin?)
(and=> (origin-actual-file-name patch) basename))))
-(define (current-vulnerabilities*)
- "Like 'current-vulnerabilities', but return the empty list upon networking
-or HTTP errors. This allows network-less operation and makes problems with
-the NIST server non-fatal.."
+(define (call-with-networking-fail-safe message error-value proc)
+ "Call PROC catching any network-related errors. Upon a networking error,
+display a message including MESSAGE and return ERROR-VALUE."
(guard (c ((http-get-error? c)
- (warning (G_ "failed to retrieve CVE vulnerabilities \
-from ~s: ~a (~s)~%")
+ (warning (G_ "~a: HTTP GET error for ~a: ~a (~s)~%")
+ message
(uri->string (http-get-error-uri c))
(http-get-error-code c)
(http-get-error-reason c))
- (warning (G_ "assuming no CVE vulnerabilities~%"))
- '()))
+ error-value))
(catch #t
- (lambda ()
- (current-vulnerabilities))
+ proc
(match-lambda*
(('getaddrinfo-error errcode)
- (warning (G_ "failed to lookup NIST host: ~a~%")
+ (warning (G_ "~a: host lookup failure: ~a~%")
+ message
(gai-strerror errcode))
- (warning (G_ "assuming no CVE vulnerabilities~%"))
- '())
+ error-value)
(('tls-certificate-error args ...)
- (warning (G_ "TLS certificate error: ~a")
+ (warning (G_ "~a: TLS certificate error: ~a")
+ message
(tls-certificate-error-string args))
- (warning (G_ "assuming no CVE vulnerabilities~%"))
- '())
+ error-value)
(args
(apply throw args))))))
+(define-syntax-rule (with-networking-fail-safe message error-value exp ...)
+ (call-with-networking-fail-safe message error-value
+ (lambda () exp ...)))
+
+(define (current-vulnerabilities*)
+ "Like 'current-vulnerabilities', but return the empty list upon networking
+or HTTP errors. This allows network-less operation and makes problems with
+the NIST server non-fatal."
+ (with-networking-fail-safe (G_ "while retrieving CVE vulnerabilities")
+ '()
+ (current-vulnerabilities)))
+
(define package-vulnerabilities
(let ((lookup (delay (vulnerabilities->lookup-proc
(current-vulnerabilities*)))))
@@ -860,7 +869,11 @@ from ~s: ~a (~s)~%")
(define (check-for-updates package)
"Check if there is an update available for PACKAGE."
- (match (package-latest-release* package (force %updaters))
+ (match (with-networking-fail-safe
+ (format #f (G_ "while retrieving upstream info for '~a'")
+ (package-name package))
+ #f
+ (package-latest-release* package (force %updaters)))
((? upstream-source? source)
(when (version>? (upstream-source-version source)
(package-version package))
@@ -1123,12 +1136,8 @@ run the checkers on all packages.\n"))
(define (guix-lint . args)
(define (parse-options)
;; Return the alist of option values.
- (args-fold* args %options
- (lambda (opt name arg result)
- (leave (G_ "~A: unrecognized option~%") name))
- (lambda (arg result)
- (alist-cons 'argument arg result))
- %default-options))
+ (parse-command-line args %options (list %default-options)
+ #:build-options? #f))
(let* ((opts (parse-options))
(args (filter-map (match-lambda
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 0e365018a9..f972ca2ef7 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -738,7 +738,8 @@ processed, #f otherwise."
(available (fold-packages
(lambda (p r)
(let ((n (package-name p)))
- (if (supported-package? p)
+ (if (and (supported-package? p)
+ (not (package-superseded p)))
(if regexp
(if (regexp-exec regexp n)
(cons p r)
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm
index d638d744af..852b44b38d 100644
--- a/guix/scripts/refresh.scm
+++ b/guix/scripts/refresh.scm
@@ -338,12 +338,8 @@ dependent packages are rebuilt: ~{~a~^ ~}~%"
(define (guix-refresh . args)
(define (parse-options)
;; Return the alist of option values.
- (args-fold* args %options
- (lambda (opt name arg result)
- (leave (G_ "~A: unrecognized option~%") name))
- (lambda (arg result)
- (alist-cons 'argument arg result))
- %default-options))
+ (parse-command-line args %options (list %default-options)
+ #:build-options? #f))
(define (options->updaters opts)
;; Return the list of updaters to use.
diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm
index eade184e67..b7b53e43fb 100644
--- a/guix/scripts/size.scm
+++ b/guix/scripts/size.scm
@@ -291,7 +291,8 @@ Report the size of PACKAGE and its dependencies.\n"))
(define (guix-size . args)
(with-error-handling
- (let* ((opts (parse-command-line args %options (list %default-options)))
+ (let* ((opts (parse-command-line args %options (list %default-options)
+ #:build-options? #f))
(files (filter-map (match-lambda
(('argument . file) file)
(_ #f))
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 1fbeed71e8..2fd2bf8104 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -533,6 +533,20 @@ indicates that PATH is unavailable at CACHE-URL."
(headers '((User-Agent . "GNU Guile"))))
(build-request (string->uri url) #:method 'GET #:headers headers)))
+(define (at-most max-length lst)
+ "If LST is shorter than MAX-LENGTH, return it; otherwise return its
+MAX-LENGTH first elements."
+ (let loop ((len 0)
+ (lst lst)
+ (result '()))
+ (match lst
+ (()
+ (reverse result))
+ ((head . tail)
+ (if (>= len max-length)
+ (reverse result)
+ (loop (+ 1 len) tail (cons head result)))))))
+
(define* (http-multiple-get base-uri proc seed requests
#:key port (verify-certificate? #t))
"Send all of REQUESTS to the server at BASE-URI. Call PROC for each
@@ -553,7 +567,7 @@ initial connection on which HTTP requests are sent."
(when (file-port? p)
(setvbuf p _IOFBF (expt 2 16)))
- ;; Send all of REQUESTS in a row.
+ ;; Send REQUESTS, up to a certain number, in a row.
;; XXX: Do our own caching to work around inefficiencies when
;; communicating over TLS: <http://bugs.gnu.org/22966>.
(let-values (((buffer get) (open-bytevector-output-port)))
@@ -562,7 +576,8 @@ initial connection on which HTTP requests are sent."
'http-proxy-port?)
(set-http-proxy-port?! buffer (http-proxy-port? p)))
- (for-each (cut write-request <> buffer) requests)
+ (for-each (cut write-request <> buffer)
+ (at-most 1000 requests))
(put-bytevector p (get))
(force-output p))
diff --git a/guix/scripts/weather.scm b/guix/scripts/weather.scm
index 4c4dfac8f6..0d4a7fa26b 100644
--- a/guix/scripts/weather.scm
+++ b/guix/scripts/weather.scm
@@ -205,7 +205,8 @@ Report the availability of substitutes.\n"))
(define (guix-weather . args)
(with-error-handling
(let* ((opts (parse-command-line args %options
- (list %default-options)))
+ (list %default-options)
+ #:build-options? #f))
(urls (assoc-ref opts 'substitute-urls))
(systems (match (filter-map (match-lambda
(('system . system) system)
diff --git a/tests/cpan.scm b/tests/cpan.scm
index 8900716cb0..e5bd0ae3a4 100644
--- a/tests/cpan.scm
+++ b/tests/cpan.scm
@@ -94,10 +94,10 @@
('base32
(? string? hash)))))
('build-system 'perl-build-system)
- ('inputs
+ ('propagated-inputs
('quasiquote
(("perl-test-script" ('unquote 'perl-test-script)))))
- ('home-page "http://search.cpan.org/dist/Foo-Bar")
+ ('home-page "http://search.cpan.org/dist/Foo-Bar/")
('synopsis "Fizzle Fuzz")
('description 'fill-in-yourself!)
('license 'perl-license))