diff options
author | Marius Bakke <mbakke@fastmail.com> | 2019-01-31 23:32:56 +0100 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2019-01-31 23:32:56 +0100 |
commit | 0747328e317de4bf936fab50e795d1e1523adfc1 (patch) | |
tree | 291d4f07a801b147d64faec31e4394c5cd46ce35 /gnu/packages | |
parent | df09e1d6e71f68a8fb44bcc9f13e625f9f9701a5 (diff) | |
parent | ff75441fcf0ba1212b0342f933a8999bafe60f03 (diff) | |
download | guix-0747328e317de4bf936fab50e795d1e1523adfc1.tar.gz |
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages')
74 files changed, 4255 insertions, 2665 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 0c0ec3d4bc..dd98e087a8 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1569,9 +1569,7 @@ specified directories.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/g/graphios/graphios-" - version ".tar.gz")) + (uri (pypi-uri "graphios" version)) (sha256 (base32 "1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i")))) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 658f23e45d..64f826b3f0 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> @@ -1805,11 +1805,7 @@ implementation of the Open Sound Control (@dfn{OSC}) protocol.") (source (origin (method url-fetch) - (uri - (string-append - "https://pypi.python.org/packages/ab/42/" - "b4f04721c5c5bfc196ce156b3c768998ef8c0ae3654ed29ea5020c749a6b" - "/PyAudio-" version ".tar.gz")) + (uri (pypi-uri "PyAudio" version)) (sha256 (base32 "0x7vdsigm7xgvyg3shd3lj113m8zqj2pxmrgdyj66kmnw0qdxgwk")))) @@ -2213,7 +2209,7 @@ background file post-processing.") (define-public supercollider (package (name "supercollider") - (version "3.10.0") + (version "3.10.1") (source (origin (method url-fetch) (uri (string-append @@ -2222,7 +2218,7 @@ background file post-processing.") "/SuperCollider-" version "-Source-linux.tar.bz2")) (sha256 (base32 - "16j9psa32czx1p1y2vvq0qf2ib0ngrfc604vx35n2b4llyika84v")))) + "1yszs9j3sjk8hb8xxz30z3nd4j899ymb9mw9y1v26ikd603d1iig")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on" diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 5d9013552e..d50c7e4fdc 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -638,9 +638,7 @@ to not fully trusted targets. Borg is a fork of Attic.") (version "0.16") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/A/Attic/Attic-" - version ".tar.gz")) + (uri (pypi-uri "Attic" version)) (sha256 (base32 "0b5skd36r4c0915lwpkqg5hxm49gls9pprs1b7hc40910wlcsl36")))) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 28dbdca13b..23eba74175 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -72,6 +72,7 @@ #:use-module (gnu packages graph) #:use-module (gnu packages groff) #:use-module (gnu packages guile) + #:use-module (gnu packages guile-xyz) #:use-module (gnu packages haskell) #:use-module (gnu packages haskell-check) #:use-module (gnu packages haskell-web) @@ -4503,9 +4504,7 @@ files and writing bioinformatics applications.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/W/WarpedLMM/WarpedLMM-" - version ".zip")) + (uri (pypi-uri "WarpedLMM" version ".zip")) (sha256 (base32 "1agfz6zqa8nc6cw47yh0s3y14gkpa9wqazwcj7mwwj3ffnw39p3j")))) @@ -6021,7 +6020,7 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.") (define-public star (package (name "star") - (version "2.6.0c") + (version "2.7.0a") (source (origin (method git-fetch) (uri (git-reference @@ -6030,7 +6029,7 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "04cj6jw8d9q6lk9c78wa4fky6jdlicf1d13plq7182h8vqiz8p59")) + "1yx28gra6gqdx1ps5y8mpdinsn8r0dhsc2m3gcvjfrk71i9yhd6l")) (modules '((guix build utils))) (snippet '(begin @@ -7183,14 +7182,14 @@ checks on R packages that are to be submitted to the Bioconductor repository.") (define-public r-optparse (package (name "r-optparse") - (version "1.6.0") + (version "1.6.1") (source (origin (method url-fetch) (uri (cran-uri "optparse" version)) (sha256 (base32 - "1d7v5gl45x4amsfmzn5zyyffyqlc7a82h01szlnda22viyxids0h")))) + "04vyb6dhcga30mvghsg1p052jmf69xqxkvh3hzqz7dscyppy76w1")))) (build-system r-build-system) (propagated-inputs `(("r-getopt" ,r-getopt))) @@ -7388,13 +7387,13 @@ CAGE.") (define-public r-variantannotation (package (name "r-variantannotation") - (version "1.28.8") + (version "1.28.10") (source (origin (method url-fetch) (uri (bioconductor-uri "VariantAnnotation" version)) (sha256 (base32 - "0gf36lr9xy3zmcc4rxs5bi2ccrrc7b6wqp6p3cvnclgif4i0l66k")))) + "0kxf583cgkdz1shi85r0mpnfxmzi7s5f6srd1czbdl2iibvrm8jn")))) (properties `((upstream-name . "VariantAnnotation"))) (inputs @@ -7829,13 +7828,13 @@ as well as query and modify the browser state, such as the current viewport.") (define-public r-genomicfeatures (package (name "r-genomicfeatures") - (version "1.34.1") + (version "1.34.2") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicFeatures" version)) (sha256 (base32 - "0slq6hv5bmc3bgrl824jzmr6db3fvaj6b7ihwmdn76pgqqbq2fq6")))) + "0qs94b0ywrjyc9m1jykrbch3lb07576m508dikvx18vwn304mban")))) (properties `((upstream-name . "GenomicFeatures"))) (build-system r-build-system) @@ -8486,7 +8485,7 @@ throughput genetic sequencing data sets using regression methods.") (define-public r-qtl (package (name "r-qtl") - (version "1.42-8") + (version "1.44-9") (source (origin (method url-fetch) @@ -8494,7 +8493,7 @@ throughput genetic sequencing data sets using regression methods.") version ".tar.gz")) (sha256 (base32 - "1l528dwvfpdlr05imrrm4rq32axp6hld9nqm6mm43kn5n7z2f5k6")))) + "03lmvydln8b7666b6w46qbryhf83vsd11d4y2v95rfgvqgq66l1i")))) (build-system r-build-system) (home-page "http://rqtl.org/") (synopsis "R package for analyzing QTL experiments in genetics") @@ -9131,8 +9130,7 @@ may optionally be provided to further inform the peak-calling process.") (version "1.0.9") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/P" - "/PePr/PePr-" version ".tar.gz")) + (uri (pypi-uri "PePr" version)) (sha256 (base32 "0qxjfdpl1b1y53nccws2d85f6k74zwmx8y8sd9rszcqhfayx6gdx")))) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index a4b4f64783..0fbf481893 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -516,7 +516,7 @@ board-independent tools."))) (lambda* (#:key outputs make-flags #:allow-other-keys) (let ((config-name (string-append ,board "_defconfig"))) (if (file-exists? (string-append "configs/" config-name)) - (zero? (apply system* "make" `(,@make-flags ,config-name))) + (apply invoke "make" `(,@make-flags ,config-name)) (begin (display "Invalid board name. Valid board names are:" (current-error-port)) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index c5141451f0..3b20e84a91 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> +;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,8 +38,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages autotools) #:use-module (gnu packages gettext) - #:use-module (gnu packages pkg-config) - #:use-module (srfi srfi-1)) + #:use-module (gnu packages pkg-config)) (define-public tcc (package @@ -69,11 +69,15 @@ "/include:{B}/include") (string-append "--libpaths=" (assoc-ref %build-inputs "libc") - "/lib")) + "/lib") + ,@(if (string-prefix? "armhf-linux" + (or (%current-target-system) + (%current-system))) + `("--triplet=arm-linux-gnueabihf") + '())) #:test-target "test")) ;; Fails to build on MIPS: "Unsupported CPU" - (supported-systems (fold delete %supported-systems - '("mips64el-linux" "aarch64-linux"))) + (supported-systems (delete "mips64el-linux" %supported-systems)) (synopsis "Tiny and fast C compiler") (description "TCC, also referred to as \"TinyCC\", is a small and fast C compiler diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 439a668dd7..64af7ea097 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -1133,9 +1133,7 @@ Python tests."))) (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/t/testrepository/testrepository-" - version ".tar.gz")) + (uri (pypi-uri "testrepository" version)) (sha256 (base32 "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m")))) @@ -1307,9 +1305,7 @@ tools for mocking system commands and recording calls to those.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/t/testlib/testlib-" - version ".zip")) + (uri (pypi-uri "testlib" version ".zip")) (sha256 (base32 "1mz26cxn4x8bbgv0rn0mvj2z05y31rkc8009nvdlb3lam5b4mj3y")))) (build-system python-build-system) @@ -1806,9 +1802,7 @@ especially -cover-package.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/d/discover/discover-" - version ".tar.gz")) + (uri (pypi-uri "discover" version)) (sha256 (base32 "0y8d0zwiqar51kxj8lzmkvwc3b8kazb04gk5zcb4nzg5k68zmhq5")))) @@ -2039,13 +2033,13 @@ mocks, stubs and fakes.") (define-public python-flaky (package (name "python-flaky") - (version "3.4.0") + (version "3.5.3") (source (origin (method url-fetch) (uri (pypi-uri "flaky" version)) (sha256 (base32 - "18pkmf79rfkfpy1d2rrx3v55nxj762ilyk9rvd6s6dccxw58imsa")))) + "1nm1kjf857z5aw7v642ffsy1vwf255c6wjvmil71kckjyd0mxg8j")))) (build-system python-build-system) (arguments ;; TODO: Tests require 'coveralls' and 'genty' which are not in Guix yet. diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index bd4a3d3509..6533fb302d 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -32,6 +32,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages guile) + #:use-module (gnu packages guile-xyz) #:use-module (gnu packages gnupg) #:use-module (gnu packages mail) #:use-module (gnu packages package-management) diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm index 1dba4cef87..8112b65278 100644 --- a/gnu/packages/clojure.scm +++ b/gnu/packages/clojure.scm @@ -65,15 +65,16 @@ (package (name "clojure") - (version "1.9.0") - (source - (origin - (method url-fetch) - (uri - (string-append "https://github.com/clojure/clojure/archive/clojure-" - version ".tar.gz")) - (sha256 - (base32 "0xjbzcw45z32vsn9pifp7ndysjzqswp5ig0jkjpivigh2ckkdzha")))) + (version "1.10.0") + (source (let ((name+version (string-append name "-" version))) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/clojure/clojure") + (commit name+version))) + (file-name (string-append name+version "-checkout")) + (sha256 + (base32 "1kcyv2836acs27vi75hvf3r773ahv2nlh9b3j9xa9m9sdanz1h83"))))) (build-system ant-build-system) (arguments `(#:imported-modules ((guix build clojure-utils) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 261746f08a..b6f07dfa9a 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 David Craven <david@craven.ch> -;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> +;;; Copyright © 2016, 2019 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> @@ -434,6 +434,39 @@ than gzip and 15 % smaller output than bzip2.") (license (list license:gpl2+ license:lgpl2.1+)) ; bits of both (home-page "https://tukaani.org/xz/"))) +(define-public lhasa + (package + (name "lhasa") + (version "0.3.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/fragglet/lhasa/releases/download/v" + version "/lhasa-" version ".tar.gz")) + (sha256 + (base32 + "092zi9av18ma20c6h9448k0bapvx2plnp292741dvfd9hmgqxc1z")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'set-up-test-environment + (lambda* (#:key inputs #:allow-other-keys) + (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo")) + #t))))) + (native-inputs + `(("tzdata" ,tzdata))) + (home-page "https://fragglet.github.com/lhasa/") + (synopsis "LHA archive decompressor") + (description "Lhasa is a replacement for the Unix LHA tool, for +decompressing .lzh (LHA / LHarc) and .lzs (LArc) archives. The backend for the +tool is a library, so that it can be reused for other purposes. Lhasa aims to +be compatible with as many types of lzh/lzs archives as possible. It also aims +to generate the same output as the (non-free) Unix LHA tool, so that it will +act as a free drop-in replacement.") + (license license:isc))) + (define-public lzo (package (name "lzo") diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index f5aa447a79..4e8f12248f 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -203,15 +203,16 @@ as ordering relation.") (package (name "json-modern-cxx") (version "3.1.2") + (home-page "https://github.com/nlohmann/json") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/nlohmann/json/archive/v" version ".tar.gz")) + (method git-fetch) + (uri (git-reference (url home-page) + (commit (string-append "v" version)))) (sha256 (base32 - "0m5fhdpx2qll933db2nsi30nns3cifavzvijzz6mxhdkpmngmzz8")) - (file-name (string-append name "-" version ".tar.gz")) + "1mpr781fb2dfbyscrr7nil75lkxsazg4wkm749168lcf2ksrrbfi")) + (file-name (git-file-name name version)) (modules '((guix build utils))) (snippet '(begin @@ -227,13 +228,13 @@ as ordering relation.") (substitute* files (("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp) (string-append - "#include <fifo_map/" fifo-map-hpp ">"))))))))) + "#include <fifo_map/" fifo-map-hpp ">"))))) + #t)))) (native-inputs `(("amalgamate" ,amalgamate))) (inputs `(("catch2" ,catch-framework2) ("fifo-map" ,fifo-map))) - (home-page "https://github.com/nlohmann/json") (build-system cmake-build-system) (synopsis "JSON parser and printer library for C++") (description "JSON for Modern C++ is a C++ JSON library that provides diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 1bd20b12d3..f6f4a08aab 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -83,6 +83,52 @@ the system clipboards.") (license license:gpl3))) +(define-public r-sys + (package + (name "r-sys") + (version "2.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "sys" version)) + (sha256 + (base32 + "10ml2492bdllh6cz2zl192ip0fdgjkkgayggd3ghswsj5gjv5hrh")))) + (build-system r-build-system) + (home-page "https://github.com/jeroen/sys") + (synopsis "Powerful and reliable tools for running system commands in R") + (description + "This package provides drop-in replacements for the base @code{system2()} +function with fine control and consistent behavior across platforms. It +supports clean interruption, timeout, background tasks, and streaming STDIN / +STDOUT / STDERR over binary or text connections. The package also provides +functions for evaluating expressions inside a temporary fork. Such +evaluations have no side effects on the main R process, and support reliable +interrupts and timeouts. This provides the basis for a sandboxing +mechanism.") + (license license:expat))) + +(define-public r-askpass + (package + (name "r-askpass") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "askpass" version)) + (sha256 + (base32 + "07q0ik8jzk44vpwh48rr3fnpd7dzsdhjjsl4l850rffv3dyq4h6v")))) + (build-system r-build-system) + (propagated-inputs `(("r-sys" ,r-sys))) + (home-page "https://github.com/jeroen/askpass") + (synopsis "Safe password entry for R") + (description + "This package provides cross-platform utilities for prompting the user +for credentials or a passphrase, for example to authenticate with a server or +read a protected key.") + (license license:expat))) + (define-public r-vegan (package (name "r-vegan") @@ -927,14 +973,14 @@ applications. That is, compute distances and related measures for angular (define-public r-ggmap (package (name "r-ggmap") - (version "2.6.1") + (version "2.6.2") (source (origin (method url-fetch) (uri (cran-uri "ggmap" version)) (sha256 (base32 - "0mssb09w818jv58h7mly9y181pzv22sgcd4a079cfpq04bs0wigw")))) + "144x6ycb2c3fvy5c68ww53m6gzi6kfvas7cpbn071z08n4xgb72f")))) (build-system r-build-system) (propagated-inputs `(("r-digest" ,r-digest) @@ -1062,13 +1108,13 @@ XML. To learn more about the Abbyy OCR API, see @url{http://ocrsdk.com/}.") (define-public r-colorspace (package (name "r-colorspace") - (version "1.3-2") + (version "1.4-0") (source (origin (method url-fetch) (uri (cran-uri "colorspace" version)) (sha256 - (base32 "0d1ya7hx4y58n5ivwmdmq2zgh0g2sbv7ykh13n85c1355csd57yx")))) + (base32 "0mpmvz2sycjp4c9y3v3qin7mdjy812hwi7cyjnblcw6xb1ckq06f")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/colorspace") (synopsis "Color space manipulation") @@ -2038,14 +2084,14 @@ functions from LINPACK.") (define-public r-fitdistrplus (package (name "r-fitdistrplus") - (version "1.0-11") + (version "1.0-14") (source (origin (method url-fetch) (uri (cran-uri "fitdistrplus" version)) (sha256 (base32 - "12hckg3y5j3zh9q1gwxkc27q813p2r42iqp7wdfiq6nj55jrh6w6")))) + "10q08wsv8v3w7797jdvvv60bgrf1bi6438wf0jcqv81ays82a245")))) (build-system r-build-system) (propagated-inputs `(("r-mass" ,r-mass) @@ -2809,14 +2855,14 @@ Laplace approximation and adaptive Gauss-Hermite quadrature.") (define-public r-jomo (package (name "r-jomo") - (version "2.6-5") + (version "2.6-6") (source (origin (method url-fetch) (uri (cran-uri "jomo" version)) (sha256 (base32 - "109q5m69clrvvialxdxznd0wdb54ajhx84nj8slx8bf909a427mj")))) + "1048qb12cx7fs156jcqzwkfmsjadkgnrqd0krznyxpn873zr9lq2")))) (build-system r-build-system) (propagated-inputs `(("r-lme4" ,r-lme4) @@ -3042,16 +3088,18 @@ structure.") (define-public r-vioplot (package (name "r-vioplot") - (version "0.2") + (version "0.3.0") (source (origin (method url-fetch) (uri (cran-uri "vioplot" version)) (sha256 (base32 - "16wkb26kv6qr34hv5zgqmgq6zzgysg9i78pvy2c097lr60v087v0")))) + "1ddmmqq7qrnvr5q518afnysrl7ccr8am9njknv3dpwaqzcdr9akn")))) (build-system r-build-system) - (propagated-inputs `(("r-sm" ,r-sm))) + (propagated-inputs + `(("r-sm" ,r-sm) + ("r-zoo" ,r-zoo))) (home-page "http://wsopuppenkiste.wiso.uni-goettingen.de/~dadler") (synopsis "Violin plot") (description @@ -7222,13 +7270,13 @@ series.") (define-public r-acceptancesampling (package (name "r-acceptancesampling") - (version "1.0-5") + (version "1.0-6") (source (origin (method url-fetch) (uri (cran-uri "AcceptanceSampling" version)) (sha256 - (base32 "18krmmyn8pn11aqd81kbvka68lnd36mnpdh7p3pz9r4m4vjj007x")))) + (base32 "1z3rmln63ki2kik9kinbwr9qhr32ggbmh4mm3xqy6di119n47ca9")))) (properties `((upstream-name . "AcceptanceSampling"))) (build-system r-build-system) @@ -7320,14 +7368,14 @@ cross-sectional, time series, clustered, panel, and longitudinal data.") (define-public r-th-data (package (name "r-th-data") - (version "1.0-9") + (version "1.0-10") (source (origin (method url-fetch) (uri (cran-uri "TH.data" version)) (sha256 (base32 - "03xfvww0krw0fn76qmmvrj7dx4shin57qafwhkrggfg25hbqlcfq")))) + "0mgz7aj2d9abbmdr65zgmg1ddp3fdbs3mfj83r5xadh5ldkir2k1")))) (properties `((upstream-name . "TH.data"))) (build-system r-build-system) (propagated-inputs @@ -7371,14 +7419,14 @@ Hothorn, Westfall, 2010, CRC Press).") (define-public r-emmeans (package (name "r-emmeans") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) (uri (cran-uri "emmeans" version)) (sha256 (base32 - "1sf7gmdb7aqhdpx489vg693ivc5677n4yjx27ixv8v7pjh8mlwwx")))) + "0mg6y007hfmr601cq4jgxl5ncwbx79kkh7xs2i504m0rinxj8bf5")))) (build-system r-build-system) (propagated-inputs `(("r-estimability" ,r-estimability) @@ -8490,18 +8538,17 @@ Scientific.") (define-public r-activity (package (name "r-activity") - (version "1.1") + (version "1.2") (source (origin (method url-fetch) (uri (cran-uri "activity" version)) (sha256 (base32 - "1lqajgxfps2h6amz1791vp3f52rs9ghmanq1nqfxqd2jmk3idkrx")))) + "11w2bz6p9xbzdh6773dmbbh6rws0h5dj18p8m0ivzizgq932vdzs")))) (build-system r-build-system) (propagated-inputs `(("r-circular" ,r-circular) - ("r-overlap" ,r-overlap) ("r-pbapply" ,r-pbapply))) (home-page "https://cran.r-project.org/web/packages/activity/") (synopsis "Animal activity statistics") @@ -8697,14 +8744,14 @@ in-memory raw vectors.") (define-public r-waveslim (package (name "r-waveslim") - (version "1.7.5") + (version "1.7.5.1") (source (origin (method url-fetch) (uri (cran-uri "waveslim" version)) (sha256 (base32 - "0lqslkihgrd7rbihqhhk57m9vkbnfsznkvk8430cvbcsn7vridii")))) + "0mky0nb4xxp8rybp87mxw2f1q6k400wpxv01zr4injv7ja6028xk")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) @@ -9540,14 +9587,14 @@ limitations\" using the GNU Multiple Precision library.") (define-public r-rmpfr (package (name "r-rmpfr") - (version "0.7-1") + (version "0.7-2") (source (origin (method url-fetch) (uri (cran-uri "Rmpfr" version)) (sha256 (base32 - "0172px5ryi7i0gyyin9z2bzif8vnj292gk0s1w5p3c12g9hj2c4v")))) + "1zq3as34r27v2yc729731997wdhxb6cs5ilmak4nmsljabnac7gc")))) (properties `((upstream-name . "Rmpfr"))) (build-system r-build-system) (inputs diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index bef8235a97..ffef4ff8e4 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox> ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is> -;;; Copyright © 2016, 2017 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> @@ -901,3 +901,29 @@ Features: @end itemize\n") (home-page "https://github.com/bitcoin-core/secp256k1") (license license:unlicense)))) + +(define-public stoken + (package + (name "stoken") + (version "0.92") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/stoken/" + "stoken-" version ".tar.gz")) + (sha256 + (base32 + "0npgr6y85gzwksy8jkwa4yzvqwjprwnplx3yiw3ayk4f0ldlhaxa")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("nettle" ,nettle) + ("libxml2" ,libxml2))) + (home-page "http://stoken.sf.net") + (synopsis "Software Token for cryptographic authentication") + (description + "@code{stoken} is a token code generator compatible with RSA SecurID +128-bit (AES) tokens. This package contains a standalone command-line program +that allows for importing token seeds, generating token codes, and various +utility/testing functions.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 079d303fca..96e84de685 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -2093,8 +2093,7 @@ Database API 2.0T.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/S/" - "SQLAlchemy/SQLAlchemy-" version ".tar.gz")) + (uri (pypi-uri "SQLAlchemy" version)) (sha256 (base32 "094mmbs4igrxplfyqd59j90jb83ixpbbzqc0w49yw81m82nnjrgg")))) diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm index c3e96a0b12..27fe882043 100644 --- a/gnu/packages/datastructures.scm +++ b/gnu/packages/datastructures.scm @@ -25,6 +25,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu)) @@ -149,13 +150,14 @@ queues, stacks, and doubly-linked lists.") (version "2.0.2") (source (origin - (method url-fetch) - (file-name (string-append name "-" version ".tar.gz")) - (uri (string-append "https://github.com/troydhanson/uthash/archive/v" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/troydhanson/uthash.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1la82gdlyl7m8ahdjirigwfh7zjgkc24cvydrqcri0vsvm8iv8rl")))) + "0kslz8k6lssh7fl7ayzwlj62p0asxs3dq03357ls5ywjad238gqg")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) @@ -169,8 +171,7 @@ queues, stacks, and doubly-linked lists.") (replace 'check (lambda* (#:key make-flags #:allow-other-keys) (with-directory-excursion "tests" - (zero? (apply system* "make" - make-flags))))) + (apply invoke "make" make-flags)))) (replace 'install ;; There is no top-level Makefile to do this for us. (lambda* (#:key outputs #:allow-other-keys) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 4e63c81b64..0f4a654e62 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -194,10 +194,8 @@ tools that process C/C++ code.") (patch-dir (string-append afl-dir "/qemu_mode/patches"))) - (unless (zero? - (system* "tar" "xf" - (assoc-ref inputs "afl-src"))) - (error "tar failed to unpack afl-src")) + (invoke "tar" "xf" + (assoc-ref inputs "afl-src")) (install-file (string-append patch-dir "/afl-qemu-cpu-inl.h") ".") @@ -210,11 +208,12 @@ tools that process C/C++ code.") (substitute* (string-append patch-dir "/cpu-exec.diff") (("\\.\\./patches/") "")) - (every (lambda (patch-file) - (zero? (system* "patch" "--force" "-p1" - "--input" patch-file))) - (find-files patch-dir - "\\.diff$")))))))))))))) + (for-each (lambda (patch-file) + (invoke "patch" "--force" "-p1" + "--input" patch-file)) + (find-files patch-dir + "\\.diff$")) + #t)))))))))))) (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "CC=gcc") @@ -291,7 +290,7 @@ down the road.") (modify-phases %standard-phases (add-after 'unpack 'unpack-make (lambda* (#:key inputs #:allow-other-keys) - (zero? (system* "tar" "xf" (assoc-ref inputs "make-source"))))) + (invoke "tar" "xf" (assoc-ref inputs "make-source")))) (add-after 'unpack-make 'set-default-shell (lambda _ ;; Taken mostly directly from (@ (gnu packages base) gnu-make) @@ -301,7 +300,7 @@ down the road.") (which "sh")))))) (add-before 'configure 'repack-make (lambda _ - (zero? (system* "tar" "cJf" "./make.tar.xz" ,make-dir)))))))) + (invoke "tar" "cJf" "./make.tar.xz" ,make-dir))))))) (home-page "https://github.com/losalamos/stress-make") (synopsis "Expose race conditions in Makefiles") (description diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm index 9e06ac7124..8c39453650 100644 --- a/gnu/packages/dictionaries.scm +++ b/gnu/packages/dictionaries.scm @@ -176,8 +176,7 @@ work, such as sentence length and other readability measures.") (delete 'configure) (delete 'build) (delete 'check) - (replace - 'install + (replace 'install (lambda _ (let ((bindir (string-append (assoc-ref %outputs "out") "/bin")) @@ -209,8 +208,7 @@ work, such as sentence length and other readability measures.") (string-append "DEFLIBDIR=\"" libdir "\""))) (install-file "ding.desktop" sharedir) (install-file "ding.png" sharedir) - (zero? - (system* "./install.sh")))))))) + (invoke "./install.sh"))))))) (synopsis "Dictionary lookup program with a German-English dictionary") (description "Ding is a dictionary lookup program for the X window system. It comes with a German-English dictionary with approximately 270,000 entries.") diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 848b1c63cb..a2fa1db036 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -74,7 +74,7 @@ (string-split (getenv "PYTHONPATH") #\:)) "', "))) - (zero? (system* "python" "tests/runtests.py"))))))) + (invoke "python" "tests/runtests.py")))))) ;; TODO: Install extras/django_bash_completion. (native-inputs `(("tzdata" ,tzdata-for-tests) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index bd084bd2d8..29b4487d05 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> -;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2015, 2016, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com> @@ -3803,7 +3803,7 @@ automatically.") (define-public emacs-ivy (package (name "emacs-ivy") - (version "0.10.0") + (version "0.11.0") (source (origin (method git-fetch) @@ -3813,7 +3813,7 @@ automatically.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr")))) + "009n8zjycs62cv4i1k9adbb284wz2w3r13xki2740sj34k683v13")))) (build-system emacs-build-system) (arguments `(#:phases diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 9a0d1e9b17..19050af1ed 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -406,15 +406,16 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.") (define-public mgba (package (name "mgba") - (version "0.6.3") + (version "0.7.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mgba-emu/mgba/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mgba-emu/mgba.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "16hgs6r5iym3lp2cjcnv9955333976yc5sgy2kkxlsi005n91j1m")) + "0s4dl4pi8rxqahvzxnh37xdgsfax36cn5wlh1srdcmabwsrfpb3w")) (modules '((guix build utils))) (snippet ;; Make sure we don't use the bundled software. @@ -430,9 +431,7 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.") `(#:tests? #f ;no "test" target #:configure-flags (list "-DUSE_LZMA=OFF" ;do not use bundled LZMA - "-DUSE_LIBZIP=OFF" ;use "zlib" instead - (string-append "-DCMAKE_INSTALL_LIBDIR=" - (assoc-ref %outputs "out") "/lib")))) + "-DUSE_LIBZIP=OFF"))) ;use "zlib" instead (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("ffmpeg" ,ffmpeg) ("imagemagick" ,imagemagick) @@ -1184,7 +1183,7 @@ play them on systems for which they were never designed!") (define-public mame (package (name "mame") - (version "0.205") + (version "0.206") (source (origin (method git-fetch) @@ -1194,7 +1193,7 @@ play them on systems for which they were never designed!") (file-name (git-file-name name version)) (sha256 (base32 - "1q5z18rlmas598fxga8jr2d6xdngdzjab49xfy4hffdmlq624lw7")) + "0i01h5ars1yd96ndmzhk47931hf261m8frqz1ha7s2gy52f0q86y")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 9501e772fd..ea5dd885d1 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -420,7 +420,7 @@ featuring various improvements and bug fixes."))) ;; FIXME: with texlive-tiny citation references are rendered as question ;; marks. During the build warnings like these are printed: ;; LaTeX Warning: Citation `nabors91' on page 2 undefined on input line 3. - `(("texlive" ,texlive-tiny) + `(("texlive" ,(texlive-union (list texlive-fonts-amsfonts))) ("ghostscript" ,ghostscript))) (arguments `(#:make-flags '("CC=gcc" "RM=rm" "SHELL=sh" "all") @@ -432,8 +432,7 @@ featuring various improvements and bug fixes."))) (modify-phases %standard-phases (add-after 'build 'make-doc (lambda _ - (zero? (system* "make" "CC=gcc" "RM=rm" "SHELL=sh" - "manual")))) + (invoke "make" "CC=gcc" "RM=rm" "SHELL=sh" "manual"))) (add-before 'make-doc 'fix-doc (lambda _ (substitute* "doc/Makefile" (("/bin/rm") (which "rm"))) @@ -474,13 +473,13 @@ featuring various improvements and bug fixes."))) (setenv "HOME" "/tmp") ; FIXME: for texlive font cache (with-directory-excursion "doc" (and - (every (lambda (file) - (zero? (system* "dvips" file "-o"))) - (find-files "." "\\.dvi")) - (every (lambda (file) - (zero? (system* "ps2pdf" file))) - '("mtt.ps" "ug.ps" "tcad.ps")) - (zero? (system* "make" "clean")))))) + (for-each (lambda (file) + (invoke "dvips" file "-o")) + (find-files "." "\\.dvi")) + (for-each (lambda (file) + (invoke "ps2pdf" file)) + '("mtt.ps" "ug.ps" "tcad.ps")) + (invoke "make" "clean"))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 3fb284618b..07f36bba4e 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -70,6 +70,7 @@ #:use-module (gnu packages admin) #:use-module (gnu packages audio) #:use-module (gnu packages avahi) + #:use-module (gnu packages assembly) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) @@ -155,7 +156,9 @@ #:use-module (guix build-system scons) #:use-module (guix build-system python) #:use-module (guix build-system cmake) - #:use-module (guix build-system trivial)) + #:use-module (guix build-system trivial) + #:use-module ((srfi srfi-1) #:hide (zip)) + #:use-module (srfi srfi-26)) (define-public armagetronad (package @@ -337,14 +340,14 @@ and against the others like yourself, that want what you have.") (delete 'build) ; nothing to be built (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (zero? (system* "sh" "install.sh" - (assoc-ref outputs "out"))))) + (invoke "sh" "install.sh" + (assoc-ref outputs "out")))) (delete 'check) (add-after 'install 'check (lambda* (#:key outputs #:allow-other-keys) - (zero? (system* (string-append (assoc-ref outputs "out") - "/bin/cowsay") - "We're done!"))))))) + (invoke (string-append (assoc-ref outputs "out") + "/bin/cowsay") + "We're done!")))))) (inputs `(("perl" ,perl))) (home-page (string-append "https://web.archive.org/web/20071026043648/" @@ -1364,9 +1367,8 @@ a C library, so they can easily be integrated into other programs.") ;; variables passed as arguments. (let ((out (assoc-ref outputs "out"))) (setenv "CONFIG_SHELL" (which "bash")) - (zero? - (system* "./configure" - (string-append "--prefix=" out))))))))) + (invoke "./configure" + (string-append "--prefix=" out)))))))) (inputs `(("ncurses" ,ncurses))) (home-page "http://www.asty.org/cmatrix") (synopsis "Simulate the display from \"The Matrix\"") @@ -1535,61 +1537,6 @@ fully interactive graphical interface and it can load and save games in the Portable Game Notation.") (license license:gpl3+))) - -(define-public xboing - (package - (name "xboing") - (version "2.4") - (source - (origin - (method url-fetch) - (uri (string-append "http://www.techrescue.org/xboing/xboing" - version ".tar.gz")) - (sha256 - (base32 "16m2si8wmshxpifk861vhpqviqxgcg8bxj6wfw8hpnm4r2w9q0b7")) - (patches (search-patches "xboing-CVE-2004-0149.patch")))) - (arguments - `(#:tests? #f - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - - (substitute* "Imakefile" - (("XPMINCLUDE[\t ]*= -I/usr/X11/include/X11") - (string-append "XPMINCLUDE = -I" - (assoc-ref %build-inputs "libxpm") - "/include/X11"))) - - (substitute* "Imakefile" - (("XBOING_DIR = \\.") "XBOING_DIR=$(PROJECTROOT)")) - - ;; FIXME: HIGH_SCORE_FILE should be set to somewhere writeable - - (zero? (system* "xmkmf" "-a" - (string-append "-DProjectRoot=" - (assoc-ref outputs "out")))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (and - (zero? (system* "make" "install.man")) - (zero? (system* "make" "install")))))))) - (inputs `(("libx11" ,libx11) - ("libxext" ,libxext) - ("libxpm" ,libxpm))) - (native-inputs `(("imake" ,imake) - ("inetutils" ,inetutils) - ("makedepend" ,makedepend))) - (build-system gnu-build-system) - (home-page "http://www.techrescue.org/xboing") - (synopsis "Ball and paddle game") - (description "XBoing is a blockout type game where you have a paddle which -you control to bounce a ball around the game zone destroying blocks with a -proton ball. Each block carries a different point value. The more blocks you -destroy, the better your score. The person with the highest score wins.") - (license (license:x11-style "file://COPYING" - "Very similar to the X11 licence.")))) - (define-public gtypist (package (name "gtypist") @@ -2358,15 +2305,14 @@ world}, @uref{http://evolonline.org, Evol Online} and #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (lzo (assoc-ref inputs "lzo"))) - (zero? - (apply system* "./configure" - (string-append "--prefix=" out) - ;; Provide the "lzo" path. - (string-append "--with-liblzo2=" - lzo "/lib/liblzo2.a") - ;; Put the binary in 'bin' instead of 'games'. - "--binary-dir=bin" - configure-flags)))))))) + (apply invoke "./configure" + (string-append "--prefix=" out) + ;; Provide the "lzo" path. + (string-append "--with-liblzo2=" + lzo "/lib/liblzo2.a") + ;; Put the binary in 'bin' instead of 'games'. + "--binary-dir=bin" + configure-flags))))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("allegro" ,allegro) @@ -4125,7 +4071,7 @@ over 100 user-created campaigns.") (add-before 'build 'build-kodilib (lambda* (#:key make-flags #:allow-other-keys) (with-directory-excursion "kodilib/linux" - (zero? (apply system* "make" make-flags))))) + (apply invoke "make" make-flags)))) (add-after 'build-kodilib 'chdir (lambda _ (chdir "linux") #t)) (replace 'install @@ -4417,10 +4363,10 @@ shapes are arranged in a series of increasingly complex patterns, forming (let ((data (string-append (assoc-ref outputs "out") "/share/games/fillets-ng"))) (mkdir-p data) - (zero? (system* "tar" "-xvf" - (assoc-ref inputs "fillets-ng-data") - "--strip-components=1" - "-C" data)))))))) + (invoke "tar" "-xvf" + (assoc-ref inputs "fillets-ng-data") + "--strip-components=1" + "-C" data))))))) (inputs `(("sdl-union" ,(sdl-union (list sdl sdl-mixer @@ -4502,10 +4448,10 @@ fish. The whole game is accompanied by quiet, comforting music.") (setenv "HOME" (getcwd)) ;; Fake a terminal for the test cases. (setenv "TERM" "xterm-256color") - (zero? (apply system* "make" "debug" "test" - (format #f "-j~d" (parallel-job-count)) - ;; Force command line build for test cases. - (append make-flags '("GAME=crawl" "TILES="))))))))) + (apply invoke "make" "debug" "test" + (format #f "-j~d" (parallel-job-count)) + ;; Force command line build for test cases. + (append make-flags '("GAME=crawl" "TILES=")))))))) (synopsis "Roguelike dungeon crawler game") (description "Dungeon Crawl Stone Soup is a roguelike adventure through dungeons filled with dangerous monsters in a quest to find the mystifyingly @@ -6021,3 +5967,136 @@ civilized than your own.") license:cc-by-sa3.0 license:cc-by-sa4.0 license:public-domain)))) + +(define-public stepmania + (package + (name "stepmania") + (version "5.1.0-b2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stepmania/stepmania.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0a7y9l7xm510vgnpmj1is7p9m6d6yd0fcaxrjcickz295k5w3rdn")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove song files, which are licensed under a non-commercial + ;; clause, and a course pointing to them. + (for-each delete-file-recursively + '("Songs/StepMania 5/Goin' Under" + "Songs/StepMania 5/MechaTribe Assault" + "Songs/StepMania 5/Springtime")) + (for-each delete-file '("Courses/Default/Jupiter.crs" + "Courses/Default/Jupiter.png")) + ;; Unbundle libpng. + (substitute* "extern/CMakeLists.txt" + (("include\\(CMakeProject-png.cmake\\)") "")) + (delete-file-recursively "extern/libpng") + #t)))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ;FIXME: couldn't find how to run tests + #:build-type "Release" + #:out-of-source? #f ;for the 'install-desktop' phase + #:configure-flags + (list "-DWITH_SYSTEM_FFMPEG=1" + ;; SSE instructions are available on Intel systems only. + ,@(if (any (cute string-prefix? <> (or (%current-target-system) + (%current-system))) + '("x64_64" "i686")) + '() + '("-DWITH_SSE2=NO")) + ;; Configuration cannot find GTK2 without the two following + ;; flags. + (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "gtk+") + "/lib/gtk-2.0/include") + (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" + (assoc-ref %build-inputs "glib") + "/lib/glib-2.0/include")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-install-subdir + ;; Installation would be done in "%out/stepmania-X.Y", but we + ;; prefer the more common layout "%out/share/stepmania". + (lambda _ + (substitute* "src/CMakeLists.txt" + (("\"stepmania-.*?\"") "\"share/stepmania\"")) + #t)) + (add-after 'unpack 'unbundle-libpng + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/CMakeLists.txt" + (("\\$\\{SM_EXTERN_DIR\\}/libpng/include") + (string-append (assoc-ref inputs "libpng") "/include"))) + #t)) + (add-after 'install 'install-executable + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (exe (string-append out "/share/stepmania/stepmania"))) + (mkdir-p bin) + (symlink exe (string-append bin "/stepmania")) + #t))) + (add-after 'install-executable 'install-desktop + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share")) + (applications (string-append share "/applications")) + (icons (string-append share "/icons"))) + (install-file "stepmania.desktop" applications) + (mkdir-p icons) + (copy-recursively "icons" icons) + #t))) + ;; Move documentation in a more usual place, i.e., + ;; "%out/share/doc/stepmania/". + (add-after 'install-desktop 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share"))) + (with-directory-excursion share + (mkdir-p "doc") + (symlink "../stepmania/Docs" "doc/stepmania")) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("yasm" ,yasm))) + (inputs + `(("alsa-lib" ,alsa-lib) + ;; Per upstream, StepMania is only guaranteed to work with a very + ;; specific FFmpeg version, which is included in the repository as + ;; a Git submodule. This particular version requirement usually + ;; changes every few years. + ("ffmpeg" ,ffmpeg-for-stepmania) + ("glib" ,glib) + ("glew" ,glew) + ("gtk+" ,gtk+-2) + ("jsoncpp" ,jsoncpp) + ("libpng" ,libpng) + ("libjpeg" ,libjpeg-8) + ("libmad" ,libmad) + ("libogg" ,libogg) + ("libva" ,libva) + ("libvorbis" ,libvorbis) + ("libxinerama" ,libxinerama) + ("libxrandr" ,libxrandr) + ("mesa" ,mesa) + ("pcre" ,pcre) + ("pulseaudio" ,pulseaudio) + ("sdl" ,sdl2) + ("udev" ,eudev) + ("zlib" ,zlib))) + (synopsis "Advanced rhythm game designed for both home and arcade use") + (description "StepMania is a dance and rhythm game. It features 3D +graphics, keyboard and dance pad support, and an editor for creating your own +steps. + +This package provides the core application, but no song is shipped. You need +to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory.") + (home-page "https://www.stepmania.com") + (license license:expat))) + diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index e3ba7c1bff..ef88510a2a 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> @@ -33,12 +33,17 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix gexp) + #:use-module (guix store) + #:use-module (guix monads) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cargo) + #:use-module (gnu packages admin) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages check) #:use-module (gnu packages databases) #:use-module (gnu packages glib) @@ -559,56 +564,184 @@ security standards.") (sha256 (base32 hash)) (file-name file-name))) +(define* (computed-origin-method gexp-promise hash-algo hash + #:optional (name "source") + #:key (system (%current-system)) + (guile (default-guile))) + "Return a derivation that executes the G-expression that results +from forcing GEXP-PROMISE." + (mlet %store-monad ((guile (package->derivation guile system))) + (gexp->derivation (or name "computed-origin") + (force gexp-promise) + #:system system + #:guile-for-build guile))) + +(define %icecat-version "60.5.0-guix1") + +;; 'icecat-source' is a "computed" origin that generates an IceCat tarball +;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' +;; script from the upstream IceCat project. +(define icecat-source + (let* ((base-version (first (string-split %icecat-version #\-))) + + (major-version (first (string-split base-version #\.))) + (minor-version (second (string-split base-version #\.))) + (sub-version (third (string-split base-version #\.))) + + (upstream-firefox-version (string-append base-version "esr")) + (upstream-firefox-source + (origin + (method url-fetch) + (uri (string-append + "https://ftp.mozilla.org/pub/firefox/releases/" + upstream-firefox-version "/source/" + "firefox-" upstream-firefox-version ".source.tar.xz")) + (sha256 + (base32 + "09a0kk250r03984n1hdwr2rg1vmhi2jkyzzgbbvkf9h9hzp6j7qs")))) + + (upstream-icecat-base-version "60.3.0") ; maybe older than base-version + (upstream-icecat-gnu-version "1") + (upstream-icecat-version (string-append upstream-icecat-base-version + "-gnu" + upstream-icecat-gnu-version)) + (upstream-icecat-source + (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/gnuzilla/" upstream-icecat-base-version + "/icecat-" upstream-icecat-version ".tar.bz2")) + (sha256 + (base32 + "0icnl64nxcyf7dprpdpygxhabsvyhps8c3ixysj9bcdlj9q34ib1")))) + + (gnuzilla-commit (string-append "v" upstream-icecat-base-version)) + (gnuzilla-source + (origin + (method git-fetch) + (uri (git-reference + (url "git://git.savannah.gnu.org/gnuzilla.git") + (commit gnuzilla-commit))) + (file-name (git-file-name "gnuzilla" upstream-icecat-base-version)) + (sha256 + (base32 + "19wal7hkbb4wvk40hs6d7a5paal2bfday08hwssm02srcbv48fj0")))) + + (makeicecat-patch + (local-file (search-patch "icecat-makeicecat.patch")))) + + (origin + (method computed-origin-method) + (file-name (string-append "icecat-" %icecat-version ".tar.xz")) + (sha256 #f) + (uri + (delay + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (let ((firefox-dir + (string-append "firefox-" #$base-version)) + (icecat-dir + (string-append "icecat-" #$%icecat-version)) + (old-icecat-dir + (string-append "icecat-" #$upstream-icecat-base-version))) + + (mkdir "/tmp/bin") + (set-path-environment-variable + "PATH" '("bin") + (list "/tmp" + #+(canonical-package bash) + #+(canonical-package coreutils) + #+(canonical-package findutils) + #+(canonical-package patch) + #+(canonical-package xz) + #+(canonical-package sed) + #+(canonical-package grep) + #+(canonical-package bzip2) + #+(canonical-package gzip) + #+(canonical-package tar) + #+rename)) + + (symlink #+(file-append rename "/bin/rename") + "/tmp/bin/prename") + + ;; We copy the gnuzilla source directory because it is + ;; read-only in 'gnuzilla-source', and the makeicecat script + ;; uses "cp -a" to copy parts of it and assumes that the + ;; copies will be writable. + (copy-recursively #+gnuzilla-source "/tmp/gnuzilla" + #:log (%make-void-port "w")) + + (with-directory-excursion "/tmp/gnuzilla" + (make-file-writable "makeicecat") + (invoke "patch" "--force" "--no-backup-if-mismatch" + "-p1" "--input" #+makeicecat-patch) + (patch-shebang "makeicecat") + (substitute* "makeicecat" + (("^FFMAJOR=.*") + (string-append "FFMAJOR=" #$major-version "\n")) + (("^FFMINOR=.*") + (string-append "FFMINOR=" #$minor-version "\n")) + (("^FFSUB=.*") + (string-append "FFSUB=" #$sub-version "\n")) + (("^GNUVERSION=.*") + (string-append "GNUVERSION=" + #$upstream-icecat-gnu-version "\n")) + (("^DATA=.*") + "DATA=/tmp/gnuzilla/data\n") + (("^sed .* debian/" all) + (string-append "echo warning: skipped: " all)) + (("^debian/rules " all) + (string-append "echo warning: skipped: " all)) + (("^find extensions/gnu/ ") + "find extensions/gnu/ | sort ") + (("/bin/sed") + #+(file-append (canonical-package sed) "/bin/sed")))) + + (format #t "Unpacking upstream firefox tarball...~%") + (force-output) + (invoke "tar" "xf" #+upstream-firefox-source) + (rename-file firefox-dir icecat-dir) + + (with-directory-excursion icecat-dir + (for-each mkdir-p '("l10n" "debian/config")) + (call-with-output-file "debian/control" (const #t)) + (format #t "Running makeicecat script...~%") + (force-output) + (invoke "bash" "/tmp/gnuzilla/makeicecat") + (for-each delete-file-recursively '("l10n" "debian"))) + + (format #t (string-append "Unpacking l10n/* and debian/* from" + " upstream IceCat tarball...~%")) + (force-output) + (unless (string=? icecat-dir old-icecat-dir) + (symlink icecat-dir old-icecat-dir)) + (invoke "tar" "xf" #+upstream-icecat-source + (string-append old-icecat-dir "/l10n") + (string-append old-icecat-dir "/debian")) + + (format #t (string-append "Packing new IceCat tarball...~%")) + (force-output) + (invoke "tar" "cfa" #$output + ;; avoid non-determinism in the archive + "--mtime=@0" + "--owner=root:0" + "--group=root:0" + "--sort=name" + icecat-dir) + + #t)))))))) + (define-public icecat (package (name "icecat") - (version "60.3.0-gnu1") + (version %icecat-version) (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gnuzilla/" - (first (string-split version #\-)) - "/" name "-" version ".tar.bz2")) - (sha256 - (base32 - "0icnl64nxcyf7dprpdpygxhabsvyhps8c3ixysj9bcdlj9q34ib1")) - (patches - (list - (search-patch "icecat-avoid-bundled-libraries.patch") - (search-patch "icecat-use-system-graphite2+harfbuzz.patch") - (search-patch "icecat-use-system-media-libs.patch") - (mozilla-patch "icecat-bug-1464061.patch" "d28761dbff18" "1f58rzwx4s1af66fdwn9lgkcd1ksmq8kn8imvf78p90jqi24h7b4") - (mozilla-patch "icecat-bug-1479853.patch" "4faeb696dd06" "12891xx9c15s6kby6d3zk64v5nqgaq7sw597zv1fkd3a6x69hlva") - (mozilla-patch "icecat-CVE-2018-17466.patch" "12ba39f69876" "1piyq44f0xa0a9z2748aqwpaziaxwp61d86gyhalbyag8lcxfb3p") - (mozilla-patch "icecat-CVE-2018-18498.patch" "a0adabeedf26" "0f5wazha3zxzhy2j8f93hx62l9p02b1p40vi07qah3ar67h4ccj9") - (mozilla-patch "icecat-CVE-2018-12405-pt01.patch" "19604eb26230" "1wqxgph4z14ijhk2j2m4av5p6gx72d02lzz83q6yy0k065kw8psb") - (mozilla-patch "icecat-CVE-2018-18492.patch" "98737ab09270" "0fyl6wv0jxcxpkfpsff46y93k49n8lrw0k7c1p45g8da015dx27a") - (mozilla-patch "icecat-CVE-2018-18493.patch" "1cf7d80355d5" "19jp4x32vyxam54d1r9fm7jwf6krhhf3xazfqmxb9aw4iwdil7dl") - (mozilla-patch "icecat-CVE-2018-12405-pt02.patch" "c264774b8913" "1hxyi131x8jwawrq90cgkph833iv9ixrdrgzl1r978gbzwq10xz2") - (mozilla-patch "icecat-bug-1477773.patch" "ec13fda7c9b0" "0zj7aylgw55g0y7plaafn5gq8jwcsdr1bpdxacs0hq914nm8zy9z") - (mozilla-patch "icecat-CVE-2018-12405-pt03.patch" "5e1a9644aeef" "1qimrpgyrd8zkiri7w57j0aymk20y9b34am5w7rvr6qj1lhrbfla") - (mozilla-patch "icecat-bug-1485655.patch" "9055726e2d89" "1pppxr94zqh6zmi2mn1ih21qap09vk5ivbhnwxqr8iszvygjg44g") - (mozilla-patch "icecat-bug-1410214.patch" "9e641345e2ef" "0542xss2jdb8drh4g50cfy32l300x69dyywgx3dqs03vgr3qplxy") - (mozilla-patch "icecat-CVE-2018-12405-pt04.patch" "6398541ec302" "1c2yi7mkg3d5afxsgj9fp3zq8yhkmphrll5d60d5xsdv88kqqiyf") - (mozilla-patch "icecat-bug-1496736.patch" "3bed863ee656" "038k7jk3yp16410crwfdvhyb2vis49c6bplrfr83v51885cqldar") - (mozilla-patch "icecat-bug-1498765.patch" "a08c8493ba19" "0bwg4vg03j962lb9q8ihpiy4rmygykf1q9ij8x7h34q7hg43yjya") - (mozilla-patch "icecat-CVE-2018-12405-pt05.patch" "ee204e26690e" "1scs45xhlr1mwv6x2q6n22363f42by8cjmifqwzlikggs21f5mcq") - (mozilla-patch "icecat-bug-1507035.patch" "cec8b58ab3fe" "1f131ibpkrhsa44l822hnm5qgvapbs3i9pj25iimdwvr933winz8") - (mozilla-patch "icecat-bug-1501680.patch" "282c6bb81562" "1zgw7l5zmni8468y3f6cip1nlw63cfdd9vv9b00cbrgy96d1q2cp") - (mozilla-patch "icecat-bug-1500310.patch" "b3a439a26186" "0mrjxcmrlv04fyl36dwxk97dw08g2hlikvw2hfa1l0y8zsc4bgw8") - (mozilla-patch "icecat-bug-1500366.patch" "abd59256c4e3" "1jgwh2v4kwb6kf2h7mwf128w1k1jj119bfhlgqpmn9ami35wpzf3") - (mozilla-patch "icecat-bug-1493080.patch" "a7cabf306d05" "1n7wv67rcaz8wj31jc77ssjdj3kb61gdg7pigj828c5z2cgns1k5") - (mozilla-patch "icecat-CVE-2018-12405-pt06.patch" "8bbf80948b50" "1nvc69zgz9nvbw1pwxkil1fx4cxxpr6bsjrpp6l2kv7jhgax1bqk") - (mozilla-patch "icecat-bug-1507564.patch" "60619cc47b10" "09fanqr08kqgraw4xp7y2az4jc7ia8nn200rqjfj20vmkyjz97j3") - (mozilla-patch "icecat-bug-1507730.patch" "dd0f01818b9c" "14ziq1bm72n58xrvsgzpjj5z6ifpvi70r5jfhbkbj69mf4y4cx2z") - (mozilla-patch "icecat-CVE-2018-12405-pt07.patch" "a73a46ddc848" "1bvvyav3xyn6rgn6haicinxn0dasl9dyc1i37fyb7wr5wcpahybs") - (mozilla-patch "icecat-CVE-2018-18494.patch" "a72ec8e21577" "095zghmwdcbaid5426p9vpl757d8sfbsvgn201bjm7nhm03m4z7i") - (mozilla-patch "icecat-CVE-2018-12405-pt08.patch" "b6d0fc61fd0b" "0059avawxi4s4747plybjsjq8j2h4z7amw05p28xyg95a2njwnaa") - (mozilla-patch "icecat-bug-1499028.patch" "a62ede2dd3bc" "0ikmnibni8bdvpr9p42wskyyic08vzqdz5qr028bqzyg5119gily") - (mozilla-patch "icecat-bug-1426574.patch" "0db86656655b" "0kmccb4ccdzbzncwklx7w1bg7r61zwl2wnfp67vl27hm9xykbck7") - (mozilla-patch "icecat-CVE-2018-12405-pt09.patch" "20e31905de62" "0b5a441645wy3q4asaygvdq0inrxmxrh33cpgdp6ngflq9p2i6h0") - (mozilla-patch "icecat-CVE-2018-12405-pt10.patch" "c2832f98fe51" "0b4jfjfdyrihwjdfavd54hn9kdg2f017lmfr7mj2llp71flxwwj7") - (mozilla-patch "icecat-bug-1511495.patch" "d428d2b8f585" "1f9xs0bjhbphvkv60cnvz34sr2rv38jzvi47wh3nablg41yjpdrk"))) + (inherit icecat-source) + (patches (search-patches "icecat-avoid-bundled-libraries.patch" + "icecat-use-system-graphite2+harfbuzz.patch" + "icecat-use-system-media-libs.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a571477ef2..e6269f526f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -406,7 +406,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.9) (name "go") - (version "1.11.4") + (version "1.11.5") (source (origin (method url-fetch) @@ -414,11 +414,23 @@ in the style of communicating sequential processes (@dfn{CSP}).") name version ".src.tar.gz")) (sha256 (base32 - "05fvp8dq0yffsrvdyii4wgl756dn0xkgm5a80al7j7kb19r45zac")))) + "0gllmbjvp12iszwils8id78mvjxwviwf98lh2gdkb236n4mz07mw")))) (arguments (substitute-keyword-arguments (package-arguments go-1.9) ((#:phases phases) `(modify-phases ,phases + ;; XXX Work around the Go 1.11.5 tarbomb. + ;; <https://github.com/golang/go/issues/29906> + (add-after 'unpack 'tarbomb-workaround + (lambda _ + (chdir "..") + (delete-file-recursively "gocache") + (delete-file-recursively "tmp") + #t)) + (replace 'chdir + (lambda _ + (chdir "go/src") + #t)) (replace 'prebuild (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib")) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 5561e0d0df..b8377ff514 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -74,6 +74,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages guile) + #:use-module (gnu packages guile-xyz) #:use-module (gnu packages cups) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm new file mode 100644 index 0000000000..5c6a6c7e0b --- /dev/null +++ b/gnu/packages/guile-xyz.scm @@ -0,0 +1,1841 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org> +;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> +;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com> +;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com> +;;; Copyright © 2016, 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org> +;;; Copyright © 2016 Amirouche <amirouche@hypermove.net> +;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> +;;; Copyright © 2017 David Thompson <davet@gnu.org> +;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org> +;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> +;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2019 swedebugia <swedebugia@riseup.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages guile-xyz) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages aspell) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages compression) + #:use-module (gnu packages disk) + #:use-module (gnu packages ed) + #:use-module (gnu packages gawk) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) + #:use-module (gnu packages gperf) + #:use-module (gnu packages guile) + #:use-module (gnu packages hurd) + #:use-module (gnu packages image) + #:use-module (gnu packages libffi) + #:use-module (gnu packages libunistring) + #:use-module (gnu packages linux) + #:use-module (gnu packages man) + #:use-module (gnu packages maths) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages networking) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages readline) + #:use-module (gnu packages sdl) + #:use-module (gnu packages slang) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xorg) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system guile) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module ((srfi srfi-1) #:select (alist-delete))) + +(define-public artanis + (let ((release "0.3.1") + (revision 0)) + (package + (name "artanis") + (version (if (zero? revision) + release + (string-append release "-" + (number->string revision)))) + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/artanis/artanis-" + release ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0hqr5m3mb558bdhkc2sadmd9cbrhp3y525wx7cwirgy6i0zmay68")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Unbundle guile-redis and guile-json + (delete-file-recursively "artanis/third-party/json.scm") + (delete-file-recursively "artanis/third-party/json") + (delete-file-recursively "artanis/third-party/redis.scm") + (delete-file-recursively "artanis/third-party/redis") + (substitute* '("artanis/artanis.scm" + "artanis/lpc.scm" + "artanis/oht.scm") + (("(#:use-module \\()artanis third-party (json\\))" _ + use-module json) + (string-append use-module json))) + (substitute* '("artanis/lpc.scm" + "artanis/session.scm") + (("(#:use-module \\()artanis third-party (redis\\))" _ + use-module redis) + (string-append use-module redis))) + (substitute* "artanis/oht.scm" + (("([[:punct:][:space:]]+)(->json-string)([[:punct:][:space:]]+)" + _ pre json-string post) + (string-append pre + "scm" json-string + post))) + (substitute* "artanis/artanis.scm" + (("[[:punct:][:space:]]+->json-string[[:punct:][:space:]]+") + "")) + #t)))) + (build-system gnu-build-system) + ;; FIXME the bundled csv contains one more exported procedure + ;; (sxml->csv-string) than guile-csv. The author is maintainer of both + ;; projects. + ;; TODO: Add guile-dbi and guile-dbd optional dependencies. + (inputs `(("guile" ,guile-2.2) + ("guile-json" ,guile-json) + ("guile-redis" ,guile-redis))) + (native-inputs `(("bash" ,bash) ;for the `source' builtin + ("pkgconfig" ,pkg-config) + ("util-linux" ,util-linux))) ;for the `script' command + (arguments + '(#:make-flags + ;; TODO: The documentation must be built with the `docs' target. + (let* ((out (assoc-ref %outputs "out")) + (scm (string-append out "/share/guile/site/2.2")) + (go (string-append out "/lib/guile/2.2/site-ccache"))) + ;; Don't use (%site-dir) for site paths. + (list (string-append "MOD_PATH=" scm) + (string-append "MOD_COMPILED_PATH=" go))) + #:test-target "test" + #:phases + (modify-phases %standard-phases + (add-before 'install 'substitute-root-dir + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" ;ignore the execution of bash.bashrc + ((" /etc/bash.bashrc") " /dev/null")) + (substitute* "Makefile" ;set the root of config files to OUT + ((" /etc") (string-append " " out "/etc"))) + (mkdir-p (string-append out "/bin")) ;for the `art' executable + #t))) + (add-after 'install 'wrap-art + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (scm (string-append out "/share/guile/site/2.2")) + (go (string-append out "/lib/guile/2.2/site-ccache"))) + (wrap-program (string-append bin "/art") + `("GUILE_LOAD_PATH" ":" prefix (,scm)) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go))) + #t)))))) + (synopsis "Web application framework written in Guile") + (description "GNU Artanis is a web application framework written in Guile +Scheme. A web application framework (WAF) is a software framework that is +designed to support the development of dynamic websites, web applications, web +services and web resources. The framework aims to alleviate the overhead +associated with common activities performed in web development. Artanis +provides several tools for web development: database access, templating +frameworks, session management, URL-remapping for RESTful, page caching, and +more.") + (home-page "https://www.gnu.org/software/artanis/") + (license (list license:gpl3+ license:lgpl3+))))) ;dual license + +;; There has not been any release yet. +(define-public guildhall + (let ((commit "2fe2cc539f4b811bbcd69e58738db03eb5a2b778") + (revision "1")) + (package + (name "guildhall") + (version (string-append "0-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ijp/guildhall.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "115bym7bg66h3gs399yb2vkzc2ygriaqsn4zbrg8f054mgy8wzn1")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Tests fail without this fix because they try to load the bash + ;; executable as a Scheme file. See bug report at + ;; https://github.com/ijp/guildhall/issues/22 + (add-after 'unpack 'fix-bug-22 + (lambda _ + (substitute* "Makefile.am" + (("TESTS_ENVIRONMENT=.*") + "AM_TESTS_ENVIRONMENT=srcdir=$(abs_top_srcdir)/tests/ +TEST_EXTENSIONS = .scm +SCM_LOG_COMPILER= $(top_builddir)/env $(GUILE) +AM_SCM_LOG_FLAGS = --no-auto-compile -s") + ;; FIXME: one of the database tests fails for unknown + ;; reasons. It does not fail when run outside of Guix. + (("tests/database.scm") "")) + #t))))) + (inputs + `(("guile" ,guile-2.0))) + (native-inputs + `(("zip" ,zip) ; for tests + ("autoconf" ,autoconf) + ("automake" ,automake) + ("texinfo" ,texinfo))) + (synopsis "Package manager for Guile") + (description + "Guildhall is a package manager written for Guile Scheme. A guild is +an association of independent craftspeople. A guildhall is where they meet. +This Guildhall aims to make a virtual space for Guile wizards and journeyfolk +to share code. + +On a practical level, Guildhall lets you share Scheme modules and programs +over the internet, and install code that has been shared by others. Guildhall +can handle dependencies, so when a program requires several libraries, and +each of those has further dependencies, all of the prerequisites for the +program can be installed in one go.") + (home-page "https://github.com/ijp/guildhall") + (license license:gpl3+)))) + +(define-public guile-aspell + (package + (name "guile-aspell") + (version "0.4") + (source (origin + (method url-fetch) + (uri (string-append + "http://lonelycactus.com/tarball/guile_aspell-" + version ".tar.gz")) + (sha256 + (base32 + "0vpk5xj9m9qc702z3khmkwhgpb949qbsyz8kw2qycda6qnxk0077")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'set-guilesitedir + (lambda _ + (substitute* "Makefile.in" + (("^guilesitedir =.*$") + "guilesitedir = \ +$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) + #t)) + (add-before 'build 'set-libaspell-file-name + (lambda* (#:key inputs #:allow-other-keys) + (let ((aspell (assoc-ref inputs "aspell"))) + (substitute* "aspell.scm" + (("\"libaspell\\.so\"") + (string-append "\"" aspell + "/lib/libaspell\""))) + #t)))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("guile" ,guile-2.2) + ("aspell" ,aspell))) + (home-page "https://github.com/spk121/guile-aspell") + (synopsis "Spell-checking from Guile") + (description + "guile-aspell is a Guile Scheme library for comparing a string against a +dictionary and suggesting spelling corrections.") + (license license:gpl3+))) + +(define-public guile-bash + ;; This project is currently retired. It was initially announced here: + ;; <https://lists.gnu.org/archive/html/guile-user/2015-02/msg00003.html>. + (let ((commit "1eabc563ca5692b3e08d84f1f0e6fd2283284469") + (revision "0")) + (package + (name "guile-bash") + (version (string-append "0.1.6-" revision "." (string-take commit 7))) + (home-page + "https://anonscm.debian.org/cgit/users/kaction-guest/retired/dev.guile-bash.git") + (source (origin + (method git-fetch) + (uri (git-reference + (commit commit) + (url home-page))) + (sha256 + (base32 + "097vny990wp2qpjij6a5a5gwc6fxzg5wk56inhy18iki5v6pif1p")) + (file-name (string-append name "-" version "-checkout")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + ;; Add -I to match 'bash.pc' of Bash 4.4. + (list (string-append "CPPFLAGS=-I" + (assoc-ref %build-inputs "bash:include") + "/include/bash/include") + + ;; The '.a' file is useless. + "--disable-static" + + ;; Install 'lib/bash' as Bash 4.4 expects. + (string-append "--libdir=" (assoc-ref %outputs "out") + "/lib/bash")))) + (native-inputs `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf-wrapper) + ("automake" ,automake) + ("libtool" ,libtool) + ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'. + ("gettext" ,gettext-minimal) + + ;; Bash with loadable module support, for the test + ;; suite. + ("bash-full" ,bash))) + (inputs `(("guile" ,guile-2.0) + ("bash:include" ,bash "include"))) + (synopsis "Extend Bash using Guile") + (description + "Guile-Bash provides a shared library and set of Guile modules, +allowing you to extend Bash in Scheme. Scheme interfaces allow you to access +the following aspects of Bash: + +@itemize +@item aliases; +@item setting and getting Bash variables; +@item creating dynamic variables; +@item creating Bash functions with a Scheme implementation; +@item reader macro for output capturing; +@item reader macro for evaluating raw Bash commands. +@end itemize + +To enable it, run: + +@example +enable -f ~/.guix-profile/lib/bash/libguile-bash.so scm +@end example + +and then run @command{scm example.scm}.") + (license license:gpl3+)))) + +(define-public guile-8sync + (package + (name "guile-8sync") + (version "0.4.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/8sync/8sync-" version + ".tar.gz")) + (sha256 + (base32 + "031wm13srak3wsnll7j2mbbi29g1pcm4swdb71ds9yn567pn20qw")))) + (build-system gnu-build-system) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("guile" ,guile-2.2) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'configure 'setenv + (lambda _ + ;; quiet warnings + (setenv "GUILE_AUTO_COMPILE" "0") + #t))))) + (home-page "https://gnu.org/s/8sync/") + (synopsis "Asynchronous actor model library for Guile") + (description + "GNU 8sync (pronounced \"eight-sync\") is an asynchronous programming +library for GNU Guile based on the actor model. + +Note that 8sync is only available for Guile 2.2.") + (license license:lgpl3+))) + +(define-public guile-daemon + (package + (name "guile-daemon") + (version "0.1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/alezost/" name + "/releases/download/v" version + "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "0hh6gq6b6phpxm0b1dkxyzj3f4sxdf7dji63609lzypa5v1ad2gv")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.2))) + (home-page "https://github.com/alezost/guile-daemon") + (synopsis "Evaluate code in a running Guile process") + (description + "Guile-Daemon is a small Guile program that loads your initial +configuration file, and then reads and evaluates Guile expressions that +you send to a FIFO file.") + (license license:gpl3+))) + +(define-public guile-dsv + (package + (name "guile-dsv") + (version "0.2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/artyom-poptsov/guile-dsv") + (commit "bdc5267d007478abc20ea96d7c459b7dd9560b3d"))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1irw6mz8998nwyhzrw9g94jcz60b9zljgqfmipaz1ybn8579qjx0")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (inputs `(("guile" ,guile-2.2))) + (propagated-inputs `(("guile-lib" ,guile-lib))) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'set-guilesitedir + (lambda _ + (substitute* "Makefile.in" + (("^guilesitedir =.*$") + "guilesitedir = \ +$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) + (substitute* "modules/Makefile.in" + (("^guilesitedir =.*$") + "guilesitedir = \ +$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) + (substitute* "modules/dsv/Makefile.in" + (("^guilesitedir =.*$") + "guilesitedir = \ +$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) + #t))))) + (home-page "https://github.com/artyom-poptsov/guile-dsv") + (synopsis "DSV module for Guile") + (description + "Guile-DSV is a GNU Guile module for working with the +delimiter-separated values (DSV) data format. Guile-DSV supports the +Unix-style DSV format and RFC 4180 format.") + (license license:gpl3+))) + +(define-public guile-fibers + (package + (name "guile-fibers") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://wingolog.org/pub/fibers/fibers-" + version ".tar.gz")) + (sha256 + (base32 + "0vjkg72ghgdgphzbjz9ig8al8271rq8974viknb2r1rg4lz92ld0")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'install 'mode-guile-objects + (lambda* (#:key outputs #:allow-other-keys) + ;; .go files are installed to "lib/guile/X.Y/cache". + ;; This phase moves them to "…/site-ccache". + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib/guile")) + (old (car (find-files lib "^ccache$" + #:directories? #t))) + (new (string-append (dirname old) + "/site-ccache"))) + (rename-file old new) + #t)))))) + (native-inputs + `(("texinfo" ,texinfo) + ("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.2))) + (synopsis "Lightweight concurrency facility for Guile") + (description + "Fibers is a Guile library that implements a a lightweight concurrency +facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber is +like a \"goroutine\" from the Go language: a lightweight thread-like +abstraction. Systems built with Fibers can scale up to millions of concurrent +fibers, tens of thousands of concurrent socket connections, and many parallel +cores. The Fibers library also provides Concurrent ML-like channels for +communication between fibers. + +Note that Fibers makes use of some Guile 2.1/2.2-specific features and +is not available for Guile 2.0.") + (home-page "https://github.com/wingo/fibers") + (license license:lgpl3+))) + +(define-public guile-syntax-highlight + (package + (name "guile-syntax-highlight") + (version "0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://files.dthompson.us/" + "guile-syntax-highlight/" + "guile-syntax-highlight-" + version ".tar.gz")) + (sha256 + (base32 + "1p771kq15x83483m23bhah1sz6vkalg3drm7x279f4j1cxligkzi")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.2))) + (synopsis "General-purpose syntax highlighter for GNU Guile") + (description "Guile-syntax-highlight is a general-purpose syntax +highlighting library for GNU Guile. It can parse code written in various +programming languages into a simple s-expression that can be converted to +HTML (via SXML) or any other format for rendering.") + (home-page "http://dthompson.us/projects/guile-syntax-highlight.html") + (license license:lgpl3+))) + +(define-public guile-sjson + (package + (name "guile-sjson") + (version "0.2.1") + (source (origin + (method url-fetch) + (uri (string-append "https://dustycloud.org/misc/sjson-" version + ".tar.gz")) + (sha256 + (base32 + "1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.2))) + (home-page "https://gitlab.com/dustyweb/guile-sjson") + (synopsis "S-expression based json reader/writer for Guile") + (description "guile-sjson is a json reader/writer for Guile. +It has a nice, simple s-expression based syntax.") + (license license:lgpl3+))) + +(define-public guile-colorized + (package + (name "guile-colorized") + (version "0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/NalaGinrut/guile-colorized/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "16xhc3an6aglnca8xl3mvgi8hsqzqn68vsl5ga4bz8bvbap5fn4p")))) + (build-system guile-build-system) + (native-inputs + `(("guile" ,guile-2.2))) + (home-page "https://github.com/NalaGinrut/guile-colorized") + (synopsis "Colorized REPL for Guile") + (description + "Guile-colorized provides you with a colorized REPL for GNU Guile.") + (license license:gpl3+))) + +(define-public guile-pfds + (package + (name "guile-pfds") + (version "0.3") + (home-page "https://github.com/ijp/pfds") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (sha256 + (base32 + "19y33wg94pf0n98dkfqd1zbw93fgky4sawxsxl6s3vyqwl0yi5vh")) + (file-name (string-append name "-" version "-checkout")))) + (build-system guile-build-system) + (arguments + '(#:source-directory "src" + #:phases (modify-phases %standard-phases + (add-after 'unpack 'move-files-around + (lambda _ + ;; Move files under a pfds/ directory to reflect the + ;; module hierarchy. + (mkdir-p "src/pfds") + (for-each (lambda (file) + (rename-file file + (string-append "src/pfds/" + file))) + '("bbtrees.sls" + "deques" + "deques.sls" + "dlists.sls" + "fingertrees.sls" + "hamts.sls" + "heaps.sls" + "private" + "psqs.sls" + "queues" + "queues.sls" + "sequences.sls" + "sets.sls")) + + ;; In Guile <= 2.2.4, there's no way to tell 'guild + ;; compile' to accept the ".sls" extension. So... + (for-each (lambda (file) + (rename-file file + (string-append + (string-drop-right file 4) + ".scm"))) + (find-files "." "\\.sls$")) + #t))))) + (native-inputs + `(("guile" ,guile-2.2))) + (synopsis "Purely functional data structures for Guile") + (description + "This package provides purely functional data structures written in R6RS +Scheme and compiled for Guile. It has been tested with Racket, Guile 2, +Vicare Scheme and IronScheme. Right now it contains: + +@itemize +@item queues +@item deques +@item bbtrees +@item sets +@item dlists +@item priority search queues (PSQs) +@item finger trees +@item sequences +@item heaps +@item hash array mapped tries (HAMTs). +@end itemize\n") + (license license:bsd-3))) + +(define-public guile-aa-tree + (package + (name "guile-aa-tree") + (version "3.1.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/guile-aa-tree/guile-aa-tree-" + version ".tar.gz")) + (sha256 + (base32 + "0044c105r3q9vpl17pv3phl1b79kjm1llhkakqgiasixyav01blh")))) + (build-system guile-build-system) + (native-inputs `(("guile" ,guile-2.2))) + ;; https://savannah.nongnu.org/projects/guile-aa-tree + (home-page "https://qlfiles.net/guile-aa-tree/") + (synopsis "AA tree data structure for Guile") + (description + "This package provides an implementation of @dfn{AA trees}, a +self-balancing binary tree data structure, for Guile. It ensure @math{O(log +n)} worst case performance for core operations. The module provides +non-mutating insert, delete, and search operations, with support for +convenient nested tree operations.") + (license license:gpl3+))) + +(define-public guile-simple-zmq + (let ((commit "68bedb6679716214fb9d3472da57544526f7a618") + (revision "3")) + (package + (name "guile-simple-zmq") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jerry40/guile-simple-zmq") + (commit commit))) + (sha256 + (base32 + "1ad3xg69qqviy1f6dnlw0ysmfdbmp1jq65rfqb8nfd8dsrq2syli")) + (file-name (git-file-name name version)))) + (build-system guile-build-system) + (arguments + `(#:source-directory "src" + #:phases (modify-phases %standard-phases + (add-after 'unpack 'set-libzmq-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/simple-zmq.scm" + (("\\(dynamic-link \"libzmq\"\\)") + (format #f "(dynamic-link \"~a/lib/libzmq.so\")" + (assoc-ref inputs "zeromq")))) + #t))))) + (native-inputs + `(("guile" ,guile-2.2))) + (inputs + `(("zeromq" ,zeromq))) + (home-page "https://github.com/jerry40/guile-simple-zmq") + (synopsis "Guile wrapper over ZeroMQ library") + (description + "This package provides a Guile programming interface to the ZeroMQ +messaging library.") + (license license:gpl3+)))) + +(define-public jupyter-guile-kernel + (let ((commit "a7db9245a886e104138474df46c3e88b95cff629") + (revision "1")) + (package + (name "jupyter-guile-kernel") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jerry40/guile-kernel") + (commit commit))) + (sha256 + (base32 + "0aj04853bqm47ivfcmrgpb7w3wkis847kc7qrwsa5zcn9h38qh2f")))) + (build-system guile-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'set-openssl-file-name + (lambda* (#:key inputs #:allow-other-keys) + ;; Record the absolute file name of the 'openssl' + ;; command. + (substitute* "src/hmac.scm" + (("openssl") + (string-append (assoc-ref inputs "openssl") + "/bin/openssl"))) + #t)) + + ;; XXX: The code uses 'include' to include its own source + ;; files, and "-L src" isn't enough in this case. + (add-before 'build 'chdir + (lambda _ (chdir "src") #t)) + (add-after 'build 'chdir-back + (lambda _ (chdir "..") #t)) + + (add-after 'install 'install-kernel + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (json (assoc-ref inputs "guile-json")) + (zmq (assoc-ref inputs "guile-simple-zmq")) + (deps (list json zmq)) + (dir (string-append + out "/share/jupyter/kernels/guile")) + (effective (target-guile-effective-version))) + ;; Install kernel. + (install-file "src/kernel.json" dir) + + ;; Fix hard-coded file name in the kernel. + (substitute* (string-append dir "/kernel.json") + (("/home/.*/guile-jupyter-kernel.scm") + (string-append out "/share/guile/site/" + (target-guile-effective-version) + "/guile-jupyter-kernel.scm")) + (("\"guile\"") + (string-append "\"" (assoc-ref inputs "guile") + "/bin/guile\"")) + (("-s") + ;; Add '-L' and '-C' flags so that the kernel + ;; finds its dependencies. + (let ((-L (map (lambda (item) + (string-append "\"" item + "/share/guile/site/" + effective "\"")) + deps)) + (-C (map (lambda (item) + (string-append "\"" item + "/lib/guile/" + effective + "/site-ccache\"")) + deps))) + (string-append "--no-auto-compile\"" + (string-join -L ", \"-L\", " + 'prefix) + (string-join -C ", \"-C\", " + 'prefix) + ", \"-s")))) + #t)))))) + (inputs + `(("openssl" ,openssl) + ("guile" ,guile-2.2) + ("guile-json" ,guile-json) + ("guile-simple-zmq" ,guile-simple-zmq))) + (synopsis "Guile kernel for the Jupyter Notebook") + (description + "This package provides a Guile 2.x kernel for the Jupyter Notebook. It +allows users to interact with the Guile REPL through Jupyter.") + (home-page "https://github.com/jerry40/guile-kernel") + (license license:gpl3+)))) + +(define-public guile-sparql + (package + (name "guile-sparql") + (version "0.0.7") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/roelj/guile-sparql/releases/download/" + version "/guile-sparql-" version ".tar.gz")) + (sha256 + (base32 "1drnvhsgl0gc5crmb16yyw1j98nkhwwcgssv9vgm36ng43nnzffd")))) + (build-system gnu-build-system) + (arguments `(#:tests? #f)) ; There are no tests. + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.2))) + (home-page "https://github.com/roelj/guile-sparql") + (synopsis "SPARQL module for Guile") + (description "This package provides the functionality to query a SPARQL +endpoint. Additionally, it provides an interface to write SPARQL queries +using S-expressions.") + (license license:gpl3+))) + +(define-public guile-debbugs + (package + (name "guile-debbugs") + (version "0.0.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/guile-debbugs/guile-debbugs-" + version ".tar.gz")) + (sha256 + (base32 + "16l8910p57im6s3j93xhdaqvgfy6ms5n97177mrch3y961z5hy0i")) + (modules '((guix build utils))) + (snippet + '(substitute* "Makefile.in" + (("^godir = (.*)/ccache" _ prefix) + (string-append "godir = " prefix "/site-ccache")))))) + (build-system gnu-build-system) + (native-inputs + `(("guile" ,guile-2.2) + ("pkg-config" ,pkg-config))) + (home-page "https://savannah.gnu.org/projects/guile-debbugs/") + (synopsis "Guile interface to the Debbugs bug tracking service") + (description + "This package provides a Guile library to communicate with a Debbugs bug +tracker's SOAP service, such as @url{https://bugs.gnu.org}.") + (license license:gpl3+))) + +(define-public guile-email + (let ((commit "fa52eac55e5946db89621a6c583d2aa357864dee") + (revision "1")) + (package + (name "guile-email") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.systemreboot.net/guile-email") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1037mbz7qd9bzaqp8ysyhnl9ipd97fmj3b9jr8qfzx9179vvsj63")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf) + ("automake" ,automake))) + (inputs + `(("guile" ,guile-2.2))) + (home-page "https://git.systemreboot.net/guile-email") + (synopsis "Guile email parser") + (description "This package provides an email parser written in pure +Guile.") + (license license:agpl3+)))) + +(define-public guile-debbugs-next + (let ((commit "75a331d561c8b6f8efcf16216dab961c17759efe") + (revision "1")) + (package (inherit guile-debbugs) + (name "guile-debbugs") + (version (git-version "0.0.3" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/guile-debbugs.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0br3mgbw41bpc9x57jlghl0i8dz9nl63r4wzs5l47aqszf84870y")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("texinfo" ,texinfo))) + (inputs + `(("guile" ,guile-2.2) + ("guile-email" ,guile-email)))))) + +;; There has not been any release yet. +(define-public guile-newt + (let ((commit "80c1e9e71945f833386d1632b52573e59325804f") + (revision "4")) + (package + (name "guile-newt") + (version (string-append "0-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/mothacehe/guile-newt") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1w7qy4dw1f4bx622l6hw8mv49sf1ha8kch8j4nganyk8fj0wn695")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags + '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings + (inputs + `(("guile" ,guile-2.2) + ("newt" ,newt))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (synopsis "Guile bindings to Newt") + (description + "This package provides bindings for Newt, a programming library for +color text mode, widget based user interfaces. The bindings are written in pure +Scheme by using Guile’s foreign function interface.") + (home-page "https://gitlab.com/mothacehe/guile-newt") + (license license:gpl3+)))) + +(define-public guile-mastodon + (package + (name "guile-mastodon") + (version "0.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://framagit.org/prouby/guile-mastodon.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1vblf3d1bbwna3l09p2ap5y8ycvl549bz6whgk78imyfmn28ygry")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.2) + ("gnutls" ,gnutls) + ("guile-json" ,guile-json))) + (home-page "https://framagit.org/prouby/guile-mastodon") + (synopsis "Guile Mastodon REST API module") + (description "This package provides Guile modules to access the +@uref{https://docs.joinmastodon.org/api/, REST API of Mastodon}, a federated +microblogging service.") + (license license:gpl3+))) + +;; There has not been any release yet. +(define-public guile-parted + (let ((commit "ea3f1a1f6844775fc59d3078d2a09c62ffb341b8") + (revision "0")) + (package + (name "guile-parted") + (version (string-append "0-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/mothacehe/guile-parted") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1q7425gpjlwi2wvhzq7kw046yyx7v6j6jyzkd1cr861iz34mjwiq")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags + '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings + (inputs + `(("guile" ,guile-2.2) + ("parted" ,parted))) + (propagated-inputs + `(("guile-bytestructures" ,guile-bytestructures))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (synopsis "Guile bindings to GNU Parted") + (description + "This package provides bindings for GNU Parted library, a C library +allowing disk partition tables creation and manipulation. The bindings are +written in pure Scheme by using Guile's foreign function interface.") + (home-page "https://gitlab.com/mothacehe/guile-parted") + (license license:gpl3+)))) + +(define-public guile-xosd + (package + (name "guile-xosd") + (version "0.2.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/alezost/" name + "/releases/download/v" version + "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1ri5065c16kmgrf2pysn2ymxjqi5302lhpb07wkl1jr75ym8fn8p")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.2) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxinerama" ,libxinerama) + ("xosd" ,xosd))) + (home-page "https://github.com/alezost/guile-xosd") + (synopsis "XOSD bindings for Guile") + (description + "Guile-XOSD provides Guile bindings for @code{libxosd}, +@uref{http://sourceforge.net/projects/libxosd/, the X On Screen Display +library}.") + (license license:gpl3+))) + +(define-public guile-dbi + (package + (name "guile-dbi") + (version "2.1.6") + (source (origin + (method url-fetch) + (uri (string-append + "http://download.gna.org/guile-dbi/guile-dbi-" + version ".tar.gz")) + (sha256 + (base32 + "116njrprhgrsv1qm904sp3b02rq01fx639r433d657gyhw3x159n")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + (list (string-append + "--with-guile-site-dir=" %output "/share/guile/site/2.2")) + #:make-flags + (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib:" + (assoc-ref %build-inputs "guile-dbd-sqlite3") "/lib")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'patch-extension-path + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dbi.scm (string-append + out "/share/guile/site/2.2/dbi/dbi.scm")) + (ext (string-append out "/lib/libguile-dbi"))) + (substitute* dbi.scm (("libguile-dbi") ext)) + #t)))))) + (inputs + `(("guile-dbd-sqlite3" ,guile-dbd-sqlite3))) ; only shared library, no scheme files + (propagated-inputs + `(("guile" ,guile-2.2))) + (synopsis "Guile database abstraction layer") + (home-page "http://home.gna.org/guile-dbi/guile-dbi.html") + (description + "guile-dbi is a library for Guile that provides a convenient interface to +SQL databases. Database programming with guile-dbi is generic in that the same +programming interface is presented regardless of which database system is used. +It currently supports MySQL, Postgres and SQLite3.") + (license license:gpl2+))) + +(define guile-dbi-bootstrap + (package + (inherit guile-dbi) + (name "guile-dbi-bootstrap") + (inputs '()) + (arguments + (substitute-keyword-arguments (package-arguments guile-dbi) + ((#:make-flags _) '(list)))))) + +(define-public guile-dbd-sqlite3 + (package + (name "guile-dbd-sqlite3") + (version "2.1.6") + (source (origin + (method url-fetch) + (uri (string-append + "http://download.gna.org/guile-dbi/guile-dbd-sqlite3-" + version ".tar.gz")) + (sha256 + (base32 + "0rg71jchxd2y8x496s8zmfmikr5g8zxi8zv2ar3f7a23pph92iw2")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("guile-dbi-bootstrap" ,guile-dbi-bootstrap))) ; only required for headers + (inputs + `(("sqlite" ,sqlite) + ("zlib" ,(@ (gnu packages compression) zlib)))) + (synopsis "Guile DBI driver for SQLite") + (home-page "https://github.com/jkalbhenn/guile-dbd-sqlite3") + (description + "guile-dbi is a library for Guile that provides a convenient interface to +SQL databases. This package implements the interface for SQLite.") + (license license:gpl2+))) + +(define-public guile-config + (package + (name "guile-config") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/a-sassmannshausen/guile-config") + (commit "ce12de3f438c6b2b59c43ee21bcd58251835fdf3"))) + (file-name "guile-config-0.3-checkout") + (sha256 (base32 "02zbpin0r9m2vxmr7mv68v3xdn247dcck56kbzjn0gj4c2rhih85")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (inputs `(("guile" ,guile-2.2))) + (synopsis + "Guile application configuration parsing library.") + (description + "Guile Config is a library providing a declarative approach to +application configuration specification. The library provides clean +configuration declaration forms, and processors that take care of: +configuration file creation; configuration file parsing; command-line +parameter parsing using getopt-long; basic GNU command-line parameter +generation (--help, --usage, --version); automatic output generation for the +above command-line parameters.") + (home-page + "https://gitlab.com/a-sassmannshausen/guile-config") + (license license:gpl3+))) + +(define-public guile-hall + (package + (name "guile-hall") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/a-sassmannshausen/guile-hall") + (commit "7d1094a12fe917209ce5b76c681cc8c862d4c65b"))) + (file-name "guile-hall-0.1.1-checkout") + (sha256 + (base32 + "03kb09cjca98hlbx9mj12mqinzsnnvp6ci6i975n88pjhaxigyp1")))) + (build-system gnu-build-system) + (arguments + `(#:modules + ((ice-9 match) + (ice-9 ftw) + ,@%gnu-build-system-modules) + #:phases + (modify-phases %standard-phases + (add-after 'install 'hall-wrap-binaries + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/")) + (site (string-append out "/share/guile/site")) + (config (assoc-ref inputs "guile-config"))) + (match (scandir site) + (("." ".." version) + (let ((modules (string-append site "/" version)) + (compiled-modules (string-append + out "/lib/guile/" version + "/site-ccache"))) + (wrap-program (string-append bin "hall") + `("GUILE_LOAD_PATH" ":" prefix + (,modules + ,(string-append config + "/share/guile/site/" + version))) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix + (,compiled-modules + ,(string-append config "/lib/guile/" + version + "/site-ccache")))) + #t))))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (inputs `(("guile" ,guile-2.2))) + (propagated-inputs + `(("guile-config" ,guile-config))) + (synopsis "Guile project tooling") + (description + "Hall is a command-line application and a set of Guile libraries that +allow you to quickly create and publish Guile projects. It allows you to +transparently support the GNU build system, manage a project hierarchy & +provides tight coupling to Guix.") + (home-page "https://gitlab.com/a-sassmannshausen/guile-hall") + (license license:gpl3+))) + +(define-public guile-ics + (package + (name "guile-ics") + (version "0.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/artyom-poptsov/guile-ics") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0qjjvadr7gibdq9jvwkmlkb4afsw9n2shfj9phpiadinxk3p4m2g")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf-wrapper) + ("automake" ,automake) + ("texinfo" ,texinfo) + ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'. + ("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config))) + (inputs `(("guile" ,guile-2.2) ("which" ,which))) + (propagated-inputs `(("guile-lib" ,guile-lib))) + (home-page "https://github.com/artyom-poptsov/guile-ics") + (synopsis "Guile parser library for the iCalendar format") + (description + "Guile-ICS is an iCalendar (RFC5545) format parser library written in +pure Scheme. The library can be used to read and write iCalendar data. + +The library is shipped with documentation in Info format and usage examples.") + (license license:gpl3+))) + +(define-public guile-wisp + (package + (name "guile-wisp") + (version "0.9.9") + (source (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/ArneBab/" + "wisp/downloads/wisp-" + version ".tar.gz")) + (sha256 + (base32 + "1xa0f0fvcrimqap50azv5872bfx8jbhc6baxa1prpbwcksbh8gdz")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 rdelim) + (ice-9 popen)) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-/usr/bin/env + (lambda _ + (substitute* "Makefile.in" + (("/usr/bin/env bash") (which "bash")) + (("\\$\\(GUILE_EFFECTIVE_VERSION\\)/site") + "site/$(GUILE_EFFECTIVE_VERSION)")) ;use the right order + #t)) + ;; auto compilation breaks, but if we set HOME to /tmp, + ;; that works ok + (add-before 'check 'auto-compile-hacky-workaround + (lambda _ (setenv "HOME" "/tmp") #t)) + (add-after 'install 'install-go-files + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (effective (read-line + (open-pipe* OPEN_READ + "guile" "-c" + "(display (effective-version))"))) + (module-dir (string-append out "/share/guile/site/" + effective)) + (object-dir (string-append out "/lib/guile/" effective + "/site-ccache")) + (prefix (string-length module-dir))) + ;; compile to the destination + (for-each (lambda (file) + (let* ((base (string-drop (string-drop-right file 4) + prefix)) + (go (string-append object-dir base ".go"))) + (invoke "guild" "compile" "-L" module-dir + file "-o" go))) + (find-files module-dir "\\.scm$")) + #t)))))) + (home-page "https://draketo.de/english/wisp") + (inputs + `(("guile" ,guile-2.2))) + (native-inputs + `(("python" ,python) + ("pkg-config" ,pkg-config))) + (synopsis "Whitespace to lisp syntax for Guile") + (description "Wisp is a syntax for Guile which provides a Python-like +whitespace-significant language. It may be easier on the eyes for some +users and in some situations.") + (license license:gpl3+))) + +(define-public guile-sly + (package + (name "guile-sly") + (version "0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://files.dthompson.us/sly/sly-" + version ".tar.gz")) + (sha256 + (base32 + "1svzlbz2vripmyq2kjh0rig16bsrnbkwbsm558pjln9l65mcl4qq")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "configure" + (("_guile_required_version=\"2.0.11\"") + "_guile_required_version=\"2\"") + (("ac_subst_vars='") + "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n")) + (substitute* (find-files "." "Makefile.in") + (("moddir = .*$") + (string-append + "moddir = " + "$(prefix)/share/guile/site/@GUILE_EFFECTIVE_VERSION@\n")) + (("godir = .*$") + (string-append + "godir = " + "$(prefix)/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n"))) + #t)))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + (list (string-append "--with-libfreeimage-prefix=" + (assoc-ref %build-inputs "freeimage")) + (string-append "--with-libgslcblas-prefix=" + (assoc-ref %build-inputs "gsl"))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("guile-sdl" ,guile-sdl) + ("guile-opengl" ,guile-opengl))) + (inputs + `(("guile" ,guile-2.2) + ("gsl" ,gsl) + ("freeimage" ,freeimage) + ("mesa" ,mesa))) + (synopsis "2D/3D game engine for GNU Guile") + (description "Sly is a 2D/3D game engine written in Guile Scheme. Sly +features a functional reactive programming interface and live coding +capabilities.") + (home-page "https://dthompson.us/projects/sly.html") + (license license:gpl3+))) + +(define-public g-wrap + (package + (name "g-wrap") + (version "1.9.15") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/g-wrap/g-wrap-" + version ".tar.gz")) + (sha256 + (base32 + "0ak0bha37dfpj9kmyw1r8fj8nva639aw5xr66wr5gd3l1rqf5xhg")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("guile" ,guile-2.2) + ("guile-lib" ,guile-lib))) + (inputs + `(("libffi" ,libffi))) + (arguments + `(#:configure-flags '("--disable-Werror") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (find-files "." "^Makefile.in$") + (("guilemoduledir =.*guile/site" all) + (string-append all "/@GUILE_EFFECTIVE_VERSION@"))) + #t)))))) + (synopsis "Generate C bindings for Guile") + (description "G-Wrap is a tool and Guile library for generating function +wrappers for inter-language calls. It currently only supports generating Guile +wrappers for C functions. Given a definition of the types and prototypes for +a given C interface, G-Wrap will automatically generate the C code that +provides access to that interface and its types from the Scheme level.") + (home-page "https://www.nongnu.org/g-wrap/index.html") + (license license:lgpl2.1+))) + +(define-public guile-miniadapton + (let ((commit "1b5749422304567c96ac5367f2221dda9eff5880") + (revision "1")) + (package + (name "guile-miniadapton") + (version (string-append "0-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fisherdj/miniAdapton.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh")))) + (build-system guile-build-system) + (native-inputs + `(("guile" ,guile-2.2))) + (home-page "https://github.com/fisherdj/miniAdapton") + (synopsis "Minimal implementation of incremental computation in Guile +Scheme") + (description "This package provides a complete Scheme implementation of +miniAdapton, which implements the core functionality of the Adapton system for +incremental computation (also known as self-adjusting computation). Like +Adapton, miniAdapton allows programmers to safely combine mutation and +memoization. miniAdapton is built on top of an even simpler system, +microAdapton. Both miniAdapton and microAdapton are designed to be easy to +understand, extend, and port to host languages other than Scheme.") + (license license:expat)))) + +(define-public guile-reader + (package + (name "guile-reader") + (version "0.6.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/guile-reader/guile-reader-" + version ".tar.gz")) + (sha256 + (base32 + "0592s2s8ampqmqwilc4fvcild6rb9gy79di6vxv5kcdmv23abkgx")))) + (build-system gnu-build-system) + (native-inputs `(("pkgconfig" ,pkg-config) + ("gperf" ,gperf-3.0))) + (inputs `(("guile" ,guile-2.2))) + (synopsis "Framework for building readers for GNU Guile") + (description + "Guile-Reader is a simple framework for building readers for GNU Guile. + +The idea is to make it easy to build procedures that extend Guile’s read +procedure. Readers supporting various syntax variants can easily be written, +possibly by re-using existing “token readers” of a standard Scheme +readers. For example, it is used to implement Skribilo’s R5RS-derived +document syntax. + +Guile-Reader’s approach is similar to Common Lisp’s “read table”, but +hopefully more powerful and flexible (for instance, one may instantiate as +many readers as needed).") + (home-page "https://www.nongnu.org/guile-reader/") + (license license:gpl3+))) + +(define-public guile2.2-reader + (deprecated-package "guile2.2-reader" guile-reader)) + +(define-public guile-ncurses + (package + (name "guile-ncurses") + (version "2.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/guile-ncurses/guile-ncurses-" + version ".tar.gz")) + (sha256 + (base32 + "1wvggbr4xv8idh1hzd8caj4xfp4pln78a7w1wqzd4zgzwmnzxr2f")))) + (build-system gnu-build-system) + (inputs `(("ncurses" ,ncurses) + ("guile" ,guile-2.2))) + (native-inputs `(("pkg-config" ,pkg-config))) + (arguments + '(#:configure-flags (list "--with-ncursesw" ; Unicode support + "--with-gnu-filesystem-hierarchy") + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-libguile-ncurses-file-name + (lambda* (#:key outputs #:allow-other-keys) + (invoke "make" "install" + "-C" "src/ncurses" + "-j" (number->string + (parallel-job-count))) + (let* ((out (assoc-ref outputs "out")) + (dir "src/ncurses") + (files (find-files dir ".scm"))) + (substitute* files + (("\"libguile-ncurses\"") + (format #f "\"~a/lib/guile/2.2/libguile-ncurses\"" + out))) + #t)))))) + (home-page "https://www.gnu.org/software/guile-ncurses/") + (synopsis "Guile bindings to ncurses") + (description + "guile-ncurses provides Guile language bindings for the ncurses +library.") + (license license:lgpl3+))) + +(define-public guile-ncurses/gpm + (package + (inherit guile-ncurses) + (name "guile-ncurses-with-gpm") + (inputs `(("ncurses" ,ncurses/gpm) + ("guile" ,guile-2.2))))) + +(define-public guile-lib + (package + (name "guile-lib") + (version "0.2.6.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/guile-lib/guile-lib-" + version ".tar.gz")) + (sha256 + (base32 + "0aizxdif5dpch9cvs8zz5g8ds5s4xhfnwza2il5ji7fv2h7ks7bd")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags + '("GUILE_AUTO_COMPILE=0") ; to prevent guild errors + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-module-dir + (lambda _ + (substitute* "src/Makefile.in" + (("^moddir = ([[:graph:]]+)") + "moddir = $(datadir)/guile/site/@GUILE_EFFECTIVE_VERSION@\n") + (("^godir = ([[:graph:]]+)") + "godir = \ +$(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")) + #t))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("guile" ,guile-2.2))) + (home-page "https://www.nongnu.org/guile-lib/") + (synopsis "Collection of useful Guile Scheme modules") + (description + "Guile-Lib is intended as an accumulation place for pure-scheme Guile +modules, allowing for people to cooperate integrating their generic Guile +modules into a coherent library. Think \"a down-scaled, limited-scope CPAN +for Guile\".") + + ;; The whole is under GPLv3+, but some modules are under laxer + ;; distribution terms such as LGPL and public domain. See `COPYING' for + ;; details. + (license license:gpl3+))) + +(define-public guile2.0-lib + (package + (inherit guile-lib) + (name "guile2.0-lib") + (inputs `(("guile" ,guile-2.0))))) + +(define-public guile2.2-lib + (deprecated-package "guile2.2-lib" guile-lib)) + +(define-public guile-minikanren + (package + (name "guile-minikanren") + (version "20150424.e844d85") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ijp/minikanren.git") + (commit "e844d85512f8c055d3f96143ee506007389a25e3"))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0r50jlpzi940jlmxyy3ddqqwmj5r12gb4bcv0ssini9v8km13xz6")))) + (build-system guile-build-system) + (native-inputs + `(("guile" ,guile-2.2))) + (home-page "https://github.com/ijp/minikanren") + (synopsis "MiniKanren declarative logic system, packaged for Guile") + (description + "MiniKanren is a relational programming extension to the Scheme +programming Language, written as a smaller version of Kanren suitable for +pedagogical purposes. It is featured in the book, The Reasoned Schemer, +written by Dan Friedman, William Byrd, and Oleg Kiselyov. + +This is Ian Price's r6rs packaged version of miniKanren, which deviates +slightly from miniKanren mainline. + +See http://minikanren.org/ for more on miniKanren generally.") + (license license:expat))) + +(define-public guile2.0-minikanren + (package + (inherit guile-minikanren) + (name "guile2.0-minikanren") + (native-inputs `(("guile" ,guile-2.0))))) + +(define-public guile2.2-minikanren + (deprecated-package "guile2.2-minikanren" guile-minikanren)) + +(define-public guile-irregex + (package + (name "guile-irregex") + (version "0.9.6") + (source (origin + (method url-fetch) + (uri (string-append + "http://synthcode.com/scheme/irregex/irregex-" + version ".tar.gz")) + (sha256 + (base32 + "1ia3m7dp3lcxa048q0gqbiwwsyvn99baw6xkhb4bhhzn4k7bwyqq")))) + (build-system guile-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'move-files-around + (lambda _ + ;; Move the relevant source files to src/ and create the + ;; rx/ directory to match the expected module hierarchy. + (mkdir-p "src/rx/source") + (rename-file "irregex-guile.scm" + "src/rx/irregex.scm") + (rename-file "irregex.scm" + "src/rx/source/irregex.scm") + ;; Not really reachable via guile's packaging system, + ;; but nice to have around. + (rename-file "irregex-utils.scm" + "src/rx/source/irregex-utils.scm") + #t))) + #:source-directory "src")) + (native-inputs + `(("guile" ,guile-2.2))) + (home-page "http://synthcode.com/scheme/irregex") + (synopsis "S-expression based regular expressions") + (description + "Irregex is an s-expression based alternative to your classic +string-based regular expressions. It implements SRFI 115 and is deeply +inspired by the SCSH regular expression system.") + (license license:bsd-3))) + +(define-public guile2.0-irregex + (package + (inherit guile-irregex) + (name "guile2.0-irregex") + (native-inputs `(("guile" ,guile-2.0))))) + +(define-public guile2.2-irregex + (deprecated-package "guile2.2-irregex" guile-irregex)) + +(define-public haunt + (package + (name "haunt") + (version "0.2.4") + (source (origin + (method url-fetch) + (uri (string-append "https://files.dthompson.us/haunt/haunt-" + version ".tar.gz")) + (sha256 + (base32 + "056z4znikk83nr5mr0x2ac3iinqbywa2bvb37mhr566a1q50isfc")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((ice-9 match) (ice-9 ftw) + ,@%gnu-build-system-modules) + #:tests? #f ; test suite is non-deterministic :( + #:phases (modify-phases %standard-phases + (add-after 'install 'wrap-haunt + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Wrap the 'haunt' command to refer to the right + ;; modules. + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (site (string-append + out "/share/guile/site")) + (deps (list (assoc-ref inputs "guile-reader") + (assoc-ref inputs "guile-commonmark")))) + (match (scandir site) + (("." ".." version) + (let ((modules (string-append site "/" version)) + (compiled-modules (string-append + out "/lib/guile/" version + "/site-ccache"))) + (wrap-program (string-append bin "/haunt") + `("GUILE_LOAD_PATH" ":" prefix + (,modules + ,@(map (lambda (dep) + (string-append dep + "/share/guile/site/" + version)) + deps))) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix + (,compiled-modules + ,@(map (lambda (dep) + (string-append dep "/lib/guile/" + version + "/site-ccache")) + deps)))) + #t))))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (inputs + `(("guile" ,guile-2.2))) + (propagated-inputs + `(("guile-reader" ,guile-reader) + ("guile-commonmark" ,guile-commonmark))) + (synopsis "Functional static site generator") + (description "Haunt is a static site generator written in Guile +Scheme. Haunt features a functional build system and an extensible +interface for reading articles in any format.") + (home-page "http://haunt.dthompson.us") + (license license:gpl3+))) + +(define-public guile2.0-haunt + (package + (inherit haunt) + (name "guile2.0-haunt") + (inputs `(("guile" ,guile-2.0))))) + +(define-public guile2.2-haunt + (deprecated-package "guile2.2-haunt" haunt)) + +(define-public guile-redis + (package + (name "guile-redis") + (version "1.0.0") + (home-page "https://github.com/aconchillo/guile-redis") + (source (origin + (method url-fetch) + (uri (string-append home-page "/archive/" version ".tar.gz")) + (sha256 + (base32 + "1dp5fmqvma59pvp1nfpq6hqgbmjici8sd1y8llahl87fynw1dvr9")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("guile" ,guile-2.2))) + (synopsis "Redis client library for Guile") + (description "Guile-redis provides a Scheme interface to the Redis +key-value cache and store.") + (license license:lgpl3+))) + +(define-public guile2.0-redis + (package + (inherit guile-redis) + (name "guile2.0-redis") + (native-inputs `(("guile" ,guile-2.0) + ,@(alist-delete "guile" + (package-native-inputs guile-redis)))))) + +(define-public guile2.2-redis + (deprecated-package "guile2.2-redis" guile-redis)) + +(define-public guile-commonmark + (package + (name "guile-commonmark") + (version "0.1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/OrangeShark/" name + "/releases/download/v" version + "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "17lrsdisa3kckh24q114vfmzdc4wkqa6ccwl4hdlrng5wpn1iman")))) + (build-system gnu-build-system) + (inputs + `(("guile" ,guile-2.2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "CommonMark parser for Guile") + (description + "guile-commonmark is a library for parsing CommonMark, a fully specified +variant of Markdown. The library is written in Guile Scheme and is designed +to transform a CommonMark document to SXML. guile-commonmark tries to closely +follow the @uref{http://commonmark.org/, CommonMark spec}, the main difference +is no support for parsing block and inline level HTML.") + (home-page "https://github.com/OrangeShark/guile-commonmark") + (license license:lgpl3+))) + +(define-public guile2.0-commonmark + (package + (inherit guile-commonmark) + (name "guile2.0-commonmark") + (inputs `(("guile" ,guile-2.0))))) + +(define-public guile2.2-commonmark + (deprecated-package "guile2.2-commonmark" guile-commonmark)) + +(define-public mcron + (package + (name "mcron") + (version "1.1.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/mcron/mcron-" + version ".tar.gz")) + (sha256 + (base32 + "1i9mcp6r6my61zfiydsm3n6my41mwvl7dfala4q29qx0zn1ynlm4")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'check 'set-timezone + (lambda* (#:key inputs #:allow-other-keys) + ;; 'tests/job-specifier.scm' expects to be running in + ;; UTC-2 or something. + ;; FIXME: This issue is being investigated upstream, for + ;; now we'll just skip the tests (see below): + ;; <https://lists.gnu.org/archive/html/bug-mcron/2018-04/msg00005.html>. + (let ((tzdata (assoc-ref inputs "tzdata"))) + (setenv "TZDIR" + (string-append tzdata + "/share/zoneinfo")) + (setenv "TZ" "UTC-2") + #t))) + (add-before 'check 'adjust-tests + (lambda _ + (substitute* "tests/job-specifier.scm" + ;; (getpw) fails with "entry not found" in the build + ;; environment, so pass an argument. + (("\\(getpw\\)") + "(getpwnam (getuid))") + ;; The build environment lacks an entry for root in + ;; /etc/passwd. + (("\\(getpw 0\\)") + "(getpwnam \"nobody\")") + + ;; FIXME: Skip the 4 faulty tests (see above). + (("\\(test-equal \"next-year\"" all) + (string-append "(test-skip 4)\n" all))) + #t))))) + (native-inputs `(("pkg-config" ,pkg-config) + ("tzdata" ,tzdata-for-tests))) + (inputs `(("ed" ,ed) ("which" ,which) ("guile" ,guile-2.2))) + (home-page "https://www.gnu.org/software/mcron/") + (synopsis "Run jobs at scheduled times") + (description + "GNU Mcron is a complete replacement for Vixie cron. It is used to run +tasks on a schedule, such as every hour or every Monday. Mcron is written in +Guile, so its configuration can be written in Scheme; the original cron +format is also supported.") + (license license:gpl3+))) + +(define-public mcron2 + ;; This was mthl's mcron development branch, and it became mcron 1.1. + (deprecated-package "mcron2" mcron)) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 98221a83eb..eb32e596d3 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -1,25 +1,20 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com> +;;; Copyright © 2014, 2016, 2018 David Thompson <davet@gnu.org> +;;; Copyright © 2014, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org> -;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> -;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com> -;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com> -;;; Copyright © 2016, 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org> -;;; Copyright © 2016 Amirouche <amirouche@hypermove.net> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> +;;; Copyright © 2016, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> -;;; Copyright © 2017 David Thompson <davet@gnu.org> -;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com> -;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org> -;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> -;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> -;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> -;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> +;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Amirouche <amirouche@hypermove.net> +;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2019 Taylan Kammer <taylan.kammer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,48 +34,31 @@ (define-module (gnu packages guile) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) - #:use-module (gnu packages aspell) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bdw-gc) #:use-module (gnu packages compression) #:use-module (gnu packages dbm) - #:use-module (gnu packages disk) - #:use-module (gnu packages ed) #:use-module (gnu packages flex) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) - #:use-module (gnu packages gl) - #:use-module (gnu packages gperf) #:use-module (gnu packages hurd) - #:use-module (gnu packages image) #:use-module (gnu packages libffi) #:use-module (gnu packages libunistring) #:use-module (gnu packages linux) #:use-module (gnu packages m4) - #:use-module (gnu packages man) - #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) - #:use-module (gnu packages ncurses) - #:use-module (gnu packages networking) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages python) #:use-module (gnu packages readline) - #:use-module (gnu packages sdl) - #:use-module (gnu packages slang) #:use-module (gnu packages sqlite) #:use-module (gnu packages texinfo) - #:use-module (gnu packages tls) #:use-module (gnu packages version-control) - #:use-module (gnu packages xdisorg) - #:use-module (gnu packages xorg) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system guile) - #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (ice-9 match) #:use-module ((srfi srfi-1) #:prefix srfi-1:)) @@ -410,15 +388,10 @@ GNU@tie{}Guile. Use the @code{(ice-9 readline)} module and call its (string-length "guile-"))) name))) -(define package-for-guile-2.2 - ;; A procedure that rewrites the dependency tree of the given package to use - ;; GUILE-2.2 instead of GUILE-2.0. - (package-input-rewriting `((,guile-2.0 . ,guile-2.2)) - (guile-variant-package-name "guile2.2"))) - (define package-for-guile-2.0 - ;; Likewise, but the other way around. :-) - (package-input-rewriting `((,guile-2.2 . ,guile-2.0)) + ;; A procedure that rewrites the dependency tree of the given package to use + ;; GUILE-2.0 instead of GUILE-2.2. + (package-input-rewriting (delay `((,guile-2.2 . ,guile-2.0))) (guile-variant-package-name "guile2.0"))) (define-public guile-for-guile-emacs @@ -435,20 +408,10 @@ GNU@tie{}Guile. Use the @code{(ice-9 readline)} module and call its (base32 "00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0")))) (arguments - (substitute-keyword-arguments `(;; Tests aren't passing for now. - ;; Obviously we should re-enable this! - #:tests? #f - ,@(package-arguments guile-2.2)) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'autogen - (lambda _ - (zero? (system* "sh" "autogen.sh")))) - (add-before 'autogen 'patch-/bin/sh - (lambda _ - (substitute* "build-aux/git-version-gen" - (("#!/bin/sh") (string-append "#!" (which "sh")))) - #t)))))) + `(;; Tests aren't passing for now. + ;; Obviously we should re-enable this! + #:tests? #f + ,@(package-arguments guile-2.2))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -467,445 +430,11 @@ GNU@tie{}Guile. Use the @code{(ice-9 readline)} module and call its (files '("lib/guile/2.0/site-ccache" "share/guile/site/2.0"))))))) -;; There has not been any release yet. -(define-public guildhall - (let ((commit "2fe2cc539f4b811bbcd69e58738db03eb5a2b778") - (revision "1")) - (package - (name "guildhall") - (version (string-append "0-" revision "." (string-take commit 9))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ijp/guildhall.git") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "115bym7bg66h3gs399yb2vkzc2ygriaqsn4zbrg8f054mgy8wzn1")))) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; Tests fail without this fix because they try to load the bash - ;; executable as a Scheme file. See bug report at - ;; https://github.com/ijp/guildhall/issues/22 - (add-after 'unpack 'fix-bug-22 - (lambda _ - (substitute* "Makefile.am" - (("TESTS_ENVIRONMENT=.*") - "AM_TESTS_ENVIRONMENT=srcdir=$(abs_top_srcdir)/tests/ -TEST_EXTENSIONS = .scm -SCM_LOG_COMPILER= $(top_builddir)/env $(GUILE) -AM_SCM_LOG_FLAGS = --no-auto-compile -s") - ;; FIXME: one of the database tests fails for unknown - ;; reasons. It does not fail when run outside of Guix. - (("tests/database.scm") "")) - #t))))) - (inputs - `(("guile" ,guile-2.0))) - (native-inputs - `(("zip" ,zip) ; for tests - ("autoconf" ,autoconf) - ("automake" ,automake) - ("texinfo" ,texinfo))) - (synopsis "Package manager for Guile") - (description - "Guildhall is a package manager written for Guile Scheme. A guild is -an association of independent craftspeople. A guildhall is where they meet. -This Guildhall aims to make a virtual space for Guile wizards and journeyfolk -to share code. - -On a practical level, Guildhall lets you share Scheme modules and programs -over the internet, and install code that has been shared by others. Guildhall -can handle dependencies, so when a program requires several libraries, and -each of those has further dependencies, all of the prerequisites for the -program can be installed in one go.") - (home-page "https://github.com/ijp/guildhall") - (license license:gpl3+)))) - ;;; ;;; Extensions. ;;; -(define-public artanis - (let ((release "0.2.1") - (revision 3)) - (package - (name "artanis") - (version (if (zero? revision) - release - (string-append release "-" - (number->string revision)))) - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/artanis/artanis-" - release ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "041ajcg2pz918kd9iqcj4inpzddc3impvz3r2nhlpbv8zrz011hn")) - (modules '((guix build utils))) - (snippet - '(begin - (delete-file-recursively "artanis/third-party/json.scm") - (delete-file-recursively "artanis/third-party/json") - (substitute* '("artanis/artanis.scm" - "artanis/oht.scm") - (("(#:use-module \\()artanis third-party (json\\))" _ - use-module json) - (string-append use-module json))) - (substitute* "artanis/oht.scm" - (("([[:punct:][:space:]]+)(->json-string)([[:punct:][:space:]]+)" - _ pre json-string post) - (string-append pre - "scm" json-string - post))) - (substitute* "artanis/artanis.scm" - (("[[:punct:][:space:]]+->json-string[[:punct:][:space:]]+") - "")) - #t)))) - (build-system gnu-build-system) - ;; TODO: Add guile-dbi and guile-dbd optional dependencies. - (inputs `(("guile" ,guile-2.2) - ("guile-json" ,guile-json))) - (native-inputs `(("bash" ,bash) ;for the `source' builtin - ("pkgconfig" ,pkg-config) - ("util-linux" ,util-linux))) ;for the `script' command - (arguments - '(#:make-flags - ;; TODO: The documentation must be built with the `docs' target. - (let* ((out (assoc-ref %outputs "out")) - (scm (string-append out "/share/guile/site/2.2")) - (go (string-append out "/lib/guile/2.2/site-ccache"))) - ;; Don't use (%site-dir) for site paths. - (list (string-append "MOD_PATH=" scm) - (string-append "MOD_COMPILED_PATH=" go))) - #:test-target "test" - #:phases - (modify-phases %standard-phases - (add-before 'install 'substitute-root-dir - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "Makefile" ;ignore the execution of bash.bashrc - ((" /etc/bash.bashrc") " /dev/null")) - (substitute* "Makefile" ;set the root of config files to OUT - ((" /etc") (string-append " " out "/etc"))) - (mkdir-p (string-append out "/bin")) ;for the `art' executable - #t))) - (add-after 'install 'wrap-art - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (scm (string-append out "/share/guile/site/2.2")) - (go (string-append out "/lib/guile/2.2/site-ccache"))) - (wrap-program (string-append bin "/art") - `("GUILE_LOAD_PATH" ":" prefix (,scm)) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go))) - #t)))))) - (synopsis "Web application framework written in Guile") - (description "GNU Artanis is a web application framework written in Guile -Scheme. A web application framework (WAF) is a software framework that is -designed to support the development of dynamic websites, web applications, web -services and web resources. The framework aims to alleviate the overhead -associated with common activities performed in web development. Artanis -provides several tools for web development: database access, templating -frameworks, session management, URL-remapping for RESTful, page caching, and -more.") - (home-page "https://www.gnu.org/software/artanis/") - (license (list license:gpl3+ license:lgpl3+))))) ;dual license - -(define-public guile-reader - (package - (name "guile-reader") - (version "0.6.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://savannah/guile-reader/guile-reader-" - version ".tar.gz")) - (sha256 - (base32 - "0592s2s8ampqmqwilc4fvcild6rb9gy79di6vxv5kcdmv23abkgx")))) - (build-system gnu-build-system) - (native-inputs `(("pkgconfig" ,pkg-config) - ("gperf" ,gperf-3.0))) - (inputs `(("guile" ,guile-2.2))) - (synopsis "Framework for building readers for GNU Guile") - (description - "Guile-Reader is a simple framework for building readers for GNU Guile. - -The idea is to make it easy to build procedures that extend Guile’s read -procedure. Readers supporting various syntax variants can easily be written, -possibly by re-using existing “token readers” of a standard Scheme -readers. For example, it is used to implement Skribilo’s R5RS-derived -document syntax. - -Guile-Reader’s approach is similar to Common Lisp’s “read table”, but -hopefully more powerful and flexible (for instance, one may instantiate as -many readers as needed).") - (home-page "https://www.nongnu.org/guile-reader/") - (license license:gpl3+))) - -(define-public guile2.0-reader - (package-for-guile-2.0 guile-reader)) -(define-public guile2.2-reader - (deprecated-package "guile2.2-reader" guile-reader)) - -(define-public guile-ncurses - (package - (name "guile-ncurses") - (version "2.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/guile-ncurses/guile-ncurses-" - version ".tar.gz")) - (sha256 - (base32 - "1wvggbr4xv8idh1hzd8caj4xfp4pln78a7w1wqzd4zgzwmnzxr2f")))) - (build-system gnu-build-system) - (inputs `(("ncurses" ,ncurses) - ("guile" ,guile-2.2))) - (native-inputs `(("pkg-config" ,pkg-config))) - (arguments - '(#:configure-flags (list "--with-ncursesw" ; Unicode support - "--with-gnu-filesystem-hierarchy") - #:phases - (modify-phases %standard-phases - (add-before 'build 'fix-libguile-ncurses-file-name - (lambda* (#:key outputs #:allow-other-keys) - (and (zero? (system* "make" "install" - "-C" "src/ncurses" - "-j" (number->string - (parallel-job-count)))) - (let* ((out (assoc-ref outputs "out")) - (dir "src/ncurses") - (files (find-files dir ".scm"))) - (substitute* files - (("\"libguile-ncurses\"") - (format #f "\"~a/lib/guile/2.2/libguile-ncurses\"" - out))) - #t))))))) - (home-page "https://www.gnu.org/software/guile-ncurses/") - (synopsis "Guile bindings to ncurses") - (description - "guile-ncurses provides Guile language bindings for the ncurses -library.") - (license license:lgpl3+))) - -(define-public guile-ncurses/gpm - (package - (inherit guile-ncurses) - (name "guile-ncurses-with-gpm") - (inputs `(("ncurses" ,ncurses/gpm) - ("guile" ,guile-2.2))))) - -(define-public mcron - (package - (name "mcron") - (version "1.1.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/mcron/mcron-" - version ".tar.gz")) - (sha256 - (base32 - "1i9mcp6r6my61zfiydsm3n6my41mwvl7dfala4q29qx0zn1ynlm4")))) - (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-before 'check 'set-timezone - (lambda* (#:key inputs #:allow-other-keys) - ;; 'tests/job-specifier.scm' expects to be running in - ;; UTC-2 or something. - ;; FIXME: This issue is being investigated upstream, for - ;; now we'll just skip the tests (see below): - ;; <https://lists.gnu.org/archive/html/bug-mcron/2018-04/msg00005.html>. - (let ((tzdata (assoc-ref inputs "tzdata"))) - (setenv "TZDIR" - (string-append tzdata - "/share/zoneinfo")) - (setenv "TZ" "UTC-2") - #t))) - (add-before 'check 'adjust-tests - (lambda _ - (substitute* "tests/job-specifier.scm" - ;; (getpw) fails with "entry not found" in the build - ;; environment, so pass an argument. - (("\\(getpw\\)") - "(getpwnam (getuid))") - ;; The build environment lacks an entry for root in - ;; /etc/passwd. - (("\\(getpw 0\\)") - "(getpwnam \"nobody\")") - - ;; FIXME: Skip the 4 faulty tests (see above). - (("\\(test-equal \"next-year\"" all) - (string-append "(test-skip 4)\n" all))) - #t))))) - (native-inputs `(("pkg-config" ,pkg-config) - ("tzdata" ,tzdata-for-tests))) - (inputs `(("ed" ,ed) ("which" ,which) ("guile" ,guile-2.2))) - (home-page "https://www.gnu.org/software/mcron/") - (synopsis "Run jobs at scheduled times") - (description - "GNU Mcron is a complete replacement for Vixie cron. It is used to run -tasks on a schedule, such as every hour or every Monday. Mcron is written in -Guile, so its configuration can be written in Scheme; the original cron -format is also supported.") - (license license:gpl3+))) - -(define-public mcron2 - ;; This was mthl's mcron development branch, and it became mcron 1.1. - (deprecated-package "mcron2" mcron)) - -(define-public guile-hall - (package - (name "guile-hall") - (version "0.1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/a-sassmannshausen/guile-hall") - (commit "7d1094a12fe917209ce5b76c681cc8c862d4c65b"))) - (file-name "guile-hall-0.1.1-checkout") - (sha256 - (base32 - "03kb09cjca98hlbx9mj12mqinzsnnvp6ci6i975n88pjhaxigyp1")))) - (build-system gnu-build-system) - (arguments - `(#:modules - ((ice-9 match) - (ice-9 ftw) - ,@%gnu-build-system-modules) - #:phases - (modify-phases - %standard-phases - (add-after - 'install - 'hall-wrap-binaries - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin/")) - (site (string-append out "/share/guile/site"))) - (match (scandir site) - (("." ".." version) - (let ((modules (string-append site "/" version)) - (compiled-modules - (string-append - out - "/lib/guile/" - version - "/site-ccache"))) - (for-each - (lambda (file) - (wrap-program - (string-append bin file) - `("GUILE_LOAD_PATH" ":" prefix (,modules)) - `("GUILE_LOAD_COMPILED_PATH" - ":" - prefix - (,compiled-modules)))) - ,(list 'list "hall")) - #t))))))))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config) - ("texinfo" ,texinfo))) - (inputs `(("guile" ,guile-2.2))) - (propagated-inputs - `(("guile-config" ,guile-config))) - (synopsis "Guile project tooling") - (description - "Hall is a command-line application and a set of Guile libraries that -allow you to quickly create and publish Guile projects. It allows you to -transparently support the GNU build system, manage a project hierarchy & -provides tight coupling to Guix.") - (home-page - "https://gitlab.com/a-sassmannshausen/guile-hall") - (license license:gpl3+))) - -(define-public guile-ics - (package - (name "guile-ics") - (version "0.2.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/artyom-poptsov/guile-ics") - (commit (string-append "v" version)))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0qjjvadr7gibdq9jvwkmlkb4afsw9n2shfj9phpiadinxk3p4m2g")))) - (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf-wrapper) - ("automake" ,automake) - ("texinfo" ,texinfo) - ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'. - ("gettext" ,gettext-minimal) - ("pkg-config" ,pkg-config))) - (inputs `(("guile" ,guile-2.2) ("which" ,which))) - (propagated-inputs `(("guile-lib" ,guile-lib))) - (home-page "https://github.com/artyom-poptsov/guile-ics") - (synopsis "Guile parser library for the iCalendar format") - (description - "Guile-ICS is an iCalendar (RFC5545) format parser library written in -pure Scheme. The library can be used to read and write iCalendar data. - -The library is shipped with documentation in Info format and usage examples.") - (license license:gpl3+))) - -(define-public guile-lib - (package - (name "guile-lib") - (version "0.2.6.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://savannah/guile-lib/guile-lib-" - version ".tar.gz")) - (sha256 - (base32 - "0aizxdif5dpch9cvs8zz5g8ds5s4xhfnwza2il5ji7fv2h7ks7bd")))) - (build-system gnu-build-system) - (arguments - '(#:make-flags - '("GUILE_AUTO_COMPILE=0") ; to prevent guild errors - #:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-module-dir - (lambda _ - (substitute* "src/Makefile.in" - (("^moddir = ([[:graph:]]+)") - "moddir = $(datadir)/guile/site/@GUILE_EFFECTIVE_VERSION@\n") - (("^godir = ([[:graph:]]+)") - "godir = \ -$(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")) - #t))))) - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("guile" ,guile-2.2))) - (home-page "https://www.nongnu.org/guile-lib/") - (synopsis "Collection of useful Guile Scheme modules") - (description - "Guile-Lib is intended as an accumulation place for pure-scheme Guile -modules, allowing for people to cooperate integrating their generic Guile -modules into a coherent library. Think \"a down-scaled, limited-scope CPAN -for Guile\".") - - ;; The whole is under GPLv3+, but some modules are under laxer - ;; distribution terms such as LGPL and public domain. See `COPYING' for - ;; details. - (license license:gpl3+))) - -(define-public guile2.0-lib - (package-for-guile-2.0 guile-lib)) - -(define-public guile2.2-lib - (deprecated-package "guile2.2-lib" guile-lib)) - (define-public guile-json (package (name "guile-json") @@ -957,118 +486,6 @@ specification. These are the main features: (base32 "1yfqscz74i4vxylabd3s9l0wbdp8bg9qxnv1ixdm3b1l7zdx00z3")))))) -(define-public guile-minikanren - (package - (name "guile-minikanren") - (version "20150424.e844d85") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ijp/minikanren.git") - (commit "e844d85512f8c055d3f96143ee506007389a25e3"))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0r50jlpzi940jlmxyy3ddqqwmj5r12gb4bcv0ssini9v8km13xz6")))) - (build-system guile-build-system) - (native-inputs - `(("guile" ,guile-2.2))) - (home-page "https://github.com/ijp/minikanren") - (synopsis "MiniKanren declarative logic system, packaged for Guile") - (description - "MiniKanren is a relational programming extension to the Scheme -programming Language, written as a smaller version of Kanren suitable for -pedagogical purposes. It is featured in the book, The Reasoned Schemer, -written by Dan Friedman, William Byrd, and Oleg Kiselyov. - -This is Ian Price's r6rs packaged version of miniKanren, which deviates -slightly from miniKanren mainline. - -See http://minikanren.org/ for more on miniKanren generally.") - (license license:expat))) - -(define-public guile2.0-minikanren - (package-for-guile-2.0 guile-minikanren)) - -(define-public guile2.2-minikanren - (deprecated-package "guile2.2-minikanren" guile-minikanren)) - -(define-public guile-miniadapton - (let ((commit "1b5749422304567c96ac5367f2221dda9eff5880") - (revision "1")) - (package - (name "guile-miniadapton") - (version (string-append "0-" revision "." (string-take commit 9))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fisherdj/miniAdapton.git") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh")))) - (build-system guile-build-system) - (native-inputs - `(("guile" ,guile-2.2))) - (home-page "https://github.com/fisherdj/miniAdapton") - (synopsis "Minimal implementation of incremental computation in Guile -Scheme") - (description "This package provides a complete Scheme implementation of -miniAdapton, which implements the core functionality of the Adapton system for -incremental computation (also known as self-adjusting computation). Like -Adapton, miniAdapton allows programmers to safely combine mutation and -memoization. miniAdapton is built on top of an even simpler system, -microAdapton. Both miniAdapton and microAdapton are designed to be easy to -understand, extend, and port to host languages other than Scheme.") - (license license:expat)))) - -(define-public guile-irregex - (package - (name "guile-irregex") - (version "0.9.6") - (source (origin - (method url-fetch) - (uri (string-append - "http://synthcode.com/scheme/irregex/irregex-" - version ".tar.gz")) - (sha256 - (base32 - "1ia3m7dp3lcxa048q0gqbiwwsyvn99baw6xkhb4bhhzn4k7bwyqq")))) - (build-system guile-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'move-files-around - (lambda _ - ;; Move the relevant source files to src/ and create the - ;; rx/ directory to match the expected module hierarchy. - (mkdir-p "src/rx/source") - (rename-file "irregex-guile.scm" - "src/rx/irregex.scm") - (rename-file "irregex.scm" - "src/rx/source/irregex.scm") - ;; Not really reachable via guile's packaging system, - ;; but nice to have around. - (rename-file "irregex-utils.scm" - "src/rx/source/irregex-utils.scm") - #t))) - #:source-directory "src")) - (native-inputs - `(("guile" ,guile-2.2))) - (home-page "http://synthcode.com/scheme/irregex") - (synopsis "S-expression based regular expressions") - (description - "Irregex is an s-expression based alternative to your classic -string-based regular expressions. It implements SRFI 115 and is deeply -inspired by the SCSH regular expression system.") - (license license:bsd-3))) - -(define-public guile2.0-irregex - (package-for-guile-2.0 guile-irregex)) - -(define-public guile2.2-irregex - (deprecated-package "guile2.2-irregex" guile-irregex)) - ;; There are two guile-gdbm packages, one using the FFI and one with ;; direct C bindings, hence the verbose name. @@ -1154,512 +571,6 @@ Guile's foreign function interface.") (define-public guile2.0-sqlite3 (package-for-guile-2.0 guile-sqlite3)) -(define-public haunt - (package - (name "haunt") - (version "0.2.4") - (source (origin - (method url-fetch) - (uri (string-append "https://files.dthompson.us/haunt/haunt-" - version ".tar.gz")) - (sha256 - (base32 - "056z4znikk83nr5mr0x2ac3iinqbywa2bvb37mhr566a1q50isfc")))) - (build-system gnu-build-system) - (arguments - `(#:modules ((ice-9 match) (ice-9 ftw) - ,@%gnu-build-system-modules) - #:tests? #f ; test suite is non-deterministic :( - #:phases (modify-phases %standard-phases - (add-after 'install 'wrap-haunt - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Wrap the 'haunt' command to refer to the right - ;; modules. - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (site (string-append - out "/share/guile/site")) - (deps (list (assoc-ref inputs "guile-reader") - (assoc-ref inputs "guile-commonmark")))) - (match (scandir site) - (("." ".." version) - (let ((modules (string-append site "/" version)) - (compiled-modules (string-append - out "/lib/guile/" version - "/site-ccache"))) - (wrap-program (string-append bin "/haunt") - `("GUILE_LOAD_PATH" ":" prefix - (,modules - ,@(map (lambda (dep) - (string-append dep - "/share/guile/site/" - version)) - deps))) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix - (,compiled-modules - ,@(map (lambda (dep) - (string-append dep "/lib/guile/" - version - "/site-ccache")) - deps)))) - #t))))))))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("texinfo" ,texinfo))) - (inputs - `(("guile" ,guile-2.2))) - (propagated-inputs - `(("guile-reader" ,guile-reader) - ("guile-commonmark" ,guile-commonmark))) - (synopsis "Functional static site generator") - (description "Haunt is a static site generator written in Guile -Scheme. Haunt features a functional build system and an extensible -interface for reading articles in any format.") - (home-page "http://haunt.dthompson.us") - (license license:gpl3+))) - -(define-public guile2.0-haunt - (package-for-guile-2.0 - (package (inherit haunt) (name "guile2.0-haunt")))) -(define-public guile2.2-haunt - (deprecated-package "guile2.2-haunt" haunt)) - -(define-public guile-config - (package - (name "guile-config") - (version "0.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/a-sassmannshausen/guile-config") - (commit "ce12de3f438c6b2b59c43ee21bcd58251835fdf3"))) - (file-name "guile-config-0.3-checkout") - (sha256 (base32 "02zbpin0r9m2vxmr7mv68v3xdn247dcck56kbzjn0gj4c2rhih85")))) - (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config) - ("texinfo" ,texinfo))) - (inputs `(("guile" ,guile-2.2))) - (synopsis - "Guile application configuration parsing library.") - (description - "Guile Config is a library providing a declarative approach to -application configuration specification. The library provides clean -configuration declaration forms, and processors that take care of: -configuration file creation; configuration file parsing; command-line -parameter parsing using getopt-long; basic GNU command-line parameter -generation (--help, --usage, --version); automatic output generation for the -above command-line parameters.") - (home-page - "https://gitlab.com/a-sassmannshausen/guile-config") - (license license:gpl3+))) - -(define-public guile-redis - (package - (name "guile-redis") - (version "1.0.0") - (home-page "https://github.com/aconchillo/guile-redis") - (source (origin - (method url-fetch) - (uri (string-append home-page "/archive/" version ".tar.gz")) - (sha256 - (base32 - "1dp5fmqvma59pvp1nfpq6hqgbmjici8sd1y8llahl87fynw1dvr9")))) - (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config) - ("guile" ,guile-2.2))) - (synopsis "Redis client library for Guile") - (description "Guile-redis provides a Scheme interface to the Redis -key-value cache and store.") - (license license:lgpl3+))) - -(define-public guile2.0-redis - (package-for-guile-2.0 guile-redis)) - -(define-public guile2.2-redis - (deprecated-package "guile2.2-redis" guile-redis)) - -(define-public guile-wisp - (package - (name "guile-wisp") - (version "0.9.9") - (source (origin - (method url-fetch) - (uri (string-append "https://bitbucket.org/ArneBab/" - "wisp/downloads/wisp-" - version ".tar.gz")) - (sha256 - (base32 - "1xa0f0fvcrimqap50azv5872bfx8jbhc6baxa1prpbwcksbh8gdz")))) - (build-system gnu-build-system) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 rdelim) - (ice-9 popen)) - #:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-/usr/bin/env - (lambda _ - (substitute* "Makefile.in" - (("/usr/bin/env bash") (which "bash")) - (("\\$\\(GUILE_EFFECTIVE_VERSION\\)/site") - "site/$(GUILE_EFFECTIVE_VERSION)")) ;use the right order - #t)) - ;; auto compilation breaks, but if we set HOME to /tmp, - ;; that works ok - (add-before 'check 'auto-compile-hacky-workaround - (lambda _ (setenv "HOME" "/tmp") #t)) - (add-after 'install 'install-go-files - (lambda* (#:key outputs inputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (effective (read-line - (open-pipe* OPEN_READ - "guile" "-c" - "(display (effective-version))"))) - (module-dir (string-append out "/share/guile/site/" - effective)) - (object-dir (string-append out "/lib/guile/" effective - "/site-ccache")) - (prefix (string-length module-dir))) - ;; compile to the destination - (for-each (lambda (file) - (let* ((base (string-drop (string-drop-right file 4) - prefix)) - (go (string-append object-dir base ".go"))) - (invoke "guild" "compile" "-L" module-dir - file "-o" go))) - (find-files module-dir "\\.scm$")) - #t)))))) - (home-page "https://draketo.de/english/wisp") - (inputs - `(("guile" ,guile-2.2))) - (native-inputs - `(("python" ,python) - ("pkg-config" ,pkg-config))) - (synopsis "Whitespace to lisp syntax for Guile") - (description "Wisp is a syntax for Guile which provides a Python-like -whitespace-significant language. It may be easier on the eyes for some -users and in some situations.") - (license license:gpl3+))) - -(define-public guile-sly - (package - (name "guile-sly") - (version "0.1") - (source (origin - (method url-fetch) - (uri (string-append "https://files.dthompson.us/sly/sly-" - version ".tar.gz")) - (sha256 - (base32 - "1svzlbz2vripmyq2kjh0rig16bsrnbkwbsm558pjln9l65mcl4qq")) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "configure" - (("_guile_required_version=\"2.0.11\"") - "_guile_required_version=\"2\"") - (("ac_subst_vars='") - "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n")) - (substitute* (find-files "." "Makefile.in") - (("moddir = .*$") - (string-append - "moddir = " - "$(prefix)/share/guile/site/@GUILE_EFFECTIVE_VERSION@\n")) - (("godir = .*$") - (string-append - "godir = " - "$(prefix)/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n"))) - #t)))) - (build-system gnu-build-system) - (arguments - '(#:configure-flags - (list (string-append "--with-libfreeimage-prefix=" - (assoc-ref %build-inputs "freeimage")) - (string-append "--with-libgslcblas-prefix=" - (assoc-ref %build-inputs "gsl"))))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (propagated-inputs - `(("guile-sdl" ,guile-sdl) - ("guile-opengl" ,guile-opengl))) - (inputs - `(("guile" ,guile-2.2) - ("gsl" ,gsl) - ("freeimage" ,freeimage) - ("mesa" ,mesa))) - (synopsis "2D/3D game engine for GNU Guile") - (description "Sly is a 2D/3D game engine written in Guile Scheme. Sly -features a functional reactive programming interface and live coding -capabilities.") - (home-page "https://dthompson.us/projects/sly.html") - (license license:gpl3+))) - -(define-public g-wrap - (package - (name "g-wrap") - (version "1.9.15") - (source (origin - (method url-fetch) - (uri (string-append "mirror://savannah/g-wrap/g-wrap-" - version ".tar.gz")) - (sha256 - (base32 - "0ak0bha37dfpj9kmyw1r8fj8nva639aw5xr66wr5gd3l1rqf5xhg")))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config))) - (propagated-inputs - `(("guile" ,guile-2.2) - ("guile-lib" ,guile-lib))) - (inputs - `(("libffi" ,libffi))) - (arguments - `(#:configure-flags '("--disable-Werror") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'pre-configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* (find-files "." "^Makefile.in$") - (("guilemoduledir =.*guile/site" all) - (string-append all "/@GUILE_EFFECTIVE_VERSION@"))) - #t)))))) - (synopsis "Generate C bindings for Guile") - (description "G-Wrap is a tool and Guile library for generating function -wrappers for inter-language calls. It currently only supports generating Guile -wrappers for C functions. Given a definition of the types and prototypes for -a given C interface, G-Wrap will automatically generate the C code that -provides access to that interface and its types from the Scheme level.") - (home-page "https://www.nongnu.org/g-wrap/index.html") - (license license:lgpl2.1+))) - -(define-public guile-dbi - (package - (name "guile-dbi") - (version "2.1.6") - (source (origin - (method url-fetch) - (uri (string-append - "http://download.gna.org/guile-dbi/guile-dbi-" - version ".tar.gz")) - (sha256 - (base32 - "116njrprhgrsv1qm904sp3b02rq01fx639r433d657gyhw3x159n")))) - (build-system gnu-build-system) - (arguments - '(#:configure-flags - (list (string-append - "--with-guile-site-dir=" %output "/share/guile/site/2.2")) - #:make-flags - (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib:" - (assoc-ref %build-inputs "guile-dbd-sqlite3") "/lib")) - #:phases - (modify-phases %standard-phases - (add-after 'install 'patch-extension-path - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (dbi.scm (string-append - out "/share/guile/site/2.2/dbi/dbi.scm")) - (ext (string-append out "/lib/libguile-dbi"))) - (substitute* dbi.scm (("libguile-dbi") ext)) - #t)))))) - (inputs - `(("guile-dbd-sqlite3" ,guile-dbd-sqlite3))) ; only shared library, no scheme files - (propagated-inputs - `(("guile" ,guile-2.2))) - (synopsis "Guile database abstraction layer") - (home-page "http://home.gna.org/guile-dbi/guile-dbi.html") - (description - "guile-dbi is a library for Guile that provides a convenient interface to -SQL databases. Database programming with guile-dbi is generic in that the same -programming interface is presented regardless of which database system is used. -It currently supports MySQL, Postgres and SQLite3.") - (license license:gpl2+))) - -(define guile-dbi-bootstrap - (package - (inherit guile-dbi) - (name "guile-dbi-bootstrap") - (inputs '()) - (arguments - (substitute-keyword-arguments (package-arguments guile-dbi) - ((#:make-flags _) '(list)))))) - -(define-public guile-dbd-sqlite3 - (package - (name "guile-dbd-sqlite3") - (version "2.1.6") - (source (origin - (method url-fetch) - (uri (string-append - "http://download.gna.org/guile-dbi/guile-dbd-sqlite3-" - version ".tar.gz")) - (sha256 - (base32 - "0rg71jchxd2y8x496s8zmfmikr5g8zxi8zv2ar3f7a23pph92iw2")))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config) - ("guile-dbi-bootstrap" ,guile-dbi-bootstrap))) ; only required for headers - (inputs - `(("sqlite" ,sqlite) - ("zlib" ,(@ (gnu packages compression) zlib)))) - (synopsis "Guile DBI driver for SQLite") - (home-page "https://github.com/jkalbhenn/guile-dbd-sqlite3") - (description - "guile-dbi is a library for Guile that provides a convenient interface to -SQL databases. This package implements the interface for SQLite.") - (license license:gpl2+))) - -(define-public guile-dsv - (package - (name "guile-dsv") - (version "0.2.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/artyom-poptsov/guile-dsv") - (commit "bdc5267d007478abc20ea96d7c459b7dd9560b3d"))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1irw6mz8998nwyhzrw9g94jcz60b9zljgqfmipaz1ybn8579qjx0")))) - (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config) - ("texinfo" ,texinfo))) - (inputs `(("guile" ,guile-2.2))) - (propagated-inputs `(("guile-lib" ,guile-lib))) - (arguments - '(#:phases (modify-phases %standard-phases - (add-before 'configure 'set-guilesitedir - (lambda _ - (substitute* "Makefile.in" - (("^guilesitedir =.*$") - "guilesitedir = \ -$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) - (substitute* "modules/Makefile.in" - (("^guilesitedir =.*$") - "guilesitedir = \ -$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) - (substitute* "modules/dsv/Makefile.in" - (("^guilesitedir =.*$") - "guilesitedir = \ -$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) - #t))))) - (home-page "https://github.com/artyom-poptsov/guile-dsv") - (synopsis "DSV module for Guile") - (description - "Guile-DSV is a GNU Guile module for working with the -delimiter-separated values (DSV) data format. Guile-DSV supports the -Unix-style DSV format and RFC 4180 format.") - (license license:gpl3+))) - -(define-public guile-xosd - (package - (name "guile-xosd") - (version "0.2.1") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/alezost/" name - "/releases/download/v" version - "/" name "-" version ".tar.gz")) - (sha256 - (base32 - "1ri5065c16kmgrf2pysn2ymxjqi5302lhpb07wkl1jr75ym8fn8p")))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("guile" ,guile-2.2) - ("libx11" ,libx11) - ("libxext" ,libxext) - ("libxinerama" ,libxinerama) - ("xosd" ,xosd))) - (home-page "https://github.com/alezost/guile-xosd") - (synopsis "XOSD bindings for Guile") - (description - "Guile-XOSD provides Guile bindings for @code{libxosd}, -@uref{http://sourceforge.net/projects/libxosd/, the X On Screen Display -library}.") - (license license:gpl3+))) - -(define-public guile-daemon - (package - (name "guile-daemon") - (version "0.1.2") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/alezost/" name - "/releases/download/v" version - "/" name "-" version ".tar.gz")) - (sha256 - (base32 - "0hh6gq6b6phpxm0b1dkxyzj3f4sxdf7dji63609lzypa5v1ad2gv")))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("guile" ,guile-2.2))) - (home-page "https://github.com/alezost/guile-daemon") - (synopsis "Evaluate code in a running Guile process") - (description - "Guile-Daemon is a small Guile program that loads your initial -configuration file, and then reads and evaluates Guile expressions that -you send to a FIFO file.") - (license license:gpl3+))) - -(define-public guile-commonmark - (package - (name "guile-commonmark") - (version "0.1.1") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/OrangeShark/" name - "/releases/download/v" version - "/" name "-" version ".tar.gz")) - (sha256 - (base32 - "0kzclwkfijj8xka3g9kfj53y67c34ndfy84swdbw3j7y962ndxq6")) - (modules '((guix build utils))) - (snippet - ;; Install .scm files in the right place (see - ;; <https://github.com/OrangeShark/guile-commonmark/issues/12>.) - '(begin - (substitute* "Makefile.in" - (("^moddir = \\$\\(datadir\\)/share") - "moddir = $(datadir)")) - #t)))) - (build-system gnu-build-system) - (inputs - `(("guile" ,guile-2.2))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (synopsis "CommonMark parser for Guile") - (description - "guile-commonmark is a library for parsing CommonMark, a fully specified -variant of Markdown. The library is written in Guile Scheme and is designed -to transform a CommonMark document to SXML. guile-commonmark tries to closely -follow the @uref{http://commonmark.org/, CommonMark spec}, the main difference -is no support for parsing block and inline level HTML.") - (home-page "https://github.com/OrangeShark/guile-commonmark") - (license license:lgpl3+))) - -(define-public guile2.0-commonmark - (package-for-guile-2.0 guile-commonmark)) -(define-public guile2.2-commonmark - (deprecated-package "guile2.2-commonmark" guile-commonmark)) - (define-public guile-bytestructures (package (name "guile-bytestructures") @@ -1690,198 +601,10 @@ type system, elevating types to first-class status.") (define-public guile2.0-bytestructures (package-for-guile-2.0 guile-bytestructures)) -(define-public guile-aspell - (package - (name "guile-aspell") - (version "0.4") - (source (origin - (method url-fetch) - (uri (string-append - "http://lonelycactus.com/tarball/guile_aspell-" - version ".tar.gz")) - (sha256 - (base32 - "0vpk5xj9m9qc702z3khmkwhgpb949qbsyz8kw2qycda6qnxk0077")))) - (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-before 'configure 'set-guilesitedir - (lambda _ - (substitute* "Makefile.in" - (("^guilesitedir =.*$") - "guilesitedir = \ -$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")) - #t)) - (add-before 'build 'set-libaspell-file-name - (lambda* (#:key inputs #:allow-other-keys) - (let ((aspell (assoc-ref inputs "aspell"))) - (substitute* "aspell.scm" - (("\"libaspell\\.so\"") - (string-append "\"" aspell - "/lib/libaspell\""))) - #t)))))) - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("guile" ,guile-2.2) - ("aspell" ,aspell))) - (home-page "https://github.com/spk121/guile-aspell") - (synopsis "Spell-checking from Guile") - (description - "guile-aspell is a Guile Scheme library for comparing a string against a -dictionary and suggesting spelling corrections.") - (license license:gpl3+))) - -(define-public guile-bash - ;; This project is currently retired. It was initially announced here: - ;; <https://lists.gnu.org/archive/html/guile-user/2015-02/msg00003.html>. - (let ((commit "1eabc563ca5692b3e08d84f1f0e6fd2283284469") - (revision "0")) - (package - (name "guile-bash") - (version (string-append "0.1.6-" revision "." (string-take commit 7))) - (home-page - "https://anonscm.debian.org/cgit/users/kaction-guest/retired/dev.guile-bash.git") - (source (origin - (method git-fetch) - (uri (git-reference - (commit commit) - (url home-page))) - (sha256 - (base32 - "097vny990wp2qpjij6a5a5gwc6fxzg5wk56inhy18iki5v6pif1p")) - (file-name (string-append name "-" version "-checkout")))) - (build-system gnu-build-system) - (arguments - '(#:configure-flags - ;; Add -I to match 'bash.pc' of Bash 4.4. - (list (string-append "CPPFLAGS=-I" - (assoc-ref %build-inputs "bash:include") - "/include/bash/include") - - ;; The '.a' file is useless. - "--disable-static" - - ;; Install 'lib/bash' as Bash 4.4 expects. - (string-append "--libdir=" (assoc-ref %outputs "out") - "/lib/bash")))) - (native-inputs `(("pkg-config" ,pkg-config) - ("autoconf" ,autoconf-wrapper) - ("automake" ,automake) - ("libtool" ,libtool) - ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'. - ("gettext" ,gettext-minimal) - - ;; Bash with loadable module support, for the test - ;; suite. - ("bash-full" ,bash))) - (inputs `(("guile" ,guile-2.0) - ("bash:include" ,bash "include"))) - (synopsis "Extend Bash using Guile") - (description - "Guile-Bash provides a shared library and set of Guile modules, -allowing you to extend Bash in Scheme. Scheme interfaces allow you to access -the following aspects of Bash: - -@itemize -@item aliases; -@item setting and getting Bash variables; -@item creating dynamic variables; -@item creating Bash functions with a Scheme implementation; -@item reader macro for output capturing; -@item reader macro for evaluating raw Bash commands. -@end itemize - -To enable it, run: - -@example -enable -f ~/.guix-profile/lib/bash/libguile-bash.so scm -@end example - -and then run @command{scm example.scm}.") - (license license:gpl3+)))) - -(define-public guile-8sync - (package - (name "guile-8sync") - (version "0.4.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/8sync/8sync-" version - ".tar.gz")) - (sha256 - (base32 - "031wm13srak3wsnll7j2mbbi29g1pcm4swdb71ds9yn567pn20qw")))) - (build-system gnu-build-system) - (native-inputs `(("autoconf" ,autoconf) - ("automake" ,automake) - ("guile" ,guile-2.2) - ("pkg-config" ,pkg-config) - ("texinfo" ,texinfo))) - (arguments - `(#:phases (modify-phases %standard-phases - (add-before 'configure 'setenv - (lambda _ - ;; quiet warnings - (setenv "GUILE_AUTO_COMPILE" "0") - #t))))) - (home-page "https://gnu.org/s/8sync/") - (synopsis "Asynchronous actor model library for Guile") - (description - "GNU 8sync (pronounced \"eight-sync\") is an asynchronous programming -library for GNU Guile based on the actor model. - -Note that 8sync is only available for Guile 2.2.") - (license license:lgpl3+))) - -(define-public guile-fibers - (package - (name "guile-fibers") - (version "1.0.0") - (source (origin - (method url-fetch) - (uri (string-append "https://wingolog.org/pub/fibers/fibers-" - version ".tar.gz")) - (sha256 - (base32 - "0vjkg72ghgdgphzbjz9ig8al8271rq8974viknb2r1rg4lz92ld0")))) - (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'install 'mode-guile-objects - (lambda* (#:key outputs #:allow-other-keys) - ;; .go files are installed to "lib/guile/X.Y/cache". - ;; This phase moves them to "…/site-ccache". - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib/guile")) - (old (car (find-files lib "^ccache$" - #:directories? #t))) - (new (string-append (dirname old) - "/site-ccache"))) - (rename-file old new) - #t)))))) - (native-inputs - `(("texinfo" ,texinfo) - ("pkg-config" ,pkg-config))) - (inputs - `(("guile" ,guile-2.2))) - (synopsis "Lightweight concurrency facility for Guile") - (description - "Fibers is a Guile library that implements a a lightweight concurrency -facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber is -like a \"goroutine\" from the Go language: a lightweight thread-like -abstraction. Systems built with Fibers can scale up to millions of concurrent -fibers, tens of thousands of concurrent socket connections, and many parallel -cores. The Fibers library also provides Concurrent ML-like channels for -communication between fibers. - -Note that Fibers makes use of some Guile 2.1/2.2-specific features and -is not available for Guile 2.0.") - (home-page "https://github.com/wingo/fibers") - (license license:lgpl3+))) - (define-public guile-git (package (name "guile-git") - (version "0.1.0") + (version "0.2.0") (home-page "https://gitlab.com/guile-git/guile-git.git") (source (origin (method git-fetch) @@ -1889,7 +612,7 @@ is not available for Guile 2.0.") (commit (string-append "v" version)))) (sha256 (base32 - "1z3awa3i5il08dl2swbnli2j7cawdpray11zx4844j27bxqddcs2")) + "018hmfsh0rjwfvr4h7y10jc6k8a2k9xsirngghy3pjasin4nd2yz")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs @@ -1911,505 +634,5 @@ manipulate repositories of the Git version control system.") (define-public guile2.0-git (package-for-guile-2.0 guile-git)) -(define-public guile-syntax-highlight - (package - (name "guile-syntax-highlight") - (version "0.1") - (source (origin - (method url-fetch) - (uri (string-append "https://files.dthompson.us/" - "guile-syntax-highlight/" - "guile-syntax-highlight-" - version ".tar.gz")) - (sha256 - (base32 - "1p771kq15x83483m23bhah1sz6vkalg3drm7x279f4j1cxligkzi")))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("guile" ,guile-2.2))) - (synopsis "General-purpose syntax highlighter for GNU Guile") - (description "Guile-syntax-highlight is a general-purpose syntax -highlighting library for GNU Guile. It can parse code written in various -programming languages into a simple s-expression that can be converted to -HTML (via SXML) or any other format for rendering.") - (home-page "http://dthompson.us/projects/guile-syntax-highlight.html") - (license license:lgpl3+))) - -(define-public guile-sjson - (package - (name "guile-sjson") - (version "0.2.1") - (source (origin - (method url-fetch) - (uri (string-append "https://dustycloud.org/misc/sjson-" version - ".tar.gz")) - (sha256 - (base32 - "1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3")))) - (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config))) - (inputs - `(("guile" ,guile-2.2))) - (home-page "https://gitlab.com/dustyweb/guile-sjson") - (synopsis "S-expression based json reader/writer for Guile") - (description "guile-sjson is a json reader/writer for Guile. -It has a nice, simple s-expression based syntax.") - (license license:lgpl3+))) - -(define-public guile-colorized - (package - (name "guile-colorized") - (version "0.1") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/NalaGinrut/guile-colorized/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "16xhc3an6aglnca8xl3mvgi8hsqzqn68vsl5ga4bz8bvbap5fn4p")))) - (build-system guile-build-system) - (native-inputs - `(("guile" ,guile-2.2))) - (home-page "https://github.com/NalaGinrut/guile-colorized") - (synopsis "Colorized REPL for Guile") - (description - "Guile-colorized provides you with a colorized REPL for GNU Guile.") - (license license:gpl3+))) - -(define-public guile-pfds - (package - (name "guile-pfds") - (version "0.3") - (home-page "https://github.com/ijp/pfds") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (sha256 - (base32 - "19y33wg94pf0n98dkfqd1zbw93fgky4sawxsxl6s3vyqwl0yi5vh")) - (file-name (string-append name "-" version "-checkout")))) - (build-system guile-build-system) - (arguments - '(#:source-directory "src" - #:phases (modify-phases %standard-phases - (add-after 'unpack 'move-files-around - (lambda _ - ;; Move files under a pfds/ directory to reflect the - ;; module hierarchy. - (mkdir-p "src/pfds") - (for-each (lambda (file) - (rename-file file - (string-append "src/pfds/" - file))) - '("bbtrees.sls" - "deques" - "deques.sls" - "dlists.sls" - "fingertrees.sls" - "hamts.sls" - "heaps.sls" - "private" - "psqs.sls" - "queues" - "queues.sls" - "sequences.sls" - "sets.sls")) - - ;; In Guile <= 2.2.4, there's no way to tell 'guild - ;; compile' to accept the ".sls" extension. So... - (for-each (lambda (file) - (rename-file file - (string-append - (string-drop-right file 4) - ".scm"))) - (find-files "." "\\.sls$")) - #t))))) - (native-inputs - `(("guile" ,guile-2.2))) - (synopsis "Purely functional data structures for Guile") - (description - "This package provides purely functional data structures written in R6RS -Scheme and compiled for Guile. It has been tested with Racket, Guile 2, -Vicare Scheme and IronScheme. Right now it contains: - -@itemize -@item queues -@item deques -@item bbtrees -@item sets -@item dlists -@item priority search queues (PSQs) -@item finger trees -@item sequences -@item heaps -@item hash array mapped tries (HAMTs). -@end itemize\n") - (license license:bsd-3))) - -(define-public guile-aa-tree - (package - (name "guile-aa-tree") - (version "3.1.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://savannah/guile-aa-tree/guile-aa-tree-" - version ".tar.gz")) - (sha256 - (base32 - "0044c105r3q9vpl17pv3phl1b79kjm1llhkakqgiasixyav01blh")))) - (build-system guile-build-system) - (native-inputs `(("guile" ,guile-2.2))) - ;; https://savannah.nongnu.org/projects/guile-aa-tree - (home-page "https://qlfiles.net/guile-aa-tree/") - (synopsis "AA tree data structure for Guile") - (description - "This package provides an implementation of @dfn{AA trees}, a -self-balancing binary tree data structure, for Guile. It ensure @math{O(log -n)} worst case performance for core operations. The module provides -non-mutating insert, delete, and search operations, with support for -convenient nested tree operations.") - (license license:gpl3+))) - -(define-public guile-simple-zmq - (let ((commit "68bedb6679716214fb9d3472da57544526f7a618") - (revision "3")) - (package - (name "guile-simple-zmq") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jerry40/guile-simple-zmq") - (commit commit))) - (sha256 - (base32 - "1ad3xg69qqviy1f6dnlw0ysmfdbmp1jq65rfqb8nfd8dsrq2syli")) - (file-name (git-file-name name version)))) - (build-system guile-build-system) - (arguments - `(#:source-directory "src" - #:phases (modify-phases %standard-phases - (add-after 'unpack 'set-libzmq-file-name - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "src/simple-zmq.scm" - (("\\(dynamic-link \"libzmq\"\\)") - (format #f "(dynamic-link \"~a/lib/libzmq.so\")" - (assoc-ref inputs "zeromq")))) - #t))))) - (native-inputs - `(("guile" ,guile-2.2))) - (inputs - `(("zeromq" ,zeromq))) - (home-page "https://github.com/jerry40/guile-simple-zmq") - (synopsis "Guile wrapper over ZeroMQ library") - (description - "This package provides a Guile programming interface to the ZeroMQ -messaging library.") - (license license:gpl3+)))) - -(define-public jupyter-guile-kernel - (let ((commit "a7db9245a886e104138474df46c3e88b95cff629") - (revision "1")) - (package - (name "jupyter-guile-kernel") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jerry40/guile-kernel") - (commit commit))) - (sha256 - (base32 - "0aj04853bqm47ivfcmrgpb7w3wkis847kc7qrwsa5zcn9h38qh2f")))) - (build-system guile-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'set-openssl-file-name - (lambda* (#:key inputs #:allow-other-keys) - ;; Record the absolute file name of the 'openssl' - ;; command. - (substitute* "src/hmac.scm" - (("openssl") - (string-append (assoc-ref inputs "openssl") - "/bin/openssl"))) - #t)) - - ;; XXX: The code uses 'include' to include its own source - ;; files, and "-L src" isn't enough in this case. - (add-before 'build 'chdir - (lambda _ (chdir "src") #t)) - (add-after 'build 'chdir-back - (lambda _ (chdir "..") #t)) - - (add-after 'install 'install-kernel - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (json (assoc-ref inputs "guile-json")) - (zmq (assoc-ref inputs "guile-simple-zmq")) - (deps (list json zmq)) - (dir (string-append - out "/share/jupyter/kernels/guile")) - (effective (target-guile-effective-version))) - ;; Install kernel. - (install-file "src/kernel.json" dir) - - ;; Fix hard-coded file name in the kernel. - (substitute* (string-append dir "/kernel.json") - (("/home/.*/guile-jupyter-kernel.scm") - (string-append out "/share/guile/site/" - (target-guile-effective-version) - "/guile-jupyter-kernel.scm")) - (("\"guile\"") - (string-append "\"" (assoc-ref inputs "guile") - "/bin/guile\"")) - (("-s") - ;; Add '-L' and '-C' flags so that the kernel - ;; finds its dependencies. - (let ((-L (map (lambda (item) - (string-append "\"" item - "/share/guile/site/" - effective "\"")) - deps)) - (-C (map (lambda (item) - (string-append "\"" item - "/lib/guile/" - effective - "/site-ccache\"")) - deps))) - (string-append "--no-auto-compile\"" - (string-join -L ", \"-L\", " - 'prefix) - (string-join -C ", \"-C\", " - 'prefix) - ", \"-s")))) - #t)))))) - (inputs - `(("openssl" ,openssl) - ("guile" ,guile-2.2) - ("guile-json" ,guile-json) - ("guile-simple-zmq" ,guile-simple-zmq))) - (synopsis "Guile kernel for the Jupyter Notebook") - (description - "This package provides a Guile 2.x kernel for the Jupyter Notebook. It -allows users to interact with the Guile REPL through Jupyter.") - (home-page "https://github.com/jerry40/guile-kernel") - (license license:gpl3+)))) - -(define-public guile-sparql - (package - (name "guile-sparql") - (version "0.0.7") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/roelj/guile-sparql/releases/download/" - version "/guile-sparql-" version ".tar.gz")) - (sha256 - (base32 "1drnvhsgl0gc5crmb16yyw1j98nkhwwcgssv9vgm36ng43nnzffd")))) - (build-system gnu-build-system) - (arguments `(#:tests? #f)) ; There are no tests. - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("guile" ,guile-2.2))) - (home-page "https://github.com/roelj/guile-sparql") - (synopsis "SPARQL module for Guile") - (description "This package provides the functionality to query a SPARQL -endpoint. Additionally, it provides an interface to write SPARQL queries -using S-expressions.") - (license license:gpl3+))) - -(define-public guile-debbugs - (package - (name "guile-debbugs") - (version "0.0.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/guile-debbugs/guile-debbugs-" - version ".tar.gz")) - (sha256 - (base32 - "16l8910p57im6s3j93xhdaqvgfy6ms5n97177mrch3y961z5hy0i")) - (modules '((guix build utils))) - (snippet - '(substitute* "Makefile.in" - (("^godir = (.*)/ccache" _ prefix) - (string-append "godir = " prefix "/site-ccache")))))) - (build-system gnu-build-system) - (native-inputs - `(("guile" ,guile-2.2) - ("pkg-config" ,pkg-config))) - (home-page "https://savannah.gnu.org/projects/guile-debbugs/") - (synopsis "Guile interface to the Debbugs bug tracking service") - (description - "This package provides a Guile library to communicate with a Debbugs bug -tracker's SOAP service, such as @url{https://bugs.gnu.org}.") - (license license:gpl3+))) - -(define-public guile-email - (let ((commit "fa52eac55e5946db89621a6c583d2aa357864dee") - (revision "1")) - (package - (name "guile-email") - (version (git-version "0.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.systemreboot.net/guile-email") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1037mbz7qd9bzaqp8ysyhnl9ipd97fmj3b9jr8qfzx9179vvsj63")))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config) - ("autoconf" ,autoconf) - ("automake" ,automake))) - (inputs - `(("guile" ,guile-2.2))) - (home-page "https://git.systemreboot.net/guile-email") - (synopsis "Guile email parser") - (description "This package provides an email parser written in pure -Guile.") - (license license:agpl3+)))) - -(define-public guile-debbugs-next - (let ((commit "75a331d561c8b6f8efcf16216dab961c17759efe") - (revision "1")) - (package (inherit guile-debbugs) - (name "guile-debbugs") - (version (git-version "0.0.3" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.savannah.gnu.org/git/guile-debbugs.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0br3mgbw41bpc9x57jlghl0i8dz9nl63r4wzs5l47aqszf84870y")))) - (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("texinfo" ,texinfo))) - (inputs - `(("guile" ,guile-2.2) - ("guile-email" ,guile-email)))))) - -;; There has not been any release yet. -(define-public guile-newt - (let ((commit "80c1e9e71945f833386d1632b52573e59325804f") - (revision "4")) - (package - (name "guile-newt") - (version (string-append "0-" revision "." (string-take commit 9))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/mothacehe/guile-newt") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1w7qy4dw1f4bx622l6hw8mv49sf1ha8kch8j4nganyk8fj0wn695")))) - (build-system gnu-build-system) - (arguments - '(#:make-flags - '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings - (inputs - `(("guile" ,guile-2.2) - ("newt" ,newt))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config))) - (synopsis "Guile bindings to Newt") - (description - "This package provides bindings for Newt, a programming library for -color text mode, widget based user interfaces. The bindings are written in pure -Scheme by using Guile’s foreign function interface.") - (home-page "https://gitlab.com/mothacehe/guile-newt") - (license license:gpl3+)))) - -(define-public guile-mastodon - (package - (name "guile-mastodon") - (version "0.0.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://framagit.org/prouby/guile-mastodon.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1vblf3d1bbwna3l09p2ap5y8ycvl549bz6whgk78imyfmn28ygry")))) - (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config))) - (inputs - `(("guile" ,guile-2.2) - ("gnutls" ,gnutls) - ("guile-json" ,guile-json))) - (home-page "https://framagit.org/prouby/guile-mastodon") - (synopsis "Guile Mastodon REST API module") - (description "This package provides Guile modules to access the -@uref{https://docs.joinmastodon.org/api/, REST API of Mastodon}, a federated -microblogging service.") - (license license:gpl3+))) - -;; There has not been any release yet. -(define-public guile-parted - (let ((commit "ea3f1a1f6844775fc59d3078d2a09c62ffb341b8") - (revision "0")) - (package - (name "guile-parted") - (version (string-append "0-" revision "." (string-take commit 9))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/mothacehe/guile-parted") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1q7425gpjlwi2wvhzq7kw046yyx7v6j6jyzkd1cr861iz34mjwiq")))) - (build-system gnu-build-system) - (arguments - '(#:make-flags - '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings - (inputs - `(("guile" ,guile-2.2) - ("parted" ,parted))) - (propagated-inputs - `(("guile-bytestructures" ,guile-bytestructures))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config))) - (synopsis "Guile bindings to GNU Parted") - (description - "This package provides bindings for GNU Parted library, a C library -allowing disk partition tables creation and manipulation. The bindings are -written in pure Scheme by using Guile's foreign function interface.") - (home-page "https://gitlab.com/mothacehe/guile-parted") - (license license:gpl3+)))) - ;;; guile.scm ends here diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 673c472a85..233fea85af 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -155,15 +155,15 @@ of external libraries that provide additional functionality.") (define-public vtk (package (name "vtk") - (version "7.1.0") + (version "8.2.0") (source (origin (method url-fetch) - (uri (string-append "http://www.vtk.org/files/release/" + (uri (string-append "https://vtk.org/files/release/" (version-major+minor version) "/VTK-" version ".tar.gz")) (sha256 (base32 - "0yj96z58haan77gzilnqp7xpf8hg5jk11a3jx55p2ksd400s0gjz")))) + "1fspgp8k0myr6p2a6wkc21ldcswb4bvmb484m12mxgk1a9vxrhrl")))) (build-system cmake-build-system) (arguments '(#:build-type "Release" ;Build without '-g' to save space. @@ -196,7 +196,7 @@ of external libraries that provide additional functionality.") ("png" ,libpng) ("tiff" ,libtiff) ("zlib" ,zlib))) - (home-page "http://www.vtk.org/") + (home-page "https://vtk.org/") (synopsis "Libraries for 3D computer graphics") (description "The Visualization Toolkit (VTK) is a C++ library for 3D computer graphics, diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index c27147baef..6457127520 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -957,7 +957,7 @@ language bindings to VIGRA.") (define-public libwebp (package (name "libwebp") - (version "1.0.1") + (version "1.0.2") (source (origin ;; No tarballs are provided for >0.6.1. @@ -968,7 +968,7 @@ language bindings to VIGRA.") (file-name (git-file-name name version)) (sha256 (base32 - "09l4pq4k2acglkmwr96arn79rssl54sv7vrdrgsxqlg7v8c882zh")))) + "1ay0sai7f74dyk2gi975qfllmq534vnsx456npf16583mqb6ib2q")))) (build-system gnu-build-system) (inputs `(("freeglut" ,freeglut) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 163c296278..a314dc9953 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1860,6 +1860,231 @@ new Date();")) ("which" ,which) ("zip" ,zip))))) +(define-public openjdk11 + (package + (name "openjdk") + (version "11.28") + (source (origin + (method url-fetch) + (uri "http://hg.openjdk.java.net/jdk/jdk/archive/76072a077ee1.tar.bz2") + (file-name (string-append name "-" version ".tar.bz2")) + (sha256 + (base32 + "0v705w1s9lrqalzahir78pk397rkk9gfvzq821yv8h3xha0bqi6w")) + (modules '((guix build utils))) + (snippet + `(begin + (for-each delete-file (find-files "." ".*.bin$")) + (for-each delete-file (find-files "." ".*.exe$")) + (for-each delete-file (find-files "." ".*.jar$")) + #t)))) + (build-system gnu-build-system) + (outputs '("out" "jdk" "doc")) + (arguments + `(#:imported-modules + ((guix build syscalls) + (ice-9 binary-ports) + (rnrs bytevectors) + ,@%gnu-build-system-modules) + #:tests? #f; requires jtreg + ;; TODO package jtreg + ;; disable parallel builds, as the openjdk build system does not like -j + #:parallel-build? #f + #:parallel-tests? #f + ;; reenable parallel builds and tests by adding the flags manually + #:make-flags (list (string-append "JOBS=" (number->string (parallel-job-count)))) + #:configure-flags + `("--disable-option-checking" ; --enable-fast-install default flag errors otherwise + "--disable-warnings-as-errors" + ;; make validate-runpath pass, see: http://issues.guix.info/issue/32894 + "--with-native-debug-symbols=zipped" + ;; do not use the bundled libraries + "--with-giflib=system" + "--with-lcms=system" + "--with-libjpeg=system" + "--with-libpng=system" + ;; allow the build system to locate the system freetype + ,(string-append "--with-freetype-include=" + (assoc-ref %build-inputs "freetype") "/include") + ,(string-append "--with-freetype-lib=" + (assoc-ref %build-inputs "freetype") "/lib")) + ;; TODO + #:phases + (modify-phases %standard-phases + (add-after 'patch-source-shebangs 'fix-java-shebangs + (lambda _ + ;; This file was "fixed" by patch-source-shebangs, but it requires + ;; this exact first line. + (substitute* "make/data/blacklistedcertsconverter/blacklisted.certs.pem" + (("^#!.*") "#! java BlacklistedCertsConverter SHA-256\n")) + #t)) + (replace 'build + (lambda _ + (with-output-to-file ".src-rev" + (lambda _ + (display ,version))) + (setenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES" "yes") + (invoke "make" "all") + #t)) + ;; jdk 11 does not build jre by default any more + ;; building it anyways + ;; for further information see: + ;; https://github.com/AdoptOpenJDK/openjdk-build/issues/356 + (add-after 'build 'build-jre + (lambda _ + (invoke "make" "legacy-jre-image") + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (jdk (assoc-ref outputs "jdk")) + (doc (assoc-ref outputs "doc")) + (images (car (find-files "build" ".*-server-release" + #:directories? #t)))) + (copy-recursively (string-append images "/images/jdk") jdk) + (copy-recursively (string-append images "/images/jre") out) + (copy-recursively (string-append images "/images/docs") doc)) + #t)) + ;; Some of the libraries in the lib/ 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/ 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-out (string-append (assoc-ref outputs "out") + "/lib")) + (lib-jdk (string-append (assoc-ref outputs "jdk") + "/lib"))) + (symlink (string-append lib-jdk "/server/libjvm.so") + (string-append lib-jdk "/libjvm.so")) + (symlink (string-append lib-out "/server/libjvm.so") + (string-append lib-out "/libjvm.so"))) + #t)) + (add-after 'install 'strip-character-data-timestamps + (lambda* (#:key outputs #:allow-other-keys) + (use-modules (guix build syscalls)) + (let ((archive (string-append + (assoc-ref outputs "jdk") "/lib/src.zip")) + (dir (mkdtemp! "zip-contents.XXXXXX"))) + (with-directory-excursion dir + (invoke "unzip" archive)) + (delete-file archive) + (with-directory-excursion dir + (let ((char-data-files (find-files "." "CharacterData.*"))) + (for-each (lambda (file) + (substitute* file + (((string-append "This file was generated " + "AUTOMATICALLY from a template " + "file.*")) + (string-append "This file was generated " + "AUTOMATICALLY from a template " + "file")))) + char-data-files))) + (with-directory-excursion dir + (let ((files (find-files "." ".*" #:directories? #t))) + (apply invoke "zip" "-0" "-X" archive files)))))) + (add-after 'strip-character-data-timestamps 'strip-archive-timestamps + (lambda* (#:key outputs #:allow-other-keys) + (use-modules (guix build syscalls) + (ice-9 binary-ports) + (rnrs bytevectors)) + (letrec ((repack-archive + (lambda (archive) + (let ((dir (mkdtemp! "zip-contents.XXXXXX"))) + (with-directory-excursion dir + (invoke "unzip" archive)) + (delete-file archive) + (for-each (compose repack-archive canonicalize-path) + (find-files dir "(ct.sym|.*.jar)$")) + (let ((reset-file-timestamp + (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (format #t "reset ~a~%" file) + (utime file 0 0 0 0)))))) + (for-each reset-file-timestamp + (find-files dir #:directories? #t))) + (with-directory-excursion dir + (let ((files (find-files "." ".*" #:directories? #t))) + (apply invoke "zip" "-0" "-X" archive files))))))) + (for-each repack-archive + (find-files (assoc-ref outputs "doc") ".*.zip$")) + (for-each repack-archive + (find-files (assoc-ref outputs "jdk") + ".*.(zip|jar|diz)$")) + (repack-archive (string-append (assoc-ref outputs "jdk") "/lib/ct.sym")) + (let ((repack-jmod + (lambda (file-name) + (call-with-input-file file-name + (lambda (file) + (let ((header #vu8(#x4a #x4d #x01 #x00))) + (if (equal? (get-bytevector-n + file (bytevector-length header)) + header) + (let* ((header-length (bytevector-length header)) + (temp-file (mkstemp! + (string-copy + "temp-file.XXXXXX"))) + (temp-filename (port-filename temp-file)) + (content-length + (- (stat:size (stat file)) + header-length))) + (sendfile temp-file file content-length header-length) + (delete-file file-name) + (close-port temp-file) + (repack-archive (canonicalize-path temp-filename)) + (call-with-output-file file-name + (lambda (file) + (put-bytevector file header) + (call-with-input-file temp-filename + (lambda (temp-file) + (sendfile + file temp-file + (stat:size (stat temp-file)) 0))))))))))))) + (for-each repack-jmod + (find-files (assoc-ref outputs "jdk") ".*.jmod$"))) + #t))) + (add-after 'install 'remove-timestamp-from-api-summary + (lambda* (#:key outputs #:allow-other-keys) + (substitute* (string-append (assoc-ref outputs "doc") + "/api/overview-summary.html") + (("Generated by javadoc \\(11-internal\\).*$") + "Generated by javadoc (11-internal) -->\n")) + #t))))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("cups" ,cups) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("giflib" ,giflib) + ("lcms" ,lcms) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxrender" ,libxrender) + ("libxt" ,libxt) + ("libxtst" ,libxtst))) + (native-inputs + `(("autoconf" ,autoconf) + ("openjdk10" ,openjdk10) + ("openjdk10:jdk" ,openjdk10 "jdk") + ("pkg-config" ,pkg-config) + ("unzip" ,unzip) + ("which" ,which) + ("zip" ,zip))) + (home-page "https://openjdk.java.net/projects/jdk/11/") + (synopsis "Java development kit") + (description + "This package provides the Java development kit OpenJDK.") + (license license:gpl2+))) + (define-public icedtea icedtea-8) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 3865bc1b2e..5068de22bb 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -573,11 +573,14 @@ propagate their changes to their respective configuration files.") (modify-phases %standard-phases (add-before 'check 'blacklist-failing-test (lambda _ - ;; Blacklist a failing test-function. FIXME: Make it pass. - ;; Test failure caused by stout/stderr being interleaved. + ;; Blacklist failing tests. (with-output-to-file "autotests/BLACKLIST" (lambda _ - (display "[test_channels]\n*\n"))) + ;; FIXME: Make it pass. Test failure caused by stout/stderr + ;; being interleaved. + (display "[test_channels]\n*\n") + ;; This fails with ENOSPC because of too many inotify watches. + (display "[benchNotifyWatcher]\n*\n"))) #t)) ;; See upstream commit ee424e9b62368485bba4193053cabb553a1d268e (add-after 'unpack 'fix-broken-test @@ -636,7 +639,7 @@ many more.") (replace 'check (lambda _ (setenv "DBUS_FATAL_WARNINGS" "0") - (zero? (system* "dbus-launch" "ctest" "."))))))) + (invoke "dbus-launch" "ctest" ".")))))) (home-page "https://community.kde.org/Frameworks") (synopsis "Convenience classes for DBus") (description "KDBusAddons provides convenience classes on top of QtDBus, @@ -1175,7 +1178,7 @@ lower level classes for interaction with the X Windowing System.") (replace 'check (lambda _ (setenv "DBUS_FATAL_WARNINGS" "0") - (zero? (system* "dbus-launch" "ctest" "."))))))) + (invoke "dbus-launch" "ctest" ".")))))) (home-page "https://community.kde.org/Frameworks") (synopsis "Qt wrapper for ModemManager DBus API") (description "ModemManagerQt provides access to all ModemManager features @@ -1214,7 +1217,7 @@ messages.") (replace 'check (lambda _ (setenv "DBUS_FATAL_WARNINGS" "0") - (zero? (system* "dbus-launch" "ctest" "."))))))) + (invoke "dbus-launch" "ctest" ".")))))) (home-page "https://community.kde.org/Frameworks") (synopsis "Qt wrapper for NetworkManager DBus API") (description "NetworkManagerQt provides access to all NetworkManager @@ -1327,7 +1330,7 @@ feel.") (replace 'check (lambda _ (setenv "DBUS_FATAL_WARNINGS" "0") - (zero? (system* "dbus-launch" "ctest" "."))))))) + (invoke "dbus-launch" "ctest" ".")))))) (native-inputs `(("bison" ,bison) ("dbus" ,dbus) @@ -1497,7 +1500,7 @@ with other frameworks.") (replace 'check (lambda _ (setenv "DBUS_FATAL_WARNINGS" "0") - (zero? (system* "dbus-launch" "ctest" "."))))))) + (invoke "dbus-launch" "ctest" ".")))))) (home-page "https://community.kde.org/Frameworks") (synopsis "Execute actions as privileged user") (description "KAuth provides a convenient, system-integrated way to offload @@ -1806,7 +1809,7 @@ asynchronous jobs.") (replace 'check (lambda _ (setenv "DBUS_FATAL_WARNINGS" "0") - (zero? (system* "dbus-launch" "ctest" "."))))))) + (invoke "dbus-launch" "ctest" ".")))))) (home-page "https://community.kde.org/Frameworks") (synopsis "Desktop notifications") (description "KNotification is used to notify the user of an event. It @@ -2011,7 +2014,7 @@ gallons).") (replace 'check (lambda _ (setenv "DBUS_FATAL_WARNINGS" "0") - (zero? (system* "dbus-launch" "ctest" "."))))))) + (invoke "dbus-launch" "ctest" ".")))))) (home-page "https://community.kde.org/Frameworks") (synopsis "File searching and indexing") (description "Baloo provides file searching and indexing. It does so by @@ -3534,8 +3537,8 @@ workspace.") (lambda _ (display "[testSmb]\n*\n"))) ;; kuniqueapptest hangs. FIXME: Make this test pass. - (zero? (system* "dbus-launch" "ctest" "." - "-E" "kstandarddirstest|kuniqueapptest"))))))) + (invoke "dbus-launch" "ctest" "." + "-E" "kstandarddirstest|kuniqueapptest")))))) (home-page "https://community.kde.org/Frameworks") (synopsis "KDE Frameworks 5 porting aid from KDELibs4") (description "This framework provides code and utilities to ease the diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 24144797b8..5946ba0b52 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -318,7 +318,7 @@ plugins, as well as code to create plugins, or complete applications.") (define-public krita (package (name "krita") - (version "4.1.5") + (version "4.1.7.101") (source (origin (method url-fetch) (uri (string-append @@ -327,7 +327,7 @@ plugins, as well as code to create plugins, or complete applications.") "/" name "-" version ".tar.gz")) (sha256 (base32 - "1by8p8ifdp03f05bhg8ygdd1j036anfpjjnzbx63l2fbmy9k6q10")))) + "0pvghb17vj3y19wa1n1zfg3yl5206ir3y45znrgdgdw076m5pjav")))) (build-system cmake-build-system) (arguments `(#:tests? #f @@ -571,7 +571,7 @@ basic needs and easy to configure for those who want special setups.") (replace 'check (lambda _ ;; TODO: Fix this failing test-case - (zero? (system* "ctest" "-E" "processtest"))))))) + (invoke "ctest" "-E" "processtest")))))) (home-page "https://www.kde.org/info/plasma-5.13.4.php") (synopsis "Network enabled task and system monitoring") (description "KSysGuard can obtain information on system load and diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7a7bb9cf0c..78bfadca26 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -413,8 +413,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." It has been modified to remove all non-free binary blobs.") (license license:gpl2))) -(define %linux-libre-version "4.20.4") -(define %linux-libre-hash "1p7ixkqvnr0mzyivyby8hfix44np7w1nvyxghz8wa1h2nhsszvzv") +(define %linux-libre-version "4.20.5") +(define %linux-libre-hash "1fis4izy97d35wb5626av235agn22ww8dfmmcdlbiay37ihwwm98") (define %linux-libre-4.20-patches (list %boot-logo-patch @@ -427,8 +427,8 @@ It has been modified to remove all non-free binary blobs.") #:patches %linux-libre-4.20-patches #:configuration-file kernel-config)) -(define %linux-libre-4.19-version "4.19.17") -(define %linux-libre-4.19-hash "0friqd9wyhddjli4m41wd994ygnwng40a95ry14478rkadfv7iwh") +(define %linux-libre-4.19-version "4.19.18") +(define %linux-libre-4.19-hash "1m3qbd09zd7llq0fjsccyjr070n6szl5dj10qrlpd54bnvry22fc") (define %linux-libre-4.19-patches (list %boot-logo-patch @@ -441,8 +441,8 @@ It has been modified to remove all non-free binary blobs.") #:patches %linux-libre-4.19-patches #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.95") -(define %linux-libre-4.14-hash "07bxbwb5fan96aws6g91vxkrvl80a53wjbl8xkh4q3c6iah8wkvf") +(define %linux-libre-4.14-version "4.14.96") +(define %linux-libre-4.14-hash "03g28n9n4ci8y2qs59vili7dkqag7fmhr9q6ah8l66qn37d375k9") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version @@ -451,14 +451,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.152" - "0qssksykzbcy58aqvmxk9h1xpaqvfwp31xvxfmwxdh7z4n3yn60y" + (make-linux-libre "4.9.153" + "1ks910wk4nggp7ygai2pnr5b61ix2j3gxk95rv9wkd5za15sgbqa" '("x86_64-linux" "i686-linux") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.171" - "01jd2672fq633xw5vdmifvd6dy93pif28xkvymah82jm9xj1lbqh" + (make-linux-libre "4.4.172" + "000bz3jfg0li3rwlf2c80df6682lhi59hj1kwm4hw7whgg69xi7b" '("x86_64-linux" "i686-linux") #:configuration-file kernel-config)) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index a435ab661e..13223fbb66 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2016, 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> @@ -400,7 +400,8 @@ code analysis tools.") (clang-runtime-from-llvm llvm-3.5 "1hsdnzzdr5kglz6fnv3lcsjs222zjsy14y8ax9dy6zqysanplbal" - '("clang-runtime-asan-build-fixes.patch"))) + '("clang-runtime-asan-build-fixes.patch" + "clang-3.5-libsanitizer-ustat-fix.patch"))) (define-public clang-3.5 (clang-from-llvm llvm-3.5 clang-runtime-3.5 diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 5777374582..c5e422fbd5 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -27,6 +27,7 @@ ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> +;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -76,6 +77,7 @@ #:use-module (gnu packages gsasl) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages guile-xyz) #:use-module (gnu packages flex) #:use-module (gnu packages kerberos) #:use-module (gnu packages libcanberra) @@ -259,14 +261,14 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "1.11.0") + (version "1.11.2") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/" "mutt-" version ".tar.gz")) (sha256 (base32 - "1qqhkhlzvjj0iih8vm0wfagv4fzqqy1wnsb4sqsfv7w06ccjdjcj")) + "08w7lbhj5ba2zkjcd0cxkgfiy9y82yhg731xjg9i9292kz1x8p6s")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs @@ -1071,7 +1073,7 @@ which can add many functionalities to the base client.") (define-public msmtp (package (name "msmtp") - (version "1.8.1") + (version "1.8.2") (source (origin (method url-fetch) @@ -1079,7 +1081,7 @@ which can add many functionalities to the base client.") "/msmtp-" version ".tar.xz")) (sha256 (base32 - "1nm4vizrnrrnknc4mc8nr7grz9q76m1vraa0hsl5rfm34gnsg8ph")))) + "14w7lmw1jxlganfk089b0ib23y5917mxbg3xqpid007dd4cmq66i")))) (build-system gnu-build-system) (inputs `(("libsecret" ,libsecret) @@ -2651,8 +2653,8 @@ replacement for the @code{urlview} program.") (license gpl2+))) (define-public mumi - (let ((commit "bfd96ce76b4600ae232e6548b26c9365095fd174") - (revision "2")) + (let ((commit "ea5a738010148284aed211da953ad670003aefea") + (revision "3")) (package (name "mumi") (version (git-version "0.0.0" revision commit)) @@ -2664,7 +2666,7 @@ replacement for the @code{urlview} program.") (file-name (git-file-name name version)) (sha256 (base32 - "05miwfi1bh0v9x2gvn15bwkb3gn4xy53z506ysjzns2y497zkc5h")))) + "0ci5x8dqjmp74w33q2dbs5csxp4ilfmc1xxaa8q2jnh52d7597hl")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index fbc5ca27ef..7a81caf19f 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> +;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. @@ -241,7 +241,7 @@ automatically.") (define-public scdoc (package (name "scdoc") - (version "1.6.0") + (version "1.8.1") (source (origin (method url-fetch) @@ -250,7 +250,7 @@ automatically.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1ca3js4arkg28gg2iszxxyrq7kgsrz482d1szv5dfd471h3vr5m3")))) + "1f3qrnbjr9ikbdvpsyx726nyiz4f7ka38rimy9fvbl7kmi62w1v7")))) (build-system gnu-build-system) (arguments `(#:make-flags '("CC=gcc") diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index cccc3636a4..871b4a5a3f 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -48,6 +48,7 @@ (define-module (gnu packages maths) #:use-module (ice-9 regex) + #:use-module (ice-9 match) #:use-module (gnu packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -2297,20 +2298,18 @@ also provides threshold-based ILU factorization preconditioners.") (define-public superlu-dist (package (name "superlu-dist") - (version "5.3.0") + (version "6.1.0") (source (origin (method url-fetch) (uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/" "superlu_dist_" version ".tar.gz")) (sha256 - (base32 "0ja5ihqivkda1wd58y4lmzvmwssm9g91f70c5q0fzwhng6580h6y")) + (base32 "0pqgcgh1yxhfzs99fas3mggajzd5wca3nbyp878rziy74gfk03dl")) (modules '((guix build utils))) (snippet ;; Replace the non-free implementation of MC64 with a stub '(begin - (use-modules (ice-9 regex) - (ice-9 rdelim)) (call-with-output-file "SRC/mc64ad_dist.c" (lambda (port) (display " @@ -2326,92 +2325,57 @@ void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g, abort (); }\n" port))) (substitute* "SRC/util.c" ;adjust default algorithm - (("RowPerm[[:blank:]]*=[[:blank:]]*LargeDiag") - "RowPerm = NOROWPERM")) + (("RowPerm[[:blank:]]*=[[:blank:]]*LargeDiag_MC64;") + ;; TODO: set to "LargeDiag_AWPM" once combinatorial-blas has + ;; general (i.e. non-square) processor-grid support. + "RowPerm = NOROWPERM;")) #t)) - (patches (search-patches "superlu-dist-scotchmetis.patch")))) - (build-system gnu-build-system) + (patches (search-patches "superlu-dist-scotchmetis.patch" + "superlu-dist-awpm-grid.patch")))) + (build-system cmake-build-system) (native-inputs `(("tcsh" ,tcsh))) (inputs - `(("gfortran" ,gfortran))) + `(("gfortran" ,gfortran) + ("blas" ,openblas) + ("lapack" ,lapack) + ("combblas" ,combinatorial-blas))) (propagated-inputs - `(("openmpi" ,openmpi) ;headers include MPI heades - ("lapack" ,lapack) ;required to link with output library - ("pt-scotch" ,pt-scotch))) ;same + `(("mpi" ,openmpi) ;headers include MPI heades + ("parmetis" ,pt-scotch32 "metis") + ("pt-scotch" ,pt-scotch32))) (arguments - `(#:parallel-build? #f ;race conditions using ar + `(#:parallel-tests? #f ;tests use MPI and OpenMP + #:configure-flags (list "-DBUILD_SHARED_LIBS:BOOL=YES" + "-DTPL_ENABLE_COMBBLASLIB=YES" + "-DTPL_BLAS_LIBRARIES=-lopenblas" + "-DTPL_LAPACK_LIBRARIES=-llapack" + (string-append "-DTPL_PARMETIS_LIBRARIES=" + (string-join + '("ptscotchparmetis" "ptscotch" "ptscotcherr" + "scotchmetis" "scotch" "scotcherr") + ";")) + (string-append "-DTPL_PARMETIS_INCLUDE_DIRS=" + (assoc-ref %build-inputs "parmetis") + "/include") + "-DTPL_ENABLE_COMBBLASLIB=ON" + (string-append "-DTPL_COMBBLAS_INCLUDE_DIRS=" + (assoc-ref %build-inputs "combblas") + "/include/CombBLAS;" + (assoc-ref %build-inputs "combblas") + "/include/BipartiteMatchings") + "-DTPL_COMBBLAS_LIBRARIES=CombBLAS") #:phases (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (call-with-output-file "make.inc" - (lambda (port) - (format port " -PLAT = -DSuperLUroot = ~a -DSUPERLULIB = ~a/lib/libsuperlu_dist.a -BLASDEF = -DUSE_VENDOR_BLAS -BLASLIB = -L~a/lib -lblas -PARMETISLIB = -L~a/lib \ - -lptscotchparmetis -lptscotch -lptscotcherr -lptscotcherrexit \ - -lscotch -lscotcherr -lscotcherrexit -METISLIB = -L~:*~a/lib \ - -lscotchmetis -lscotch -lscotcherr -lscotcherrexit -LIBS = $(DSUPERLULIB) $(PARMETISLIB) $(METISLIB) $(BLASLIB) -ARCH = ar -ARCHFLAGS = cr -RANLIB = ranlib -CC = mpicc -PIC = -fPIC -CFLAGS = -O3 -g -DPRNTlevel=0 $(PIC) -NOOPTS = -O0 -g $(PIC) -FORTRAN = mpifort -FFLAGS = -O2 -g $(PIC) -LOADER = $(CC) -CDEFS = -DAdd_" - (getcwd) - (assoc-ref outputs "out") - (assoc-ref inputs "lapack") - (assoc-ref inputs "pt-scotch")))) - #t)) - (add-after 'unpack 'remove-broken-symlinks + (add-before 'configure 'set-c++-standard (lambda _ - (for-each delete-file - (find-files "MAKE_INC" "\\.#make\\..*")) - #t)) - (add-before 'build 'create-install-directories - (lambda* (#:key outputs #:allow-other-keys) - (for-each - (lambda (dir) - (mkdir-p (string-append (assoc-ref outputs "out") - "/" dir))) - '("lib" "include")) - #t)) + (substitute* "CMakeLists.txt" + ;; AWPM headers require C++14 + (("CMAKE_CXX_STANDARD 11") "CMAKE_CXX_STANDARD 14")))) (add-before 'check 'mpi-setup ,%openmpi-setup) - (replace 'check - (lambda _ - (with-directory-excursion "EXAMPLE" - (invoke "mpirun" "-n" "2" - "./pddrive" "-r" "1" "-c" "2" "g20.rua") - (invoke "mpirun" "-n" "2" - "./pzdrive" "-r" "1" "-c" "2" "cg20.cua")) - #t)) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - ;; Library is placed in lib during the build phase. Copy over - ;; headers to include. - (let* ((out (assoc-ref outputs "out")) - (incdir (string-append out "/include"))) - (for-each (lambda (file) - (let ((base (basename file))) - (format #t "installing `~a' to `~a'~%" - base incdir) - (copy-file file - (string-append incdir "/" base)))) - (find-files "SRC" ".*\\.h$"))) - #t))))) + (add-before 'check 'omp-setup + (lambda _ (setenv "OMP_NUM_THREADS" "1") #t))))) (home-page (package-home-page superlu)) (synopsis "Parallel supernodal direct solver") (description @@ -2423,25 +2387,25 @@ implemented in ANSI C, and MPI for communications.") (define-public scotch (package (name "scotch") - (version "6.0.5a") + (version "6.0.6") (source (origin (method url-fetch) (uri (string-append "https://gforge.inria.fr/frs/download.php/" "latestfile/298/scotch_" version ".tar.gz")) (sha256 - (base32 "0vsmgjz8qv80di3ljmc7hbdsizxxxwy2b9rgd2fl1mdc6dgbj8av")) - (patches (search-patches "scotch-test-threading.patch" - "scotch-build-parallelism.patch" - "scotch-graph-induce-type-64.patch" - "scotch-graph-diam-64.patch")))) + (base32 "1ky4k9r6jvajhqaqnnx6h8fkmds2yxgp70dpr1qzwcyhi2nhqvv8")) + (patches (search-patches "scotch-build-parallelism.patch" + "scotch-integer-declarations.patch")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib) ("flex" ,flex) ("bison" ,bison))) + (outputs '("out" "metis")) (arguments - `(#:phases + `(#:make-flags (list (string-append "prefix=" %output)) + #:phases (modify-phases %standard-phases (add-after 'unpack 'chdir-to-src @@ -2476,7 +2440,7 @@ YACC = bison -pscotchyy -y -b y '("COMMON_FILE_COMPRESS_GZ" "COMMON_PTHREAD" "COMMON_RANDOM_FIXED_SEED" - "INTSIZE64" ;use 'long' instead of 'int' + "INTSIZE64" ;use 'int64_t' ;; Prevents symbolc clashes with libesmumps "SCOTCH_RENAME" ;; XXX: Causes invalid frees in superlu-dist tests @@ -2489,22 +2453,21 @@ YACC = bison -pscotchyy -y -b y (invoke "make" (format #f "-j~a" (parallel-job-count)) "esmumps"))) - (replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir out) - (invoke "make" - (string-append "prefix=" out) - "install") - ;; esmumps files are not installed with the above - (for-each (lambda (f) - (copy-file f (string-append out "/include/" f))) - (find-files "../include" ".*esmumps.h$")) - (for-each (lambda (f) - (copy-file f (string-append out "/lib/" f))) - (find-files "../lib" "^lib.*esmumps.*")) - #t)))))) + (add-before 'install 'make-install-dirs + (lambda* (#:key outputs #:allow-other-keys) + (mkdir (assoc-ref outputs "out")))) + (add-after 'install 'install-metis + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "metis"))) + (mkdir out) + ;; metis files are not installed with 'make install' + (for-each (lambda (f) + (install-file f (string-append out "/include"))) + (find-files "../include/" ".*metis\\.h")) + (for-each (lambda (f) + (install-file f (string-append out "/lib"))) + (find-files "../lib/" ".*metis\\..*")) + #t)))))) (home-page "http://www.labri.fr/perso/pelegrin/scotch/") (synopsis "Programs and libraries for graph algorithms") (description "SCOTCH is a set of programs and libraries which implement @@ -2742,6 +2705,7 @@ to BMP, JPEG or PNG image formats.") (inputs `(("gcl" ,gcl) ("gnuplot" ,gnuplot) ;for plots + ("sed" ,sed) ("tk" ,tk))) ;Tcl/Tk is used by 'xmaxima' (native-inputs `(("texinfo" ,texinfo) @@ -2764,6 +2728,17 @@ to BMP, JPEG or PNG image formats.") #:make-flags (list "TMPDIR=/tmp") #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (let* ((sed (string-append (assoc-ref inputs "sed") "/bin/sed")) + (coreutils (assoc-ref inputs "coreutils")) + (dirname (string-append coreutils "/bin/dirname")) + (head (string-append coreutils "/bin/head"))) + (substitute* "src/maxima.in" + (("sed ") (string-append sed " ")) + (("dirname") dirname) + (("head") head)) + #t))) (add-before 'check 'pre-check (lambda _ (chmod "src/maxima" #o555) @@ -3531,7 +3506,11 @@ in finite element programs.") ``("-DMPI_C_COMPILER=mpicc" "-DMPI_CXX_COMPILER=mpicxx" "-DMPI_Fortran_COMPILER=mpifort" - ,@,cf)))) + ,@,cf)) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-before 'check 'mpi-setup + ,%openmpi-setup))))) (synopsis "Finite element library (with MPI support)"))) (define-public flann @@ -4215,3 +4194,53 @@ easily be incorporated into existing simulation codes.") (add-before 'check 'mpi-setup ,%openmpi-setup))))) (synopsis "SUNDIALS with OpenMPI support"))) + +(define-public combinatorial-blas + (package + (name "combinatorial-blas") + (version "1.6.2") + (source + (origin + (method url-fetch) + (uri (string-append "http://eecs.berkeley.edu/~aydin/CombBLAS_FILES/" + "CombBLAS_beta_" + (match (string-split version #\.) + ((major minor patch) + (string-append major minor "_" patch))) ;e.g. "16_2" + ".tgz")) + (sha256 + (base32 + "1a9wbgdqyy1whhfc0yl0yqkax3amnqa6iihhq48d063gc0jwfd9a")) + (patches (search-patches "combinatorial-blas-awpm.patch" + "combinatorial-blas-io-fix.patch")))) + (build-system cmake-build-system) + (inputs + `(("mpi" ,openmpi) + ("test-data" ,(origin + (method url-fetch) + (uri (string-append "https://people.eecs.berkeley.edu/~aydin/" + "CombBLAS_FILES/testdata_combblas1.6.1.tgz")) + (sha256 + (base32 + "01y2781cy3fww7znmidrp85mf8zx0c905w5vzvk1mgrmhhynim87")))))) + (arguments + `(#:configure-flags '("-DBUILD_SHARED_LIBS:BOOL=YES" + "-DCMAKE_CXX_FLAGS=-DUSE_FUNNEL") + #:parallel-tests? #f ;tests use 'mpiexec -n4' + #:phases + (modify-phases %standard-phases + (add-before 'check 'mpi-setup + ,%openmpi-setup) + (add-before 'check 'test-setup + (lambda* (#:key inputs #:allow-other-keys) + (setenv "OMP_NUM_THREADS" "2") + (invoke "tar" "xf" (assoc-ref inputs "test-data"))))))) + (home-page "https://people.eecs.berkeley.edu/~aydin/CombBLAS/html/") + (synopsis "Linear algebra primitives for graph analytics") + (description "The Combinatorial BLAS (CombBLAS) is an extensible +distributed-memory parallel graph library offering a small but powerful set of +linear algebra primitives specifically targeting graph analytics.") + (license (list + license:gpl2+ ;include/psort/(funnel|sort)*.h + license:x11 ;usort and psort + license:bsd-3)))) ;CombBLAS and MersenneTwister.h diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index f08a7f5f88..6e56142bd1 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -50,7 +50,7 @@ ;; to migrate to 2.0. (package (name "hwloc") - (version "1.11.10") + (version "1.11.12") (source (origin (method url-fetch) (uri (string-append "https://www.open-mpi.org/software/hwloc/v" @@ -58,7 +58,7 @@ "/downloads/hwloc-" version ".tar.bz2")) (sha256 (base32 - "1ryibcng40xcq22lsj85fn2vcvrksdx9rr3wwxpq8dw37lw0is1b")))) + "0za1b9lvrm3rhn0lrxja5f64r0aq1qs4m0pxn1ji2mbi8ndppyyx")))) (build-system gnu-build-system) (outputs '("out" ;'lstopo' & co., depends on Cairo, libx11, etc. "lib" ;small closure @@ -128,7 +128,7 @@ bind processes, and much more.") ;; Note: 2.0 isn't the default yet, see above. (package (inherit hwloc) - (version "2.0.2") + (version "2.0.3") (source (origin (method url-fetch) (uri (string-append "https://www.open-mpi.org/software/hwloc/v" @@ -136,7 +136,7 @@ bind processes, and much more.") "/downloads/hwloc-" version ".tar.bz2")) (sha256 (base32 - "1phc863d5b2fvwpyyq4mlh4rkjdslh6h0h197zmyk3prwrq7si8l")))) + "09f7ajak8wv5issr0hw72vs3jkldc7crcc7z5fd34sspkvrsm4z3")))) ;; libnuma is no longer needed. (inputs (alist-delete "numactl" (package-inputs hwloc))) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index f4f96079b9..4fe352fe96 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org> -;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2017, 2018 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> @@ -19,6 +19,7 @@ ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> +;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2577,6 +2578,28 @@ MusicBrainz database.") (define-public python2-musicbrainzngs (package-with-python2 python-musicbrainzngs)) +(define-public python-isrcsubmit + (package + (name "python-isrcsubmit") + (version "2.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "isrcsubmit" version)) + (sha256 + (base32 + "0jh4cni8qhri6dh83cmp0i0m0384vv0vznlygv49wj9xzh1d99qv")))) + (build-system python-build-system) + (propagated-inputs + `(("python-discid" ,python-discid) + ("python-musicbrainzngs" ,python-musicbrainzngs))) + (home-page "https://github.com/JonnyJD/musicbrainz-isrcsubmit") + (synopsis "Submit ISRCs from CDs to MusicBrainz") + (description "@code{isrcsubmit} is a tool to extract @dfn{International +Standard Recording Code} (ISRCs) from audio CDs and submit them to +@url{https://musicbrainz.org/, MusicBrainz}.") + (license license:gpl3+))) + (define-public python2-pyechonest (package (name "python2-pyechonest") @@ -3613,7 +3636,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke (define-public musescore (package (name "musescore") - (version "3.0") + (version "3.0.1") (source (origin (method git-fetch) (uri (git-reference @@ -3622,7 +3645,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke (file-name (git-file-name name version)) (sha256 (base32 - "0g8n8xpw5d6wh8bwbvy12sinl9i0ir009sr28i4izr28lr4x8v50")) + "085qwfv3fsgry1pnx531w83lnyvf7kbaklipdf8zqa9shi6d3x9i")) (modules '((guix build utils))) (snippet ;; Un-bundle OpenSSL and remove unused libraries. @@ -4076,6 +4099,42 @@ it provides a submission URL for adding the disc ID to the database and gathers ISRCs and the MCN (=UPC/EAN) from disc.") (license license:lgpl2.1+))) +(define-public python-discid + (package + (name "python-discid") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "discid" version)) + (sha256 + (base32 + "1fgp67nhqlbvhhwrcxq5avil7alpzw4s4579hlyvxzbphdnbz8vq")))) + (build-system python-build-system) + (inputs + `(("libdiscid" ,libdiscid))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'set-libdiscid + ;; Set path of libdiscid + (lambda* (#:key inputs #:allow-other-keys) + (let ((discid (assoc-ref inputs "libdiscid"))) + (substitute* "discid/libdiscid.py" + (("lib_name = (.*)$" all name) + (string-append "lib_name = \"" discid + "/lib/libdiscid.so.0\"\n"))) + #t)))))) + (home-page "https://python-discid.readthedocs.io/") + (synopsis "Python bindings for Libdiscid") + (description + "This package provides Python bindings for the Libdiscid library. The +main purpose is the calculation of @url{https://musicbrainz.org/doc/Disc%20ID, +Disc IDs} for use with the MusicBrainz database. Additionally the disc +@dfn{Media Catalog Number} (MCN) and track @dfn{International Standard +Recording Code} (ISRC) can be extracted.}") + (license license:lgpl3+))) + (define-public libmusicbrainz (package (name "libmusicbrainz") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index df0630219f..6ba544ecd9 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -547,7 +547,7 @@ and up to 1 Mbit/s downstream.") (define-public whois (package (name "whois") - (version "5.4.0") + (version "5.4.1") (source (origin (method url-fetch) @@ -555,7 +555,7 @@ and up to 1 Mbit/s downstream.") name "_" version ".tar.xz")) (sha256 (base32 - "0y73b3z1akni620s1hlrijwdrk95ca1c8csjds48vpd6z86awx9p")))) + "0l7chmlvsl22r5cfm6fpm999z2n3sjrnx3ha8f8kf42cn4gmkriy")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 66712da08c..ef38a6f61a 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -52,6 +52,7 @@ #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages guile-xyz) #:use-module (gnu packages linux) #:use-module (gnu packages lisp) #:use-module (gnu packages man) @@ -106,8 +107,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.16.0") - (commit "7ba2b27467a39956f10e2e11061d9569e4b7d632") - (revision 8)) + (commit "4bddd12ad540d45a33a5f9f129b896843dca603f") + (revision 9)) (package (name "guix") @@ -123,7 +124,7 @@ (commit commit))) (sha256 (base32 - "14srgkl0vyr6q7azv76nncp63gngmm71y18ybyj9f6l6s4shbcm4")) + "1abn4ghb25kn0cmr9dbb3q3fxdcc0g2fnnmbrykxv111s6ahdmlw")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -301,9 +302,6 @@ the Nix package manager.") (license license:gpl3+) (properties '((ftp-server . "alpha.gnu.org")))))) -;; Alias for backward compatibility. -(define-public guix-devel guix) - (define-public guix-daemon ;; This package is for internal consumption: it allows us to quickly build ;; the 'guix-daemon' program and use that in (guix self), used by 'guix diff --git a/gnu/packages/patches/combinatorial-blas-awpm.patch b/gnu/packages/patches/combinatorial-blas-awpm.patch new file mode 100644 index 0000000000..86d4ab2dcf --- /dev/null +++ b/gnu/packages/patches/combinatorial-blas-awpm.patch @@ -0,0 +1,67 @@ +Install BipartiteMatchings headers for SuperLU_DIST. + +--- a/BipartiteMatchings/ApproxWeightPerfectMatching.h ++++ b/BipartiteMatchings/ApproxWeightPerfectMatching.h +@@ -9,7 +9,7 @@ + #ifndef ApproxWeightPerfectMatching_h + #define ApproxWeightPerfectMatching_h + +-#include "../CombBLAS.h" ++#include "CombBLAS.h" + #include "BPMaximalMatching.h" + #include "BPMaximumMatching.h" + #include <parallel/algorithm> +--- a/BipartiteMatchings/BPMaximalMatching.h ++++ b/BipartiteMatchings/BPMaximalMatching.h +@@ -1,7 +1,7 @@ + #ifndef BP_MAXIMAL_MATCHING_H + #define BP_MAXIMAL_MATCHING_H + +-#include "../CombBLAS.h" ++#include "CombBLAS.h" + #include <iostream> + #include <functional> + #include <algorithm> +--- a/BipartiteMatchings/BPMaximumMatching.h ++++ b/BipartiteMatchings/BPMaximumMatching.h +@@ -1,7 +1,7 @@ + #ifndef BP_MAXIMUM_MATCHING_H + #define BP_MAXIMUM_MATCHING_H + +-#include "../CombBLAS.h" ++#include "CombBLAS.h" + #include <mpi.h> + #include <sys/time.h> + #include <iostream> +--- a/BipartiteMatchings/MatchingDefs.h ++++ b/BipartiteMatchings/MatchingDefs.h +@@ -9,7 +9,7 @@ + #ifndef MatchingDefs_h + #define MatchingDefs_h + +-#include "../CombBLAS.h" ++#include "CombBLAS.h" + #include <iostream> + + namespace combblas { +--- a/BipartiteMatchings/Utility.h ++++ b/BipartiteMatchings/Utility.h +@@ -1,7 +1,7 @@ + #ifndef BP_UTILITY_H + #define BP_UTILITY_H + +-#include "../CombBLAS.h" ++#include "CombBLAS.h" + + namespace combblas { + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -68,6 +68,7 @@ set_property(TARGET CombBLAS PROPERTY VERSION ${CombBLAS_VERSION}) + # installation + install(DIRECTORY include/ DESTINATION include) + install(DIRECTORY psort-1.0/include/ DESTINATION include) ++install(DIRECTORY BipartiteMatchings DESTINATION include FILES_MATCHING PATTERN "*.h") + install(TARGETS CombBLAS EXPORT CombBLASTargets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib diff --git a/gnu/packages/patches/combinatorial-blas-io-fix.patch b/gnu/packages/patches/combinatorial-blas-io-fix.patch new file mode 100644 index 0000000000..0ad28e5e0b --- /dev/null +++ b/gnu/packages/patches/combinatorial-blas-io-fix.patch @@ -0,0 +1,14 @@ +IO not appropriate in the context of a sorting routine, and in any case the +proper headers are not included, so gcc emits an undefined symbol error. +Remove the "printf" statement. + +--- CombBLAS_beta_16_2/usort/include/usort/seqUtils.tcc ++++ CombBLAS_beta_16_2/usort/include/usort/seqUtils.tcc +@@ -142,7 +142,6 @@ + } + if ( (a[nmax]==a[nmin]) && (ctr==0) ) + { +- printf("All the numbers are identical, the list is sorted\n"); + return; + } + diff --git a/gnu/packages/patches/icecat-avoid-bundled-libraries.patch b/gnu/packages/patches/icecat-avoid-bundled-libraries.patch index 33203b1a33..d9a7dfe550 100644 --- a/gnu/packages/patches/icecat-avoid-bundled-libraries.patch +++ b/gnu/packages/patches/icecat-avoid-bundled-libraries.patch @@ -1,7 +1,7 @@ Fixes needed when avoiding bundled libraries. ---- icecat-60.2.0/xpcom/build/moz.build.orig 2018-09-13 17:46:49.000000000 -0400 -+++ icecat-60.2.0/xpcom/build/moz.build 2018-09-22 04:26:50.659564554 -0400 +--- icecat-60.5.0/xpcom/build/moz.build.orig 2018-09-13 17:46:49.000000000 -0400 ++++ icecat-60.5.0/xpcom/build/moz.build 2018-09-22 04:26:50.659564554 -0400 @@ -99,10 +99,5 @@ '/docshell/base', ] @@ -13,8 +13,8 @@ Fixes needed when avoiding bundled libraries. - if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa': CXXFLAGS += CONFIG['TK_CFLAGS'] ---- icecat-60.2.0/storage/moz.build.orig 2018-09-13 17:51:11.000000000 -0400 -+++ icecat-60.2.0/storage/moz.build 2018-09-22 04:26:50.659564554 -0400 +--- icecat-60.5.0/storage/moz.build.orig 2018-09-13 17:51:11.000000000 -0400 ++++ icecat-60.5.0/storage/moz.build 2018-09-22 04:26:50.659564554 -0400 @@ -117,7 +117,6 @@ DEFINES['MOZ_MEMORY_TEMP_STORE_PRAGMA'] = True @@ -23,8 +23,8 @@ Fixes needed when avoiding bundled libraries. '/dom/base', ] ---- icecat-60.2.0/dom/indexedDB/moz.build.orig 2018-09-13 17:49:42.000000000 -0400 -+++ icecat-60.2.0/dom/indexedDB/moz.build 2018-09-22 04:26:50.663564574 -0400 +--- icecat-60.5.0/dom/indexedDB/moz.build.orig 2018-09-13 17:49:42.000000000 -0400 ++++ icecat-60.5.0/dom/indexedDB/moz.build 2018-09-22 04:26:50.663564574 -0400 @@ -102,7 +102,6 @@ CXXFLAGS += ['-Wno-error=shadow'] @@ -33,8 +33,8 @@ Fixes needed when avoiding bundled libraries. '/dom/base', '/dom/storage', '/ipc/glue', ---- icecat-60.2.0/media/webrtc/trunk/webrtc/base/rtc_task_queue_gn/moz.build.orig 2018-09-13 17:40:54.000000000 -0400 -+++ icecat-60.2.0/media/webrtc/trunk/webrtc/base/rtc_task_queue_gn/moz.build 2018-09-23 21:33:12.319975105 -0400 +--- icecat-60.5.0/media/webrtc/trunk/webrtc/base/rtc_task_queue_gn/moz.build.orig 2018-09-13 17:40:54.000000000 -0400 ++++ icecat-60.5.0/media/webrtc/trunk/webrtc/base/rtc_task_queue_gn/moz.build 2018-09-23 21:33:12.319975105 -0400 @@ -130,11 +130,6 @@ DEFINES["WEBRTC_POSIX"] = True DEFINES["_FILE_OFFSET_BITS"] = "64" diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch new file mode 100644 index 0000000000..2a11bf0b70 --- /dev/null +++ b/gnu/packages/patches/icecat-makeicecat.patch @@ -0,0 +1,154 @@ +Make some of the changes needed to the 'makeicecat' script, to allow it to run +in a snippet without network access. After this patch is applied, some +additional changes will be made using 'substitute*'. + +diff --git a/makeicecat b/makeicecat +index aa46b94..db27a86 100644 +--- a/makeicecat ++++ b/makeicecat +@@ -36,75 +36,75 @@ export DEBFULLNAME="Ruben Rodriguez" + + DATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/data + +-mkdir output +-cd output ++# mkdir output ++# cd output + + ############################################################################### + # Retrieve FF source code + ############################################################################### + +-rm mozilla-esr${FFMAJOR} $SOURCEDIR -rf +- +-wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz +-wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc +-gpg --recv-keys --keyserver keyserver.ubuntu.com 24C6F355 +-gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc +- +-echo Extracting Firefox tarball +-tar -xf firefox-${FFVERSION}esr.source.tar.xz +- +-mv firefox-${FFVERSION} $SOURCEDIR ++# rm mozilla-esr${FFMAJOR} $SOURCEDIR -rf ++# ++# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz ++# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc ++# gpg --recv-keys --keyserver keyserver.ubuntu.com 24C6F355 ++# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc ++# ++# echo Extracting Firefox tarball ++# tar -xf firefox-${FFVERSION}esr.source.tar.xz ++# ++# mv firefox-${FFVERSION} $SOURCEDIR + + ############################################################################### + # Retrieve /debian from Ubuntu + ############################################################################### + +-rm -rf firefox.$CODENAME +-bzr branch https://code.launchpad.net/~mozillateam/firefox/firefox.$CODENAME +-cd firefox.$CODENAME +-bzr revert -r$REVISION +-echo '3.0 (native)' > debian/source/format +- +-for PATCH in ubuntu-bookmarks.patch ubuntu-ua-string-changes.patch unity-menubar.patch ubuntu-search-defaults.patch fix-make-package-tests-without-webrtc.patch revert-upstream-search-engine-changes.patch +-do +- rm debian/patches/$PATCH +- sed "/$PATCH/d" -i debian/patches/series +-done +-sed "/test-/d" -i debian/patches/series +-cd .. +- +-mv firefox.$CODENAME/debian $SOURCEDIR +-rm -rf firefox.$CODENAME ++# rm -rf firefox.$CODENAME ++# bzr branch https://code.launchpad.net/~mozillateam/firefox/firefox.$CODENAME ++# cd firefox.$CODENAME ++# bzr revert -r$REVISION ++# echo '3.0 (native)' > debian/source/format ++# ++# for PATCH in ubuntu-bookmarks.patch ubuntu-ua-string-changes.patch unity-menubar.patch ubuntu-search-defaults.patch fix-make-package-tests-without-webrtc.patch revert-upstream-search-engine-changes.patch ++# do ++# rm debian/patches/$PATCH ++# sed "/$PATCH/d" -i debian/patches/series ++# done ++# sed "/test-/d" -i debian/patches/series ++# cd .. ++# ++# mv firefox.$CODENAME/debian $SOURCEDIR ++# rm -rf firefox.$CODENAME + + ############################################################################### + # Retrieve l10n + ############################################################################### + +-mkdir l10n +-cd l10n +-while read line;do +- line=$(echo $line |cut -d' ' -f1) +- #[ $line = "es-ES" ] || continue # To speed up testing +- [ $line = "en-US" ] && continue +- hg clone https://hg.mozilla.org/l10n-central/$line +- mkdir -p $line/browser/chrome/browser/preferences +- touch $line/browser/chrome/browser/preferences/advanced-scripts.dtd +- rm -rf $line/.hg* +-done < ../$SOURCEDIR/browser/locales/shipped-locales +-cd .. +- +-mv l10n $SOURCEDIR +- +-hg clone http://hg.mozilla.org/l10n/compare-locales/ +-cd compare-locales/ +-hg checkout RELEASE_3_3_0 +-cd .. +-rm compare-locales/.hg* compare-locales/.git* -rf +-mv compare-locales $SOURCEDIR/l10n ++# mkdir l10n ++# cd l10n ++# while read line;do ++# line=$(echo $line |cut -d' ' -f1) ++# #[ $line = "es-ES" ] || continue # To speed up testing ++# [ $line = "en-US" ] && continue ++# hg clone https://hg.mozilla.org/l10n-central/$line ++# mkdir -p $line/browser/chrome/browser/preferences ++# touch $line/browser/chrome/browser/preferences/advanced-scripts.dtd ++# rm -rf $line/.hg* ++# done < ../$SOURCEDIR/browser/locales/shipped-locales ++# cd .. ++# ++# mv l10n $SOURCEDIR ++# ++# hg clone http://hg.mozilla.org/l10n/compare-locales/ ++# cd compare-locales/ ++# hg checkout RELEASE_3_3_0 ++# cd .. ++# rm compare-locales/.hg* compare-locales/.git* -rf ++# mv compare-locales $SOURCEDIR/l10n + + ####################################################### + +-cd $SOURCEDIR ++# cd $SOURCEDIR + + #for patch in $DATA/patches/*; do + # echo Patching with file: $patch +@@ -720,7 +720,7 @@ debian/rules debian/control + touch -d "yesterday" debian/control + debian/rules debian/control + +-echo | dch -b -D stable -v "$ICECATVERSION" "Converted into IceCat (http://www.gnu.org/software/gnuzilla/)" ++# echo | dch -b -D stable -v "$ICECATVERSION" "Converted into IceCat (http://www.gnu.org/software/gnuzilla/)" + sed "1s/firefox/icecat/" -i debian/changelog + + touch configure js/src/configure +@@ -734,6 +734,6 @@ sed 's/777/755/;' -i toolkit/crashreporter/google-breakpad/Makefile.in + /bin/sed 's/chmod a+w/chmod u+w/' -i ./js/src/ctypes/libffi/Makefile.in ./toolkit/crashreporter/google-breakpad/Makefile.in ./toolkit/crashreporter/google-breakpad/src/third_party/glog/Makefile.in || true + + +-cd .. +-echo Packaging tarball +-tar cfj icecat-$ICECATVERSION.tar.bz2 $SOURCEDIR ++# cd .. ++# echo Packaging tarball ++# tar cfj icecat-$ICECATVERSION.tar.bz2 $SOURCEDIR diff --git a/gnu/packages/patches/icecat-use-system-graphite2+harfbuzz.patch b/gnu/packages/patches/icecat-use-system-graphite2+harfbuzz.patch index 94c211b797..776b5f3d9a 100644 --- a/gnu/packages/patches/icecat-use-system-graphite2+harfbuzz.patch +++ b/gnu/packages/patches/icecat-use-system-graphite2+harfbuzz.patch @@ -4,8 +4,8 @@ Based on: https://svnweb.freebsd.org/ports/head/www/firefox-esr/files/patch-bug847568?revision=472833&view=co Modified for use with patch -p1, and to apply cleanly to GNU IceCat. ---- icecat-60.2.0/config/system-headers.mozbuild -+++ icecat-60.2.0/config/system-headers.mozbuild +--- icecat-60.5.0/config/system-headers.mozbuild ++++ icecat-60.5.0/config/system-headers.mozbuild @@ -1311,6 +1311,19 @@ 'pixman.h', ] @@ -26,8 +26,8 @@ Modified for use with patch -p1, and to apply cleanly to GNU IceCat. if CONFIG['MOZ_SYSTEM_LIBVPX']: system_headers += [ 'vpx_mem/vpx_mem.h', ---- icecat-60.2.0/dom/base/moz.build -+++ icecat-60.2.0/dom/base/moz.build +--- icecat-60.5.0/dom/base/moz.build ++++ icecat-60.5.0/dom/base/moz.build @@ -474,6 +474,9 @@ if CONFIG['MOZ_X11']: CXXFLAGS += CONFIG['TK_CFLAGS'] @@ -38,8 +38,8 @@ Modified for use with patch -p1, and to apply cleanly to GNU IceCat. GENERATED_FILES += [ 'PropertyUseCounterMap.inc', 'UseCounterList.h', ---- icecat-60.2.0/gfx/graphite2/moz-gr-update.sh -+++ icecat-60.2.0/gfx/graphite2/moz-gr-update.sh +--- icecat-60.5.0/gfx/graphite2/moz-gr-update.sh ++++ icecat-60.5.0/gfx/graphite2/moz-gr-update.sh @@ -1,6 +1,7 @@ #!/bin/bash @@ -66,8 +66,8 @@ Modified for use with patch -p1, and to apply cleanly to GNU IceCat. echo echo If gfx/graphite2/src/files.mk has changed, please make corresponding ---- icecat-60.2.0/gfx/moz.build -+++ icecat-60.2.0/gfx/moz.build +--- icecat-60.5.0/gfx/moz.build ++++ icecat-60.5.0/gfx/moz.build @@ -10,6 +10,12 @@ with Files('**'): if CONFIG['MOZ_TREE_CAIRO']: DIRS += ['cairo'] @@ -90,8 +90,8 @@ Modified for use with patch -p1, and to apply cleanly to GNU IceCat. 'ots/src', 'thebes', 'ipc', ---- icecat-60.2.0/gfx/skia/generate_mozbuild.py -+++ icecat-60.2.0/gfx/skia/generate_mozbuild.py +--- icecat-60.5.0/gfx/skia/generate_mozbuild.py ++++ icecat-60.5.0/gfx/skia/generate_mozbuild.py @@ -148,6 +148,9 @@ '-Wno-unused-private-field', ] @@ -102,8 +102,8 @@ Modified for use with patch -p1, and to apply cleanly to GNU IceCat. if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] ---- icecat-60.2.0/gfx/skia/moz.build -+++ icecat-60.2.0/gfx/skia/moz.build +--- icecat-60.5.0/gfx/skia/moz.build ++++ icecat-60.5.0/gfx/skia/moz.build @@ -822,6 +822,9 @@ '-Wno-unused-private-field', ] @@ -114,8 +114,8 @@ Modified for use with patch -p1, and to apply cleanly to GNU IceCat. if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] ---- icecat-60.2.0/gfx/thebes/moz.build -+++ icecat-60.2.0/gfx/thebes/moz.build +--- icecat-60.5.0/gfx/thebes/moz.build ++++ icecat-60.5.0/gfx/thebes/moz.build @@ -272,7 +272,13 @@ LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES'] @@ -131,8 +131,8 @@ Modified for use with patch -p1, and to apply cleanly to GNU IceCat. if CONFIG['CC_TYPE'] == 'clang': # Suppress warnings from Skia header files. ---- icecat-60.2.0/intl/unicharutil/util/moz.build -+++ icecat-60.2.0/intl/unicharutil/util/moz.build +--- icecat-60.5.0/intl/unicharutil/util/moz.build ++++ icecat-60.5.0/intl/unicharutil/util/moz.build @@ -25,4 +25,7 @@ UNIFIED_SOURCES += [ 'nsUnicodeProperties.cpp', ] @@ -141,8 +141,8 @@ Modified for use with patch -p1, and to apply cleanly to GNU IceCat. + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] + FINAL_LIBRARY = 'xul' ---- icecat-60.2.0/netwerk/dns/moz.build -+++ icecat-60.2.0/netwerk/dns/moz.build +--- icecat-60.5.0/netwerk/dns/moz.build ++++ icecat-60.5.0/netwerk/dns/moz.build @@ -76,3 +76,6 @@ if CONFIG['CC_TYPE'] in ('clang', 'gcc'): @@ -150,9 +150,9 @@ Modified for use with patch -p1, and to apply cleanly to GNU IceCat. + +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ---- icecat-60.2.0/old-configure.in -+++ icecat-60.2.0/old-configure.in -@@ -3995,6 +3995,27 @@ +--- icecat-60.5.0/old-configure.in ++++ icecat-60.5.0/old-configure.in +@@ -3971,6 +3971,27 @@ AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR) dnl ======================================================== @@ -180,8 +180,8 @@ Modified for use with patch -p1, and to apply cleanly to GNU IceCat. dnl Check for pixman and cairo dnl ======================================================== ---- icecat-60.2.0/toolkit/library/moz.build -+++ icecat-60.2.0/toolkit/library/moz.build +--- icecat-60.5.0/toolkit/library/moz.build ++++ icecat-60.5.0/toolkit/library/moz.build @@ -235,6 +235,12 @@ if CONFIG['MOZ_SYSTEM_PNG']: OS_LIBS += CONFIG['MOZ_PNG_LIBS'] @@ -195,8 +195,8 @@ Modified for use with patch -p1, and to apply cleanly to GNU IceCat. if CONFIG['MOZ_SYSTEM_HUNSPELL']: OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS'] ---- icecat-60.2.0/toolkit/moz.configure -+++ icecat-60.2.0/toolkit/moz.configure +--- icecat-60.5.0/toolkit/moz.configure ++++ icecat-60.5.0/toolkit/moz.configure @@ -1051,6 +1051,26 @@ add_old_configure_assignment('FT2_CFLAGS', ft2_info.cflags) diff --git a/gnu/packages/patches/icecat-use-system-media-libs.patch b/gnu/packages/patches/icecat-use-system-media-libs.patch index 648585a6f0..00c95fb82e 100644 --- a/gnu/packages/patches/icecat-use-system-media-libs.patch +++ b/gnu/packages/patches/icecat-use-system-media-libs.patch @@ -8,8 +8,8 @@ Changes to files within the bundled libraries are omitted, since those files are removed from Guix sources. Modified for use with patch -p1, and to apply cleanly to GNU IceCat. ---- icecat-60.2.0/build/moz.configure/old.configure -+++ icecat-60.2.0/build/moz.configure/old.configure +--- icecat-60.5.0/build/moz.configure/old.configure ++++ icecat-60.5.0/build/moz.configure/old.configure @@ -273,7 +273,12 @@ '--with-system-libvpx', '--with-system-nspr', @@ -23,8 +23,8 @@ cleanly to GNU IceCat. '--with-system-zlib', '--with-thumb', '--with-thumb-interwork', ---- icecat-60.2.0/config/external/moz.build -+++ icecat-60.2.0/config/external/moz.build +--- icecat-60.5.0/config/external/moz.build ++++ icecat-60.5.0/config/external/moz.build @@ -23,12 +23,21 @@ external_dirs += ['modules/xz-embedded'] @@ -61,8 +61,8 @@ cleanly to GNU IceCat. 'media/mp4parse-rust', 'media/psshparser' ] ---- icecat-60.2.0/config/system-headers.mozbuild -+++ icecat-60.2.0/config/system-headers.mozbuild +--- icecat-60.5.0/config/system-headers.mozbuild ++++ icecat-60.5.0/config/system-headers.mozbuild @@ -1324,6 +1324,28 @@ 'harfbuzz/hb.h', ] @@ -92,19 +92,19 @@ cleanly to GNU IceCat. if CONFIG['MOZ_SYSTEM_LIBVPX']: system_headers += [ 'vpx_mem/vpx_mem.h', ---- icecat-60.2.0/dom/media/AudioStream.cpp -+++ icecat-60.2.0/dom/media/AudioStream.cpp -@@ -121,7 +121,9 @@ - : mMonitor("AudioStream") - , mChannels(0) - , mOutChannels(0) +--- icecat-60.5.0/dom/media/AudioStream.cpp ++++ icecat-60.5.0/dom/media/AudioStream.cpp +@@ -128,7 +128,9 @@ + : mMonitor("AudioStream"), + mChannels(0), + mOutChannels(0), +#ifndef MOZ_SYSTEM_SOUNDTOUCH - , mTimeStretcher(nullptr) + mTimeStretcher(nullptr), +#endif - , mDumpFile(nullptr) - , mState(INITIALIZED) - , mDataSource(aSource) -@@ -142,9 +144,11 @@ + mDumpFile(nullptr), + mState(INITIALIZED), + mDataSource(aSource), +@@ -147,9 +149,11 @@ if (mDumpFile) { fclose(mDumpFile); } @@ -116,8 +116,8 @@ cleanly to GNU IceCat. #if defined(XP_WIN) if (XRE_IsContentProcess()) { audio::AudioNotificationReceiver::Unregister(this); -@@ -168,7 +172,11 @@ - { +@@ -170,7 +174,11 @@ + nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked() { mMonitor.AssertCurrentThreadOwns(); if (!mTimeStretcher) { +#ifdef MOZ_SYSTEM_SOUNDTOUCH @@ -128,8 +128,8 @@ cleanly to GNU IceCat. mTimeStretcher->setSampleRate(mAudioClock.GetInputRate()); mTimeStretcher->setChannels(mOutChannels); mTimeStretcher->setPitch(1.0); ---- icecat-60.2.0/dom/media/AudioStream.h -+++ icecat-60.2.0/dom/media/AudioStream.h +--- icecat-60.5.0/dom/media/AudioStream.h ++++ icecat-60.5.0/dom/media/AudioStream.h @@ -15,7 +15,11 @@ #include "mozilla/TimeStamp.h" #include "mozilla/UniquePtr.h" @@ -142,7 +142,7 @@ cleanly to GNU IceCat. #if defined(XP_WIN) #include "mozilla/audio/AudioNotificationReceiver.h" -@@ -297,7 +301,11 @@ +@@ -293,7 +297,11 @@ uint32_t mChannels; uint32_t mOutChannels; AudioClock mAudioClock; @@ -154,8 +154,8 @@ cleanly to GNU IceCat. // Output file for dumping audio FILE* mDumpFile; ---- icecat-60.2.0/dom/media/moz.build -+++ icecat-60.2.0/dom/media/moz.build +--- icecat-60.5.0/dom/media/moz.build ++++ icecat-60.5.0/dom/media/moz.build @@ -327,6 +327,21 @@ DEFINES['MOZILLA_INTERNAL_API'] = True @@ -178,8 +178,8 @@ cleanly to GNU IceCat. if CONFIG['MOZ_ANDROID_HLS_SUPPORT']: DEFINES['MOZ_ANDROID_HLS_SUPPORT'] = True ---- icecat-60.2.0/dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp -+++ icecat-60.2.0/dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp +--- icecat-60.5.0/dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp ++++ icecat-60.5.0/dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp @@ -15,9 +15,13 @@ #include <windows.h> #endif @@ -194,7 +194,7 @@ cleanly to GNU IceCat. namespace mozilla { -@@ -64,6 +68,12 @@ +@@ -60,6 +64,12 @@ sLinkStatus = LinkStatus_FAILED; @@ -207,17 +207,17 @@ cleanly to GNU IceCat. // We retrieve the path of the lgpllibs library as this is where mozavcodec // and mozavutil libs are located. PathString lgpllibsname = GetLibraryName(nullptr, "lgpllibs"); -@@ -73,6 +83,7 @@ - PathString path = - GetLibraryFilePathname(lgpllibsname.get(), - (PRFuncPtr)&soundtouch::SoundTouch::getVersionId); +@@ -68,6 +78,7 @@ + } + PathString path = GetLibraryFilePathname( + lgpllibsname.get(), (PRFuncPtr)&soundtouch::SoundTouch::getVersionId); +#endif if (path.IsEmpty()) { return false; } ---- icecat-60.2.0/old-configure.in -+++ icecat-60.2.0/old-configure.in -@@ -2451,6 +2451,111 @@ +--- icecat-60.5.0/old-configure.in ++++ icecat-60.5.0/old-configure.in +@@ -2417,6 +2417,111 @@ fi fi # COMPILE_ENVIRONMENT @@ -329,8 +329,8 @@ cleanly to GNU IceCat. dnl system libvpx Support dnl ======================================================== MOZ_ARG_WITH_BOOL(system-libvpx, ---- icecat-60.2.0/toolkit/library/moz.build -+++ icecat-60.2.0/toolkit/library/moz.build +--- icecat-60.5.0/toolkit/library/moz.build ++++ icecat-60.5.0/toolkit/library/moz.build @@ -244,6 +244,21 @@ if CONFIG['MOZ_SYSTEM_HUNSPELL']: OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS'] @@ -353,9 +353,9 @@ cleanly to GNU IceCat. if CONFIG['MOZ_SYSTEM_LIBEVENT']: OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS'] ---- icecat-60.2.0/xpcom/build/XPCOMInit.cpp -+++ icecat-60.2.0/xpcom/build/XPCOMInit.cpp -@@ -138,7 +138,9 @@ +--- icecat-60.5.0/xpcom/build/XPCOMInit.cpp ++++ icecat-60.5.0/xpcom/build/XPCOMInit.cpp +@@ -139,7 +139,9 @@ #include "mozilla/ipc/GeckoChildProcessHost.h" @@ -365,16 +365,15 @@ cleanly to GNU IceCat. #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING) #if defined(HAVE_STDINT_H) // mozilla-config.h defines HAVE_STDINT_H, and then it's defined *again* in -@@ -639,11 +641,13 @@ +@@ -635,10 +637,12 @@ // this oddness. mozilla::SetICUMemoryFunctions(); +#ifndef MOZ_OGG_NO_MEM_REPORTING // Do the same for libogg. - ogg_set_mem_functions(OggReporter::CountingMalloc, - OggReporter::CountingCalloc, - OggReporter::CountingRealloc, - OggReporter::CountingFree); + ogg_set_mem_functions( + OggReporter::CountingMalloc, OggReporter::CountingCalloc, + OggReporter::CountingRealloc, OggReporter::CountingFree); +#endif #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING) diff --git a/gnu/packages/patches/linkchecker-mark-more-tests-that-require-the-network.patch b/gnu/packages/patches/linkchecker-mark-more-tests-that-require-the-network.patch new file mode 100644 index 0000000000..f3e488cec2 --- /dev/null +++ b/gnu/packages/patches/linkchecker-mark-more-tests-that-require-the-network.patch @@ -0,0 +1,182 @@ +From f24c88a0732024028fffe0372039a847e91722ea Mon Sep 17 00:00:00 2001 +From: Christopher Baines <mail@cbaines.net> +Date: Tue, 1 Jan 2019 22:36:29 +0000 +Subject: [PATCH] Mark more tests that require the network + +I believe all these tests require the network, at least they seem to +fail if it's I run them without connecting my computer to the web. + +I'm looking at this as part of packaging linkchecker for GNU Guix, +where the package is build and the tests are run in a isolated +environment, intentionally without network access, to avoid issues +with non-reproducible package builds. +--- + tests/checker/test_http.py | 2 ++ + tests/checker/test_http_misc.py | 2 ++ + tests/checker/test_http_redirect.py | 2 ++ + tests/checker/test_httpbin.py | 5 +++++ + tests/checker/test_misc.py | 4 ++++ + tests/checker/test_whitespace.py | 3 +++ + 6 files changed, 18 insertions(+) + +diff --git a/tests/checker/test_http.py b/tests/checker/test_http.py +index e4c1e097..8a8af567 100644 +--- a/tests/checker/test_http.py ++++ b/tests/checker/test_http.py +@@ -20,6 +20,7 @@ + + import pytest + ++from tests import need_network + from .httpserver import HttpServerTest, CookieRedirectHttpRequestHandler + + class TestHttp (HttpServerTest): +@@ -29,6 +30,7 @@ def __init__(self, methodName='runTest'): + super(TestHttp, self).__init__(methodName=methodName) + self.handler = CookieRedirectHttpRequestHandler + ++ @need_network + def test_html (self): + confargs = dict(recursionlevel=1) + self.file_test("http.html", confargs=confargs) +diff --git a/tests/checker/test_http_misc.py b/tests/checker/test_http_misc.py +index 9922d85f..c6b6afdb 100644 +--- a/tests/checker/test_http_misc.py ++++ b/tests/checker/test_http_misc.py +@@ -20,11 +20,13 @@ + import os + import sys + from .httpserver import HttpServerTest ++from tests import need_network + from linkcheck.network import iputil + + class TestHttpMisc (HttpServerTest): + """Test http:// misc link checking.""" + ++ @need_network + def test_html (self): + self.swf_test() + self.obfuscate_test() +diff --git a/tests/checker/test_http_redirect.py b/tests/checker/test_http_redirect.py +index f212d98e..2253a70d 100644 +--- a/tests/checker/test_http_redirect.py ++++ b/tests/checker/test_http_redirect.py +@@ -17,6 +17,7 @@ + """ + Test http checking. + """ ++from tests import need_network + from .httpserver import HttpServerTest, CookieRedirectHttpRequestHandler + + class TestHttpRedirect (HttpServerTest): +@@ -26,6 +27,7 @@ def __init__(self, methodName='runTest'): + super(TestHttpRedirect, self).__init__(methodName=methodName) + self.handler = CookieRedirectHttpRequestHandler + ++ @need_network + def test_redirect (self): + self.redirect1() + self.redirect2() +diff --git a/tests/checker/test_httpbin.py b/tests/checker/test_httpbin.py +index 0319c2f6..4c8fa846 100644 +--- a/tests/checker/test_httpbin.py ++++ b/tests/checker/test_httpbin.py +@@ -18,6 +18,7 @@ + Test http stuff with httpbin.org. + """ + import re ++from tests import need_network + from . import LinkCheckTest + + +@@ -30,6 +31,7 @@ def get_httpbin_url(path): + class TestHttpbin(LinkCheckTest): + """Test http:// link redirection checking.""" + ++ @need_network + def test_http_link(self): + linkurl = u"http://www.example.com" + nlinkurl = self.norm(linkurl) +@@ -48,6 +50,7 @@ def test_http_link(self): + ] + self.direct(url, resultlines, recursionlevel=1) + ++ @need_network + def test_basic_auth(self): + user = u"testuser" + password = u"testpassword" +@@ -67,6 +70,7 @@ def test_basic_auth(self): + ] + self.direct(url, resultlines, confargs=confargs) + ++ @need_network + def test_http_refresh_header(self): + linkurl = u"http://www.example.com" + nlinkurl = self.norm(linkurl) +@@ -85,6 +89,7 @@ def test_http_refresh_header(self): + ] + self.direct(url, resultlines, recursionlevel=1) + ++ @need_network + def test_http_content_location_header(self): + linkurl = u"http://www.example.com" + nlinkurl = self.norm(linkurl) +diff --git a/tests/checker/test_misc.py b/tests/checker/test_misc.py +index 2e4cfd07..f9591f9d 100644 +--- a/tests/checker/test_misc.py ++++ b/tests/checker/test_misc.py +@@ -17,6 +17,7 @@ + """ + Test miscellaneous html tag parsing and URL types + """ ++from tests import need_network + from . import LinkCheckTest + + +@@ -25,15 +26,18 @@ class TestMisc (LinkCheckTest): + Test misc link types. + """ + ++ @need_network + def test_misc (self): + self.file_test("misc.html") + + def test_html5 (self): + self.file_test("html5.html") + ++ @need_network + def test_archive (self): + self.file_test("archive.html") + ++ @need_network + def test_itms_services(self): + url = u"itms-services:?action=download-manifest&url=http://www.example.com/" + resultlines = [ +diff --git a/tests/checker/test_whitespace.py b/tests/checker/test_whitespace.py +index 609c108a..fc2727d6 100644 +--- a/tests/checker/test_whitespace.py ++++ b/tests/checker/test_whitespace.py +@@ -17,6 +17,7 @@ + """ + Test whitespace handling. + """ ++from tests import need_network + from . import LinkCheckTest + + +@@ -25,6 +26,7 @@ class TestWhitespace (LinkCheckTest): + Test whitespace in URLs. + """ + ++ @need_network + def test_leading_whitespace (self): + # Leading whitespace + url = u" http://www.example.org/" +@@ -50,6 +52,7 @@ def test_leading_whitespace (self): + ] + self.direct(url, resultlines) + ++ @need_network + def test_trailing_whitespace (self): + # Trailing whitespace + url = u"http://www.example.org/ " diff --git a/gnu/packages/patches/p11-kit-jks-timestamps.patch b/gnu/packages/patches/p11-kit-jks-timestamps.patch new file mode 100644 index 0000000000..8cb8ed8684 --- /dev/null +++ b/gnu/packages/patches/p11-kit-jks-timestamps.patch @@ -0,0 +1,42 @@ +Fix test failures induced by setting the SOURCE_DATE_EPOCH variable. + +Taken from upstream: <https://github.com/p11-glue/p11-kit/pull/213>. + +From 2a474e1fe8f4bd8b4ed7622e5cf3b2718a202562 Mon Sep 17 00:00:00 2001 +From: Daiki Ueno <dueno@redhat.com> +Date: Mon, 28 Jan 2019 13:03:15 +0100 +Subject: [PATCH] extract-jks: Prefer _p11_extract_jks_timestamp to + SOURCE_DATE_EPOCH + +Give _p11_extract_jks_timestamp precedence over SOURCE_DATE_EPOCH so +that the test results are not affected by the envvar settings. +--- + trust/extract-jks.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/trust/extract-jks.c b/trust/extract-jks.c +index ad8dc35..a6f855f 100644 +--- a/trust/extract-jks.c ++++ b/trust/extract-jks.c +@@ -250,7 +250,9 @@ prepare_jks_buffer (p11_enumerate *ex, + * when this was this certificate was added to the keystore, however + * we don't have that information. Java uses time in milliseconds + */ +- { ++ if (_p11_extract_jks_timestamp) ++ now = _p11_extract_jks_timestamp; ++ else { + char *source_date_epoch; + source_date_epoch = secure_getenv ("SOURCE_DATE_EPOCH"); + if (source_date_epoch) { +@@ -276,9 +278,7 @@ prepare_jks_buffer (p11_enumerate *ex, + return false; + } + now = epoch; +- } else if (_p11_extract_jks_timestamp) +- now = _p11_extract_jks_timestamp; +- else ++ } else + now = time (NULL); + } + diff --git a/gnu/packages/patches/qemu-CVE-2018-16872.patch b/gnu/packages/patches/qemu-CVE-2018-16872.patch new file mode 100644 index 0000000000..094e823ee4 --- /dev/null +++ b/gnu/packages/patches/qemu-CVE-2018-16872.patch @@ -0,0 +1,88 @@ +Fixes CVE-2018-16872: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-16872 + +Patch copied from upstream source repository: + +https://git.qemu.org/?p=qemu.git;a=commitdiff;h=bab9df35ce73d1c8e19a37e2737717ea1c984dc1 + +From bab9df35ce73d1c8e19a37e2737717ea1c984dc1 Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann <kraxel@redhat.com> +Date: Thu, 13 Dec 2018 13:25:11 +0100 +Subject: [PATCH] usb-mtp: use O_NOFOLLOW and O_CLOEXEC. + +Open files and directories with O_NOFOLLOW to avoid symlinks attacks. +While being at it also add O_CLOEXEC. + +usb-mtp only handles regular files and directories and ignores +everything else, so users should not see a difference. + +Because qemu ignores symlinks, carrying out a successful symlink attack +requires swapping an existing file or directory below rootdir for a +symlink and winning the race against the inotify notification to qemu. + +Fixes: CVE-2018-16872 +Cc: Prasad J Pandit <ppandit@redhat.com> +Cc: Bandan Das <bsd@redhat.com> +Reported-by: Michael Hanselmann <public@hansmi.ch> +Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> +Reviewed-by: Michael Hanselmann <public@hansmi.ch> +Message-id: 20181213122511.13853-1-kraxel@redhat.com +--- + hw/usb/dev-mtp.c | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c +index 100b7171f4..36c43b8c20 100644 +--- a/hw/usb/dev-mtp.c ++++ b/hw/usb/dev-mtp.c +@@ -653,13 +653,18 @@ static void usb_mtp_object_readdir(MTPState *s, MTPObject *o) + { + struct dirent *entry; + DIR *dir; ++ int fd; + + if (o->have_children) { + return; + } + o->have_children = true; + +- dir = opendir(o->path); ++ fd = open(o->path, O_DIRECTORY | O_CLOEXEC | O_NOFOLLOW); ++ if (fd < 0) { ++ return; ++ } ++ dir = fdopendir(fd); + if (!dir) { + return; + } +@@ -1007,7 +1012,7 @@ static MTPData *usb_mtp_get_object(MTPState *s, MTPControl *c, + + trace_usb_mtp_op_get_object(s->dev.addr, o->handle, o->path); + +- d->fd = open(o->path, O_RDONLY); ++ d->fd = open(o->path, O_RDONLY | O_CLOEXEC | O_NOFOLLOW); + if (d->fd == -1) { + usb_mtp_data_free(d); + return NULL; +@@ -1031,7 +1036,7 @@ static MTPData *usb_mtp_get_partial_object(MTPState *s, MTPControl *c, + c->argv[1], c->argv[2]); + + d = usb_mtp_data_alloc(c); +- d->fd = open(o->path, O_RDONLY); ++ d->fd = open(o->path, O_RDONLY | O_CLOEXEC | O_NOFOLLOW); + if (d->fd == -1) { + usb_mtp_data_free(d); + return NULL; +@@ -1658,7 +1663,7 @@ static void usb_mtp_write_data(MTPState *s) + 0, 0, 0, 0); + goto done; + } +- d->fd = open(path, O_CREAT | O_WRONLY, mask); ++ d->fd = open(path, O_CREAT | O_WRONLY | O_CLOEXEC | O_NOFOLLOW, mask); + if (d->fd == -1) { + usb_mtp_queue_result(s, RES_STORE_FULL, d->trans, + 0, 0, 0, 0); +-- +2.20.1 + diff --git a/gnu/packages/patches/qemu-CVE-2019-6778.patch b/gnu/packages/patches/qemu-CVE-2019-6778.patch new file mode 100644 index 0000000000..315f2922da --- /dev/null +++ b/gnu/packages/patches/qemu-CVE-2019-6778.patch @@ -0,0 +1,43 @@ +Fixes CVE-2019-6778: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6778 + +Patch copied from upstream source repository: + +https://git.qemu.org/?p=qemu.git;a=commitdiff;h=a7104eda7dab99d0cdbd3595c211864cba415905 + +From a7104eda7dab99d0cdbd3595c211864cba415905 Mon Sep 17 00:00:00 2001 +From: Prasad J Pandit <pjp@fedoraproject.org> +Date: Sun, 13 Jan 2019 23:29:48 +0530 +Subject: [PATCH] slirp: check data length while emulating ident function + +While emulating identification protocol, tcp_emu() does not check +available space in the 'sc_rcv->sb_data' buffer. It could lead to +heap buffer overflow issue. Add check to avoid it. + +Reported-by: Kira <864786842@qq.com> +Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org> +Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> +--- + slirp/tcp_subr.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c +index 4a9a5b5edc..23a841f26e 100644 +--- a/slirp/tcp_subr.c ++++ b/slirp/tcp_subr.c +@@ -634,6 +634,11 @@ tcp_emu(struct socket *so, struct mbuf *m) + socklen_t addrlen = sizeof(struct sockaddr_in); + struct sbuf *so_rcv = &so->so_rcv; + ++ if (m->m_len > so_rcv->sb_datalen ++ - (so_rcv->sb_wptr - so_rcv->sb_data)) { ++ return 1; ++ } ++ + memcpy(so_rcv->sb_wptr, m->m_data, m->m_len); + so_rcv->sb_wptr += m->m_len; + so_rcv->sb_rptr += m->m_len; +-- +2.20.1 + diff --git a/gnu/packages/patches/scotch-graph-diam-64.patch b/gnu/packages/patches/scotch-graph-diam-64.patch deleted file mode 100644 index 2ae31e3c3b..0000000000 --- a/gnu/packages/patches/scotch-graph-diam-64.patch +++ /dev/null @@ -1,27 +0,0 @@ -Fixes test_scotch_graph_diam test with -DINTSIZE64. - -Reported upstream at -https://gforge.inria.fr/tracker/index.php?func=detail&aid=21650&group_id=248&atid=1081 - ---- scotch-6.0.5a/src/libscotch/library.h -+++ scotch-6.0.5a/src/libscotch/library.h -@@ -187,6 +187,7 @@ SCOTCH_Num SCOTCH_graphBase (SCOTCH_Graph * const, const SCO - int SCOTCH_graphCheck (const SCOTCH_Graph * const); - void SCOTCH_graphSize (const SCOTCH_Graph * const, SCOTCH_Num * const, SCOTCH_Num * const); - void SCOTCH_graphData (const SCOTCH_Graph * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num ** const, SCOTCH_Num * const, SCOTCH_Num ** const, SCOTCH_Num ** const); -+SCOTCH_Num SCOTCH_graphDiamPV (SCOTCH_Graph * const); - void SCOTCH_graphStat (const SCOTCH_Graph * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const, SCOTCH_Num * const, SCOTCH_Num * const, SCOTCH_Num * const, double * const, double * const); - int SCOTCH_graphCoarsen (const SCOTCH_Graph * const, const SCOTCH_Num, const double, const SCOTCH_Num, SCOTCH_Graph * const, SCOTCH_Num * const); - int SCOTCH_graphCoarsenMatch (const SCOTCH_Graph * const, SCOTCH_Num * const, const double, const SCOTCH_Num, SCOTCH_Num * const); ---- scotch-6.0.5a/src/libscotch/library_graph_diam.c -+++ scotch-6.0.5a/src/libscotch/library_graph_diam.c -@@ -72,8 +72,7 @@ - - SCOTCH_Num - SCOTCH_graphDiamPV ( --SCOTCH_Graph * const grafptr, --const SCOTCH_Num baseval) -+SCOTCH_Graph * const grafptr) - { - return ((SCOTCH_Num) graphDiamPV ((Graph * const) grafptr)); - } diff --git a/gnu/packages/patches/scotch-graph-induce-type-64.patch b/gnu/packages/patches/scotch-graph-induce-type-64.patch deleted file mode 100644 index d2eee52a7b..0000000000 --- a/gnu/packages/patches/scotch-graph-induce-type-64.patch +++ /dev/null @@ -1,19 +0,0 @@ -Fixes return type of SCOTCH_graphInduceList and SCOTCH_graphInducePart -so that the definition matches with -DINTSIZE64. - -Reported upstream at -https://gforge.inria.fr/tracker/index.php?func=detail&aid=21608&group_id=248&atid=1081 - ---- scotch_6.0.5a/src/libscotch/library.h.orig 2018-02-11 10:52:38.000000000 -0600 -+++ scotch_6.0.5a/src/libscotch/library.h 2018-02-23 16:56:41.000000000 -0600 -@@ -199,8 +199,8 @@ - int SCOTCH_graphGeomSaveChac (const SCOTCH_Graph * const, const SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); - int SCOTCH_graphGeomSaveMmkt (const SCOTCH_Graph * const, const SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); - int SCOTCH_graphGeomSaveScot (const SCOTCH_Graph * const, const SCOTCH_Geom * const, FILE * const, FILE * const, const char * const); --int SCOTCH_graphInduceList (const SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_Num * const, SCOTCH_Graph * const); --int SCOTCH_graphInducePart (const SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_GraphPart2 * const, const SCOTCH_GraphPart2, SCOTCH_Graph * const); -+SCOTCH_Num SCOTCH_graphInduceList (const SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_Num * const, SCOTCH_Graph * const); -+SCOTCH_Num SCOTCH_graphInducePart (const SCOTCH_Graph * const, const SCOTCH_Num, const SCOTCH_GraphPart2 * const, const SCOTCH_GraphPart2, SCOTCH_Graph * const); - - int SCOTCH_graphMapInit (const SCOTCH_Graph * const, SCOTCH_Mapping * const, const SCOTCH_Arch * const, SCOTCH_Num * const); - void SCOTCH_graphMapExit (const SCOTCH_Graph * const, SCOTCH_Mapping * const); diff --git a/gnu/packages/patches/scotch-integer-declarations.patch b/gnu/packages/patches/scotch-integer-declarations.patch new file mode 100644 index 0000000000..978625c1c0 --- /dev/null +++ b/gnu/packages/patches/scotch-integer-declarations.patch @@ -0,0 +1,37 @@ +diff --git a/src/libscotch/library.h b/src/libscotch/library.h +index 1891c19..ecc0533 100644 +--- a/src/libscotch/library.h ++++ b/src/libscotch/library.h +@@ -67,6 +67,8 @@ + + /*+ Integer type. +*/ + ++#include <stdint.h> ++ + typedef DUMMYIDX SCOTCH_Idx; + + typedef DUMMYINT SCOTCH_Num; +diff --git a/src/libscotchmetis/library_metis.h b/src/libscotchmetis/library_metis.h +index e6767e1..04e71c3 100644 +--- a/src/libscotchmetis/library_metis.h ++++ b/src/libscotchmetis/library_metis.h +@@ -99,6 +99,7 @@ typedef enum { + */ + + #ifndef SCOTCH_H /* In case "scotch.h" not included before */ ++#include <stdint.h> + typedef DUMMYINT SCOTCH_Num; + #endif /* SCOTCH_H */ + +diff --git a/src/libscotchmetis/library_parmetis.h b/src/libscotchmetis/library_parmetis.h +index 6d2f0b0..3c803fc 100644 +--- a/src/libscotchmetis/library_parmetis.h ++++ b/src/libscotchmetis/library_parmetis.h +@@ -106,6 +106,7 @@ typedef enum { + */ + + #ifndef SCOTCH_H /* In case "scotch.h" not included before */ ++#include <stdint.h> + typedef DUMMYINT SCOTCH_Num; + #endif /* SCOTCH_H */ + diff --git a/gnu/packages/patches/scotch-test-threading.patch b/gnu/packages/patches/scotch-test-threading.patch deleted file mode 100644 index de8cc49c41..0000000000 --- a/gnu/packages/patches/scotch-test-threading.patch +++ /dev/null @@ -1,22 +0,0 @@ -Fix this test so that it succeeds when the library is not compiled with -SCOTCH_PTHREAD. - ---- scotch_6.0.4/src/check/test_common_thread.c 2014-09-28 11:39:59.000000000 -0500 -+++ scotch_6.0.4/src/check/test_common_thread.c 2015-01-10 00:52:00.076229542 -0600 -@@ -175,14 +175,14 @@ - char * argv[]) - { - TestThreadGroup groudat; --#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) -+#if ((defined COMMON_PTHREAD) && (defined SCOTCH_PTHREAD)) - TestThread * restrict thrdtab; - int thrdnbr; - #endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */ - - SCOTCH_errorProg (argv[0]); - --#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) -+#if ((defined COMMON_PTHREAD) && (defined SCOTCH_PTHREAD)) - thrdnbr = SCOTCH_PTHREAD_NUMBER; - - groudat.redusum = COMPVAL (thrdnbr); diff --git a/gnu/packages/patches/superlu-dist-awpm-grid.patch b/gnu/packages/patches/superlu-dist-awpm-grid.patch new file mode 100644 index 0000000000..d6cb8e521d --- /dev/null +++ b/gnu/packages/patches/superlu-dist-awpm-grid.patch @@ -0,0 +1,36 @@ +Create the CombBLAS::SpParMat with the MPI_Comm from the input 'gridinfo_t'. +This prevents a warning/error from CombBLAS about using MPI_COMM_WORLD. + +--- a/SRC/AWPM_CombBLAS.hpp ++++ b/SRC/AWPM_CombBLAS.hpp +@@ -52,7 +52,7 @@ + { + printf("AWPM only supports square process grid. Retuning without a permutation.\n"); + } +- combblas::SpParMat < int_t, double, combblas::SpDCCols<int_t,double> > Adcsc; ++ combblas::SpParMat < int_t, double, combblas::SpDCCols<int_t,double> > Adcsc(grid->comm); + std::vector< std::vector < std::tuple<int_t,int_t,double> > > data(procs); + + /* ------------------------------------------------------------ +@@ -100,11 +100,10 @@ + combblas::AWPM(Adcsc, mateRow2Col, mateCol2Row,true); + + // now gather the matching vector +- MPI_Comm World = mateRow2Col.getcommgrid()->GetWorld(); + int * rdispls = new int[procs]; + int sendcnt = mateRow2Col.LocArrSize(); + int * recvcnt = new int[procs]; +- MPI_Allgather(&sendcnt, 1, MPI_INT, recvcnt, 1, MPI_INT, World); ++ MPI_Allgather(&sendcnt, 1, MPI_INT, recvcnt, 1, MPI_INT, grid->comm); + rdispls[0] = 0; + for(int i=0; i<procs-1; ++i) + { +@@ -112,7 +111,7 @@ + } + int_t *senddata = (int_t *)mateRow2Col.GetLocArr(); + +- MPI_Allgatherv(senddata, sendcnt, combblas::MPIType<int_t>(), ScalePermstruct->perm_r, recvcnt, rdispls, combblas::MPIType<int_t>(), World); ++ MPI_Allgatherv(senddata, sendcnt, combblas::MPIType<int_t>(), ScalePermstruct->perm_r, recvcnt, rdispls, combblas::MPIType<int_t>(), grid->comm); + + delete[] rdispls; + delete[] recvcnt; diff --git a/gnu/packages/patches/x265-detect512-all-arches.patch b/gnu/packages/patches/x265-detect512-all-arches.patch deleted file mode 100644 index 4d39d868fd..0000000000 --- a/gnu/packages/patches/x265-detect512-all-arches.patch +++ /dev/null @@ -1,37 +0,0 @@ -https://sources.debian.org/data/main/x/x265/2.9-3/debian/patches/0003-detect512-is-needed-on-all-architectures.patch - -From: Adam Sampson <unknown@bitbucket> -Date: Sun, 14 Oct 2018 14:04:18 +0200 -Subject: detect512 is needed on all architectures - ---- - source/common/cpu.cpp | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/source/common/cpu.cpp b/source/common/cpu.cpp -index 0681ff5..fa687da 100644 ---- a/source/common/cpu.cpp -+++ b/source/common/cpu.cpp -@@ -110,6 +110,11 @@ const cpu_name_t cpu_names[] = - { "", 0 }, - }; - -+bool detect512() -+{ -+ return(enable512); -+} -+ - #if X265_ARCH_X86 - - extern "C" { -@@ -123,10 +128,6 @@ uint64_t PFX(cpu_xgetbv)(int xcr); - #pragma warning(disable: 4309) // truncation of constant value - #endif - --bool detect512() --{ -- return(enable512); --} - uint32_t cpu_detect(bool benableavx512 ) - { - diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 377ec53d26..077330e54a 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -77,14 +77,14 @@ with what is used by the Bitcoin network.") (define-public python-bcrypt (package (name "python-bcrypt") - (version "3.1.4") + (version "3.1.6") (source (origin (method url-fetch) (uri (pypi-uri "bcrypt" version)) (sha256 (base32 - "13cyrnqwkhc70rs6dg65z4yrrr3dc42fhk11804fqmci9hvimvb7")))) + "1sh2xh0iragdq8dhssc1cdd02nppjq7b5kmv0qladfi2s9cnfqs4")))) (build-system python-build-system) (native-inputs `(("python-pycparser" ,python-pycparser) @@ -148,10 +148,7 @@ to providing full-strength password hashing for multi-user application.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/p/py-bcrypt/py-bcrypt-" - version - ".tar.gz")) + (uri (pypi-uri "py-bcrypt" version)) (sha256 (base32 "0y6smdggwi5s72v6p1nn53dg6w05hna3d264cq6kas0lap73p8az")))) @@ -240,10 +237,7 @@ Python interface around SSH networking concepts.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/e/ecdsa/ecdsa-" - version - ".tar.gz")) + (uri (pypi-uri "ecdsa" version)) (sha256 (base32 "1yj31j0asmrx4an9xvsaj2icdmzy6pw0glfpqrrkrphwdpi1xkv4")))) @@ -322,11 +316,11 @@ etc.). The package is structured to make adding new modules easy.") "0482rmi2x6p78wl2kz8qzyq21xz1sbbfwnv5x7dggar4vkwxhzfx")))) (build-system python-build-system) (native-inputs - `(("python-setuptools-scm" ,python-setuptools-scm))) + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner) + ("python-setuptools-scm" ,python-setuptools-scm))) (propagated-inputs `(("python-pycrypto" ,python-pycrypto))) - (arguments - `(#:tests? #f)) ;TODO: tests require pytest (home-page "https://github.com/jaraco/keyring") (synopsis "Store and access your passwords safely") (description @@ -363,14 +357,14 @@ is used by the Requests library to verify HTTPS requests.") (define-public python-cryptography-vectors (package (name "python-cryptography-vectors") - (version "2.4.2") + (version "2.5") (source (origin (method url-fetch) (uri (pypi-uri "cryptography_vectors" version)) (sha256 (base32 - "013qx2hz0jv79yzfzpn0r2kk33i5qy3sdnzgwiv5779d18snblwi")))) + "15qfl3pnw2f11r0z0zhwl56f6pb60ysav8fxmpnz5p80cfwljdik")))) (build-system python-build-system) (home-page "https://github.com/pyca/cryptography") (synopsis "Test vectors for the cryptography package") @@ -385,14 +379,14 @@ is used by the Requests library to verify HTTPS requests.") (define-public python-cryptography (package (name "python-cryptography") - (version "2.4.2") + (version "2.5") (source (origin (method url-fetch) (uri (pypi-uri "cryptography" version)) (sha256 (base32 - "1pc60dksi9w9mshl6cvn7gdjazbp3pmydy3qp9wgy5wzd8n0b9h5")))) + "00c4d7gvsymlaw0r13zrm32dcnarmpayjyrh65yymlmr6mrbcij9")))) (build-system python-build-system) (inputs `(("openssl" ,openssl))) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index cee4973086..97b1f06611 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -665,13 +665,14 @@ teams extension for python-openid.") (define-public python-tornado (package (name "python-tornado") - (version "4.5.1") + (version "5.1.1") (source (origin (method url-fetch) (uri (pypi-uri "tornado" version)) (sha256 - (base32 "1zbkgcdfq81k298awrm8p0xwbwwn2p3nbizdglzfbkskhai082fv")))) + (base32 + "02clqk2116jbnq8lnaqmdw3p52nqrd9ib59r4xz2ll43fpcmhlaf")))) (build-system python-build-system) (arguments '(;; FIXME: Two tests error out with: @@ -682,14 +683,12 @@ teams extension for python-openid.") ;; (lambda _ ;; ;; 'setup.py test' hits an AssertionError on BSD-specific ;; ;; "tornado/platform/kqueue.py". This is the supported method: - ;; (invoke- "python" "-m" "tornado.test") + ;; (invoke "python" "-m" "tornado.test.runtests") ;; #t))) #:tests? #f)) (native-inputs `(("python-certifi" ,python-certifi))) - (propagated-inputs - `(("python-backports-abc" ,python-backports-abc))) - (home-page "http://www.tornadoweb.org/") + (home-page "https://www.tornadoweb.org/") (synopsis "Python web framework and asynchronous networking library") (description "Tornado is a Python web framework and asynchronous networking library, @@ -706,6 +705,7 @@ connection to each user.") (propagated-inputs `(("python2-backport-ssl-match-hostname" ,python2-backport-ssl-match-hostname) + ("python2-backports-abc" ,python2-backports-abc) ("python2-singledispatch" ,python2-singledispatch) ,@(package-propagated-inputs tornado)))))) @@ -775,10 +775,7 @@ term.js Javascript terminal emulator library.") (version "1.2.2") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/" - "38/76/ebcbc24d0cb77db34520a3ca6ed1bd43ace17d182bbd8dd7d976f1c176fb/" - "wsgi_intercept-" version ".tar.gz")) + (uri (pypi-uri "wsgi_intercept" version)) (sha256 (base32 "0kjj2v2dvmnpdd5h5gk9rzz0f54rhjb0yiz3zg65bmp65slfw65d")))) @@ -832,8 +829,7 @@ object to help create WSGI responses.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.event/zope.event-" version ".tar.gz")) + (uri (pypi-uri "zope.event" version)) (sha256 (base32 "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw")))) @@ -856,8 +852,7 @@ dispatching systems can be built.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.interface/zope.interface-" version ".tar.gz")) + (uri (pypi-uri "zope.interface" version)) (sha256 (base32 "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if")))) @@ -882,9 +877,7 @@ conforming to a given API or contract.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.exceptions/zope.exceptions-" - version ".tar.gz")) + (uri (pypi-uri "zope.exceptions" version)) (sha256 (base32 "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl")))) @@ -936,9 +929,7 @@ forms, HTTP servers, regular expressions, and more.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.testrunner/zope.testrunner-" - version ".zip")) + (uri (pypi-uri "zope.testrunner" version ".zip")) (sha256 (base32 "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1")))) @@ -975,10 +966,7 @@ tests.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/z" - "/zope.i18nmessageid/zope.i18nmessageid-" - version ".tar.gz")) + (uri (pypi-uri "zope.i18nmessageid" version)) (sha256 (base32 "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml")))) @@ -999,8 +987,7 @@ internationalized messages within program source text.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.schema/zope.schema-" version ".tar.gz")) + (uri (pypi-uri "zope.schema" version)) (sha256 (base32 "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank")))) @@ -1030,9 +1017,7 @@ defining data schemas.") (version "4.0.3") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.configuration/zope.configuration-" - version ".tar.gz")) + (uri (pypi-uri "zope.configuration" version)) (sha256 (base32 "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n")))) @@ -1058,8 +1043,7 @@ Markup Language.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.proxy/zope.proxy-" version ".tar.gz")) + (uri (pypi-uri "zope.proxy" version)) (sha256 (base32 "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4")))) @@ -1087,8 +1071,7 @@ brokering, etc.) for which the proxy is responsible.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.location/zope.location-" version ".tar.gz")) + (uri (pypi-uri "zope.location" version)) (sha256 (base32 "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74")))) @@ -1114,8 +1097,7 @@ Zope3, which are are special objects that have a structural location.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/z" - "/zope.security/zope.security-" version ".tar.gz")) + (uri (pypi-uri "zope.security" version)) (sha256 (base32 "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy")))) @@ -1416,29 +1398,30 @@ authenticated session objects providing things like keep-alive.") (define-public python-urllib3 (package (name "python-urllib3") - (version "1.23") + (version "1.24.1") (source (origin (method url-fetch) (uri (pypi-uri "urllib3" version)) (sha256 (base32 - "1bvbd35q3zdcd7gsv38fwpizy7p06dr0154g5gfybrvnbvhwb2m6")))) + "08lwd9f3hqznyf32vnzwvp87pchx062nkbgyrf67rwlkgj0jk5fy")))) (build-system python-build-system) (arguments `(#:tests? #f)) (native-inputs `(;; some packages for tests - ("python-nose" ,python-nose) ("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) ("python-tornado" ,python-tornado))) (propagated-inputs `(;; These 5 inputs are used to build urrlib3[secure] ("python-certifi" ,python-certifi) - ("python-cryptography" ,python-cryptography) ; + ("python-cryptography" ,python-cryptography) ("python-idna" ,python-idna) ("python-ipaddress" ,python-ipaddress) - ("python-pyopenssl" ,python-pyopenssl))) - (home-page "https://urllib3.readthedocs.org/") + ("python-pyopenssl" ,python-pyopenssl) + ("python-pysocks" ,python-pysocks))) + (home-page "https://urllib3.readthedocs.io/") (synopsis "HTTP library with thread-safe connection pooling") (description "Urllib3 supports features left out of urllib and urllib2 libraries. It @@ -1583,20 +1566,28 @@ minimum of WSGI.") (define-public python-flask (package (name "python-flask") - (version "0.11.1") + (version "1.0.2") (source (origin (method url-fetch) - (uri (pypi-uri "Flask" version)) + (uri (pypi-uri "flask" version)) (sha256 (base32 - "03kbfll4sj3v5z7r31c7bhfpi11r1np076d4p1k2kg4yzcmkywdl")))) + "0j6f4a9rpfh25k1gp7azqhnni4mb4fgy50jammgjgddw1l3w0w92")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "python" "-m" "pytest")))))) + (native-inputs + `(("python-pytest" ,python-pytest))) (propagated-inputs `(("python-itsdangerous" ,python-itsdangerous) ("python-jinja2" ,python-jinja2) ("python-click" ,python-click) ("python-werkzeug" ,python-werkzeug))) - (home-page "https://github.com/mitsuhiko/flask/") + (home-page "https://www.palletsprojects.com/p/flask/") (synopsis "Microframework based on Werkzeug, Jinja2 and good intentions") (description "Flask is a micro web framework based on the Werkzeug toolkit and Jinja2 template engine. It is called a micro framework because it does not @@ -2025,14 +2016,14 @@ pretty printer and a tree visitor.") (define-public python-flask-restful (package (name "python-flask-restful") - (version "0.3.5") + (version "0.3.7") (source (origin (method url-fetch) (uri (pypi-uri "Flask-RESTful" version)) (sha256 - (base32 - "0hjcmdb56b7z4bkw848lxfkyrpnkwzmqn2dgnlv12mwvjpzsxr6c")))) + (base32 + "1a9cbwkr6krryyzq4sd3f415nkkc6dyfls5i3pgyibs94g0hw97q")))) (build-system python-build-system) (propagated-inputs `(("python-aniso8601" ,python-aniso8601) @@ -2603,18 +2594,28 @@ List. Forked from and using the same API as the publicsuffix package.") (define-public python-werkzeug (package (name "python-werkzeug") - (version "0.11.15") + (version "0.14.1") (source (origin (method url-fetch) - (uri (pypi-uri "Werkzeug" version)) + (uri (pypi-uri "werkzeug" version)) (sha256 (base32 - "1h5wycw8yj7q0grqsjnsqflmrlsdagvl2j4dsgdncci6mjc7fpa5")))) + "0z2m4snn1vc9518r2vzgdj1nc90kcgi60wijvd29yvcp85ypmzf3")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'check) + (add-after 'install 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "python" "-m" "pytest")))))) + (propagated-inputs + `(("python-requests" ,python-requests))) (native-inputs `(("python-pytest" ,python-pytest))) - (home-page "http://werkzeug.pocoo.org/") + (home-page "https://www.palletsprojects.org/p/werkzeug/") (synopsis "Utilities for WSGI applications") (description "One of the most advanced WSGI utility modules. It includes a powerful debugger, full-featured request and response objects, HTTP utilities to diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 2294b59f33..992a750911 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -321,10 +321,7 @@ etc. ") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/b/" - "backports.ssl_match_hostname/backports.ssl_match_hostname-" - version ".tar.gz")) + (uri (pypi-uri "backports.ssl_match_hostname" version)) (sha256 (base32 "1wndipik52cyqy0677zdgp90i435pmvwd89cz98lm7ri0y3xjajh")))) @@ -531,8 +528,7 @@ to users of that module.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/l/lockfile/" - "lockfile-" version ".tar.gz")) + (uri (pypi-uri "lockfile" version)) (sha256 (base32 "16gpx5hm73ah5n1079ng0vy381hl802v606npkx4x8nb0gg05vba")))) @@ -1002,8 +998,7 @@ doing practical, real world data analysis in Python.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/m/mechanize/mechanize-" - version ".tar.gz")) + (uri (pypi-uri "mechanize" version)) (sha256 (base32 "0rj7r166i1dyrq0ihm5rijfmvhs8a04im28lv05c0c3v206v4rrf")))) @@ -1342,18 +1337,30 @@ existing ones.") (define-public scons (package (name "scons") - (version "3.0.1") + (version "3.0.3") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/scons/scons/" version - "/scons-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/SCons/scons.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0wzid419mlwqw9llrg8gsx4nkzhqy16m4m40r0xnh6cwscw5wir4")))) + "1xizkjgrvydkjhpv7i5rx0mdkp3618sis7jsckjh57nxcynlk5dc")))) (build-system python-build-system) (arguments `(#:use-setuptools? #f ; still relies on distutils - #:tests? #f)) ; no 'python setup.py test' command + #:tests? #f ; no 'python setup.py test' command + #:phases + (modify-phases %standard-phases + (add-before 'build 'bootstrap + (lambda _ + (substitute* "src/engine/SCons/compat/__init__.py" + (("sys.modules\\[new\\] = imp.load_module\\(old, \\*imp.find_module\\(old\\)\\)") + "sys.modules[new] = __import__(old)")) + (invoke "python" "bootstrap.py" "build/scons" "DEVELOPER=guix") + (chdir "build/scons") + #t))))) (home-page "http://scons.org/") (synopsis "Software construction tool written in Python") (description @@ -1400,9 +1407,7 @@ software.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/p/python-mimeparse/python-mimeparse-" - version ".tar.gz")) + (uri (pypi-uri "python-mimeparse" version)) (sha256 (base32 "0y2g6cl660bpz11srgqyvvm8gmywpgyx8g0xfvbiyr0af0yv1r3n")))) @@ -1638,20 +1643,17 @@ files.") (define-public python-click (package (name "python-click") - (version "6.7") + (version "7.0") (source (origin (method url-fetch) (uri (pypi-uri "click" version)) (sha256 (base32 - "02qkfpykbq35id8glfgwc38yc430427yd05z1wc5cnld8zgicmgi")))) + "1mzjixd4vjbjvzb6vylki9w1556a9qmdh35kzmq6cign46av952v")))) (build-system python-build-system) (arguments - `(;; The tests are fragile, depending on a specific version of pytest: - ;; <https://github.com/pallets/click/issues/823> - #:tests? #f - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'fix-paths (lambda* (#:key inputs #:allow-other-keys) @@ -1660,10 +1662,13 @@ files.") (substitute* "click/_unicodefun.py" (("'locale'") (string-append "'" glibc "/bin/locale'")))) - #t))))) + #t)) + (replace 'check + (lambda _ + (invoke "python" "-m" "pytest")))))) (native-inputs `(("python-pytest" ,python-pytest))) - (home-page "http://click.pocoo.org") + (home-page "https://palletsprojects.com/p/click/") (synopsis "Command line library for Python") (description "Click is a Python package for creating command line interfaces in a @@ -1738,10 +1743,7 @@ version numbers.") (version "2.6.0") (source (origin (method url-fetch) - (uri - (string-append - "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-" - version ".tar.gz")) + (uri (pypi-uri "jsonschema" version)) (sha256 (base32 "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg")))) @@ -1961,18 +1963,16 @@ visualisation and class tracker statistics.") (define-public python-itsdangerous (package (name "python-itsdangerous") - (version "0.24") + (version "1.1.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/i/itsdangerous/itsdangerous-" - version ".tar.gz")) + (uri (pypi-uri "itsdangerous" version)) (sha256 (base32 - "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb")))) + "068zpbksq5q2z4dckh2k1zbcq43ay74ylqn77rni797j0wyh66rj")))) (build-system python-build-system) - (home-page "https://github.com/mitsuhiko/itsdangerous") + (home-page "https://palletsprojects.com/p/itsdangerous/") (synopsis "Python library for passing data to/from untrusted environments") (description "Itsdangerous provides various helpers to pass trusted data to untrusted @@ -2074,9 +2074,7 @@ e.g. filters, callbacks and errbacks can all be promises.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-" - version ".tar.gz")) + (uri (pypi-uri "MarkupSafe" version)) (sha256 (base32 "0rdn1s8x9ni7ss8rfiacj7x1085lx8mh2zdwqslnw8xc3l4nkgm6")))) @@ -4326,8 +4324,7 @@ common operations on files to be invoked on those path objects directly.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/s/" - "simplegeneric/simplegeneric-" version ".zip")) + (uri (pypi-uri "simplegeneric" version ".zip")) (sha256 (base32 "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw")))) (build-system python-build-system) @@ -4355,9 +4352,7 @@ standard library.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/i/" - "ipython_genutils/ipython_genutils-" - version ".tar.gz")) + (uri (pypi-uri "ipython_genutils" version)) (sha256 (base32 "19l2pp1c64ansr89l3cqh19jdi2ixhssdzx0vz4n6r52a6i281is")))) (build-system python-build-system) @@ -5537,15 +5532,12 @@ complexity of Python source code.") (package (inherit python-pep8) (version "1.5.7") (source - (origin - (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/p/pep8/pep8-" - version - ".tar.gz")) - (sha256 - (base32 - "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m")))) + (origin + (method url-fetch) + (uri (pypi-uri "pep8" version)) + (sha256 + (base32 + "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m")))) (arguments ;; XXX Tests not compatible with Python 3.5. '(#:tests? #f)))) @@ -5559,15 +5551,12 @@ complexity of Python source code.") (package (inherit python-pyflakes) (version "0.8.1") (source - (origin - (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/p/pyflakes/pyflakes-" - version - ".tar.gz")) - (sha256 - (base32 - "0sbpq6pqm1i9wqi41mlfrsc5rk92jv4mskvlyxmnhlbdnc80ma1z")))) + (origin + (method url-fetch) + (uri (pypi-uri "pyflakes" version)) + (sha256 + (base32 + "0sbpq6pqm1i9wqi41mlfrsc5rk92jv4mskvlyxmnhlbdnc80ma1z")))) (arguments ;; XXX Tests not compatible with Python 3.5. '(#:tests? #f)))) @@ -6149,9 +6138,7 @@ Unicode-aware. It is not intended as an end-user tool.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/P/PrettyTable/" - "prettytable-" version ".tar.bz2")) + (uri (pypi-uri "prettytable" version ".tar.bz2")) (sha256 (base32 "0diwsicwmiq2cpzpxri7cyl5fmsvicafw6nfqf6p6p322dji2g45")))) @@ -6383,8 +6370,7 @@ domains support.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/p/" - "pretend/pretend-" version ".tar.gz")) + (uri (pypi-uri "pretend" version)) (sha256 (base32 "040vm94lcbscg5p81g1icmwwwa2jm7wrd1ybmxnv1sz8rl8bh3n9")))) @@ -6657,16 +6643,14 @@ Jupyter Notebook format and Python APIs for working with notebooks.") (define-public python-entrypoints (package (name "python-entrypoints") - (version "0.2.3") + (version "0.3") (source (origin (method url-fetch) - (uri (string-append "https://github.com/takluyver/entrypoints/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (pypi-uri "entrypoints" version)) (sha256 (base32 - "1pdvgfr5bxyvnfvxbsd3zi0dh3il71pc4k6rinx6zpps91b84a56")))) + "0lc4si3xb7hza424414rdqdc3vng3kcrph8jbvjqb32spqddf3f7")))) (build-system python-build-system) ;; The package does not come with a setup.py file, so we have to generate ;; one ourselves. @@ -7134,9 +7118,7 @@ This allows one to make simple text-mode user interfaces on Unix-like systems") (version "5.0.6") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/c/configobj/" - "configobj-" version ".tar.gz")) + (uri (pypi-uri "configobj" version)) (sha256 (base32 "00h9rcmws03xvdlfni11yb60bz3kxfvsj6dg6nrpzj71f03nbxd2")) @@ -9245,10 +9227,7 @@ programming errors.") (version "2.4.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/8b/3e/" - "384eeff406b06315738b62483fd2126c6e4f544167116b17cc04ea7d2a59/" - "pykafka-" version ".tar.gz")) + (uri (pypi-uri "pykafka" version)) (sha256 (base32 "1id6sr159p6aa13bxcqyr9gln8sqg1l0ddzns5iws8kk5q1p5cfv")))) @@ -9301,9 +9280,7 @@ specified in POSIX.1-2001 and POSIX.1-2008.") (version "0.1.7") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/j/jsonrpclib/" - "jsonrpclib-" version ".tar.gz")) + (uri (pypi-uri "jsonrpclib" version)) (sha256 (base32 "02vgirw2bcgvpcxhv5hf3yvvb4h5wzd1lpjx8na5psdmaffj6l3z")))) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 9c61d3c9ef..2e8f2d1135 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> -;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Quiliro <quiliro@fsfla.org> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> @@ -79,12 +79,13 @@ (version "5.1.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/steveire/grantlee/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/steveire/grantlee.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1lf9rkv0i0kd7fvpgg5l8jb87zw8dzcwd1liv6hji7g4wlpmfdiq")))) + (base32 "1dmah2gd6zd4fgz2f4ir11dazqg067hjz8xshhywhfsmavchi626")))) (native-inputs ;; Optional: lcov and cccc, both are for code coverage `(("doxygen" ,doxygen))) diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm new file mode 100644 index 0000000000..dd8c062d31 --- /dev/null +++ b/gnu/packages/sagemath.scm @@ -0,0 +1,60 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages sagemath) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system python) + #:use-module (gnu packages algebra) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz)) + + +(define-public python-cypari2 + (package + (name "python-cypari2") + (version "2.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cypari2" version)) + (sha256 + (base32 + "0mghbmilmy34xp1d50xdx76sijqxmpkm2bcgx2v1mdji2ff7n0yc")))) + (build-system python-build-system) + (native-inputs + `(("python-cython" ,python-cython))) + (propagated-inputs + `(("python-cysignals" ,python-cysignals))) + (inputs + `(("gmp" ,gmp) + ("pari-gp", pari-gp))) + (home-page "https://cypari2.readthedocs.io/") + (synopsis + "Python interface to the number theory library libpari") + (description + "Cypari2 provides a Python interface to the number theory library +PARI/GP. It has been spun off from the SageMath mathematics software system, +but it can be used independently.") + (license license:gpl2+))) + +(define-public python2-cypari2 + (package-with-python2 python-cypari2)) + diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index b836447668..bcaccb452c 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -1147,6 +1147,7 @@ generation.") #:test-target "test" #:phases (modify-phases %standard-phases + (delete 'bootstrap) (delete 'configure) ; No configure script (replace 'install ; Makefile has no 'install phase (lambda* (#:key outputs #:allow-other-keys) @@ -1160,9 +1161,9 @@ generation.") (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) - (and - (zero? (system* "./bootstrap.sh")) - (install-file "flisp.boot" bin)))))))) + (invoke "./bootstrap.sh") + (install-file "flisp.boot" bin) + #t)))))) (synopsis "Scheme-like lisp implementation") (description "@code{femtolisp} is a scheme-like lisp implementation with a diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index edf747de40..d0561559e9 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017, 2018 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2019 Meiyo Peng <meiyo.peng@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,9 +28,9 @@ (define-module (gnu packages shells) #:use-module (gnu packages) - #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages documentation) #:use-module (gnu packages groff) @@ -45,6 +46,7 @@ #:use-module (gnu packages scheme) #:use-module (guix build-system gnu) #:use-module (guix build-system python) + #:use-module (guix build-system trivial) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix licenses) @@ -89,51 +91,105 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") (define-public fish (package (name "fish") - (version "2.7.1") - (source (origin - (method url-fetch) - (uri - (list - (string-append "https://fishshell.com/files/" - version "/fish-" version ".tar.gz") - (string-append "https://github.com/fish-shell/fish-shell/" - "releases/download/" version "/" - name "-" version ".tar.gz"))) - (sha256 - (base32 - "0nhc3yc5lnnan7zmxqqxm07rdpwjww5ijy45ll2njdc6fnfb2az4")) - (modules '((guix build utils))) - ;; Don't try to install /etc/fish/config.fish. - (snippet '(begin - (substitute* "Makefile.in" - ((".*INSTALL.*sysconfdir.*fish.*") "")) - #t)))) + (version "3.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/fish-shell/fish-shell/" + "releases/download/" version "/" + name "-" version ".tar.gz")) + (sha256 + (base32 "1kzjd0n0sfslkd36lzrvvvgy3qwkd9y466bkrqlnhd5h9dhx77ga")))) (build-system gnu-build-system) - (native-inputs - `(("doxygen" ,doxygen))) (inputs - `(("bc" ,bc) + `(("fish-foreign-env" ,fish-foreign-env) + ("groff" ,groff) ; for 'fish --help' ("ncurses" ,ncurses) - ("groff" ,groff) ;for 'fish --help' - ("pcre2" ,pcre2) ;don't use the bundled PCRE2 - ("python" ,python-wrapper))) ;for fish_config and manpage completions + ("pcre2" ,pcre2) ; don't use the bundled PCRE2 + ("python" ,python))) ; for fish_config and manpage completions + (native-inputs + `(("doxygen" ,doxygen))) (arguments - '(#:tests? #f ; no check target - #:configure-flags '("--sysconfdir=/etc") + '(#:tests? #f ; no check target #:phases (modify-phases %standard-phases - ;; Embed absolute paths to store items. - (add-after 'unpack 'embed-store-paths - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* '("share/functions/math.fish" - "share/functions/seq.fish") - (("\\| bc") - (string-append "| " (assoc-ref %build-inputs "bc") - "/bin/bc"))) - (substitute* "share/functions/fish_update_completions.fish" - (("python") (which "python"))) + (add-after 'unpack 'patch-source + (lambda _ + (substitute* '("build_tools/build_commands_hdr.sh" + "build_tools/build_user_doc.sh") + (("/usr/bin/env") "env")) + #t)) + ;; Embed absolute paths. + (add-before 'install 'embed-absolute-paths + (lambda _ + (substitute* '("share/functions/__fish_config_interactive.fish" + "share/functions/fish_config.fish" + "share/functions/fish_update_completions.fish") + (("python3") (which "python3"))) (substitute* "share/functions/__fish_print_help.fish" (("nroff") (which "nroff"))) + #t)) + ;; Source /etc/fish/config.fish from $__fish_sysconf_dir/config.fish. + (add-before 'install 'patch-fish-config + (lambda _ + (let ((port (open-file "etc/config.fish" "a"))) + (display (string-append + "\n\n" + "# Patched by Guix.\n" + "# Source /etc/fish/config.fish.\n" + "if test -f /etc/fish/config.fish\n" + " source /etc/fish/config.fish\n" + "end\n") + port) + (close-port port)) + #t)) + ;; Enable completions, functions and configurations in user's and + ;; system's guix profiles by adding them to __extra_* variables. + (add-before 'install 'patch-fish-extra-paths + (lambda _ + (let ((port (open-file "share/__fish_build_paths.fish" "a"))) + (display + (string-append + "\n\n" + "# Patched by Guix.\n" + "# Enable completions, functions and configurations in user's" + " and system's guix profiles by adding them to __extra_*" + " variables.\n" + "set -l __guix_profile_paths ~/.guix-profile" + " /run/current-system/profile\n" + "set __extra_completionsdir" + " $__guix_profile_paths\"/etc/fish/completions\"" + " $__guix_profile_paths\"/share/fish/vendor_completions.d\"" + " $__extra_completionsdir\n" + "set __extra_functionsdir" + " $__guix_profile_paths\"/etc/fish/functions\"" + " $__guix_profile_paths\"/share/fish/vendor_functions.d\"" + " $__extra_functionsdir\n" + "set __extra_confdir" + " $__guix_profile_paths\"/etc/fish/conf.d\"" + " $__guix_profile_paths\"/share/fish/vendor_conf.d\"" + " $__extra_confdir\n") + port) + (close-port port)) + #t)) + ;; Use fish-foreign-env to source /etc/profile. + (add-before 'install 'source-etc-profile + (lambda* (#:key inputs #:allow-other-keys) + (let ((port (open-file "share/__fish_build_paths.fish" "a"))) + (display + (string-append + "\n\n" + "# Patched by Guix.\n" + "# Use fish-foreign-env to source /etc/profile.\n" + "if status is-login\n" + " set fish_function_path " + (assoc-ref inputs "fish-foreign-env") "/share/fish/functions" + " $__fish_datadir/functions\n" + " fenv source /etc/profile\n" + " set -e fish_function_path\n" + "end\n") + port) + (close-port port)) #t))))) (synopsis "The friendly interactive shell") (description @@ -148,6 +204,54 @@ and syntax highlighting.") (home-page "https://fishshell.com/") (license gpl2))) +(define-public fish-foreign-env + (package + (name "fish-foreign-env") + (version "0.20190116") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oh-my-fish/plugin-foreign-env.git") + (commit "dddd9213272a0ab848d474d0cbde12ad034e65bc"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00xqlyl3lffc5l0viin1nyp819wf81fncqyz87jx8ljjdhilmgbs")))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((source (assoc-ref %build-inputs "source")) + (out (assoc-ref %outputs "out")) + (func-path (string-append out "/share/fish/functions"))) + (mkdir-p func-path) + (copy-recursively (string-append source "/functions") + func-path) + + ;; Embed absolute paths. + (substitute* `(,(string-append func-path "/fenv.fish") + ,(string-append func-path "/fenv.apply.fish") + ,(string-append func-path "/fenv.main.fish")) + (("bash") + (string-append (assoc-ref %build-inputs "bash") "/bin/bash")) + (("sed") + (string-append (assoc-ref %build-inputs "sed") "/bin/sed")) + ((" tr ") + (string-append " " (assoc-ref %build-inputs "coreutils") + "/bin/tr "))))))) + (inputs + `(("bash" ,bash) + ("coreutils" ,coreutils) + ("sed" ,sed))) + (home-page "https://github.com/oh-my-fish/plugin-foreign-env") + (synopsis "Foreign environment interface for fish shell") + (description "@code{fish-foreign-env} wraps bash script execution in a way +that environment variables that are exported or modified get imported back +into fish.") + (license expat))) + (define-public rc (package (name "rc") diff --git a/gnu/packages/skribilo.scm b/gnu/packages/skribilo.scm index 12bdd1a2fa..a01633c4b8 100644 --- a/gnu/packages/skribilo.scm +++ b/gnu/packages/skribilo.scm @@ -22,6 +22,7 @@ #:use-module (guix licenses) #:use-module (guix build-system gnu) #:use-module (gnu packages guile) + #:use-module (gnu packages guile-xyz) #:use-module (gnu packages lout) #:use-module (gnu packages pkg-config) #:use-module (gnu packages plotutils) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index ecfecdad40..04b49def54 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1808,13 +1808,13 @@ times.") (define-public r-data-table (package (name "r-data-table") - (version "1.11.8") + (version "1.12.0") (source (origin (method url-fetch) (uri (cran-uri "data.table" version)) (sha256 (base32 - "1nb6wngrk1a30m984524gf26fa1nwgyf4y4an94dibcwb5jp8hnw")))) + "1xz388khklqqc39r1cmjvqm65azambgzqw0743aypm6v4chi26v1")))) (build-system r-build-system) (home-page "https://github.com/Rdatatable/data.table/wiki") (synopsis "Enhanced version of data.frame R object") @@ -2100,14 +2100,14 @@ R version.") (define-public r-checkmate (package (name "r-checkmate") - (version "1.9.0") + (version "1.9.1") (source (origin (method url-fetch) (uri (cran-uri "checkmate" version)) (sha256 (base32 - "00bjlc910y4paddvpz68pl3qyvjxlwqgyh39wpfkq43p99gvnj37")))) + "1y4ylzn55kpyfpzcx9rxb9413d3ck6hair36ldl0ak61ia5kc75p")))) (build-system r-build-system) (propagated-inputs `(("r-backports" ,r-backports))) @@ -2297,17 +2297,21 @@ collation, and NAMESPACE files.") (define-public r-openssl (package (name "r-openssl") - (version "1.1") + (version "1.2.1") (source (origin (method url-fetch) (uri (cran-uri "openssl" version)) (sha256 (base32 - "0ldxgcr33lawwr8wp14kdk2678gpkvqkzv6g333bhck1hn6qspzv")))) + "0ypa41qr58jgipzkqn3wjqdsjyi7qk57i46s5wy88xy3j8jl9jkv")))) (build-system r-build-system) (inputs `(("libressl" ,libressl))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("r-askpass" ,r-askpass))) (home-page "https://github.com/jeroenooms/openssl") (synopsis "Toolkit for encryption, signatures and certificates") (description @@ -2557,13 +2561,13 @@ well as additional utilities such as panel and axis annotation functions.") (define-public r-rcpparmadillo (package (name "r-rcpparmadillo") - (version "0.9.200.5.0") + (version "0.9.200.7.0") (source (origin (method url-fetch) (uri (cran-uri "RcppArmadillo" version)) (sha256 (base32 - "09041jnalh7352kj6lv4d0xr9c0mvf8p860q5c8m13mp214x5x7k")))) + "11m04yvdh6086567dzzxchbf68fl5hxf2y32acf3f43bjqgwbv2p")))) (properties `((upstream-name . "RcppArmadillo"))) (build-system r-build-system) (native-inputs @@ -3320,14 +3324,14 @@ Stochastic Neighbor Embedding using a Barnes-Hut implementation.") (define-public r-e1071 (package (name "r-e1071") - (version "1.7-0") + (version "1.7-0.1") (source (origin (method url-fetch) (uri (cran-uri "e1071" version)) (sha256 (base32 - "0fk4pw67cw1663d0n9rf1qfdqzz8k5nqkjgp3hi5jr422qp9lsck")))) + "11fqm4shmksalkazcwvzfknp3amigw7fr8wdwanqa5v5kx7ihyq9")))) (build-system r-build-system) (propagated-inputs `(("r-class" ,r-class))) @@ -3755,18 +3759,17 @@ It uses and relies on grid graphics and formal (S4) classes and methods.") (define-public r-purrr (package (name "r-purrr") - (version "0.2.5") + (version "0.3.0") (source (origin (method url-fetch) (uri (cran-uri "purrr" version)) (sha256 (base32 - "0dc53zzan3km2l9lzxjixcv6yn7dhw2ppmz8qf2awhak7x2qm9m4")))) + "0mzbf9ca8qdrqkrh9x7yzqxiab9bk10ql46qr1wl2bgbflminzda")))) (build-system r-build-system) (propagated-inputs - `(("r-tibble" ,r-tibble) - ("r-magrittr" ,r-magrittr) + `(("r-magrittr" ,r-magrittr) ("r-rlang" ,r-rlang))) (home-page "https://github.com/hadley/purrr") (synopsis "Functional programming tools") @@ -3981,14 +3984,14 @@ package instead.") (define-public r-hmisc (package (name "r-hmisc") - (version "4.1-1") + (version "4.2-0") (source (origin (method url-fetch) (uri (cran-uri "Hmisc" version)) (sha256 (base32 - "160l50ppjs69ipcaya1mlcz29zbn5rmqg91r09dvzzvkvwfb47cr")))) + "1n8i2jhc308hd6bvys9cd7nrz7pwjszs03r5bwlh1pc869ki95ly")))) (properties `((upstream-name . "Hmisc"))) (build-system r-build-system) (native-inputs @@ -4200,14 +4203,14 @@ including: (define-public r-gplots (package (name "r-gplots") - (version "3.0.1") + (version "3.0.1.1") (source (origin (method url-fetch) (uri (cran-uri "gplots" version)) (sha256 (base32 - "02nb8n3s7c1zxq2s7ycaq2ys72y7mzirxrwj954h6gdc4x1zhg9l")))) + "033plcfs9w8pmn84n24mdhiixdirc2a7pz6dvm61fpd20gwh7cbx")))) (build-system r-build-system) (propagated-inputs `(("r-catools" ,r-catools) @@ -4727,14 +4730,14 @@ and resampling-based inference.") (define-public r-prabclus (package (name "r-prabclus") - (version "2.2-6") + (version "2.2-7") (source (origin (method url-fetch) (uri (cran-uri "prabclus" version)) (sha256 (base32 - "0qjsxrx6yv338bxm4ki0w9h8hind1l98abdrz828588bwj02jya1")))) + "0h2nml8ri27mhfs2p6ngb6kfd6lyq30sc6813yybpskkrb6gs1pb")))) (build-system r-build-system) (propagated-inputs `(("r-mass" ,r-mass) @@ -5404,14 +5407,14 @@ diagnostic tools (@code{ctlcurves} and @code{DiscrFact}).") (define-public r-ranger (package (name "r-ranger") - (version "0.10.1") + (version "0.11.1") (source (origin (method url-fetch) (uri (cran-uri "ranger" version)) (sha256 (base32 - "12z67xkgdmr5cflpd6cln0mn5xxajanqbfwlckv6cfma0gvf2z1j")))) + "1yyg1nppq76jngzffd44brppqrlxqdhv92pyy0gn09rfc0ab37wr")))) (build-system r-build-system) (propagated-inputs `(("r-rcpp" ,r-rcpp) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 236923a2d6..7f52c6efd4 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com> +;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -910,7 +911,7 @@ tmux.") (define-public kitty (package (name "kitty") - (version "0.13.1") + (version "0.13.3") (home-page "https://sw.kovidgoyal.net/kitty/") (source (origin @@ -921,7 +922,7 @@ tmux.") (file-name (git-file-name name version)) (sha256 (base32 - "1j24zjasdh48z7majfpqr71n1wn5a9688wsmmqn26v8kfb68pqs4")) + "1y0vd75j8g61jdj8miml79w5ri3pqli5rv9iq6zdrxvzfa4b2rmb")) (modules '((guix build utils))) (snippet '(begin @@ -943,7 +944,8 @@ tmux.") ("libpng" ,libpng) ("freetype" ,freetype) ("fontconfig" ,fontconfig) - ("pygments" ,python2-pygments))) + ("pygments" ,python-pygments) + ("wayland" ,wayland))) (native-inputs `(("pkg-config" ,pkg-config) ("libxrandr" ,libxrandr) @@ -959,6 +961,15 @@ tmux.") (arguments '(#:phases (modify-phases %standard-phases (delete 'configure) + ;; Wayland backend requires EGL, which isn't found + ;; out-of-the-box for some reason. Hard-code it instead. + (add-after 'unpack 'hard-code-libegl + (lambda _ + (let* ((mesa (assoc-ref %build-inputs "libgl1-mesa")) + (libegl (string-append mesa "/lib/libEGL.so.1"))) + (substitute* "glfw/egl_context.c" + (("libEGL.so.1") libegl))) + #t)) (replace 'build (lambda _ (invoke "python3" "setup.py" "linux-package"))) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 2852b37676..5f294dc84c 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -2770,8 +2770,17 @@ re-processing.") (sha256 (base32 "0y4i651b75y6006n03x8n86bsqvjsailvvz9bhzy51dzsznqidq0")))) - (build-system texlive-build-system) - (arguments '(#:tex-directory "latex/seminar")) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/latex/seminar"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) (home-page "https://www.ctan.org/pkg/seminar") (synopsis "Make overhead slides") ;; TODO: This package may need fancybox and xcomment at runtime. @@ -5806,3 +5815,68 @@ for use with LaTeX is available in @code{freenfss}, part of supports advanced interactive documents. See the ConTeXt garden for a wealth of support information.") (license license:gpl2+))) + +(define-public texlive-latex-beamer + (package + (name "texlive-latex-beamer") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/beamer")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09y3qwbj0nckshvg9afgwcv9v3zdif1d7bnpzrggsa1fbr80mgk2")))) + (build-system trivial-build-system) + (outputs '("out" "doc")) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/latex/beamer")) + (docs (string-append (assoc-ref %outputs "doc") + "/share/texmf-dist/doc/latex/beamer/"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + + (mkdir-p docs) + (copy-recursively (assoc-ref %build-inputs "docs") docs) + #t)))) + (propagated-inputs + `(("texlive-latex-hyperref" ,texlive-latex-hyperref) + ("texlive-latex-oberdiek" ,texlive-latex-oberdiek) + ("texlive-latex-etoolbox" ,texlive-latex-etoolbox) + ("texlive-latex-pgf" ,texlive-latex-pgf))) + (native-inputs + `(("docs" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/doc/latex/beamer")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "102b18b9nw9dicqqgjwx0srh1mav8vh9wdvwayn741niza9hac23")))))) + (home-page "https://www.ctan.org/pkg/beamer") + (synopsis "LaTeX class for producing presentations and slides") + (description "The beamer LaTeX class can be used for producing slides. +The class works in both PostScript and direct PDF output modes, using the +@code{pgf} graphics system for visual effects. Content is created in the +@code{frame} environment, and each frame can be made up of a number of slides +using a simple notation for specifying material to appear on each slide within +a frame. Short versions of title, authors, institute can also be specified as +optional parameters. Whole frame graphics are supported by plain frames. The +class supports @code{figure} and @code{table} environments, transparency +effects, varying slide transitions and animations.") + ;; Code is dual licensed under GPLv2+ or LPPL1.3c+; documentation is + ;; dual-licensed under either FDLv1.3+ or LPPL1.3c+. + (license (list license:lppl1.3c+ license:gpl2+ license:fdl1.3+)))) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 9d8ecbd339..4fb46c7303 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -123,15 +123,16 @@ in intelligent transportation networks.") (define-public p11-kit (package (name "p11-kit") - (version "0.23.14") + (version "0.23.15") (source (origin (method url-fetch) (uri (string-append "https://github.com/p11-glue/p11-kit/releases/" "download/" version "/p11-kit-" version ".tar.gz")) + (patches (search-patches "p11-kit-jks-timestamps.patch")) (sha256 (base32 - "0w0dkq9388grbbn4bv2p55vy1j51f7nd9hzlc9gz4fbm4dnzmf8w")))) + "166pwj00cffv4qq4dvx0k53zka0b0r1fa0whc49007vsqyh3khgp")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 4121832f12..8f0884db09 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -399,7 +399,7 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (define-public x265 (package (name "x265") - (version "2.9") + (version "3.0") (outputs '("out" "static")) (source (origin @@ -408,9 +408,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).") "x265_" version ".tar.gz")) (sha256 (base32 - "090hp4216isis8q5gb7bwzia8rfyzni54z21jnwm97x3hiy6ibpb")) - (patches (search-patches "x265-arm-flags.patch" - "x265-detect512-all-arches.patch")) + "0qh65wdpasrspkm1y0dlfa123myax568yi0sas0lmg5b1hkgrff5")) + (patches (search-patches "x265-arm-flags.patch")) (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "source/compat/getopt") @@ -871,6 +870,34 @@ audio/video codec library.") (base32 "0b59qk5wpc5ksiha76jbhb859g5gxa4w0k6afh3kgvgajiivs73l")))))) +(define-public ffmpeg-for-stepmania + (hidden-package + (package + (inherit ffmpeg) + (version "2.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stepmania/ffmpeg.git") + (commit "eda6effcabcf9c238e4635eb058d72371336e09b"))) + (sha256 + (base32 "1by8rmbva8mfrivdbbkr2gx4kga89zqygkd4cfjl76nr8mdcdamb")) + (file-name (git-file-name "ffmpeg" version)))) + (arguments + (substitute-keyword-arguments (package-arguments ffmpeg) + ((#:configure-flags flags) + '(list "--disable-programs" + "--disable-doc" + "--disable-debug" + "--disable-avdevice" + "--disable-swresample" + "--disable-postproc" + "--disable-avfilter" + "--disable-shared" + "--enable-static")))) + (inputs '())))) + (define-public ffmpegthumbnailer (package (name "ffmpegthumbnailer") @@ -1314,7 +1341,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2019.01.17") + (version "2019.01.27") (source (origin (method url-fetch) (uri (string-append "https://github.com/rg3/youtube-dl/releases/" @@ -1322,7 +1349,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "0fxajwv81b0bjw9qlwmxd4r93yp5nnqll79vhic0vy72ii0093r7")))) + "0z4x4lwpd6qd2r9xgp8cx4j1vl5vd76kzs74jp0hh3w2g31s51z8")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index d178a08413..26855b8007 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -110,6 +110,8 @@ (method url-fetch) (uri (string-append "https://download.qemu.org/qemu-" version ".tar.xz")) + (patches (search-patches "qemu-CVE-2018-16872.patch" + "qemu-CVE-2019-6778.patch")) (sha256 (base32 "1z5bd5nfyjvhfi1s95labc82y4hjdjjkdabw931362ls0zghh1ba")))) @@ -799,13 +801,13 @@ Machine Protocol.") (version "a12") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/gnif/LookingGlass/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version)) + (method git-fetch) + (uri (git-reference (url "https://github.com/gnif/LookingGlass") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0x57chx83f8pq56d9sfxmc9p4qjm9nqvdyamj41bmy145mxw5w3m")))) + "0r6bvl9q94039r6ff4f2bg8si95axx9w8bf1h1qr5730d2kv5yxq")))) (build-system cmake-build-system) (inputs `(("fontconfig" ,fontconfig) ("glu" ,glu) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 8d51af40e5..57346518a3 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is> -;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> @@ -88,6 +88,7 @@ #:use-module (gnu packages gperf) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages guile-xyz) #:use-module (gnu packages java) #:use-module (gnu packages jemalloc) #:use-module (gnu packages image) @@ -123,14 +124,14 @@ (define-public httpd (package (name "httpd") - (version "2.4.37") + (version "2.4.38") (source (origin (method url-fetch) (uri (string-append "mirror://apache/httpd/httpd-" version ".tar.bz2")) (sha256 (base32 - "09npb7vlz5sizgj0nvl0bqxj9zig29ipkp07fgmw5ykjcxfdr61l")))) + "0jiriyyf3pm6axf4mrz6c2z08yhs21hb4d23viq87jclm5bmiikx")))) (build-system gnu-build-system) (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config' (inputs `(("apr" ,apr) @@ -5278,20 +5279,18 @@ snippets on @url{https://commandlinefu.com}.") (define-public rss-bridge (package (name "rss-bridge") - (version "2018-11-10") + (version "2019-01-13") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/RSS-Bridge/rss-bridge/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/RSS-Bridge/rss-bridge") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1l9a82smh6k37bjvzbmkdlssxywlmr40ig4cykgsns1iiszwv4ia")))) + "1m0dq491954f0d7k4508ddlywk09whcz9j21rc4yk3lbwpf0nd4c")))) (build-system trivial-build-system) - (native-inputs - `(("gzip" ,gzip) - ("tar" ,tar))) (arguments '(#:modules ((guix build utils)) #:builder @@ -5300,12 +5299,9 @@ snippets on @url{https://commandlinefu.com}.") (ice-9 match)) (let* ((out (assoc-ref %outputs "out")) (share-rss-bridge (string-append out "/share/rss-bridge"))) - (set-path-environment-variable - "PATH" '("bin") (map (match-lambda ((_ . input) input)) - %build-inputs)) (mkdir-p share-rss-bridge) - (invoke "tar" "xvf" (assoc-ref %build-inputs "source") - "--strip-components" "1" "-C" share-rss-bridge))))) + (copy-recursively (assoc-ref %build-inputs "source") share-rss-bridge) + #t)))) (home-page "https://github.com/RSS-Bridge/rss-bridge") (synopsis "Generate Atom feeds for social networking websites") (description "rss-bridge generates Atom feeds for social networking @@ -5324,6 +5320,9 @@ Instagram and YouTube.") (uri (git-reference (url "https://github.com/linkchecker/linkchecker") (commit (string-append "v" version)))) + (patches + (search-patches + "linkchecker-mark-more-tests-that-require-the-network.patch")) (file-name (git-file-name name version)) (sha256 (base32 @@ -5333,8 +5332,32 @@ Instagram and YouTube.") `(("python2-dnspython" ,python2-dnspython) ("python2-pyxdg" ,python2-pyxdg) ("python2-requests" ,python2-requests))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("python2-pytest" ,python2-pytest) + ("python2-miniboa" ,python2-miniboa) + ("python2-parameterized" ,python2-parameterized))) (arguments - `(#:python ,python-2)) + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + ;; Move the 'check phase to after 'install, so that the installed + ;; library can be used + (delete 'check) + (add-after 'install 'check + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Set PYTHONPATH so that the installed linkchecker is used + (setenv "PYTHONPATH" + (string-append out "/lib/python2.7/site-packages" + ":" + (getenv "PYTHONPATH"))) + ;; Remove this directory to avoid it being used when running + ;; the tests + (delete-file-recursively "linkcheck") + + (invoke "py.test" "tests")) + #t))))) (home-page "https://linkcheck.github.io/linkchecker") (synopsis "Check websites for broken links") (description "LinkChecker is a website validator. It checks for broken diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 7bf634759a..fa0e467f31 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -181,14 +181,14 @@ commands would.") (define-public i3-wm (package (name "i3-wm") - (version "4.16") + (version "4.16.1") (source (origin (method url-fetch) (uri (string-append "https://i3wm.org/downloads/i3-" version ".tar.bz2")) (sha256 (base32 - "1d2mnryn7m9c6d69awd7lwzadliapd0ahi5n8d0ppqy533ssaq6c")))) + "0xl56y196vxv001gvx35xwfr25zah8m3xwizp9ycdgdc0rfc4rdb")))) (build-system gnu-build-system) (arguments `(#:make-flags diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 7e3c1aad1c..bf7a4050a3 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net> ;;; Copyright © 2019 nee <nee@cock.li> +;;; Copyright © 2019 Yoshinori Arai <kumagusu08@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2623,6 +2624,29 @@ as USB mice.") "xf86-input-void is a null input driver for the Xorg X server.") (license license:x11))) +(define-public xf86-video-amdgpu + (package + (name "xf86-video-amdgpu") + (version "18.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://xorg/individual/driver/xf86-video-amdgpu-" + version + ".tar.bz2")) + (sha256 + (base32 + "0wlnb929l3yqj4hdkzyxyhbaph13ac4villajgmbh66pa6xja7z1")))) + (build-system gnu-build-system) + (inputs `(("xorg-server" ,xorg-server))) + (native-inputs `(("pkg-config" ,pkg-config))) + (home-page "https://www.x.org/wiki/") + (synopsis "AMD Radeon video driver for X server") + (description + "xf86-video-amdgpu is an AMD Radeon video driver for the Xorg +X server.") + (license license:x11))) (define-public xf86-video-ark (package @@ -5701,6 +5725,37 @@ user-friendly mechanism to start the X server.") Intrinsics (Xt) Library.") (license license:x11))) +(define-public xclock + (package + (name "xclock") + (version "1.0.7") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.x.org/releases/individual/app/" + name "-" version ".tar.bz2")) + (sha256 + (base32 "1l3xv4bsca6bwxx73jyjz0blav86i7vwffkhdb1ac81y9slyrki3")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-appdefaultdir=" + %output ,%app-defaults-dir)))) + (inputs + `(("libxmu" ,libxmu) + ("libx11" ,libx11) + ("libxaw" ,libxaw) + ("libxrender" ,libxrender) + ("libxft" ,libxft) + ("libxkbfile" ,libxkbfile))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.x.org/") + (synopsis "Analog / digital clock for X") + (description "The xclock program displays the time in analog or digital +form.") + (license (license:x11-style "file://COPYING" "See COPYING for details.")))) + (define-public xmag (package (name "xmag") |