From 3755d5cb5e3faa7fb432e0d6ae49bed4ff91c364 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 22 Jul 2019 23:06:55 +0200 Subject: [PATCH 001/161] gnu: harmonist: Update to 0.2. * gnu/packages/games.scm (harmonist): Update to 0.2. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 4d6b527ff7..266a2d3bac 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -7240,7 +7240,7 @@ (define-public hedgewars (define-public harmonist (package (name "harmonist") - (version "0.1") + (version "0.2") (source (origin (method git-fetch) (uri (git-reference @@ -7249,7 +7249,7 @@ (define-public harmonist (file-name (git-file-name name version)) (sha256 (base32 - "006vkhb84v78ssfwppc221n4za0y02ypg7ihrihin4vj4gllmzf7")))) + "0hqy9kqwgirwkq1v3vj1hp9m93hjvdj4nxcfbjfvvwk2bbzri3s2")))) (build-system go-build-system) (arguments '(#:import-path "git.tuxfamily.org/harmonist/harmonist")) From 12cc3da5c189cdbb23b56acf38c46d8efe80cee2 Mon Sep 17 00:00:00 2001 From: Jack Hill Date: Mon, 22 Jul 2019 09:33:01 -0400 Subject: [PATCH 002/161] gnu: mallard-ducktype: Update to 1.0.2. * gnu/packages/python-xyz.scm (mallard-ducktype) Update to 1.0.2. Signed-off-by: Efraim Flashner --- gnu/packages/python-xyz.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d8f144893d..362ab7f031 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3122,19 +3122,19 @@ (define-public pelican (define-public mallard-ducktype (package (name "mallard-ducktype") - (version "1.0.1") + (version "1.0.2") (source (origin (method git-fetch) - ;; git-reference because a proper source tarball is not available - ;; https://lists.gnu.org/archive/html/guix-devel/2019-05/msg00209.html + ;; git-reference because tests are not included in pypi source tarball + ;; https://issues.guix.gnu.org/issue/36755#2 (uri (git-reference (url "https://github.com/projectmallard/mallard-ducktype.git") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0crland0kmpsyjfmnflcw7gaqy5b87b6ah17cmr9d5z1kyazf54n")))) + "1jk9bfz7g04ip78s03b0xak6d54rj4h9zpgadkziy1ji216g6y4c")))) (build-system python-build-system) (arguments '(#:phases From 12277003d36caf608cbedc57369cbfe1d04e1961 Mon Sep 17 00:00:00 2001 From: Robert Vollmert Date: Mon, 15 Jul 2019 12:59:15 +0200 Subject: [PATCH 003/161] Makefile: Sort scheme tests alphabetically. * Makefile.am (SCM_TESTS): Sort. Signed-off-by: Efraim Flashner --- Makefile.am | 120 ++++++++++++++++++++++++++-------------------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/Makefile.am b/Makefile.am index e36f2d9f21..7fa51d17ac 100644 --- a/Makefile.am +++ b/Makefile.am @@ -361,77 +361,77 @@ TEST_EXTENSIONS = .scm .sh if CAN_RUN_TESTS SCM_TESTS = \ + tests/accounts.scm \ tests/base16.scm \ tests/base32.scm \ tests/base64.scm \ + tests/bournish.scm \ + tests/builders.scm \ + tests/build-utils.scm \ + tests/cache.scm \ + tests/challenge.scm \ tests/channels.scm \ + tests/combinators.scm \ + tests/containers.scm \ tests/cpan.scm \ tests/cpio.scm \ - tests/crate.scm \ - tests/gem.scm \ - tests/pki.scm \ - tests/print.scm \ - tests/sets.scm \ - tests/modules.scm \ - tests/gnu-maintenance.scm \ - tests/substitute.scm \ - tests/swh.scm \ - tests/builders.scm \ - tests/derivations.scm \ - tests/glob.scm \ - tests/grafts.scm \ - tests/ui.scm \ - tests/status.scm \ - tests/records.scm \ - tests/processes.scm \ - tests/upstream.scm \ - tests/combinators.scm \ - tests/discovery.scm \ - tests/utils.scm \ - tests/build-utils.scm \ - tests/packages.scm \ - tests/snix.scm \ - tests/hackage.scm \ tests/cran.scm \ - tests/elpa.scm \ - tests/texlive.scm \ - tests/store.scm \ - tests/monads.scm \ - tests/gexp.scm \ - tests/nar.scm \ - tests/union.scm \ - tests/profiles.scm \ - tests/search-paths.scm \ - tests/syscalls.scm \ - tests/inferior.scm \ - tests/gremlin.scm \ + tests/crate.scm \ + tests/cve.scm \ tests/debug-link.scm \ - tests/bournish.scm \ - tests/lint.scm \ - tests/publish.scm \ - tests/scripts.scm \ - tests/size.scm \ - tests/graph.scm \ - tests/challenge.scm \ - tests/cache.scm \ - tests/cve.scm \ - tests/workers.scm \ - tests/zlib.scm \ - tests/lzlib.scm \ + tests/derivations.scm \ + tests/discovery.scm \ + tests/elpa.scm \ tests/file-systems.scm \ - tests/uuid.scm \ - tests/system.scm \ - tests/accounts.scm \ - tests/services.scm \ - tests/scripts-build.scm \ - tests/containers.scm \ - tests/opam.scm \ - tests/pack.scm \ - tests/pypi.scm \ + tests/gem.scm \ + tests/gexp.scm \ + tests/glob.scm \ + tests/gnu-maintenance.scm \ + tests/grafts.scm \ + tests/graph.scm \ + tests/gremlin.scm \ + tests/hackage.scm \ tests/import-utils.scm \ + tests/inferior.scm \ + tests/lint.scm \ + tests/lzlib.scm \ + tests/modules.scm \ + tests/monads.scm \ + tests/nar.scm \ + tests/opam.scm \ + tests/packages.scm \ + tests/pack.scm \ + tests/pki.scm \ + tests/print.scm \ + tests/processes.scm \ + tests/profiles.scm \ + tests/publish.scm \ + tests/pypi.scm \ + tests/records.scm \ + tests/scripts.scm \ + tests/scripts-build.scm \ + tests/search-paths.scm \ + tests/services.scm \ + tests/sets.scm \ + tests/size.scm \ + tests/snix.scm \ + tests/status.scm \ tests/store-database.scm \ - tests/store-deduplication.scm \ - tests/store-roots.scm + tests/store-deduplication.scm \ + tests/store-roots.scm \ + tests/store.scm \ + tests/substitute.scm \ + tests/swh.scm \ + tests/syscalls.scm \ + tests/system.scm \ + tests/texlive.scm \ + tests/ui.scm \ + tests/union.scm \ + tests/upstream.scm \ + tests/utils.scm \ + tests/uuid.scm \ + tests/workers.scm \ + tests/zlib.scm SH_TESTS = \ tests/guix-build.sh \ From d7ab6c9067ecdafb3537ac2b379d943077c6a61d Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Mon, 22 Jul 2019 15:47:54 +0200 Subject: [PATCH 004/161] gnu: emacs-google-translate: Update to 0.11.18. * gnu/packages/emacs-xyz.scm (emacs-google-translate): Update to 0.11.18. Signed-off-by: Efraim Flashner --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index a808749444..e9b61de04c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -13250,7 +13250,7 @@ (define-public emacs-gif-screencast (define-public emacs-google-translate (package (name "emacs-google-translate") - (version "0.11.17") + (version "0.11.18") (source (origin (method git-fetch) @@ -13260,7 +13260,7 @@ (define-public emacs-google-translate (file-name (git-file-name name version)) (sha256 (base32 - "05ljjw7kbnszygw3w085kv57swfiiqxri2b5xvsf5dw3pc3g7j3c")))) + "1kbiqisqyk31l94gxsirhnrdkj51ylgcb16fk2wf7zigmf13jqzp")))) (build-system emacs-build-system) (home-page "https://github.com/atykhonov/google-translate") (synopsis "Emacs interface to Google Translate") From 6583ef601aa6a7789cfa6a8a3cb94a603c9d736f Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Mon, 22 Jul 2019 22:53:56 +0200 Subject: [PATCH 005/161] gnu: emacs-request: Update to 0.3.1. * gnu/packages/emacs-xyz.scm (emacs-request): Update to 0.3.1. Signed-off-by: Efraim Flashner --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index e9b61de04c..9baa782e2e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4503,7 +4503,7 @@ (define-public emacs-realgud (define-public emacs-request (package (name "emacs-request") - (version "0.3.0") + (version "0.3.1") (source (origin (method git-fetch) (uri (git-reference @@ -4512,7 +4512,7 @@ (define-public emacs-request (file-name (git-file-name name version)) (sha256 (base32 - "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7")))) + "0fhhd349l4iqkrjxqzpckfk2w45x2g4cccpm1dqzv9m49md1wphx")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-deferred" ,emacs-deferred))) From 4d3a2b5ac7e6b7c8b896869ceadea8317b38c746 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 23 Jul 2019 16:35:26 +0300 Subject: [PATCH 006/161] gnu: terminology: Update to 1.5.0. * gnu/packages/enlightenment.scm (terminology): Update to 1.5.0. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 8a59bedb15..90aa48c23c 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -184,7 +184,7 @@ (define-public efl (define-public terminology (package (name "terminology") - (version "1.4.1") + (version "1.5.0") (source (origin (method url-fetch) (uri @@ -192,7 +192,7 @@ (define-public terminology "terminology/terminology-" version ".tar.xz")) (sha256 (base32 - "0mm9v5a94369is3kaarnr3a28wy42wslzi1mcisaidlcldgv7f6p")) + "0v4amfg8ji0mb6j7kcxh3wz1xw5zyxg4rw6ylx17rfw2nc1yamfy")) (modules '((guix build utils))) ;; Remove the bundled fonts. (snippet From c42db89ff992037841e7937059db952571af86fa Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 23 Jul 2019 21:15:43 +0200 Subject: [PATCH 007/161] doc: Add example for generating a secret key with knot DNS. * doc/guix.texi (DNS Services): Add an example and more context to the includes field of the knot-configuration record. --- doc/guix.texi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 107c16b8db..8c5fa5f741 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -20598,6 +20598,21 @@ thus not visible in @file{/gnu/store}---e.g., you could store secret key configuration in @file{/etc/knot/secrets.conf} and add this file to the @code{includes} list. +One can generate a secret tsig key (for nsupdate and zone transfers with the +keymgr command from the knot package. Note that the package is not automatically +installed by the service. The following example shows how to generate a new +tsig key: + +@example +keymgr -t mysecret > /etc/knot/secrets.conf +chmod 600 /etc/knot/secrets.conf +@end example + +Also note that the generated key will be named @var{mysecret}, so it is the +name that needs to be used in the @var{key} field of the +@code{knot-acl-configuration} record and in other places that need to refer +to that key. + It can also be used to add configuration not supported by this interface. @item @code{listen-v4} (default: @code{"0.0.0.0"}) From 96a9a8d398b0bbb44ad96d41597a8f0323628e86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 23 Jul 2019 16:57:25 +0200 Subject: [PATCH 008/161] gnu: llvm: Add 'system->llvm-target' procedure. * gnu/packages/llvm.scm (system->llvm-target): New procedure. --- gnu/packages/llvm.scm | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 1fe9af38e0..9efb4a4841 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -46,7 +46,30 @@ (define-module (gnu packages llvm) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) - #:use-module (gnu packages xml)) + #:use-module (gnu packages xml) + #:export (system->llvm-target)) + +(define* (system->llvm-target #:optional + (system (or (and=> (%current-target-system) + gnu-triplet->nix-system) + (%current-system)))) + "Return the LLVM target name that corresponds to SYSTEM, a system type such +as \"x86_64-linux\"." + ;; See the 'lib/Target' directory of LLVM for a list of supported targets. + (letrec-syntax ((matches (syntax-rules (=>) + ((_ (system-prefix => target) rest ...) + (if (string-prefix? system-prefix system) + target + (matches rest ...))) + ((_) + (error "LLVM target for system is unknown" system))))) + (matches ("aarch64" => "AArch64") + ("armhf" => "ARM") + ("mips64el" => "Mips") + ("powerpc" => "PowerPC") + ("riscv" => "RISCV") + ("x86_64" => "X86") + ("i686" => "X86")))) (define-public llvm-8 (package From 7304d5623ab5cc35289cb1535cbd0d8a37691fac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Balzarotti?= Date: Tue, 23 Jul 2019 23:56:21 +0200 Subject: [PATCH 009/161] gnu: julia: Update to 1.1.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/julia.scm (libuv-julia): Update to commit 26dbe56. (libunwind-for-julia): Remove. (llvm-patch-url, llvm-patch): New procedures. (llvm-julia): New variable. (julia): Update to 1.1.1. [arguments]: Adjust 'prepare-deps' to new set of dependencies. Adjust 'hardcode-soname-map': remove openlibm and libfftw handling. Update file names in 'fix-include-and-link-paths' and 'hardcode-paths'. Adjust 'disable-broken-tests'. Pass PREFIX, LIBFLAS, and LIBBLASNAME in #:make-flags; update other flags. [inputs]: Replace LLVM-3.9.1 with LLVM-JULIA. Replace LIBUNWIND-FOR-JULIA with LIBUNWIND. Add "rmath" and "libwhich". [native-inputs]: Remove "unicode-data". Co-authored-by: Ludovic Courtès --- gnu/packages/julia.scm | 262 ++++++++++++++++++++++++++++------------- 1 file changed, 180 insertions(+), 82 deletions(-) diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index fa9709c40c..43254f25fd 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -47,9 +47,12 @@ (define-module (gnu packages julia) #:use-module (ice-9 match)) (define libuv-julia - (let ((commit "52d72a52cc7ccd570929990f010ed16e2ec604c8") - (revision "5")) - (package (inherit libuv) + (let ((commit "26dbe5672c33fc885462c509fe2a9b36f35866fd") + (revision "6")) + ;; When upgrading Julia, also upgrade this. + ;; Get the commit from https://github.com/JuliaLang/julia/blob/v1.1.1/deps/libuv.version + (package + (inherit libuv) (name "libuv-julia") (version (string-append "1.9.0-" revision "." (string-take commit 8))) (source (origin @@ -60,7 +63,7 @@ (define libuv-julia (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1daxh6ci6q7znxxajr3bm16dd53ragm0d681wf4kzg542qnjq3lh")))) + "17pn2xmqaramilx897s9grs966i5246gi6sric5alch4g9j4685n")))) (build-system gnu-build-system) (arguments (substitute-keyword-arguments (package-arguments libuv) @@ -69,22 +72,93 @@ (define libuv-julia (delete 'autogen))))) (home-page "https://github.com/JuliaLang/libuv")))) -(define libunwind-for-julia +(define (llvm-patch-url version name) + (string-append "https://raw.githubusercontent.com/JuliaLang/julia/v" version + "/deps/patches/" name)) + +(define (llvm-patch name sha) + (let ((version "1.1.1")) + (origin (method url-fetch) + (uri (llvm-patch-url version name)) + (sha256 (base32 sha)) + (file-name name)))) + +(define llvm-julia (package - (inherit libunwind) - (version "1.1-julia2") + (inherit llvm-6) + (name "llvm-julia") (source (origin (method url-fetch) - (uri (string-append "https://s3.amazonaws.com/julialang/src/" - "libunwind-" version ".tar.gz")) + (uri "http://releases.llvm.org/6.0.1/llvm-6.0.1.src.tar.xz") (sha256 (base32 - "0499x7sg2v18a6cry6l8y713cgmic0adnjph8i0xr1db9p7n8qyv")))))) + "1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn")) + ;; Those patches are inside the Julia source repo. + ;; They are _not_ Julia specific (https://github.com/julialang/julia#llvm) + ;; but they are required to build Julia. + ;; Discussion: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919628 + (patches + (list + (llvm-patch "llvm-6.0-D44650.patch" + "1336q4vqayr94wdcnlmcxh90mjdh34dzw9x2cbiqjnx9b1j8fxyb") + (llvm-patch "llvm-6.0-DISABLE_ABI_CHECKS.patch" + "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg") + (llvm-patch "llvm-6.0-NVPTX-addrspaces.patch" + "1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc") + (llvm-patch "llvm-6.0.0_D27296-libssp.patch" + "0s5hi2r1j63i8m6ig1346crx2aiv9f7rgb3mg80kw1wx5y7pdpfh") + (llvm-patch "llvm-D27629-AArch64-large_model_6.0.1.patch" + "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z") + (llvm-patch "llvm-D34078-vectorize-fdiv.patch" + "1696hg84a0jxcnggvqsc2cdp271hf9a44p4qsd078qm1mfawkaay") + (llvm-patch "llvm-D42262-jumpthreading-not-i1.patch" + "1c8w210gwidbnkkw8anp17dk5pnxws2fl3mb2qxh7y9wzfpixgaq") + (llvm-patch "llvm-D44892-Perf-integration.patch" + "0r37jd0ssh2k1pndkfd5blgpg9z90im4vlzprhb0n0wwz45g4b05") + (llvm-patch "llvm-D46460.patch" + "1miqgswdc0qvbaf4571c2xkxyp9ais06b1bcpa83sq22vr4hbsfb") + (llvm-patch "llvm-D49832-SCEVPred.patch" + "0v5c88hgqj6dymv3j86ca5mhpqab5fbnrvjiw1nvnrnya9l4dlbn") + (llvm-patch "llvm-D50010-VNCoercion-ni.patch" + "0iblb3q1xixwrb12jpb89h3ywmqmzdp6aqp416j4ncwakyjhhfkp") + (llvm-patch "llvm-D50167-scev-umin.patch" + "1f2rakcnnyhr7w10k7gqg0k0491pyvx5ijplivw557f714ys3q6v") + (llvm-patch "llvm-OProfile-line-num.patch" + "1jvbbmwyags0xfwamb13qrf3rgcz9i1r03m9lava7swag8xb78c7") + (llvm-patch "llvm-PPC-addrspaces.patch" + "1f23nhsxh2s3jskbgs7da9nwg3s1hrkbk5aahl08x41wi3mny01p") + (llvm-patch "llvm-rL323946-LSRTy.patch" + "10cz3vy1yw0w643z7xx021wa4kymx9fcm3bjg61s6vzdqd6d9fns") + (llvm-patch "llvm-rL326967-aligned-load.patch" + "04jxnv32yj5x17hqhi8g2p8rhgp38gmjzr871w7z8s44pq10v9v4") + (llvm-patch "llvm-rL327898.patch" + "15ah49gbsll23z28kpyahi5vl0fh3fkxcgd1zmxxdcl96s3x8bnq"))))) + (arguments + (substitute-keyword-arguments (package-arguments llvm-6) + ((#:configure-flags flags) + `(list ;; Taken from NixOS. Only way I could get libLLVM-6.0.so + "-DCMAKE_BUILD_TYPE=Release" + + ;; Build a native compiler and the NVPTX backend (NVIDIA) since + ;; Julia insists on it, nothing more. This reduces build times and + ;; disk usage. + ,(string-append "-DLLVM_TARGETS_TO_BUILD=" (system->llvm-target)) + "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=NVPTX" + + "-DLLVM_INSTALL_UTILS=ON" + "-DLLVM_BUILD_TESTS=ON" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_ENABLE_RTTI=ON" + ;; "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + ;; "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + ;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly" + "-DLLVM_ENABLE_DUMP=ON" + "-DLLVM_LINK_LLVM_DYLIB=ON")))))) (define-public julia (package (name "julia") - (version "0.6.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (string-append @@ -92,7 +166,7 @@ (define-public julia version "/julia-" version ".tar.gz")) (sha256 (base32 - "0rd6lcc9sic10q1j3c6f9qr901i1c4554m93n2sz5b3mh37byqhw")))) + "0hk983mywimclgnjc41zmlppm5kfdz2aj85ky07p49ilcqxi998f")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -123,9 +197,23 @@ (define-public julia (copy-file (string-append (assoc-ref inputs "virtualenv") "/bin/virtualenv") "julia-env") - (copy-file (assoc-ref inputs "unicode-data") - "doc/UnicodeData.txt") - #t)) + (copy-file (assoc-ref inputs "libwhich") + (string-append "deps/srccache/libwhich-" + "81e9723c0273d78493dc8c8ed570f68d9ce7e89e" + ".tar.gz")) + (copy-file (assoc-ref inputs "rmath") + "deps/srccache/Rmath-julia-0.1.tar.gz") + + ;; needed by libwhich + (setenv "LD_LIBRARY_PATH" + (string-join (map (lambda (pkg) + (string-append (assoc-ref inputs pkg) + "/lib")) + '("arpack-ng" "fftw" "gmp" "lapack" + "libgit2" "mpfr" "openblas" "openlibm" + "openspecfun" "pcre2")) + ":")) + #t)) ;; FIXME: Building the documentation requires Julia packages that ;; would be downloaded from the Internet. We should build them in a ;; separate build phase. @@ -168,19 +256,9 @@ (define-public julia ("lapack" "liblapack" "liblapack.so") ("libgit2" "libgit2" "libgit2.so") ("gmp" "libgmp" "libgmp.so") - ("openlibm" "libopenlibm" "libopenlibm.so") ("openspecfun" "libopenspecfun" "libopenspecfun.so") ("fftw" "libfftw3" "libfftw3_threads.so") ("fftwf" "libfftw3f" "libfftw3f_threads.so")))))) - (substitute* "base/fft/FFTW.jl" - (("const libfftw = Base.libfftw_name") - (string-append "const libfftw = \"" - (assoc-ref inputs "fftw") "/lib/libfftw3_threads.so" - "\"")) - (("const libfftwf = Base.libfftwf_name") - (string-append "const libfftwf = \"" - (assoc-ref inputs "fftwf") "/lib/libfftw3f_threads.so" - "\""))) (substitute* "base/math.jl" (("const libm = Base.libm_name") (string-append "const libm = \"" @@ -192,11 +270,6 @@ (define-public julia (assoc-ref inputs "openspecfun") "/lib/libopenspecfun.so" "\""))) - (substitute* "base/pcre.jl" - (("const PCRE_LIB = \"libpcre2-8\"") - (string-append "const PCRE_LIB = \"" - (assoc-ref inputs "pcre2") - "/lib/libpcre2-8.so" "\""))) #t)) (add-before 'build 'fix-include-and-link-paths (lambda* (#:key inputs #:allow-other-keys) @@ -218,9 +291,9 @@ (define-public julia "/lib/libuv.so "))) (substitute* "base/Makefile" - (("\\$\\(build_includedir\\)/uv-errno.h") + (("\\$\\(build_includedir\\)/uv/errno.h") (string-append (assoc-ref inputs "libuv") - "/include/uv-errno.h"))) + "/include/uv/errno.h"))) #t)) (add-before 'build 'replace-default-shell (lambda _ @@ -229,37 +302,37 @@ (define-public julia #t)) (add-after 'unpack 'hardcode-paths (lambda _ - (substitute* "base/interactiveutil.jl" + (substitute* "stdlib/InteractiveUtils/src/InteractiveUtils.jl" (("`which") (string-append "`" (which "which"))) (("`wget") (string-append "`" (which "wget")))) #t)) (add-before 'check 'disable-broken-tests (lambda _ - ;; Adjust expected error messages to match what current libgit2 - ;; provides. - (substitute* "test/libgit2.jl" - (("Invalid Content-Type") "invalid Content-Type") - (("Failed to resolve path") "failed to resolve path")) - - (substitute* "test/choosetests.jl" - ;; These tests fail, probably because some of the input - ;; binaries have been stripped and thus backtraces don't look - ;; as expected. - (("\"backtrace\",") "") - (("\"compile\",") "") - (("\"replutil\",") "") - (("\"cmdlineargs\",") "") - ;; FIXME: This test fails with the following error: - ;; Error in testset file: - ;; Test Failed - ;; Expression: download("ba\0d", "good") - ;; Expected: ArgumentError - ;; Thrown: Base.UVError - (("\"file\",") "")) - #t))) + (define (touch file-name) + (call-with-output-file file-name (const #t))) + ;; FIXME: All git tests works except this one. But *THIS* "fix" + ;; is not working, so right now I'm disabling all libgit2.jl tests + ;; (substitute* "stdlib/LibGit2/test/libgit2.jl" + ;; (("!LibGit2.use_http_path(cfg, github_cred)") "true") + ;; (("LibGit2.use_http_path(cfg, mygit_cred)") "true")) + (map (lambda (test) + (delete-file test) + (touch test)) + '("stdlib/Sockets/test/runtests.jl" + "stdlib/Distributed/test/runtests.jl" + ;; FIXME: see above + "stdlib/LibGit2/test/libgit2.jl")) + (substitute* "test/choosetests.jl" + ;; These tests fail, probably because some of the input + ;; binaries have been stripped and thus backtraces don't look + ;; as expected. + (("\"backtrace\",") "") + (("\"cmdlineargs\",") "")) + #t))) #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")) + (string-append "PREFIX=" (assoc-ref %outputs "out")) ;; Passing the MARCH flag is necessary to build binary substitutes for ;; the supported architectures. @@ -278,6 +351,8 @@ (define-public julia "USE_SYSTEM_LAPACK=1" "USE_SYSTEM_BLAS=1" "USE_BLAS64=0" ;needed when USE_SYSTEM_BLAS=1 + "LIBBLAS=-lopenblas" + "LIBBLASNAME=libopenblas" "USE_SYSTEM_FFTW=1" "LIBFFTWNAME=libfftw3" @@ -296,26 +371,29 @@ (define-public julia (assoc-ref %build-inputs "utf8proc") "/include") "USE_SYSTEM_LLVM=1" - "USE_LLVM_SHLIB=0" ; FIXME: fails when set to 1 + "LLVM_VER=6.0.1" - "USE_SYSTEM_LIBUNWIND=1" - "USE_SYSTEM_LIBUV=1" - (string-append "LIBUV=" - (assoc-ref %build-inputs "libuv") - "/lib/libuv.so") - (string-append "LIBUV_INC=" - (assoc-ref %build-inputs "libuv") - "/include") - "USE_SYSTEM_PATCHELF=1" - "USE_SYSTEM_PCRE=1" - "USE_SYSTEM_OPENLIBM=1" - "USE_SYSTEM_GMP=1" - "USE_SYSTEM_MPFR=1" - "USE_SYSTEM_ARPACK=1" - "USE_SYSTEM_LIBGIT2=1" - "USE_SYSTEM_OPENSPECFUN=1"))) + "USE_LLVM_SHLIB=1" + "USE_SYSTEM_LIBUNWIND=1" + "USE_SYSTEM_LIBUV=1" + (string-append "LIBUV=" + (assoc-ref %build-inputs "libuv") + "/lib/libuv.so") + (string-append "LIBUV_INC=" + (assoc-ref %build-inputs "libuv") + "/include") + "USE_SYSTEM_PATCHELF=1" + "USE_SYSTEM_PCRE=1" + "USE_SYSTEM_OPENLIBM=1" + + "USE_SYSTEM_GMP=1" + "USE_SYSTEM_MPFR=1" + "USE_SYSTEM_ARPACK=1" + "USE_SYSTEM_LIBGIT2=1" + "USE_SYSTEM_ZLIB=1" + "USE_SYSTEM_OPENSPECFUN=1"))) (inputs - `(("llvm" ,llvm-3.9.1) + `(("llvm" ,llvm-julia) ;; The bundled version is 3.3.0 so stick to that version. With other ;; versions, we get test failures in 'linalg/arnoldi' as described in @@ -325,7 +403,7 @@ (define-public julia ("coreutils" ,coreutils) ;for bindings to "mkdir" and the like ("lapack" ,lapack) ("openblas" ,openblas) ;Julia does not build with Atlas - ("libunwind" ,libunwind-for-julia) + ("libunwind" ,libunwind) ("openlibm" ,openlibm) ("openspecfun" ,openspecfun) ("libgit2" ,libgit2) @@ -346,6 +424,18 @@ (define-public julia ;; would eventually be replaced with proper Guix packages. ;; TODO: run "make -f contrib/repackage_system_suitesparse4.make" to copy static lib + ;; Find dependency versions here: + ;; https://raw.githubusercontent.com/JuliaLang/julia/77a2c1e245c85812dc1c7687540beedecc52758f/deps/Versions.make + ("rmath" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaLang/Rmath-julia") + (commit "v0.1"))) + (file-name "rmath-julia-0.1-checkout") + (sha256 + (base32 + "1zkpy0cg5zivq40zbhbdgj9128fqzs2j94wkwih8nc6xaj3gp9p6")))) ("suitesparse" ,(origin (method url-fetch) @@ -362,6 +452,21 @@ (define-public julia (sha256 (base32 "0wp6ld9vk11f4nnkn56627zmlv9k5vafi99qa3yyn1pgcd61zcfs")))) + ("libwhich" + ,(let ((commit "81e9723c0273d78493dc8c8ed570f68d9ce7e89e")) + (origin + ;; Note: We use a /tarball URL, but that's because Julia's build + ;; system checks the hash of that tarball; thus we can't use + ;; 'git-fetch'. + (method url-fetch) + (uri (string-append + "https://api.github.com/repos/vtjnash/libwhich/tarball/" + commit)) + (file-name (string-append "libwhich-" (string-take commit 7) + ".tar.gz")) + (sha256 + (base32 + "1p7zg31kpmpbmh1znrk1xrbd074agx13b9q4dcw8n2zrwwdlbz3b"))))) ("dsfmt" ,(origin (method url-fetch) @@ -376,14 +481,7 @@ (define-public julia ("perl" ,perl) ("patchelf" ,patchelf) ("pkg-config" ,pkg-config) - ("python" ,python-2) - ("unicode-data" - ,(origin - (method url-fetch) - (uri "http://www.unicode.org/Public/9.0.0/ucd/UnicodeData.txt") - (sha256 - (base32 - "13zfannnr6sa6s27ggvcvzmh133ndi38pfyxsssvjmw2s8ac9pv8")))))) + ("python" ,python-2))) ;; Julia is not officially released for ARM and MIPS. ;; See https://github.com/JuliaLang/julia/issues/10639 (supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux")) From 2fa23d8f5c4db6be583f0bb0eeba0368f1513ec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 20 Jul 2019 12:45:34 +0800 Subject: [PATCH 010/161] deploy: Honor '--no-grafts'. * guix/scripts/deploy.scm (guix-deploy): Parameterize '%graft?'. --- guix/scripts/deploy.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/guix/scripts/deploy.scm b/guix/scripts/deploy.scm index 978cfb2a81..3acd32eaa7 100644 --- a/guix/scripts/deploy.scm +++ b/guix/scripts/deploy.scm @@ -23,6 +23,7 @@ (define-module (guix scripts deploy) #:use-module (guix scripts build) #:use-module (guix store) #:use-module (guix ui) + #:use-module (guix grafts) #:use-module (ice-9 format) #:use-module (srfi srfi-1) #:use-module (srfi srfi-37) @@ -80,5 +81,6 @@ (define (handle-argument arg result) (set-build-options-from-command-line store opts) (for-each (lambda (machine) (info (G_ "deploying to ~a...") (machine-display-name machine)) - (run-with-store store (deploy-machine machine))) + (parameterize ((%graft? (assq-ref opts 'graft?))) + (run-with-store store (deploy-machine machine)))) machines)))) From 3c618b9894d167399b820642d011aed251cf4ba3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 20 Jul 2019 12:51:45 +0800 Subject: [PATCH 011/161] deploy: Handle the '--system' command line option. * guix/scripts/deploy.scm (show-help): Add help for '--system'. (%options): Add '-s' and '--system'. (guix-deploy): Parameterize %current-system. --- guix/scripts/deploy.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/guix/scripts/deploy.scm b/guix/scripts/deploy.scm index 3acd32eaa7..52bba3f3bf 100644 --- a/guix/scripts/deploy.scm +++ b/guix/scripts/deploy.scm @@ -23,6 +23,7 @@ (define-module (guix scripts deploy) #:use-module (guix scripts build) #:use-module (guix store) #:use-module (guix ui) + #:use-module (guix utils) #:use-module (guix grafts) #:use-module (ice-9 format) #:use-module (srfi srfi-1) @@ -41,6 +42,8 @@ (define-module (guix scripts deploy) (define (show-help) (display (G_ "Usage: guix deploy [OPTION] FILE... Perform the deployment specified by FILE.\n")) + (display (G_ " + -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) (show-build-options-help) (newline) (display (G_ " @@ -55,10 +58,14 @@ (define %options (lambda args (show-help) (exit 0))) + (option '(#\s "system") #t #f + (lambda (opt name arg result) + (alist-cons 'system arg + (alist-delete 'system result eq?)))) %standard-build-options)) (define %default-options - '((system . ,(%current-system)) + `((system . ,(%current-system)) (substitutes? . #t) (build-hook? . #t) (graft? . #t) @@ -81,6 +88,7 @@ (define (handle-argument arg result) (set-build-options-from-command-line store opts) (for-each (lambda (machine) (info (G_ "deploying to ~a...") (machine-display-name machine)) - (parameterize ((%graft? (assq-ref opts 'graft?))) + (parameterize ((%current-system (assq-ref opts 'system)) + (%graft? (assq-ref opts 'graft?))) (run-with-store store (deploy-machine machine)))) machines)))) From b9a178b6dc7c94f64ffad353f69edaa5956c40db Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 23 Jul 2019 19:55:28 -0400 Subject: [PATCH 012/161] doc: Warn about GPG warning. * doc/guix.texi (Binary Installation, USB Stick and DVD Installation): Warn users about the web-of-trust untrusted key warning from GPG. --- doc/guix.texi | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 8c5fa5f741..f6d9718f59 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -28,7 +28,7 @@ Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* -Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* +Copyright @copyright{} 2015, 2016, 2017, 2019 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* @@ -564,6 +564,10 @@ $ wget @value{OPENPGP-SIGNING-KEY-URL} \ @noindent and rerun the @code{gpg --verify} command. + +Take note that a warning like ``This key is not certified with a trusted +signature!'' is normal. + @c end authentication part @item @@ -1911,6 +1915,10 @@ $ wget @value{OPENPGP-SIGNING-KEY-URL} \ @noindent and rerun the @code{gpg --verify} command. + +Take note that a warning like ``This key is not certified with a trusted +signature!'' is normal. + @c end duplication This image contains the tools necessary for an installation. From 7dfda55ba249dda67772cd072b2b3b2cdd9dbf9c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 24 Jul 2019 16:36:49 +0200 Subject: [PATCH 013/161] gnu: libvirt-glib: Update to 2.0.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/virtualization.scm (libvirt-glib): Update to 2.0.0. [arguments]: Remove ‘fix-tests’ phase. --- gnu/packages/virtualization.scm | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index e68007ec2c..71414f0f7e 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -479,23 +479,15 @@ (define-public libvirt (define-public libvirt-glib (package (name "libvirt-glib") - (version "1.0.0") + (version "2.0.0") (source (origin (method url-fetch) (uri (string-append "ftp://libvirt.org/libvirt/glib/" "libvirt-glib-" version ".tar.gz")) (sha256 (base32 - "0iwa5sdbii52pjpdm5j37f67sdmf0kpcky4liwhy1nf43k85i4fa")))) + "0six9ckmvlwwyavyjkgc262qkpvfqgi8rjij7cyk00bmqq8c9s4l")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-tests - (lambda _ - (substitute* "tests/test-events.c" - (("/bin/true") (which "true"))) - #t))))) (inputs `(("libxml2" ,libxml2) ("libvirt" ,libvirt) From 7e2c050a88ef92ab32be5e7612f059f5be46ce3f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 24 Jul 2019 16:37:57 +0200 Subject: [PATCH 014/161] gnu: libvirt-glib: Propagate pkg-config requirements. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/virtualization.scm (libvirt-glib)[inputs]: Move glib, libvirt, libxml2, and gobject-introspection… [native-inputs]: …here. --- gnu/packages/virtualization.scm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 71414f0f7e..c6371a6ac1 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -489,19 +489,21 @@ (define-public libvirt-glib "0six9ckmvlwwyavyjkgc262qkpvfqgi8rjij7cyk00bmqq8c9s4l")))) (build-system gnu-build-system) (inputs - `(("libxml2" ,libxml2) - ("libvirt" ,libvirt) - ("gobject-introspection" ,gobject-introspection) - ("glib" ,glib) - ("openssl" ,openssl) + `(("openssl" ,openssl) ("cyrus-sasl" ,cyrus-sasl) - ("lvm2" ,lvm2) ; for libdevmapper + ("lvm2" ,lvm2) ; for libdevmapper ("libyajl" ,libyajl))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) ("glib" ,glib "bin") ("vala" ,vala))) + (propagated-inputs + ;; ‘Required:’ by the installed .pc files. + `(("glib" ,glib) + ("libvirt" ,libvirt) + ("libxml2" ,libxml2) + ("gobject-introspection" ,gobject-introspection))) (home-page "https://libvirt.org") (synopsis "GLib wrapper around libvirt") (description "libvirt-glib wraps the libvirt library to provide a From 4f20e0a2f629249cb751824cc85a719ebd4bf4bf Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 24 Jul 2019 19:06:25 +0200 Subject: [PATCH 015/161] gnu: spice-gtk: Update to 0.37. * gnu/packages/spice.scm (spice-gtk): Update to 0.37. [propagated-inputs]: Use latest spice-protocol. (spice-protocol-0.12): Remove unused variable. --- gnu/packages/spice.scm | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm index 1e9dfadf02..4787f107f0 100644 --- a/gnu/packages/spice.scm +++ b/gnu/packages/spice.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 David Craven -;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Rutger Helling ;;; Copyright © 2019 Marius Bakke ;;; @@ -115,23 +115,10 @@ (define-public spice-protocol (home-page "https://www.spice-space.org") (license (list license:bsd-3 license:lgpl2.1+)))) -(define-public spice-protocol-0.12 - (package - (inherit spice-protocol) - (version "0.12.15") - (source (origin - (method url-fetch) - (uri (string-append - "https://www.spice-space.org/download/releases/" - "spice-protocol-" version ".tar.bz2")) - (sha256 - (base32 - "06b461i4jv741in8617jjpfk28wk7zs9p7841njkf4sbm8xv4kcb")))))) - (define-public spice-gtk (package (name "spice-gtk") - (version "0.36") + (version "0.37") (source (origin (method url-fetch) (uri (string-append @@ -139,7 +126,7 @@ (define-public spice-gtk "spice-gtk-" version ".tar.bz2")) (sha256 (base32 - "1kfpixfdmxs9wn3id48gc9bvfrgxz935y3wpykf40bgi9mcc69ki")))) + "1drvj8y35gnxbnrxsipwi15yh0vs9ixzv4wslz6r3lra8w3bfa0z")))) (build-system gnu-build-system) (propagated-inputs `(("gstreamer" ,gstreamer) @@ -148,7 +135,7 @@ (define-public spice-gtk ("gst-plugins-good" ,gst-plugins-good) ("gst-plugins-bad" ,gst-plugins-bad) ("gst-plugins-ugly" ,gst-plugins-ugly) - ("spice-protocol" ,spice-protocol-0.12) + ("spice-protocol" ,spice-protocol) ;; These are required by the pkg-config files. ("gtk+" ,gtk+) From 8126142baf2cadd7b0052ba7b1d0cd248c8cbc40 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 24 Jul 2019 21:28:09 +0200 Subject: [PATCH 016/161] gnu: terminator: Propagate gsettings-desktop-schemas. * gnu/packages/gnome.scm (terminator)[propagated-inputs]: Add gsettings-desktop-schemas. --- gnu/packages/gnome.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9aa4ed538b..3f7bbac214 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -8156,6 +8156,9 @@ (define-public terminator ("python2-pygobject" ,python2-pygobject) ("python2-psutil" ,python2-psutil) ("vte" ,vte))) + (propagated-inputs + ;; Terminator refuses to start when these are not present. + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) (arguments `(#:python ,python-2 ;Python 3 not supported #:phases From 97bc8c47bbf2d9c641c4884f0e905c35c1540f45 Mon Sep 17 00:00:00 2001 From: Jelle Licht Date: Wed, 24 Jul 2019 22:23:19 +0200 Subject: [PATCH 017/161] gnu: emacs-gitpatch: Update to 0.5.1. * gnu/packages/emacs-xyz.scm (emacs-gitpatch): Update to 0.5.1. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 9baa782e2e..b11ec100f2 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -8772,7 +8772,7 @@ (define-public emacs-git-messenger (define-public emacs-gitpatch (package (name "emacs-gitpatch") - (version "0.5.0") + (version "0.5.1") (source (origin (method git-fetch) @@ -8781,7 +8781,7 @@ (define-public emacs-gitpatch (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1jj12pjwza6cq8a3kr8nqnmm3vxs0wam8h983irry4xr4ifywsn4")))) + (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig")))) (build-system emacs-build-system) (home-page "https://github.com/tumashu/gitpatch") (synopsis "Mail git patch from Emacs") From 1c0b2e7483f50017911097d6b555e266461c9e85 Mon Sep 17 00:00:00 2001 From: zimoun Date: Wed, 24 Jul 2019 20:21:54 +0200 Subject: [PATCH 018/161] gnu: Add r-umap. * gnu/packages/cran.scm (r-umap): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/cran.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 3f0d819df7..675d6596d1 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -14530,3 +14530,27 @@ (define-public r-xgboost extensible, so that users are also allowed to define their own objectives easily.") (license license:asl2.0))) + +(define-public r-umap + (package + (name "r-umap") + (version "0.2.2.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "umap" version)) + (sha256 + (base32 + "1s82w9gy1387h7cprjfbhp49l89zbmn3gc9s0wzqb1s73nza9n31")))) + (build-system r-build-system) + (propagated-inputs + `(("r-rcpp" ,r-rcpp) + ("r-reticulate" ,r-reticulate) + ("r-rspectra" ,r-rspectra))) + (home-page "https://github.com/tkonopka/umap") + (synopsis "Uniform manifold approximation and projection") + (description + "Uniform manifold approximation and projection is a technique for +dimension reduction. This package provides an interface to the UMAP algorithm +in R, including a translation of the original algorithm into R.") + (license license:expat))) From 6deb08a35933714a1713406c2e81522bfb2c3401 Mon Sep 17 00:00:00 2001 From: zimoun Date: Wed, 24 Jul 2019 20:21:55 +0200 Subject: [PATCH 019/161] gnu: Add r-kableextra. * gnu/packages/cran.scm (r-kableextra): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/cran.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 675d6596d1..1383ab067f 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -14554,3 +14554,42 @@ (define-public r-umap dimension reduction. This package provides an interface to the UMAP algorithm in R, including a translation of the original algorithm into R.") (license license:expat))) + +(define-public r-kableextra + (package + (name "r-kableextra") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "kableExtra" version)) + (sha256 + (base32 + "1nicvw06xsf3a1f5c10mih07b76m2v5s5h165vmz0qx6n1a3492i")))) + (properties `((upstream-name . "kableExtra"))) + (build-system r-build-system) + (propagated-inputs + `(("r-digest" ,r-digest) + ("r-glue" ,r-glue) + ("r-htmltools" ,r-htmltools) + ("r-knitr" ,r-knitr) + ("r-magrittr" ,r-magrittr) + ("r-readr" ,r-readr) + ("r-rmarkdown" ,r-rmarkdown) + ("r-rstudioapi" ,r-rstudioapi) + ("r-rvest" ,r-rvest) + ("r-scales" ,r-scales) + ("r-stringr" ,r-stringr) + ("r-viridislite" ,r-viridislite) + ("r-webshot" ,r-webshot) + ("r-xml2" ,r-xml2))) + (home-page "https://haozhu233.github.io/kableExtra/") + (synopsis "Construct complex tables with pipe syntax") + (description + "Build complex HTML or LaTeX tables using @code{kable()} from +@code{knitr} and the piping syntax from @code{magrittr}. The function +@code{kable()} is a light weight table generator coming from @code{knitr}. +This package simplifies the way to manipulate the HTML or LaTeX codes +generated by @code{kable()} and allows users to construct complex tables and +customize styles using a readable syntax.") + (license license:expat))) From ad8f46c69efd24915d380dba663c9f24746de1fc Mon Sep 17 00:00:00 2001 From: zimoun Date: Wed, 24 Jul 2019 20:21:56 +0200 Subject: [PATCH 020/161] gnu: Add r-all. * gnu/packages/bioconductor.scm (r-all): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/bioconductor.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index e5a2d66b2d..649b64a4d7 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -865,6 +865,34 @@ (define-public r-hsmmsinglecell resulting in a complete gene expression profile for each cell.") (license license:artistic2.0))) +(define-public r-all + (package + (name "r-all") + (version "1.26.0") + (source (origin + (method url-fetch) + ;; We cannot use bioconductor-uri here because this tarball is + ;; located under "data/experiment/" instead of "bioc/". + (uri (string-append "https://www.bioconductor.org/packages/" + "release/data/experiment/src/contrib/" + "ALL_" version ".tar.gz")) + (sha256 + (base32 + "1z7kpjw4ndj6fkxwvhqf3gawhrn26ksrlns7j2c78qzxqmjndik9")))) + (properties `((upstream-name . "ALL"))) + (build-system r-build-system) + (propagated-inputs + `(("r-biobase" ,r-biobase))) + (home-page "https://bioconductor.org/packages/ALL") + (synopsis "Acute Lymphoblastic Leukemia data from the Ritz laboratory") + (description + "The data consist of microarrays from 128 different individuals with +@dfn{acute lymphoblastic leukemia} (ALL). A number of additional covariates +are available. The data have been normalized (using rma) and it is the +jointly normalized data that are available here. The data are presented in +the form of an @code{exprSet} object.") + (license license:artistic2.0))) + ;;; Packages From a6fedf1f37dd031829caae0b743016cd5d52f06c Mon Sep 17 00:00:00 2001 From: zimoun Date: Wed, 24 Jul 2019 20:21:57 +0200 Subject: [PATCH 021/161] gnu: Add r-flowcore. * gnu/packages/bioconductor.scm (r-flowcore): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/bioconductor.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 649b64a4d7..93dec5bd1d 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -4797,3 +4797,33 @@ (define-public r-rsubread gene fusion discovery. It can be applied to all major sequencing techologies and to both short and long sequence reads.") (license license:gpl3))) + +(define-public r-flowcore + (package + (name "r-flowcore") + (version "1.50.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "flowCore" version)) + (sha256 + (base32 + "0pvcyzycsmgc8iw60q9xnhllfan6ihwpz3gvk8h1n9jmhpxzylan")))) + (properties `((upstream-name . "flowCore"))) + (build-system r-build-system) + (propagated-inputs + `(("r-bh" ,r-bh) + ("r-biobase" ,r-biobase) + ("r-biocgenerics" ,r-biocgenerics) + ("r-corpcor" ,r-corpcor) + ("r-graph" ,r-graph) + ("r-mass" ,r-mass) + ("r-matrixstats" ,r-matrixstats) + ("r-rcpp" ,r-rcpp) + ("r-rrcov" ,r-rrcov))) + (home-page "https://bioconductor.org/packages/flowCore") + (synopsis "Basic structures for flow cytometry data") + (description + "This package provides S4 data structures and basic functions to deal +with flow cytometry data.") + (license license:artistic2.0))) From a0422d18f10e0c3b7c43cd873a193404b11efbc3 Mon Sep 17 00:00:00 2001 From: zimoun Date: Wed, 24 Jul 2019 20:21:58 +0200 Subject: [PATCH 022/161] gnu: Add r-flowutils. * gnu/packages/bioconductor.scm (r-flowutils): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/bioconductor.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 93dec5bd1d..f7ae4bd86c 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -4798,6 +4798,32 @@ (define-public r-rsubread and to both short and long sequence reads.") (license license:gpl3))) +(define-public r-flowutils + (package + (name "r-flowutils") + (version "1.48.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "flowUtils" version)) + (sha256 + (base32 + "1r7b0rszdzjq7jphh65p5m4x5ps0zbbagxl26gn2mapbjdyb47rm")))) + (properties `((upstream-name . "flowUtils"))) + (build-system r-build-system) + (propagated-inputs + `(("r-biobase" ,r-biobase) + ("r-corpcor" ,r-corpcor) + ("r-flowcore" ,r-flowcore) + ("r-graph" ,r-graph) + ("r-runit" ,r-runit) + ("r-xml" ,r-xml))) + (home-page "https://github.com/jspidlen/flowUtils") + (synopsis "Utilities for flow cytometry") + (description + "This package provides utilities for flow cytometry data.") + (license license:artistic2.0))) + (define-public r-flowcore (package (name "r-flowcore") From ed6f49fc415a3af5b69a4054100e709354b031d0 Mon Sep 17 00:00:00 2001 From: zimoun Date: Wed, 24 Jul 2019 20:21:59 +0200 Subject: [PATCH 023/161] gnu: Add r-consensusclusterplus. * gnu/packages/bioconductor.scm (r-consensusclusterplus): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/bioconductor.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index f7ae4bd86c..0b968bb137 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -4824,6 +4824,31 @@ (define-public r-flowutils "This package provides utilities for flow cytometry data.") (license license:artistic2.0))) +(define-public r-consensusclusterplus + (package + (name "r-consensusclusterplus") + (version "1.48.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "ConsensusClusterPlus" version)) + (sha256 + (base32 + "1mlcm3wq5n8s0gxs35j0ph9576fhbrbrrsj2xy84fy20prcfs4w8")))) + (properties + `((upstream-name . "ConsensusClusterPlus"))) + (build-system r-build-system) + (propagated-inputs + `(("r-all" ,r-all) + ("r-biobase" ,r-biobase) + ("r-cluster" ,r-cluster))) + (home-page "https://bioconductor.org/packages/ConsensusClusterPlus") + (synopsis "Clustering algorithm") + (description + "This package provides an implementation of an algorithm for determining +cluster count and membership by stability evidence in unsupervised analysis.") + (license license:gpl2))) + (define-public r-flowcore (package (name "r-flowcore") From e0cb053edb34cd1cc74a5db1b6e59e6e16c2cfec Mon Sep 17 00:00:00 2001 From: zimoun Date: Wed, 24 Jul 2019 20:22:00 +0200 Subject: [PATCH 024/161] gnu: Add r-flowmeans. * gnu/packages/bioconductor.scm (r-flowmeans): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/bioconductor.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 0b968bb137..ece5097940 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -4878,3 +4878,29 @@ (define-public r-flowcore "This package provides S4 data structures and basic functions to deal with flow cytometry data.") (license license:artistic2.0))) + +(define-public r-flowmeans + (package + (name "r-flowmeans") + (version "1.44.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "flowMeans" version)) + (sha256 + (base32 + "0yp6y3mq5h4nf1d7ybqnriigwfmwanrqavpj3ry482sgiaip1hp2")))) + (properties `((upstream-name . "flowMeans"))) + (build-system r-build-system) + (propagated-inputs + `(("r-biobase" ,r-biobase) + ("r-feature" ,r-feature) + ("r-flowcore" ,r-flowcore) + ("r-rrcov" ,r-rrcov))) + (home-page "https://bioconductor.org/packages/flowMeans") + (synopsis "Non-parametric flow cytometry data gating") + (description + "This package provides tools to identify cell populations in Flow +Cytometry data using non-parametric clustering and segmented-regression-based +change point detection.") + (license license:artistic2.0))) From 1502751b3220feda44e34c07c617086538ac1296 Mon Sep 17 00:00:00 2001 From: zimoun Date: Wed, 24 Jul 2019 20:22:02 +0200 Subject: [PATCH 025/161] gnu: Add r-flowsom. * gnu/packages/bioconductor.scm (r-flowsom): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/bioconductor.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index ece5097940..ad48ccaebe 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -4904,3 +4904,31 @@ (define-public r-flowmeans Cytometry data using non-parametric clustering and segmented-regression-based change point detection.") (license license:artistic2.0))) + +(define-public r-flowsom + (package + (name "r-flowsom") + (version "1.16.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "FlowSOM" version)) + (sha256 + (base32 + "03wl3xk7g7vajc4kkrqa0gsbjfxlqr918qi849h5nir31963398l")))) + (properties `((upstream-name . "FlowSOM"))) + (build-system r-build-system) + (propagated-inputs + `(("r-biocgenerics" ,r-biocgenerics) + ("r-consensusclusterplus" ,r-consensusclusterplus) + ("r-flowcore" ,r-flowcore) + ("r-flowutils" ,r-flowutils) + ("r-igraph" ,r-igraph) + ("r-tsne" ,r-tsne) + ("r-xml" ,r-xml))) + (home-page "https://bioconductor.org/packages/FlowSOM/") + (synopsis "Visualize and interpret cytometry data") + (description + "FlowSOM offers visualization options for cytometry data, by using +self-organizing map clustering and minimal spanning trees.") + (license license:gpl2+))) From 1adb9cbc5e9e4c458bbf3b3bb89fcd36278d34e2 Mon Sep 17 00:00:00 2001 From: zimoun Date: Wed, 24 Jul 2019 20:22:03 +0200 Subject: [PATCH 026/161] gnu: Add r-mixomics. * gnu/packages/bioconductor.scm (r-mixomics): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/bioconductor.scm | 42 +++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index ad48ccaebe..f63bfa4a1f 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -4932,3 +4932,45 @@ (define-public r-flowsom "FlowSOM offers visualization options for cytometry data, by using self-organizing map clustering and minimal spanning trees.") (license license:gpl2+))) + +(define-public r-mixomics + (package + (name "r-mixomics") + (version "6.8.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "mixOmics" version)) + (sha256 + (base32 + "1f08jx35amn3sfcmqb96mjxxsm6dnpzhff625z758x1992wj4zsk")))) + (properties `((upstream-name . "mixOmics"))) + (build-system r-build-system) + (propagated-inputs + `(("r-corpcor" ,r-corpcor) + ("r-dplyr" ,r-dplyr) + ("r-ellipse" ,r-ellipse) + ("r-ggplot2" ,r-ggplot2) + ("r-gridextra" ,r-gridextra) + ("r-igraph" ,r-igraph) + ("r-lattice" ,r-lattice) + ("r-mass" ,r-mass) + ("r-matrixstats" ,r-matrixstats) + ("r-rarpack" ,r-rarpack) + ("r-rcolorbrewer" ,r-rcolorbrewer) + ("r-reshape2" ,r-reshape2) + ("r-tidyr" ,r-tidyr))) + (home-page "http://www.mixOmics.org") + (synopsis "Multivariate methods for exploration of biological datasets") + (description + "mixOmics offers a wide range of multivariate methods for the exploration +and integration of biological datasets with a particular focus on variable +selection. The package proposes several sparse multivariate models we have +developed to identify the key variables that are highly correlated, and/or +explain the biological outcome of interest. The data that can be analysed +with mixOmics may come from high throughput sequencing technologies, such as +omics data (transcriptomics, metabolomics, proteomics, metagenomics etc) but +also beyond the realm of omics (e.g. spectral imaging). The methods +implemented in mixOmics can also handle missing values without having to +delete entire rows with missing data.") + (license license:gpl2+))) From a0efa069a147f0e7b3bb305ae546609e9dd77045 Mon Sep 17 00:00:00 2001 From: zimoun Date: Wed, 24 Jul 2019 20:22:04 +0200 Subject: [PATCH 027/161] gnu: Add r-depecher. * gnu/packages/bioconductor.scm (r-depecher): New variable. Co-authored-by: Ricardo Wurmus Signed-off-by: Ricardo Wurmus --- gnu/packages/bioconductor.scm | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index f63bfa4a1f..2f2a60ad19 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -4974,3 +4974,53 @@ (define-public r-mixomics implemented in mixOmics can also handle missing values without having to delete entire rows with missing data.") (license license:gpl2+))) + +(define-public r-depecher + (package + (name "r-depecher") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "DepecheR" version)) + (sha256 + (base32 + "0qj2h2a50fncppvi2phh0mbivxkn1mv702mqpi9mvvkf3bzq8m0h")))) + (properties `((upstream-name . "DepecheR"))) + (build-system r-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-syntax-error + (lambda _ + (substitute* "src/Makevars" + ((" & ") " && ")) + #t))))) + (propagated-inputs + `(("r-beanplot" ,r-beanplot) + ("r-biocparallel" ,r-biocparallel) + ("r-dosnow" ,r-dosnow) + ("r-dplyr" ,r-dplyr) + ("r-foreach" ,r-foreach) + ("r-ggplot2" ,r-ggplot2) + ("r-gplots" ,r-gplots) + ("r-mass" ,r-mass) + ("r-matrixstats" ,r-matrixstats) + ("r-mixomics" ,r-mixomics) + ("r-moments" ,r-moments) + ("r-rcpp" ,r-rcpp) + ("r-rcppeigen" ,r-rcppeigen) + ("r-reshape2" ,r-reshape2) + ("r-viridis" ,r-viridis))) + (home-page "https://bioconductor.org/packages/DepecheR/") + (synopsis "Identify traits of clusters in high-dimensional entities") + (description + "The purpose of this package is to identify traits in a dataset that can +separate groups. This is done on two levels. First, clustering is performed, +using an implementation of sparse K-means. Secondly, the generated clusters +are used to predict outcomes of groups of individuals based on their +distribution of observations in the different clusters. As certain clusters +with separating information will be identified, and these clusters are defined +by a sparse number of variables, this method can reduce the complexity of +data, to only emphasize the data that actually matters.") + (license license:expat))) From 81c3dc32244a17241d74eea9fa265edfcb326f6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 21 Jul 2019 23:05:54 +0200 Subject: [PATCH 028/161] maint: Switch to Guile-JSON 3.x. Guile-JSON 3.x is incompatible with Guile-JSON 1.x, which we relied on until now: it maps JSON dictionaries to alists (instead of hash tables), and JSON arrays to vectors (instead of lists). This commit is about adjusting all the existing code to this new mapping. * m4/guix.m4 (GUIX_CHECK_GUILE_JSON): New macro. * configure.ac: Use it. * doc/guix.texi (Requirements): Mention the Guile-JSON version. * guix/git-download.scm (git-fetch)[guile-json]: Use GUILE-JSON-3. * guix/import/cpan.scm (string->license): Expect vectors instead of lists. (module->dist-name): Use 'json-fetch' instead of 'json-fetch-alist'. (cpan-fetch): Likewise. * guix/import/crate.scm (crate-fetch): Likewise, and call 'vector->list' for DEPS. * guix/import/gem.scm (rubygems-fetch): Likewise. * guix/import/json.scm (json-fetch-alist): Remove. * guix/import/pypi.scm (pypi-fetch): Use 'json-fetch' instead of 'json-fetch-alist'. (latest-source-release, latest-wheel-release): Call 'vector->list' on RELEASES. * guix/import/stackage.scm (stackage-lts-info-fetch): Use 'json-fetch' instead of 'json-fetch-alist'. (lts-package-version): Use 'vector->list'. * guix/import/utils.scm (hash-table->alist): Remove. (alist->package): Pass 'vector->list' on the inputs fields, and default to the empty vector. * guix/scripts/import/json.scm (guix-import-json): Remove call to 'hash-table->alist'. * guix/swh.scm (define-json-reader): Expect pair? or null? instead of hash-table?. [extract-field]: Use 'assoc-ref' instead of 'hash-ref'. (json->branches): Use 'map' instead of 'hash-map->list'. (json->checksums): Likewise. (json->directory-entries, origin-visits): Call 'vector->list' on the result of 'json->scm'. * tests/import-utils.scm ("alist->package with dependencies"): New test. * gnu/installer.scm (build-compiled-file)[builder]: Use GUILE-JSON-3. * gnu/installer.scm (installer-program)[installer-builder]: Likewise. * gnu/installer/locale.scm (iso639->iso639-languages): Use 'assoc-ref' instead of 'hash-ref', and pass vectors through 'vector->list'. (iso3166->iso3166-territories): Likewise. * gnu/system/vm.scm (system-docker-image)[build]: Use GUILE-JSON-3. * guix/docker.scm (manifest, config): Adjust for Guile-JSON 3. * guix/scripts/pack.scm (docker-image)[build]: Use GUILE-JSON-3. * guix/import/github.scm (fetch-releases-or-tags): Update docstring. (latest-released-version): Use 'assoc-ref' instead of 'hash-ref'. Pass the result of 'fetch-releases-or-tags' to 'vector->list'. * guix/import/launchpad.scm (latest-released-version): Likewise. --- configure.ac | 4 ++-- doc/guix.texi | 2 +- gnu/installer.scm | 4 ++-- gnu/installer/locale.scm | 21 ++++++++++++--------- gnu/system/vm.scm | 2 +- guix/docker.scm | 19 ++++++++++--------- guix/git-download.scm | 4 ++-- guix/import/cpan.scm | 14 +++++++------- guix/import/crate.scm | 6 +++--- guix/import/gem.scm | 10 +++++++--- guix/import/github.scm | 13 +++++++------ guix/import/json.scm | 11 ++--------- guix/import/launchpad.scm | 13 +++++++------ guix/import/pypi.scm | 8 ++++---- guix/import/stackage.scm | 4 ++-- guix/import/utils.scm | 25 ++++++------------------- guix/scripts/import/json.scm | 2 +- guix/scripts/pack.scm | 2 +- guix/self.scm | 2 +- guix/swh.scm | 35 +++++++++++++++++++---------------- m4/guix.m4 | 21 +++++++++++++++++++++ tests/import-utils.scm | 22 ++++++++++++++++++++++ 22 files changed, 140 insertions(+), 104 deletions(-) diff --git a/configure.ac b/configure.ac index 3918550a79..689b28d984 100644 --- a/configure.ac +++ b/configure.ac @@ -119,8 +119,8 @@ if test "x$have_guile_git" != "xyes"; then fi dnl Check for Guile-JSON. -GUILE_MODULE_AVAILABLE([have_guile_json], [(json)]) -if test "x$have_guile_json" != "xyes"; then +GUIX_CHECK_GUILE_JSON +if test "x$guix_cv_have_recent_guile_json" != "xyes"; then AC_MSG_ERROR([Guile-JSON is missing; please install it.]) fi diff --git a/doc/guix.texi b/doc/guix.texi index f6d9718f59..c2da4ce173 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -750,7 +750,7 @@ or later; @c FIXME: Specify a version number once a release has been made. @uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August 2017 or later; -@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}; +@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x; @item @url{https://zlib.net, zlib}; @item @url{https://www.gnu.org/software/make/, GNU Make}. @end itemize diff --git a/gnu/installer.scm b/gnu/installer.scm index 1452c4dc7e..15d971dfc4 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -69,7 +69,7 @@ (define set-utf8-locale (setlocale LC_ALL "en_US.utf8"))) (define builder - (with-extensions (list guile-json) + (with-extensions (list guile-json-3) (with-imported-modules (source-module-closure '((gnu installer locale))) #~(begin @@ -313,7 +313,7 @@ (define installer-builder ;; packages …), etc. modules. (with-extensions (list guile-gcrypt guile-newt guile-parted guile-bytestructures - guile-json guile-git guix) + guile-json-3 guile-git guix) (with-imported-modules `(,@(source-module-closure `(,@modules (gnu services herd) diff --git a/gnu/installer/locale.scm b/gnu/installer/locale.scm index 13f3a1e881..ccffb6d8ef 100644 --- a/gnu/installer/locale.scm +++ b/gnu/installer/locale.scm @@ -134,16 +134,18 @@ (define (iso639->iso639-languages locales iso639-3 iso639-5) (lambda (port-iso639-5) (filter-map (lambda (hash) - (let ((alpha2 (hash-ref hash "alpha_2")) - (alpha3 (hash-ref hash "alpha_3")) - (name (hash-ref hash "name"))) + (let ((alpha2 (assoc-ref hash "alpha_2")) + (alpha3 (assoc-ref hash "alpha_3")) + (name (assoc-ref hash "name"))) (and (supported-locale? locales alpha2 alpha3) `((alpha2 . ,alpha2) (alpha3 . ,alpha3) (name . ,name))))) (append - (hash-ref (json->scm port-iso639-3) "639-3") - (hash-ref (json->scm port-iso639-5) "639-5")))))))) + (vector->list + (assoc-ref (json->scm port-iso639-3) "639-3")) + (vector->list + (assoc-ref (json->scm port-iso639-5) "639-5"))))))))) (define (language-code->language-name languages language-code) "Using LANGUAGES as a list of ISO639 association lists, return the language @@ -179,10 +181,11 @@ (define (iso3166->iso3166-territories iso3166) (call-with-input-file iso3166 (lambda (port) (map (lambda (hash) - `((alpha2 . ,(hash-ref hash "alpha_2")) - (alpha3 . ,(hash-ref hash "alpha_3")) - (name . ,(hash-ref hash "name")))) - (hash-ref (json->scm port) "3166-1"))))) + `((alpha2 . ,(assoc-ref hash "alpha_2")) + (alpha3 . ,(assoc-ref hash "alpha_3")) + (name . ,(assoc-ref hash "name")))) + (vector->list + (assoc-ref (json->scm port) "3166-1")))))) (define (territory-code->territory-name territories territory-code) "Using TERRITORIES as a list of ISO3166 association lists return the diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index e7f7d8ca51..ac6e4ded92 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -514,7 +514,7 @@ (define boot-program (name (string-append name ".tar.gz")) (graph "system-graph")) (define build - (with-extensions (cons guile-json ;for (guix docker) + (with-extensions (cons guile-json-3 ;for (guix docker) gcrypt-sqlite3&co) ;for (guix store database) (with-imported-modules `(,@(source-module-closure '((guix docker) diff --git a/guix/docker.scm b/guix/docker.scm index b1bd226fa1..c598a073f6 100644 --- a/guix/docker.scm +++ b/guix/docker.scm @@ -62,9 +62,9 @@ (define (generate-tag path) (define (manifest path id) "Generate a simple image manifest." - `(((Config . "config.json") - (RepoTags . (,(generate-tag path))) - (Layers . (,(string-append id "/layer.tar")))))) + `#(((Config . "config.json") + (RepoTags . #(,(generate-tag path))) + (Layers . #(,(string-append id "/layer.tar")))))) ;; According to the specifications this is required for backwards ;; compatibility. It duplicates information provided by the manifest. @@ -81,17 +81,18 @@ (define* (config layer time arch #:key entry-point (environment '())) `((architecture . ,arch) (comment . "Generated by GNU Guix") (created . ,time) - (config . ,`((env . ,(map (match-lambda - ((name . value) - (string-append name "=" value))) - environment)) + (config . ,`((env . ,(list->vector + (map (match-lambda + ((name . value) + (string-append name "=" value))) + environment))) ,@(if entry-point - `((entrypoint . ,entry-point)) + `((entrypoint . ,(list->vector entry-point))) '()))) (container_config . #nil) (os . "linux") (rootfs . ((type . "layers") - (diff_ids . (,(layer-diff-id layer))))))) + (diff_ids . #(,(layer-diff-id layer))))))) (define %tar-determinism-options ;; GNU tar options to produce archives deterministically. diff --git a/guix/git-download.scm b/guix/git-download.scm index f904d11c25..8f84681d46 100644 --- a/guix/git-download.scm +++ b/guix/git-download.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2017 Mathieu Lirzin ;;; Copyright © 2017 Christopher Baines ;;; @@ -85,7 +85,7 @@ (define zlib (module-ref (resolve-interface '(gnu packages compression)) 'zlib)) (define guile-json - (module-ref (resolve-interface '(gnu packages guile)) 'guile-json)) + (module-ref (resolve-interface '(gnu packages guile)) 'guile-json-3)) (define gnutls (module-ref (resolve-interface '(gnu packages tls)) 'gnutls)) diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index d4bea84353..ec86f11743 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -76,8 +76,8 @@ (define string->license ;; ssleay ;; sun ("zlib" 'zlib) - ((x) (string->license x)) - ((lst ...) `(list ,@(map string->license lst))) + (#(x) (string->license x)) + (#(lst ...) `(list ,@(map string->license lst))) (_ #f))) (define (module->name module) @@ -88,10 +88,10 @@ (define (module->dist-name module) "Return the base distribution module for a given module. E.g. the 'ok' module is distributed with 'Test::Simple', so (module->dist-name \"ok\") would return \"Test-Simple\"" - (assoc-ref (json-fetch-alist (string-append - "https://fastapi.metacpan.org/v1/module/" - module - "?fields=distribution")) + (assoc-ref (json-fetch (string-append + "https://fastapi.metacpan.org/v1/module/" + module + "?fields=distribution")) "distribution")) (define (package->upstream-name package) @@ -114,7 +114,7 @@ (define (cpan-fetch name) "Return an alist representation of the CPAN metadata for the perl module MODULE, or #f on failure. MODULE should be e.g. \"Test::Script\"" ;; This API always returns the latest release of the module. - (json-fetch-alist (string-append "https://fastapi.metacpan.org/v1/release/" name))) + (json-fetch (string-append "https://fastapi.metacpan.org/v1/release/" name))) (define (cpan-home name) (string-append "https://metacpan.org/release/" name)) diff --git a/guix/import/crate.scm b/guix/import/crate.scm index 29318aac0e..52c5cb1c30 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm @@ -51,7 +51,7 @@ (define (string->license string) (define (crate-kind-predicate kind) (lambda (dep) (string=? (assoc-ref dep "kind") kind))) - (and-let* ((crate-json (json-fetch-alist (string-append crate-url crate-name))) + (and-let* ((crate-json (json-fetch (string-append crate-url crate-name))) (crate (assoc-ref crate-json "crate")) (name (assoc-ref crate "name")) (version (assoc-ref crate "max_version")) @@ -63,8 +63,8 @@ (define (crate-kind-predicate kind) string->license) '())) ;missing license info (path (string-append "/" version "/dependencies")) - (deps-json (json-fetch-alist (string-append crate-url name path))) - (deps (assoc-ref deps-json "dependencies")) + (deps-json (json-fetch (string-append crate-url name path))) + (deps (vector->list (assoc-ref deps-json "dependencies"))) (dep-crates (filter (crate-kind-predicate "normal") deps)) (dev-dep-crates (filter (lambda (dep) diff --git a/guix/import/gem.scm b/guix/import/gem.scm index ea576b5e4a..0bf9ff2552 100644 --- a/guix/import/gem.scm +++ b/guix/import/gem.scm @@ -40,7 +40,7 @@ (define-module (guix import gem) (define (rubygems-fetch name) "Return an alist representation of the RubyGems metadata for the package NAME, or #f on failure." - (json-fetch-alist + (json-fetch (string-append "https://rubygems.org/api/v1/gems/" name ".json"))) (define (ruby-package-name name) @@ -130,14 +130,18 @@ (define* (gem->guix-package package-name #:optional (repo 'rubygems) version) (assoc-ref package "info"))) (home-page (assoc-ref package "homepage_uri")) (dependencies-names (map (lambda (dep) (assoc-ref dep "name")) - (assoc-ref* package "dependencies" "runtime"))) + (vector->list + (assoc-ref* package + "dependencies" + "runtime")))) (dependencies (map (lambda (dep) (if (string=? dep "bundler") "bundler" ; special case, no prefix (ruby-package-name dep))) dependencies-names)) (licenses (map string->license - (assoc-ref package "licenses")))) + (vector->list + (assoc-ref package "licenses"))))) (values (make-gem-sexp name version hash home-page synopsis description dependencies licenses) dependencies-names))))) diff --git a/guix/import/github.scm b/guix/import/github.scm index cdac70420a..fa23fa4c06 100644 --- a/guix/import/github.scm +++ b/guix/import/github.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ben Woodcroft -;;; Copyright © 2017, 2018 Ludovic Courtès +;;; Copyright © 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2018 Eric Bavier ;;; Copyright © 2019 Arun Isaac ;;; @@ -130,7 +130,7 @@ (define %github-token (define (fetch-releases-or-tags url) "Fetch the list of \"releases\" or, if it's empty, the list of tags for the -repository at URL. Return the corresponding JSON dictionaries (hash tables), +repository at URL. Return the corresponding JSON dictionaries (alists), or #f if the information could not be retrieved. We look at both /releases and /tags because the \"release\" feature of GitHub @@ -172,11 +172,11 @@ (define (latest-released-version url package-name) 'https://github.com/arq5x/bedtools2/archive/v2.24.0.tar.gz' and the name of the package e.g. 'bedtools2'. Return #f if there is no releases" (define (pre-release? x) - (hash-ref x "prerelease")) + (assoc-ref x "prerelease")) (define (release->version release) - (let ((tag (or (hash-ref release "tag_name") ;a "release" - (hash-ref release "name"))) ;a tag + (let ((tag (or (assoc-ref release "tag_name") ;a "release" + (assoc-ref release "name"))) ;a tag (name-length (string-length package-name))) (cond ;; some tags include the name of the package e.g. "fdupes-1.51" @@ -197,7 +197,8 @@ (define (release->version release) tag) (else #f)))) - (let* ((json (fetch-releases-or-tags url))) + (let* ((json (and=> (fetch-releases-or-tags url) + vector->list))) (if (eq? json #f) (if (%github-token) (error "Error downloading release information through the GitHub diff --git a/guix/import/json.scm b/guix/import/json.scm index 81ea5e7b31..8900724dcd 100644 --- a/guix/import/json.scm +++ b/guix/import/json.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson ;;; Copyright © 2015, 2016 Eric Bavier -;;; Copyright © 2018 Ludovic Courtès +;;; Copyright © 2018, 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,8 +23,7 @@ (define-module (guix import json) #:use-module (guix http-client) #:use-module (guix import utils) #:use-module (srfi srfi-34) - #:export (json-fetch - json-fetch-alist)) + #:export (json-fetch)) (define* (json-fetch url ;; Note: many websites returns 403 if we omit a @@ -43,9 +42,3 @@ (define* (json-fetch url (result (json->scm port))) (close-port port) result))) - -(define (json-fetch-alist url) - "Return an alist representation of the JSON resource URL, or #f if URL -returns 403 or 404." - (and=> (json-fetch url) - hash-table->alist)) diff --git a/guix/import/launchpad.scm b/guix/import/launchpad.scm index ffd5e9221e..1a15f28077 100644 --- a/guix/import/launchpad.scm +++ b/guix/import/launchpad.scm @@ -87,15 +87,16 @@ (define (pre-release? x) ;; example, "5.1.0-rc1") are assumed to be pre-releases. (not (string-every (char-set-union (char-set #\.) char-set:digit) - (hash-ref x "version")))) + (assoc-ref x "version")))) - (hash-ref + (assoc-ref (last (remove pre-release? - (hash-ref (json-fetch - (string-append "https://api.launchpad.net/1.0/" - package-name "/releases")) - "entries"))) + (vector->list + (assoc-ref (json-fetch + (string-append "https://api.launchpad.net/1.0/" + package-name "/releases")) + "entries")))) "version")) (define (latest-release pkg) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index ab7a024ee0..9b3d80a02e 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson ;;; Copyright © 2015 Cyril Roelandt -;;; Copyright © 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2019 Maxim Cournoyer @@ -56,7 +56,7 @@ (define-module (guix import pypi) (define (pypi-fetch name) "Return an alist representation of the PyPI metadata for the package NAME, or #f on failure." - (json-fetch-alist (string-append "https://pypi.org/pypi/" name "/json"))) + (json-fetch (string-append "https://pypi.org/pypi/" name "/json"))) ;; For packages found on PyPI that lack a source distribution. (define-condition-type &missing-source-error &error @@ -69,7 +69,7 @@ (define (latest-source-release pypi-package) (assoc-ref* pypi-package "info" "version")))) (or (find (lambda (release) (string=? "sdist" (assoc-ref release "packagetype"))) - releases) + (vector->list releases)) (raise (condition (&missing-source-error (package pypi-package))))))) @@ -80,7 +80,7 @@ (define (latest-wheel-release pypi-package) (assoc-ref* pypi-package "info" "version")))) (or (find (lambda (release) (string=? "bdist_wheel" (assoc-ref release "packagetype"))) - releases) + (vector->list releases)) #f))) (define (python->package-name name) diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm index 1c1e73a723..194bea633e 100644 --- a/guix/import/stackage.scm +++ b/guix/import/stackage.scm @@ -60,7 +60,7 @@ (define stackage-lts-info-fetch (let* ((url (if (string=? "" version) (string-append %stackage-url "/lts") (string-append %stackage-url "/lts-" version))) - (lts-info (json-fetch-alist url))) + (lts-info (json-fetch url))) (if lts-info (reverse lts-info) (leave-with-message "LTS release version not found: ~a" version)))))) @@ -74,7 +74,7 @@ (define (stackage-package-version pkg-info) (define (lts-package-version pkgs-info name) "Return the version of the package with upstream NAME included in PKGS-INFO." (let ((pkg (find (lambda (pkg) (string=? (stackage-package-name pkg) name)) - pkgs-info))) + (vector->list pkgs-info)))) (stackage-package-version pkg))) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 84503ab907..2a3b7341fb 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -45,7 +45,6 @@ (define-module (guix import utils) #:use-module (srfi srfi-41) #:export (factorize-uri - hash-table->alist flatten assoc-ref* @@ -100,21 +99,6 @@ (define (factorize-uri uri version) '() indices)))))) -(define (hash-table->alist table) - "Return an alist represenation of TABLE." - (map (match-lambda - ((key . (lst ...)) - (cons key - (map (lambda (x) - (if (hash-table? x) - (hash-table->alist x) - x)) - lst))) - ((key . (? hash-table? table)) - (cons key (hash-table->alist table))) - (pair pair)) - (hash-map->list cons table))) - (define (flatten lst) "Return a list that recursively concatenates all sub-lists of LST." (fold-right @@ -330,11 +314,14 @@ (define (alist->package meta) (lookup-build-system-by-name (string->symbol (assoc-ref meta "build-system")))) (native-inputs - (specs->package-lists (or (assoc-ref meta "native-inputs") '()))) + (specs->package-lists + (vector->list (or (assoc-ref meta "native-inputs") '#())))) (inputs - (specs->package-lists (or (assoc-ref meta "inputs") '()))) + (specs->package-lists + (vector->list (or (assoc-ref meta "inputs") '#())))) (propagated-inputs - (specs->package-lists (or (assoc-ref meta "propagated-inputs") '()))) + (specs->package-lists + (vector->list (or (assoc-ref meta "propagated-inputs") '#())))) (home-page (assoc-ref meta "home-page")) (synopsis diff --git a/guix/scripts/import/json.scm b/guix/scripts/import/json.scm index 8771e7b0eb..c9daf65479 100644 --- a/guix/scripts/import/json.scm +++ b/guix/scripts/import/json.scm @@ -93,7 +93,7 @@ (define (parse-options) (let ((json (json-string->scm (with-input-from-file file-name read-string)))) ;; TODO: also print define-module boilerplate - (package->code (alist->package (hash-table->alist json))))) + (package->code (alist->package json)))) (lambda _ (leave (G_ "invalid JSON in file '~a'~%") file-name)))) (() diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 01472d9768..fdb98983bf 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -479,7 +479,7 @@ (define defmod 'define-module) ;trick Geiser (define build ;; Guile-JSON and Guile-Gcrypt are required by (guix docker). - (with-extensions (list guile-json guile-gcrypt) + (with-extensions (list guile-json-3 guile-gcrypt) (with-imported-modules `(((guix config) => ,(make-config.scm)) ,@(source-module-closure `((guix docker) diff --git a/guix/self.scm b/guix/self.scm index 838ede7690..f03fe01d0c 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -50,7 +50,7 @@ (define specification->package (module-ref (resolve-interface module) variable)))) (match-lambda ("guile" (ref '(gnu packages commencement) 'guile-final)) - ("guile-json" (ref '(gnu packages guile) 'guile-json)) + ("guile-json" (ref '(gnu packages guile) 'guile-json-3)) ("guile-ssh" (ref '(gnu packages ssh) 'guile-ssh)) ("guile-git" (ref '(gnu packages guile) 'guile-git)) ("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3)) diff --git a/guix/swh.scm b/guix/swh.scm index d692f81806..df2a138f04 100644 --- a/guix/swh.scm +++ b/guix/swh.scm @@ -138,16 +138,16 @@ (define (json->record input) (json->scm input)) ((string? input) (json-string->scm input)) - ((hash-table? input) + ((or (null? input) (pair? input)) input)))) (let-syntax ((extract-field (syntax-rules () ((_ table (field key json->value)) - (json->value (hash-ref table key))) + (json->value (assoc-ref table key))) ((_ table (field key)) - (hash-ref table key)) + (assoc-ref table key)) ((_ table (field)) - (hash-ref table - (symbol->string 'field)))))) + (assoc-ref table + (symbol->string 'field)))))) (ctor (extract-field table spec) ...))))) (define-syntax-rule (define-json-mapping rtd ctor pred json->record @@ -257,12 +257,13 @@ (define-record-type (target-url branch-target-url)) (define (json->branches branches) - (hash-map->list (lambda (key value) - (make-branch key - (string->symbol - (hash-ref value "target_type")) - (hash-ref value "target_url"))) - branches)) + (map (match-lambda + ((key . value) + (make-branch key + (string->symbol + (assoc-ref value "target_type")) + (assoc-ref value "target_url")))) + branches)) ;; (define-json-mapping make-release release? @@ -292,9 +293,10 @@ (define-json-mapping make-content content? (license-url content-license-url "license_url")) (define (json->checksums checksums) - (hash-map->list (lambda (key value) - (cons key (base16-string->bytevector value))) - checksums)) + (map (match-lambda + ((key . value) + (cons key (base16-string->bytevector value)))) + checksums)) ;; (define-json-mapping make-directory-entry directory-entry? @@ -365,14 +367,15 @@ (define-query (lookup-directory id) json->directory-entries) (define (json->directory-entries port) - (map json->directory-entry (json->scm port))) + (map json->directory-entry + (vector->list (json->scm port)))) (define (origin-visits origin) "Return the list of visits of ORIGIN, a record as returned by 'lookup-origin'." (call (swh-url (origin-visits-url origin)) (lambda (port) - (map json->visit (json->scm port))))) + (map json->visit (vector->list (json->scm port)))))) (define (visit-snapshot visit) "Return the snapshot corresponding to VISIT." diff --git a/m4/guix.m4 b/m4/guix.m4 index d0c5ec0f08..716bfb08ec 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -174,6 +174,27 @@ AC_DEFUN([GUIX_CHECK_GUILE_SQLITE3], [ fi]) ]) +dnl GUIX_CHECK_GUILE_JSON +dnl +dnl Check whether a recent-enough Guile-JSON is available. +AC_DEFUN([GUIX_CHECK_GUILE_JSON], [ + dnl Check whether we're using Guile-JSON 3.x, which uses a JSON-to-Scheme + dnl mapping different from that of earlier versions. + AC_CACHE_CHECK([whether Guile-JSON is available and recent enough], + [guix_cv_have_recent_guile_json], + [GUILE_CHECK([retval], + [(use-modules (json) (ice-9 match)) + (match (json-string->scm \"[[] { \\\"a\\\": 42 } []]\") + (#(("a" . 42)) #t) + (_ #f))]) + if test "$retval" = 0; then + guix_cv_have_recent_guile_json="yes" + else + guix_cv_have_recent_guile_json="no" + fi]) +]) + + dnl GUIX_TEST_ROOT_DIRECTORY AC_DEFUN([GUIX_TEST_ROOT_DIRECTORY], [ AC_CACHE_CHECK([for unit test root directory], diff --git a/tests/import-utils.scm b/tests/import-utils.scm index 5c0c041360..c3ab25d788 100644 --- a/tests/import-utils.scm +++ b/tests/import-utils.scm @@ -23,6 +23,7 @@ (define-module (test-import-utils) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix build-system) + #:use-module (gnu packages) #:use-module (srfi srfi-64)) (test-begin "import-utils") @@ -98,4 +99,25 @@ (define-module (test-import-utils) (or (package-license (alist->package meta)) 'license-is-false))) +(test-equal "alist->package with dependencies" + `(("gettext" ,(specification->package "gettext"))) + (let* ((meta '(("name" . "hello") + ("version" . "2.10") + ("source" . (("method" . "url-fetch") + ("uri" . "mirror://gnu/hello/hello-2.10.tar.gz") + ("sha256" . + (("base32" . + "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))) + ("build-system" . "gnu") + ("home-page" . "https://gnu.org") + ("synopsis" . "Say hi") + ("description" . "This package says hi.") + ; + ;; Note: As with Guile-JSON 3.x, JSON arrays are represented + ;; by vectors. + ("native-inputs" . #("gettext")) + + ("license" . #f)))) + (package-native-inputs (alist->package meta)))) + (test-end "import-utils") From 584a3ca3a4fb69bcf4d166b426ddb882e434894f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 21 Jul 2019 23:17:01 +0200 Subject: [PATCH 029/161] gnu: guile-json: Define 'guile-json-1'. * gnu/packages/guile.scm (guile-json-1): New variable. --- gnu/packages/guile.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 6e11a13c56..e871685f02 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -470,6 +470,10 @@ (define-public guile-json ;; Version 1.2.0 switched to GPLv3+ (from LGPLv3+). (license license:gpl3+))) +(define-public guile-json-1 + ;; This is the 1.x branch of Guile-JSON. + guile-json) + (define-public guile2.2-json (deprecated-package "guile2.2-json" guile-json)) From 91f55717abd05a5808eb6b3a0b397bee4e8edd09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 21 Jul 2019 23:19:58 +0200 Subject: [PATCH 030/161] gnu: Explicitly refer to 'guile-json-1' when needed. * gnu/packages/bioinformatics.scm (rcas-web)[inputs]: Change 'guile-json' to 'guile-json-1'. * gnu/packages/ci.scm (cuirass)[inputs]: Likewise. * gnu/packages/guile-xyz.scm (artanis)[inputs]: Likewise. * gnu/packages/guile-xyz.scm (jupyter-guile-kernel)[inputs]: Likewise. * gnu/packages/guile-xyz.scm (guile-mastodon)[inputs]: Likewise. * gnu/packages/mail.scm (mumi)[inputs]: Likewise. * gnu/packages/package-management.scm (guix)[inputs]: Likewise. * gnu/packages/package-management.scm (guix-daemon)[inputs]: Likewise. * gnu/packages/web.scm (hpcguix-web)[inputs]: Likewise. --- gnu/packages/bioinformatics.scm | 2 +- gnu/packages/ci.scm | 2 +- gnu/packages/guile-xyz.scm | 6 +++--- gnu/packages/mail.scm | 4 ++-- gnu/packages/package-management.scm | 4 ++-- gnu/packages/web.scm | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 5412440fb1..89f1ac36ea 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -8427,7 +8427,7 @@ (define-public rcas-web `(("r-minimal" ,r-minimal) ("r-rcas" ,r-rcas) ("guile-next" ,guile-2.2) - ("guile-json" ,guile-json) + ("guile-json" ,guile-json-1) ("guile-redis" ,guile-redis))) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index eb5f665fc1..4af2cdc6ea 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -121,7 +121,7 @@ (define-public cuirass `(("guile" ,guile-2.2) ("guile-fibers" ,guile-fibers) ("guile-gcrypt" ,guile-gcrypt) - ("guile-json" ,guile-json) + ("guile-json" ,guile-json-1) ("guile-sqlite3" ,guile-sqlite3) ("guile-git" ,guile-git) ;; FIXME: this is propagated by "guile-git", but it needs to be among diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index c16342deb0..6dcdcedccf 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -146,7 +146,7 @@ (define-public artanis ;; projects. ;; TODO: Add guile-dbi and guile-dbd optional dependencies. (inputs `(("guile" ,guile-2.2) - ("guile-json" ,guile-json) + ("guile-json" ,guile-json-1) ("guile-redis" ,guile-redis))) (native-inputs `(("bash" ,bash) ;for the `source' builtin ("pkgconfig" ,pkg-config) @@ -844,7 +844,7 @@ (define-public jupyter-guile-kernel (inputs `(("openssl" ,openssl) ("guile" ,guile-2.2) - ("guile-json" ,guile-json) + ("guile-json" ,guile-json-1) ("guile-simple-zmq" ,guile-simple-zmq))) (synopsis "Guile kernel for the Jupyter Notebook") (description @@ -1008,7 +1008,7 @@ (define-public guile-mastodon (inputs `(("guile" ,guile-2.2) ("gnutls" ,gnutls) - ("guile-json" ,guile-json))) + ("guile-json" ,guile-json-1))) (home-page "https://framagit.org/prouby/guile-mastodon") (synopsis "Guile Mastodon REST API module") (description "This package provides Guile modules to access the diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index b555578639..8a3f64b10d 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2014, 2015, 2017 Mark H Weaver ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2014 Sou Bunnbu @@ -2848,7 +2848,7 @@ (define-public mumi `(("guile-debbugs" ,guile-debbugs-next) ("guile-email" ,guile-email) ("guile-fibers" ,guile-fibers) - ("guile-json" ,guile-json) + ("guile-json" ,guile-json-1) ("guile-syntax-highlight" ,guile-syntax-highlight) ("guile" ,guile-2.2))) (native-inputs diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index ab11065379..9b2cce0e8f 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -293,7 +293,7 @@ (define (intern tarball) (propagated-inputs `(("gnutls" ,gnutls) ("guile-gcrypt" ,guile-gcrypt) - ("guile-json" ,guile-json) + ("guile-json" ,guile-json-1) ("guile-sqlite3" ,guile-sqlite3) ("guile-ssh" ,guile-ssh) ("guile-git" ,guile-git))) @@ -325,7 +325,7 @@ (define-public guix-daemon (inputs `(("gnutls" ,gnutls) ("guile-git" ,guile-git) - ("guile-json" ,guile-json) + ("guile-json" ,guile-json-1) ("guile-gcrypt" ,guile-gcrypt) ,@(fold alist-delete (package-inputs guix) '("boot-guile" "boot-guile/i686" "util-linux")))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index f81d12c7ce..ac6403211c 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -6509,7 +6509,7 @@ (define-public hpcguix-web (propagated-inputs `(("guile" ,guile-2.2) ("guile-commonmark" ,guile-commonmark) - ("guile-json" ,guile-json))) + ("guile-json" ,guile-json-1))) (home-page "https://github.com/UMCUGenetics/hpcguix-web") (synopsis "Web interface for cluster deployments of Guix") (description "Hpcguix-web provides a web interface to the list of packages From 8172ab2dde425cbd7fb6e633ceff634990acbefb Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 24 Jul 2019 21:44:44 -0400 Subject: [PATCH 031/161] gnu: starfighter: Update to 2.0.0.3. * gnu/packages/games.scm (starfighter): Update to 2.0.0.3. [source]: Use url-fetch and remove 'file-name' field. [native-inputs]: Remove autoconf and automake. --- gnu/packages/games.scm | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 266a2d3bac..a17ac9728c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3264,26 +3264,19 @@ (define-public warzone2100 (define-public starfighter (package (name "starfighter") - (version "2.0.0.2") - ;; As recommended by the upstream maintainer, use the git source code - ;; instead of the released source tarball until missing files in the tarball - ;; are added. The 'url-fetch' method may be appropriate again after the - ;; next update. See https://github.com/pr-starfighter/starfighter/issues/1 - ;; for more details. + (version "2.0.0.3") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pr-starfighter/starfighter") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append + "https://github.com/pr-starfighter/starfighter/releases" + "/download/v" version "/starfighter-" + (version-major+minor version) "-src.tar.gz")) (sha256 (base32 - "0p81ywgm2dxjbpmbsgx4f2d83sy6lv3hinrr1vzprkf9viidqnd2")))) + "13vi5kh9ahws4f52421cbyw0jn7pmbnld358lqfmr6flql7ilj3b")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config))) (inputs `(("pango" ,pango) ("sdl2" ,sdl2) From 7c0411879b3a393e4a2b082571fc23d4134b182f Mon Sep 17 00:00:00 2001 From: "Jovany Leandro G.C" Date: Wed, 24 Jul 2019 20:35:15 -0500 Subject: [PATCH 032/161] gnu: Add xchm. * gnu/packages/ebook.scm (xchm): New variable. Signed-off-by: Ricardo Wurmus Co-authored-by: Ricardo Wurmus --- gnu/packages/ebook.scm | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index cf424f285d..205dd3c8a7 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -56,7 +56,8 @@ (define-module (gnu packages ebook) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages xml) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (gnu packages wxwidgets)) (define-public chmlib (package @@ -330,3 +331,27 @@ (define-public fbreader @item XHTML @end enumerate") (license license:gpl2+))) + +(define-public xchm + (package + (name "xchm") + (version "1.30") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/rzvncj/xCHM" + "/releases/download/" + version "/xchm-" version ".tar.gz")) + (sha256 + (base32 + "1865wb3ppmx5y12rqfhv4wri0lfdah41zsfz94xb8gym80m8zac5")))) + (build-system gnu-build-system) + (inputs + `(("wxwidgets" ,wxwidgets) + ("chmlib" ,chmlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://github.com/rzvncj/xCHM") + (synopsis "CHM file viewer") + (description "xCHM is a graphical CHM file viewer. It is a frontend to +the CHM library CHMLIB.") + (license license:gpl2+))) From 15027b89a87c20cdde10599bb1b66a84b15eb648 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 25 Jul 2019 14:22:20 +0200 Subject: [PATCH 033/161] gnu: xpra: Update to 2.5.3. * gnu/packages/xorg.scm (xpra): Update to 2.5.3. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index a2a152bec4..0dbd0326c3 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5988,7 +5988,7 @@ (define-public xcompmgr (define-public xpra (package (name "xpra") - (version "2.5.2") + (version "2.5.3") (source (origin (method url-fetch) @@ -5996,7 +5996,7 @@ (define-public xpra version ".tar.xz")) (sha256 (base32 - "1zbh2990crrxp02c554yh30f0s9znm6iiiklkw8vpxrlmdv1z8ks")))) + "1ys35lj28903alccks9p055psy1fsk1nxi8ncchvw8bfxkkkvbys")))) (build-system python-build-system) (inputs `(("ffmpeg" ,ffmpeg) ("flac" ,flac) From 108edc964bf8111f32e6c98b2fc92ca58547f246 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 25 Jul 2019 17:34:49 +0200 Subject: [PATCH 034/161] gnu: exim: Update to 4.92.1 [fixes CVE-2019-13917]. * gnu/packages/mail.scm (exim): Update to 4.92.1. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 8a3f64b10d..bfa2394ae4 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1195,7 +1195,7 @@ (define-public msmtp (define-public exim (package (name "exim") - (version "4.92") + (version "4.92.1") (source (origin (method url-fetch) @@ -1204,7 +1204,7 @@ (define-public exim (string-append "https://ftp.exim.org/pub/exim/exim4/old/exim-" version ".tar.bz2"))) (sha256 - (base32 "127spqn009wa6irp6r1k7a24r8vdwb6mf0raamxn8lbxsnrwy7sl")))) + (base32 "132zmxgzz35xwi89g3crw6hd3y74rxj5zcpamakvrnlcn256amdp")))) (build-system gnu-build-system) (inputs `(("bdb" ,bdb-5.3) ; ‘#error Version 6 and later BDB API is not supported’ From ec8c1681e875e4934cf149fe492db802a6c51612 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 21 Jul 2019 01:12:18 -0400 Subject: [PATCH 035/161] gnu: Go 1.11: Update to 1.11.12. * gnu/packages/golang.scm (go-1.11): Update to 1.11.12. --- gnu/packages/golang.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2f5396dd1e..6381b2c4d6 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -220,7 +220,7 @@ (define-public go-1.11 (package (inherit go-1.4) (name "go") - (version "1.11.10") + (version "1.11.12") (source (origin (method url-fetch) @@ -228,7 +228,7 @@ (define-public go-1.11 name version ".src.tar.gz")) (sha256 (base32 - "06rw962xigbrxblp942jbh7k133blpxg2xfrxi32qdhxkmmfj9yz")))) + "09k9zmq7hhgg0bf1y7rwa0kn7q1vkkr94cmg2iv9lq3najh5nykd")))) (arguments (substitute-keyword-arguments (package-arguments go-1.4) ((#:phases phases) From 1074b37073afd99f59c760ef0e69c59a7b7ec57d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 21 Jul 2019 01:17:41 -0400 Subject: [PATCH 036/161] gnu: Go 1.12: Update to 1.12.7. * gnu/packages/golang.scm (go-1.12): Update to 1.12.7. --- gnu/packages/golang.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 6381b2c4d6..10c30e520b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -401,7 +401,7 @@ (define-public go-1.12 (package (inherit go-1.4) (name "go") - (version "1.12.1") + (version "1.12.7") (source (origin (method url-fetch) @@ -409,7 +409,7 @@ (define-public go-1.12 name version ".src.tar.gz")) (sha256 (base32 - "12l12mmgqvy3nbscy7sz83qj4m6iz5a322aq9sk45f7l9ml2gq8b")))) + "04rvwj69gmw3bz8pw5pf10r21ar0pgpnswp15nkddf04dxyl9s4m")))) (arguments (substitute-keyword-arguments (package-arguments go-1.4) ((#:phases phases) From f115d81748d8bedce1344c7e8c1d533ff9a4fe31 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Thu, 25 Jul 2019 20:37:43 +0200 Subject: [PATCH 037/161] gnu: Add perl-mail-authenticationresults. * gnu/packages/mail.scm (perl-mail-authenticationresults): New variable. --- gnu/packages/mail.scm | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index bfa2394ae4..f783271d18 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015, 2017 Mark H Weaver ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2014 Sou Bunnbu -;;; Copyright © 2014 Julien Lepiller +;;; Copyright © 2014, 2019 Julien Lepiller ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015, 2016, 2018 Eric Bavier @@ -95,6 +95,7 @@ (define-module (gnu packages mail) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) #:use-module (gnu packages perl-web) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -1900,6 +1901,29 @@ (define-public perl-mail-spf in Perl.") (license bsd-3))) +(define-public perl-mail-authenticationresults + (package + (name "perl-mail-authenticationresults") + (version "1.20180923") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MB/MBRADSHAW/" + "Mail-AuthenticationResults-" version ".tar.gz")) + (sha256 + (base32 + "1g1wym9vcbhldwvi4w5pl0fhd4jh2icj975awf4wr5xmkli9mxbz")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-exception" ,perl-test-exception))) + (home-page "https://metacpan.org/release/Mail-AuthenticationResults") + (synopsis "Object Oriented Authentication-Results Headers") + (description "Mail::AuthenticationResults parses the message header field +that indicates the message authentication status as per RFC7601. This module +is not fully compliant with the RFC but it tries to implement most styles of +Authentication-Results header seen in the wild.") + (license perl-license))) + (define-public mb2md (package (name "mb2md") From ac629e625cb0a07cfef82d23a9342bba3f1f8029 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Thu, 25 Jul 2019 20:40:30 +0200 Subject: [PATCH 038/161] gnu: Add perl-net-dns-resolver-mock. * gnu/packages/networking.scm (perl-net-dns-resolver-mock): New variable. --- gnu/packages/networking.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index bc252fc591..3c65630a85 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -28,6 +28,7 @@ ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2019 Maxim Cournoyer ;;; Copyright © 2019 Vasile Dumitrascu +;;; Copyright © 2019 Julien Lepiller ;;; ;;; This file is part of GNU Guix. ;;; @@ -1081,6 +1082,28 @@ (define-public perl-net-dns-resolver-programmable offline emulation of DNS.") (license license:perl-license))) +(define-public perl-net-dns-resolver-mock + (package + (name "perl-net-dns-resolver-mock") + (version "1.20171219") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MB/MBRADSHAW/" + "Net-DNS-Resolver-Mock-" version ".tar.gz")) + (sha256 + (base32 + "0m3rxpkv1b9121srvbqkrgzg4m8mnydiydqv34in1i1ixwrl6jn9")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-net-dns" ,perl-net-dns))) + (home-page "https://metacpan.org/release/Net-DNS-Resolver-Mock") + (synopsis "Mock a DNS Resolver object for testing") + (description "Net::DNS::Resolver::Mock is a a subclass of +@code{Net::DNS::Resolver} which parses a zonefile for it's data source. It is +primarily for use in testing.") + (license license:perl-license))) + (define-public perl-netaddr-ip (package (name "perl-netaddr-ip") From 930c52ae66eff9fb040877c315e029fc1a81e1fa Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Thu, 25 Jul 2019 20:48:24 +0200 Subject: [PATCH 039/161] gnu: Add perl-mail-dkim. * gnu/packages/mail.scm (perl-mail-dkim): New variable. --- gnu/packages/mail.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index f783271d18..3740e73d9f 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1924,6 +1924,38 @@ (define-public perl-mail-authenticationresults Authentication-Results header seen in the wild.") (license perl-license))) +(define-public perl-mail-dkim + (package + (name "perl-mail-dkim") + (version "0.55") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-" + version + ".tar.gz")) + (sha256 + (base32 + "18nsh1ff6fkns4xk3y2ixmzmadgggydj11qkzj6nlnq2hzqxsafz")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa) + ("perl-mail-authenticationresults" ,perl-mail-authenticationresults) + ("perl-mailtools" ,perl-mailtools) + ("perl-net-dns" ,perl-net-dns))) + (native-inputs + `(("perl-net-dns-resolver-mock" ,perl-net-dns-resolver-mock) + ("perl-test-requiresinternet" ,perl-test-requiresinternet) + ("perl-yaml-libyaml" ,perl-yaml-libyaml))) + (home-page "https://metacpan.org/release/Mail-DKIM") + (synopsis "Signs/verifies Internet mail with DKIM/DomainKey signatures") + (description "Mail::DKIM is a Perl module that implements the new Domain +Keys Identified Mail (DKIM) standard, and the older Yahoo! DomainKeys standard, +both of which sign and verify emails using digital signatures and DNS records. +Mail-DKIM can be used by any Perl program that wants to provide support for +DKIM and/or DomainKeys.") + (license gpl3+))) + (define-public mb2md (package (name "mb2md") From 8582202c5b2d7b60c9a816a29ec2a5a32acd64ee Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Thu, 25 Jul 2019 20:54:02 +0200 Subject: [PATCH 040/161] gnu: Add dkimproxy. * gnu/packages/mail.scm (dkimproxy): New variable. --- gnu/packages/mail.scm | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 3740e73d9f..4f0c7cf265 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1956,6 +1956,62 @@ (define-public perl-mail-dkim DKIM and/or DomainKeys.") (license gpl3+))) +(define-public dkimproxy + (package + (name "dkimproxy") + (version "1.4.1") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/dkimproxy/dkimproxy/" + version "/dkimproxy-" version ".tar.gz")) + (sha256 + (base32 + "1gc5c7lg2qrlck7b0lvjfqr824ch6jkrzkpsn0gjvlzg7hfmld75")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'make-wrapper + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (for-each + (lambda (prog) + (wrap-program (string-append out "/bin/" prog) + `("PERL5LIB" ":" prefix + (,(string-append (assoc-ref inputs "perl-mail-dkim") + "/lib/perl5/site_perl") + ,(string-append (assoc-ref inputs "perl-mailtools") + "/lib/perl5/site_perl") + ,(string-append + (assoc-ref inputs "perl-mail-authenticationresults") + "/lib/perl5/site_perl") + ,(string-append (assoc-ref inputs "perl-crypt-openssl-rsa") + "/lib/perl5/site_perl") + ,(string-append (assoc-ref inputs "perl-net-dns") + "/lib/perl5/site_perl") + ,(string-append (assoc-ref inputs "perl-net-server") + "/lib/perl5/site_perl"))))) + '("dkimproxy.in" "dkimproxy.out"))) + #t))))) + (inputs + `(("perl" ,perl) + ("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa) + ("perl-mailtools" ,perl-mailtools) + ("perl-mail-authenticationresults" ,perl-mail-authenticationresults) + ("perl-mail-dkim" ,perl-mail-dkim) + ("perl-net-dns" ,perl-net-dns) + ("perl-net-server" ,perl-net-server))) + (home-page "http://dkimproxy.sourceforge.net/") + (synopsis "SMTP-proxy for DKIM signing and verifying") + (description "DKIMproxy is an SMTP-proxy that signs and/or verifies emails, +using the @code{Mail::DKIM} module. It is designed for Postfix, but should +work with any mail server. It comprises two separate proxies, an outbound +proxy for signing outgoing email, and an inbound proxy for verifying signatures +of incoming email. With Postfix, the proxies can operate as either +@code{Before-Queue} or @code{After-Queue} content filters.") + (license gpl3+))) + (define-public mb2md (package (name "mb2md") From b07aea69dd1d25dbc7f0d5ad28238f16a346352e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 25 Jul 2019 18:34:57 +0200 Subject: [PATCH 041/161] gnu: clustershh: Add missing perl-sort-naturally input. * gnu/packages/admin.scm (clusterssh)[propagated-inputs]: Add perl-sort-naturally. --- gnu/packages/admin.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 99f4d7aded..580131325a 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -929,6 +929,7 @@ (define-public clusterssh (propagated-inputs `(("xterm" ,xterm) ("perl-exception-class" ,perl-exception-class) + ("perl-sort-naturally" ,perl-sort-naturally) ("perl-tk" ,perl-tk) ("perl-try-tiny" ,perl-try-tiny) ("perl-x11-protocol" ,perl-x11-protocol) From 12ea2571221fc08b961c9fd38420648126ac6674 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 25 Jul 2019 18:59:38 +0200 Subject: [PATCH 042/161] gnu: clusterssh: Don't propagate xterm. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/admin.scm (clusterssh)[arguments]: Add ‘refer-to-inputs’ and ‘delete-failing-tests’ phases. [inputs]: Move xterm to here… [propagated-inputs]: …from here. --- gnu/packages/admin.scm | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 580131325a..42dc4396eb 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -913,6 +913,25 @@ (define-public clusterssh (base32 "0rmk2p3f2wz1h092anidjclh212rv3gxyk0c641qk3frlrjnw6mp")))) (build-system perl-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'refer-to-inputs + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (list "lib/App/ClusterSSH/Config.pm" + "t/15config.t") + (("xterm") + (which "xterm"))) + #t)) + (add-before 'check 'delete-failing-tests + (lambda _ + ;; This checks whether all code is nicely formatted. The above + ;; ‘refer-to-inputs’ phase breaks this pedantry, so disable it. + (delete-file "t/perltidy.t") + ;; Update the manifest so t/manifest.t happily passes. + (substitute* "MANIFEST" + (("t/perltidy.t\n") "")) + #t))))) (native-inputs `(("perl-cpan-changes" ,perl-cpan-changes) ("perl-file-slurp" ,perl-file-slurp) @@ -926,9 +945,10 @@ (define-public clusterssh ("perl-test-pod-coverage" ,perl-test-pod-coverage) ("perl-test-trap" ,perl-test-trap) ("perltidy" ,perltidy))) + (inputs + `(("xterm" ,xterm))) (propagated-inputs - `(("xterm" ,xterm) - ("perl-exception-class" ,perl-exception-class) + `(("perl-exception-class" ,perl-exception-class) ("perl-sort-naturally" ,perl-sort-naturally) ("perl-tk" ,perl-tk) ("perl-try-tiny" ,perl-try-tiny) From 41097b2dee9367974c6dd16ac1ba2ee945457237 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 25 Jul 2019 21:58:14 +0200 Subject: [PATCH 043/161] gnu: libvirt: Don't use bogus cgroup. Should fix . * gnu/packages/virtualization.scm (libvirt)[source]: Add patch. * gnu/packages/patches/libvirt-remove-ATTRIBUTE_UNUSED.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../libvirt-remove-ATTRIBUTE_UNUSED.patch | 34 +++++++++++++++++++ gnu/packages/virtualization.scm | 16 +++++---- 3 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 gnu/packages/patches/libvirt-remove-ATTRIBUTE_UNUSED.patch diff --git a/gnu/local.mk b/gnu/local.mk index eb3b0dcd3b..96b5dec029 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1042,6 +1042,7 @@ dist_patch_DATA = \ %D%/packages/patches/libutils-add-includes.patch \ %D%/packages/patches/libutils-remove-damaging-includes.patch \ %D%/packages/patches/libvdpau-va-gl-unbundle.patch \ + %D%/packages/patches/libvirt-remove-ATTRIBUTE_UNUSED.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ %D%/packages/patches/libvpx-use-after-free-in-postproc.patch \ %D%/packages/patches/libxslt-generated-ids.patch \ diff --git a/gnu/packages/patches/libvirt-remove-ATTRIBUTE_UNUSED.patch b/gnu/packages/patches/libvirt-remove-ATTRIBUTE_UNUSED.patch new file mode 100644 index 0000000000..5bfefa70bb --- /dev/null +++ b/gnu/packages/patches/libvirt-remove-ATTRIBUTE_UNUSED.patch @@ -0,0 +1,34 @@ +From: Tobias Geerinckx-Rice +Date: Thu, 25 Jul 2019 21:48:25 +0200 +Subject: [PATCH]: libvirt: remove ATTRIBUTE_UNUSED + +This should fix the error reported here[0]. Patch taken verbatim from +upstream[1]. + +[0]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36634#28 +[1]: https://github.com/libvirt/libvirt/commit/759bf903a6c24a8efa25c7cf4b099d952eda9bd3 + +From 759bf903a6c24a8efa25c7cf4b099d952eda9bd3 Mon Sep 17 00:00:00 2001 +From: Pavel Hrdina +Date: Mon, 22 Jul 2019 14:46:34 +0200 +Subject: [PATCH] vircgroupv2: remove ATTRIBUTE_UNUSED for used attribute + +Signed-off-by: Pavel Hrdina +Acked-by: Peter Krempa +--- + src/util/vircgroupv2.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/util/vircgroupv2.c b/src/util/vircgroupv2.c +index af3192c99c..e36c36685b 100644 +--- a/src/util/vircgroupv2.c ++++ b/src/util/vircgroupv2.c +@@ -399,7 +399,7 @@ virCgroupV2EnableController(virCgroupPtr group, + + + static int +-virCgroupV2MakeGroup(virCgroupPtr parent ATTRIBUTE_UNUSED, ++virCgroupV2MakeGroup(virCgroupPtr parent, + virCgroupPtr group, + bool create, + unsigned int flags) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index c6371a6ac1..7c69f7b60e 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -391,13 +391,15 @@ (define-public libvirt (package (name "libvirt") (version "5.5.0") - (source (origin - (method url-fetch) - (uri (string-append "https://libvirt.org/sources/libvirt-" - version ".tar.xz")) - (sha256 - (base32 - "1s1mzw4cmkcfivs1kphpgy4lpddx0w1qnjysr4ggk5558w4yy1i3")))) + (source + (origin + (method url-fetch) + (uri (string-append "https://libvirt.org/sources/libvirt-" + version ".tar.xz")) + (sha256 + (base32 "1s1mzw4cmkcfivs1kphpgy4lpddx0w1qnjysr4ggk5558w4yy1i3")) + (patches + (search-patches "libvirt-remove-ATTRIBUTE_UNUSED.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags From 66e39000c612a9e16e6db709954582c6c0db8499 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Mar 2019 21:04:23 +0100 Subject: [PATCH 044/161] gnu: dkimproxy: Add IPv6 support. * gnu/packages/mail.scm (dkimproxy)[source]: Add patch. * gnu/packages/patches/dkimproxy-add-ipv6-support.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/mail.scm | 8 +- .../patches/dkimproxy-add-ipv6-support.patch | 75 +++++++++++++++++++ 3 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/dkimproxy-add-ipv6-support.patch diff --git a/gnu/local.mk b/gnu/local.mk index 96b5dec029..455bea0397 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -756,6 +756,7 @@ dist_patch_DATA = \ %D%/packages/patches/dfu-programmer-fix-libusb.patch \ %D%/packages/patches/diffutils-gets-undeclared.patch \ %D%/packages/patches/diffutils-getopt.patch \ + %D%/packages/patches/dkimproxy-add-ipv6-support.patch \ %D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 4f0c7cf265..5ffb5b6cd1 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1967,7 +1967,9 @@ (define-public dkimproxy version "/dkimproxy-" version ".tar.gz")) (sha256 (base32 - "1gc5c7lg2qrlck7b0lvjfqr824ch6jkrzkpsn0gjvlzg7hfmld75")))) + "1gc5c7lg2qrlck7b0lvjfqr824ch6jkrzkpsn0gjvlzg7hfmld75")) + (patches + (search-patches "dkimproxy-add-ipv6-support.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1997,11 +1999,13 @@ (define-public dkimproxy (inputs `(("perl" ,perl) ("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa) + ("perl-io-socket-inet6" ,perl-io-socket-inet6) ("perl-mailtools" ,perl-mailtools) ("perl-mail-authenticationresults" ,perl-mail-authenticationresults) ("perl-mail-dkim" ,perl-mail-dkim) ("perl-net-dns" ,perl-net-dns) - ("perl-net-server" ,perl-net-server))) + ("perl-net-server" ,perl-net-server) + ("perl-socket6" ,perl-socket6))) (home-page "http://dkimproxy.sourceforge.net/") (synopsis "SMTP-proxy for DKIM signing and verifying") (description "DKIMproxy is an SMTP-proxy that signs and/or verifies emails, diff --git a/gnu/packages/patches/dkimproxy-add-ipv6-support.patch b/gnu/packages/patches/dkimproxy-add-ipv6-support.patch new file mode 100644 index 0000000000..8e9988791d --- /dev/null +++ b/gnu/packages/patches/dkimproxy-add-ipv6-support.patch @@ -0,0 +1,75 @@ +From: Tobias Geerinckx-Rice +Date: Fri, 01 Mar 2019 20:51:32 +0100 +Subject: [PATCH] dkimproxy: Add IPv6 support. + +The following patch was copied verbatim from Debian[0]. + +[0]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=656041 + +--- +--- dkimproxy-1.4.1.orig/lib/MSDW/SMTP/Server.pm ++++ dkimproxy-1.4.1/lib/MSDW/SMTP/Server.pm +@@ -11,7 +11,7 @@ + # Written by Bennett Todd + + package MSDW::SMTP::Server; +-use IO::Socket; ++use IO::Socket::INET6; + use IO::File; + + =head1 NAME +@@ -88,14 +88,14 @@ + =item new(interface => $interface, port => $port); + + The interface and port to listen on must be specified. The interface +-must be a valid numeric IP address (0.0.0.0 to listen on all +-interfaces, as usual); the port must be numeric. If this call +-succeeds, it returns a server structure with an open +-IO::Socket::INET in it, ready to listen on. If it fails it dies, so +-if you want anything other than an exit with an explanatory error +-message, wrap the constructor call in an eval block and pull the +-error out of $@ as usual. This is also the case for all other +-methods; they succeed or they die. ++must be a valid numeric IPv4 or IPv6 address (0.0.0.0 or :: to listen ++on all interfaces, as usual); the port must be numeric. If this call ++succeeds, it returns a server structure with an open IO::Socket::INET6 ++in it, ready to listen on. If it fails it dies, so if you want ++anything other than an exit with an explanatory error message, wrap ++the constructor call in an eval block and pull the error out of $@ as ++usual. This is also the case for all other methods; they succeed or ++they die. + + =item accept([debug => FD]); + +@@ -154,7 +154,7 @@ + my ($this, @opts) = @_; + my $class = ref($this) || $this; + my $self = bless { @opts }, $class; +- $self->{sock} = IO::Socket::INET->new( ++ $self->{sock} = IO::Socket::INET6->new( + LocalAddr => $self->{interface}, + LocalPort => $self->{port}, + Proto => 'tcp', +only in patch2: +unchanged: +--- dkimproxy-1.4.1.orig/scripts/dkimproxy.out ++++ dkimproxy-1.4.1/scripts/dkimproxy.out +@@ -314,17 +314,11 @@ + { + my $self = shift; + +- # try to determine peer's address +- use Socket; +- my $peersockaddr = getpeername(STDOUT); +- my ($port, $iaddr) = sockaddr_in($peersockaddr); +- $ENV{REMOTE_ADDR} = inet_ntoa($iaddr); +- + # initialize syslog + eval + { + openlog("dkimproxy.out", "perror,pid,ndelay", "mail"); +- syslog("debug", '%s', "connect from $ENV{REMOTE_ADDR}"); ++ syslog("debug", '%s', "connect from $self->{server}->{peeraddr}"); + }; + if (my $E = $@) + { From 2b456dd83646bd7489f6475afe5f247f22f79d27 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 25 Jul 2019 22:30:09 +0200 Subject: [PATCH 045/161] gnu: dkimproxy: Correct licence. * gnu/packages/mail.scm (dkimproxy)[license]: Change to gpl2+. --- gnu/packages/mail.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 5ffb5b6cd1..c31a141009 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -2014,7 +2014,7 @@ (define-public dkimproxy proxy for signing outgoing email, and an inbound proxy for verifying signatures of incoming email. With Postfix, the proxies can operate as either @code{Before-Queue} or @code{After-Queue} content filters.") - (license gpl3+))) + (license gpl2+))) (define-public mb2md (package From ce3a71c61911caadad3b9cb8a1f47370b9b5e61f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 25 Jul 2019 22:35:29 +0200 Subject: [PATCH 046/161] gnu: perl-net-dns-resolver-mock: Unpropagate perl-net-dns. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/networking.scm (perl-net-dns-resolver-mock)[inputs]: Move perl-net-dns to here… [propagated-inputs]: …from here. --- gnu/packages/networking.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 3c65630a85..7cdd43096e 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1095,7 +1095,7 @@ (define-public perl-net-dns-resolver-mock (base32 "0m3rxpkv1b9121srvbqkrgzg4m8mnydiydqv34in1i1ixwrl6jn9")))) (build-system perl-build-system) - (propagated-inputs + (inputs `(("perl-net-dns" ,perl-net-dns))) (home-page "https://metacpan.org/release/Net-DNS-Resolver-Mock") (synopsis "Mock a DNS Resolver object for testing") From 858be794743e4f8805ec63316dec73b23de5aa56 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 25 Jul 2019 22:37:57 +0200 Subject: [PATCH 047/161] gnu: perl-net-dns-resolver-mock: Edit synopsis & description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/networking.scm (perl-net-dns-resolver-mock)[synopsis]: Remove unfortunate ‘a’. [description]: Fix typo. Edit for clarity. --- gnu/packages/networking.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 7cdd43096e..fb371ed73b 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1098,10 +1098,11 @@ (define-public perl-net-dns-resolver-mock (inputs `(("perl-net-dns" ,perl-net-dns))) (home-page "https://metacpan.org/release/Net-DNS-Resolver-Mock") - (synopsis "Mock a DNS Resolver object for testing") - (description "Net::DNS::Resolver::Mock is a a subclass of -@code{Net::DNS::Resolver} which parses a zonefile for it's data source. It is -primarily for use in testing.") + (synopsis "Mock DNS Resolver object for testing") + (description + "Net::DNS::Resolver::Mock is a subclass of Net::DNS::Resolver, but returns +static data from any provided DNS zone file instead of querying the network. +It is intended primarily for use in testing.") (license license:perl-license))) (define-public perl-netaddr-ip From d045dce16d319f68fa9209fd1d75a44999edd938 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 25 Jul 2019 23:02:38 +0200 Subject: [PATCH 048/161] gnu: dkimproxy: Keyword-stuff descriptions. * gnu/packages/mail.scm (dkimproxy)[synopsis]: Do so. [description]: Also. --- gnu/packages/mail.scm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index c31a141009..675ba20e83 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -2007,12 +2007,15 @@ (define-public dkimproxy ("perl-net-server" ,perl-net-server) ("perl-socket6" ,perl-socket6))) (home-page "http://dkimproxy.sourceforge.net/") - (synopsis "SMTP-proxy for DKIM signing and verifying") - (description "DKIMproxy is an SMTP-proxy that signs and/or verifies emails, -using the @code{Mail::DKIM} module. It is designed for Postfix, but should -work with any mail server. It comprises two separate proxies, an outbound + (synopsis "SMTP proxy to sign and verify Internet mail with DKIM headers") + (description + "DKIMproxy is an SMTP proxy that signs and verifies Internet mail using the +@code{Mail::DKIM} Perl module. It comprises two separate proxies: an outbound proxy for signing outgoing email, and an inbound proxy for verifying signatures -of incoming email. With Postfix, the proxies can operate as either +of incoming messages. + +It was designed for Postfix, but can be used to add DKIM support to nearly any +existing mail server. With Postfix, the proxies can operate as either @code{Before-Queue} or @code{After-Queue} content filters.") (license gpl2+))) From 8c07824c5258588a782d721d8a93b25213d5e658 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 25 Jul 2019 23:27:52 +0200 Subject: [PATCH 049/161] gnu: dkimproxy: Factorise wrapping. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a follow-up to 66e39000c612a9e16e6db709954582c6c0db8499, in a way, since it adds the forgotten *6 inputs. * gnu/packages/mail.scm (dkimproxy)[arguments]: Refactor ’make-wrapper’ phase. Add perl-io-socket-inet6 and perl-socket6 to the list. --- gnu/packages/mail.scm | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 675ba20e83..5837db4dde 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1976,26 +1976,29 @@ (define-public dkimproxy (modify-phases %standard-phases (add-after 'install 'make-wrapper (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (for-each - (lambda (prog) - (wrap-program (string-append out "/bin/" prog) - `("PERL5LIB" ":" prefix - (,(string-append (assoc-ref inputs "perl-mail-dkim") - "/lib/perl5/site_perl") - ,(string-append (assoc-ref inputs "perl-mailtools") - "/lib/perl5/site_perl") - ,(string-append - (assoc-ref inputs "perl-mail-authenticationresults") - "/lib/perl5/site_perl") - ,(string-append (assoc-ref inputs "perl-crypt-openssl-rsa") - "/lib/perl5/site_perl") - ,(string-append (assoc-ref inputs "perl-net-dns") - "/lib/perl5/site_perl") - ,(string-append (assoc-ref inputs "perl-net-server") - "/lib/perl5/site_perl"))))) - '("dkimproxy.in" "dkimproxy.out"))) - #t))))) + (let* ((out (assoc-ref outputs "out")) + (wrap.pl (lambda (scripts keys) + (for-each + (lambda (script) + (wrap-program (string-append out script) + `("PERL5LIB" ":" prefix + ,(map (λ (input) + (string-append + (assoc-ref inputs input) + "/lib/perl5/site_perl")) + keys)))) + scripts)))) + (wrap.pl (list "/bin/dkimproxy.in" + "/bin/dkimproxy.out") + (list "perl-crypt-openssl-rsa" + "perl-io-socket-inet6" + "perl-mailtools" + "perl-mail-authenticationresults" + "perl-mail-dkim" + "perl-net-dns" + "perl-net-server" + "perl-socket6")) + #t)))))) (inputs `(("perl" ,perl) ("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa) From 28e4c3bbb00e165ccc230655256d2845a2233da2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 26 Jul 2019 00:04:59 +0200 Subject: [PATCH 050/161] gnu: dkimproxy: Fix dkim_responder.pl. * gnu/packages/mail.scm (dkimproxy)[arguments]: Wrap dkim_responder.pl. [inputs]: Add perl-mime-tools and perl-timedate. --- gnu/packages/mail.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 5837db4dde..a2c51fd596 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1998,6 +1998,13 @@ (define-public dkimproxy "perl-net-dns" "perl-net-server" "perl-socket6")) + (wrap.pl (list "/bin/dkim_responder.pl") + (list "perl-crypt-openssl-rsa" + "perl-mail-dkim" + "perl-mailtools" + "perl-mime-tools" + "perl-net-dns" + "perl-timedate")) #t)))))) (inputs `(("perl" ,perl) @@ -2006,9 +2013,11 @@ (define-public dkimproxy ("perl-mailtools" ,perl-mailtools) ("perl-mail-authenticationresults" ,perl-mail-authenticationresults) ("perl-mail-dkim" ,perl-mail-dkim) + ("perl-mime-tools" ,perl-mime-tools) ("perl-net-dns" ,perl-net-dns) ("perl-net-server" ,perl-net-server) - ("perl-socket6" ,perl-socket6))) + ("perl-socket6" ,perl-socket6) + ("perl-timedate" ,perl-timedate))) (home-page "http://dkimproxy.sourceforge.net/") (synopsis "SMTP proxy to sign and verify Internet mail with DKIM headers") (description From 3d909a0acff72c7e8df8c2829af4ddfab310bdc2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 26 Jul 2019 00:44:28 +0200 Subject: [PATCH 051/161] gnu: youtube-dl: Update to 2019.07.16. * gnu/packages/video.scm (youtube-dl): Update to 2019.07.16. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 2854ae2228..4b9e05edfe 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1446,7 +1446,7 @@ (define-public libvpx-1.7 (define-public youtube-dl (package (name "youtube-dl") - (version "2019.06.21") + (version "2019.07.16") (source (origin (method url-fetch) (uri (string-append "https://github.com/rg3/youtube-dl/releases/" @@ -1454,7 +1454,7 @@ (define-public youtube-dl version ".tar.gz")) (sha256 (base32 - "03a729198zzhixbn7xixi9bprmk3qqh5dsyh3dqhji6lmlijx1w5")))) + "06qd6z9swx8aw9v7vi85q44hmzxgy8wx18a9ljfhx7l7wjpm99ky")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion From 332a2765031a39fd02a23a16492f68ec3a597b1b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 26 Jul 2019 02:04:58 +0200 Subject: [PATCH 052/161] gnu: clusterssh: Run. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/admin.scm (clusterssh)[arguments]: Add ’augment-library-path’ phase so libraries are found. [propagated-inputs]: Make all of these… [inputs]: …regular. --- gnu/packages/admin.scm | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 42dc4396eb..c3b1e04901 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -931,7 +931,33 @@ (define-public clusterssh ;; Update the manifest so t/manifest.t happily passes. (substitute* "MANIFEST" (("t/perltidy.t\n") "")) - #t))))) + #t)) + (add-after 'install 'augment-library-path + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (with-directory-excursion bin + (for-each + (lambda (program) + (wrap-program program + `("PERL5LIB" ":" prefix + ,(map (lambda (file-name) + (string-append file-name + "/lib/perl5/site_perl")) + (cons out + (map (lambda (input) + (assoc-ref inputs input)) + ;; These may be propagated and hence + ;; not explicitly listed as inputs. + (list "perl-class-data-inheritable" + "perl-devel-stacktrace" + "perl-exception-class" + "perl-tk" + "perl-try-tiny" + "perl-x11-protocol" + "perl-x11-protocol-other"))))))) + (find-files "." ".*"))) + #t)))))) (native-inputs `(("perl-cpan-changes" ,perl-cpan-changes) ("perl-file-slurp" ,perl-file-slurp) @@ -946,14 +972,13 @@ (define-public clusterssh ("perl-test-trap" ,perl-test-trap) ("perltidy" ,perltidy))) (inputs - `(("xterm" ,xterm))) - (propagated-inputs `(("perl-exception-class" ,perl-exception-class) ("perl-sort-naturally" ,perl-sort-naturally) ("perl-tk" ,perl-tk) ("perl-try-tiny" ,perl-try-tiny) ("perl-x11-protocol" ,perl-x11-protocol) - ("perl-x11-protocol-other" ,perl-x11-protocol-other))) + ("perl-x11-protocol-other" ,perl-x11-protocol-other) + ("xterm" ,xterm))) ;; The clusterssh.sourceforge.net address requires login to view (home-page "https://sourceforge.net/projects/clusterssh/") (synopsis "Secure concurrent multi-server terminal control") From cf40f8e4d7b50ca7db0a661bc1b7d90f11627314 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 26 Jul 2019 09:46:00 +0200 Subject: [PATCH 053/161] gnu: vlc: Update to 3.0.7.1. * gnu/packages/video.scm (vlc): Update to 3.0.7.1. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 4b9e05edfe..0ca5469709 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1013,7 +1013,7 @@ (define-public ffmpegthumbnailer (define-public vlc (package (name "vlc") - (version "3.0.7") + (version "3.0.7.1") (source (origin (method url-fetch) (uri (string-append @@ -1022,7 +1022,7 @@ (define-public vlc "/vlc-" version ".tar.xz")) (sha256 (base32 - "05irswyg9acflxzy4vfyvgi643r72vsvagv118zawjqg1wagxdaw")))) + "1xb4c8n0hkwijzfdlbwadhxnx9z8rlhmrdq4c7q74rq9f51q0m86")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) From 422e187fb48d8c5f9c3f61457cdfaf47f473b1ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 26 Jul 2019 10:09:44 +0200 Subject: [PATCH 054/161] gnu: jami-client-gnome: Rename to 'jami'. * gnu/packages/telephony.scm (jami-client-gnome): Rename to... (jami): ... this. Update 'name' field accordingly. (jami-client-gnome): New variable. --- gnu/packages/telephony.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index b5c14143a8..cf37756503 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -847,10 +847,10 @@ (define-public libringclient (home-page "https://jami.net") (license license:gpl3+))) -(define-public jami-client-gnome +(define-public jami (package (inherit libring) - (name "jami-client-gnome") + (name "jami") (build-system cmake-build-system) (inputs `(("libringclient" ,libringclient) @@ -906,3 +906,6 @@ (define-public jami-client-gnome This package provides the Jami client for the GNOME desktop.") (home-page "https://jami.net") (license license:gpl3+))) + +(define-public jami-client-gnome + (deprecated-package "jami-client-gnome" jami)) From c4c2449fea9b7fd78f61ffb9bbe19ab2ef6c8b41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 26 Jul 2019 10:59:24 +0200 Subject: [PATCH 055/161] git: 'update-cached-checkout' supports a 'tag-or-commit' type of ref. * guix/git.scm (switch-to-ref)[obj]: Wrap in 'resolve' lambda. Add 'tag-or-commit' case. (update-cached-checkout): Document it. --- guix/git.scm | 61 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/guix/git.scm b/guix/git.scm index 289537dedf..fb2df2de07 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -139,29 +139,40 @@ (define (switch-to-ref repository ref) "Switch to REPOSITORY's branch, commit or tag specified by REF. Return the OID (roughly the commit hash) corresponding to REF." (define obj - (match ref - (('branch . branch) - (let ((oid (reference-target - (branch-lookup repository branch BRANCH-REMOTE)))) - (object-lookup repository oid))) - (('commit . commit) - (let ((len (string-length commit))) - ;; 'object-lookup-prefix' appeared in Guile-Git in Mar. 2018, so we - ;; can't be sure it's available. Furthermore, 'string->oid' used to - ;; read out-of-bounds when passed a string shorter than 40 chars, - ;; which is why we delay calls to it below. - (if (< len 40) - (if (module-defined? (resolve-interface '(git object)) - 'object-lookup-prefix) - (object-lookup-prefix repository (string->oid commit) len) - (raise (condition - (&message - (message "long Git object ID is required"))))) - (object-lookup repository (string->oid commit))))) - (('tag . tag) - (let ((oid (reference-name->oid repository - (string-append "refs/tags/" tag)))) - (object-lookup repository oid))))) + (let resolve ((ref ref)) + (match ref + (('branch . branch) + (let ((oid (reference-target + (branch-lookup repository branch BRANCH-REMOTE)))) + (object-lookup repository oid))) + (('commit . commit) + (let ((len (string-length commit))) + ;; 'object-lookup-prefix' appeared in Guile-Git in Mar. 2018, so we + ;; can't be sure it's available. Furthermore, 'string->oid' used to + ;; read out-of-bounds when passed a string shorter than 40 chars, + ;; which is why we delay calls to it below. + (if (< len 40) + (if (module-defined? (resolve-interface '(git object)) + 'object-lookup-prefix) + (object-lookup-prefix repository (string->oid commit) len) + (raise (condition + (&message + (message "long Git object ID is required"))))) + (object-lookup repository (string->oid commit))))) + (('tag-or-commit . str) + (if (or (> (string-length str) 40) + (not (string-every char-set:hex-digit str))) + (resolve `(tag . ,str)) ;definitely a tag + (catch 'git-error + (lambda () + (resolve `(tag . ,str))) + (lambda _ + ;; There's no such tag, so it must be a commit ID. + (resolve `(commit . ,str)))))) + (('tag . tag) + (let ((oid (reference-name->oid repository + (string-append "refs/tags/" tag)))) + (object-lookup repository oid)))))) (reset repository obj RESET_HARD) (object-id obj)) @@ -218,8 +229,8 @@ (define* (update-cached-checkout url values: the cache directory name, and the SHA1 commit (a string) corresponding to REF. -REF is pair whose key is [branch | commit | tag] and value the associated -data, respectively [ | | ]. +REF is pair whose key is [branch | commit | tag | tag-or-commit ] and value +the associated data: [ | | | ]. When RECURSIVE? is true, check out submodules as well, if any." (define canonical-ref From 177fecb57c0c9e15249bf6a49244c9dc6eb8439c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 26 Jul 2019 11:09:56 +0200 Subject: [PATCH 056/161] git: allows tags in its 'commit' field. Fixes . Reported by Tobias Geerinckx-Rice . * guix/git.scm (git-checkout-compiler): Pass 'tag-or-commit' to 'latest-repository-commit*'. * doc/guix.texi (Package Transformation Options): Update '--with-commit' documentation accordingly. * tests/guix-build-branch.sh: Add test. --- doc/guix.texi | 2 +- guix/git.scm | 4 ++-- tests/guix-build-branch.sh | 8 +++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index c2da4ce173..96448c24e5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -8048,7 +8048,7 @@ guix build --with-branch=guile-sqlite3=master cuirass @item --with-commit=@var{package}=@var{commit} This is similar to @code{--with-branch}, except that it builds from @var{commit} rather than the tip of a branch. @var{commit} must be a valid -Git commit SHA1 identifier. +Git commit SHA1 identifier or a tag. @end table @node Additional Build Options diff --git a/guix/git.scm b/guix/git.scm index fb2df2de07..85252629fc 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -330,7 +330,7 @@ (define-record-type* git-checkout? (url git-checkout-url) (branch git-checkout-branch (default "master")) - (commit git-checkout-commit (default #f)) + (commit git-checkout-commit (default #f)) ;#f | tag | commit (recursive? git-checkout-recursive? (default #f))) (define* (latest-repository-commit* url #:key ref recursive? log-port) @@ -369,7 +369,7 @@ (define-gexp-compiler (git-checkout-compiler (checkout ) (($ url branch commit recursive?) (latest-repository-commit* url #:ref (if commit - `(commit . ,commit) + `(tag-or-commit . ,commit) `(branch . ,branch)) #:recursive? recursive? #:log-port (current-error-port))))) diff --git a/tests/guix-build-branch.sh b/tests/guix-build-branch.sh index e64782c831..0cec7c75db 100644 --- a/tests/guix-build-branch.sh +++ b/tests/guix-build-branch.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2018 Ludovic Courtès +# Copyright © 2018, 2019 Ludovic Courtès # # This file is part of GNU Guix. # @@ -52,5 +52,11 @@ guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-git.9e3eacd test "$v0_1_0_drv" != "$latest_drv" test "$v0_1_0_drv" != "$orig_drv" +v0_1_0_drv="`guix build guix --with-commit=guile-gcrypt=v0.1.0 -d`" +guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-git.v0.1.0 +guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-8fe64e8 # this is the *tag* ID +test "$v0_1_0_drv" != "$latest_drv" +test "$v0_1_0_drv" != "$orig_drv" + if guix build guix --with-commit=guile-gcrypt=000 -d then false; else true; fi From 10a8c2bbc6754bddb0e5d668b3ecc9050efd820b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 26 Jul 2019 11:16:10 +0200 Subject: [PATCH 057/161] git: 'switch-to-ref' resolves tag targets. * guix/git.scm (switch-to-ref): In the 'tag' case, resolve the target of the tag. * tests/guix-build-branch.sh: Adjust test accordingly. --- guix/git.scm | 6 +++++- tests/guix-build-branch.sh | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/guix/git.scm b/guix/git.scm index 85252629fc..de98fed40c 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -172,7 +172,11 @@ (define obj (('tag . tag) (let ((oid (reference-name->oid repository (string-append "refs/tags/" tag)))) - (object-lookup repository oid)))))) + ;; Get the commit that the tag at OID refers to. This is not + ;; strictly needed, but it's more consistent to always return the + ;; OID of a commit. + (object-lookup repository + (tag-target-id (tag-lookup repository oid)))))))) (reset repository obj RESET_HARD) (object-id obj)) diff --git a/tests/guix-build-branch.sh b/tests/guix-build-branch.sh index 0cec7c75db..3d2a7dddf5 100644 --- a/tests/guix-build-branch.sh +++ b/tests/guix-build-branch.sh @@ -54,7 +54,7 @@ test "$v0_1_0_drv" != "$orig_drv" v0_1_0_drv="`guix build guix --with-commit=guile-gcrypt=v0.1.0 -d`" guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-git.v0.1.0 -guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-8fe64e8 # this is the *tag* ID +guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-9e3eacd test "$v0_1_0_drv" != "$latest_drv" test "$v0_1_0_drv" != "$orig_drv" From 4d04bc50d2df32be326e0f48f378dc581f873989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 26 Jul 2019 11:17:31 +0200 Subject: [PATCH 058/161] guix build: '--with-commit' recognizes "v[0-9]" tags. * guix/scripts/build.scm (transform-package-source-commit)[replace]: Special case COMMIT that starts with "v[0-9]". --- guix/scripts/build.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index ec58ba871b..3ee0b737fe 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -341,10 +341,15 @@ (define (transform-package-source-commit replacement-specs) (define (replace old url commit) (package (inherit old) - (version (string-append "git." - (if (< (string-length commit) 7) - commit - (string-take commit 7)))) + (version (if (and (> (string-length commit) 1) + (string-prefix? "v" commit) + (char-set-contains? char-set:digit + (string-ref commit 1))) + (string-drop commit 1) ;looks like a tag like "v1.0" + (string-append "git." + (if (< (string-length commit) 7) + commit + (string-take commit 7))))) (source (git-checkout (url url) (commit commit) (recursive? #t))))) From 20269b6e08b338f6ef47374281c8988868ffa96a Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Fri, 26 Jul 2019 19:07:26 +0200 Subject: [PATCH 059/161] gnu: sdl2: Update to 2.0.10. * gnu/packages/sdl.scm (sdl2): Update to 2.0.10. --- gnu/packages/sdl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index b6b28b7d06..cb5b5839df 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -107,7 +107,7 @@ (define-public sdl (define-public sdl2 (package (inherit sdl) (name "sdl2") - (version "2.0.9") + (version "2.0.10") (source (origin (method url-fetch) (uri @@ -115,7 +115,7 @@ (define-public sdl2 version ".tar.gz")) (sha256 (base32 - "1c94ndagzkdfqaa838yqg589p1nnqln8mv0hpwfhrkbfczf8cl95")))) + "0mqxp6w5jhbq6y1j690g9r3gpzwjxh4czaglw8x05l7hl49nqrdl")))) (arguments (substitute-keyword-arguments (package-arguments sdl) ((#:configure-flags flags) From 5c793753b31b1dcd9a554bce953124f7ae88ca9a Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Wed, 24 Jul 2019 12:34:02 -0400 Subject: [PATCH 060/161] guix system: Add 'reconfigure' module. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/scripts/system/reconfigure.scm: New file. * Makefile.am (MODULES): Add it. * guix/scripts/system.scm (bootloader-installer-script): Export variable. * gnu/machine/ssh.scm (switch-to-system, upgrade-shepherd-services) (install-bootloader): Delete variable. * gnu/machine/ssh.scm (deploy-managed-host): Rewrite procedure. * gnu/services/herd.scm (live-service): Export variable. * gnu/services/herd.scm (live-service-canonical-name): New variable. * tests/services.scm (live-service): Delete variable. Signed-off-by: Ludovic Courtès --- Makefile.am | 1 + gnu/machine/ssh.scm | 189 ++-------------------- gnu/services/herd.scm | 6 + guix/scripts/system/reconfigure.scm | 237 ++++++++++++++++++++++++++++ tests/services.scm | 4 - 5 files changed, 256 insertions(+), 181 deletions(-) create mode 100644 guix/scripts/system/reconfigure.scm diff --git a/Makefile.am b/Makefile.am index 7fa51d17ac..0bd85e8fcf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -249,6 +249,7 @@ MODULES = \ guix/scripts/describe.scm \ guix/scripts/system.scm \ guix/scripts/system/search.scm \ + guix/scripts/system/reconfigure.scm \ guix/scripts/lint.scm \ guix/scripts/challenge.scm \ guix/scripts/import/crate.scm \ diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm index 278d43c10f..552eafa9de 100644 --- a/gnu/machine/ssh.scm +++ b/gnu/machine/ssh.scm @@ -17,23 +17,21 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu machine ssh) - #:use-module (gnu bootloader) #:use-module (gnu machine) #:autoload (gnu packages gnupg) (guile-gcrypt) - #:use-module (gnu services) - #:use-module (gnu services shepherd) #:use-module (gnu system) - #:use-module (guix derivations) #:use-module (guix gexp) #:use-module (guix i18n) #:use-module (guix modules) #:use-module (guix monads) #:use-module (guix records) #:use-module (guix remote) + #:use-module (guix scripts system reconfigure) #:use-module (guix ssh) #:use-module (guix store) #:use-module (ice-9 match) #:use-module (srfi srfi-19) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-35) #:export (managed-host-environment-type @@ -105,118 +103,6 @@ (define (managed-host-remote-eval machine exp) ;;; System deployment. ;;; -(define (switch-to-system machine) - "Monadic procedure creating a new generation on MACHINE and execute the -activation script for the new system configuration." - (define (remote-exp drv script) - (with-extensions (list guile-gcrypt) - (with-imported-modules (source-module-closure '((guix config) - (guix profiles) - (guix utils))) - #~(begin - (use-modules (guix config) - (guix profiles) - (guix utils)) - - (define %system-profile - (string-append %state-directory "/profiles/system")) - - (let* ((system #$drv) - (number (1+ (generation-number %system-profile))) - (generation (generation-file-name %system-profile number))) - (switch-symlinks generation system) - (switch-symlinks %system-profile generation) - ;; The implementation of 'guix system reconfigure' saves the - ;; load path and environment here. This is unnecessary here - ;; because each invocation of 'remote-eval' runs in a distinct - ;; Guile REPL. - (setenv "GUIX_NEW_SYSTEM" system) - ;; The activation script may write to stdout, which confuses - ;; 'remote-eval' when it attempts to read a result from the - ;; remote REPL. We work around this by forcing the output to a - ;; string. - (with-output-to-string - (lambda () - (primitive-load #$script)))))))) - - (let* ((os (machine-system machine)) - (script (operating-system-activation-script os))) - (mlet* %store-monad ((drv (operating-system-derivation os))) - (machine-remote-eval machine (remote-exp drv script))))) - -;; XXX: Currently, this does NOT attempt to restart running services. This is -;; also the case with 'guix system reconfigure'. -;; -;; See . -(define (upgrade-shepherd-services machine) - "Monadic procedure unloading and starting services on the remote as needed -to realize the MACHINE's system configuration." - (define target-services - ;; Monadic expression evaluating to a list of (name output-path) pairs for - ;; all of MACHINE's services. - (mapm %store-monad - (lambda (service) - (mlet %store-monad ((file ((compose lower-object - shepherd-service-file) - service))) - (return (list (shepherd-service-canonical-name service) - (derivation->output-path file))))) - (service-value - (fold-services (operating-system-services (machine-system machine)) - #:target-type shepherd-root-service-type)))) - - (define (remote-exp target-services) - (with-imported-modules '((gnu services herd)) - #~(begin - (use-modules (gnu services herd) - (srfi srfi-1)) - - (define running - (filter live-service-running (current-services))) - - (define (essential? service) - ;; Return #t if SERVICE is essential and should not be unloaded - ;; under any circumstance. - (memq (first (live-service-provision service)) - '(root shepherd))) - - (define (obsolete? service) - ;; Return #t if SERVICE can be safely unloaded. - (and (not (essential? service)) - (every (lambda (requirements) - (not (memq (first (live-service-provision service)) - requirements))) - (map live-service-requirement running)))) - - (define to-unload - (filter obsolete? - (remove (lambda (service) - (memq (first (live-service-provision service)) - (map first '#$target-services))) - running))) - - (define to-start - (remove (lambda (service-pair) - (memq (first service-pair) - (map (compose first live-service-provision) - running))) - '#$target-services)) - - ;; Unload obsolete services. - (for-each (lambda (service) - (false-if-exception - (unload-service service))) - to-unload) - - ;; Load the service files for any new services and start them. - (load-services/safe (map second to-start)) - (for-each start-service (map first to-start)) - - #t))) - - (mlet %store-monad ((target-services target-services)) - (machine-remote-eval machine (remote-exp target-services)))) - (define (machine-boot-parameters machine) "Monadic procedure returning a list of 'boot-parameters' for the generations of MACHINE's system profile, ordered from most recent to oldest." @@ -275,71 +161,20 @@ (define (read-file path) (boot-parameters-kernel-arguments params)))))))) generations)))) -(define (install-bootloader machine) - "Create a bootloader entry for the new system generation on MACHINE, and -configure the bootloader to boot that generation by default." - (define bootloader-installer-script - (@@ (guix scripts system) bootloader-installer-script)) - - (define (remote-exp installer bootcfg bootcfg-file) - (with-extensions (list guile-gcrypt) - (with-imported-modules (source-module-closure '((gnu build install) - (guix store) - (guix utils))) - #~(begin - (use-modules (gnu build install) - (guix store) - (guix utils)) - (let* ((gc-root (string-append "/" %gc-roots-directory "/bootcfg")) - (temp-gc-root (string-append gc-root ".new"))) - - (switch-symlinks temp-gc-root gc-root) - - (unless (false-if-exception - (begin - ;; The implementation of 'guix system reconfigure' - ;; saves the load path here. This is unnecessary here - ;; because each invocation of 'remote-eval' runs in a - ;; distinct Guile REPL. - (install-boot-config #$bootcfg #$bootcfg-file "/") - ;; The installation script may write to stdout, which - ;; confuses 'remote-eval' when it attempts to read a - ;; result from the remote REPL. We work around this - ;; by forcing the output to a string. - (with-output-to-string - (lambda () - (primitive-load #$installer))))) - (delete-file temp-gc-root) - (error "failed to install bootloader")) - - (rename-file temp-gc-root gc-root) - #t))))) - - (mlet* %store-monad ((boot-parameters (machine-boot-parameters machine))) - (let* ((os (machine-system machine)) - (bootloader ((compose bootloader-configuration-bootloader - operating-system-bootloader) - os)) - (bootloader-target (bootloader-configuration-target - (operating-system-bootloader os))) - (installer (bootloader-installer-script - (bootloader-installer bootloader) - (bootloader-package bootloader) - bootloader-target - "/")) - (menu-entries (map boot-parameters->menu-entry boot-parameters)) - (bootcfg (operating-system-bootcfg os menu-entries)) - (bootcfg-file (bootloader-configuration-file bootloader))) - (machine-remote-eval machine (remote-exp installer bootcfg bootcfg-file))))) - (define (deploy-managed-host machine) "Internal implementation of 'deploy-machine' for MACHINE instances with an environment type of 'managed-host." (maybe-raise-unsupported-configuration-error machine) - (mbegin %store-monad - (switch-to-system machine) - (upgrade-shepherd-services machine) - (install-bootloader machine))) + (mlet %store-monad ((boot-parameters (machine-boot-parameters machine))) + (let* ((os (machine-system machine)) + (eval (cut machine-remote-eval machine <>)) + (menu-entries (map boot-parameters->menu-entry boot-parameters)) + (bootloader-configuration (operating-system-bootloader os)) + (bootcfg (operating-system-bootcfg os menu-entries))) + (mbegin %store-monad + (switch-to-system eval os) + (upgrade-shepherd-services eval os) + (install-bootloader eval bootloader-configuration bootcfg))))) ;;; diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm index 0008746fe9..2207b2d34b 100644 --- a/gnu/services/herd.scm +++ b/gnu/services/herd.scm @@ -40,10 +40,12 @@ (define-module (gnu services herd) unknown-shepherd-error? unknown-shepherd-error-sexp + live-service live-service? live-service-provision live-service-requirement live-service-running + live-service-canonical-name with-shepherd-action current-services @@ -192,6 +194,10 @@ (define-record-type (requirement live-service-requirement) ;list of symbols (running live-service-running)) ;#f | object +(define (live-service-canonical-name service) + "Return the 'canonical name' of SERVICE." + (first (live-service-provision service))) + (define (current-services) "Return the list of currently defined Shepherd services, represented as objects. Return #f if the list of services could not be diff --git a/guix/scripts/system/reconfigure.scm b/guix/scripts/system/reconfigure.scm new file mode 100644 index 0000000000..8c7d461585 --- /dev/null +++ b/guix/scripts/system/reconfigure.scm @@ -0,0 +1,237 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès +;;; Copyright © 2016 Alex Kost +;;; Copyright © 2016, 2017, 2018 Chris Marusich +;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2018 Ricardo Wurmus +;;; Copyright © 2019 Christopher Baines +;;; Copyright © 2019 Jakob L. Kreuze +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix scripts system reconfigure) + #:autoload (gnu packages gnupg) (guile-gcrypt) + #:use-module (gnu bootloader) + #:use-module (gnu services) + #:use-module (gnu services herd) + #:use-module (gnu services shepherd) + #:use-module (gnu system) + #:use-module (guix gexp) + #:use-module (guix modules) + #:use-module (guix monads) + #:use-module (guix store) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:export (switch-system-program + switch-to-system + + upgrade-services-program + upgrade-shepherd-services + + install-bootloader-program + install-bootloader)) + +;;; Commentary: +;;; +;;; This module implements the "effectful" parts of system +;;; reconfiguration. Although building a system derivation is a pure +;;; operation, a number of impure operations must be carried out for the +;;; system configuration to be realized -- chiefly, creation of generation +;;; symlinks and invocation of activation scripts. +;;; +;;; Code: + + +;;; +;;; Profile creation. +;;; + +(define* (switch-system-program os #:optional profile) + "Return an executable store item that, upon being evaluated, will create a +new generation of PROFILE pointing to the directory of OS, switch to it +atomically, and run OS's activation script." + (program-file + "switch-to-system.scm" + (with-extensions (list guile-gcrypt) + (with-imported-modules (source-module-closure '((guix config) + (guix profiles) + (guix utils))) + #~(begin + (use-modules (guix config) + (guix profiles) + (guix utils)) + + (define profile + (or #$profile (string-append %state-directory "/profiles/system"))) + + (let* ((number (1+ (generation-number profile))) + (generation (generation-file-name profile number))) + (switch-symlinks generation #$os) + (switch-symlinks profile generation) + (setenv "GUIX_NEW_SYSTEM" #$os) + (primitive-load #$(operating-system-activation-script os)))))))) + +(define* (switch-to-system eval os #:optional profile) + "Using EVAL, a monadic procedure taking a single G-Expression as an argument, +create a new generation of PROFILE pointing to the directory of OS, switch to +it atomically, and run OS's activation script." + (eval #~(primitive-load #$(switch-system-program os profile)))) + + +;;; +;;; Services. +;;; + +(define (running-services eval) + "Using EVAL, a monadic procedure taking a single G-Expression as an argument, +return the objects that are currently running on MACHINE." + (define exp + (with-imported-modules '((gnu services herd)) + #~(begin + (use-modules (gnu services herd)) + (let ((services (current-services))) + (and services + ;; 'live-service-running' is ignored, as we can't necessarily + ;; serialize arbitrary objects. This should be fine for now, + ;; since 'machine-current-services' is not exposed publicly, + ;; and the resultant objects are only used for + ;; resolving service dependencies. + (map (lambda (service) + (list (live-service-provision service) + (live-service-requirement service))) + services)))))) + (mlet %store-monad ((services (eval exp))) + (return (map (match-lambda + ((provision requirement) + (live-service provision requirement #f))) + services)))) + +;; XXX: Currently, this does NOT attempt to restart running services. See +;; for details. +(define (upgrade-services-program service-files to-start to-unload to-restart) + "Return an executable store item that, upon being evaluated, will upgrade +the Shepherd (PID 1) by unloading obsolete services and loading new +services. SERVICE-FILES is a list of Shepherd service files to load, and +TO-START, TO-UNLOAD, and TO-RESTART are lists of the Shepherd services' +canonical names (symbols)." + (program-file + "upgrade-shepherd-services.scm" + (with-imported-modules '((gnu services herd)) + #~(begin + (use-modules (gnu services herd) + (srfi srfi-1)) + + ;; Load the service files for any new services. + (load-services/safe '#$service-files) + + ;; Unload obsolete services and start new services. + (for-each unload-service '#$to-unload) + (for-each start-service '#$to-start))))) + +(define* (upgrade-shepherd-services eval os) + "Using EVAL, a monadic procedure taking a single G-Expression as an argument, +upgrade the Shepherd (PID 1) by unloading obsolete services and loading new +services as defined by OS." + (define target-services + (service-value + (fold-services (operating-system-services os) + #:target-type shepherd-root-service-type))) + + (mlet* %store-monad ((live-services (running-services eval))) + (let*-values (((to-unload to-restart) + (shepherd-service-upgrade live-services target-services))) + (let* ((to-unload (map live-service-canonical-name to-unload)) + (to-restart (map shepherd-service-canonical-name to-restart)) + (to-start (lset-difference eqv? + (map shepherd-service-canonical-name + target-services) + (map live-service-canonical-name + live-services))) + (service-files + (map shepherd-service-file + (filter (lambda (service) + (memq (shepherd-service-canonical-name service) + to-start)) + target-services)))) + (eval #~(primitive-load #$(upgrade-services-program service-files + to-start + to-unload + to-restart))))))) + + +;;; +;;; Bootloader configuration. +;;; + +(define (install-bootloader-program installer bootloader-package bootcfg + bootcfg-file device target) + "Return an executable store item that, upon being evaluated, will install +BOOTCFG to BOOTCFG-FILE, a target file name, on DEVICE, a file system device, +at TARGET, a mount point, and subsequently run INSTALLER from +BOOTLOADER-PACKAGE." + (program-file + "install-bootloader.scm" + (with-extensions (list guile-gcrypt) + (with-imported-modules (source-module-closure '((gnu build bootloader) + (gnu build install) + (guix store) + (guix utils))) + #~(begin + (use-modules (gnu build bootloader) + (gnu build install) + (guix build utils) + (guix store) + (guix utils) + (ice-9 binary-ports) + (srfi srfi-34) + (srfi srfi-35)) + (let* ((gc-root (string-append #$target %gc-roots-directory "/bootcfg")) + (temp-gc-root (string-append gc-root ".new"))) + (switch-symlinks temp-gc-root gc-root) + (install-boot-config #$bootcfg #$bootcfg-file #$target) + ;; Preserve the previous activation's garbage collector root + ;; until the bootloader installer has run, so that a failure in + ;; the bootloader's installer script doesn't leave the user with + ;; a broken installation. + (when #$installer + (catch #t + (lambda () + (#$installer #$bootloader-package #$device #$target)) + (lambda args + (delete-file temp-gc-root) + (apply throw args)))) + (rename-file temp-gc-root gc-root))))))) + +(define* (install-bootloader eval configuration bootcfg + #:key + (run-installer? #t) + (target "/")) + "Using EVAL, a monadic procedure taking a single G-Expression as an argument, +configure the bootloader on TARGET such that OS will be booted by default and +additional configurations specified by MENU-ENTRIES can be selected." + (let* ((bootloader (bootloader-configuration-bootloader configuration)) + (installer (and run-installer? + (bootloader-installer bootloader))) + (package (bootloader-package bootloader)) + (device (bootloader-configuration-target configuration)) + (bootcfg-file (bootloader-configuration-file bootloader))) + (eval #~(primitive-load #$(install-bootloader-program installer + package + bootcfg + bootcfg-file + device + target))))) diff --git a/tests/services.scm b/tests/services.scm index 44ad0022c6..572fe38164 100644 --- a/tests/services.scm +++ b/tests/services.scm @@ -26,10 +26,6 @@ (define-module (test-services) #:use-module (srfi srfi-64) #:use-module (ice-9 match)) -(define live-service - (@@ (gnu services herd) live-service)) - - (test-begin "services") (test-equal "services, default value" From 5c8c8c455420af27189d6045b3599fe6e27ad012 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Wed, 24 Jul 2019 12:34:38 -0400 Subject: [PATCH 061/161] guix system: Reimplement 'reconfigure'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/scripts/system.scm (switch-to-system) (upgrade-shepherd-services, install-bootloader): Delete variable. (local-eval): New variable. (install): Remove 'bootloader-installer' and 'bootcfg-file' parameters. (install): Add 'bootloader' parameter. Signed-off-by: Ludovic Courtès --- guix/scripts/system.scm | 181 ++++++++-------------------------------- 1 file changed, 36 insertions(+), 145 deletions(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 67a4071684..9fc3a10e98 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -41,6 +41,7 @@ (define-module (guix scripts system) delete-matching-generations) #:use-module (guix graph) #:use-module (guix scripts graph) + #:use-module (guix scripts system reconfigure) #:use-module (guix build utils) #:use-module (guix progress) #:use-module ((guix build syscalls) #:select (terminal-columns)) @@ -178,43 +179,9 @@ (define progress-bar (return *unspecified*))) -(define* (install-bootloader installer - #:key - bootcfg bootcfg-file - target) - "Run INSTALLER, a bootloader installation script, with error handling, in -%STORE-MONAD." - (mlet %store-monad ((installer-drv (if installer - (lower-object installer) - (return #f))) - (bootcfg (lower-object bootcfg))) - (let* ((gc-root (string-append target %gc-roots-directory - "/bootcfg")) - (temp-gc-root (string-append gc-root ".new")) - (install (and installer-drv - (derivation->output-path installer-drv))) - (bootcfg (derivation->output-path bootcfg))) - ;; Prepare the symlink to bootloader config file to make sure that it's - ;; a GC root when 'installer-drv' completes (being a bit paranoid.) - (switch-symlinks temp-gc-root bootcfg) - - (unless (false-if-exception - (begin - (install-boot-config bootcfg bootcfg-file target) - (when install - (save-load-path-excursion (primitive-load install))))) - (delete-file temp-gc-root) - (leave (G_ "failed to install bootloader ~a~%") install)) - - ;; Register bootloader config file as a GC root so that its dependencies - ;; (background image, font, etc.) are not reclaimed. - (rename-file temp-gc-root gc-root) - (return #t)))) - (define* (install os-drv target #:key (log-port (current-output-port)) - bootloader-installer install-bootloader? - bootcfg bootcfg-file) + install-bootloader? bootloader bootcfg) "Copy the closure of BOOTCFG, which includes the output of OS-DRV, to directory TARGET. TARGET must be an absolute directory name since that's what 'register-path' expects. @@ -265,10 +232,11 @@ (define (maybe-copy to-copy) (populate os-dir target) (mwhen install-bootloader? - (install-bootloader bootloader-installer - #:bootcfg bootcfg - #:bootcfg-file bootcfg-file - #:target target)))))) + (install-bootloader local-eval bootloader bootcfg + #:target target) + (return + (info (G_ "bootloader successfully installed on '~a'~%") + (bootloader-configuration-target bootloader)))))))) ;;; @@ -335,82 +303,6 @@ (define (call-with-service-upgrade-info new-services mproc) (warning (G_ "failed to obtain list of shepherd services~%")) (return #f))))) -(define (upgrade-shepherd-services os) - "Upgrade the Shepherd (PID 1) by unloading obsolete services and loading new -services specified in OS and not currently running. - -This is currently very conservative in that it does not stop or unload any -running service. Unloading or stopping the wrong service ('udev', say) could -bring the system down." - (define new-services - (service-value - (fold-services (operating-system-services os) - #:target-type shepherd-root-service-type))) - - ;; Arrange to simply emit a warning if the service upgrade fails. - (with-shepherd-error-handling - (call-with-service-upgrade-info new-services - (lambda (to-restart to-unload) - (for-each (lambda (unload) - (info (G_ "unloading service '~a'...~%") unload) - (unload-service unload)) - to-unload) - - (with-monad %store-monad - (munless (null? new-services) - (let ((new-service-names (map shepherd-service-canonical-name new-services)) - (to-restart-names (map shepherd-service-canonical-name to-restart)) - (to-start (filter shepherd-service-auto-start? new-services))) - (info (G_ "loading new services:~{ ~a~}...~%") new-service-names) - (unless (null? to-restart-names) - ;; Listing TO-RESTART-NAMES in the message below wouldn't help - ;; because many essential services cannot be meaningfully - ;; restarted. See . - (format #t (G_ "To complete the upgrade, run 'herd restart SERVICE' to stop, -upgrade, and restart each service that was not automatically restarted.\n"))) - (mlet %store-monad ((files (mapm %store-monad - (compose lower-object - shepherd-service-file) - new-services))) - ;; Here we assume that FILES are exactly those that were computed - ;; as part of the derivation that built OS, which is normally the - ;; case. - (load-services/safe (map derivation->output-path files)) - - (for-each start-service - (map shepherd-service-canonical-name to-start)) - (return #t))))))))) - -(define* (switch-to-system os - #:optional (profile %system-profile)) - "Make a new generation of PROFILE pointing to the directory of OS, switch to -it atomically, and then run OS's activation script." - (mlet* %store-monad ((drv (operating-system-derivation os)) - (script (lower-object (operating-system-activation-script os)))) - (let* ((system (derivation->output-path drv)) - (number (+ 1 (generation-number profile))) - (generation (generation-file-name profile number))) - (switch-symlinks generation system) - (switch-symlinks profile generation) - - (format #t (G_ "activating system...~%")) - - ;; The activation script may change $PATH, among others, so protect - ;; against that. - (save-environment-excursion - ;; Tell 'activate-current-system' what the new system is. - (setenv "GUIX_NEW_SYSTEM" system) - - ;; The activation script may modify '%load-path' & co., so protect - ;; against that. This is necessary to ensure that - ;; 'upgrade-shepherd-services' gets to see the right modules when it - ;; computes derivations with 'gexp->derivation'. - (save-load-path-excursion - (primitive-load (derivation->output-path script)))) - - ;; Finally, try to update system services. - (upgrade-shepherd-services os)))) - (define-syntax-rule (unless-file-not-found exp) (catch 'system-error (lambda () @@ -505,18 +397,13 @@ (define (reinstall-bootloader store number) ((bootloader-configuration-file-generator bootloader) bootloader-config entries #:old-entries old-entries))) - (bootcfg-file -> (bootloader-configuration-file bootloader)) - (target -> "/") (drvs -> (list bootcfg))) (mbegin %store-monad (show-what-to-build* drvs) (built-derivations drvs) - ;; Only install bootloader configuration file. Thus, no installer is - ;; provided here. - (install-bootloader #f - #:bootcfg bootcfg - #:bootcfg-file bootcfg-file - #:target target)))))) + ;; Only install bootloader configuration file. + (install-bootloader local-eval bootloader-config bootcfg + #:run-installer? #f)))))) ;;; @@ -820,8 +707,17 @@ (define (bootloader-installer-script installer (condition-message c)) (exit 1))) (#$installer #$bootloader #$device #$target) - (format #t "bootloader successfully installed on '~a'~%" - #$device)))))) + (info (G_ "bootloader successfully installed on '~a'~%") + #$device)))))) + +(define (local-eval exp) + "Evaluate EXP, a G-Expression, in-place." + (mlet* %store-monad ((lowered (lower-gexp exp)) + (_ (built-derivations (lowered-gexp-inputs lowered)))) + (save-load-path-excursion + (set! %load-path (lowered-gexp-load-path lowered)) + (set! %load-compiled-path (lowered-gexp-load-compiled-path lowered)) + (return (primitive-eval (lowered-gexp-sexp lowered)))))) (define* (perform-action action os #:key skip-safety-checks? @@ -858,19 +754,12 @@ (define menu-entries (map boot-parameters->menu-entry (profile-boot-parameters)))) (define bootloader - (bootloader-configuration-bootloader (operating-system-bootloader os))) + (operating-system-bootloader os)) (define bootcfg (and (memq action '(init reconfigure)) (operating-system-bootcfg os menu-entries))) - (define bootloader-script - (let ((installer (bootloader-installer bootloader)) - (target (or target "/"))) - (bootloader-installer-script installer - (bootloader-package bootloader) - bootloader-target target))) - (when (eq? action 'reconfigure) (maybe-suggest-running-guix-pull)) @@ -897,9 +786,7 @@ (define bootloader-script ;; See . (drvs (mapm %store-monad lower-object (if (memq action '(init reconfigure)) - (if install-bootloader? - (list sys bootcfg bootloader-script) - (list sys bootcfg)) + (list sys bootcfg) (list sys)))) (% (if derivations-only? (return (for-each (compose println derivation-file-name) @@ -909,28 +796,32 @@ (define bootloader-script (if (or dry-run? derivations-only?) (return #f) - (let ((bootcfg-file (bootloader-configuration-file bootloader))) + (begin (for-each (compose println derivation->output-path) drvs) (case action ((reconfigure) + (newline) + (format #t (G_ "activating system...~%")) (mbegin %store-monad - (switch-to-system os) + (switch-to-system local-eval os) (mwhen install-bootloader? - (install-bootloader bootloader-script - #:bootcfg bootcfg - #:bootcfg-file bootcfg-file - #:target "/")))) + (install-bootloader local-eval bootloader bootcfg + #:target (or target "/")) + (return + (info (G_ "bootloader successfully installed on '~a'~%") + (bootloader-configuration-target bootloader)))) + (with-shepherd-error-handling + (upgrade-shepherd-services local-eval os)))) ((init) (newline) (format #t (G_ "initializing operating system under '~a'...~%") target) (install sys (canonicalize-path target) #:install-bootloader? install-bootloader? - #:bootcfg bootcfg - #:bootcfg-file bootcfg-file - #:bootloader-installer bootloader-script)) + #:bootloader bootloader + #:bootcfg bootcfg)) (else ;; All we had to do was to build SYS and maybe register an ;; indirect GC root. From d23a00b599be56694065bd274184b9289fb8b85c Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Wed, 24 Jul 2019 12:35:10 -0400 Subject: [PATCH 062/161] tests: Add reconfigure system test. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [[PGP Signed Part:No public key for F506FD169D8FD95A created at 2019-07-24T18:35:10+0200 using RSA]] * gnu/tests/reconfigure.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/tests/reconfigure.scm | 262 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 263 insertions(+) create mode 100644 gnu/tests/reconfigure.scm diff --git a/gnu/local.mk b/gnu/local.mk index 455bea0397..bd509647dc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -597,6 +597,7 @@ GNU_SYSTEM_MODULES = \ %D%/tests/mail.scm \ %D%/tests/messaging.scm \ %D%/tests/networking.scm \ + %D%/tests/reconfigure.scm \ %D%/tests/rsync.scm \ %D%/tests/security-token.scm \ %D%/tests/singularity.scm \ diff --git a/gnu/tests/reconfigure.scm b/gnu/tests/reconfigure.scm new file mode 100644 index 0000000000..3a2f0a2e53 --- /dev/null +++ b/gnu/tests/reconfigure.scm @@ -0,0 +1,262 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Jakob L. Kreuze +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu tests reconfigure) + #:use-module (gnu bootloader) + #:use-module (gnu services shepherd) + #:use-module (gnu system vm) + #:use-module (gnu system) + #:use-module (gnu tests) + #:use-module (guix derivations) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix scripts system reconfigure) + #:use-module (guix store) + #:export (%test-switch-to-system + %test-upgrade-services + %test-install-bootloader)) + +;;; Commentary: +;;; +;;; Test in-place system reconfiguration: advancing the system generation on a +;;; running instance of the Guix System. +;;; +;;; Code: + +(define* (run-switch-to-system-test) + "Run a test of an OS running SWITCH-SYSTEM-PROGRAM, which creates a new +generation of the system profile." + (define os + (marionette-operating-system + (simple-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm (virtual-machine os)) + + (define (test script) + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (gnu build marionette) + (srfi srfi-64)) + + (define marionette + (make-marionette (list #$vm))) + + ;; Return the names of the generation symlinks on MARIONETTE. + (define (system-generations marionette) + (marionette-eval + '(begin + (use-modules (ice-9 ftw) + (srfi srfi-1)) + (let* ((profile-dir "/var/guix/profiles/") + (entries (map first (cddr (file-system-tree profile-dir))))) + (remove (lambda (entry) + (member entry '("per-user" "system"))) + entries))) + marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "switch-to-system") + + (let ((generations-prior (system-generations marionette))) + (test-assert "script successfully evaluated" + (marionette-eval + '(primitive-load #$script) + marionette)) + + (test-equal "script created new generation" + (length (system-generations marionette)) + (1+ (length generations-prior)))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "switch-to-system" (test (switch-system-program os)))) + +(define* (run-upgrade-services-test) + "Run a test of an OS running UPGRADE-SERVICES-PROGRAM, which upgrades the +Shepherd (PID 1) by unloading obsolete services and loading new services." + (define os + (marionette-operating-system + (simple-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm (virtual-machine os)) + + (define dummy-service + ;; Shepherd service that does nothing, for the sole purpose of ensuring + ;; that it is properly installed and started by the script. + (shepherd-service (provision '(dummy)) + (start #~(const #t)) + (stop #~(const #t)) + (respawn? #f))) + + ;; Return the Shepherd service file for SERVICE, after ensuring that it + ;; exists in the store. + (define (ensure-service-file service) + (let ((file (shepherd-service-file service))) + (mlet* %store-monad ((store-object (lower-object file)) + (_ (built-derivations (list store-object)))) + (return file)))) + + (define (test enable-dummy disable-dummy) + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (gnu build marionette) + (srfi srfi-64)) + + (define marionette + (make-marionette (list #$vm))) + + ;; Return the names of the running services on MARIONETTE. + (define (running-services marionette) + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (map live-service-canonical-name (current-services))) + marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "upgrade-services") + + (let ((services-prior (running-services marionette))) + (test-assert "script successfully evaluated" + (marionette-eval + '(primitive-load #$enable-dummy) + marionette)) + + (test-assert "script started new service" + (and (not (memq 'dummy services-prior)) + (memq 'dummy (running-services marionette)))) + + (test-assert "script successfully evaluated" + (marionette-eval + '(primitive-load #$disable-dummy) + marionette)) + + (test-assert "script stopped obsolete service" + (not (memq 'dummy (running-services marionette))))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (mlet* %store-monad ((file (ensure-service-file dummy-service))) + (let ((enable (upgrade-services-program (list file) '(dummy) '() '())) + (disable (upgrade-services-program '() '() '(dummy) '()))) + (gexp->derivation "upgrade-services" (test enable disable))))) + +(define* (run-install-bootloader-test) + "Run a test of an OS running INSTALL-BOOTLOADER-PROGRAM, which installs a +bootloader's configuration file." + (define os + (marionette-operating-system + (simple-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm (virtual-machine os)) + + (define (test script) + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (gnu build marionette) + (ice-9 regex) + (srfi srfi-1) + (srfi srfi-64)) + + (define marionette + (make-marionette (list #$vm))) + + ;; Return the system generation paths that have GRUB menu entries. + (define (generations-in-grub-cfg marionette) + (let ((grub-cfg (marionette-eval + '(begin + (call-with-input-file "/boot/grub/grub.cfg" + (lambda (port) + (get-string-all port)))) + marionette))) + (map (lambda (parameter) + (second (string-split (match:substring parameter) #\=))) + (list-matches "system=[^ ]*" grub-cfg)))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "install-bootloader") + + (test-assert "no prior menu entry for system generation" + (not (member #$os (generations-in-grub-cfg marionette)))) + + (test-assert "script successfully evaluated" + (marionette-eval + '(primitive-load #$script) + marionette)) + + (test-assert "menu entry created for system generation" + (member #$os (generations-in-grub-cfg marionette))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (let* ((bootloader ((compose bootloader-configuration-bootloader + operating-system-bootloader) + os)) + ;; The typical use-case for 'install-bootloader-program' is to read + ;; the boot parameters for the existing menu entries on the system, + ;; parse them with 'boot-parameters->menu-entry', and pass the + ;; results to 'operating-system-bootcfg'. However, to obtain boot + ;; parameters, we would need to start the marionette, which we should + ;; ideally avoid doing outside of the 'test' G-Expression. Thus, we + ;; generate a bootloader configuration for the script as if there + ;; were no existing menu entries. In the grand scheme of things, this + ;; matters little -- these tests should not make assertions about the + ;; behavior of 'operating-system-bootcfg'. + (bootcfg (operating-system-bootcfg os '())) + (bootcfg-file (bootloader-configuration-file bootloader))) + (gexp->derivation + "install-bootloader" + ;; Due to the read-only nature of the virtual machines used in the system + ;; test suite, the bootloader installer script is omitted. 'grub-install' + ;; would attempt to write directly to the virtual disk if the + ;; installation script were run. + (test (install-bootloader-program #f #f bootcfg bootcfg-file #f "/"))))) + +(define %test-switch-to-system + (system-test + (name "switch-to-system") + (description "Create a new generation of the system profile.") + (value (run-switch-to-system-test)))) + +(define %test-upgrade-services + (system-test + (name "upgrade-services") + (description "Upgrade the Shepherd by unloading obsolete services and +loading new services.") + (value (run-upgrade-services-test)))) + +(define %test-install-bootloader + (system-test + (name "install-bootloader") + (description "Install a bootloader and its configuration file.") + (value (run-install-bootloader-test)))) From 548e0af4da4e2e9311bc696831a80eedbc5b5798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 26 Jul 2019 21:49:25 +0200 Subject: [PATCH 063/161] discovery: 'scheme-files' ignores hidden files. * guix/discovery.scm (scheme-files)[dot-prefixed?]: New procedure. Use it to exclude any file starting with ".". --- guix/discovery.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/guix/discovery.scm b/guix/discovery.scm index 468b6c59de..7c5fed7f0e 100644 --- a/guix/discovery.scm +++ b/guix/discovery.scm @@ -51,13 +51,15 @@ (define (entry-type name properties) ((? symbol? type) type))) + (define (dot-prefixed? file) + (string-prefix? "." file)) + ;; Use 'scandir*' so we can avoid an extra 'lstat' for each entry, as ;; opposed to Guile's 'scandir' or 'file-system-fold'. (fold-right (lambda (entry result) (match entry - (("." . _) - result) - ((".." . _) + (((? dot-prefixed?) . _) + ;; Exclude ".", "..", and hidden files such as backups. result) ((name . properties) (let ((absolute (string-append directory "/" name))) From 2cc5ec7f0d64e9e94f6ae637e1f9573d4b948f0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 26 Jul 2019 23:22:28 +0200 Subject: [PATCH 064/161] gexp: 'compiled-modules' can cross-compile. * guix/gexp.scm (compiled-modules): Add #:target and honor it. --- guix/gexp.scm | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index eef308b000..a83d7168d2 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1345,6 +1345,7 @@ (define* (imported-modules modules (define* (compiled-modules modules #:key (name "module-import-compiled") (system (%current-system)) + target (guile (%guile-for-build)) (module-path %load-path) (extensions '()) @@ -1355,7 +1356,8 @@ (define* (compiled-modules modules (pre-load-modules? #t)) "Return a derivation that builds a tree containing the `.go' files corresponding to MODULES. All the MODULES are built in a context where -they can refer to each other." +they can refer to each other. When TARGET is true, cross-compile MODULES for +TARGET, a GNU triplet." (define total (length modules)) (mlet %store-monad ((modules (imported-modules modules @@ -1374,6 +1376,12 @@ (define build (srfi srfi-26) (system base compile)) + ;; TODO: Inline this on the next rebuild cycle. + (ungexp-splicing + (if target + (gexp ((use-modules (system base target)))) + (gexp ()))) + (define (regular? file) (not (member file '("." "..")))) @@ -1391,9 +1399,19 @@ (define (process-entry entry output processed) (gexp ())))) (ungexp (* total (if pre-load-modules? 2 1))) entry) - (compile-file entry - #:output-file output - #:opts %auto-compilation-options) + + (ungexp-splicing + (if target + (gexp ((with-target (ungexp target) + (lambda () + (compile-file entry + #:output-file output + #:opts + %auto-compilation-options))))) + (gexp ((compile-file entry + #:output-file output + #:opts %auto-compilation-options))))) + (+ 1 processed)))) (define (process-directory directory output processed) From 2e8cabb8d630a8423e2e5a3bf150c1c0310b945d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 26 Jul 2019 23:48:03 +0200 Subject: [PATCH 065/161] gexp: 'program-file' honors the current system and cross-compilation target. Fixes . Reported by Jakob L. Kreuze . * guix/gexp.scm (program-file-compiler): Pass #:system and #:target to 'gexp->script'. (load-path-expression): Add #:system and #:target and honor them. (gexp->script): Likewise. * tests/gexp.scm ("program-file #:system"): New test. * doc/guix.texi (G-Expressions): Adjust accordingly. --- doc/guix.texi | 3 ++- guix/gexp.scm | 23 +++++++++++++++++------ tests/gexp.scm | 19 +++++++++++++++++++ 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 96448c24e5..ccc36a8a97 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7439,7 +7439,8 @@ This is the declarative counterpart of @code{gexp->derivation}. @end deffn @deffn {Monadic Procedure} gexp->script @var{name} @var{exp} @ - [#:guile (default-guile)] [#:module-path %load-path] + [#:guile (default-guile)] [#:module-path %load-path] @ + [#:system (%current-system)] [#:target #f] Return an executable script @var{name} that runs @var{exp} using @var{guile}, with @var{exp}'s imported modules in its search path. Look up @var{exp}'s modules in @var{module-path}. diff --git a/guix/gexp.scm b/guix/gexp.scm index a83d7168d2..45cd5869f7 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -427,7 +427,9 @@ (define-gexp-compiler (program-file-compiler (file ) (($ name gexp guile module-path) (gexp->script name gexp #:module-path module-path - #:guile (or guile (default-guile)))))) + #:guile (or guile (default-guile)) + #:system system + #:target target)))) (define-record-type (%scheme-file name gexp splice?) @@ -1512,7 +1514,7 @@ (define (default-guile) 'guile-2.2)) (define* (load-path-expression modules #:optional (path %load-path) - #:key (extensions '())) + #:key (extensions '()) system target) "Return as a monadic value a gexp that sets '%load-path' and '%load-compiled-path' to point to MODULES, a list of module names. MODULES are searched for in PATH. Return #f when MODULES and EXTENSIONS are empty." @@ -1520,10 +1522,13 @@ (define* (load-path-expression modules #:optional (path %load-path) (with-monad %store-monad (return #f)) (mlet %store-monad ((modules (imported-modules modules - #:module-path path)) + #:module-path path + #:system system)) (compiled (compiled-modules modules #:extensions extensions - #:module-path path))) + #:module-path path + #:system system + #:target target))) (return (gexp (eval-when (expand load eval) (set! %load-path (cons (ungexp modules) @@ -1545,14 +1550,18 @@ (define* (load-path-expression modules #:optional (path %load-path) (define* (gexp->script name exp #:key (guile (default-guile)) - (module-path %load-path)) + (module-path %load-path) + (system (%current-system)) + target) "Return an executable script NAME that runs EXP using GUILE, with EXP's imported modules in its search path. Look up EXP's modules in MODULE-PATH." (mlet %store-monad ((set-load-path (load-path-expression (gexp-modules exp) module-path #:extensions - (gexp-extensions exp)))) + (gexp-extensions exp) + #:system system + #:target target))) (gexp->derivation name (gexp (call-with-output-file (ungexp output) @@ -1572,6 +1581,8 @@ (define* (gexp->script name exp (write '(ungexp exp) port) (chmod port #o555)))) + #:system system + #:target target #:module-path module-path))) (define* (gexp->file name exp #:key diff --git a/tests/gexp.scm b/tests/gexp.scm index 460afe7f59..5c013d838d 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -1104,6 +1104,25 @@ (define-public %stupid-thing ,text)) (return (and (zero? (close-pipe pipe)) (= 42 (string->number str))))))))) +(test-assertm "program-file #:system" + (let* ((exp (with-imported-modules '((guix build utils)) + (gexp (begin + (use-modules (guix build utils)) + (display "hi!"))))) + (system (if (string=? (%current-system) "x86_64-linux") + "armhf-linux" + "x86_64-linux")) + (file (program-file "program" exp))) + (mlet %store-monad ((drv (lower-object file system))) + (return (and (string=? (derivation-system drv) system) + (find (lambda (input) + (let ((drv (pk (derivation-input-derivation input)))) + (and (string=? (derivation-name drv) + "module-import-compiled") + (string=? (derivation-system drv) + system)))) + (derivation-inputs drv))))))) + (test-assertm "scheme-file" (let* ((text (plain-file "foo" "Hello, world!")) (scheme (scheme-file "bar" #~(list "foo" #$text)))) From c1cae86de3897a8be74452666d6b35e62ffae002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= Date: Thu, 18 Jul 2019 19:43:04 +1200 Subject: [PATCH 066/161] gnu: Add emacs-bug-hunter. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-bug-hunter): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index b11ec100f2..1bc7ec6a79 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -50,6 +50,7 @@ ;;; Copyright © 2019 Amar Singh ;;; Copyright © 2019 Baptiste Strazzulla ;;; Copyright © 2019 Giacomo Leidi +;;; Copyright © 2019 Jens Mølgaard ;;; ;;; This file is part of GNU Guix. ;;; @@ -948,6 +949,33 @@ (define-public emacs-relint @code{skip-chars-backward}.") (license license:gpl3+))) +(define-public emacs-bug-hunter + (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7") + (revision "1")) + (package + (name "emacs-bug-hunter") + (version (git-version "1.3.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Malabarba/elisp-bug-hunter.git") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 + "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-seq" ,emacs-seq))) + (home-page "https://github.com/Malabarba/elisp-bug-hunter") + (synopsis "Hunt down errors by bisecting elisp files") + (description + "The Bug Hunter is an Emacs library that finds the source of an error +or unexpected behavior inside an elisp configuration file (typically +@file{init.el} or @file{.emacs}).") + (license license:gpl3+)))) + ;;; ;;; Web browsing. From 74a24890096812c30139e895e19bd07f710dd4b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= Date: Thu, 18 Jul 2019 21:13:52 +1200 Subject: [PATCH 067/161] Add emacs-gnus-alias. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-gnus-alias): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 1bc7ec6a79..10b630eed0 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16775,3 +16775,33 @@ (define-public emacs-zerodark-theme "Zerodark is a dark theme inspired from One Dark and Niflheim. An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.") (license license:gpl3+))) + +(define-public emacs-gnus-alias + (package + (name "emacs-gnus-alias") + (version "20150316") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hexmode/gnus-alias.git") + (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4")))) + (build-system emacs-build-system) + (home-page "https://melpa.org/#/gnus-alias") + (synopsis "Alternative to @code{gnus-posting-styles}") + (description "This Emacs add-on provides a simple mechanism to switch +Identities when using a @code{message-mode} or a @code{message-mode} derived +mode. Identities can include @code{From} and @code{Organisation} headers, +extra headers, body and signature. Other features include: + +@itemize +@item Switch Identities in a message buffer. +@item Access original message to help determine Identity of the followup/reply +message. +@item Act on a forwarded message as if it were a message being replied to. +@item Start a new message with a given Identity pre-selected. +@end itemize") + (license license:gpl2+))) From 9f0ae848e274248e235c200a0981aed663cb16bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= Date: Thu, 18 Jul 2019 19:52:11 +1200 Subject: [PATCH 068/161] gnu: Add emacs-ox-epub. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-ox-epub): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 10b630eed0..df2c90272f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16805,3 +16805,26 @@ (define-public emacs-gnus-alias @item Start a new message with a given Identity pre-selected. @end itemize") (license license:gpl2+))) + +(define-public emacs-ox-epub + (package + (name "emacs-ox-epub") + (version "0.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ofosos/ox-epub.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7")))) + (build-system emacs-build-system) + (home-page "https://github.com/ofosos/ox-epub") + (synopsis "Export org mode projects to EPUB") + (description "@code{ox-epub} extends the (X)HTML exporter to generate +@code{.epub} files directly from OrgMode. This will export EPUB version 2, +which should give broad compatibility. It should also be relatiely easy to +convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working +zip utility (default is @code{zip}).") + (license license:gpl3+))) From 40c4c0058f64ee10db202560789f100cfceb4954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= Date: Thu, 18 Jul 2019 19:54:38 +1200 Subject: [PATCH 069/161] gnu: Add emacs-ox-pandoc. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-ox-pandoc): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index df2c90272f..2315d0f3de 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16828,3 +16828,28 @@ (define-public emacs-ox-epub convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working zip utility (default is @code{zip}).") (license license:gpl3+))) + +(define-public emacs-ox-pandoc + (package + (name "emacs-ox-pandoc") + (version "20180510") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kawabata/ox-pandoc.git") + (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz")))) + (build-system emacs-build-system) + (inputs + `(("pandoc" ,ghc-pandoc))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-ht" ,emacs-ht))) + (home-page "https://github.com/kawabata/ox-pandoc") + (synopsis "Org exporter for Pandoc") + (description "@code{ox-pandoc} is an exporter for converting Org-mode +files to numerous other formats via Pandoc.") + (license license:gpl3+))) From d3f2f86a7f6acfa5459561253ae60e0fa0c3a957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= Date: Thu, 18 Jul 2019 19:55:46 +1200 Subject: [PATCH 070/161] gnu: Add emacs-wc-mode. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-wc-mode): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 2315d0f3de..2f028a0dfc 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16853,3 +16853,27 @@ (define-public emacs-ox-pandoc (description "@code{ox-pandoc} is an exporter for converting Org-mode files to numerous other formats via Pandoc.") (license license:gpl3+))) + +(define-public emacs-wc-mode + (package + (name "emacs-wc-mode") + (version "1.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bnbeckwith/wc-mode.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp")))) + (build-system emacs-build-system) + (home-page "https://github.com/bnbeckwith/wc-mode") + (synopsis "Running word count with goals (minor mode)") + (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function +for Emacs buffers as well as a modeline addition with live word, line and +character counts. Additionally, a user can set specific goals for adding or +deleting words. These goals were partly inspired by 750words.com where the +goal of the site is to encourage writing by setting a goal of 750 words at a +time.") + (license license:gpl3+))) From 1a2d0d294bd444afac0ca9d2c8bad86a7d6a16d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20M=C3=B8lgaard?= Date: Thu, 18 Jul 2019 20:00:40 +1200 Subject: [PATCH 071/161] gnu: Add emacs-mastodon. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs-xyz.scm (emacs-mastodon): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs-xyz.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 2f028a0dfc..314f4867b3 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16877,3 +16877,35 @@ (define-public emacs-wc-mode goal of the site is to encourage writing by setting a goal of 750 words at a time.") (license license:gpl3+))) + +(define-public emacs-mastodon + (package + (name "emacs-mastodon") + (version "0.9.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jdenen/mastodon.el.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Move the source files to the top level, which is included in + ;; the EMACSLOADPATH. + (add-after 'unpack 'move-source-files + (lambda _ + (let ((el-files (find-files "./lisp" ".*\\.el$"))) + (for-each (lambda (f) + (rename-file f (basename f))) + el-files)) + #t))))) + (home-page "https://github.com/jdenen/mastodon.el") + (synopsis "Emacs client for Mastodon") + (description "@code{mastodon.el} is an Emacs client for Mastodon, the +federated microblogging social network.") + (license license:gpl3+))) From 4b0356590a57bc27a61956b981f4a90efcf9c92d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 27 Jul 2019 01:04:57 +0200 Subject: [PATCH 072/161] gnu: hpcguix-web: Update to f39c90b. * gnu/packages/web.scm (hpcguix-web): Update to f39c90b. [propagated-inputs]: Use GUILE-JSON-3 instead of GUILE-JSON-1. --- gnu/packages/web.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ac6403211c..1401d3b584 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -6436,8 +6436,8 @@ (define-public nghttp2 (license license:expat))) (define-public hpcguix-web - (let ((commit "53e09ea59ec0380b41a4cbda32df8bdb9a10004d") - (revision "3")) + (let ((commit "f39c90b35e99e4122b0866ec4337020d61c81508") + (revision "4")) (package (name "hpcguix-web") (version (git-version "0.0.1" revision commit)) @@ -6449,7 +6449,7 @@ (define-public hpcguix-web (file-name (git-file-name name version)) (sha256 (base32 - "1ah4pn9697vazhbvd45n4b1rrkx2nbhnw384cr0b941q3sz1dfyc")))) + "0idzzlwnaymk6hm5q9nh146h5m6vd8acp32vlmzp6qq08mimfkq7")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -6509,7 +6509,7 @@ (define-public hpcguix-web (propagated-inputs `(("guile" ,guile-2.2) ("guile-commonmark" ,guile-commonmark) - ("guile-json" ,guile-json-1))) + ("guile-json" ,guile-json-3))) (home-page "https://github.com/UMCUGenetics/hpcguix-web") (synopsis "Web interface for cluster deployments of Guix") (description "Hpcguix-web provides a web interface to the list of packages From 24446ce299943efe3dfded6c9dd0cf9421d8da04 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 17 Jul 2019 09:09:15 +0200 Subject: [PATCH 073/161] =?UTF-8?q?gnu:=20linux-libre:=20Restrict=20?= =?UTF-8?q?=E2=80=98dmesg=E2=80=99=20to=20privileged=20users.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/linux.scm (%default-extra-linux-options): Set CONFIG_SECURITY_DMESG_RESTRICT. --- gnu/packages/linux.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 52883282e8..4689c61a58 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -561,7 +561,9 @@ (define* (kernel-config-veyron arch #:key variant) (search-auxiliary-file file))) (define %default-extra-linux-options - `(;; Modules required for initrd: + `(;; Some very mild hardening. + ("CONFIG_SECURITY_DMESG_RESTRICT" . #t) + ;; Modules required for initrd: ("CONFIG_NET_9P" . m) ("CONFIG_NET_9P_VIRTIO" . m) ("CONFIG_VIRTIO_BLK" . m) From d0aff873373ae4ad40d007ac6ebf5500ef40b6d1 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 27 Jul 2019 17:02:43 -0400 Subject: [PATCH 074/161] gnu: linux-libre: Verbosely pack the deblobbed linux-libre tarball. This works around timeouts that sometimes occur after 1 hour of silence while packing the linux-libre source tarball on slower machines. * gnu/packages/linux.scm (make-linux-libre-source): Pass 'v' to 'tar' when packing the result tarball. --- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 4689c61a58..6119622d2d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -312,7 +312,7 @@ (define (make-linux-libre-source version (format #t "~%Packing new Linux-libre tarball...~%") (force-output) - (invoke "tar" "cfa" #$output + (invoke "tar" "cvfa" #$output ;; Avoid non-determinism in the archive. "--mtime=@0" "--owner=root:0" From e78c2b50df016323aa7abebcfa95fec2c2a07e22 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 27 Jul 2019 16:53:40 -0400 Subject: [PATCH 075/161] gnu: linux-libre: Update deblobbing scripts. * gnu/packages/linux.scm (deblob-scripts-5.2, deblob-scripts-4.19): Update to versions 5.2.3 and 4.19.61 respectively, and update the hashes. (deblob-scripts-4.14, deblob-scripts-4.9, deblob-scripts-4.4): Update to versions 4.14.134, 4.9.186, and 4.4.186 respectively, although the scripts themselves are unchanged. --- gnu/packages/linux.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6119622d2d..3f9103a350 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -182,31 +182,31 @@ (define (linux-libre-deblob-scripts version (define deblob-scripts-5.2 (linux-libre-deblob-scripts - "5.2.1" + "5.2.3" (base32 "076fwxlm6jq6z4vg1xq3kr474zz7qk71r90sf9dnfia3rw2pb4fa") - (base32 "030cccchli7vnzvxcw261spyzsgnq0m113bjsz8y4vglf6gaz4n9"))) + (base32 "0d3pp1bqchqc7vnxr1a56km5r0hzjiiipzz2xc3wgjwfi51k9kxc"))) (define deblob-scripts-4.19 (linux-libre-deblob-scripts - "4.19.59" + "4.19.61" (base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy") - (base32 "07z1bsyny8lldncfh27lb16mgx9r38nswx4vmd24c7n4xva12k2s"))) + (base32 "1fyacg28aym6virxyn7wk99qil2fjbks3iwm7p3hxy51pccn34za"))) (define deblob-scripts-4.14 (linux-libre-deblob-scripts - "4.14.133" + "4.14.134" (base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6") (base32 "0x9nd3hnyrm753cbgdqmy92mbnyw86w64g4hvyibnkpq5n7s3z9n"))) (define deblob-scripts-4.9 (linux-libre-deblob-scripts - "4.9.185" + "4.9.186" (base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg") (base32 "1gmjn5cwxydg6qb47wcmahwkv37npsjx4papynzkkdxyidmrccya"))) (define deblob-scripts-4.4 (linux-libre-deblob-scripts - "4.4.185" + "4.4.186" (base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw") (base32 "1x40lbiaizksy8z38ax7wpqr9ldgq7qvkxbb0ca98vd1axpklb10"))) From d83514baf274f34d658544848ea6a9eecb1a6975 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 27 Jul 2019 16:57:44 -0400 Subject: [PATCH 076/161] gnu: linux-libre@4.19: Update to 4.19.61. * gnu/packages/linux.scm (linux-libre-4.19-version): Update to 4.19.61. (linux-libre-4.19-pristine-source)[hash]: Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 3f9103a350..385dcce12c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -358,10 +358,10 @@ (define-public linux-libre-5.2-pristine-source (%upstream-linux-source version hash) deblob-scripts-5.2))) -(define-public linux-libre-4.19-version "4.19.60") +(define-public linux-libre-4.19-version "4.19.61") (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "0ibayrvrnw2lw7si78vdqnr20mm1d3z0g6a0ykndvgn5vdax5x9a"))) + (hash (base32 "1scwb6ynr93k4a1vzpw2x1hzafhfs06ckf9v6fk1zvkh8jw1rc5c"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) From 76b96720e20f109138c7fca027c9f0deb2b40d26 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 27 Jul 2019 16:58:51 -0400 Subject: [PATCH 077/161] gnu: linux-libre: Update to 5.2.3. * gnu/packages/linux.scm (linux-libre-5.2-version): Update to 5.2.3. (linux-libre-5.2-pristine-source)[hash]: Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 385dcce12c..c638c6aa10 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -350,10 +350,10 @@ (define (%upstream-linux-source version hash) "linux-" version ".tar.xz")) (sha256 hash))) -(define-public linux-libre-5.2-version "5.2.2") +(define-public linux-libre-5.2-version "5.2.3") (define-public linux-libre-5.2-pristine-source (let ((version linux-libre-5.2-version) - (hash (base32 "173da67d51qcjwrczqsfd6g9phzazqzr11xfxwlf54ckd6117ng5"))) + (hash (base32 "018fiz8bycglh5b031b710zllv2s5w017ylq0j30923p744n0g3m"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.2))) From d8d7565b82539bfff721bf884b7f4a3de3e6b4c3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 26 Jul 2019 05:01:56 +0200 Subject: [PATCH 078/161] gnu: Add intel-vaapi-driver. * gnu/packages/video.scm (intel-vaapi-driver): New public variable. --- gnu/packages/video.scm | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 0ca5469709..5083b05a2e 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -2695,6 +2695,50 @@ (define-public handbrake ;; Combination under GPLv2. See LICENSE. (license license:gpl2))) +(define-public intel-vaapi-driver + (package + (name "intel-vaapi-driver") + (version "2.3.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/intel/intel-vaapi-driver/" + "releases/download/" version "/intel-vaapi-driver-" + version ".tar.bz2")) + (sha256 + (base32 "1qyzxh3p8cw4fv8bz9zd4kc8hajlaps7xryzh6pad814n3m5sbjw")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libdrm" ,libdrm) + ("libva" ,libva) + ("libx11" ,libx11))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'set-target-directory + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "LIBVA_DRIVERS_PATH" (string-append out "/lib/dri")) + #t)))))) + ;; XXX Because of , we need to add + ;; this to all VA-API back ends instead of once to libva. + (native-search-paths + (list (search-path-specification + (variable "LIBVA_DRIVERS_PATH") + (files '("lib/dri"))))) + (home-page "https://01.org/linuxmedia/vaapi") + (synopsis "VA-API video acceleration driver for Intel GEN Graphics devices") + (description + "This is the @acronym{VA-API, Video Acceleration API} back end required for +hardware-accelerated video processing on Intel GEN Graphics devices supported by +the i915 driver, such as integrated Intel HD Graphics. It provides access to +both hardware and shader functionality for faster encoding, decoding, and +post-processing of video formats like MPEG2, H.264/AVC, and VC-1.") + (license (list license:bsd-2 ; src/gen9_vp9_const_def.c + license:expat)))) ; the rest, excluding the test suite + (define-public openh264 (package (name "openh264") From 3563220e1e46b8a1b9af1e3a4c6cb3f9560c2460 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 26 Jul 2019 05:14:37 +0200 Subject: [PATCH 079/161] gnu: Add libva-utils. * gnu/packages/video.scm (libva-utils): New public variable. --- gnu/packages/video.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 5083b05a2e..51ff7fa97a 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -753,6 +753,40 @@ (define-public libva standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (license license:expat))) +(define-public libva-utils + (package + (name "libva-utils") + (version "2.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/intel/libva-utils/releases/download/" + version "/libva-utils-" version ".tar.bz2")) + (sha256 + (base32 "05rasyqnsg522zqxak1q8rrm1hys7wwbi41kd0szjq0d27awjf4j")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--enable-wayland" + "--enable-x11"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libdrm" ,libdrm) + ("libva" ,libva) + ("libx11" ,libx11) + ("mesa" ,mesa) + ("wayland" ,wayland))) + (home-page "https://01.org/linuxmedia/vaapi") + (synopsis "Collection of testing utilities for VA-API") + (description + "This is a collection of utilities to query and test the @acronym{VA-API, +Video Acceleration API} implemented by the libva library. + +These tools require a supported graphics chip, driver, and VA-API back end to +operate properly.") + (license license:expat))) + (define-public ffmpeg (package (name "ffmpeg") From 85a4531f646e9f352f86870eb6c4fe7173e5bffc Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Fri, 12 Jul 2019 23:41:09 +0200 Subject: [PATCH 080/161] gnu: pngcrush: Edit description. * gnu/packages/image.scm (pngcrush)[description]: Fix typo. Signed-off-by: Tobias Geerinckx-Rice --- gnu/packages/image.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 5d3aa03124..3e5eae47e7 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -250,8 +250,8 @@ (define-public pngcrush ("zlib" , zlib))) (home-page "https://pmt.sourceforge.io/pngcrush") (synopsis "Utility to compress PNG files") - (description "pngcrusqh is an optimizer for PNG (Portable Network Graphics) -files. It can compress them as much as 40% losslessly.") + (description "Pngcrush optimizes @acronym{PNG, Portable Network Graphics} +images. It can further losslessly compress them by as much as 40%.") (license license:zlib))) (define-public pngcrunch From eca0a885e7f87fe7549264510c74f97e6e9c550e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 23 Jul 2019 14:15:37 +0200 Subject: [PATCH 081/161] gnu: kodi: Update to 18.3. * gnu/packages/kodi.scm (kodi): Update to 18.3. --- gnu/packages/kodi.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index e885aaab39..a9b5b85a47 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -271,7 +271,7 @@ (define-public fstrcmp (define-public kodi (package (name "kodi") - (version "18.2") + (version "18.3") (source (origin (method git-fetch) (uri (git-reference @@ -280,7 +280,7 @@ (define-public kodi (file-name (git-file-name name version)) (sha256 (base32 - "1yzi8171p1mnszyf80lqkl05ql25n73s5gn8pcgvv4jph4yvasnq")) + "18fbl5hs3aqccrn0m3x7hp95wlafjav0yvrwmb5q3gj24mwf6jld")) (patches (search-patches "kodi-skip-test-449.patch" "kodi-set-libcurl-ssl-parameters.patch")) (snippet From bfbc2d876ab2af1d36df301a813cc2576aaa556b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jul 2019 21:46:34 +0200 Subject: [PATCH 082/161] gnu: zstd: Update to 1.4.2. --- gnu/packages/compression.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index d821298e56..9834fcbe63 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1363,14 +1363,14 @@ (define-public unshield (define-public zstd (package (name "zstd") - (version "1.4.1") + (version "1.4.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/facebook/zstd/releases/download/" "v" version "/zstd-" version ".tar.gz")) (sha256 - (base32 "180sfl0iz5hy43xcr0gh8kz2vxgpb8rh5d7wmpxn3bxkgs320l2k")))) + (base32 "1ja3nrjynmiwwdjrf6crraizkbagp7y414bqqq2ady91nn1hjwqj")))) (build-system gnu-build-system) (outputs '("out" ;1.1MiB executables and documentation "lib" ;1MiB shared library and headers From d5571bc6529192219a999b6670954f196b26277b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jul 2019 21:48:31 +0200 Subject: [PATCH 083/161] gnu: nginx: Update to 1.17.2. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 1401d3b584..958bc1aa40 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -205,14 +205,14 @@ (define-public nginx ;; ’stable’ and recommends that “in general you deploy the NGINX mainline ;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/) ;; Consider updating the nginx-documentation package together with this one. - (version "1.17.1") + (version "1.17.2") (source (origin (method url-fetch) (uri (string-append "https://nginx.org/download/nginx-" version ".tar.gz")) (sha256 (base32 - "0gp7cy2bbn8yi1wapjzssf4bhmn4d4vphdb0k1wiaq2fa6s2a63g")))) + "1v39gslwbvpfhqqv74q0lkfrhrwsp59xc8pwhvxns7af8s3kccsy")))) (build-system gnu-build-system) (inputs `(("openssl" ,openssl) ("pcre" ,pcre) From 9b7f721db9da21a858a98316ce52c8becdc6df12 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jul 2019 21:50:23 +0200 Subject: [PATCH 084/161] gnu: feh: Update to 3.2.1. * gnu/packages/image-viewers.scm (feh): Update to 3.2.1. --- gnu/packages/image-viewers.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 6db52e0be0..d33a9857c9 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -64,7 +64,7 @@ (define-module (gnu packages image-viewers) (define-public feh (package (name "feh") - (version "3.1.3") + (version "3.2.1") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -72,7 +72,7 @@ (define-public feh name "-" version ".tar.bz2")) (sha256 (base32 - "1vsnxf4as3vyzjfhd8frzb1a8i7wnq7ck5ljx7qxqrnfqvxl1s4z")))) + "070axq8jpibcabmjfv4fmjmpk3k349vzvh4qhsi4n62bkcwl35wg")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) From b23579d0da9ccf7c6c5275480159b04b0ab7d482 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jul 2019 21:57:01 +0200 Subject: [PATCH 085/161] gnu: signify: Update to 26. * gnu/packages/crypto.scm (signify): Update to 26. [source]: Change to URL-FETCH to get the shiny new release tarball. --- gnu/packages/crypto.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 45e1d64cd2..b975afe6d3 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -131,16 +131,15 @@ (define-public libmd (define-public signify (package (name "signify") - (version "25") + (version "26") (home-page "https://github.com/aperezdc/signify") (source (origin - (method git-fetch) - (uri (git-reference (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://github.com/aperezdc/signify/releases" + "/download/v" version "/signify-" version ".tar.xz")) (sha256 (base32 - "0zg0rffxwj2a71s1bllhrn491xsmirg9sshpq8f3vl25lv4c2cnq")))) + "16sl1yq5bbsads5q4a0fbrf31b0x8r1hi4wagl90nbrhrca98baw")))) (build-system gnu-build-system) ;; TODO Build with libwaive (described in README.md), to implement something ;; like OpenBSD's pledge(). From 7e5eda0c08112963be08ebe0c62eed651749e0a1 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sun, 28 Jul 2019 11:05:39 +0200 Subject: [PATCH 086/161] gnu: unbound: Update to 1.9.2. * gnu/packages/dns.scm (unbound): Update to 1.9.2. --- gnu/packages/dns.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 17357c1292..b4d5a9ab27 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2018 Oleg Pykhalov ;;; Copyright © 2019 Mathieu Othacehe ;;; Copyright © 2019 Chris Marusich +;;; Copyright © 2019 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -372,14 +373,14 @@ (define-public nsd (define-public unbound (package (name "unbound") - (version "1.9.1") + (version "1.9.2") (source (origin (method url-fetch) (uri (string-append "https://www.unbound.net/downloads/unbound-" version ".tar.gz")) (sha256 - (base32 "1iarvk0i92asvrkpla9z55aan20k6pklzpck9yk4rfnchsdvzh63")))) + (base32 "15bbrczibap30db8a1pmqhvjbmkxms39hwiivby7f4j5rz2wwykg")))) (build-system gnu-build-system) (outputs '("out" "python")) (native-inputs From b64b66b890188aff9e7f23c6e85e715d7101f68e Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 28 Jul 2019 18:58:44 -0400 Subject: [PATCH 087/161] gnu: linux-libre@4.19: Update to 4.19.62. * gnu/packages/linux.scm (linux-libre-4.19-version): Update to 4.19.62. (linux-libre-4.19-pristine-source)[hash]: Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c638c6aa10..2f8ec219b4 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -358,10 +358,10 @@ (define-public linux-libre-5.2-pristine-source (%upstream-linux-source version hash) deblob-scripts-5.2))) -(define-public linux-libre-4.19-version "4.19.61") +(define-public linux-libre-4.19-version "4.19.62") (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "1scwb6ynr93k4a1vzpw2x1hzafhfs06ckf9v6fk1zvkh8jw1rc5c"))) + (hash (base32 "1p6s1ksrsq3za7644j0qf9brf6brwq39jxpfln5ypmyfi5qn9gh7"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) From ab20b3ed9152c7c95d0d2c6b2d65e29983ab57ce Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 28 Jul 2019 19:00:12 -0400 Subject: [PATCH 088/161] gnu: linux-libre: Update to 5.2.4. * gnu/packages/linux.scm (linux-libre-5.2-version): Update to 5.2.4. (linux-libre-5.2-pristine-source)[hash]: Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 2f8ec219b4..fc3c31e224 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -350,10 +350,10 @@ (define (%upstream-linux-source version hash) "linux-" version ".tar.xz")) (sha256 hash))) -(define-public linux-libre-5.2-version "5.2.3") +(define-public linux-libre-5.2-version "5.2.4") (define-public linux-libre-5.2-pristine-source (let ((version linux-libre-5.2-version) - (hash (base32 "018fiz8bycglh5b031b710zllv2s5w017ylq0j30923p744n0g3m"))) + (hash (base32 "0hzfayq79bksng09ngw3k3h3zkd6ndfn059rvwpznypy1fg8pkdi"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.2))) From 767a0a18d88479c713f1b9b034bd06eedfe71a80 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 29 Jul 2019 13:53:44 +0200 Subject: [PATCH 089/161] gnu: btrfs-progs: Update to 5.2.1. * gnu/packages/linux.scm (btrfs-progs): Update to 5.2.1. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index fc3c31e224..354337909d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3822,7 +3822,7 @@ (define-public gpm (define-public btrfs-progs (package (name "btrfs-progs") - (version "5.1.1") + (version "5.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -3830,7 +3830,7 @@ (define-public btrfs-progs "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "06xybs7rglxjqkbzl2409acb3rgmnc5zc0xhyaxsc2p1x5yipfcw")))) + "0crjv3i20nyj2dagfw6q7byshscpn6j7wlqch3apkzzzk00lmb1n")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" From 06c2d0e6c1f8c6d79daeb7991087b9eff388b28c Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 25 Jun 2019 20:42:49 +0200 Subject: [PATCH 090/161] gnu: Add go-golang-org-x-text-encoding. * gnu/packages/golang.scm (go-golang-org-x-text-encoding): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 10c30e520b..9b423d0419 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -48,6 +48,7 @@ (define-module (gnu packages golang) #:use-module (gnu packages pcre) #:use-module (gnu packages lua) #:use-module (gnu packages mp3) + #:use-module (gnu packages textutils) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) @@ -1174,6 +1175,32 @@ (define-public go-golang-org-x-sys-cpu (description "Thi spackage provides @code{cpu}, which offers tools for CPU feature detection in Go."))) +(define-public go-golang-org-x-text-encoding + (package + (name "go-golang-org-x-text-encoding") + (version "0.3.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/text") + (commit (string-append "v" version)))) + (file-name (string-append "go.googlesource.com-text-" + version "-checkout")) + (sha256 + (base32 + "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/text/encoding" + #:unpack-path "golang.org/x/text")) + (synopsis "Interface for character encodings for conversion to and from +UTF-8") + (description "This package defines an interface for character encodings. +Specific implementations of encoding for CJK text as well as simple character +encodings are provided in subpackages.") + (home-page "https://go.googlesource.com/text") + (license license:bsd-3))) + (define-public go-golang-org-x-text-transform (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3") (revision "1")) From 7e6da91fa736bf1494e12f7bb947df42fb2fbbd1 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 25 Jun 2019 20:43:23 +0200 Subject: [PATCH 091/161] gnu: go-golang-org-x-text-transform: Inherit from related package. * gnu/packages/golang.scm (go-golang-org-x-text-transform): Inherit from go-golang-org-x-text-encoding. Signed-off-by: Danny Milosavljevic --- gnu/packages/golang.scm | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9b423d0419..2d59da7169 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1202,32 +1202,17 @@ (define-public go-golang-org-x-text-encoding (license license:bsd-3))) (define-public go-golang-org-x-text-transform - (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3") - (revision "1")) - (package - (name "go-golang-org-x-text-transform") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://go.googlesource.com/text") - (commit commit))) - (file-name (string-append "go.googlesource.com-text-" - version "-checkout")) - (sha256 - (base32 - "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w")))) - (build-system go-build-system) - (arguments - `(#:import-path "golang.org/x/text/transform" - #:unpack-path "golang.org/x/text")) - (synopsis "Go text transformation") - (description "This package provides @code{transform}, which provides + (package + (inherit go-golang-org-x-text-encoding) + (name "go-golang-org-x-text-transform") + (arguments + `(#:import-path "golang.org/x/text/transform" + #:unpack-path "golang.org/x/text")) + (synopsis "Go text transformation") + (description "This package provides @code{transform}, which provides reader and writer wrappers that transform the bytes passing through. Example transformations provided by other packages include normalization and conversion -between character sets.") - (home-page "https://go.googlesource.com/text") - (license license:bsd-3)))) +between character sets."))) (define-public go-golang-org-x-text-unicode-norm (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3") From bd184dc6eb60981abebf0bb919ae9b15448df872 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 25 Jun 2019 20:44:46 +0200 Subject: [PATCH 092/161] gnu: go-golang-org-x-text-unicode-norm: Inherit from related package. * gnu/packages/golang.scm (go-golang-org-x-text-unicode-norm): Inherit from go-golang-org-x-text-encoding. Signed-off-by: Danny Milosavljevic --- gnu/packages/golang.scm | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2d59da7169..f12f8d82b0 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1215,30 +1215,15 @@ (define-public go-golang-org-x-text-transform between character sets."))) (define-public go-golang-org-x-text-unicode-norm - (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3") - (revision "1")) - (package - (name "go-golang-org-x-text-unicode-norm") - (version (git-version "0.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://go.googlesource.com/text") - (commit commit))) - (file-name (string-append "go.googlesource.com-text-" - version "-checkout")) - (sha256 - (base32 - "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w")))) - (build-system go-build-system) - (arguments - `(#:import-path "golang.org/x/text/unicode/norm" - #:unpack-path "golang.org/x/text")) - (synopsis "Unicode normalization in Go") - (description "This package provides @code{norm}, which contains types and -functions for normalizing Unicode strings.") - (home-page "https://go.googlesource.com/text") - (license license:bsd-3)))) + (package + (inherit go-golang-org-x-text-encoding) + (name "go-golang-org-x-text-unicode-norm") + (arguments + `(#:import-path "golang.org/x/text/unicode/norm" + #:unpack-path "golang.org/x/text")) + (synopsis "Unicode normalization in Go") + (description "This package provides @code{norm}, which contains types and +functions for normalizing Unicode strings."))) (define-public go-golang-org-x-time-rate (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7") From be42a38a5b6c292ac362b9c650f087a1f28187b0 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 25 Jun 2019 20:45:22 +0200 Subject: [PATCH 093/161] gnu: Add go-golang-org-sql-mock. * gnu/packages/golang.scm (go-golang-org-sql-mock): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index f12f8d82b0..c9a4512d82 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3235,6 +3235,31 @@ (define-public go-github-com-kr-text (home-page "https://github.com/kr/text") (license license:expat))) +(define-public go-golang-org-sql-mock + (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b") + (version "1.3.3") + (revision "1")) + (package + (name "go-golang-org-sql-mock") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DATA-DOG/go-sqlmock") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/DATA-DOG/go-sqlmock")) + (synopsis "Mock library implementing @code{sql/driver}") + (description "This library simulates SQL-driver behavior in tests +without requiring a real database connection.") + (home-page "https://github.com/DATA-DOG/go-sqlmock") + (license license:expat)))) + (define-public go-github-com-burntsushi-locker (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a") (revision "0")) From a881a087e52aa23bb9b9954f554bed2b1c87662d Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 25 Jun 2019 20:45:39 +0200 Subject: [PATCH 094/161] gnu: Add go-golang-org-colorful. * gnu/packages/golang.scm (go-golang-org-colorful): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index c9a4512d82..fbce55bab9 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3260,6 +3260,31 @@ (define-public go-golang-org-sql-mock (home-page "https://github.com/DATA-DOG/go-sqlmock") (license license:expat)))) +(define-public go-golang-org-colorful + (package + (name "go-golang-org-colorful") + (version "1.0.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lucasb-eyer/go-colorful") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/lucasb-eyer/go-colorful")) + (native-inputs + `(("go-golang-org-sql-mock" ,go-golang-org-sql-mock))) + (synopsis "Convert between colorspaces and generate colors") + (description "This package implements Go's @code{color.Color} interface +and provides a means of converting colors stored as RGB to various +colorspaces.") + (home-page "https://github.com/lucasb-eyer/go-colorful") + (license license:expat))) + (define-public go-github-com-burntsushi-locker (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a") (revision "0")) From 42a0cfee6064c70441809ec81a601e671b5d0123 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 25 Jun 2019 20:45:52 +0200 Subject: [PATCH 095/161] gnu: Add go-github-com-gdamore-encoding. * gnu/packages/golang.scm (go-github-com-gdamore-encoding): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index fbce55bab9..5ef44179ac 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3285,6 +3285,33 @@ (define-public go-golang-org-colorful (home-page "https://github.com/lucasb-eyer/go-colorful") (license license:expat))) +(define-public go-github-com-gdamore-encoding + (package + (name "go-github-com-gdamore-encoding") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gdamore/encoding") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/gdamore/encoding")) + (inputs + `(("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding) + ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform))) + (home-page "https://github.com/gdamore/encoding") + (synopsis "Provide encodings missing from Go") + (description "This package provides useful encodings not included in the +standard @code{Text} package, including some for dealing with I/O streams from +non-UTF-friendly sources.") + (license license:expat))) + (define-public go-github-com-burntsushi-locker (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a") (revision "0")) From d050000a44dff70a98c53c3492002bbf345e4506 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 25 Jun 2019 20:47:00 +0200 Subject: [PATCH 096/161] gnu: go-github.com-mattn-go-runewidth: Update to 0.0.4-1.703b5e6. * gnu/packages/textutils.scm (go-github.com-mattn-go-runewidth): Update to 0.0.4-1.703b5e6. Signed-off-by: Danny Milosavljevic --- gnu/packages/textutils.scm | 47 +++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index d1dc14e6d7..2c520dfbdf 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -693,27 +693,32 @@ (define-public python-editdistance (license license:expat)))) (define-public go-github.com-mattn-go-runewidth - (package - (name "go-github.com-mattn-go-runewidth") - (version "0.0.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mattn/go-runewidth") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0vkrfrz3fzn5n6ix4k8s0cg0b448459sldq8bp4riavsxm932jzb")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/mattn/go-runewidth")) - (synopsis "@code{runewidth} provides Go functions to work with string widths") - (description - "The @code{runewidth} library provides Go functions for padding, -measuring and checking the width of strings, with support east asian text.") - (home-page "https://github.com/jessevdk/go-flags") - (license license:expat))) + (let ((commit "703b5e6b11ae25aeb2af9ebb5d5fdf8fa2575211") + (version "0.0.4") + (revision "1")) + (package + (name "go-github.com-mattn-go-runewidth") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/runewidth") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0znpyz71gajx3g0j2zp63nhjj2c07g16885vxv4ykwnrfmzbgk4w")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/mattn/go-runewidth")) + (synopsis "@code{runewidth} provides Go functions to work with string widths") + (description + "The @code{runewidth} library provides Go functions for padding, +measuring and checking the width of strings, with support for East Asian +text.") + (home-page "https://github.com/mattn/runewidth") + (license license:expat)))) (define-public docx2txt (package From a6689b99ef726a02b6d5374122e0c97a36dcee02 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 25 Jun 2019 20:46:28 +0200 Subject: [PATCH 097/161] gnu: Add go-github-com-gdamore-tcell. * gnu/packages/golang.scm (go-github-com-gdamore-tcell): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/golang.scm | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 5ef44179ac..fc911fcd91 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3312,6 +3312,50 @@ (define-public go-github-com-gdamore-encoding non-UTF-friendly sources.") (license license:expat))) +(define-public go-github-com-gdamore-tcell + (let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e") + (version "1.1.2") + (revision "1")) + (package + (name "go-github-com-gdamore-tcell") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gdamore/tcell") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/gdamore/tcell" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-files-writable + (lambda* (#:key outputs #:allow-other-keys) + ;; Make sure .gz files are writable so that the + ;; 'reset-gzip-timestamps' phase can do its work. + (let ((out (assoc-ref outputs "out"))) + (for-each make-file-writable + (find-files out "\\.gz$")) + #t)))))) + (inputs + `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth) + ("go-golang-org-colorful" ,go-golang-org-colorful) + ("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding) + ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform) + ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding))) + (home-page "https://github.com/gdamore/tcell") + (synopsis "Provide a cell-based view for text terminals") + (description "This package includes a full parser and expander for +terminfo capability strings to avoid hard-coding escape strings for +formatting. It also favors portability, and includes support for all POSIX +systems.") + (license license:expat)))) + (define-public go-github-com-burntsushi-locker (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a") (revision "0")) From f81573500edd777dc3d6a35aef8b874297e19670 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 25 Jun 2019 20:46:42 +0200 Subject: [PATCH 098/161] gnu: Add go-github-com-mattn-go-shellwords. * gnu/packages/golang.scm (go-github-com-mattn-go-shellwords): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/golang.scm | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index fc911fcd91..2fd2154523 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3356,6 +3356,50 @@ (define-public go-github-com-gdamore-tcell systems.") (license license:expat)))) +(define-public go-github-com-mattn-go-shellwords + (let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2") + (version "1.0.5") + (revision "1")) + (package + (name "go-github-com-mattn-go-shellwords") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-shellwords") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/mattn/go-shellwords" + ;; TODO: can't make homeless-shelter: + ;; go: disabling cache (/homeless-shelter/.cache/go-build) due to + ;; initialization failure: mkdir /homeless-shelter: permission denied + + ;; This doesn't seem to work: + + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda* (#:key import-path #:allow-other-keys) + ;; (setenv "HOME" "/tmp") + ;; (invoke "go" "test" import-path)))) + + ;; TODO: There are also a couple of tests that have stymied Debian in + ;; the past. They seem to work when run locally. + + #:tests? #f + )) + (home-page "https://github.com/mattn/go-shellwords") + (synopsis "Parse lines into shell words") + (description "This package parses text into shell arguments. Based on +the @code{cpan} module @code{Parse::CommandLine}.") + (license license:expat)))) + (define-public go-github-com-burntsushi-locker (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a") (revision "0")) From cb3625bcd77fe84e24ad5ad99dab7a7134227add Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 25 Jun 2019 20:48:43 +0200 Subject: [PATCH 099/161] gnu: Add go-github-com-junegunn-fzf. * gnu/packages/terminals.scm (go-github-com-junegunn-fzf): New variable. Signed-off-by: Danny Milosavljevic --- gnu/packages/terminals.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 4d0e875012..df8d1e4b79 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -54,6 +54,7 @@ (define-module (gnu packages terminals) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages golang) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages libevent) @@ -754,6 +755,35 @@ (define-public go-golang.org-x-crypto-ssh-terminal (home-page "https://go.googlesource.com/crypto/") (license license:bsd-3)))) +(define-public go-github-com-junegunn-fzf + (package + (name "go-github-com-junegunn-fzf") + (version "0.18.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/junegunn/fzf") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pwpr4fpw56yzzkcabzzgbgwraaxmp7xzzmap7w1xsrkbj7dl2xl")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/junegunn/fzf")) + (inputs + `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth) + ("go-github-com-mattn-go-shellwords" ,go-github-com-mattn-go-shellwords) + ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty) + ("go-github-com-gdamore-tcell" ,go-github-com-gdamore-tcell) + ("go-golang-org-x-crypto-ssh-terminal" ,go-golang-org-x-crypto-ssh-terminal))) + (home-page "https://github.com/junegunn/fzf") + (synopsis "Command-line fuzzy-finder") + (description "This package provides an interactive command-line filter +usable with any list--including files, command history, processes and more.") + (license license:expat))) + (define-public go-github.com-howeyc-gopass (let ((commit "bf9dde6d0d2c004a008c27aaee91170c786f6db8") (revision "0")) From 33b67efeb4a2eb25d15f6b51419818461596a211 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 16 Jul 2019 10:26:44 -0400 Subject: [PATCH 100/161] gnu: Add go-golang-org-x-tools. * gnu/packages/golang.scm (go-golang-org-x-tools): New variable. --- gnu/packages/golang.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2fd2154523..077aff2a21 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -769,6 +769,37 @@ (define-public go-github-com-hashicorp-hcl (home-page "https://github.com/hashicorp/hcl") (license license:mpl2.0)))) +(define-public go-golang-org-x-tools + (let ((commit "8b927904ee0dec805c89aaf9172f4459296ed6e8") + (revision "0")) + (package + (name "go-golang-org-x-tools") + (version (git-version "0.1.3" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/tools") + (commit commit))) + (file-name (string-append "go.googlesource.com-tools-" + version "-checkout")) + (sha256 + (base32 + "0iinb70xhcjsddgi42ia1n745lx2ibnjdm6m2v666qrk3876vpck")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/tools" + ;; Source-only package + #:tests? #f + #:phases + (modify-phases %standard-phases + ;; Source-only package + (delete 'build)))) + (synopsis "Tools that support the Go programming language") + (description "This package provides miscellaneous tools that support the +Go programming language.") + (home-page "https://go.googlesource.com/tools/") + (license license:bsd-3)))) + (define-public go-golang-org-x-crypto-bcrypt (let ((commit "b7391e95e576cacdcdd422573063bc057239113d") (revision "3")) From 5bbf203c3452840e0698d378a4359de58391dc54 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 16 Jul 2019 10:34:57 -0400 Subject: [PATCH 101/161] gnu: Add go-golang-org-x-crypto. * gnu/packages/golang.scm (go-golang-org-x-crypto): New variable. --- gnu/packages/golang.scm | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 077aff2a21..41d38268d3 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -800,6 +800,48 @@ (define-public go-golang-org-x-tools (home-page "https://go.googlesource.com/tools/") (license license:bsd-3)))) +(define-public go-golang-org-x-crypto + (let ((commit "b7391e95e576cacdcdd422573063bc057239113d") + (revision "3")) + (package + (name "go-golang-org-x-crypto") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/crypto") + (commit commit))) + (file-name (string-append "go.googlesource.com-crypto-" + version "-checkout")) + (sha256 + (base32 + "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm")))) + (build-system go-build-system) + (arguments + '(#:import-path "golang.org/x/crypto" + ;; Source-only package + #:tests? #f + #:phases + (modify-phases %standard-phases + ;; Source-only package + (delete 'build) + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/golang.org/x/crypto/ed25519/testdata") + ".*\\.gz$")) + #t))))) + (propagated-inputs + `(("go-golang-org-x-sys-cpu" ,go-golang-org-x-sys-cpu))) + (synopsis "Supplementary cryptographic libraries in Go") + (description "This package provides supplementary cryptographic libraries +for the Go language.") + (home-page "https://go.googlesource.com/crypto/") + (license license:bsd-3)))) + (define-public go-golang-org-x-crypto-bcrypt (let ((commit "b7391e95e576cacdcdd422573063bc057239113d") (revision "3")) From a3b1dc49bb4ab68fce3af1c937545a707ae2d93b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 16 Jul 2019 11:21:56 -0400 Subject: [PATCH 102/161] gnu: Add go-github-com-marten-seemann-qtls. * gnu/packages/golang.scm (go-github-com-marten-seemann-qtls): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 41d38268d3..302c413880 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3506,3 +3506,29 @@ (define-public go-github-com-burntsushi-locker All locks are implemented with read-write mutexes. To use them like a regular mutex, simply ignore the RLock/RUnlock functions.") (license license:unlicense)))) + +(define-public go-github-com-marten-seemann-qtls + (package + (name "go-github-com-marten-seemann-qtls") + (version "0.2.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/marten-seemann/qtls") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0b9p7bwkm9hfg1mb565q4nw5k7xyks0z2xagz5fp95azy2psbnfg")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/marten-seemann/qtls" + ;; The test suite requires networking. + #:tests? #f)) + (propagated-inputs + `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto))) + (synopsis "TLS 1.3 with QUIC in Go") + (description "This package provides @code{qtls}, a QUIC-capable variant of +the Go standard library's TLS 1.3 implementation.") + (home-page "https://github.com/marten-seemann/qtls") + (license license:bsd-3))) From 8201afdf0cbbba25fb09089c872211178a85fc9d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 16 Jul 2019 11:22:20 -0400 Subject: [PATCH 103/161] gnu: Add go-github-com-cheekybits-genny. * gnu/packages/golang.scm (go-github-com-cheekybits-genny): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 302c413880..45a77c51cc 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3532,3 +3532,27 @@ (define-public go-github-com-marten-seemann-qtls the Go standard library's TLS 1.3 implementation.") (home-page "https://github.com/marten-seemann/qtls") (license license:bsd-3))) + +(define-public go-github-com-cheekybits-genny + (package + (name "go-github-com-cheekybits-genny") + (version "1.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cheekybits/genny") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cheekybits/genny")) + (propagated-inputs + `(("go-golang-org-x-tools" ,go-golang-org-x-tools))) + (synopsis "Generics for Go") + (description "This package provides @code{genny}, a Go language +implementation of generics.") + (home-page "https://github.com/cheekybits/genny/") + (license license:expat))) From 6d766bec446690fec6a15eaf48cd223a8c2426b3 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 16 Jul 2019 11:27:21 -0400 Subject: [PATCH 104/161] gnu: Add go-github-com-lucas-clemente-quic-go. * gnu/packages/golang.scm (go-github-com-lucas-clemente-quic-go: New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 45a77c51cc..73f740299b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3556,3 +3556,31 @@ (define-public go-github-com-cheekybits-genny implementation of generics.") (home-page "https://github.com/cheekybits/genny/") (license license:expat))) + +(define-public go-github-com-lucas-clemente-quic-go + (package + (name "go-github-com-lucas-clemente-quic-go") + (version "0.11.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lucas-clemente/quic-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gqm5mc8alg84ra7yxach34il1jvcij8f76qdqcahnd3d2nhjbia")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/lucas-clemente/quic-go" + ;; XXX More packages required... + #:tests? #f)) + (propagated-inputs + `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny) + ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls))) + (synopsis "QUIC in Go") + (description "This package provides a Go language implementation of the QUIC +network protocol.") + (home-page "https://github.com/lucas-clemente/quic-go") + (license license:expat))) From 2da5275f818f56587fca5527d30919442eb74b4b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 16 Jul 2019 11:28:03 -0400 Subject: [PATCH 105/161] gnu: Move go-github-com-pkg-errors to the Golang package module. * gnu/packages/syncthing.scm (go-github-com-pkg-errors): Move ... * gnu/packages/golang.scm (go-github-com-pkg-errors): ... here. --- gnu/packages/golang.scm | 22 ++++++++++++++++++++++ gnu/packages/syncthing.scm | 22 ---------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 73f740299b..ed9ccd2d14 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3584,3 +3584,25 @@ (define-public go-github-com-lucas-clemente-quic-go network protocol.") (home-page "https://github.com/lucas-clemente/quic-go") (license license:expat))) + +(define-public go-github-com-pkg-errors + (package + (name "go-github-com-pkg-errors") + (version "0.8.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pkg/errors.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/pkg/errors")) + (synopsis "Go error handling primitives") + (description "This package provides @code{error}, which offers simple +error handling primitives in Go.") + (home-page "https://github.com/pkg/errors") + (license license:bsd-2))) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index cd3dd0de54..63b8b70658 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -739,28 +739,6 @@ (define-public go-github-com-chmduquesne-rollinghash (home-page "https://github.com/chmduquesne/rollinghash") (license expat)))) -(define-public go-github-com-pkg-errors - (package - (name "go-github-com-pkg-errors") - (version "0.8.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pkg/errors.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/pkg/errors")) - (synopsis "Go error handling primitives") - (description "This package provides @code{error}, which offers simple -error handling primitives in Go.") - (home-page "https://github.com/pkg/errors") - (license bsd-2))) - (define-public go-github-com-petermattis-goid (let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02") (revision "0")) From 8c6be10aba4a737cd2d3ab3b389af815c7d5a9f6 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 25 Jul 2019 13:31:19 -0400 Subject: [PATCH 106/161] gnu: go-github-com-pkg-errors: Update to 0.8.1-0.27936f6. * gnu/packages/golang.scm (go-github-com-pkg-errors): Update to 0.8.1-0.27936f6. --- gnu/packages/golang.scm | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index ed9ccd2d14..ca4fe6d822 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3586,23 +3586,25 @@ (define-public go-github-com-lucas-clemente-quic-go (license license:expat))) (define-public go-github-com-pkg-errors - (package - (name "go-github-com-pkg-errors") - (version "0.8.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pkg/errors.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/pkg/errors")) - (synopsis "Go error handling primitives") - (description "This package provides @code{error}, which offers simple + (let ((commit "27936f6d90f9c8e1145f11ed52ffffbfdb9e0af7") + (revision "0")) + (package + (name "go-github-com-pkg-errors") + (version (git-version "0.8.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pkg/errors.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0yzmgi6g4ak4q8y7w6x0n5cbinlcn8yc3gwgzy4yck00qdn25d6y")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/pkg/errors")) + (synopsis "Go error handling primitives") + (description "This package provides @code{error}, which offers simple error handling primitives in Go.") - (home-page "https://github.com/pkg/errors") - (license license:bsd-2))) + (home-page "https://github.com/pkg/errors") + (license license:bsd-2)))) From ea22aa1fafe5d830080ffcacf8aedbe3e3ba1573 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 16 Jul 2019 11:35:31 -0400 Subject: [PATCH 107/161] gnu: Add go-github-com-certifi-gocertifi. * gnu/packages/tls.scm (go-github-com-certifi-gocertifi): New variable. --- gnu/packages/tls.scm | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index ac85b9595c..20dc69282a 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 David Thompson -;;; Copyright © 2015, 2016, 2017, 2018 Leo Famulari +;;; Copyright © 2015, 2016, 2017, 2018, 2019 Leo Famulari ;;; Copyright © 2016, 2017, 2019 Efraim Flashner ;;; Copyright © 2016, 2017, 2018 ng0 ;;; Copyright © 2016 Hartmut Goebel @@ -33,8 +33,10 @@ (define-module (gnu packages tls) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system cmake) @@ -951,3 +953,27 @@ (define-public dehydrated ACME-server (currently only provided by Let's Encrypt) implemented as a relatively simple Bash script.") (license license:expat))) + +(define-public go-github-com-certifi-gocertifi + (let ((commit "d2eda712971317d7dd278bc2a52acda7e945f97e") + (revision "0")) + (package + (name "go-github-com-certifi-gocertifi") + (version (git-version "2018.01.18" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/certifi/gocertifi") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0f3v26xps7gadw4qfmh1kxbpgp0cgqdd61a257xnnvnd7ll6k8dh")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/certifi/gocertifi")) + (synopsis "X.509 TLS root certificate bundle for Go") + (description "This package is a Go language X.509 TLS root certificate bundle, +derived from Mozilla's collection.") + (home-page "https://certifi.io") + (license license:mpl2.0)))) From 8ffc727e38f7cd2c12879b6c926e936655d0a9b6 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 Jul 2019 13:24:48 -0400 Subject: [PATCH 108/161] gnu: go-github-com-getsentry-raven-go: Update to 0.2.0-0.5c24d51. * gnu/packages/golang.scm (go-github-com-getsentry-raven-go): Update to 0.2.0-0.5c24d51. (propagated-inputs): Add go-github-com-certifi-gocertifi and go-github-com-pkg-errors. --- gnu/packages/golang.scm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index ca4fe6d822..821b55de25 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -49,6 +49,7 @@ (define-module (gnu packages golang) #:use-module (gnu packages lua) #:use-module (gnu packages mp3) #:use-module (gnu packages textutils) + #:use-module (gnu packages tls) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) @@ -1362,12 +1363,11 @@ (define-public go-github-com-burntsushi-toml (license license:expat))) (define-public go-github-com-getsentry-raven-go - (let ((commit - "dffeb57df75d6a911f00232155194e43d79d38d7") + (let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92") (revision "0")) (package (name "go-github-com-getsentry-raven-go") - (version (git-version "0.0.0" revision commit)) + (version (git-version "0.2.0" revision commit)) (source (origin (method git-fetch) @@ -1377,14 +1377,16 @@ (define-public go-github-com-getsentry-raven-go (file-name (git-file-name name version)) (sha256 (base32 - "13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja")))) + "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7")))) (build-system go-build-system) (arguments '(#:import-path "github.com/getsentry/raven-go")) - (home-page - "https://github.com/getsentry/raven-go") + (propagated-inputs + `(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi) + ("go-github-com-pkg-errors" ,go-github-com-pkg-errors))) + (home-page "https://github.com/getsentry/raven-go") (synopsis "Sentry client in Go") - (description "This package is Go client API for the Sentry event/error + (description "This package is a Go client API for the Sentry event/error logging system.") (license license:bsd-3)))) From d0ced446d06de2ab58f526f108d4c23de47a4956 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 Jul 2019 13:33:42 -0400 Subject: [PATCH 109/161] gnu: Add go-github-com-maruel-panicparse. * gnu/packages/golang.scm (go-github-com-maruel-panicparse): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 821b55de25..02a7fd15d9 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3610,3 +3610,26 @@ (define-public go-github-com-pkg-errors error handling primitives in Go.") (home-page "https://github.com/pkg/errors") (license license:bsd-2)))) + +(define-public go-github-com-maruel-panicparse + (package + (name "go-github-com-maruel-panicparse") + (version "1.2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/maruel/panicparse") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05hf68ifb7ww4rpmxyywbj9r0kyap45p1273ncq4qy2ydv042l8j")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/maruel/panicparse")) + (synopsis "Toolkit for parsing Go stack traces") + (description "This package provides a toolkit for parsing Go language panic +stack traces. It simplifies the traces to make salient information more visible +and aid debugging.") + (home-page "https://github.com/maruel/panicparse") + (license license:asl2.0))) From e5906bb44054baf1e2f147d38e21fa29fdc94e81 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 Jul 2019 13:34:35 -0400 Subject: [PATCH 110/161] gnu: Go Prometheus tools: Update to 0.9.3. * gnu/packages/syncthing.scm (go-github-com-client-golang-prometheus-promhttp, go-github-com-prometheus-client-golang-prometheus): Update to 0.9.3. --- gnu/packages/syncthing.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 63b8b70658..bee89d57fb 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1027,7 +1027,7 @@ (define-public go-github-com-prometheus-procfs (define-public go-github-com-client-golang-prometheus-promhttp (package (name "go-github-com-client-golang-prometheus-promhttp") - (version "0.9.2") + (version "0.9.3") (source (origin (method git-fetch) (uri (git-reference @@ -1036,7 +1036,7 @@ (define-public go-github-com-client-golang-prometheus-promhttp (file-name (git-file-name name version)) (sha256 (base32 - "02b4yg6rfag0m3j0i39sillcm5xczwv8h133vn12yr8qw04cnigs")))) + "1608rm1y2p3iv8k2x7wyc6hshvpbfkv2k77hy0x870syms1g3g1p")))) (build-system go-build-system) (arguments '(#:tests? #f ; The tests require internet access @@ -1065,7 +1065,7 @@ (define-public go-github-com-client-golang-prometheus-promhttp (define-public go-github-com-prometheus-client-golang-prometheus (package (name "go-github-com-prometheus-client-golang-prometheus") - (version "0.9.2") + (version "0.9.3") (source (origin (method git-fetch) (uri (git-reference @@ -1074,7 +1074,7 @@ (define-public go-github-com-prometheus-client-golang-prometheus (file-name (git-file-name name version)) (sha256 (base32 - "02b4yg6rfag0m3j0i39sillcm5xczwv8h133vn12yr8qw04cnigs")))) + "1608rm1y2p3iv8k2x7wyc6hshvpbfkv2k77hy0x870syms1g3g1p")))) (build-system go-build-system) (arguments '(#:import-path "github.com/prometheus/client_golang/prometheus" From 7cb9c4e2e15ca1f13afd67d2c30d67495ebbea23 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 Jul 2019 13:36:19 -0400 Subject: [PATCH 111/161] gnu: Add go-github-com-audriusbutkevicius-pfilter. * gnu/packages/syncthing.scm (go-github-com-audriusbutkevicius-pfilter): New variable. --- gnu/packages/syncthing.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index bee89d57fb..1f94cdd937 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1200,3 +1200,28 @@ (define-public go-github-com-prometheus-common-internal-bitbucket-org-ww-goauton (description "This package is an internal component of Prometheus.") (home-page "https://github.com/prometheus/common") (license asl2.0))) + +(define-public go-github-com-audriusbutkevicius-pfilter + (let ((commit "c55ef6137fc6f075801eac099cc2687ede0f101d") + (revision "3")) + (package + (name "go-github-com-audriusbutkevicius-pfilter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AudriusButkevicius/pfilter.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xzhwyd0w21bhvzl5pinn22hp0y6h44rh3s2ppql69rafc6zd3c6")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/AudriusButkevicius/pfilter")) + (synopsis "Filter packets into mulitple virtual connections") + (description "Pfilter is a Go package for filtering packets into multiple +virtual connections from a single physical connection.") + (home-page "https://github.com/AudriusButkevicius/pfilter") + (license expat)))) From 48e1cbdf6ed307e8e5dbfd2e7e0731b3432d50a7 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 Jul 2019 13:36:36 -0400 Subject: [PATCH 112/161] gnu: Add go-github-com-ccding-go-stun. * gnu/packages/syncthing.scm (go-github-com-ccding-go-stun): New variable. --- gnu/packages/syncthing.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 1f94cdd937..72bba8ccaa 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1225,3 +1225,28 @@ (define-public go-github-com-audriusbutkevicius-pfilter virtual connections from a single physical connection.") (home-page "https://github.com/AudriusButkevicius/pfilter") (license expat)))) + +(define-public go-github-com-ccding-go-stun + (let ((commit "be486d185f3dfcb2dbf8429332da50a0da7f95a6") + (revision "2")) + (package + (name "go-github-com-ccding-go-stun") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ccding/go-stun.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gr0rw1c1y7wh6913lyn5k4ig023by27i36bly6am8dwgrgp34ww")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/ccding/go-stun")) + (synopsis "STUN client implementation") + (description "Go-stun is a go implementation of the STUN client (RFC 3489 +and RFC 5389).") + (home-page "https://github.com/ccding/go-stun") + (license asl2.0)))) From a93e2392ca787f773e1dbb8fb596352d29c30556 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 Jul 2019 14:08:36 -0400 Subject: [PATCH 113/161] gnu: go-github-com-syndtr-goleveldb: Update to 1.0.1-3.c3a204f. * gnu/packages/syncthing.scm (go-github-com-syndtr-goleveldb): Update to 1.0.1-3.c3a204f. --- gnu/packages/syncthing.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 72bba8ccaa..73652d2783 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -569,11 +569,11 @@ (define-public go-github-com-sasha-s-go-deadlock (license asl2.0))) (define-public go-github-com-syndtr-goleveldb - (let ((commit "34011bf325bce385408353a30b101fe5e923eb6e") - (revision "2")) + (let ((commit "c3a204f8e96543bb0cc090385c001078f184fc46") + (revision "3")) (package (name "go-github-com-syndtr-goleveldb") - (version (git-version "0.0.0" revision commit)) + (version (git-version "1.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -582,7 +582,7 @@ (define-public go-github-com-syndtr-goleveldb (file-name (git-file-name name version)) (sha256 (base32 - "097ja0vyj6p27zrxha9nhk09fj977xsvhmd3bk2hbyvnbw4znnhd")))) + "18cac90dim2z5g28vazzibxa058q2ynihsmf0vbscwzba6l5s5ms")))) (build-system go-build-system) (propagated-inputs `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy))) From 8629d8eda7bdd6cd6d353168af408e335e85d7d9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 Jul 2019 14:08:47 -0400 Subject: [PATCH 114/161] gnu: Prometheus Go client: Update to 0.9.4. * gnu/packages/syncthing.scm (go-github-com-client-golang-prometheus-promhttp, go-github-com-prometheus-client-golang-prometheus): Update to 0.9.4. --- gnu/packages/syncthing.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 73652d2783..c34de3ed21 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1027,7 +1027,7 @@ (define-public go-github-com-prometheus-procfs (define-public go-github-com-client-golang-prometheus-promhttp (package (name "go-github-com-client-golang-prometheus-promhttp") - (version "0.9.3") + (version "0.9.4") (source (origin (method git-fetch) (uri (git-reference @@ -1036,7 +1036,7 @@ (define-public go-github-com-client-golang-prometheus-promhttp (file-name (git-file-name name version)) (sha256 (base32 - "1608rm1y2p3iv8k2x7wyc6hshvpbfkv2k77hy0x870syms1g3g1p")))) + "0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p")))) (build-system go-build-system) (arguments '(#:tests? #f ; The tests require internet access @@ -1065,7 +1065,7 @@ (define-public go-github-com-client-golang-prometheus-promhttp (define-public go-github-com-prometheus-client-golang-prometheus (package (name "go-github-com-prometheus-client-golang-prometheus") - (version "0.9.3") + (version "0.9.4") (source (origin (method git-fetch) (uri (git-reference @@ -1074,7 +1074,7 @@ (define-public go-github-com-prometheus-client-golang-prometheus (file-name (git-file-name name version)) (sha256 (base32 - "1608rm1y2p3iv8k2x7wyc6hshvpbfkv2k77hy0x870syms1g3g1p")))) + "0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p")))) (build-system go-build-system) (arguments '(#:import-path "github.com/prometheus/client_golang/prometheus" From c17e69b3aa4012a1f9f008daecf1cdd7539dd521 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 Jul 2019 14:19:38 -0400 Subject: [PATCH 115/161] gnu: go-gopkg-in-yaml-v2: Update to 2.2.2. * gnu/packages/golang.scm (go-gopkg-in-yaml-v2): Update to 2.2.2. --- gnu/packages/golang.scm | 48 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 02a7fd15d9..5b7814cb75 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1956,32 +1956,30 @@ (define-public go-gopkg-in-check-v1 (license license:asl2.0)))) (define-public go-gopkg-in-yaml-v2 - (let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2") - (revision "0")) - (package - (name "go-gopkg-in-yaml-v2") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gopkg.in/yaml.v2.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah")))) - (build-system go-build-system) - (arguments - '(#:import-path "gopkg.in/yaml.v2")) - (native-inputs - `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1))) - (home-page "https://gopkg.in/yaml.v2") - (synopsis "YAML reader and writer for the Go language") - (description - "This package provides a Go library for encode and decode YAML + (package + (name "go-gopkg-in-yaml-v2") + (version "2.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gopkg.in/yaml.v2.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa")))) + (build-system go-build-system) + (arguments + '(#:import-path "gopkg.in/yaml.v2")) + (native-inputs + `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1))) + (home-page "https://gopkg.in/yaml.v2") + (synopsis "YAML reader and writer for the Go language") + (description + "This package provides a Go library for encode and decode YAML values.") - (license license:asl2.0)))) + (license license:asl2.0))) (define-public go-github-com-mattn-go-isatty (package From a2dbcfdd9d821d84632a74753068127457725be8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 Jul 2019 14:30:17 -0400 Subject: [PATCH 116/161] gnu: go-gopkg-in-check-v1: Update to v1-1.0.0-1.788fd78. * gnu/packages/golang.scm (go-gopkg-in-check-v1): Update to v1-1.0.0-1.788fd78. --- gnu/packages/golang.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 5b7814cb75..2a39a7de86 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1931,11 +1931,11 @@ (define-public go-github-com-gorhill-cronexpr license:asl2.0))))) (define-public go-gopkg-in-check-v1 - (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec") - (revision "0")) + (let ((commit "788fd78401277ebd861206a03c884797c6ec5541") + (revision "1")) (package (name "go-gopkg-in-check-v1") - (version (git-version "0.0.0" revision commit)) + (version (git-version "1.0.0" revision commit)) (source (origin (method git-fetch) @@ -1945,14 +1945,15 @@ (define-public go-gopkg-in-check-v1 (file-name (git-file-name name version)) (sha256 (base32 - "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np")))) + "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a")))) (build-system go-build-system) (arguments '(#:import-path "gopkg.in/check.v1")) + (propagated-inputs + `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty))) (home-page "https://gopkg.in/check.v1") (synopsis "Test framework for the Go language") - (description - "This package provides a test library for the Go language.") + (description "This package provides a test library for the Go language.") (license license:asl2.0)))) (define-public go-gopkg-in-yaml-v2 From 957e6f72895a32a162009fe3afedc602ec76028a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 17 Jul 2019 14:41:55 -0400 Subject: [PATCH 117/161] gnu: Go standard 'sys' packages: Update to 0.0.0-3.5ed2794. * gnu/packages/golang.scm (go-golang-org-x-sys-unix, go-golang-org-x-sys-cpu): Update to 0.0.0-3.5ed2794. --- gnu/packages/golang.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2a39a7de86..90795544b1 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1214,8 +1214,8 @@ (define-public go-golang-org-x-net-proxy (license license:bsd-3)))) (define-public go-golang-org-x-sys-unix - (let ((commit "4d1cda033e0619309c606fc686de3adcf599539e") - (revision "2")) + (let ((commit "5ed2794edfdc1c54dfb61d619c5944285f35d444") + (revision "3")) (package (name "go-golang-org-x-sys-unix") (version (git-version "0.0.0" revision commit)) @@ -1227,7 +1227,7 @@ (define-public go-golang-org-x-sys-unix (file-name (git-file-name name version)) (sha256 (base32 - "1wgaldbnkmh568v8kkgvnmkskaj96fqrbzhx23yji2kh1432q6gh")))) + "1qy8hmv5nwpcywk7sh1pg0s32jwpd4ykh492xzl4mmxy8galwsr5")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/sys/unix" From 307f2c44af9ade94c7cfaa44c2116a8e6e107f22 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 21 Jul 2019 01:20:53 -0400 Subject: [PATCH 118/161] gnu: Go standard library 'net' packages: Update to 0.0.0-3.d28f0bd. * gnu/packages/golang.scm (go-golang-org-x-net-ipv4, go-golang-org-x-net-bpf, go-golang-org-x-net-context, go-golang-org-x-net-internal-socks, go-golang-org-x-net-internal-socket, go-golang-org-x-net-internal-iana, go-golang-org-x-net-ipv6, go-golang-org-x-net-proxy): Update to 0.0.0-3.d28f0bd. (go-golang-org-x-net-ipv4, go-golang-org-x-net-bpf, go-golang-org-x-net-internal-socket, go-golang-org-x-net-ipv6)[propagated-inputs]: Add go-golang-org-x-sys-unix --- gnu/packages/golang.scm | 56 +++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 90795544b1..4a3b42f438 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1008,8 +1008,8 @@ (define-public go-golang-org-x-crypto-sha3 functions defined by FIPS-202."))) (define-public go-golang-org-x-net-ipv4 - (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0") - (revision "2")) + (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99") + (revision "3")) (package (name "go-golang-org-x-net-ipv4") (version (git-version "0.0.0" revision commit)) @@ -1021,11 +1021,13 @@ (define-public go-golang-org-x-net-ipv4 (file-name (git-file-name name version)) (sha256 (base32 - "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k")))) + "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/ipv4" #:unpack-path "golang.org/x/net")) + (propagated-inputs + `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) (synopsis "Go IPv4 support") (description "This package provides @code{ipv4}, which implements IP-level socket options for the Internet Protocol version 4.") @@ -1033,8 +1035,8 @@ (define-public go-golang-org-x-net-ipv4 (license license:bsd-3)))) (define-public go-golang-org-x-net-bpf - (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0") - (revision "2")) + (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99") + (revision "3")) (package (name "go-golang-org-x-net-bpf") (version (git-version "0.0.0" revision commit)) @@ -1047,11 +1049,13 @@ (define-public go-golang-org-x-net-bpf version "-checkout")) (sha256 (base32 - "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k")))) + "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/bpf" #:unpack-path "golang.org/x/net")) + (propagated-inputs + `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) (synopsis "Berkeley Packet Filters (BPF) in Go") (description "This package provides a Go implementation of the Berkeley Packet Filter (BPF) virtual machine.") @@ -1059,8 +1063,8 @@ (define-public go-golang-org-x-net-bpf (license license:bsd-3)))) (define-public go-golang-org-x-net-context - (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0") - (revision "2")) + (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99") + (revision "3")) (package (name "go-golang-org-x-net-context") (version (git-version "0.0.0" revision commit)) @@ -1073,7 +1077,7 @@ (define-public go-golang-org-x-net-context version "-checkout")) (sha256 (base32 - "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k")))) + "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/context" @@ -1086,8 +1090,8 @@ (define-public go-golang-org-x-net-context (license license:bsd-3)))) (define-public go-golang-org-x-net-internal-socks - (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0") - (revision "2")) + (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99") + (revision "3")) (package (name "go-golang-org-x-net-internal-socks") (version (git-version "0.0.0" revision commit)) @@ -1100,7 +1104,7 @@ (define-public go-golang-org-x-net-internal-socks version "-checkout")) (sha256 (base32 - "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k")))) + "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/internal/socks" @@ -1111,8 +1115,8 @@ (define-public go-golang-org-x-net-internal-socks (license license:bsd-3)))) (define-public go-golang-org-x-net-internal-socket - (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0") - (revision "2")) + (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99") + (revision "3")) (package (name "go-golang-org-x-net-internal-socket") (version (git-version "0.0.0" revision commit)) @@ -1125,19 +1129,21 @@ (define-public go-golang-org-x-net-internal-socket version "-checkout")) (sha256 (base32 - "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k")))) + "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/internal/socket" #:unpack-path "golang.org/x/net")) + (propagated-inputs + `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) (synopsis "") (description "") (home-page "https://go.googlesource.com/net/") (license license:bsd-3)))) (define-public go-golang-org-x-net-internal-iana - (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0") - (revision "2")) + (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99") + (revision "3")) (package (name "go-golang-org-x-net-internal-iana") (version (git-version "0.0.0" revision commit)) @@ -1150,7 +1156,7 @@ (define-public go-golang-org-x-net-internal-iana version "-checkout")) (sha256 (base32 - "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k")))) + "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/internal/iana" @@ -1162,8 +1168,8 @@ (define-public go-golang-org-x-net-internal-iana (license license:bsd-3)))) (define-public go-golang-org-x-net-ipv6 - (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0") - (revision "2")) + (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99") + (revision "3")) (package (name "go-golang-org-x-net-ipv6") (version (git-version "0.0.0" revision commit)) @@ -1176,11 +1182,13 @@ (define-public go-golang-org-x-net-ipv6 version "-checkout")) (sha256 (base32 - "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k")))) + "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/ipv6" #:unpack-path "golang.org/x/net")) + (propagated-inputs + `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) (synopsis "Go IPv6 support") (description "This package provides @code{ipv6}, which implements IP-level socket options for the Internet Protocol version 6.") @@ -1188,8 +1196,8 @@ (define-public go-golang-org-x-net-ipv6 (license license:bsd-3)))) (define-public go-golang-org-x-net-proxy - (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0") - (revision "2")) + (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99") + (revision "3")) (package (name "go-golang-org-x-net-proxy") (version (git-version "0.0.0" revision commit)) @@ -1202,7 +1210,7 @@ (define-public go-golang-org-x-net-proxy version "-checkout")) (sha256 (base32 - "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k")))) + "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/proxy" From 371b70429919850d8eed0151be82e84673f806a4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 24 Jul 2019 12:06:51 -0400 Subject: [PATCH 119/161] gnu: go-github-com-prometheus-client-model-go: Update to 0.0.2-1.fd36f42. * gnu/packages/syncthing.scm (go-github-com-prometheus-client-model-go): Update to 0.0.2-1.fd36f42. --- gnu/packages/syncthing.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index c34de3ed21..a18121c598 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -868,8 +868,8 @@ (define-public go-github-com-golang-protobuf-proto (license bsd-3)))) (define-public go-github-com-prometheus-client-model-go - (let ((commit "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c") - (revision "0")) + (let ((commit "fd36f4220a901265f90734c3183c5f0c91daa0b8") + (revision "1")) (package (name "go-github-com-prometheus-client-model-go") (version (git-version "0.0.2" revision commit)) @@ -881,7 +881,7 @@ (define-public go-github-com-prometheus-client-model-go (file-name (git-file-name name version)) (sha256 (base32 - "19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998")))) + "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5")))) (build-system go-build-system) (arguments '(#:import-path "github.com/prometheus/client_model/go" From a85a78eb249d33a1d8cc4ac9de6b2db0c34b932b Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 24 Jul 2019 12:08:51 -0400 Subject: [PATCH 120/161] gnu: go-github-com-golang-protobuf-proto: Update to 1.3.1. * gnu/packages/syncthing.scm (go-github-com-golang-protobuf-proto): Update to 1.3.1. --- gnu/packages/syncthing.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index a18121c598..256cd2429c 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -841,20 +841,18 @@ (define-public go-github-com-beorn7-perks-quantile (license expat)))) (define-public go-github-com-golang-protobuf-proto - (let ((commit "1e59b77b52bf8e4b449a57e6f79f21226d571845") - (revision "0")) (package (name "go-github-com-golang-protobuf-proto") - (version (git-version "0.0.0" revision commit)) + (version "1.3.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/golang/protobuf.git") - (commit commit))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8")))) + "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl")))) (build-system go-build-system) (arguments '(#:import-path "github.com/golang/protobuf/proto" @@ -865,7 +863,7 @@ (define-public go-github-com-golang-protobuf-proto (description "This package provides Go support for the Protocol Buffers data serialization format.") (home-page "https://github.com/golang/protobuf") - (license bsd-3)))) + (license bsd-3))) (define-public go-github-com-prometheus-client-model-go (let ((commit "fd36f4220a901265f90734c3183c5f0c91daa0b8") From eebf6380a49864dab520d75d2acc2a32c37fe1f6 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 24 Jul 2019 12:10:32 -0400 Subject: [PATCH 121/161] gnu: go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg: Update to 0.4.1. * gnu/packages/syncthing.scm (go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg): Update to 0.4.1. --- gnu/packages/syncthing.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 256cd2429c..c11f0ad92c 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1180,7 +1180,7 @@ (define-public go-github-com-flynn-archive-go-shlex (define-public go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg (package (name "go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg") - (version "0.2.0") + (version "0.4.1") (source (origin (method git-fetch) (uri (git-reference @@ -1189,7 +1189,7 @@ (define-public go-github-com-prometheus-common-internal-bitbucket-org-ww-goauton (file-name (git-file-name name version)) (sha256 (base32 - "02kym6lcfnlq23qbv277jr0q1n7jj0r14gqg93c7wn7gc44jv3vp")))) + "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s")))) (build-system go-build-system) (arguments '(#:import-path "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg" From 2cdfaa026369d0dfc5760423ecffe27deb97c2d5 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 24 Jul 2019 12:13:37 -0400 Subject: [PATCH 122/161] gnu: go-github-com-prometheus-procfs: Update to 0.0.3. * gnu/packages/syncthing.scm (go-github-com-prometheus-procfs): Update to 0.0.3. [arguments]: Skip the tests. --- gnu/packages/syncthing.scm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index c11f0ad92c..1f10c02555 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -999,28 +999,29 @@ (define-public go-github-com-prometheus-common-model (license asl2.0)))) (define-public go-github-com-prometheus-procfs - (let ((commit "b15cd069a83443be3154b719d0cc9fe8117f09fb") - (revision "0")) (package (name "go-github-com-prometheus-procfs") - (version (git-version "0.0.0" revision commit)) + (version "0.0.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/procfs.git") - (commit commit))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1cr45wg2m40bj2za8f32mq09rjlcnk5kfam0h0hr8wcb015k4wxj")))) + "18c4m795fwng8f8qa395f3crvamlbk5y5afk8b5rzyisnmjq774y")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/prometheus/procfs")) + '(#:import-path "github.com/prometheus/procfs" + ;; The tests require Go modules, which are not yet supported in Guix's + ;; Go build system. + #:tests? #f)) (synopsis "Go library for reading @file{/proc}") (description "The @code{procfs} Go package provides functions to retrieve system, kernel, and process metrics from the @file{/proc} pseudo file system.") (home-page "https://github.com/prometheus/procfs") - (license asl2.0)))) + (license asl2.0))) (define-public go-github-com-client-golang-prometheus-promhttp (package From 695d2a3326cb45b0097b9d457e15c2b31e6aff40 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 24 Jul 2019 12:14:21 -0400 Subject: [PATCH 123/161] gnu: go-github-com-prometheus-common-model: Update to 0.4.1. * gnu/packages/syncthing.scm (go-github-com-prometheus-common-model): Update to 0.4.1. --- gnu/packages/syncthing.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 1f10c02555..c89687b864 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -974,20 +974,18 @@ (define-public go-github-com-prometheus-common-expfmt (license asl2.0)))) (define-public go-github-com-prometheus-common-model - (let ((commit "2e54d0b93cba2fd133edc32211dcc32c06ef72ca") - (revision "0")) (package (name "go-github-com-prometheus-common-model") - (version (git-version "0.0.0" revision commit)) + (version "0.4.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/common.git") - (commit commit))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "14kn5w7imcxxlfdqxl21fsnlf1ms7200g3ldy29hwamldv8qlm7j")))) + "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s")))) (build-system go-build-system) (arguments '(#:import-path "github.com/prometheus/common/model" @@ -996,7 +994,7 @@ (define-public go-github-com-prometheus-common-model (description "This package provides a component of the Go Prometheus implementation.") (home-page "https://github.com/prometheus/common") - (license asl2.0)))) + (license asl2.0))) (define-public go-github-com-prometheus-procfs (package From 20470893ea8919f59384bd1c68df7f968d8c0f57 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 24 Jul 2019 12:14:46 -0400 Subject: [PATCH 124/161] gnu: go-github-com-prometheus-common-expfmt: Update to 0.4.1. * gnu/packages/syncthing.scm (go-github-com-prometheus-common-expfmt): Update to 0.4.1. --- gnu/packages/syncthing.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index c89687b864..9f9f7567b4 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -924,20 +924,18 @@ (define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil (license asl2.0)))) (define-public go-github-com-prometheus-common-expfmt - (let ((commit "2e54d0b93cba2fd133edc32211dcc32c06ef72ca") - (revision "0")) (package (name "go-github-com-prometheus-common-expfmt") - (version (git-version "0.0.0" revision commit)) + (version "0.4.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/common.git") - (commit commit))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "14kn5w7imcxxlfdqxl21fsnlf1ms7200g3ldy29hwamldv8qlm7j")))) + "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s")))) (build-system go-build-system) (arguments '(#:import-path "github.com/prometheus/common/expfmt" @@ -971,7 +969,7 @@ (define-public go-github-com-prometheus-common-expfmt (description "This package provides tools for reading and writing Prometheus metrics.") (home-page "https://github.com/prometheus/common") - (license asl2.0)))) + (license asl2.0))) (define-public go-github-com-prometheus-common-model (package From 0c3c597d2ed649005798f670b13755ee55e6dc9a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 25 Jul 2019 12:51:13 -0400 Subject: [PATCH 125/161] gnu: Update default Go compiler to Go 1.12. * gnu/packages/golang.scm (go): Update to go-1.12. * guix/build/go-build-system.scm (setup-go-environment): Set $GOCACHE. --- gnu/packages/golang.scm | 2 +- guix/build/go-build-system.scm | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 4a3b42f438..c67ef036ee 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -584,7 +584,7 @@ (define-public go-1.12 ,@(package-native-inputs go-1.4))) (supported-systems %supported-systems))) -(define-public go go-1.11) +(define-public go go-1.12) (define-public go-github-com-alsm-ioprogress (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5") diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm index 858068ba98..3dac43c18a 100644 --- a/guix/build/go-build-system.scm +++ b/guix/build/go-build-system.scm @@ -135,6 +135,9 @@ (define* (setup-go-environment #:key inputs outputs #:allow-other-keys) where executables (\"commands\") are installed to. This phase is sometimes used by packages that use (guix build-system gnu) but have a handful of Go dependencies, so it should be self-contained." + ;; The Go cache is required starting in Go 1.12. We don't actually use it but + ;; we need it to be a writable directory. + (setenv "GOCACHE" "/tmp/go-cache") ;; Using the current working directory as GOPATH makes it easier for packagers ;; who need to manipulate the unpacked source code. (setenv "GOPATH" (getcwd)) From 18c4b0a27705773e423fb17310394204b7295d4a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 24 Jul 2019 12:17:37 -0400 Subject: [PATCH 126/161] gnu: Syncthing: Update to 1.2.0. * gnu/packages/syncthing.scm (syncthing): Update to 1.2.0. [inputs]: Remove go-golang-org-x-crypto-bcrypt and go-golang-org-x-crypto-blowfish. Add go-golang-org-x-crypto, go-github-com-getsentry-raven-go, go-github-com-maruel-panicparse, go-github-com-ccding-go-stun, go-github-com-audriusbutkevicius-pfilter, and go-github-com-lucas-clemente-quic-go. --- gnu/packages/syncthing.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 9f9f7567b4..c35ee8639c 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -30,7 +30,7 @@ (define-module (gnu packages syncthing) (define-public syncthing (package (name "syncthing") - (version "1.1.4") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/syncthing/syncthing" @@ -38,7 +38,7 @@ (define-public syncthing "/syncthing-source-v" version ".tar.gz")) (sha256 (base32 - "0pkb9vdb10lnlk6sgg6hxgkdjnvxx90cfdf8vgrc5sljzm5qhr6l")) + "1l7crhggg2vq4y7pgzsj8wp7k4l9hw5yblflly5bzwywzxz8ff83")) (modules '((guix build utils))) ;; Delete bundled ("vendored") free software source code. (snippet '(begin @@ -102,10 +102,14 @@ (define-public syncthing ("go-github-com-vitrun-qart-coding" ,go-github-com-vitrun-qart-coding) ("go-github-com-vitrun-qart-gf256" ,go-github-com-vitrun-qart-gf256) ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty) - ("go-golang-org-x-crypto-bcrypt" ,go-golang-org-x-crypto-bcrypt) - ("go-golang-org-x-crypto-blowfish" ,go-golang-org-x-crypto-blowfish) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) ("go-github-com-flynn-archive-go-shlex" ,go-github-com-flynn-archive-go-shlex) + ("go-github-com-getsentry-raven-go" ,go-github-com-getsentry-raven-go) + ("go-github-com-maruel-panicparse" ,go-github-com-maruel-panicparse) + ("go-github-com-ccding-go-stun" ,go-github-com-ccding-go-stun) + ("go-github-com-audriusbutkevicius-pfilter" ,go-github-com-audriusbutkevicius-pfilter) + ("go-github-com-lucas-clemente-quic-go" ,go-github-com-lucas-clemente-quic-go) ;; For tests ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff))) From be27b8f2e14ed0fb837677f2de8eb4d9da2c6c1f Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Tue, 30 Jul 2019 10:47:52 +0200 Subject: [PATCH 127/161] gnu: youtube-dl: Update to 2019.07.30. * gnu/packages/video.scm (youtube-dl): Update to 2019.07.30. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 51ff7fa97a..544e305771 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1480,7 +1480,7 @@ (define-public libvpx-1.7 (define-public youtube-dl (package (name "youtube-dl") - (version "2019.07.16") + (version "2019.07.30") (source (origin (method url-fetch) (uri (string-append "https://github.com/rg3/youtube-dl/releases/" @@ -1488,7 +1488,7 @@ (define-public youtube-dl version ".tar.gz")) (sha256 (base32 - "06qd6z9swx8aw9v7vi85q44hmzxgy8wx18a9ljfhx7l7wjpm99ky")))) + "0nb5xvq4aq0az8y5wb54zp5q4qzfhs7rcb39yp6j5q8jyjp9kzwy")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion From 983906bb959926d31f7ed3f3db8c06de0fa0cba9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 12:16:58 +0200 Subject: [PATCH 128/161] gnu: Add r-d3r. * gnu/packages/cran.scm (r-d3r): New variable. --- gnu/packages/cran.scm | 81 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 1383ab067f..48570b5807 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -822,6 +822,87 @@ (define-public r-shinyfiles well as file saving is available.") (license license:gpl2+))) +;; The package sources include minified variants of d3.js and non-minified +;; source code of d3-jetpack. +(define-public r-d3r + (package + (name "r-d3r") + (version "0.8.6") + (source + (origin + (method url-fetch) + (uri (cran-uri "d3r" version)) + (sha256 + (base32 + "0vcmiyhd000xyl28k6rm7ba50x5sz5b2cpllxnq36q13qhdnqw6k")))) + (build-system r-build-system) + (arguments + `(#:modules ((guix build utils) + (guix build r-build-system) + (srfi srfi-1) + (ice-9 popen)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'process-javascript + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "inst/www/d3/" + (call-with-values + (lambda () + (unzip2 + `((,(assoc-ref inputs "d3.v3.js") + "v3/dist/d3.min.js") + (,(assoc-ref inputs "d3.v4.js") + "v4/dist/d3.min.js") + (,(assoc-ref inputs "d3.v5.js") + "v5/dist/d3.min.js")))) + (lambda (sources targets) + (for-each (lambda (source target) + (format #t "Processing ~a --> ~a~%" + source target) + (delete-file target) + (let ((minified (open-pipe* OPEN_READ "uglify-js" source))) + (call-with-output-file target + (lambda (port) + (dump-port minified port))))) + sources targets)))) + #t))))) + (propagated-inputs + `(("r-dplyr" ,r-dplyr) + ("r-htmltools" ,r-htmltools) + ("r-tidyr" ,r-tidyr))) + (native-inputs + `(("uglify-js" ,uglify-js) + ("d3.v3.js" + ,(origin + (method url-fetch) + (uri "https://d3js.org/d3.v3.js") + (sha256 + (base32 + "1arr7sr08vy7wh0nvip2mi7dpyjw4576vf3bm45rp4g5lc1k1x41")))) + ("d3.v4.js" + ,(origin + (method url-fetch) + (uri "https://d3js.org/d3.v4.js") + (sha256 + (base32 + "0y7byf6kcinfz9ac59jxc4v6kppdazmnyqfav0dm4h550fzfqqlg")))) + ("d3.v5.js" + ,(origin + (method url-fetch) + (uri "https://d3js.org/d3.v5.js") + (sha256 + (base32 + "0kxvx5pfagxn6nhavdwsdnzyd26g0z5dsfi1pi5dvcmb0c8ipcdn")))))) + (home-page "https://github.com/timelyportfolio/d3r") + (synopsis "d3.js utilities for R") + (description + "This package provides a suite of functions to help ease the use of the +d3.js visualization library in R. These helpers include +@code{htmltools::htmlDependency} functions, hierarchy builders, and conversion +tools for @code{partykit}, @code{igraph}, @code{table}, and @code{data.frame} +R objects into the JSON format that the d3.js library expects.") + (license license:bsd-3))) + (define-public r-crosstalk (package (name "r-crosstalk") From b03dd5cfc099426c5cb22477c3d75f7076c3bedd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 12:17:14 +0200 Subject: [PATCH 129/161] gnu: Add r-sankeyd3. * gnu/packages/cran.scm (r-sankeyd3): New variable. --- gnu/packages/cran.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 48570b5807..426f054eee 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -903,6 +903,40 @@ (define-public r-d3r R objects into the JSON format that the d3.js library expects.") (license license:bsd-3))) +;; We use the latest commit here because the last release was in 2016 while +;; the latest commit was in 2018. +(define-public r-sankeyd3 + (let ((commit "fd50a74e29056e0d67d75b4d04de47afb2f932bc") + (revision "1")) + (package + (name "r-sankeyd3") + (version (git-version "0.3.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fbreitwieser/sankeyD3.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jrcnfax321pszbpjdifnkbrgbjr43bjzvlzv1p5a8wskksqwiyx")))) + (build-system r-build-system) + (propagated-inputs + `(("r-d3r" ,r-d3r) + ("r-htmlwidgets" ,r-htmlwidgets) + ("r-shiny" ,r-shiny) + ("r-magrittr" ,r-magrittr))) + (home-page "https://github.com/fbreitwieser/sankeyD3") + (synopsis "Sankey network graphs from R") + (description + "This package provides an R library to generate Sankey network graphs +in R and Shiny via the D3 visualization library.") + ;; The R code is licensed under GPLv3+. It includes the non-minified + ;; JavaScript source code of d3-sankey, which is released under the + ;; 3-clause BSD license. + (license (list license:gpl3+ license:bsd-3))))) + (define-public r-crosstalk (package (name "r-crosstalk") From 79f04920b220661dd0d31a40ca60b536c86d4d5e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 15:22:33 +0200 Subject: [PATCH 130/161] gnu: Add r-glasso. * gnu/packages/cran.scm (r-glasso): New variable. --- gnu/packages/cran.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 426f054eee..ac9dfa2535 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -14708,3 +14708,24 @@ (define-public r-kableextra generated by @code{kable()} and allows users to construct complex tables and customize styles using a readable syntax.") (license license:expat))) + +(define-public r-glasso + (package + (name "r-glasso") + (version "1.10") + (source + (origin + (method url-fetch) + (uri (cran-uri "glasso" version)) + (sha256 + (base32 + "0nshpx14v2yny7lr8ll6nnz71n0f02sddh2c2dglfprbk89p9yp6")))) + (build-system r-build-system) + (native-inputs `(("gfortran" ,gfortran))) + (home-page "http://www-stat.stanford.edu/~tibs/glasso") + (synopsis "Graphical Lasso: estimation of Gaussian graphical models") + (description + "This is a package for estimation of a sparse inverse covariance matrix +using a lasso (L1) penalty. Facilities are provided for estimates along a +path of values for the regularization parameter.") + (license license:gpl2))) From b46a0ee7532639817fe846233a75c758a9e7b963 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 15:22:40 +0200 Subject: [PATCH 131/161] gnu: Add r-cicero. * gnu/packages/bioconductor.scm (r-cicero): New variable. --- gnu/packages/bioconductor.scm | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 2f2a60ad19..98a2da21c9 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -5024,3 +5024,44 @@ (define-public r-depecher by a sparse number of variables, this method can reduce the complexity of data, to only emphasize the data that actually matters.") (license license:expat))) + +(define-public r-cicero + (package + (name "r-cicero") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "cicero" version)) + (sha256 + (base32 + "0f15l8zrh7l7nnvznb66116hvfk15djb9q240vbscm2w0y5fvkcr")))) + (build-system r-build-system) + (propagated-inputs + `(("r-assertthat" ,r-assertthat) + ("r-biobase" ,r-biobase) + ("r-biocgenerics" ,r-biocgenerics) + ("r-data-table" ,r-data-table) + ("r-dplyr" ,r-dplyr) + ("r-fnn" ,r-fnn) + ("r-genomicranges" ,r-genomicranges) + ("r-ggplot2" ,r-ggplot2) + ("r-glasso" ,r-glasso) + ("r-gviz" ,r-gviz) + ("r-igraph" ,r-igraph) + ("r-iranges" ,r-iranges) + ("r-matrix" ,r-matrix) + ("r-monocle" ,r-monocle) + ("r-plyr" ,r-plyr) + ("r-reshape2" ,r-reshape2) + ("r-s4vectors" ,r-s4vectors) + ("r-stringr" ,r-stringr) + ("r-tibble" ,r-tibble) + ("r-vgam" ,r-vgam))) + (home-page "https://bioconductor.org/packages/cicero/") + (synopsis "Predict cis-co-accessibility from single-cell data") + (description + "Cicero computes putative cis-regulatory maps from single-cell chromatin +accessibility data. It also extends the monocle package for use in chromatin +accessibility data.") + (license license:expat))) From 37120e7a2385cc6a4e5a3c955df810ed0e0b88aa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 15:50:10 +0200 Subject: [PATCH 132/161] gnu: Add r-rhpcblasctl. * gnu/packages/cran.scm (r-rhpcblasctl): New variable. --- gnu/packages/cran.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index ac9dfa2535..9eec520b8f 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -14729,3 +14729,24 @@ (define-public r-glasso using a lasso (L1) penalty. Facilities are provided for estimates along a path of values for the regularization parameter.") (license license:gpl2))) + +(define-public r-rhpcblasctl + (package + (name "r-rhpcblasctl") + (version "0.18-205") + (source + (origin + (method url-fetch) + (uri (cran-uri "RhpcBLASctl" version)) + (sha256 + (base32 + "1ls2286fvrp1g7p8v4l6axznychh3qndranfpzqz806cm9ml1cdp")))) + (properties `((upstream-name . "RhpcBLASctl"))) + (build-system r-build-system) + (home-page "http://prs.ism.ac.jp/~nakama/Rhpc/") + (synopsis "Control the number of threads on BLAS") + (description + "This package allows you to control the number of threads the BLAS +library uses. It is also possible to control the number of threads in +OpenMP.") + (license license:agpl3+))) From 3e63f078daf1fa78966cb9d050b870ca32cbb367 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 15:50:20 +0200 Subject: [PATCH 133/161] gnu: Add r-pbmcapply. * gnu/packages/cran.scm (r-pbmcapply): New variable. --- gnu/packages/cran.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 9eec520b8f..ab5c94d766 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -14314,6 +14314,25 @@ (define-public r-scrime the functions can also be applied to other types of categorical data.") (license license:gpl2))) +(define-public r-pbmcapply + (package + (name "r-pbmcapply") + (version "1.5.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "pbmcapply" version)) + (sha256 + (base32 + "0i58gcqpnbyvc448qfgm45b7rpbmrnagsvk1h1hsqchbbicfslnz")))) + (build-system r-build-system) + (home-page "https://github.com/kvnkuang/pbmcapply") + (synopsis "Track the progress of apply procedures with a progress bar") + (description + "This light-weight package helps you track and visualize the progress of +parallel versions of vectorized R functions of the @code{mc*apply} family.") + (license license:expat))) + (define-public r-blme (package (name "r-blme") From 8f7d7cd05fb79a00221f91de8f612ed947a2c6df Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 15:50:35 +0200 Subject: [PATCH 134/161] gnu: Add r-speedglm. * gnu/packages/cran.scm (r-speedglm): New variable. --- gnu/packages/cran.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index ab5c94d766..8d3086a30b 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -9394,6 +9394,29 @@ (define-public r-sparsesvd ;; BSD-3. (license (list license:bsd-3 license:bsd-2)))) +(define-public r-speedglm + (package + (name "r-speedglm") + (version "0.3-2") + (source + (origin + (method url-fetch) + (uri (cran-uri "speedglm" version)) + (sha256 + (base32 + "1b25zimk0z7ad62yacqdg0zk0qs0jja4i918ym942xfw4j1z3jjz")))) + (build-system r-build-system) + (propagated-inputs + `(("r-mass" ,r-mass) + ("r-matrix" ,r-matrix))) + (home-page "https://cran.r-project.org/web/packages/speedglm") + (synopsis "Fit linear and generalized linear models to large data sets") + (description + "This package provides tools for fitting linear models and generalized +linear models to large data sets by updating algorithms.") + ;; Any version of the GPL + (license license:gpl2+))) + (define-public r-densityclust (package (name "r-densityclust") From c4a5ce4648f9b5b69849b9d6b1d63367f5ce7aa0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 15:50:42 +0200 Subject: [PATCH 135/161] gnu: Add r-rcppparallel. * gnu/packages/cran.scm (r-rcppparallel): New variable. --- gnu/packages/cran.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 8d3086a30b..2980020c6f 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -8790,6 +8790,29 @@ (define-public r-rcpphnsw ;; hnswlib is released under Version 2.0 of the Apache License. (license (list license:gpl3 license:asl2.0)))) +(define-public r-rcppparallel + (package + (name "r-rcppparallel") + (version "4.4.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "RcppParallel" version)) + (sha256 + (base32 + "1ym0bzs9g6bsg2lz24fisxxa3gypr6xcvrczn304czmrrag9413s")))) + (properties `((upstream-name . "RcppParallel"))) + (build-system r-build-system) + (home-page "http://rcppcore.github.io/RcppParallel") + (synopsis "Parallel programming tools for Rcpp") + (description + "This package provides high level functions for parallel programming with +Rcpp. For example, the @code{parallelFor()} function can be used to convert +the work of a standard serial @code{for} loop into a parallel one and the +@code{parallelReduce()} function can be used for accumulating aggregates or +other values.") + (license license:gpl2))) + (define-public r-ncdf4 (package (name "r-ncdf4") From 0b2883e1f61a5e29068c1eaa6d74dd1eb1f26049 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 15:51:34 +0200 Subject: [PATCH 136/161] gnu: Add r-grr. * gnu/packages/cran.scm (r-grr): New variable. --- gnu/packages/cran.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 2980020c6f..0f77cde5ae 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -118,6 +118,26 @@ (define-public r-ellipsis are not used.") (license license:gpl3))) +(define-public r-grr + (package + (name "r-grr") + (version "0.9.5") + (source + (origin + (method url-fetch) + (uri (cran-uri "grr" version)) + (sha256 + (base32 + "0arbcgrvhkwb5xk4nry1ffg2qj0v8ivhjghdr505ib4357g0c9i9")))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/web/packages/grr") + (synopsis "Alternative implementations of base R functions") + (description + "This package provides alternative implementations of some base R +functions, including @code{sort}, @code{order}, and @code{match}. The +functions are simplified but can be faster or have other advantages.") + (license license:gpl3))) + (define-public r-sys (package (name "r-sys") From cf51d895f3b13a501e0f1b592fac79a7bb16e49f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 15:51:42 +0200 Subject: [PATCH 137/161] gnu: Add r-matrix-utils. * gnu/packages/cran.scm (r-matrix-utils): New variable. --- gnu/packages/cran.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 0f77cde5ae..787aa01bc0 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -138,6 +138,31 @@ (define-public r-grr functions are simplified but can be faster or have other advantages.") (license license:gpl3))) +(define-public r-matrix-utils + (package + (name "r-matrix-utils") + (version "0.9.7") + (source + (origin + (method url-fetch) + (uri (cran-uri "Matrix.utils" version)) + (sha256 + (base32 + "1x64r4aj3gy1dzjjysyrk1j9jq3qsnyrqws8i6bs7q8pf6gvr7va")))) + (properties `((upstream-name . "Matrix.utils"))) + (build-system r-build-system) + (propagated-inputs + `(("r-grr" ,r-grr) + ("r-matrix" ,r-matrix))) + (home-page "https://github.com/cvarrichio/Matrix.utils") + (synopsis + "Data.frame-Like Operations on Sparse and Dense Matrix Objects") + (description + "This package implements data manipulation methods such as @code{cast}, +@code{aggregate}, and @code{merge}/@code{join} for Matrix and Matrix-like +objects.") + (license license:gpl3))) + (define-public r-sys (package (name "r-sys") From 86c46d712012a55e409770330146117ce05d86c1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 15:52:07 +0200 Subject: [PATCH 138/161] gnu: Add r-uwot. * gnu/packages/cran.scm (r-uwot): New variable. --- gnu/packages/cran.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 787aa01bc0..3bd0d664da 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -14780,6 +14780,38 @@ (define-public r-umap in R, including a translation of the original algorithm into R.") (license license:expat))) +(define-public r-uwot + (package + (name "r-uwot") + (version "0.1.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "uwot" version)) + (sha256 + (base32 + "1mq6qi8q9xslh1b99srj480s2a08pfv4bs9m2ykyijj44j9fcdj9")))) + (build-system r-build-system) + (propagated-inputs + `(("r-dqrng" ,r-dqrng) + ("r-fnn" ,r-fnn) + ("r-irlba" ,r-irlba) + ("r-matrix" ,r-matrix) + ("r-rcpp" ,r-rcpp) + ("r-rcppannoy" ,r-rcppannoy) + ("r-rcppparallel" ,r-rcppparallel) + ("r-rcppprogress" ,r-rcppprogress) + ("r-rspectra" ,r-rspectra))) + (home-page "https://github.com/jlmelville/uwot") + (synopsis "Uniform manifold approximation and projection") + (description + "This package provides an implementation of the Uniform Manifold +Approximation and Projection dimensionality reduction by McInnes et +al. (2018). It also provides means to transform new data and to carry out +supervised dimensionality reduction. An implementation of the related +LargeVis method of Tang et al. (2016) is also provided.") + (license license:gpl3))) + (define-public r-kableextra (package (name "r-kableextra") From b2dce6b5a2eecb9e20e5ee03779c020b2644666b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 30 Jul 2019 15:52:48 +0200 Subject: [PATCH 139/161] gnu: Add r-monocle3. * gnu/packages/bioconductor.scm (r-monocle3): New variable. --- gnu/packages/bioconductor.scm | 63 +++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 98a2da21c9..1adf47b08f 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -22,6 +22,7 @@ (define-module (gnu packages bioconductor) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system r) #:use-module (gnu packages) #:use-module (gnu packages base) @@ -2263,6 +2264,68 @@ (define-public r-monocle qPCR data, but could be used with other types as well.") (license license:artistic2.0))) +(define-public r-monocle3 + (package + (name "r-monocle3") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cole-trapnell-lab/monocle3.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cjxqfw3qvy269hsf5v80d4kshl932wrl949iayas02saj6f70ls")))) + (build-system r-build-system) + (propagated-inputs + `(("r-biobase" ,r-biobase) + ("r-biocgenerics" ,r-biocgenerics) + ("r-delayedmatrixstats" ,r-delayedmatrixstats) + ("r-dplyr" ,r-dplyr) + ("r-ggplot2" ,r-ggplot2) + ("r-ggrepel" ,r-ggrepel) + ("r-grr" ,r-grr) + ("r-htmlwidgets" ,r-htmlwidgets) + ("r-igraph" ,r-igraph) + ("r-irlba" ,r-irlba) + ("r-limma" ,r-limma) + ("r-lmtest" ,r-lmtest) + ("r-mass" ,r-mass) + ("r-matrix" ,r-matrix) + ("r-matrix-utils" ,r-matrix-utils) + ("r-pbapply" ,r-pbapply) + ("r-pbmcapply" ,r-pbmcapply) + ("r-pheatmap" ,r-pheatmap) + ("r-plotly" ,r-plotly) + ("r-pryr" ,r-pryr) + ("r-proxy" ,r-proxy) + ("r-pscl" ,r-pscl) + ("r-purrr" ,r-purrr) + ("r-rann" ,r-rann) + ("r-rcpp" ,r-rcpp) + ("r-rcppparallel" ,r-rcppparallel) + ("r-reshape2" ,r-reshape2) + ("r-reticulate" ,r-reticulate) + ("r-rhpcblasctl" ,r-rhpcblasctl) + ("r-rtsne" ,r-rtsne) + ("r-shiny" ,r-shiny) + ("r-slam" ,r-slam) + ("r-spdep" ,r-spdep) + ("r-speedglm" ,r-speedglm) + ("r-stringr" ,r-stringr) + ("r-singlecellexperiment" ,r-singlecellexperiment) + ("r-tibble" ,r-tibble) + ("r-tidyr" ,r-tidyr) + ("r-uwot" ,r-uwot) + ("r-viridis" ,r-viridis))) + (home-page "https://github.com/cole-trapnell-lab/monocle3") + (synopsis "Analysis toolkit for single-cell RNA-Seq data") + (description + "Monocle 3 is an analysis toolkit for single-cell RNA-Seq experiments.") + (license license:expat))) + (define-public r-noiseq (package (name "r-noiseq") From c55cd98c9cf1dae4e29ce7609a887f8bd74d1c60 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Thu, 13 Jun 2019 00:13:27 +0200 Subject: [PATCH 140/161] gnu: Add scintilla. * gnu/packages/text-editors.scm (scintilla): New variable. --- gnu/packages/text-editors.scm | 62 +++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index b35486ba59..1d9cd09f43 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -437,3 +437,65 @@ (define-public texmacs and Octave. TeXmacs is completely extensible via Guile.") (license license:gpl3+) (home-page "https://www.texmacs.org/tmweb/home/welcome.en.html"))) + +(define-public scintilla + (package + (name "scintilla") + (version "4.2.0") + (source (origin + (method url-fetch) + (uri (let ((v (apply string-append (string-split version #\.)))) + (string-append + "https://www.scintilla.org/scintilla" v ".tgz"))) + (sha256 + (base32 + "02ymi86fpcypg6423vfr54lbkxbks046q02v3m3dypawcf3bqy42")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk") + #:tests? #f ;require un-packaged Pyside + #:phases + (modify-phases %standard-phases + (delete 'configure) ;no configure script + (add-after 'unpack 'build-shared-library + (lambda _ + (substitute* "gtk/makefile" + (("scintilla\\.a") "libscintilla.so") + (("\\$\\(AR\\) \\$\\(ARFLAGS\\) \\$@ \\$\\^") + "$(CC) -shared $^ -o $@") + (("\\$\\(RANLIB\\) \\$@") "")) + #t)) + (add-before 'build 'expand-C++-include-path + (lambda* (#:key inputs #:allow-other-keys) + ;; Make /include/c++/ext/string_conversions.h find + ;; . + (let* ((path "CPLUS_INCLUDE_PATH") + (gcc (assoc-ref inputs "gcc")) + (c++ (string-append gcc "/include/c++"))) + (setenv path (string-append c++ ":" (getenv path)))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (include (string-append out "/include"))) + (install-file "bin/libscintilla.so" lib) + (for-each (lambda (f) (install-file f include)) + (find-files "include/" ".")) + #t)))))) + (native-inputs + `(("gcc" ,gcc-7) ;require GCC 7.1+ + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+))) + (home-page "https://www.scintilla.org/") + (synopsis "Code editor for GTK+") + (description "Scintilla is a source code editing component for +GTK+. It has the usual features found in text editing components, as +well as some that are especially useful for editing and debugging +source code; these include support for syntax styling, error +indicators, code completion and call tips. Styling choices are more +open than with many editors: Scintilla lets you use proportional +fonts, bold and italics, multiple foreground and background colours, +and multiple fonts.") + (license license:hpnd))) From 2363ed01ec80f0550a6ccd1c74fc3348d9bde54d Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 1 Jun 2019 23:37:24 +0200 Subject: [PATCH 141/161] gnu: Add geany. * gnu/packages/text-editors.scm (geany): New variable. --- gnu/packages/text-editors.scm | 69 +++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 1d9cd09f43..7d5f6797dc 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Efraim Flashner ;;; Copyright © 2019 Andreas Enge +;;; Copyright © 2019 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,7 @@ (define-module (gnu packages text-editors) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages assembly) + #:use-module (gnu packages autotools) #:use-module (gnu packages boost) #:use-module (gnu packages documentation) #:use-module (gnu packages fontutils) @@ -50,6 +52,7 @@ (define-module (gnu packages text-editors) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages regex) #:use-module (gnu packages ruby) @@ -499,3 +502,69 @@ (define-public scintilla fonts, bold and italics, multiple foreground and background colours, and multiple fonts.") (license license:hpnd))) + +(define-public geany + (package + (name "geany") + (version "1.35") + (source (origin + (method url-fetch) + (uri (string-append "https://download.geany.org/" + "geany-" version ".tar.bz2")) + (sha256 + (base32 + "179xfnvhcxsv54v2mlrhykqv2j7klniln5sffvqqpjmdvwyivvim")) + (modules '((guix build utils))) + (snippet '(begin + (delete-file-recursively "scintilla") + #t)))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("doxygen" ,doxygen) + ("glib" ,glib "bin") + ("intltool" ,intltool) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("python-docutils" ,python-docutils))) ;for rst2html + (inputs + `(("gtk+" ,gtk+) + ("scintilla" ,scintilla))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'use-scintilla-shared-library + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "configure.ac" + (("scintilla/Makefile") "") + (("scintilla/include/Makefile") "")) + (substitute* "Makefile.am" + (("scintilla ") "")) + (substitute* "src/Makefile.am" + (("\\$\\(top_builddir\\)/scintilla/libscintilla.la") "") + (("geany_LDFLAGS =" all) (string-append all " -lscintilla"))) + (substitute* "doc/Makefile.am" + (("\\$\\(INSTALL_DATA\\) \\$\\(top_srcdir\\)/scintilla/License.txt \\$\\(DOCDIR\\)/ScintillaLicense.txt") "")) + (for-each delete-file (list "autogen.sh" "configure" "Makefile.in")) + #t))))) + (home-page "https://www.geany.org") + (synopsis "Fast and lightweight IDE") + (description "Geany is a small and fast Integrated Development +Environment (IDE) that only has a few dependencies on other packages and is as +independent as possible from special desktop environments like KDE or GNOME. + +The basic features of Geany are: +@itemize +@item syntax highlighting +@item code completion +@item auto completion of often constructed constructs like if, for and while +@item auto completion of XML and HTML tags +@item call tips +@item folding +@item many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal +@item symbol lists +@item embedded terminal emulation +@item extensibility through plugins +@end itemize") + (license license:gpl2+))) From 5473261b21304a2a56c1752a29e757ce07592a6d Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 30 Jul 2019 22:28:03 +0200 Subject: [PATCH 142/161] gnu: grammalecte: Update to 1.2.1. * gnu/packages/dictionaries.scm (grammalecte): Update to 1.2.1. --- gnu/packages/dictionaries.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm index d3a3f8d832..228a8b6472 100644 --- a/gnu/packages/dictionaries.scm +++ b/gnu/packages/dictionaries.scm @@ -218,7 +218,7 @@ (define-public ding (define-public grammalecte (package (name "grammalecte") - (version "1.2") + (version "1.2.1") (source (origin (method url-fetch/zipbomb) @@ -226,7 +226,7 @@ (define-public grammalecte "Grammalecte-fr-v" version ".zip")) (sha256 (base32 - "0dwizai6w9yn617y7cnqdiwv77vn22p18s9sypypbl1bl695cnma")))) + "1j2avdk8hcgcv0lahp029qzpdb2rnys38hc64jy30awzx64fa6i4")))) (build-system python-build-system) (home-page "https://grammalecte.net") (synopsis "French spelling and grammar checker") From f9622ec7131d2ad9b7bfb23a40d44cc73e819892 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 30 Jul 2019 22:39:33 +0200 Subject: [PATCH 143/161] gnu: flare-engine: Update to 1.11. * gnu/packages/games.scm (flare-engine): Update to 1.11. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index a17ac9728c..396a33cd17 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -6756,7 +6756,7 @@ (define-public openclonk (define-public flare-engine (package (name "flare-engine") - (version "1.10") + (version "1.11") (source (origin (method git-fetch) (uri (git-reference @@ -6765,7 +6765,7 @@ (define-public flare-engine (file-name (git-file-name name version)) (sha256 (base32 - "19l83145ya1wk666acr91b6917a63ak7l77d10i5im8xfhv29ml4")))) + "1mqr1s72p5bdh4kq2a8hg72dk8lwnddicjnd2cdp1sbfa9lmjym8")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no test From ffbaefc71ab36709d898488b0a2064727a1d9b78 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 30 Jul 2019 22:47:44 +0200 Subject: [PATCH 144/161] gnu: flare-game: Update to 1.11. * gnu/packages/games.scm (flare-game): Update to 1.11. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 396a33cd17..07ed02ba18 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -6784,7 +6784,7 @@ (define-public flare-engine (define-public flare-game (package (name "flare-game") - (version "1.10") + (version "1.11") (source (origin (method git-fetch) (uri (git-reference @@ -6793,7 +6793,7 @@ (define-public flare-game (file-name (git-file-name name version)) (sha256 (base32 - "0dx4f1j1n3p4q3h0r0fb89f0llvhg9lia0s247pacff3r88ljihk")))) + "0bd5g7sd89a9176ilr408hdqzdfv4j7wj0idd685c1n6s01c3h6p")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no test From 274ba54e535b811acca02e42cffd45f0f625d142 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 30 Jul 2019 18:30:32 -0400 Subject: [PATCH 145/161] gnu: Blender: Update to 2.80. * gnu/packages/graphics.scm (blender): Update to 2.80. --- gnu/packages/graphics.scm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 94a797c8f5..f5c57464f5 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -80,16 +80,14 @@ (define-module (gnu packages graphics) (define-public blender (package (name "blender") - (version "v2.80-rc1") + (version "2.80") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.blender.org/blender.git") - (commit version))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://download.blender.org/source/" + "blender-" version ".tar.gz")) (sha256 (base32 - "11dcf0rjq42mpphk8r8cy7gvhzzl1cj1vslp98ibh8sdjzaz2mdq")))) + "1h550jisdbis50hxwk5kxrvrk1a6sh2fsri3yyj66vhzbi87x7fd")))) (build-system cmake-build-system) (arguments (let ((python-version (version-major+minor (package-version python)))) From 33abd52719b8474365e448d8d6992bbfaca81012 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 30 Jul 2019 19:22:25 -0500 Subject: [PATCH 146/161] gnu: hubbub: Update to 0.3.6. * gnu/packages/web.scm (hubbub)[source]: Update to 0.3.6. Remove use of "name" in source url. --- gnu/packages/web.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 958bc1aa40..b49dd73ee1 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus ;;; Copyright © 2018 Raoul Jean Pierre Bonnal ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer -;;; Copyright © 2015, 2016, 2017, 2018 Eric Bavier +;;; Copyright © 2015, 2016, 2017, 2018, 2019 Eric Bavier ;;; Copyright © 2015 Eric Dvorsak ;;; Copyright © 2016 Sou Bunnbu ;;; Copyright © 2016 Jelle Licht @@ -4239,15 +4239,15 @@ (define-public libparserutils (define-public hubbub (package (name "hubbub") - (version "0.3.5") + (version "0.3.6") (source (origin (method url-fetch) (uri (string-append "http://download.netsurf-browser.org/libs/releases/" - "lib" name "-" version "-src.tar.gz")) + "libhubbub-" version "-src.tar.gz")) (sha256 (base32 - "13yq1k96a7972x4r71i9bcsz9yiglj0yx7lj0ziq5r94w5my70ma")) + "1x3v7xvagx85v9h3pypzc86rcxs4mij87mmcqkp8pq50q6awfmnp")) (patches (search-patches "hubbub-sort-entities.patch")))) (build-system gnu-build-system) (native-inputs From c033093b8d567df9bd4c87a2ea8acb101224c5c0 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 30 Jul 2019 19:24:49 -0500 Subject: [PATCH 147/161] gnu: libwapcaplet: Update to 0.4.2. * gnu/packages/web.scm (libwapcaplet)[source]: Update to 0.4.2. Remove use of "name" in source url. --- gnu/packages/web.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index b49dd73ee1..eda4225dd4 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4345,15 +4345,15 @@ (define-public ikiwiki (define-public libwapcaplet (package (name "libwapcaplet") - (version "0.4.1") + (version "0.4.2") (source (origin (method url-fetch) (uri (string-append "http://download.netsurf-browser.org/libs/releases/" - name "-" version "-src.tar.gz")) + "libwapcaplet-" version "-src.tar.gz")) (sha256 (base32 - "134pljlm8kby1yy49826f0ixnpig8iqak6xpyl3aivagnsjnxzy8")))) + "1fjwzbn7j8bi1b9bvwxsy3i2cr6byq2s2d29866801pjnf528g86")))) (build-system gnu-build-system) (native-inputs `(("netsurf-buildsystem" ,netsurf-buildsystem) From 816edf338097cfeae07a4c17f2ce55247d410c02 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 30 Jul 2019 19:25:23 -0500 Subject: [PATCH 148/161] gnu: libcss: Update to 0.9.0. * gnu/packages/web.scm (libcss)[source]: Update to 0.9.0. Remove use of "name" in source url. --- gnu/packages/web.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index eda4225dd4..63c742844e 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4371,15 +4371,15 @@ (define-public libwapcaplet (define-public libcss (package (name "libcss") - (version "0.8.0") + (version "0.9.0") (source (origin (method url-fetch) (uri (string-append "http://download.netsurf-browser.org/libs/releases/" - name "-" version "-src.tar.gz")) + "libcss-" version "-src.tar.gz")) (sha256 (base32 - "0pxdqbxn6brj03nv57bsvac5n70k4scn3r5msaw0jgn2k06lk81m")))) + "1vw9j3d2mr4wbvs8fyqmgslkbxknvac10456775hflxxcivbm3xr")))) (build-system gnu-build-system) (native-inputs `(("netsurf-buildsystem" ,netsurf-buildsystem) From 2dd9b64307ab79d907f983bbed86880db1f7d702 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 30 Jul 2019 19:25:57 -0500 Subject: [PATCH 149/161] gnu: libdom: Update to 0.4.0. * gnu/packages/web.scm (libdom)[source]: Update to 0.4.0. Remove use of "name" in source url. --- gnu/packages/web.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 63c742844e..d5e40b6acf 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4399,15 +4399,15 @@ (define-public libcss (define-public libdom (package (name "libdom") - (version "0.3.3") + (version "0.4.0") (source (origin (method url-fetch) (uri (string-append "http://download.netsurf-browser.org/libs/releases/" - name "-" version "-src.tar.gz")) + "libdom-" version "-src.tar.gz")) (sha256 (base32 - "1919757mdl3gii2pl6kzm8b1cal0h06r5nqd2y0kny6hc5yrhsp0")))) + "1ixkqsl3f7dl1kajksm0c231w1v5xy8z6hm3v67hgm9nh4qcvfcy")))) (build-system gnu-build-system) (native-inputs `(("netsurf-buildsystem" ,netsurf-buildsystem) From 0a7473f16bebd429abb915c1e9d3665e1fa98b77 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 30 Jul 2019 19:26:33 -0500 Subject: [PATCH 150/161] gnu: libnspsl: Update to 0.1.5. * gnu/packages/web.scm (libnspsl)[source]: Update to 0.1.5. Remove use of "name" in url. --- gnu/packages/web.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index d5e40b6acf..491fe83a6e 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4535,15 +4535,15 @@ (define-public libnsutils (define-public libnspsl (package (name "libnspsl") - (version "0.1.3") + (version "0.1.5") (source (origin (method url-fetch) (uri (string-append "http://download.netsurf-browser.org/libs/releases/" - name "-" version "-src.tar.gz")) + "libnspsl-" version "-src.tar.gz")) (sha256 (base32 - "1rsk1k2a495axxgv8060s0p1phhhcxrv75252kllbkvr8id5kqld")))) + "0siq8zjfxv75i9fw6q5hkaijpdm1w3zskd5qk6vsvz8cqan4vifd")))) (build-system gnu-build-system) (native-inputs `(("netsurf-buildsystem" ,netsurf-buildsystem))) From 595d4ab163163a6671521251b02a2fbd2e2f81c8 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 30 Jul 2019 19:27:08 -0500 Subject: [PATCH 151/161] gnu: nsgenbind: Update to 0.7. * gnu/packages/web.scm (nsgenbind)[source]: Update to 0.7. Remove use of "name" in source url. --- gnu/packages/web.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 491fe83a6e..17b611a56d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4558,15 +4558,15 @@ (define-public libnspsl (define-public nsgenbind (package (name "nsgenbind") - (version "0.6") + (version "0.7") (source (origin (method url-fetch) (uri (string-append "http://download.netsurf-browser.org/libs/releases/" - name "-" version "-src.tar.gz")) + "nsgenbind-" version "-src.tar.gz")) (sha256 (base32 - "0v1cb1rz5fix9ql31nzmglj7sybya6d12b2fkaypm1avcca59xwj")))) + "0rplmky4afsjwiwh7grkmcdmzg86zksa55j93dvq92f91yljwqqq")))) (build-system gnu-build-system) (native-inputs `(("netsurf-buildsystem" ,netsurf-buildsystem) From 33d13088d0d0d558a3c002718f8d1962fb160e9c Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 30 Jul 2019 19:27:47 -0500 Subject: [PATCH 152/161] gnu: netsurf: Update to 3.9. * gnu/packages/web.scm (netsurf)[source]: Update to 3.9. [native-inputs]: Add "xxd" input. --- gnu/packages/web.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 17b611a56d..05bf2c10b8 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -127,6 +127,7 @@ (define-module (gnu packages web) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) #:use-module (gnu packages version-control) + #:use-module (gnu packages vim) #:use-module (gnu packages xml)) (define-public httpd @@ -4586,7 +4587,7 @@ (define-public nsgenbind (define-public netsurf (package (name "netsurf") - (version "3.8") + (version "3.9") (source (origin (method url-fetch) @@ -4594,7 +4595,7 @@ (define-public netsurf "releases/source/netsurf-" version "-src.tar.gz")) (sha256 (base32 - "0hjm1h4m1i913y4mhkl7yqdifn8k70fwi58zdh6faypawzryc3m0")) + "1hzcm2s2wh5sapgr000lg63hcdbj6hyajxl43xa1x80kc5piqbyp")) (patches (search-patches "netsurf-system-utf8proc.patch" "netsurf-y2038-tests.patch" "netsurf-longer-test-timeout.patch" @@ -4607,7 +4608,8 @@ (define-public netsurf ("check" ,check) ("perl" ,perl) ("perl-html-parser" ,perl-html-parser) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + ("xxd" ,xxd))) (inputs `(("curl" ,curl) ("gtk+" ,gtk+-2) From 2c618972c07cd3145c8640af6333166347ea0fba Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 30 Jul 2019 22:36:44 -0500 Subject: [PATCH 153/161] gnu: Add libnslog. * gnu/packages/web.scm (libnslog): New variable. --- gnu/packages/web.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 05bf2c10b8..8b4521b37e 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4510,6 +4510,34 @@ (define-public libnsgif C. It is developed as part of the NetSurf project.") (license license:expat))) +(define-public libnslog + (package + (name "libnslog") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append "http://download.netsurf-browser.org/libs/releases/" + "libnslog-" version "-src.tar.gz")) + (sha256 + (base32 + "1ggs6xvxp8fbg5w8pifalipm458ygr9ab6j2yvj8fnnmxwvdh4jd")))) + (build-system gnu-build-system) + (native-inputs + `(("netsurf-buildsystem" ,netsurf-buildsystem) + ("pkg-config" ,pkg-config) + ("check" ,check) ;for tests + ("bison" ,bison) + ("flex" ,flex))) + (arguments netsurf-buildsystem-arguments) + (home-page "http://www.netsurf-browser.org/") + (synopsis "Logging library") + (description + "Libnslog provides a category-based logging library which supports +complex logging filters, multiple log levels, and provides context through to +client applications. It is developed as part of the NetSurf project.") + (license license:expat))) + (define-public libnsutils (package (name "libnsutils") From 9e43348e75d1be79f03d75cea74afe2db5f5e77d Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 30 Jul 2019 22:37:27 -0500 Subject: [PATCH 154/161] gnu: netsurf: Add libnslog input. * gnu/packages/web.scm (netsurf)[inputs]: Add libnslog. --- gnu/packages/web.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 8b4521b37e..f2d1f316d4 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4649,6 +4649,7 @@ (define-public netsurf ("libdom" ,libdom) ("libnsbmp" ,libnsbmp) ("libnsgif" ,libnsgif) + ("libnslog" ,libnslog) ("libnspsl" ,libnspsl) ("libnsutils" ,libnsutils) ("libsvgtiny" ,libsvgtiny) From 9898a2d3451c1690df4924c39de9d4029b543934 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 31 Jul 2019 05:18:44 +0200 Subject: [PATCH 155/161] gnu: python-glances: Update to 3.1.1. * gnu/packages/python-xyz.scm (python-glances): Update to 3.1.1. [propagated-inputs]: Add python-future. --- gnu/packages/python-xyz.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 362ab7f031..49e125afd6 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -10945,17 +10945,18 @@ (define-public python2-natsort (define-public python-glances (package (name "python-glances") - (version "3.0.2") + (version "3.1.1") (source (origin (method url-fetch) (uri (pypi-uri "Glances" version)) (sha256 (base32 - "09fxysfp1n16csqvzvawy74qm6a94nvwjf3vcf5gkqp4i6k4vjjy")))) + "07j1ggzsqiskyz1i4mrnyr9i95v0dqi0i0hibnv1l188km8shmi8")))) (build-system python-build-system) (propagated-inputs - `(("python-psutil" ,python-psutil))) + `(("python-future" ,python-future) + ("python-psutil" ,python-psutil))) (home-page "https://github.com/nicolargo/glances") (synopsis From 15b4c91163a54bfab1599999165313c3a7d13f84 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 31 Jul 2019 05:39:16 +0200 Subject: [PATCH 156/161] gnu: python-glances: Don't check for updates by default. * gnu/packages/python-xyz.scm (python-glances)[source]: Add snippet. --- gnu/packages/python-xyz.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 49e125afd6..98248e2a61 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -10952,7 +10952,18 @@ (define-public python-glances (uri (pypi-uri "Glances" version)) (sha256 (base32 - "07j1ggzsqiskyz1i4mrnyr9i95v0dqi0i0hibnv1l188km8shmi8")))) + "07j1ggzsqiskyz1i4mrnyr9i95v0dqi0i0hibnv1l188km8shmi8")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Glances phones PyPI for weekly update checks by default. + ;; Disable these. The user can re-enable them if desired. + (substitute* "glances/outdated.py" + (("^(.*)self\\.load_config\\(config\\)\n" line indentation) + (string-append indentation + "self.args.disable_check_update = True\n" + line))) + #t)))) (build-system python-build-system) (propagated-inputs `(("python-future" ,python-future) From bab94ffa0e27e39c02d5ce3add5605b676b76bee Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 31 Jul 2019 05:43:42 +0200 Subject: [PATCH 157/161] =?UTF-8?q?gnu:=20python-glances:=20Please=20?= =?UTF-8?q?=E2=80=98guix=20lint=E2=80=99.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-glances)[synopsis]: Remove article. [description]: Double-space between sentences. --- gnu/packages/python-xyz.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 98248e2a61..6410a13df7 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -10970,12 +10970,11 @@ (define-public python-glances ("python-psutil" ,python-psutil))) (home-page "https://github.com/nicolargo/glances") - (synopsis - "A cross-platform curses-based monitoring tool") + (synopsis "Cross-platform curses-based monitoring tool") (description "Glances is a curses-based monitoring tool for a wide variety of platforms. -Glances uses the PsUtil library to get information from your system. It monitors -CPU, load, memory, network bandwidth, disk I/O, disk use, and more.") +Glances uses the PsUtil library to get information from your system. It +monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.") (license license:lgpl3+))) (define-public python2-glances From e4ce0097c7be9651777e83269ac3525fdcbf1a1f Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 31 Jul 2019 10:27:45 +0200 Subject: [PATCH 158/161] gnu: Add sbcl-mk-string-metrics. * gnu/packages/lisp.scm (sbcl-mk-string-metrics): New variable. --- gnu/packages/lisp.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 884d00d935..e7d0d5a44f 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -6567,3 +6567,34 @@ (define-public sbcl-trivia (description "Trivia is a pattern matching compiler that is compatible with Optima, another pattern matching library for Common Lisp. It is meant to be faster and more extensible than Optima."))) + +(define-public sbcl-mk-string-metrics + (package + (name "sbcl-mk-string-metrics") + (version "0.1.2") + (home-page "https://github.com/cbaggers/mk-string-metrics/") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (sha256 + (base32 "0bg0bv2mfd4k0g3x72x563hvmrx18xavaffr6xk5rh4if5j7kcf6")) + (file-name (git-file-name name version)))) + (build-system asdf-build-system/sbcl) + (synopsis "Calculate various string metrics efficiently in Common Lisp") + (description "This library implements efficient algorithms that calculate +various string metrics in Common Lisp: + +@itemize +@item Damerau-Levenshtein distance +@item Hamming distance +@item Jaccard similarity coefficient +@item Jaro distance +@item Jaro-Winkler distance +@item Levenshtein distance +@item Normalized Damerau-Levenshtein distance +@item Normalized Levenshtein distance +@item Overlap coefficient +@end itemize\n") + (license license:x11))) From becb69cfe63793236329b5cff36a7cb5c05b0d70 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Wed, 31 Jul 2019 12:45:52 +0300 Subject: [PATCH 159/161] gnu: Add emacs-org-redmine. * gnu/packages/emacs-xyz.scm (emacs-org-redmine): New variable. --- gnu/packages/emacs-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 314f4867b3..6f4bf178e9 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16684,6 +16684,26 @@ (define-public emacs-org-noter acting like notes that are made @emph{in} the document.") (license license:gpl3+))) +(define-public emacs-org-redmine + (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc")) + (package + (name "emacs-org-redmine") + (version (git-version "0.1" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gongo/org-redmine.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822")))) + (build-system emacs-build-system) + (home-page "https://github.com/gongo/org-redmine/") + (synopsis "Redmine tools using Emacs") + (description "This program provides an Emacs client for Redmine.") + (license license:gpl3+)))) + (define-public emacs-multi-term (let ((commit "0804b11e52b960c80f5cd0712ee1e53ae70d83a4")) (package From 716908411b4d393ec82d5b7e40c9817e81c8fa95 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Wed, 31 Jul 2019 12:52:40 +0300 Subject: [PATCH 160/161] gnu: emacs-org-ql: Update to 0.1. * gnu/packages/emacs-xyz.scm (emacs-org-ql): Update to 0.1. --- gnu/packages/emacs-xyz.scm | 43 ++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6f4bf178e9..600d810bea 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -10482,30 +10482,27 @@ (define-public emacs-org-make-toc (license license:gpl3+))) (define-public emacs-org-ql - (let ((commit "0aec8ec60395197b2ef2b885c216cf84286efed9") - (version "0.1-pre") - (revision "1")) - (package - (name "emacs-org-ql") - (version (git-version version revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alphapapa/org-ql") - (commit commit))) - (sha256 - (base32 - "0bj85hxhym7rvkaddcxybxdm7g7w439wij9f2w5ljz1hmvp55991")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-s" ,emacs-s) - ("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/alphapapa/org-ql") - (synopsis "Query language for Org buffers") - (description "This package provides a Lispy query language for Org + (package + (name "emacs-org-ql") + (version "0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/org-ql") + (commit version))) + (sha256 + (base32 + "1nvzirn1lmgmgl7irbsc1n391a2cw8gmvwm3pa228l2c1gcx8kd8")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-s" ,emacs-s) + ("emacs-dash" ,emacs-dash))) + (home-page "https://github.com/alphapapa/org-ql/") + (synopsis "Query language for Org buffers") + (description "This package provides a Lispy query language for Org files, allowing for actions to be performed based on search criteria.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-parsebib (package From 3d88855dfdcc4c8ce11f494fdf9f0ac1d8eef530 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 31 Jul 2019 14:06:00 +0200 Subject: [PATCH 161/161] gnu: claws-mail: Add startup-notification. * gnu/packages/mail.scm (claws-mail)[inputs]: Add startup-notification. --- gnu/packages/mail.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index a2c51fd596..40fe7d9450 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -117,6 +117,7 @@ (define-module (gnu packages mail) #:use-module (gnu packages w3m) #:use-module (gnu packages web) #:use-module (gnu packages webkit) + #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) #:use-module (gnu packages xml) #:use-module ((guix licenses) @@ -1120,7 +1121,8 @@ (define-public claws-mail ("libxml2" ,libxml2) ("perl" ,perl) ("python-2" ,python-2) - ("mime-info" ,shared-mime-info))) + ("mime-info" ,shared-mime-info) + ("startup-notification" ,startup-notification))) (arguments '(#:configure-flags '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant"