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") - (("") "") - (("") "") - (("") "")) - #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 +;;; Copyright © 2017 Leo Famulari ;;; ;;; 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 ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 Mark H Weaver -;;; Copyright © 2016 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Rene Saavedra ;;; ;;; 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 ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2016 Fabian Harfert +;;; Copyright © 2017 ng0 ;;; ;;; 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 ;;; Copyright © 2015, 2016, 2017 Stefan Reichör ;;; Copyright © 2016 Raimon Grau -;;; Copyright © 2016 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016, 2017 Nicolas Goaziou ;;; Copyright © 2016 Eric Bavier @@ -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 ;;; Copyright © 2017 Muriithi Frederick Muriuki ;;; Copyright © 2017 Oleg Pykhalov +;;; Copyright © 2017 Roel Janssen ;;; ;;; 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?= +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 + #include + #include ++#include + + // ***************************************************************************** + 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(baseOffset()) > std::numeric_limits::max() - static_cast(offset)) ++ || (static_cast(baseOffset() + offset) > std::numeric_limits::max() - reinterpret_cast(pData_))) ++ { ++ throw Error(59); ++ } ++ if (pData_ + static_cast(baseOffset()) + static_cast(offset) > pLast_) { ++ throw Error(58); ++ } + pData = const_cast(pData_) + baseOffset() + offset; ++ ++ // check for size being invalid + if (size > static_cast(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?= +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?= -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?= -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 -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 ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus -;;; Copyright © 2015, 2016 Eric Bavier +;;; Copyright © 2015, 2016, 2017 Eric Bavier ;;; Copyright © 2015 Eric Dvorsak ;;; Copyright © 2016 Mark H Weaver ;;; Copyright © 2016 Jochem Raat @@ -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 ;;; Copyright © 2015, 2016 Erik Edrosa ;;; Copyright © 2015, 2016, 2017 Efraim Flashner -;;; Copyright © 2015 Kyle Meyer +;;; Copyright © 2015, 2017 Kyle Meyer ;;; Copyright © 2015, 2016 Chris Marusich ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2016 Lukas Gradl @@ -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 ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2017 Nicolas Goaziou ;;; ;;; 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) - ("graphicsmagick" ,graphicsmagick) - ("lcms" ,lcms) - ("libjpeg" ,libjpeg) - ("libtiff" ,libtiff) - ("libxml2" ,libxml2) - ("python" ,python-2) + ("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) + ("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 ;;; Copyright © 2016, 2017 José Miguel Sánchez García ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017 Kei Kebreau ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Petter ;;; @@ -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 ;;; Copyright © 2016 Dmitry Nikolaev ;;; Copyright © 2016 Andy Patterson -;;; Copyright © 2016, 2017 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Eric Bavier ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2017 Feng Shu @@ -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 ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016, 2017 Arun Isaac -;;; Copyright © 2016 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice ;;; Copyright © 2016 Bake Timmons ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Marius Bakke @@ -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 .") (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"))) + (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))))) + ;; 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 ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Alex Sassmannshausen +;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; ;;; 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 +;;; Copyright © 2017 Ludovic Courtès ;;; ;;; 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 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: . (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))