diff options
106 files changed, 3322 insertions, 1007 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 468e0a2e53..8146417236 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -17500,16 +17500,17 @@ CUPS service will generate a self-signed certificate if needed, for secure connections to the print server. Suppose you want to enable the Web interface of CUPS and also add -support for Epson printers @i{via} the @code{escpr} package and for HP -printers @i{via} the @code{hplip-minimal} package. You can do that directly, -like this (you need to use the @code{(gnu packages cups)} module): +support for Epson printers @i{via} the @code{epson-inkjet-printer-escpr} +package and for HP printers @i{via} the @code{hplip-minimal} package. +You can do that directly, like this (you need to use the +@code{(gnu packages cups)} module): @lisp (service cups-service-type (cups-configuration (web-interface? #t) (extensions - (list cups-filters escpr hplip-minimal)))) + (list cups-filters epson-inkjet-printer-escpr hplip-minimal)))) @end lisp Note: If you wish to use the Qt5 based GUI which comes with the hplip @@ -17538,7 +17539,7 @@ Available @code{cups-configuration} fields are: The CUPS package. @end deftypevr -@deftypevr {@code{cups-configuration} parameter} package-list extensions (default: @code{(list escpr hplip-minimal foomatic-filters)}) +@deftypevr {@code{cups-configuration} parameter} package-list extensions (default: @code{(list epson-inkjet-printer-escpr hplip-minimal foomatic-filters splix)}) Drivers and other extensions to the CUPS package. @end deftypevr diff --git a/gnu/build/linux-initrd.scm b/gnu/build/linux-initrd.scm index ea7de58553..99796adba6 100644 --- a/gnu/build/linux-initrd.scm +++ b/gnu/build/linux-initrd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2018, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,8 +39,9 @@ #:key (compress? #t) (gzip "gzip")) - "Write a cpio archive containing DIRECTORY to file OUTPUT. When -COMPRESS? is true, compress it using GZIP. On success, return OUTPUT." + "Write a cpio archive containing DIRECTORY to file OUTPUT, with reset +timestamps in the archive. When COMPRESS? is true, compress it using GZIP. +On success, return OUTPUT." ;; Note: as per `ramfs-rootfs-initramfs.txt', always add directory entries ;; before the files that are inside of it: "The Linux kernel cpio @@ -141,12 +142,6 @@ REFERENCES-GRAPHS." (symlink (string-append guile "/bin/guile") "proc/self/exe") (readlink "proc/self/exe") - ;; Reset the timestamps of all the files that will make it in the initrd. - (for-each (lambda (file) - (unless (eq? 'symlink (stat:type (lstat file))) - (utime file 0 0 0 0))) - (find-files "." ".*")) - (write-cpio-archive output "." #:gzip gzip)) ;; Make sure directories are writable so we can delete files. diff --git a/gnu/ci.scm b/gnu/ci.scm index bf9952a450..a5afef91ae 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -57,6 +57,7 @@ #:use-module (gnu system install) #:use-module (gnu system images hurd) #:use-module (gnu system images pine64) + #:use-module (gnu system images pinebook-pro) #:use-module (gnu tests) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -205,7 +206,8 @@ SYSTEM." (define %guix-system-images (list hurd-barebones-qcow2-image - pine64-barebones-raw-image)) + pine64-barebones-raw-image + pinebook-pro-barebones-raw-image)) (define (image-jobs store system) "Return a list of jobs that build images for SYSTEM." diff --git a/gnu/local.mk b/gnu/local.mk index 42a0e09e47..49d7ea93b3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -652,6 +652,7 @@ GNU_SYSTEM_MODULES = \ \ %D%/system/images/hurd.scm \ %D%/system/images/pine64.scm \ + %D%/system/images/pinebook-pro.scm \ \ %D%/machine.scm \ \ @@ -989,6 +990,7 @@ dist_patch_DATA = \ %D%/packages/patches/freedink-engine-fix-sdl-hints.patch \ %D%/packages/patches/freeimage-unbundle.patch \ %D%/packages/patches/fuse-overlapping-headers.patch \ + %D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch \ %D%/packages/patches/ganeti-deterministic-manual.patch \ %D%/packages/patches/ganeti-disable-version-symlinks.patch \ %D%/packages/patches/ganeti-drbd-compat.patch \ @@ -1717,7 +1719,6 @@ dist_patch_DATA = \ %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \ %D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch \ %D%/packages/patches/xpra-4.0.1-systemd-run.patch \ - %D%/packages/patches/xpra-4.0.4-norequests.patch \ %D%/packages/patches/xsane-fix-memory-leak.patch \ %D%/packages/patches/xsane-fix-pdf-floats.patch \ %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index f3bd7ffab2..1ea6f975ff 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -4131,7 +4131,7 @@ entries, providing commands to add, remove, comment, and search.") (method git-fetch) (uri (git-reference - (url "https://github.com/jclehner/nmrpflash.git") + (url "https://github.com/jclehner/nmrpflash") (commit (string-append "v" version)))) (sha256 (base32 "1fdjrxhjs96rdclbkld57xarf592slhkp79h46z833npxpn12ck1")) diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm index 3facc6894f..6628a8ead3 100644 --- a/gnu/packages/aidc.scm +++ b/gnu/packages/aidc.scm @@ -50,7 +50,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/nu-book/zxing-cpp.git") + (url "https://github.com/nu-book/zxing-cpp") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index ed35a6832f..1c485a3f07 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -1005,7 +1005,7 @@ Optional thin wrappers allow usage of the library from other languages.") (define-public eigen (package (name "eigen") - (version "3.3.7") + (version "3.3.8") (source (origin (method url-fetch) (uri (list @@ -1015,7 +1015,7 @@ Optional thin wrappers allow usage of the library from other languages.") version ".orig.tar.bz2"))) (sha256 (base32 - "1km3fyfzyqfdvmnl79drps3fjwnz3zbh0c7l34mfbqyvvs8cy4wz")) + "1vxrsncfnkyq6gwxpsannpryp12mk7lc8f42ybvz3saf7icwc582")) (file-name (string-append name "-" version ".tar.bz2")) (patches (search-patches "eigen-stabilise-sparseqr-test.patch")) (modules '((guix build utils))) diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index 7fd469e950..a20ae542ce 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -444,7 +444,7 @@ sets, both THUMB and ARM mode.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/intelxed/mbuild.git") + (url "https://github.com/intelxed/mbuild") (commit "5304b94361fccd830c0e2417535a866b79c1c297"))) (sha256 (base32 diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 3332e5b6d3..df8b8efcf1 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -140,7 +140,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/KhronosGroup/OpenSL-ES-Registry.git") + (url "https://github.com/KhronosGroup/OpenSL-ES-Registry") (commit "ea5104bf37bf525c25e6ae2386586048179d0fda"))) (file-name (git-file-name name version)) (sha256 @@ -202,7 +202,7 @@ promoting the market for advanced audio.") (method git-fetch) (uri (git-reference - (url "https://github.com/Mindwerks/wildmidi.git") + (url "https://github.com/Mindwerks/wildmidi") (commit (string-append name "-" version)))) (file-name (git-file-name name version)) (sha256 @@ -277,7 +277,7 @@ Coding (AAC) encoder.") (method git-fetch) (uri (git-reference - (url "https://github.com/tinyalsa/tinyalsa.git") + (url "https://github.com/tinyalsa/tinyalsa") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm index 826767092a..688a1373e3 100644 --- a/gnu/packages/browser-extensions.scm +++ b/gnu/packages/browser-extensions.scm @@ -53,7 +53,7 @@ supported content to the Kodi media center.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/uBlockOrigin/uAssets.git") + (url "https://github.com/uBlockOrigin/uAssets") (commit commit))) (file-name (git-file-name "uAssets" (string-take commit 9))) (sha256 @@ -63,7 +63,7 @@ supported content to the Kodi media center.") (define ublock-origin (package (name "ublock-origin") - (version "1.30.6") + (version "1.31.0") (home-page "https://github.com/gorhill/uBlock") (source (origin (method git-fetch) @@ -71,7 +71,7 @@ supported content to the Kodi media center.") (file-name (git-file-name name version)) (sha256 (base32 - "10arx4r4s8125g9zlh3bcjpcb4qh2wzfmvqc2x8nly5fbxvxvns3")))) + "1wfg1g061l83fqwllp8q1jr1kvwxy2kbbzfk6ynlf18kjng9v3h5")))) (build-system gnu-build-system) (outputs '("xpi" "firefox" "chromium")) (arguments diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 0ca0653a54..cf9b85d592 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -119,7 +119,7 @@ modify some aspects of this style through the use of regular expressions.") (method git-fetch) (uri (git-reference - (url "https://github.com/ebassi/mutest.git") + (url "https://github.com/ebassi/mutest") (commit "e6246c9"))) (file-name (git-file-name name version)) (sha256 @@ -1427,14 +1427,14 @@ use of resources by test cases."))) (define-public python-subunit-bootstrap (package (name "python-subunit-bootstrap") - (version "1.3.0") + (version "1.4.0") (source (origin (method url-fetch) (uri (pypi-uri "python-subunit" version)) (sha256 (base32 - "1fsw8rsn1s3nklx06mayrg5rn2zbky6wwjc5z07s7rf1wjzfs1wn")))) + "0j0ymmnc5nfxi1qzvy59j27viqca7l7xd0y9x29g7yr0h693j804")))) (build-system python-build-system) (propagated-inputs `(("python-extras" ,python-extras) diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm index e66132ab40..5b238ab996 100644 --- a/gnu/packages/clojure.scm +++ b/gnu/packages/clojure.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com> ;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -21,6 +22,7 @@ (define-module (gnu packages clojure) #:use-module (gnu packages) + #:use-module (gnu packages java) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -78,6 +80,8 @@ (sha256 (base32 "1kcyv2836acs27vi75hvf3r773ahv2nlh9b3j9xa9m9sdanz1h83"))))) (build-system ant-build-system) + (inputs + `(("jre" ,icedtea))) (arguments `(#:imported-modules ((guix build clojure-utils) (guix build guile-build-system) @@ -114,7 +118,23 @@ (add-after 'install-license-files 'install-doc (cut install-doc #:doc-dirs '("doc/clojure/") <...>)) (add-after 'install-doc 'install-javadoc - (install-javadoc "target/javadoc/"))))) + (install-javadoc "target/javadoc/")) + (add-after 'install 'make-wrapper + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (wrapper (string-append out "/bin/clojure"))) + (mkdir-p (string-append out "/bin")) + (with-output-to-file wrapper + (lambda _ + (display + (string-append + "#!" + (which "sh") + "\n\n" + (assoc-ref inputs "jre") "/bin/java -jar " + out "/share/java/clojure.jar \"$@\"\n")))) + (chmod wrapper #o555)) + #t))))) (native-inputs libraries) (home-page "https://clojure.org/") (synopsis "Lisp dialect running on the JVM") diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 6764bb62c3..1d643cdff8 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1302,7 +1302,7 @@ or junctions, and always follows hard links.") (source (origin (method git-fetch) (uri (git-reference - (url "http://github.com/twogood/unshield.git") + (url "http://github.com/twogood/unshield") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index e57e40c2ad..fb6a899b48 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -522,7 +522,7 @@ Coq proof assistant.") (source (origin (method git-fetch) (uri (git-reference - (url "git://github.com/uds-psl/autosubst.git") + (url "git://github.com/uds-psl/autosubst") (commit commit))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm index 9193479092..11bdd4c4f4 100644 --- a/gnu/packages/crates-graphics.scm +++ b/gnu/packages/crates-graphics.scm @@ -183,20 +183,12 @@ text or blue underlined text, on ANSI terminals.") (arguments `(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.53) - ("rust-metadeps" ,rust-metadeps-1.1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))) + ("rust-metadeps" ,rust-metadeps-1.1)))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("libaom" ,libaom) - ("libclang" ,clang) + ("clang" ,clang) ("llvm" ,llvm))) (home-page "https://github.com/rust-av/aom-rs") (synopsis "FFI bindings to aom") @@ -402,19 +394,12 @@ for computer graphics.") (arguments `(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.54) - ("rust-metadeps" ,rust-metadeps-1.1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))) + ("rust-metadeps" ,rust-metadeps-1.1)))) + (native-inputs + `(("pkg-config" ,pkg-config))) (inputs `(("dav1d" ,dav1d) - ("pkg-config" ,pkg-config) - ("libclang" ,clang) + ("clang" ,clang) ("llvm" ,llvm))) (home-page "https://github.com/rust-av/dav1d-rs") (synopsis "FFI bindings to dav1d") diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index f485142383..82e37a0f8d 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-gtk) + #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages fontutils) @@ -1470,6 +1471,28 @@ trace (backtrace) at runtime in a Rust program.") (license (list license:asl2.0 license:expat)))) +(define-public rust-base58-0.1 + (package + (name "rust-base58") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "base58" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "10xfw6v7jzn9i682mkw9nqybzafrvl3i2wawwgp5a8gh2n0fw92h")))) + (build-system cargo-build-system) + (home-page "https://github.com/debris/base58") + (synopsis "Tiny and fast base58 encoding") + (description + "Encode to base58 using only Rust. This package is based on +@url{https://github.com/trezor/trezor-crypto/blob/master/base58.c} at commit +c6e7d37. However, this package works only up to 128 bytes.") + (license license:expat))) + (define-public rust-base64-0.12 (package (name "rust-base64") @@ -1726,11 +1749,6 @@ that uses Serde for transforming structs into bytes and vice versa!") (add-after 'unpack 'enable-unstable-features (lambda _ (setenv "RUSTC_BOOTSTRAP" "1") - #t)) - (add-before 'configure 'configure-clang - (lambda* (#:key inputs #:allow-other-keys) - (setenv "LIBCLANG_PATH" (string-append (assoc-ref inputs "clang") - "/lib")) #t))))) (home-page "https://rust-lang.github.io/rust-bindgen/") (synopsis "Generate Rust FFI bindings to C and C++ libraries.") @@ -1775,17 +1793,9 @@ bindings to C and C++ libraries.") #:cargo-development-inputs (("rust-clap" ,rust-clap-2) ("rust-diff" ,rust-diff-0.1) - ("rust-shlex" ,rust-shlex-0.1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))) + ("rust-shlex" ,rust-shlex-0.1)))) (inputs - `(("libclang" ,clang))))) + `(("clang" ,clang))))) (define-public rust-bindgen-0.53 (package @@ -1822,15 +1832,7 @@ bindings to C and C++ libraries.") #:cargo-development-inputs (("rust-clap" ,rust-clap-2) ("rust-diff" ,rust-diff-0.1) - ("rust-shlex" ,rust-shlex-0.1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-shlex" ,rust-shlex-0.1)))))) (define-public rust-bindgen-0.52 (package @@ -1868,15 +1870,7 @@ bindings to C and C++ libraries.") #:cargo-development-inputs (("rust-clap" ,rust-clap-2) ("rust-diff" ,rust-diff-0.1) - ("rust-shlex" ,rust-shlex-0.1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-shlex" ,rust-shlex-0.1)))))) (define-public rust-bindgen-0.51 (package @@ -2647,6 +2641,37 @@ dependency on the rust stdlib. This makes it suitable for embedded devices and kernels.") (license (list license:bsd-3 license:expat)))) +(define-public rust-bs58-0.2 + (package + (name "rust-bs58") + (version "0.2.5") + (source + (origin + (method url-fetch) + (uri (crate-uri "bs58" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "125i962x0m0ggdif6ds51wfif2lypiicy469dj5j2l6rm6xycpn9")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-sha2" ,rust-sha2-0.8)) + #:cargo-development-inputs + (("rust-assert-matches" ,rust-assert-matches-1.3) + ("rust-base58" ,rust-base58-0.1) + ("rust-rust-base58" ,rust-rust-base58-0.0)))) + (home-page "https://github.com/mycorrhiza/bs58-rs") + (synopsis "Another Base58 codec implementation") + (description + "Another Base58 codec implementation. Compared to the base58 crate this +is significantly faster at decoding (about 2.4x as fast when decoding 32 +bytes), almost the same speed for encoding (about 3% slower when encoding 32 +bytes), doesn't have the 128 byte limitation and supports a configurable +alphabet.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-bstr-0.2 (package (name "rust-bstr") @@ -2695,6 +2720,35 @@ UTF-8.") (base32 "0nzi9vqhl56ws8gq39f3aj4qjrr4l3g5lbkkcj8xq1x4cb74wq2r")))))) +(define-public rust-buffered-reader-0.9 + (package + (name "rust-buffered-reader") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "buffered-reader" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "05rklfiia1k4c4ifpim08l22i0q0l3j9xdg2yh3njrp6w58z6z13")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-bzip2" ,rust-bzip2-0.3) + ("rust-flate2" ,rust-flate2-1) + ("rust-libc" ,rust-libc-0.2)))) + (home-page "https://sequoia-pgp.org/") + (synopsis "Super-powered Reader") + (description + "Like the @code{BufRead} trait, the @code{BufferedReader} trait has an +internal buffer that is directly exposed to the user. This design enables two +performance optimizations. First, the use of an internal buffer amortizes +system calls. Second, exposing the internal buffer allows the user to work +with data in place, which avoids another copy.") + (license license:gpl3))) + (define-public rust-build-const-0.2 (package (name "rust-build-const") @@ -3447,17 +3501,9 @@ archive to be linked into Rustcode.") `(#:cargo-inputs (("rust-nom" ,rust-nom-5)) #:cargo-development-inputs - (("rust-clang-sys" ,rust-clang-sys-0.28)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))) + (("rust-clang-sys" ,rust-clang-sys-0.28)))) (inputs - `(("libclang" ,clang))) + `(("clang" ,clang))) (home-page "https://github.com/jethrogb/rust-cexpr") (synopsis "C expression parser and evaluator") (description @@ -3482,15 +3528,7 @@ archive to be linked into Rustcode.") `(#:cargo-inputs (("rust-nom" ,rust-nom-4.2)) #:cargo-development-inputs - (("rust-clang-sys" ,rust-clang-sys-0.28)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + (("rust-clang-sys" ,rust-clang-sys-0.28)))))) (define-public rust-cexpr-0.2 (package @@ -3511,15 +3549,7 @@ archive to be linked into Rustcode.") `(#:cargo-inputs (("rust-nom" ,rust-nom-3)) #:cargo-development-inputs - (("rust-clang-sys" ,rust-clang-sys-0.11)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + (("rust-clang-sys" ,rust-clang-sys-0.11)))))) (define-public rust-cfg-if-0.1 (package @@ -3622,20 +3652,12 @@ depending on a large number of #[cfg] parameters. Structured like an "0695kfrqx7n091fzm6msbqg2q2kyhka64q08lm63f3l9d964i8cx")))) (build-system cargo-build-system) (inputs - `(("libclang" ,clang))) + `(("clang" ,clang))) (arguments `(#:cargo-inputs (("rust-glob" ,rust-glob-0.3) ("rust-libc" ,rust-libc-0.2) - ("rust-libloading" ,rust-libloading-0.6)) - #:phases - (modify-phases %standard-phases - (add-before 'configure 'configure-clang - (lambda* (#:key inputs #:allow-other-keys) - (setenv "LIBCLANG_PATH" - (string-append (assoc-ref inputs "libclang") - "/lib")) - #t))))) + ("rust-libloading" ,rust-libloading-0.6)))) (home-page "https://github.com/KyleMayes/clang-sys") (synopsis "Rust bindings for libclang") (description "This package provides Rust bindings for libclang.") @@ -3659,15 +3681,7 @@ depending on a large number of #[cfg] parameters. Structured like an `(#:cargo-inputs (("rust-glob" ,rust-glob-0.3) ("rust-libc" ,rust-libc-0.2) - ("rust-libloading" ,rust-libloading-0.5)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-libloading" ,rust-libloading-0.5)))))) (define-public rust-clang-sys-0.28 (package @@ -3700,15 +3714,7 @@ depending on a large number of #[cfg] parameters. Structured like an `(#:cargo-inputs (("rust-glob" ,rust-glob-0.2) ("rust-libc" ,rust-libc-0.2) - ("rust-libloading" ,rust-libloading-0.5)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-libloading" ,rust-libloading-0.5)))))) (define-public rust-clang-sys-0.23 (package @@ -3745,15 +3751,7 @@ depending on a large number of #[cfg] parameters. Structured like an (("rust-clippy" ,rust-clippy-0.0) ("rust-glob" ,rust-glob-0.2) ("rust-libc" ,rust-libc-0.2) - ("rust-libloading" ,rust-libloading-0.5)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-libloading" ,rust-libloading-0.5)))))) (define-public rust-clang-sys-0.11 (package @@ -3777,15 +3775,7 @@ depending on a large number of #[cfg] parameters. Structured like an ("rust-glob" ,rust-glob-0.2) ("rust-lazy-static" ,rust-lazy-static-0.2) ("rust-libc" ,rust-libc-0.2) - ("rust-libloading" ,rust-libloading-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-libloading" ,rust-libloading-0.3)))))) (define-public rust-clap-2 (package @@ -4470,6 +4460,71 @@ It is inspired by the Linux kernel's @code{crypto_memneq}.") semantics than those provided by @code{as} or @code{From}/@code{Into}.") (license license:expat))) +(define-public rust-cookie-0.12 + (package + (name "rust-cookie") + (version "0.12.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "cookie" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1mdvqixahcywvqp0y8k2skkgbpfhsp0w73l9mz93dcrx1gq091l8")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-base64" ,rust-base64-0.10) + ("rust-ring" ,rust-ring-0.14) + ("rust-time" ,rust-time-0.1) + ("rust-url" ,rust-url-1)))) + (home-page "https://github.com/SergioBenitez/cookie-rs") + (synopsis + "Crate for parsing HTTP cookie headers and managing a cookie jar") + (description + "Parse HTTP cookie headers and manage a cookie jar with this crate. +It supports signed and private (encrypted + signed) jars.") + (license (list license:asl2.0 license:expat)))) + +(define-public rust-cookie-store-0.7 + (package + (name "rust-cookie-store") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "cookie-store" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "174i9k9g62pfx7y1nqynywdpjplkl3j4hi3ck6bz2r996qzhnxa6")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-cookie" ,rust-cookie-0.12) + ("rust-idna" ,rust-idna-0.1) + ("rust-log" ,rust-log-0.4) + ("rust-publicsuffix" ,rust-publicsuffix-1) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-time" ,rust-time-0.1) + ("rust-try-from" ,rust-try-from-0.3) + ("rust-url" ,rust-url-1)) + #:cargo-development-inputs + (("rust-env-logger" ,rust-env-logger-0.6) + ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)))) + (home-page "https://github.com/pfernie/cookie_store") + (synopsis "Implementation of Cookie storage and retrieval per RFC6265") + (description + "This crate provides an implementation for storing and retrieving Cookies per +the path and domain matching rules specified in RFC6265. + +Split from the user_agent crate.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-cordic-0.1 (package (name "rust-cordic") @@ -5410,6 +5465,34 @@ Code (MAC) algorithms.") algorithms.") (license (list license:expat license:asl2.0)))) +(define-public rust-cryptovec-0.4 + (package + (name "rust-cryptovec") + (version "0.4.6") + (source + (origin + (method url-fetch) + (uri (crate-uri "cryptovec" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1n88dmhfb2dxs48zllq1g1dya76zx4fajw482qy8jj4hgg1da4p4")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; CryptoVec::from_slice failed + #:cargo-inputs + (("rust-kernel32-sys" ,rust-kernel32-sys-0.2) + ("rust-libc" ,rust-libc-0.2) + ("rust-winapi" ,rust-winapi-0.2)))) + (home-page "https://crates.io/crates/cryptovec") + (synopsis + "Vector which zeroes its memory on clears and reallocations") + (description + "This package provides a vector which zeroes its memory on clears and +reallocations.") + (license license:asl2.0))) + (define-public rust-cssparser-0.27 (package (name "rust-cssparser") @@ -5738,14 +5821,7 @@ use with bindgen.") ("rust-winapi" ,rust-winapi-0.3) ("rust-cc" ,rust-cc-1) ("rust-pkg-config" ,rust-pkg-config-0.3) - ("rust-vcpkg" ,rust-vcpkg-0.2)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'find-openssl - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + ("rust-vcpkg" ,rust-vcpkg-0.2)))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -6555,6 +6631,28 @@ Diesel.") #:cargo-development-inputs (("rust-term" ,rust-term-0.2)))))) +(define-public rust-diffs-0.3 + (package + (name "rust-diffs") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "diffs" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "036sqycmir4bbl4016jprsyjq4hicc31r68dyqadmc8ac9pk55d1")))) + (build-system cargo-build-system) + (home-page "https://nest.pijul.com/pijul_org/pijul") + (synopsis "Diff algorithms, also called longest common subsequence") + (description + "This package provides a number of diff algorithms, also called longest +common subsequence. The diff algorithms include Myer's diff and Patience +diff.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-digest-0.9 (package (name "rust-digest") @@ -7578,6 +7676,26 @@ Standard.") accessor functions on enums.") (license (list license:expat license:asl2.0)))) +(define-public rust-enum-as-inner-0.2 + (package + (inherit rust-enum-as-inner-0.3) + (name "rust-enum-as-inner") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "enum-as-inner" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0zg3h7k3g1z7a9ayqy63sk302d4dg5g2h274ddv80mj4jxn2cn1x")))) + (arguments + `(#:cargo-inputs + (("rust-proc-macro2" ,rust-proc-macro2-0.4) + ("rust-quote" ,rust-quote-0.6) + ("rust-syn" ,rust-syn-0.15)))))) + (define-public rust-env-logger-0.7 (package (name "rust-env-logger") @@ -9812,6 +9930,31 @@ API library @code{gdi32}.") "This package provides a package for generating 3D meshes/") (license license:asl2.0))) +(define-public rust-getch-0.2 + (package + (name "rust-getch") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "getch" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "00in8q95qi8a5q3zn2zcaqp5avj79f5myd2a4zfdy2m24ycvbc5v")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-termios" ,rust-termios-0.2)))) + (home-page "https://nest.pijul.com/pijul_org/getch") + (synopsis "Portable implementation of getch") + (description + "This package provides a portable implementation of getch, using +@code{_getch} on Windows, and @code{termios} on Unix.") + (license license:asl2.0))) + (define-public rust-getopts-0.2 (package (name "rust-getopts") @@ -9887,14 +10030,7 @@ retrieving random data from system source.") (arguments `(#:cargo-inputs (("rust-gettext-sys" ,rust-gettext-sys-0.19) - ("rust-locale-config" ,rust-locale-config-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'use-system-gettext - (lambda* (#:key inputs #:allow-other-keys) - (let ((gettext (assoc-ref inputs "gettext"))) - (setenv "GETTEXT_SYSTEM" gettext) - #t)))))) + ("rust-locale-config" ,rust-locale-config-0.3)))) (inputs `(("gettext" ,gettext-minimal))) (home-page "https://github.com/Koka/gettext-rs") @@ -9919,14 +10055,7 @@ retrieving random data from system source.") (arguments `(#:cargo-inputs (("rust-gettext-sys" ,rust-gettext-sys-0.19) - ("rust-locale-config" ,rust-locale-config-0.2)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'use-system-gettext - (lambda* (#:key inputs #:allow-other-keys) - (let ((gettext (assoc-ref inputs "gettext"))) - (setenv "GETTEXT_SYSTEM" gettext) - #t)))))))) + ("rust-locale-config" ,rust-locale-config-0.2)))))) (define-public rust-gettext-sys-0.19 (package @@ -9947,14 +10076,7 @@ retrieving random data from system source.") (build-system cargo-build-system) (arguments `(#:cargo-inputs - (("rust-cc" ,rust-cc-1)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'use-system-gettext - (lambda* (#:key inputs #:allow-other-keys) - (let ((gettext (assoc-ref inputs "gettext"))) - (setenv "GETTEXT_SYSTEM" gettext) - #t)))))) + (("rust-cc" ,rust-cc-1)))) (inputs `(("gettext" ,gettext-minimal))) (home-page "https://github.com/Koka/gettext-rs") @@ -10119,10 +10241,11 @@ DWARF debugging format.") ("rust-thread-id" ,rust-thread-id-3) ("rust-time" ,rust-time-0.1)))) (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs `(("libgit2" ,libgit2) ("libssh2" ,libssh2) ("openssl" ,openssl) - ("pkg-config" ,pkg-config) ("zlib" ,zlib))) (home-page "https://github.com/rust-lang/git2-rs") (synopsis "Rust bindings to libgit2") @@ -11684,6 +11807,40 @@ SystemTime}}.") ("rust-tokio-mockstream" ,rust-tokio-mockstream-1) ("rust-url" ,rust-url-1)))))) +(define-public rust-hyper-old-types-0.11 + (package + (name "rust-hyper-old-types") + (version "0.11.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "hyper-old-types" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1i69sks0bwamzqdbx8ffgkssxffv6crdmwjgl47nr5pkxi8vx5k8")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; Tests do not compile + #:cargo-inputs + (("rust-base64" ,rust-base64-0.9) + ("rust-bytes" ,rust-bytes-0.4) + ("rust-http" ,rust-http-0.1) + ("rust-httparse" ,rust-httparse-1) + ("rust-language-tags" ,rust-language-tags-0.2) + ("rust-log" ,rust-log-0.4) + ("rust-mime" ,rust-mime-0.3) + ("rust-percent-encoding" ,rust-percent-encoding-1.0) + ("rust-time" ,rust-time-0.1) + ("rust-unicase" ,rust-unicase-2)))) + (home-page "https://hyper.rs") + (synopsis "HTTP types from hyper 0.11.x") + (description + "This package contains HTTP types from the newer hyper crate in versions +0.11.x.") + (license license:expat))) + (define-public rust-hyper-rustls-0.21 (package (name "rust-hyper-rustls") @@ -13325,18 +13482,12 @@ algorithm and related formats (ZLIB, GZIP).") ("rust-openssl-sys" ,rust-openssl-sys-0.9) ;; Build dependencies: ("rust-cc" ,rust-cc-1) - ("rust-pkg-config" ,rust-pkg-config-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'dont-vendor-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + ("rust-pkg-config" ,rust-pkg-config-0.3)))) (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs `(("libgit2" ,libgit2) ("openssl" ,openssl) - ("pkg-config" ,pkg-config) ("zlib" ,zlib))) (home-page "https://github.com/rust-lang/git2-rs") (synopsis "Native bindings to the libgit2 library") @@ -13577,6 +13728,69 @@ allocator.") (license (list license:asl2.0 license:expat)))) +(define-public rust-libpijul-0.12 + (package + (name "rust-libpijul") + (version "0.12.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "libpijul" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "18d9n8xaq5ncq3375f0xrr96l8si1frczgzdlrz3fl1jby8vbl6f")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; backend::file_header::test_fileheader_alignment fails + #:cargo-inputs + (("rust-base64" ,rust-base64-0.10) + ("rust-bincode" ,rust-bincode-1) + ("rust-bitflags" ,rust-bitflags-1) + ("rust-bs58" ,rust-bs58-0.2) + ("rust-byteorder" ,rust-byteorder-1) + ("rust-chrono" ,rust-chrono-0.4) + ("rust-diffs" ,rust-diffs-0.3) + ("rust-failure" ,rust-failure-0.1) + ("rust-flate2" ,rust-flate2-1) + ("rust-hex" ,rust-hex-0.3) + ("rust-ignore" ,rust-ignore-0.4) + ("rust-log" ,rust-log-0.4) + ("rust-openssl" ,rust-openssl-0.10) + ("rust-rand" ,rust-rand-0.6) + ("rust-sanakirja" ,rust-sanakirja-0.10) + ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-0.9) + ("rust-serde" ,rust-serde-1) + ("rust-serde-derive" ,rust-serde-derive-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-tempdir" ,rust-tempdir-0.3) + ("rust-toml" ,rust-toml-0.4)))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("clang" ,clang) + ("nettle" ,nettle) + ("openssl" ,openssl))) + (home-page "https://pijul.org/") + (synopsis "Library component of the pijul version control system") + (description + "This crate contains the core API to access Pijul repositories. + +The key object is a @code{Repository}, on which @code{Txn} (immutable +transactions) and @code{MutTxn} (mutable transactions) can be started, to +perform a variety of operations. + +Another important object is a @code{Patch}, which encodes two different pieces +of information: + +@itemize +@item Information about deleted and inserted lines between two versions of a +file. +@item Information about file moves, additions and deletions. +@end itemize") + (license license:gpl2+))) + (define-public rust-libsqlite3-sys-0.15 (package (name "rust-libsqlite3-sys") @@ -13640,6 +13854,38 @@ known as zlib).") (license (list license:asl2.0 license:expat)))) +(define-public rust-line-0.1 + (package + (name "rust-line") + (version "0.1.15") + (source + (origin + (method url-fetch) + (uri (crate-uri "line" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0pissvrl5398701zlfd22w51ca32vhw83vbsl58a330hr4w5ra04")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-utf8parse" ,rust-utf8parse-0.1)))) + (home-page "https://crates.io/crates/line") + (synopsis "Rust implementation of line editing in a terminal") + (description + "The main goals of this library are: + +@itemize +@item Portability: should work on any system (Unix or Windows). +@item Support: was written for a real-world project (Pijul), so support is +unlikely to stop soon. +@item Output quality: avoid usual blinking terminal lines that older C +libraries have. +@end itemize") + (license (list license:asl2.0 license:expat)))) + (define-public rust-line-wrap-0.1 (package (name "rust-line-wrap") @@ -13759,18 +14005,12 @@ pairs in insertion order.") ;; Build dependencies: ("rust-cc" ,rust-cc-1) ("rust-pkg-config" ,rust-pkg-config-0.3) - ("rust-vcpkg" ,rust-vcpkg-0.2)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'dont-vendor-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + ("rust-vcpkg" ,rust-vcpkg-0.2)))) (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs `(("libssh2" ,libssh2) ("openssl" ,openssl) - ("pkg-config" ,pkg-config) ("zlib" ,zlib))) (home-page "https://github.com/alexcrichton/ssh2-rs") (synopsis "Native bindings to the libssh2 library") @@ -14402,6 +14642,31 @@ statement, the first matching branch is the item that gets emitted.") whether an expression matches a pattern.") (license license:expat))) +(define-public rust-matchers-0.0 + (package + (name "rust-matchers") + (version "0.0.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "matchers" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1q8ckqmkjqkznvdi9x0z769yz2bmvlqcwx51ad2lpk4mfmgpi6gh")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-regex-automata" ,rust-regex-automata-0.1)))) + (home-page "https://github.com/hawkw/matchers") + (synopsis "Regex matching on character and byte streams") + (description + "Use this crate to match on character and byte streams using regular +grammars. It provides the subset of the regex crate that only deals with +matching, not parsing substrings.") + (license license:expat))) + (define-public rust-matrixmultiply-0.2 (package (name "rust-matrixmultiply") @@ -15635,17 +15900,11 @@ IO of Windows's named pipes.") ("rust-security-framework-sys" ,rust-security-framework-sys-0.3) ("rust-tempfile" ,rust-tempfile-3)) #:cargo-development-inputs - (("rust-hex" ,rust-hex-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'find-openssl - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + (("rust-hex" ,rust-hex-0.3)))) (native-inputs - `(("openssl" ,openssl) - ("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config))) + (inputs + `(("openssl" ,openssl))) (home-page "https://github.com/sfackler/rust-native-tls") (synopsis "Wrapper over a platform's native TLS implementation") @@ -15728,21 +15987,27 @@ types as proposed in RFC 1158.") ("rust-thiserror" ,rust-thiserror-1)) #:cargo-development-inputs (("rust-bindgen" ,rust-bindgen-0.51) - ("rust-pkg-config" ,rust-pkg-config-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-missing-env-vars - (lambda* (#:key inputs #:allow-other-keys) - ;; FIXME: why do we need to set this? - (setenv "LIBCLANG_PATH" - (string-append (assoc-ref inputs "clang") "/lib")) - #t))))) + ("rust-pkg-config" ,rust-pkg-config-0.3)))) (home-page "https://gitlab.com/sequoia-pgp/nettle-rs") (synopsis "Rust bindings for the Nettle cryptographic library") (description "This package provides Rust bindings for the Nettle cryptographic library.") (license (list license:lgpl3 license:gpl2 license:gpl3)))) +(define-public rust-nettle-5 + (package + (inherit rust-nettle-7) + (version "5.0.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "nettle" version)) + (file-name + (string-append (package-name rust-nettle-7) "-" version ".tar.gz")) + (sha256 + (base32 "0zfplqdf3mag8r7lc124hl24vri8yg711jmm8gl1mpwnlhass2n4")) + (patches (search-patches "rust-nettle-disable-vendor.patch")))))) + (define-public rust-nettle-sys-2 (package (name "rust-nettle-sys") @@ -15762,8 +16027,7 @@ cryptographic library.") (inputs `(("nettle", nettle))) (arguments - `(#:skip-build? #t - #:cargo-development-inputs + `(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.51) ("rust-pkg-config" ,rust-pkg-config-0.3)))) (home-page "https://gitlab.com/sequoia-pgp/nettle-sys") @@ -17207,7 +17471,7 @@ You probably don't want to link to this crate directly; instead check out the (substitute* "Cargo.toml" ((", path =.*}") "}")) #t))))) - (native-inputs + (inputs `(("openssl" ,openssl-1.0))))) ; for openssl-sys-extras (define-public rust-openssl-probe-0.1 @@ -17251,17 +17515,11 @@ system for OpenSSL.") ("rust-autocfg" ,rust-autocfg-1.0) ("rust-cc" ,rust-cc-1) ("rust-pkg-config" ,rust-pkg-config-0.3) - ("rust-vcpkg" ,rust-vcpkg-0.2)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'find-openssl - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + ("rust-vcpkg" ,rust-vcpkg-0.2)))) (native-inputs - `(("openssl" ,openssl) - ("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config))) + (inputs + `(("openssl" ,openssl))) (home-page "https://github.com/sfackler/rust-openssl") (synopsis "FFI bindings to OpenSSL") (description @@ -17295,14 +17553,7 @@ system for OpenSSL.") (("rust-gdi32-sys" ,rust-gdi32-sys-0.2) ("rust-libc" ,rust-libc-0.2) ("rust-user32-sys" ,rust-user32-sys-0.2) - ("rust-pkg-config" ,rust-pkg-config-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'find-openssl - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))))) + ("rust-pkg-config" ,rust-pkg-config-0.3)))))) (define-public rust-openssl-sys-extras-0.7 (package @@ -17330,7 +17581,7 @@ system for OpenSSL.") (substitute* "Cargo.toml" ((", path =.*}") "}")) #t))))) - (native-inputs + (inputs `(("openssl" ,openssl-1.0))) ; openssl-1.0 specifically (home-page "https://github.com/sfackler/rust-openssl") (synopsis @@ -18075,6 +18326,27 @@ and would-block I/O operations.") path.Clean.") (license (list license:expat license:asl2.0)))) +(define-public rust-pathdiff-0.1 + (package + (name "rust-pathdiff") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "pathdiff" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0cfg3isnx6mf3wbi7rsg4nmvywby40sbcs589n20fgi09l4p1gx3")))) + (build-system cargo-build-system) + (home-page "https://github.com/Manishearth/pathdiff") + (synopsis "Library for diffing paths to obtain relative paths") + (description + "Use diff_paths to construct a relative path from a provided base +directory path to the provided path.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-pbkdf2-0.4 (package (name "rust-pbkdf2") @@ -19706,6 +19978,38 @@ macro use case.") @code{proc_macro_derive} pretend to be @code{proc_macro}.") (license (list license:expat license:asl2.0)))) +(define-public rust-progrs-0.1 + (package + (name "rust-progrs") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "progrs" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "108jx8jrv2r1brhvbqfw6fwx298k5fnw3m46kn7lv0jx2wmf0ifz")))) + (build-system cargo-build-system) + (arguments '(#:tests? #f)) + (home-page "https://nest.pijul.com/laumann/progrs") + (synopsis "Small library for displaying compact progress bars") + (description + "There are a number of libraries out there that can be used for progress +display, but in the author's opinion these libraries do it almost right - +either they eat up too much screen real estate (by not sticking to one line +per thing that should use progress) or they try to align stuff left and right. + +In the author's humble opinion, the best example of just the right amount of +information vs screen real-estate is in the Git progress output (when cloning, +pulling, etc). It uses one line per thing, and may display both percentage +complete (in cases where it's known) and even throughput (for network +transfer). + +This library mimics the Git way of showing progress.") + (license license:gpl2+))) + (define-public rust-proptest-0.9 (package (name "rust-proptest") @@ -21948,6 +22252,29 @@ functionality as retain but gives mutable borrow to the predicate.") (description "This package provided safe, fast, small crypto using Rust.") (license (list license:isc license:openssl)))) +(define-public rust-ring-0.14 + (package + (inherit rust-ring-0.16) + (name "rust-ring") + (version "0.14.6") + (source + (origin + (method url-fetch) + (uri (crate-uri "ring" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0g091akf4dpg9qj05z3gc4nlrs57mjj2bqab98gaqp79wf3c2ss2")))) + (arguments + `(#:cargo-inputs + (("rust-lazy-static" ,rust-lazy-static-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-spin" ,rust-spin-0.5) + ("rust-untrusted" ,rust-untrusted-0.6) + ("rust-winapi" ,rust-winapi-0.3) + ("rust-cc" ,rust-cc-1)))))) + (define-public rust-ring-0.13 (package/inherit rust-ring-0.16 (name "rust-ring") @@ -22118,6 +22445,41 @@ rust.") console applications.") (license license:asl2.0))) +(define-public rust-rpassword-3 + (package + (inherit rust-rpassword-4) + (name "rust-rpassword") + (version "3.0.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "rpassword" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vkifbbs160d7i7wy3kb0vw9mbf3pf470hg8f623rjkzmsyafky3")))) + (arguments + `(#:cargo-inputs + (("rust-kernel32-sys" ,rust-kernel32-sys-0.2) + ("rust-libc" ,rust-libc-0.2) + ("rust-winapi" ,rust-winapi-0.2)))))) + +(define-public rust-rpassword-2 + (package + (inherit rust-rpassword-3) + (name "rust-rpassword") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rpassword" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1v255xqkig5lwnczvm3achydhxx6kf9jcdxdlgzndgpd18bp6x6k")))))) + (define-public rust-rusqlite-0.19 (package (name "rust-rusqlite") @@ -22217,6 +22579,41 @@ hashing function.") password hashing function.") (license (list license:expat license:asl2.0)))) +(define-public rust-rust-base58-0.0 + (package + (name "rust-rust-base58") + (version "0.0.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "rust-base58" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0fa4y2jjjmg1a0cr3gz4z8rkic0hx2vx5nm23za9lwf6rlgvj4xk")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Otherwise we get an error: no method named `gen_iter` found + ;; for type `rand::prelude::ThreadRng` + (substitute* "Cargo.toml" + (("rand.*") "rand = \"<0.6\"\n")) + #t)))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-num" ,rust-num-0.1)) + #:cargo-development-inputs + (("rust-rand" ,rust-rand-0.4)))) + (home-page "https://github.com/nham/rust-base58") + (synopsis + "Simple library for converting to and from base-58 strings") + (description + "Convert to and from base-58 strings with a simple Rust api. + Currently the conversion uses the Bitcoin base58 alphabet.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-rust-hawktracer-0.7 (package (name "rust-rust-hawktracer") @@ -23085,6 +23482,35 @@ Rust.") ("rust-tempfile" ,rust-tempfile-3) ("rust-webpki-roots" ,rust-webpki-roots-0.17)))))) +(define-public rust-rustls-0.15 + (package + (inherit rust-rustls-0.16) + (name "rust-rustls") + (version "0.15.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vh93fhqfbn4ysw4xzkpkpqdz36xixz4mhs1qllgldfq5iay6wgj")))) + (arguments + `(#:tests? #f ;; 1/111 tests fail (test file not found) + #:cargo-inputs + (("rust-base64" ,rust-base64-0.10) + ("rust-log" ,rust-log-0.4) + ("rust-ring" ,rust-ring-0.14) + ("rust-sct" ,rust-sct-0.5) + ("rust-untrusted" ,rust-untrusted-0.6) + ("rust-webpki" ,rust-webpki-0.19)) + #:cargo-development-inputs + (("rust-env-logger" ,rust-env-logger-0.6) + ("rust-log" ,rust-log-0.4) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-webpki-roots" ,rust-webpki-roots-0.16)))))) + (define-public rust-rustls-0.12 (package/inherit rust-rustls-0.16 (name "rust-rustls") @@ -23386,6 +23812,46 @@ paths point to the same file.") #:cargo-development-inputs (("rust-rand" ,rust-rand-0.3)))))) +(define-public rust-sanakirja-0.10 + (package + (name "rust-sanakirja") + (version "0.10.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "sanakirja" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1fhn5lb6jn0pimnk0nbf5h4xvp28xdkdh33d57gq1ixy8b2y091y")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; tests::test_del_medium_fork fails + #:cargo-inputs + (("rust-fs2" ,rust-fs2-0.4) + ("rust-log" ,rust-log-0.4) + ("rust-memmap" ,rust-memmap-0.7) + ("rust-rand" ,rust-rand-0.6) + ("rust-uuid" ,rust-uuid-0.7)) + #:cargo-development-inputs + (("rust-env-logger" ,rust-env-logger-0.6) + ("rust-hex" ,rust-hex-0.3) + ("rust-tempdir" ,rust-tempdir-0.3)))) + (home-page "https://nest.pijul.com/pijul_org/sanakirja") + (synopsis "Key-value dictionary, using copy-on-write and B-trees") + (description + "This package provides a key-value dictionary, using copy-on-write and B +trees. It features: +@itemize +@item ACID semantics. +@item B trees with copy-on-write. +@item Support for referential transparency: databases can be cloned in time +O(log n) (where n is the size of the database). This was the original +motivation for writing this library. +@end itemize") + (license (list license:asl2.0 license:expat)))) + (define-public rust-scan-fmt-0.2 (package (name "rust-scan-fmt") @@ -23760,6 +24226,25 @@ Pwrite traits from the scroll crate.") (description "Certificate transparency SCT verification library") (license (list license:asl2.0 license:isc license:expat)))) +(define-public rust-sct-0.5 + (package + (inherit rust-sct-0.6) + (name "rust-sct") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "sct" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1fb9ym5bwswx01yyggn7v2vfryih4vnqpp4r4ssv3qaqpn7xynig")))) + (arguments + `(#:cargo-inputs + (("rust-ring" ,rust-ring-0.14) + ("rust-untrusted" ,rust-untrusted-0.6)))))) + (define-public rust-sct-0.3 (package/inherit rust-sct-0.6 (name "rust-sct") @@ -24120,6 +24605,97 @@ comparison.") (base32 "18vhypw6zgccnrlm5ps1pwa0khz7ry927iznpr88b87cagr1v2iq")))))) +(define-public rust-sequoia-openpgp-0.9 + (package + (name "rust-sequoia-openpgp") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "sequoia-openpgp" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "007h2pi7lcph5jf5bxjydm7hjwjai33yk6dic3cxknki22lxlkfw")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-base64" ,rust-base64-0.9) + ("rust-buffered-reader" ,rust-buffered-reader-0.9) + ("rust-bzip2" ,rust-bzip2-0.3) + ("rust-failure" ,rust-failure-0.1) + ("rust-flate2" ,rust-flate2-1) + ("rust-idna" ,rust-idna-0.1) + ("rust-lalrpop" ,rust-lalrpop-0.17) + ("rust-lalrpop-util" ,rust-lalrpop-util-0.17) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-memsec" ,rust-memsec-0.5) + ("rust-nettle" ,rust-nettle-5) + ("rust-quickcheck" ,rust-quickcheck-0.8) + ("rust-rand" ,rust-rand-0.6) + ("rust-sequoia-rfc2822" ,rust-sequoia-rfc2822-0.9) + ("rust-time" ,rust-time-0.1)) + #:cargo-development-inputs + (("rust-rpassword" ,rust-rpassword-3)))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("clang" ,clang) + ("nettle" ,nettle))) + (home-page "https://sequoia-pgp.org/") + (synopsis "OpenPGP data types and associated machinery") + (description + "This crate aims to provide a complete implementation of OpenPGP as +defined by RFC 4880 as well as some extensions (e.g., RFC 6637, which +describes ECC cryptography) for OpenPGP. This includes support for unbuffered +message processing. + +A few features that the OpenPGP community considers to be deprecated (e.g., +version 3 compatibility) have been left out. We have also updated some +OpenPGP defaults to avoid foot guns (e.g., we selected modern algorithm +defaults). If some functionality is missing, please file a bug report.") + (license license:gpl3))) + +(define-public rust-sequoia-rfc2822-0.9 + (package + (name "rust-sequoia-rfc2822") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "sequoia-rfc2822" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1aj34i6862718m162rqfv69fkmvdw063s6ws7hbp42n73gb08p5c")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-failure" ,rust-failure-0.1) + ("rust-lalrpop" ,rust-lalrpop-0.17) + ("rust-lalrpop-util" ,rust-lalrpop-util-0.17)) + #:cargo-development-inputs + (("rust-lazy-static" ,rust-lazy-static-1) + ("rust-quickcheck" ,rust-quickcheck-0.8) + ("rust-rand" ,rust-rand-0.6)))) + (home-page "https://sequoia-pgp.org/") + (synopsis "RFC 2822 name-addr parser") + (description + "Currently, this crate only recognizes the RFC 2822 name-addr and +addr-spec productions, i.e., things of the form: + +Name (Comment) <email@@example.org> + +and + +email@@example.org + +Although the above appear simple to parse, RFC 2822's whitespace and comment +rules are rather complex. This crate implements the whole grammar." ) + (license license:gpl3))) + (define-public rust-serde-1 (package (name "rust-serde") @@ -24994,7 +25570,7 @@ functionality and without weak references.") (substitute* "Cargo.toml" ((", path =.*}") "}")) #t))))) - (native-inputs + (inputs `(("openssl" ,openssl-1.0))))) ; for openssl-sys-extras (define-public rust-sha1-asm-0.4 @@ -25173,6 +25749,27 @@ picking compatible shaders.") "This package allows easy binding to, and loading of, shared libraries.") (license (list license:asl2.0 license:expat)))) +(define-public rust-shell-escape-0.1 + (package + (name "rust-shell-escape") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "shell-escape" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1fgs1iyx3b124b7njjmhfn9q5ipmhxrafavh8mxbfl9a9zk162hp")))) + (build-system cargo-build-system) + (home-page "https://github.com/sfackler/shell-escape") + (synopsis + "Escape characters that may have a special meaning in a shell") + (description + "Escape characters that may have a special meaning in a shell.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-shell-words-0.1 (package (name "rust-shell-words") @@ -25524,7 +26121,7 @@ data type.") "Rust FFI bindings to the SLEEF Vectorized Math Library.") (license (list license:asl2.0 license:expat)))) -(define-public rust-slog-2.5 +(define-public rust-slog-2 (package (name "rust-slog") (version "2.5.2") @@ -25551,32 +26148,6 @@ data type.") license:expat license:asl2.0)))) -(define-public rust-slog-2.4 - (package - (name "rust-slog") - (version "2.4.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "slog" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "13jh74jlckzh5cygkhs0k4r82wnmw8ha2km829xwslhr83n2w6hy")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-erased-serde" ,rust-erased-serde-0.3)))) - (home-page "https://github.com/slog-rs/slog") - (synopsis "Structured, extensible, composable logging for Rust") - (description - "Structured, extensible, composable logging for Rust.") - (license (list license:mpl2.0 - license:expat - license:asl2.0)))) - (define-public rust-smallvec-1 (package (name "rust-smallvec") @@ -25654,6 +26225,33 @@ maximal amount of configuration possible intended.") (license (list license:asl2.0 license:expat)))) +(define-public rust-socks-0.3 + (package + (name "rust-socks") + (version "0.3.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "socks" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1hnbw4c4j7dn9n3bd1v7ddkdzlxlzkfw3z29da1nxlj6jgx4r9p6")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; Tests require network connection. + #:cargo-inputs + (("rust-byteorder" ,rust-byteorder-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-winapi" ,rust-winapi-0.2) + ("rust-ws2-32-sys" ,rust-ws2-32-sys-0.2)))) + (home-page "https://github.com/sfackler/rust-socks") + (synopsis "Rust SOCKS proxy clients") + (description + "You can write SOCKS proxy clients with this crate.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-sourcefile-0.1 (package (name "rust-sourcefile") @@ -28136,6 +28734,34 @@ fixed set of worker threads.") (license (list license:asl2.0 license:expat)))) +(define-public rust-thrussh-libsodium-0.1 + (package + (name "rust-thrussh-libsodium") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "thrussh-libsodium" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0fjssjiwnmbxjvajk37l7k0fcw1ys97j7n8bpn3q3bbnz2qfrphv")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-pkg-config" ,rust-pkg-config-0.3)))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libsodium" ,libsodium))) + (home-page "https://nest.pijul.com/pijul_org/thrussh") + (synopsis "Straightforward bindings to libsodium") + (description + "You can bind to libsodium from Rust with this crate.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-time-0.2 (package (name "rust-time") @@ -28789,6 +29415,50 @@ applications backed by buffers.") Tokio.") (license (list license:expat license:asl2.0)))) +(define-public rust-tokio-net-0.2 + (package + (name "rust-tokio-net") + (version "0.2.0-alpha.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "tokio-net" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "15vm0bndn6zcpkp1yb6v736rbhqgim5skc76rz299xd3y0pr249a")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-bytes" ,rust-bytes-0.4) + ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1) + ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6) + ("rust-futures-core-preview" ,rust-futures-core-preview-0.3) + ("rust-futures-sink-preview" ,rust-futures-sink-preview-0.3) + ("rust-futures-util-preview" ,rust-futures-util-preview-0.3) + ("rust-iovec" ,rust-iovec-0.1) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-mio" ,rust-mio-0.6) + ("rust-mio-named-pipes" ,rust-mio-named-pipes-0.1) + ("rust-mio-uds" ,rust-mio-uds-0.6) + ("rust-num-cpus" ,rust-num-cpus-1) + ("rust-parking-lot" ,rust-parking-lot-0.8) + ("rust-signal-hook-registry" ,rust-signal-hook-registry-1) + ("rust-slab" ,rust-slab-0.4) + ("rust-tokio-codec" ,rust-tokio-codec-0.1) + ("rust-tokio-executor" ,rust-tokio-executor-0.1) + ("rust-tokio-io" ,rust-tokio-io-0.1) + ("rust-tokio-sync" ,rust-tokio-sync-0.1) + ("rust-tracing" ,rust-tracing-0.1) + ("rust-winapi" ,rust-winapi-0.3)))) + (home-page "https://tokio.rs") + (synopsis "Event loop that drives Tokio I/O resources") + (description + "This package provides the event loop that drives Tokio I/O resources.") + (license license:expat))) + (define-public rust-tokio-openssl-0.4 (package (name "rust-tokio-openssl") @@ -28983,6 +29653,33 @@ using Rustls.") ("rust-webpki-roots" ,rust-webpki-roots-0.18)))) (license (list license:expat license:asl2.0)))) +(define-public rust-tokio-rustls-0.9 + (package + (inherit rust-tokio-rustls-0.12) + (name "rust-tokio-rustls") + (version "0.9.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "tokio-rustls" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1jd63sl177sxacnksaxhazzmamwds98xk3niprh2qib75a1rk8cm")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-bytes" ,rust-bytes-0.4) + ("rust-futures" ,rust-futures-0.1) + ("rust-iovec" ,rust-iovec-0.1) + ("rust-rustls" ,rust-rustls-0.15) + ("rust-tokio-io" ,rust-tokio-io-0.1) + ("rust-webpki" ,rust-webpki-0.19)) + #:cargo-development-inputs + (("rust-lazy-static" ,rust-lazy-static-1) + ("rust-tokio" ,rust-tokio-0.1)))))) + (define-public rust-tokio-signal-0.2 (package (name "rust-tokio-signal") @@ -29672,6 +30369,123 @@ automatically instrumenting functions.") @code{futures} with @code{tracing}.") (license license:expat))) +(define-public rust-tracing-fmt-0.1 + (package + (name "rust-tracing-fmt") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "tracing-fmt" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0wagcrd6w8d3k7zdvg6sy2bwfh8w87i6ndia69p54fc7p3z4f1c8")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-tracing-subscriber" ,rust-tracing-subscriber-0.1)) + #:cargo-development-inputs + (("rust-tracing" ,rust-tracing-0.1)))) + (home-page "https://tokio.rs") + (synopsis "Tracing subscriber that formats and logs trace data") + (description + "This package provides a tracing subscriber that formats and logs trace +data. Moved to the tracing-subscriber crate.") + (license license:expat))) + +(define-public rust-tracing-log-0.1 + (package + (name "rust-tracing-log") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "tracing-log" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1fdr0az98q9m5kiybvdvsb2m9mg86fdidgb5czzq2d71g1qqq3sy")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-env-logger" ,rust-env-logger-0.6) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-log" ,rust-log-0.4) + ("rust-tracing-core" ,rust-tracing-core-0.1)) + #:cargo-development-inputs + (("rust-tracing" ,rust-tracing-0.1)))) + (home-page "https://tokio.rs") + (synopsis + "Provides compatibility between tracing the log crates") + (description + "Tracing is a framework for instrumenting Rust programs with +context-aware, structured, event-based diagnostic information. This crate +provides compatibility layers for using tracing alongside the logging facade +provided by the log crate. + +This crate provides: + +@itemize +@item @code{AsTrace} and @code{AsLog} traits for converting between tracing +and log types. +@item @code{LogTracer}, a @code{log::Log} implementation that consumes +@code{log::Records} and outputs them as @code{tracing::Events}. +@item An @code{env_logger} module, with helpers for using the env_logger crate +with tracing (optional, enabled by the env-logger feature). +@end itemize") + (license license:expat))) + +(define-public rust-tracing-subscriber-0.1 + (package + (name "rust-tracing-subscriber") + (version "0.1.6") + (source + (origin + (method url-fetch) + (uri (crate-uri "tracing-subscriber" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0i9fhlyz8mn2znpgmi5bv9y24pwpkkgfxs0rwcf6dl6djmjs2b0r")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; Some test files missing. + #:cargo-inputs + (("rust-ansi-term" ,rust-ansi-term-0.11) + ("rust-chrono" ,rust-chrono-0.4) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-matchers" ,rust-matchers-0.0) + ("rust-owning-ref" ,rust-owning-ref-0.4) + ("rust-parking-lot" ,rust-parking-lot-0.9) + ("rust-regex" ,rust-regex-1) + ("rust-smallvec" ,rust-smallvec-0.6) + ("rust-tracing-core" ,rust-tracing-core-0.1) + ("rust-tracing-log" ,rust-tracing-log-0.1)) + #:cargo-development-inputs + (("rust-criterion" ,rust-criterion-0.3) + ("rust-log" ,rust-log-0.4) + ("rust-tracing" ,rust-tracing-0.1) + ("rust-tracing-log" ,rust-tracing-log-0.1)))) + (home-page "https://tokio.rs") + (synopsis "Implement and compose tracing subscribers") + (description + "Utilities for implementing and composing tracing subscribers. + +Tracing is a framework for instrumenting Rust programs to collect +scoped, structured, and async-aware diagnostics. The Subscriber trait +represents the functionality necessary to collect this trace +data. This crate contains tools for composing subscribers out of +smaller units of behaviour, and batteries-included implementations of +common subscriber functionality. + +Tracing-subscriber is intended for use by both Subscriber authors and +application authors using tracing to instrument their applications.") + (license license:expat))) + (define-public rust-traitobject-0.1 (package (name "rust-traitobject") @@ -29850,6 +30664,48 @@ extension for the Trust-DNS client to use tokio-openssl for TLS.") foundational DNS protocol library for all Trust-DNS projects.") (license (list license:expat license:asl2.0)))) +(define-public rust-trust-dns-proto-0.7 + (package + (inherit rust-trust-dns-proto-0.19) + (name "rust-trust-dns-proto") + (version "0.7.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "trust-dns-proto" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0099dm57nnizx4apik9sh3mnvr7rp9mivc903v8xss13dkgynnam")))) + (arguments + `(#:cargo-inputs + (("rust-byteorder" ,rust-byteorder-1) + ("rust-data-encoding" ,rust-data-encoding-2) + ("rust-enum-as-inner" ,rust-enum-as-inner-0.2) + ("rust-failure" ,rust-failure-0.1) + ("rust-futures" ,rust-futures-0.1) + ("rust-idna" ,rust-idna-0.1) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-log" ,rust-log-0.4) + ("rust-openssl" ,rust-openssl-0.10) + ("rust-rand" ,rust-rand-0.6) + ("rust-ring" ,rust-ring-0.14) + ("rust-serde" ,rust-serde-1) + ("rust-smallvec" ,rust-smallvec-0.6) + ("rust-socket2" ,rust-socket2-0.3) + ("rust-tokio-executor" ,rust-tokio-executor-0.1) + ("rust-tokio-io" ,rust-tokio-io-0.1) + ("rust-tokio-reactor" ,rust-tokio-reactor-0.1) + ("rust-tokio-tcp" ,rust-tokio-tcp-0.1) + ("rust-tokio-timer" ,rust-tokio-timer-0.2) + ("rust-tokio-udp" ,rust-tokio-udp-0.1) + ("rust-untrusted" ,rust-untrusted-0.6) + ("rust-url" ,rust-url-1)) + #:cargo-development-inputs + (("rust-env-logger" ,rust-env-logger-0.6) + ("rust-tokio" ,rust-tokio-0.1)))))) + (define-public rust-trust-dns-resolver-0.19 (package (name "rust-trust-dns-resolver") @@ -29929,6 +30785,39 @@ other queries.") extension for the Trust-DNS client to use rustls for TLS.") (license (list license:expat license:asl2.0)))) +(define-public rust-trust-dns-rustls-0.6 + (package + (inherit rust-trust-dns-rustls-0.19) + (name "rust-trust-dns-rustls") + (version "0.6.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "trust-dns-rustls" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vbh2y7w2s5gcw33fn4hb5f927kgjm6603vw63slg9riikmsiq43")))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("openssl" ,openssl))) + (arguments + `(#:cargo-test-flags + '("--release" "--" "--skip=tests::test_tls_client_stream_ipv4") + #:cargo-inputs + (("rust-futures" ,rust-futures-0.1) + ("rust-log" ,rust-log-0.4) + ("rust-rustls" ,rust-rustls-0.15) + ("rust-tokio-rustls" ,rust-tokio-rustls-0.9) + ("rust-tokio-tcp" ,rust-tokio-tcp-0.1) + ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.7) + ("rust-webpki" ,rust-webpki-0.19)) + #:cargo-development-inputs + (("rust-openssl" ,rust-openssl-0.10) + ("rust-tokio" ,rust-tokio-0.1)))))) + (define-public rust-try-from-0.3 (package (name "rust-try-from") @@ -30880,7 +31769,7 @@ Unix users and groups.") ("rust-md5" ,rust-md5-0.6) ("rust-rand" ,rust-rand-0.7) ("rust-serde" ,rust-serde-1) - ("rust-slog" ,rust-slog-2.5)))) + ("rust-slog" ,rust-slog-2)))) (home-page "https://github.com/uuid-rs/uuid") (synopsis "Library to generate and parse UUIDs") (description @@ -30909,7 +31798,7 @@ Unix users and groups.") ("rust-rand" ,rust-rand-0.6) ("rust-serde" ,rust-serde-1) ("rust-sha1" ,rust-sha1-0.6) - ("rust-slog" ,rust-slog-2.4) + ("rust-slog" ,rust-slog-2) ("rust-winapi" ,rust-winapi-0.3)) #:cargo-development-inputs (("rust-bincode" ,rust-bincode-1) @@ -31879,6 +32768,28 @@ attribute that is not in the shared backend crate.") Verification.") (license license:isc))) +(define-public rust-webpki-0.19 + (package + (inherit rust-webpki-0.21) + (name "rust-webpki") + (version "0.19.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "10nhyxlqsa4caxlxrijm5h79rdg6ld8hqy78ldjnnfhaj3biqzjg")))) + (arguments + `(#:tests? #f ; tests fail to build "missing file tests/ed25519/ee.der" + #:cargo-inputs + (("rust-ring" ,rust-ring-0.14) + ("rust-untrusted" ,rust-untrusted-0.6)) + #:cargo-development-inputs + (("rust-base64" ,rust-base64-0.9)))))) + (define-public rust-webpki-0.18 (package/inherit rust-webpki-0.21 (name "rust-webpki") @@ -31960,6 +32871,25 @@ with webpki.") (sha256 (base32 "12vi8dh0yik0h4f0b9dnlw5i3gxyky7iblbksh6zcq4xvlvswqm2")))))) +(define-public rust-webpki-roots-0.16 + (package + (inherit rust-webpki-roots-0.17) + (name "rust-webpki-roots") + (version "0.16.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "03ny02mwqdgd2ff23k03kbwr2rrcaymxhp7jcjjikfh340hs83y1")))) + (arguments + `(#:cargo-inputs + (("rust-untrusted" ,rust-untrusted-0.6) + ("rust-webpki" ,rust-webpki-0.19)))))) + (define-public rust-webpki-roots-0.14 (package/inherit rust-webpki-roots-0.18 (name "rust-webpki-roots") @@ -32391,9 +33321,8 @@ API.") (arguments `(#:skip-build? #t #:cargo-inputs - (("rust-winapi" ,rust-winapi-0.2)) - #:cargo-development-inputs - (("rust-winapi-build" ,rust-winapi-build-0.1)))) + (("rust-winapi" ,rust-winapi-0.2) + ("rust-winapi-build" ,rust-winapi-build-0.1)))) (home-page "https://github.com/retep998/winapi-rs") (synopsis "Function definitions for the Windows API library ws2_32") (description diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index cdfb9643c0..bfe24027fb 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -744,10 +744,10 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.") (license (list license:expat ; icc2ps/*.[ch] license:gpl2+)))) ; everything else -(define-public escpr +(define-public epson-inkjet-printer-escpr (package - (name "escpr") - (version "1.7.7") + (name "epson-inkjet-printer-escpr") + (version "1.7.8") ;; XXX: This currently works. But it will break as soon as a newer ;; version is available since the URLs for older versions are not ;; preserved. An alternative source will be added as soon as @@ -755,15 +755,19 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.") (source (origin (method url-fetch) - (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/10/49/18/" - "f3016be6120a7271a6d9cb64872f817bce1920b8/" - "epson-inkjet-printer-escpr-1.7.7-1lsb3.2.tar.gz")) + (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/12/04/32/" + "1a455ef8618def65700ca4e446311c2fb43cd839/" + "epson-inkjet-printer-escpr-1.7.8-1lsb3.2.tar.gz")) (sha256 - (base32 "0khdf2a9iwh9aplj2gzyzl53yyfnfv0kszk3p018jnirl5l475ld")))) + (base32 "1pygg2bd2gh27dc65h3dzwrpvi6bq5c87wl0ldchqlc2b3blsx6p")))) (build-system gnu-build-system) (arguments - `(#:configure-flags - `(,(string-append "--prefix=" + `(#:modules + ((srfi srfi-26) + ,@%gnu-build-system-modules) + #:configure-flags + `("--disable-static" + ,(string-append "--prefix=" (assoc-ref %outputs "out")) ,(string-append "--with-cupsfilterdir=" (assoc-ref %outputs "out") "/lib/cups/filter") @@ -781,7 +785,13 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.") (string-append match "aclocal")) (("^(AUTOMAKE=).*" _ match) (string-append match "automake"))) - #t))))) + #t)) + (add-after 'install 'compress-PPDs + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion out + (for-each (cut invoke "gzip" "-9" <>) + (find-files "share/cups" "\\.ppd$"))))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) @@ -793,9 +803,12 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.") System} that offers high-quality printing with Seiko@tie{}Epson color ink jet printers. It can be used only with printers that support the Epson@tie{}ESC/P-R language.") - (home-page "http://download.ebz.epson.net/dsc/search/01/search") + (home-page "http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX") (license license:gpl2+))) +(define-public escpr + (deprecated-package "escpr" epson-inkjet-printer-escpr)) + (define-public splix ;; Last released in 2009 <https://sourceforge.net/projects/splix/files/>. ;; Last SVN commit was 2013 <https://svn.code.sf.net/p/splix/code/splix/>. diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm index 4e3c1e8803..78bb1811f9 100644 --- a/gnu/packages/dictionaries.scm +++ b/gnu/packages/dictionaries.scm @@ -242,7 +242,7 @@ and a Python library.") (origin (method git-fetch) (uri (git-reference - (url"https://github.com/soimort/translate-shell.git") + (url"https://github.com/soimort/translate-shell") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 9167ccb41a..29f43a2d5f 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -1052,7 +1052,7 @@ that support this feature).") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/memkind/memkind.git") + (url "https://github.com/memkind/memkind") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 2dc99adac8..aa4411c5a2 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -862,14 +862,13 @@ settings.py and easily use them in your project.") (define-public python-django-q (package (name "python-django-q") - (version "1.3.3") + (version "1.3.4") (source (origin (method url-fetch) (uri (pypi-uri "django-q" version)) (sha256 - (base32 - "1fs29767940akbsn3vdzw2rqnn9v77b0b55bi7fvydny1rk7fw6y")))) + (base32 "03z1pf6wlf47i7afr79a8fiiidfk1vq19yaqnv0m4qdny7f58gaj")))) (build-system python-build-system) ;; FIXME: Tests require disque, Redis, MongoDB, Docker. (arguments '(#:tests? #f)) diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm index 6b428528b1..90db1a2d42 100644 --- a/gnu/packages/djvu.scm +++ b/gnu/packages/djvu.scm @@ -27,12 +27,17 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) + #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages linux) + #:use-module (gnu packages ncurses) #:use-module (gnu packages pdf) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -51,6 +56,9 @@ (base32 "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6")))) (build-system gnu-build-system) + (inputs + `(("libjpeg-turbo" ,libjpeg-turbo) + ("libtiff" ,libtiff))) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'reproducible @@ -160,3 +168,107 @@ It is able to extract: @end itemize\n") (home-page "https://jwilk.net/software/pdf2djvu") (license license:gpl2))) + +(define-public djvu2pdf + (package + (name "djvu2pdf") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://0x2a.at/site/projects/djvu2pdf/djvu2pdf-" + version ".tar.gz")) + (sha256 + (base32 "0v2ax30m7j1yi4m02nzn9rc4sn4vzqh5vywdh96r64j4pwvn5s5g")))) + (build-system gnu-build-system) + (inputs + `(("djvulibre" ,djvulibre) + ("gawk" ,gawk) + ("ghostscript" ,ghostscript) + ("grep" ,grep) + ("ncurses" ,ncurses) + ("which" ,which))) + (arguments + `(#:tests? #f ; No test suite + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((djvulibre (assoc-ref inputs "djvulibre")) + (gawk (assoc-ref inputs "gawk")) + (ghostscript (assoc-ref inputs "ghostscript")) + (grep (assoc-ref inputs "grep")) + (ncurses (assoc-ref inputs "ncurses")) + (which (assoc-ref inputs "which"))) + (substitute* "djvu2pdf" + (("awk") + (string-append gawk "/bin/awk")) + (("ddjvu") + (string-append djvulibre "/bin/ddjvu")) + (("djvudump") + (string-append djvulibre "/bin/djvudump")) + (("grep") + (string-append grep "/bin/grep")) + (("gs") + (string-append ghostscript "/bin/gs")) + (("tput ") + (string-append ncurses "/bin/tput ")) + (("which") + (string-append which "/bin/which")))) + #t)) + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref %outputs "out"))) + (install-file "djvu2pdf" + (string-append out "/bin")) + (install-file "djvu2pdf.1.gz" + (string-append out "/share/man/man1")) + #t)))))) + (synopsis "DjVu to PDF converter") + (description "This is a small tool to convert DjVu files to PDF files.") + (home-page "https://0x2a.at/site/projects/djvu2pdf/") + (license license:gpl2+))) + +(define-public minidjvu + (package + (name "minidjvu") + (version "0.8") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/minidjvu/minidjvu/" + version "/minidjvu-" version ".tar.gz")) + (sha256 + (base32 "0jmpvy4g68k6xgplj9zsl6brg6vi81mx3nx2x9hfbr1f4zh95j79")))) + (build-system gnu-build-system) + (native-inputs + `(("gettext" ,gettext-minimal))) + (inputs + `(("libjpeg-turbo" ,libjpeg-turbo) + ("libtiff" ,libtiff) + ("zlib" ,zlib))) + (arguments + '(#:configure-flags '("--disable-static") + #:parallel-build? #f + #:tests? #f ; No test suite + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda _ + (substitute* "Makefile.in" + (("/usr/bin/gzip") + "gzip")) + #t)) + (add-before 'install 'make-lib-directory + (lambda* (#:key outputs #:allow-other-keys) + (mkdir-p (string-append (assoc-ref outputs "out") "/lib")) + #t))))) + (synopsis "Black and white DjVu encoder") + (description + "@code{minidjvu} is a multipage DjVu encoder and single page +encoder/decoder. It doesn't support colors or grayscales, just black +and white.") + (home-page "https://sourceforge.net/projects/minidjvu/") + (license license:gpl2))) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index c08f6eb3c6..950986045e 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -70,11 +70,11 @@ (inputs `(("python-requests" ,python-requests-2.20) ("python-six" ,python-six) - ("python-urllib3" ,python-urllib3-1.24) - ("python-websocket-client" ,python-websocket-client))) + ("python-urllib3" ,python-urllib3-1.24))) (propagated-inputs `(("python-docker-pycreds" ,python-docker-pycreds) - ("python-paramiko" ,python-paramiko))) ; adds SSH support + ("python-paramiko" ,python-paramiko) ;adds SSH support + ("python-websocket-client" ,python-websocket-client))) (home-page "https://github.com/docker/docker-py/") (synopsis "Python client for Docker") (description "Docker-Py is a Python client for the Docker container diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index 6532bb4704..0fca0b11eb 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -63,7 +63,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/latex2html/latex2html.git") + (url "https://github.com/latex2html/latex2html") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 95898b9cad..885487bf17 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2238,7 +2238,7 @@ Lock key.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/contrapunctus-1/chronometrist.git") + (url "https://github.com/contrapunctus-1/chronometrist") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -3048,6 +3048,32 @@ graphical tree presentation of all previous states of buffer that allows easily move between them.") (license license:gpl3+))) +(define-public emacs-undo-fu + ;; There are no tagged releases upstream on gitlab, instead we are using + ;; the most recent commit. + (let ((commit "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca") + (revision "0")) + (package + (name "emacs-undo-fu") + (version (git-version "0.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/ideasman42/emacs-undo-fu") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j")))) + (build-system emacs-build-system) + (home-page "https://gitlab.com/ideasman42/emacs-undo-fu") + (synopsis "Simple, stable linear undo with redo for Emacs") + (description + "This is a light weight wrapper for Emacs built-in undo system, +adding convenient undo/redo without losing access to the full undo history, +allowing you to visit all previous states of the document if you need.") + (license license:gpl3+)))) + (define-public emacs-s (package (name "emacs-s") @@ -3920,8 +3946,8 @@ in Lisp modes.") (license license:gpl3+)))) (define-public emacs-literate-calc-mode - (let ((commit "e855bd718fa7d0d70b8f43264e10664369dd3a37") - (revision "0")) + (let ((commit "a50e897a816cb5580ad6ec867eeaae212e0e4798") + (revision "1")) (package (name "emacs-literate-calc-mode") (version (git-version "0.1" revision commit)) @@ -3933,7 +3959,7 @@ in Lisp modes.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01")))) + (base32 "0z6y5f1rj28lbr30m6g4a9l6ahs66whi8861g4cx9xzhs84nwv5g")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-s" ,emacs-s))) @@ -4564,7 +4590,7 @@ compile}.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/purcell/flycheck-ledger.git") + (url "https://github.com/purcell/flycheck-ledger") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -7044,29 +7070,33 @@ parallel.") (license license:gpl3+))) (define-public emacs-request - (package - (name "emacs-request") - (version "0.3.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tkf/emacs-request") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #f)) ; requires network access. - (propagated-inputs - `(("emacs-deferred" ,emacs-deferred))) - (home-page "https://github.com/tkf/emacs-request") - (synopsis "Package for speaking HTTP in Emacs Lisp") - (description "This package provides a HTTP request library with multiple + ;; We prefer a more recent commit that has support for auth-source, + ;; which makes authentication more convenient for users and maintainers. + (let ((commit "d02d1347ffdf138cffd380cbeac62ac8732036ef") + (revision "0")) + (package + (name "emacs-request") + (version (git-version "0.3.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tkf/emacs-request") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs")))) + (build-system emacs-build-system) + (arguments + `(#:tests? #f)) ; requires network access. + (propagated-inputs + `(("emacs-deferred" ,emacs-deferred))) + (home-page "https://github.com/tkf/emacs-request") + (synopsis "Package for speaking HTTP in Emacs Lisp") + (description "This package provides a HTTP request library with multiple backends. It supports url.el which is shipped with Emacs and the curl command line program.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-rudel (package @@ -7122,6 +7152,35 @@ the Hydra very seamless; it's like a minor mode that disables itself automatically.") (license license:gpl3+))) +(define-public emacs-pretty-hydra + (package + (name "emacs-pretty-hydra") + (version "0.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jerrypnz/major-mode-hydra.el") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-hydra" ,emacs-hydra) + ("emacs-s" ,emacs-s))) + (arguments + `(#:exclude (cons "^major-mode-hydra\\.el" %default-exclude))) + (home-page "https://github.com/jerrypnz/major-mode-hydra.el") + (synopsis "Major mode keybindings managed by Hydra") + (description + "This package offers an hydra-based method of managing major +mode-specific key bindings. It is intended for use as a library only; see +package @code{emacs-major-mode-hydra} for a user-friendly interface.") + (license license:gpl3+))) + (define-public emacs-interleave (package (name "emacs-interleave") @@ -7144,6 +7203,20 @@ automatically.") by side to an Org buffer with your notes relevant to the current page.") (license license:gpl3+))) +(define-public emacs-major-mode-hydra + (package + (inherit emacs-pretty-hydra) + (name "emacs-major-mode-hydra") + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-pretty-hydra" ,emacs-pretty-hydra))) + (arguments + `(#:exclude (cons "^pretty-hydra\\.el" %default-exclude))) + (synopsis "Create nice-looking hydras") + (description + "This package provides the macro @code{pretty-hydra-define} to define +hydras with one column per group of heads."))) + (define-public emacs-ivy (package (name "emacs-ivy") @@ -7662,7 +7735,7 @@ The purpose of this library is to wrap all the quirks and hassle of (origin (method git-fetch) (uri (git-reference - (url "https://github.com/fuxialexander/counsel-notmuch.git") + (url "https://github.com/fuxialexander/counsel-notmuch") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -12239,14 +12312,14 @@ highlighting.") (define-public emacs-jsonrpc (package (name "emacs-jsonrpc") - (version "1.0.12") + (version "1.0.14") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "jsonrpc-" version ".el")) (sha256 - (base32 "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad")))) + (base32 "069l0sqkambam4ikj9id36kdw1jdjna8v586d51m64hiz96rmvm6")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/jsonrpc.html") (synopsis "JSON-RPC library") @@ -12544,7 +12617,7 @@ when browsing files with Dired.") (define-public emacs-org-edit-latex (package (name "emacs-org-edit-latex") - (version "0.8.0") + (version "0.8.3") (source (origin (method git-fetch) @@ -12553,18 +12626,16 @@ when browsing files with Dired.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842")))) + (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-auctex" ,emacs-auctex) - ;; The version of org in Emacs 25.2 is not sufficient, because the - ;; `org-latex-make-preamble' function is required. ("emacs-org" ,emacs-org))) (home-page "https://github.com/et2010/org-edit-latex") - (synopsis "Edit a latex fragment just like editing a src block") - (description "@code{emacs-org-edit-latex} is an extension for org-mode. -It lets you edit a latex fragment in a dedicated buffer just like editing a -src block.") + (synopsis "Edit a LaTeX fragment just like editing a source block") + (description + "Org Edit LaTeX is an extension for Org mode. It lets you edit a LaTeX +fragment in a dedicated buffer just like editing a source block.") (license license:gpl3+))) (define-public emacs-emamux @@ -12635,31 +12706,29 @@ functions written in continuation-passing style.") (license license:gpl3+))) (define-public emacs-attrap - (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d") - (revision "2")) - (package - (name "emacs-attrap") - (version (git-version "1.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jyp/attrap") - (commit commit))) - (sha256 - (base32 - "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f) - ("emacs-flycheck" ,emacs-flycheck) - ("emacs-s" ,emacs-s))) - (home-page "https://github.com/jyp/attrap") - (synopsis "Fix coding error at point") - (description "This package provides a command to fix the Flycheck error + (package + (name "emacs-attrap") + (version "1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jyp/attrap") + (commit version))) + (sha256 + (base32 "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-flycheck" ,emacs-flycheck) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/jyp/attrap") + (synopsis "Fix coding error at point") + (description "This package provides a command to fix the Flycheck error at point.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-git-messenger (package @@ -13268,16 +13337,16 @@ contexts. (define-public emacs-polymode (package (name "emacs-polymode") - (version "0.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/polymode/polymode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b")))) + (version "0.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/polymode/polymode") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn")))) (build-system emacs-build-system) (home-page "https://github.com/polymode/polymode") (synopsis "Framework for multiple Emacs modes based on indirect buffers") @@ -13290,33 +13359,30 @@ literate programming tools for exporting, weaving and tangling.") (license license:gpl3+))) (define-public emacs-polymode-ansible - (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8")) - (package - (name "emacs-polymode-ansible") - ;; No upstream version release yet. - (version (git-version "0.1" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/mavit/poly-ansible") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-ansible-doc" ,emacs-ansible-doc) - ("emacs-jinja2-mode" ,emacs-jinja2-mode) - ("emacs-polymode" ,emacs-polymode) - ("emacs-yaml-mode" ,emacs-yaml-mode))) - (properties '((upstream-name . "poly-ansible"))) - (home-page "https://gitlab.com/mavit/poly-ansible/") - (synopsis "Polymode for Ansible - Jinja2 in YAML") - (description - "Edit YAML files for Ansible containing embedded Jinja2 templating.") - (license license:gpl3+)))) + (package + (name "emacs-polymode-ansible") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/mavit/poly-ansible") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f0yq6gmkp194nxk90ipprglf1xkmxrgz1rkgrhfslvxq4q2l81h")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-ansible-doc" ,emacs-ansible-doc) + ("emacs-jinja2-mode" ,emacs-jinja2-mode) + ("emacs-polymode" ,emacs-polymode) + ("emacs-yaml-mode" ,emacs-yaml-mode))) + (properties '((upstream-name . "poly-ansible"))) + (home-page "https://gitlab.com/mavit/poly-ansible/") + (synopsis "Polymode for Ansible - Jinja2 in YAML") + (description + "Edit YAML files for Ansible containing embedded Jinja2 templating.") + (license license:gpl3+))) (define-public emacs-powershell ;; Tagged branch 0.1 is outdated (2015). @@ -13345,7 +13411,7 @@ Microsoft PowerShell files.") (define-public emacs-polymode-org (package (name "emacs-polymode-org") - (version "0.2") + (version "0.2.2") (source (origin (method git-fetch) @@ -13354,8 +13420,7 @@ Microsoft PowerShell files.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck")))) + (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-polymode" ,emacs-polymode))) @@ -13363,10 +13428,9 @@ Microsoft PowerShell files.") (home-page "https://github.com/polymode/poly-org") (synopsis "Polymode definitions for Org mode buffers") (description - "Provides definitions for @code{emacs-polymode} to support -@code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the -native modes of the blocks' languages while remaining inside the primary Org -buffer.") + "This package provides definitions for Polymode to support Org buffers. +It edits source blocks in an Org buffer using the native modes of the blocks' +languages while remaining inside the primary Org buffer.") (license license:gpl3+))) (define-public eless @@ -17339,7 +17403,7 @@ Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep (base32 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1")))) (build-system emacs-build-system) - (home-page "https://github.com/bgamari/dts-mode.git") + (home-page "https://github.com/bgamari/dts-mode") (synopsis "Emacs minor mode for editing device tree files") (description "This package provides an Emacs minor mode for highlighting @@ -19291,7 +19355,7 @@ scratch, and you think the Spacemacs theme looks good. (origin (method git-fetch) (uri (git-reference - (url "https://github.com/TheBB/spaceline.git") + (url "https://github.com/TheBB/spaceline") (commit commit))) (sha256 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp")) @@ -19370,7 +19434,7 @@ correctly.") (define-public emacs-helm-sly (package (name "emacs-helm-sly") - (version "0.5.0") + (version "0.5.1") (source (origin (method git-fetch) (uri (git-reference @@ -19379,7 +19443,7 @@ correctly.") (file-name (git-file-name name version)) (sha256 (base32 - "1690rxwwg69jbcjhi51nyjlx3gziaiaa8ssyal71gmc6schq2592")))) + "13s2dj09mcdwlibjlahyyq2dxjkjlpxs88dbdyvcd64249jmahsx")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-helm" ,emacs-helm) @@ -19885,7 +19949,7 @@ programs can use this table component for the application UI.") (package (name "emacs-leetcode") (version (git-version "0" "1" commit)) - (home-page "https://github.com/ginqi7/leetcode-emacs.git") + (home-page "https://github.com/ginqi7/leetcode-emacs") (source (origin (method git-fetch) (uri (git-reference @@ -20957,10 +21021,10 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".") (license license:gpl3+)))) (define-public emacs-forge - (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0")) + (let ((commit "05ef02913004826165c383bd6d2ff6574542b76c")) (package (name "emacs-forge") - (version (git-version "0.1.0" "4" commit)) + (version (git-version "0.1.0" "5" commit)) (source (origin (method git-fetch) @@ -20970,7 +21034,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".") (file-name (git-file-name name version)) (sha256 (base32 - "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr")))) + "1vv7xlawj2zmwqk69qlsqflhh0lbyqm5xf4x8l4v2069g0k8mmx1")))) (build-system emacs-build-system) (native-inputs `(("texinfo" ,texinfo))) @@ -22675,14 +22739,14 @@ federated microblogging social network.") (define-public emacs-ebdb (package (name "emacs-ebdb") - (version "0.6.20") + (version "0.6.21") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "ebdb-" version ".tar")) (sha256 - (base32 "1rhmnz2g4nmk893gzxm1hfwqf5nan20yss5mxilfpza2jh4368h3")))) + (base32 "0pp190wr6z98kggmw9ls486f9vxfimdjdbqsp263qiyi21ws98if")))) (build-system emacs-build-system) (home-page "https://github.com/girzel/ebdb") (synopsis "EIEIO port of BBDB, Emacs's contact-management package") @@ -24915,7 +24979,7 @@ personal wiki.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/conao3/org-generate.el.git") + (url "https://github.com/conao3/org-generate.el") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -25208,7 +25272,7 @@ picked up when copy-pasting text from buffer to buffer.") (define-public emacs-org-webring (package (name "emacs-org-webring") - (version "1.9.8-rc4") + (version "2.0.0") (source (origin (method git-fetch) @@ -25218,7 +25282,7 @@ picked up when copy-pasting text from buffer to buffer.") (file-name (git-file-name name version)) (sha256 (base32 - "0z2q29i9ng2vkzb6qbwb0dzvz8yv44p0kg07lx59pcdbv7mznjmc")))) + "1si0jah7n2gvlvghjy5dpannqpkxni5rczfp1x2a4z6ydalr3bn5")))) (build-system emacs-build-system) (arguments `(#:phases @@ -25473,3 +25537,57 @@ Emacs.") uncluttered design pattern to achieve optimal focus and readability for code syntax highlighting and UI components.") (license license:expat))) + +(define-public emacs-janet-mode + (let ((commit "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7")) + (package + (name "emacs-janet-mode") + (version (git-version "0.1.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ALSchwalm/janet-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz")))) + (build-system emacs-build-system) + (home-page "https://github.com/ALSchwalm/janet-mode") + (synopsis "Emacs major mode for the Janet programming language") + (description + "This package provides an Emacs major mode for editing Janet files.") + (license license:gpl3)))) + +(define-public emacs-inf-janet + (let ((commit "df46651d3aad32593b2195c80ca91fb64d571fb7")) + (package + (name "emacs-inf-janet") + (version (git-version "0.1.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/velkyel/inf-janet") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7")))) + (build-system emacs-build-system) + (propagated-inputs + `(("janet-mode" ,emacs-janet-mode))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-program-name + (lambda _ + (make-file-writable "inf-janet.el") + (emacs-substitute-variables "inf-janet.el" + ("inf-janet-program" "janet")) + #t))))) + (home-page "https://github.com/velkyel/inf-janet") + (synopsis "Run an external Janet process in an Emacs buffer") + (description + "This Emacs package provides a Janet REPL to evaluate @code{janet-mode} +s-expression.") + (license license:expat)))) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 89d4aaf97e..d6f487bd17 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -1379,7 +1379,7 @@ debugging them, and more.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/john30/ebusd.git") + (url "https://github.com/john30/ebusd") (commit (string-append "v" version)))) (file-name (string-append name "-" version "-checkout")) (sha256 @@ -1407,7 +1407,7 @@ debugging them, and more.") ,(origin (method git-fetch) (uri (git-reference - (url "https://github.com/john30/ebusd-configuration.git") + (url "https://github.com/john30/ebusd-configuration") (commit "666c0f6b9c4d7545eff7f43ab28a1c7baeab7913"))) (file-name "config-checkout") (sha256 diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm index 950cb16505..dd7c7c8365 100644 --- a/gnu/packages/enchant.scm +++ b/gnu/packages/enchant.scm @@ -49,7 +49,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/nuspell/nuspell.git") + (url "https://github.com/nuspell/nuspell") (commit (string-append "v" version)))) (file-name diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 974ddc30ee..bc147bf3c6 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -68,6 +68,7 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) + #:use-module (gnu packages version-control) #:use-module (gnu packages xml)) (define-public autofs @@ -182,6 +183,79 @@ another location, similar to @command{mount --bind}. It can be used for: @end itemize ") (license license:gpl2+))) +(define-public davfs2 + (package + (name "davfs2") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://download.savannah.nongnu.org/releases/" + "davfs2/davfs2-" version ".tar.gz")) + (sha256 + (base32 "0l1vnv5lfigciwg17p10zxwhzj4qw2d9kw30prr7g4dxhmb6fsrf")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--sysconfdir=/etc" ; so man pages & binaries contain /etc + (string-append "--docdir=" (assoc-ref %outputs "out") + "/share/doc/" ,name "-" ,version) + (string-append "ssbindir=" (assoc-ref %outputs "out") "/sbin") + ;; The default ‘davfs2’ user and group don't exist on most systems. + "dav_user=nobody" + "dav_group=nogroup") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'omit-redundancy + ;; Don't install redundant copies of /etc examples into /share. + (lambda _ + (substitute* "etc/Makefile.in" + (("(dist_pkgdata_DATA =.*) davfs2.conf secrets(.*)" + _ prefix suffix) + (string-append prefix suffix))) + #t)) + (add-after 'unpack 'patch-file-names + (lambda _ + ;; Don't auto-load the FUSE kernel module. That's up to root. + ;; XXX If/when we restore the previous behaviour, make sure not + ;; to introduce a security hole when mount.davfs is setuid. + (substitute* "src/kernel_interface.c" + (("/sbin/modprobe") "/modprobe/disabled")) + #t)) + (replace 'install + (lambda* (#:key make-flags outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (apply invoke "make" "install" + (string-append "pkgsysconfdir=" out "/etc") + make-flags))))))) + (inputs + `(("neon" ,neon) + + ;; Neon requires but doesn't propagate zlib, nor would we want that. + ;; XZ as well, but that's already present in the build environment. + ("zlib" ,zlib))) + (home-page "https://savannah.nongnu.org/projects/davfs2") + (synopsis "Mount remote WebDAV resources in the local file system") + (description + "The @acronym{WebDAV, Web Distributed Authoring and Versioning} extension +to the HTTP protocol defines a standard way to author resources on a remote Web +server. Davfs2 exposes such resources as a typical filesystem which can be used +by standard applications with no built-in support for WebDAV, such as the GNU +coreutils (@command{cp}, @command{mv}, etc.) or a graphical word processor. + +Davfs2 works with most WebDAV servers with no or little configuration. It +supports TLS (HTTPS), HTTP proxies, HTTP basic and digest authentication, and +client certificates. It performs extensive caching to avoid unnecessary network +traffic, stay responsive even over slow or unreliable connections, and prevent +data loss. It aims to make use by unprivileged users as easy and secure as +possible. + +However, davfs2 is not a full-featured WebDAV client. The file system interface +and the WebDAV protocol are quite different. Translating between the two is not +always possible.") + (license (list license:bsd-2 ; src/fuse_kernel.h + license:gpl3+)))) ; everything else + (define-public fsarchiver (package (name "fsarchiver") diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 89d5013a8b..870b6dd7b9 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -283,7 +283,7 @@ work with most software requiring Type 1 fonts.") (method git-fetch) (uri (git-reference - (url "https://github.com/google/woff2.git") + (url "https://github.com/google/woff2") (commit (string-append "v" version)))) (file-name (git-file-name name version)) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 534a5ea881..8c8ed19338 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -444,7 +444,7 @@ support.") (define-public tiled (package (name "tiled") - (version "1.4.2") + (version "1.4.3") (source (origin (method git-fetch) (uri (git-reference @@ -453,7 +453,7 @@ support.") (file-name (git-file-name name version)) (sha256 (base32 - "0nhmv5rnmlnnmkiz95l3iy62f3754d98dm1wyh1m47xb3nbnl05b")))) + "14bx4gywfzr2f07ldqk3la82g5ag1agj21f7ccrxip12ydmpx0xb")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 12cc64fefa..4dfd65040a 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -4436,7 +4436,7 @@ is attributed to Albert Einstein.") (define-public powwow (package (name "powwow") - (version "1.2.19") + (version "1.2.22") (source (origin (method url-fetch) (uri (string-append @@ -4444,7 +4444,7 @@ is attributed to Albert Einstein.") version ".tar.gz")) (sha256 (base32 - "10rjl63hmf62qslyhzqrbw3i2zf09dgxv65avhj0iiz0m4pbc9wy")))) + "12i11b8zxg8vdb9d6ims8qy2lmwwr42rcqbwq3vsa1x94s51bcbp")))) (inputs `(("ncurses" ,ncurses))) (build-system gnu-build-system) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index c412ec35b6..395ad4be7a 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -112,7 +112,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/jiuka/memphis.git") + (url "https://github.com/jiuka/memphis") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 530a53a92b..ff986c0a02 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -139,7 +139,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/hodefoting/mrg.git") + (url "https://github.com/hodefoting/mrg") (commit version))) (file-name (git-file-name name version)) diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 77b4aada6f..d69f14ba0e 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -131,7 +131,7 @@ the Obsidian icon theme.") (method git-fetch) (uri (git-reference (url - "https://github.com/ubuntu/gnome-shell-extension-appindicator.git") + "https://github.com/ubuntu/gnome-shell-extension-appindicator") (commit (string-append "v" version)))) (sha256 (base32 diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e22384a625..20182a4ff9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -10406,9 +10406,9 @@ photo-booth-like software, such as Cheese.") (native-inputs `(("docbook-xsl" ,docbook-xsl) ("docbook-xml" ,docbook-xml-4.3) + ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gtk-doc" ,gtk-doc) - ("intltool" ,intltool) ("itstool" ,itstool) ("libxml2" ,libxml2) ("libxslt" ,libxslt) @@ -11676,7 +11676,7 @@ provided there is a DBus service present: (origin (method git-fetch) (uri (git-reference - (url "https://github.com/gkarsay/parlatype.git") + (url "https://github.com/gkarsay/parlatype") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -11915,7 +11915,7 @@ integrated profiler via Sysprof, debugging support, and more.") (define-public komikku (package (name "komikku") - (version "0.22.1") + (version "0.23.0") (source (origin (method git-fetch) @@ -11925,7 +11925,7 @@ integrated profiler via Sysprof, debugging support, and more.") (file-name (git-file-name name version)) (sha256 (base32 - "0ds4j542zprbyh36qyii1c9mb7kj14cvrfk5miqjvp8y4b5i6mdi")))) + "1xh3qmf2pk80qxj528lajjcwg7mps72s1zz8cj388av58p8l3hyw")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index e657dbd110..3f6ed75403 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -1161,11 +1161,11 @@ standards of the IceCat project.") (cpe-version . ,(first (string-split version #\-))))))) ;; Update this together with icecat! -(define %icedove-build-id "20201111000000") ;must be of the form YYYYMMDDhhmmss +(define %icedove-build-id "20201117000000") ;must be of the form YYYYMMDDhhmmss (define-public icedove (package (name "icedove") - (version "78.4.3") + (version "78.5.0") (source icecat-source) (properties `((cpe-name . "thunderbird_esr"))) @@ -1445,7 +1445,7 @@ standards of the IceCat project.") ;; in the Thunderbird release tarball. We don't use the release ;; tarball because it duplicates the Icecat sources and only adds the ;; "comm" directory, which is provided by this repository. - ,(let ((changeset "6ee1d79f9e77c90f0f165b9315b5b437a220b665")) + ,(let ((changeset "92abc26b9c80383e974fb0234f22e06fea793be2")) (origin (method hg-fetch) (uri (hg-reference @@ -1454,7 +1454,7 @@ standards of the IceCat project.") (file-name (string-append "thunderbird-" version "-checkout")) (sha256 (base32 - "0m6isazpirmviv14kjav8jn3w3gm3mls0qwyf1n87hj00bj6z6jc"))))) + "0468k3qrqs9w1vva2fdxvwqdsypqpsdy5iixgx58dqivchg4qlf9"))))) ("autoconf" ,autoconf-2.13) ("cargo" ,rust-1.41 "cargo") ("clang" ,clang) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 4ac9071457..92533cfd50 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1145,7 +1145,7 @@ optimized for performance yet simple to use.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/tv42/httpunix.git") + (url "https://github.com/tv42/httpunix") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -1714,7 +1714,7 @@ finding resources located relative to the executable file.") (method git-fetch) (uri (git-reference (url - "https://github.com/ayufan/golang-kardianos-service.git") + "https://github.com/ayufan/golang-kardianos-service") (commit commit))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index dbf89e3894..7a61084f24 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -121,7 +121,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/NVIDIA/eglexternalplatform.git") + (url "https://github.com/NVIDIA/eglexternalplatform") (commit version))) (file-name (git-file-name name version)) @@ -172,7 +172,7 @@ application-facing EGL functions.") (method git-fetch) (uri (git-reference - (url "https://github.com/NVIDIA/egl-wayland.git") + (url "https://github.com/NVIDIA/egl-wayland") (commit version))) (file-name (git-file-name name version)) @@ -202,7 +202,7 @@ EGLStream families of extensions.") (method git-fetch) (uri (git-reference - (url "https://github.com/hodefoting/mmm.git") + (url "https://github.com/hodefoting/mmm") (commit version))) (file-name (git-file-name name version)) @@ -231,7 +231,7 @@ framebuffer graphics, audio output and input event.") (method git-fetch) (uri (git-reference - (url "https://github.com/deniskropp/DirectFB.git") + (url "https://github.com/deniskropp/DirectFB") (commit "DIRECTFB_1_7_7"))) (file-name (git-file-name name version)) (sha256 @@ -301,7 +301,7 @@ minimum of resource usage and overhead.") (method git-fetch) (uri (git-reference - (url "https://github.com/deniskropp/flux.git") + (url "https://github.com/deniskropp/flux") (commit "e45758a"))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 85c48a6877..af50119d75 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -95,7 +95,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/occipital/OpenNI2.git") + (url "https://github.com/occipital/OpenNI2") (commit (string-append "v" version "-debian")))) (file-name (git-file-name name version)) (sha256 @@ -167,7 +167,7 @@ module for the DMA capture of the video flow.") (method git-fetch) (uri (git-reference - (url "https://github.com/CCExtractor/ccextractor.git") + (url "https://github.com/CCExtractor/ccextractor") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -220,7 +220,7 @@ and very fast.") (method git-fetch) (uri (git-reference - (url "https://github.com/Libvisual/libvisual.git") + (url "https://github.com/Libvisual/libvisual") (commit (string-append name "-" version)))) (file-name (git-file-name name version)) (sha256 @@ -268,7 +268,7 @@ applications that want audio visualisation and audio visualisation plugins.") (method git-fetch) (uri (git-reference - (url "https://github.com/Libvisual/libvisual.git") + (url "https://github.com/Libvisual/libvisual") (commit (string-append name "-" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 01949e2aaa..5ec5eefadd 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -966,8 +966,8 @@ convenient nested tree operations.") (license license:gpl3+))) (define-public guile-simple-zmq - (let ((commit "68bedb6679716214fb9d3472da57544526f7a618") - (revision "3")) + (let ((commit "5fc3b7190d31c258ce969c2a5d2ad38c66a09d09") + (revision "4")) (package (name "guile-simple-zmq") (version (git-version "0.0.0" revision commit)) @@ -979,7 +979,7 @@ convenient nested tree operations.") (commit commit))) (sha256 (base32 - "1ad3xg69qqviy1f6dnlw0ysmfdbmp1jq65rfqb8nfd8dsrq2syli")) + "0inhvl5jssvbw3nd129wdahfwyvy1iciq403wzf0algbvl1fqs7z")) (file-name (git-file-name name version)))) (build-system guile-build-system) (arguments @@ -2973,7 +2973,7 @@ more expressive and flexible than the traditional @code{format} procedure.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/scheme-requests-for-implementation/srfi-180.git") + (url "https://github.com/scheme-requests-for-implementation/srfi-180") (commit commit))) (sha256 (base32 @@ -3734,7 +3734,7 @@ models and also supports a rich set of boolean query operators.") (source (origin (method git-fetch) (uri (git-reference (url - "https://github.com/o-nly/torrent.git") + "https://github.com/o-nly/torrent") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index a4269599f6..9a149187b6 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@gmail.com> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020 Kyle Meyer <kyle@kyleam.com> +;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -417,6 +418,48 @@ contents of the HTTP connection. It also provides higher-level functions which allow you to avoid direct usage of conduits.") (license license:bsd-3))) +(define-public ghc-http-reverse-proxy + (package + (name "ghc-http-reverse-proxy") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/http-reverse-proxy/" + "http-reverse-proxy-" version ".tar.gz")) + (sha256 + (base32 + "1a6i5njf85b2lhg8m83njagcf09wih5q2irnyb2890s724qr277v")))) + (build-system haskell-build-system) + (inputs + `(("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-http-types" ,ghc-http-types) + ("ghc-word8" ,ghc-word8) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-http-client" ,ghc-http-client) + ("ghc-wai" ,ghc-wai) + ("ghc-network" ,ghc-network) + ("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-wai-logger" ,ghc-wai-logger) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-unliftio" ,ghc-unliftio) + ("ghc-streaming-commons" ,ghc-streaming-commons))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-warp" ,ghc-warp) + ("ghc-http-conduit" ,ghc-http-conduit))) + (home-page + "https://github.com/fpco/http-reverse-proxy") + (synopsis + "Reverse proxy HTTP requests, either over raw sockets or with WAI") + (description + "Provides a simple means of reverse-proxying HTTP requests. The raw +approach uses the same technique as leveraged by keter, whereas the WAI +approach performs full request/response parsing via WAI and http-conduit.") + (license license:bsd-3))) + (define-public ghc-wai (package (name "ghc-wai") diff --git a/gnu/packages/heads.scm b/gnu/packages/heads.scm index b28433431c..5f49265ebb 100644 --- a/gnu/packages/heads.scm +++ b/gnu/packages/heads.scm @@ -19,6 +19,7 @@ (define-module (gnu packages heads) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -161,3 +162,36 @@ done (synopsis "Musl-cross gcc 5 toolchain") (description "Musl-cross toolchain: binutils, gcc 5 and musl.") (license license:isc)))) + +;; This package provides a "dev.cpio" file usable as a base for booting Heads. +(define-public heads-dev-cpio + (package + (name "heads-dev-cpio") + (version "0.1") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils) + (guix cpio)) + #:builder (begin + (use-modules (guix build utils) + (guix cpio) + (srfi srfi-26)) + (mkdir-p "dev") ; input directory. + (let* ((out (assoc-ref %outputs "out")) + (libexec (string-append out "/libexec"))) + (mkdir-p libexec) + (call-with-output-file (string-append libexec "/dev.cpio") + (lambda (port) + (write-cpio-archive '("dev" "dev/console") port + #:file->header + (lambda (name) + (if (string=? "dev/console" name) + (special-file->cpio-header* name 'char-special 5 1 #o600) + (file->cpio-header* name)))))) + #t)))) + (synopsis "@file{dev.cpio} for Heads") + (description "This package provides a @file{dev.cpio} file usable as a +base for heads' initrd.") + (home-page "http://osresearch.net/") + (license license:bsd-2))) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 75f9a1bf36..5bc144f769 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -791,7 +791,7 @@ images of initially unknown height.") (method git-fetch) (uri (git-reference - (url "https://github.com/uclouvain/openjpeg-data.git") + (url "https://github.com/uclouvain/openjpeg-data") (commit "c5c4a8c"))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 0d9908c771..61144618c0 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -62,6 +62,7 @@ #:use-module (gnu packages openldap) #:use-module (gnu packages kde) #:use-module (gnu packages kde-frameworks) + #:use-module (gnu packages password-utils) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -499,7 +500,7 @@ interface for those who are accustomed to the ircII way of doing things.") (define-public inspircd (package (name "inspircd") - (version "3.7.0") + (version "3.8.1") (source (origin (method git-fetch) @@ -508,13 +509,13 @@ interface for those who are accustomed to the ircII way of doing things.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "1npzp23c3ac7m1grkm39i1asj04rs4i0jwf5w0c0j0hmnwslnz7a")))) + (base32 "1i30649dw84iscxa5as81g96f393mn1i883aq4za5ypdinr5x65g")))) (build-system gnu-build-system) (arguments `(#:configure-flags (map (lambda (module) (string-append "--enable-extras=" module)) - '("m_geo_maxmind.cpp" + '("m_argon2.cpp" + "m_geo_maxmind.cpp" "m_ldap.cpp" "m_mysql.cpp" "m_pgsql.cpp" @@ -550,16 +551,17 @@ interface for those who are accustomed to the ircII way of doing things.") (string-append "--config-dir=" out-etc name))) #t))))) (native-inputs - `(("gnutls" ,gnutls) - ("libgcrypt" ,libgcrypt) + `(("pkg-config" ,pkg-config))) + (inputs + `(("argon2" ,argon2) + ("gnutls" ,gnutls) ("libmaxminddb" ,libmaxminddb) - ("mysql" ,mysql) ("mbedtls-apache" ,mbedtls-apache) + ("mysql" ,mysql) ("openldap" ,openldap) ("openssl" ,openssl) ("pcre" ,pcre "bin") ("perl" ,perl) - ("pkg-config" ,pkg-config) ("postgresql" ,postgresql) ("re2" ,re2) ("sqlite" ,sqlite) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 35f905136f..e298fd9537 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2723,7 +2723,7 @@ debugging, etc.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/javacc/javacc.git") + (url "https://github.com/javacc/javacc") (commit "release_32"))) (file-name (string-append "javacc-" version "-checkout")) (sha256 diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index 27c13fab8a..3f17465039 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm @@ -62,7 +62,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/liblouis/liblouis.git") + (url "https://github.com/liblouis/liblouis") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -115,7 +115,7 @@ Marburg.") (method git-fetch) (uri (git-reference - (url "https://github.com/liblouis/liblouisutdml.git") + (url "https://github.com/liblouis/liblouisutdml") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/lego.scm b/gnu/packages/lego.scm index 2067e45dd1..2294d693c5 100644 --- a/gnu/packages/lego.scm +++ b/gnu/packages/lego.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@posteo.net> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +35,8 @@ (name "nqc") (version "3.1.r6") (source (origin + ;; XXX Using url-fetch/tarbomb results in failure: + ;; Error: could not create compiler/rcx1_nqh.h (method url-fetch) (uri (string-append "http://bricxcc.sourceforge.net/nqc/release/" "nqc-" version ".tgz")) @@ -44,24 +46,48 @@ (build-system gnu-build-system) (native-inputs `(("bison" ,bison) - ("flex" ,flex))) + ("flex" ,flex) + ("add-usb-tcp-support.patch" + ,(origin + (method url-fetch) + (uri (string-append "https://sourceforge.net/p/bricxcc/patches/" + "_discuss/thread/00b427dc/b84b/attachment/" + "nqc-01-Linux_usb_and_tcp.diff")) + (sha256 + (base32 "0z5gx55ra1kamhhqxz08lvvwslfl36pbmwdd566rhmbgmyhlykbr")))) + ("debian-writable-swap-inst-len.patch" + ,(origin + (method url-fetch) + (uri (string-append "https://sources.debian.org/data/main/n/nqc/" + "3.1.r6-7/debian/patches/" + "writable-swap-inst-len.patch")) + (sha256 + (base32 "1kr7j057aa5i0kxmlfpbfcsif5yq2lrmjw4sljn400ijaq4mys3v")))))) (arguments '(#:tests? #f ;no tests #:make-flags (list (string-append "PREFIX=" %output)) - #:phases (modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'rm-generated - ;; Regenerating compiler/lexer.cpp avoids an 'undefined - ;; reference to `isatty(int)'' error. - (lambda _ - (for-each delete-file - '("compiler/lexer.cpp" - "compiler/parse.cpp")) - #t)) - (add-after 'unpack 'deal-with-tarbomb - (lambda _ - (chdir "..") ;tarbomb - #t))))) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'rm-generated + ;; Regenerating compiler/lexer.cpp avoids an 'undefined + ;; reference to `isatty(int)'' error. + (lambda _ + (for-each delete-file + '("compiler/lexer.cpp" + "compiler/parse.cpp")) + #t)) + (add-after 'unpack 'deal-with-tarbomb + (lambda _ + (chdir "..") ;tarbomb + #t)) + (add-after 'deal-with-tarbomb 'patch + (lambda* (#:key inputs #:allow-other-keys) + (for-each (lambda (patch) + (invoke "patch" "-Np1" "-i" + (assoc-ref inputs patch))) + (list "add-usb-tcp-support.patch" + "debian-writable-swap-inst-len.patch"))))))) (home-page "http://bricxcc.sourceforge.net/nqc/") (synopsis "C-like language for Lego's MINDSTORMS") (description diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index f109ca0d8b..337f390fc1 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -564,7 +564,7 @@ devices.") (define-public hidapi (package (name "hidapi") - (version "0.9.0") + (version "0.10.0") (source (origin (method git-fetch) @@ -573,7 +573,7 @@ devices.") (commit (string-append "hidapi-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1p4g8lgwj4rki6lbn5l6rvwj0xlbn1xfh4d255bg5pvgczmwmc4i")))) + (base32 "1n3xn1zvxgyzb84cjpw3i5alw0gkbrps11r4ijxzyqxqym0khagr")))) (build-system gnu-build-system) (inputs `(("libusb" ,libusb) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c40d948e88..fd2c43aec8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -352,15 +352,15 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The current "stable" kernel. That is, the most recently released major ;; version. -(define-public linux-libre-5.9-version "5.9.8") +(define-public linux-libre-5.9-version "5.9.9") (define deblob-scripts-5.9 (linux-libre-deblob-scripts linux-libre-5.9-version (base32 "1l0iw2lp6alk0a8nvdafklyks83iiyw4b2r5xif84z47qfbydsis") - (base32 "0wp0mx5d2qhv7brc595qj34phiaxz9z5gf26w5369nh9mll5cbw6"))) + (base32 "0yb04a4j2wq3mwvks3cj7kcm2pscmfs29lrz3falkxpbvjxbbgq2"))) (define-public linux-libre-5.9-pristine-source (let ((version linux-libre-5.9-version) - (hash (base32 "19l67gzk97higd2cbggipcb0wi21pv0ag0mc4qh6cqk564xp6mkn"))) + (hash (base32 "1b8zysy0br131ydhc7ycxhh8d88r44xrmkf2q2lffy0jmy3d60m3"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.9))) @@ -368,7 +368,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; <https://www.kernel.org/category/releases.html> -(define-public linux-libre-5.4-version "5.4.77") +(define-public linux-libre-5.4-version "5.4.78") (define deblob-scripts-5.4 (linux-libre-deblob-scripts linux-libre-5.4-version @@ -376,12 +376,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "167zcfkw62pm6nv1xdvvhxw0ca724sywcywnv3z00189f8f8p3vg"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "1xyvml0mps7bsa11bgpa4l0w8x6pasdz9yab2z4ds394f1lkxq53"))) + (hash (base32 "0z8skj0w9jfrz9pfxaqfzqh82l13bz5lhza2wjsxk02cyhhnm226"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.157") +(define-public linux-libre-4.19-version "4.19.158") (define deblob-scripts-4.19 (linux-libre-deblob-scripts linux-libre-4.19-version @@ -389,12 +389,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "0mgpgv2ny49bb7kgaygy2ay6ckjgw7mg091viivi66jw4mjs7p3n"))) + (hash (base32 "0p5pim9izcscnk1a1kdlxbvyvxnnq9lqr1kwl86kfskr7yqy8n6n"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.206") +(define-public linux-libre-4.14-version "4.14.207") (define deblob-scripts-4.14 (linux-libre-deblob-scripts linux-libre-4.14-version @@ -402,12 +402,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "1b46f0s15xnlam43cmw8w41rrvcwrhm6km0278lq6f86lpx3w8qw"))) + (hash (base32 "0a804hwh7cwbdd2gnr5n9i32b4s6gppd8iqihah4sn4q1nbm79vq"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.243") +(define-public linux-libre-4.9-version "4.9.244") (define deblob-scripts-4.9 (linux-libre-deblob-scripts linux-libre-4.9-version @@ -415,12 +415,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "111rlzx6z4kf8zwxncib96d9wy6qmkbs0cq3dhnybipwlyf1iank"))) + (hash (base32 "02givxp0y04qma5nlqbpyxdcl7xdb41p3gw7kgj2rmwdanhzaylr"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.243") +(define-public linux-libre-4.4-version "4.4.244") (define deblob-scripts-4.4 (linux-libre-deblob-scripts linux-libre-4.4-version @@ -428,7 +428,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf"))) (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "1daqbmj9ka9wdkkym625hqwqaxq5n11y7c4yc9ln3xkjpnv4dplm"))) + (hash (base32 "0brdj6z7flchig80ja0dhzcrpl743lh74s4r4r6prbgkksif9ahp"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) @@ -1043,39 +1043,45 @@ It has been modified to remove all non-free binary blobs.") ;;; (define-public acpi-call-linux-module - (let ((commit "70b9c80bd700e6a4d10797eaac9fd34b7e8cbd4a") - (revision "0")) - (package - (name "acpi-call-linux-module") - (version (git-version "3.17" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/teleshoes/acpi_call") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "09c1vw6vcrkqxbwhpgfgpj4d1grzn4qq6ka8pwwzm7cvm405xj7x")))) - (build-system linux-module-build-system) - (arguments - `(#:tests? #f ; no tests - #:phases - (modify-phases %standard-phases - (add-after 'install 'install-documentation - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (string-append out "/share/doc/" ,name "-" ,version))) - (for-each (lambda (file) - (let ((target (string-append doc "/" file))) - (mkdir-p (dirname target)) - (copy-recursively file target))) - (list "README.md" "examples")) - #t)))))) - (home-page "https://github.com/teleshoes/acpi_call") - (synopsis "Linux kernel module to perform ACPI method calls") - (description - "This simple Linux kernel module allows calls from user space to any + (package + (name "acpi-call-linux-module") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nix-community/acpi_call") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mr4rjbv6fj4phf038addrgv32940bphghw2v9n1z4awvw7wzkbg")))) + (build-system linux-module-build-system) + (arguments + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (add-before 'install 'patch-shebangs-harder + ;; The (only) shebangs in examples/ don't justify a reference. + ;; However, do substitute a more portable one than the original. + (lambda _ + (substitute* (find-files "examples" ".") + (("^(#! *)/[^ ]*/" _ shebang) + (string-append shebang "/usr/bin/env "))) + #t)) + (add-after 'install 'install-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (for-each (lambda (file) + (let ((target (string-append doc "/" file))) + (mkdir-p (dirname target)) + (copy-recursively file target))) + (list "README.md" "examples")) + #t)))))) + (home-page "https://github.com/teleshoes/acpi_call") + (synopsis "Linux kernel module to perform ACPI method calls") + (description + "This simple Linux kernel module allows calls from user space to any @acronym{ACPI, Advanced Configuration and Power Interface} method provided by your computer's firmware, by writing to @file{/proc/acpi/call}. You can pass any number of parameters of types @code{ACPI_INTEGER}, @code{ACPI_STRING}, @@ -1083,7 +1089,7 @@ and @code{ACPI_BUFFER}. It grants direct and undocumented access to your hardware that may cause damage and should be used with caution, especially on untested models.") - (license license:gpl3+)))) ; see README.md (no licence headers) + (license license:gpl3+))) ; see README.md (no licence headers) (define-public rtl8812au-aircrack-ng-linux-module (let ((commit "df2b8dfd8cb7d9f6cfeb55abaeab8a5372011fc9") @@ -1367,7 +1373,7 @@ at login. Local and dynamic reconfiguration are its key features.") ;; Tests not distributed in pypi release. (method git-fetch) (uri (git-reference - (url "https://github.com/minrk/pamela.git") + (url "https://github.com/minrk/pamela") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -5822,7 +5828,7 @@ of flash storage.") (define-public libseccomp (package (name "libseccomp") - (version "2.5.0") + (version "2.5.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/seccomp/libseccomp/" @@ -5830,7 +5836,7 @@ of flash storage.") "/libseccomp-" version ".tar.gz")) (sha256 (base32 - "1wql62cg8f95cwpy057cl764nni9g4sdn5lqj68x22kjs8w71yhz")))) + "0m8dlg1v7kflcxvajs4p76p275qwsm2abbf5mfapkakp7hw7wc7f")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static") @@ -7523,7 +7529,7 @@ and above.") (define-public bpftrace (package (name "bpftrace") - (version "0.10.0") + (version "0.11.4") (source (origin (method git-fetch) @@ -7532,8 +7538,7 @@ and above.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "023ardywbw5w8815j2ny9rrp2xlpxndqaa7v2njjm8109p7ilsdn")) + (base32 "0y4qgm2cpccrsm20rnh92hqplddqsc5q5zhw9nqn2igm3h9i0z7h")) (patches (search-patches "bpftrace-disable-bfd-disasm.patch")))) (build-system cmake-build-system) (native-inputs @@ -7575,7 +7580,7 @@ created by Alastair Robertson.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/eBUS/ttyebus.git") + (url "https://github.com/eBUS/ttyebus") (commit "fe4332a2281cf79804ef4d8516aa848ca1c58d1f"))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 776865f178..a4e9739c94 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -2549,10 +2549,10 @@ is a library for creating graphical user interfaces.") (sbcl-package->ecl-package sbcl-cl-cffi-gtk)) (define-public sbcl-cl-webkit - (let ((commit "04bb5703b68f4db9de71529b81896cc428ef54e1")) + (let ((commit "aecd76a2bcc7bfee049c91d94cc75f893800bf37")) (package (name "sbcl-cl-webkit") - (version (git-version "2.4" "8" commit)) + (version (git-version "2.4" "9" commit)) (source (origin (method git-fetch) @@ -2562,7 +2562,7 @@ is a library for creating graphical user interfaces.") (file-name (git-file-name "cl-webkit" version)) (sha256 (base32 - "12dzqgkvgwi97r8dbflslj7nsx7p6iavx82fs48nj9wf7ln1c87s")))) + "1j2wvn19kz0bcg17qr9pc4xp6fgjy8zngdnnp5rpfxd25sli62yc")))) (build-system asdf-build-system/sbcl) (inputs `(("cffi" ,sbcl-cffi) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 4f79d79207..a3139c21c8 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -1011,3 +1011,40 @@ including a built-in database engine and a GUI system.") (package (inherit picolisp32) (name "picolisp"))))) + +(define-public janet + (package + (name "janet") + (version "1.12.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janet-lang/janet") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0if514zdmbjvvrsa9x5yfvg2b14sz53yaka12g3yhwkq8ls3qk0c")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list + (string-append "DESTDIR=" (assoc-ref %outputs "out")) + (string-append "PREFIX=") + (string-append "CC=" (assoc-ref %build-inputs "gcc") + "/bin/gcc")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'check + (lambda _ + (invoke "make" "test")))))) + (home-page "https://janet-lang.org/") + (synopsis "Functional, imperative and embeddable programming language") + (description + "Janet is a functional and imperative programming language. It can be +used for rapid prototyping, dynamic systems, and other domains where dynamic +languages shine. You can also add Janet scripting to an application by +embedding a single C file and two headers. It can be easily ported to new +platforms. The entire language (core library, interpreter, compiler, +assembler, PEG) is less than 1MB.") + (license license:expat))) diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index 17421a9835..20efba17b7 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm @@ -1330,7 +1330,7 @@ like @command{tar} and @command{zip}.") (origin (method git-fetch) (uri (git-reference - (url (string-append "https://github.com/lxqt/" name ".git")) + (url (string-append "https://github.com/lxqt/" name)) (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0br4bxfrl8k7lq84aq4grznlk8xzzjgkmd19bf9mwjr0a87gg72v")))) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 1e2dd4035b..5a10194a4a 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1447,7 +1447,7 @@ useful features.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/dinhviethoa/libetpan.git") + (url "https://github.com/dinhviethoa/libetpan") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index bc7c011c74..0eadd9d153 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -83,7 +83,7 @@ as description, options, see also, etc.") (method git-fetch) (uri (git-reference - (url "https://github.com/rtomayko/ronn.git") + (url "https://github.com/rtomayko/ronn") (commit version))) (file-name (git-file-name name version)) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 0942cd9a32..5dab00140c 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -743,7 +743,8 @@ of xmpppy.") (version-major+minor version) "/gajim-" version ".tar.gz")) (sha256 - (base32 "1gfcp3b5nq43xxz5my8vfhfxnnli726j3hzcgwh9fzrzzd9ic3gx")))) + (base32 "1gfcp3b5nq43xxz5my8vfhfxnnli726j3hzcgwh9fzrzzd9ic3gx")) + (patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch")))) (build-system python-build-system) (arguments `(#:imported-modules @@ -756,16 +757,6 @@ of xmpppy.") (guix build utils)) #:phases (modify-phases %standard-phases - (add-after 'unpack 'add-plugin-dirs - (lambda _ - (substitute* "gajim/common/configpaths.py" - (("_paths\\['PLUGINS_USER'\\]\\]") - "_paths['PLUGINS_USER']] + \ -([os.getenv('GAJIM_PLUGIN_PATH')] \ -if os.getenv('GAJIM_PLUGIN_PATH') \ -and Path(os.getenv('GAJIM_PLUGIN_PATH')).is_dir() \ -else [])")) - #t)) (replace 'check (lambda _ ;; Tests require a running X server. @@ -859,7 +850,7 @@ and OpenPGP) and available in 29 languages.") (define-public gajim-omemo (package (name "gajim-omemo") - (version "2.7.9") + (version "2.6.80") (source (origin (method url-fetch/zipbomb) @@ -868,7 +859,7 @@ and OpenPGP) and available in 29 languages.") "https://ftp.gajim.org/plugins_releases/omemo_" version ".zip")) (sha256 - (base32 "19si2v5yrxpn2m0f684npsg0iiyl2h3r5hbxyrxv4k3acmfmhb3z")))) + (base32 "179hgx091c12258335znn1540jhp4z3n3wv5ksrgqq7l3jgc93d7")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -897,7 +888,7 @@ multi-client end-to-end encryption.") (define-public gajim-openpgp (package (name "gajim-openpgp") - (version "1.3.5") + (version "1.2.14") (source (origin (method url-fetch/zipbomb) @@ -906,7 +897,7 @@ multi-client end-to-end encryption.") "https://ftp.gajim.org/plugins_releases/openpgp_" version ".zip")) (sha256 - (base32 "1jvpl2gjl5xxvsgxpmvh3mn2mm142dg2hknakkc32swb7l1fqx5m")))) + (base32 "0wdjpf1i4pvl4ha4plfpywwi9aw5n2mhrpv8mmbidpawxqfbd94b")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -932,19 +923,19 @@ Encryption to Gajim.") (package (name "dino") (version "0.2.0") - (outputs '("out" "debug")) (source (origin (method url-fetch) - (uri (string-append "https://github.com/dino/dino/releases/download/v" - version "/dino-" version ".tar.gz")) + (uri + (string-append "https://github.com/dino/dino/releases/download/v" + version "/dino-" version ".tar.gz")) (sha256 - (base32 - "0iigh7bkil6prf02dqcl6lmd89jxz685h8lqr3ni4x39zkcransn")))) + (base32 "0iigh7bkil6prf02dqcl6lmd89jxz685h8lqr3ni4x39zkcransn")))) (build-system cmake-build-system) + (outputs '("out" "debug")) (arguments `(#:tests? #f - #:parallel-build? #f ; not supported + #:parallel-build? #f ; not supported #:modules ((guix build cmake-build-system) ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) (guix build utils)) @@ -955,10 +946,21 @@ Encryption to Gajim.") (modify-phases %standard-phases (add-after 'install 'glib-or-gtk-wrap (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") + ("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config) + ("vala" ,vala))) (inputs - `(("libgee" ,libgee) - ("libsignal-protocol-c" ,libsignal-protocol-c) + `(("glib" ,glib) + ("glib-networking" ,glib-networking) + ("gpgme" ,gpgme) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gtk+" ,gtk+) ("libgcrypt" ,libgcrypt) + ("libgee" ,libgee) + ("libsignal-protocol-c" ,libsignal-protocol-c) ("libsoup" ,libsoup) ("qrencode" ,qrencode) ("sqlite" ,sqlite) @@ -966,15 +968,11 @@ Encryption to Gajim.") ("gtk+" ,gtk+) ("glib-networking" ,glib-networking) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("glib" ,glib "bin") - ("vala" ,vala) - ("gettext" ,gettext-minimal))) + (synopsis "Graphical Jabber/XMPP Client using GTK+/Vala") + (description "Dino is a chat client for the desktop. It focuses on providing +a minimal yet reliable Jabber/XMPP experience and having encryption enabled by +default.") (home-page "https://dino.im") - (synopsis "Graphical Jabber (XMPP) client") - (description "Dino is a Jabber (XMPP) client which aims to fit well into -a graphical desktop environment like GNOME.") (license license:gpl3+))) (define-public prosody diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 0728144b60..2ffe435109 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -31,6 +31,7 @@ ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> +;;; Copyright © 2019 Riku Viitanen <riku.viitanen0@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -944,6 +945,60 @@ engine (except effects) that can be used for layering or split patches.") you to define complex tempo maps for entire songs or performances.") (license license:gpl2+))) +(define-public glyr + (package + (name "glyr") + (version "1.0.10") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sahib/glyr") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1miwbqzkhg0v3zysrwh60pj9sv6ci4lzq2vq2hhc6pc6hdyh8xyr")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DTEST=true") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + (substitute* "spec/capi/check_api.c" + (("fail_unless \\(c != NULL,\"Could not load www.google.de\"\\);") + "")) + #t)) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; capi tests + (invoke "bin/check_api") + ;; (invoke "bin/check_opt") TODO Very dependent on the network + (invoke "bin/check_dbc")) + + ;; TODO Work out how to run the spec/providers Python tests + #t))))) + (inputs + `(("glib" ,glib) + ("curl" ,curl) + ("sqlite" ,sqlite))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("check" ,check))) + (home-page "https://github.com/sahib/glyr") + (synopsis "Search engine for music related metadata") + (description + "Glyr comes both in a command-line interface tool (@command{glyrc}) and +as a C library (libglyr). + +The sort of metadata glyr is searching (and downloading) is usually the data +you see in your musicplayer. And indeed, originally it was written to serve +as internally library for a musicplayer, but has been extended to work as a +standalone program which is able to download cover art, lyrics, photos, +biographies, reviews and more.") + (license license:lgpl3+))) + (define-public gtklick (package (name "gtklick") @@ -1328,7 +1383,7 @@ complete studio.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/onkelDead/tascam-gtk.git") + (url "https://github.com/onkelDead/tascam-gtk") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -5097,7 +5152,7 @@ for integration into status line generators or other command-line tools.") (method git-fetch) (uri (git-reference (url - "https://github.com/openAVproductions/openAV-ArtyFX.git") + "https://github.com/openAVproductions/openAV-ArtyFX") (commit (string-append "release-" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 8f76ab9d91..ac1290e8fd 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -349,7 +349,7 @@ supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://.") (method git-fetch) (uri (git-reference - (url "https://github.com/Haivision/srt.git") + (url "https://github.com/Haivision/srt") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -386,7 +386,7 @@ performance across unpredictable networks, such as the Internet.") (method git-fetch) (uri (git-reference - (url "https://github.com/Haivision/srt.git") + (url "https://github.com/Haivision/srt") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -402,7 +402,7 @@ performance across unpredictable networks, such as the Internet.") (method git-fetch) (uri (git-reference - (url "https://github.com/sctp/lksctp-tools.git") + (url "https://github.com/sctp/lksctp-tools") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -458,7 +458,7 @@ at the link-layer level.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/nanomsg/nng.git") + (url "https://github.com/nanomsg/nng") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -501,7 +501,7 @@ publish/subscribe, RPC-style request/reply, or service discovery.") (method git-fetch) (uri (git-reference - (url "https://github.com/nanomsg/nanomsg.git") + (url "https://github.com/nanomsg/nanomsg") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index a407a37cfe..706def4f43 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -5802,7 +5802,9 @@ convenience functions for vectors and matrices.") "0wzysis9fa850s68qh8vrvqc6svgllhwra3kzll2ibv0wmdqrich")))) (build-system dune-build-system) (arguments - `(;; FIXME: (got signal SEGV) #44725 + `(;; NOTE: GC reclaims bigarrays packed into a custom structure + ;; regardless of their refcounts. Affects OCaml >= 4.10.x + ;; https://github.com/ocaml/ocaml/issues/9360 #:tests? #f #:test-target "tests")) (inputs @@ -5822,7 +5824,7 @@ and SVG file output.") (define-public lablgtk3 (package (name "lablgtk") - (version "3.0.beta8") + (version "3.1.1") (source (origin (method git-fetch) (uri (git-reference @@ -5831,7 +5833,7 @@ and SVG file output.") (file-name (git-file-name name version)) (sha256 (base32 - "08pgwnia240i2rw1rbgiahg673kwa7b6bvhsg3z4b47xr5sh9pvz")))) + "11qfc39cmwfwfpwmjh6wh98zwdv6p73bv8hqwcsss869vs1r7gmn")))) (build-system dune-build-system) (arguments `(#:tests? #t diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index d0294cdef3..13b92936d0 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages gnupg) #:use-module (gnu packages python) + #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) @@ -45,47 +47,64 @@ (define-public python-bandit (package (name "python-bandit") - (version "1.4.0") + (version "1.6.2") (source (origin (method url-fetch) (uri (pypi-uri "bandit" version)) (sha256 (base32 - "1m5bm42120zyazky4k0lp3d9r0jwhjmp6sb108xfr0vz952p15yb")))) + "0rb034c99pyhb4a60z7f2kz40cjydhm8m9v2blaal1rmhlam7rs1")))) (build-system python-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (delete 'check) - (add-after 'install 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Tests require the 'bandit' executable in PATH. - ;; It's only built during install time. - (add-installed-pythonpath inputs outputs) - (setenv "PATH" (string-append (assoc-ref outputs "out") - "/bin:" (getenv "PATH"))) - (invoke "python" "setup.py" "testr")))))) + ;; The tests are disabled to avoid a circular dependency with + ;; python-stestr. + `(#:tests? #f)) (propagated-inputs - `(("python-gitpython" ,python-gitpython) - ("python-pyyaml" ,python-pyyaml) - ("python-six" ,python-six) - ("python-stevedore" ,python-stevedore))) + `(("python-gitpython" ,python-gitpython) + ("python-pyyaml" ,python-pyyaml) + ("python-six" ,python-six) + ("python-stevedore" ,python-stevedore))) (native-inputs - `(;; Tests. - ("python-beautifulsoup4" ,python-beautifulsoup4) - ("python-fixtures" ,python-fixtures) - ("python-mock" ,python-mock) - ("python-subunit" ,python-subunit) - ("python-testrepository" ,python-testrepository) - ("python-testscenarios" ,python-testscenarios) - ("python-testtools" ,python-testtools))) + `(("python-pbr" ,python-pbr))) (home-page "https://github.com/PyCQA/bandit") (synopsis "Security oriented static analyser for python code") - (description - "Bandit is a tool designed to find common security issues in Python code. -To do this Bandit processes each file, builds an AST from it, and runs -appropriate plugins against the AST nodes. Once Bandit has finished scanning -all the files it generates a report.") + (description "Bandit is a tool designed to find common security issues in +Python code. To do this Bandit processes each file, builds an AST from it, +and runs appropriate plugins against the AST nodes. Once Bandit has finished +scanning all the files it generates a report.") + (license asl2.0))) + +(define-public python-cliff + (package + (name "python-cliff") + (version "3.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cliff" version)) + (sha256 + (base32 + "0n8pzr0mnn9lq2mykds69ij2xrn0fsirh4ndmkx0mzydbx5niysv")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) + (native-inputs + `(("python-pbr" ,python-pbr))) + (propagated-inputs + `(("python-cmd2" ,python-cmd2) + ("python-prettytable" ,python-prettytable) + ("python-pyparsing" ,python-pyparsing) + ("python-pyyaml" ,python-pyyaml) + ("python-bandit" ,python-bandit) + ("python-stevedore" ,python-stevedore))) + (home-page "https://opendev.org/openstack/cliff") + (synopsis "Framework for building command line programs") + (description "The @code{cliff} framework allows creating multi-level +commands such as those of @command{subversion} and @command{git}, where the +main program handles some basic argument parsing and then invokes a +sub-command to do the work. It uses plugins to define sub-commands, output +formatters, and other extensions.") (license asl2.0))) (define-public python-debtcollector @@ -131,39 +150,30 @@ manner.") (define-public python-hacking (package (name "python-hacking") - (version "1.1.0") + (version "4.0.0") (source (origin (method url-fetch) (uri (pypi-uri "hacking" version)) (sha256 (base32 - "1vlgh81v4vsw3q3cf7qggsp043vq16knp203lrll82h7l7rhd8r3")))) + "062rvbkvbavqqz55f7q00ikwipkn5j0rdls1rrajdbfwgckjcrsm")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'delete-broken-test - (lambda _ - ;; TODO: Just one test fails: - ;; hacking.tests.test_doctest.HackingTestCase.test_pycodestyle - ;; (H403-hacking_docstring_multiline_end-line-5) - (delete-file "hacking/tests/test_doctest.py") - #t))))) - (propagated-inputs - `(("python-flake8" ,python-flake8-2.6) - ("python-mccabe-0.2.1" ,python-mccabe-0.2.1) - ("python-pbr" ,python-pbr) - ("python-pep8-1.5.7" ,python-pep8-1.5.7) - ("python-pyflakes-1.2" ,python-pyflakes-1.2) - ("python-six" ,python-six))) + (propagated-inputs + `(("python-flake8" ,python-flake8))) (native-inputs `( ;; Tests + ("python-coverage" ,python-coverage) + ("python-ddt" ,python-ddt) + ("python-dnspython" ,python-dnspython) + ("python-fixtures" ,python-fixtures) ("python-eventlet" ,python-eventlet) ("python-mock" ,python-mock) - ("python-reno" ,python-reno) - ("python-testrepository" ,python-testrepository) - ("python-testscenarios" ,python-testscenarios))) + ("python-monotonic" ,python-monotonic) + ("python-subunit" ,python-subunit) + ("python-stestr" ,python-stestr) + ("python-testscenarios" ,python-testscenarios) + ("python-testtools" ,python-testtools))) (home-page "https://github.com/openstack-dev/hacking") (synopsis "OpenStack hacking guideline enforcement") (description @@ -172,9 +182,6 @@ manner.") guidelines}.") (license asl2.0))) -(define-public python2-hacking - (package-with-python2 python-hacking)) - (define-public python-mox3 (package (name "python-mox3") @@ -310,22 +317,21 @@ to docs.openstack.org and developer.openstack.org.") (define-public python-stevedore (package (name "python-stevedore") - (version "1.28.0") + (version "3.2.2") (source (origin (method url-fetch) (uri (pypi-uri "stevedore" version)) (sha256 (base32 - "02ynfgwma84g59834dmvzr39mcppy5s229zf1w23c0qngf753izi")))) + "1w11lm293afzb73iq0ba9wnmr2rjwymnhr92km4a4xrs7a5qcigq")))) (build-system python-build-system) - (propagated-inputs - `(("python-pbr" ,python-pbr) - ("python-six" ,python-six))) + (arguments + ;; The tests are disabled to avoid a circular dependency with + ;; python-stestr. + `(#:tests? #f)) (native-inputs - `(("python-mock" ,python-mock) - ("python-sphinx" ,python-sphinx) - ("python-testrepository" ,python-testrepository))) + `(("python-pbr" ,python-pbr))) (home-page "https://github.com/dreamhost/stevedore") (synopsis "Manage dynamic plugins for Python applications") (description @@ -427,22 +433,33 @@ common features used in Tempest.") (define-public python-oslo.context (package (name "python-oslo.context") - (version "2.20.0") + (version "3.1.1") (source (origin (method url-fetch) (uri (pypi-uri "oslo.context" version)) (sha256 (base32 - "0iiq9rpwg6wrdqnhf3d8z8g0g7fjhs5zn6qw6igvxplz2c3rbvvx")))) + "1l2z186rkd9acrb2ygf53yrdc1lgf7cy1akbhm21kgkzind4p2r6")))) (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "test-requirements.txt" + (("hacking>=3.0.1,<3.1.0") + "hacking>=3.0.1")) + #t))))) (propagated-inputs - `(("python-debtcollector" ,python-debtcollector) - ("python-pbr" ,python-pbr))) + `(("python-debtcollector" ,python-debtcollector))) (native-inputs - `(("python-fixtures" ,python-fixtures) + `(("python-bandit" ,python-bandit) + ("python-coverage" ,python-coverage) + ("python-fixtures" ,python-fixtures) ("python-hacking" ,python-hacking) - ("python-oslotest" ,python-oslotest))) + ("python-oslotest" ,python-oslotest) + ("python-pbr" ,python-pbr) + ("python-stestr" ,python-stestr))) (home-page "https://launchpad.net/oslo") (synopsis "Oslo context library") (description @@ -600,70 +617,62 @@ and building documentation from them.") (define-public python-oslosphinx (package (name "python-oslosphinx") - (version "4.10.0") + (version "4.18.0") (source (origin (method url-fetch) (uri (pypi-uri "oslosphinx" version)) (sha256 (base32 - "09mxqyabi68f3s3arvdhlhq0mn38vf74jbsfcg84151hcj6czhnl")))) + "1xm41857vzrzjmnyi6bqirg4i5qa61v7wxcsdc4q1nzgr3ndgz5k")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases - (replace 'check + (add-after 'unpack 'relax-requirements (lambda _ - ;; Note: Upstream tests would have also built the release notes. - ;; That only would work if we were in a git checkout. - ;; Therefore, we don't do it here. - (invoke "python" "setup.py" "build_sphinx")))))) + (substitute* "test-requirements.txt" + (("hacking!=0.13.0,<0.14,>=0.12.0") + "hacking!=0.13.0,>=0.12.0")) + #t))))) (propagated-inputs - `(("python-requests" ,python-requests))) + `(("python-requests" ,python-requests))) (native-inputs - `(("python-pbr" ,python-pbr) - ("python-docutils" ,python-docutils) - ("python-hacking" ,python-hacking) - ("python-sphinx" ,python-sphinx))) + `(("python-hacking" ,python-hacking) + ("python-openstackdocstheme" ,python-openstackdocstheme) + ("python-pbr" ,python-pbr) + ("python-reno" ,python-reno) + ("python-sphinx" ,python-sphinx))) (home-page "https://www.openstack.org/") (synopsis "OpenStack sphinx extensions and theme") - (description - "This package provides themes and extensions for Sphinx documentation -from the OpenStack project.") + (description "This package provides themes and extensions for Sphinx +documentation from the OpenStack project.") (license asl2.0))) -(define-public python2-oslosphinx - (package-with-python2 python-oslosphinx)) - (define-public python-oslotest (package (name "python-oslotest") - (version "3.4.0") + (version "4.4.1") (source - (origin - (method url-fetch) - (uri (pypi-uri "oslotest" version)) - (sha256 - (base32 - "1pp8lq61d548cxcqi451czvrz5i5b3hyi2ry00wmngdgiswcqj1h")))) + (origin + (method url-fetch) + (uri (pypi-uri "oslotest" version)) + (sha256 + (base32 + "0r50sz55m8ljv2vk1k7sp88iz1iqq4p9w6kb8hn8g8c50r9zdi5i")))) (build-system python-build-system) + (arguments + ;; The tests are disabled to avoid a circular dependency with oslo.config. + `(#:tests? #f)) (propagated-inputs - `(("python-fixtures" ,python-fixtures) - ("python-mock" ,python-mock) - ("python-mox3" ,python-mox3) - ("python-os-client-config" ,python-os-client-config) - ("python-six" ,python-six) - ("python-subunit" ,python-subunit) - ("python-testrepository" ,python-testrepository) - ("python-testtools" ,python-testtools))) - (native-inputs - `(("python-pbr" ,python-pbr) - ("python-testscenarios" ,python-testscenarios))) + `(("python-fixtures" ,python-fixtures) + ("python-six" ,python-six) + ("python-subunit" ,python-subunit) + ("python-testtools" ,python-testtools))) (home-page "https://launchpad.net/oslo") (synopsis "Oslo test framework") - (description - "The Oslo Test framework provides common fixtures, support for debugging, -and better support for mocking results.") + (description "The Oslo Test framework provides common fixtures, support +for debugging, and better support for mocking results.") (license asl2.0))) (define-public python2-oslotest diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 84864ded5c..4a6881d475 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -130,8 +130,8 @@ ;; Latest version of Guix, which may or may not correspond to a release. ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. - (let ((version "1.2.0rc1") - (commit "3ba6ffd0dd092ae879d014e4971989f231eaa56d") + (let ((version "1.2.0rc2") + (commit "0d4b1afb6bfa4bdeade2cb6409ece9467d513e39") (revision 1)) (package (name "guix") @@ -148,7 +148,7 @@ (commit commit))) (sha256 (base32 - "1wa67gdipmzqr400hp0cw5ih0rlfvj345h65rqbk9s4g3bkg38hm")) + "1d0pifzrr14f1n0fn21rlh0hzfjvfsavf9as1vcjga47bdjjvrpp")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -1273,7 +1273,7 @@ for packaging and deployment of cross-compiled Windows applications.") (define-public libostree (package (name "libostree") - (version "2020.7") + (version "2020.8") (source (origin (method url-fetch) @@ -1281,7 +1281,7 @@ for packaging and deployment of cross-compiled Windows applications.") "https://github.com/ostreedev/ostree/releases/download/v" (version-major+minor version) "/libostree-" version ".tar.xz")) (sha256 - (base32 "0clriq2ypz1fycd6mpjyrhzid44svzpzw0amnank593h69b216ax")))) + (base32 "16v73v63h16ika73kgh2cvgm0v27r2d48m932mbj3xm6s295kapx")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index d65155bbde..2e56fe4c1e 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -55,14 +55,14 @@ (define-public parallel (package (name "parallel") - (version "20200822") + (version "20201022") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/parallel/parallel-" version ".tar.bz2")) (sha256 - (base32 "02dy46g6f05p7s2qs8h6yg20p1zl3flxxf77n5jw74l3h1m24m4n")))) + (base32 "0qgh3947l854nvh2ylykbyzsflixd2zdi17vmwqm6azn9a32kzim")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch b/gnu/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch new file mode 100644 index 0000000000..cb3313197c --- /dev/null +++ b/gnu/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch @@ -0,0 +1,11 @@ +--- a/gajim/common/configpaths.py 2020-11-19 12:12:02.004414323 +0100 ++++ a/gajim/common/configpaths.py 2020-11-19 15:34:52.211476895 +0100 +@@ -47,7 +47,7 @@ + return [Path(_paths['PLUGINS_BASE']), + Path('/app/plugins')] + return [Path(_paths['PLUGINS_BASE']), +- Path(_paths['PLUGINS_USER'])] ++ Path(_paths['PLUGINS_USER'])] + ([Path(os.getenv('GAJIM_PLUGIN_PATH'))] if os.getenv('GAJIM_PLUGIN_PATH') and Path(os.getenv('GAJIM_PLUGIN_PATH')).is_dir() else []) + + + def get_paths(type_: PathType) -> Generator[str, None, None]: diff --git a/gnu/packages/patches/xpra-4.0.4-norequests.patch b/gnu/packages/patches/xpra-4.0.4-norequests.patch deleted file mode 100644 index e545be7f1d..0000000000 --- a/gnu/packages/patches/xpra-4.0.4-norequests.patch +++ /dev/null @@ -1,39 +0,0 @@ -Remove python-requests dependency, r27626 upstream. - ---- a/xpra/net/websockets/common.py (revision 27625) -+++ b/xpra/net/websockets/common.py (revision 27626) -@@ -7,7 +7,6 @@ - import uuid - from hashlib import sha1 - from base64 import b64encode --from requests.structures import CaseInsensitiveDict - - from xpra.os_util import strtobytes, bytestostr, monotonic_time - from xpra.log import Logger -@@ -77,7 +76,7 @@ - for line in lines: - parts = line.split(b": ", 1) - if len(parts)==2: -- headers[parts[0]] = parts[1] -+ headers[parts[0].lower()] = parts[1] - return headers - - def verify_response_headers(headers, key): -@@ -84,14 +83,13 @@ - log("verify_response_headers(%s)", headers) - if not headers: - raise Exception("no http headers found in response") -- headers = CaseInsensitiveDict(headers) -- upgrade = headers.get(b"Upgrade", b"") -+ upgrade = headers.get(b"upgrade", b"") - if upgrade!=b"websocket": - raise Exception("invalid http upgrade: '%s'" % upgrade) -- protocol = headers.get(b"Sec-WebSocket-Protocol", b"") -+ protocol = headers.get(b"sec-websocket-protocol", b"") - if protocol!=b"binary": - raise Exception("invalid websocket protocol: '%s'" % protocol) -- accept_key = headers.get(b"Sec-WebSocket-Accept", b"") -+ accept_key = headers.get(b"sec-websocket-accept", b"") - if not accept_key: - raise Exception("websocket accept key is missing") - expected_key = make_websocket_accept_hash(key) diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index dcd4bb90d8..e3d2da9b59 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -28,6 +28,7 @@ (define-module (gnu packages python-check) #:use-module (gnu packages) #:use-module (gnu packages check) + #:use-module (gnu packages openstack) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages web) @@ -82,6 +83,39 @@ This package provides seamless integration with coverage.py (and thus pytest, nosetests, etc...) in Python projects.") (license license:expat))) +(define-public python-junit-xml + ;; XXX: There are no tags or PyPI releases, so take the latest commit + ;; and use the version defined in setup.py. + (let ((version "1.9") + (commit "4bd08a272f059998cedf9b7779f944d49eba13a6") + (revision "0")) + (package + (name "python-junit-xml") + (version (git-version version revision commit)) + (home-page "https://github.com/kyrus/python-junit-xml") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0b8kbjhk3j10rk0vcniy695m3h43yip6y93h1bd6jjh0cp7s09c7")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "pytest" "-vv")))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-six" ,python-six))) + (synopsis "Create JUnit XML test results") + (description + "This package provides a Python module for creating JUnit XML test +result documents that can be read by tools such as Jenkins or Bamboo.") + (license license:expat)))) + (define-public python-vcrpy (package (name "python-vcrpy") @@ -1078,3 +1112,36 @@ any Python VM with basically no runtime overhead.") (description "Robber is a Python assertion library for test-driven and behavior-driven development (TDD and BDD).") (license license:expat))) + +(define-public python-stestr + (package + (name "python-stestr") + (version "3.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "stestr" version)) + (sha256 + (base32 + "0adhqp9c9338wlvlq776k57k04lyxp38bv591afdm9gjsn2qn1zm")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;to avoid circular dependencies + (native-inputs + `(("python-pbr" ,python-pbr))) + (propagated-inputs + `(("python-cliff" ,python-cliff) + ("python-fixtures" ,python-fixtures) + ("python-future" ,python-future) + ("python-pyyaml" ,python-pyyaml) + ("python-subunit" ,python-subunit) + ("python-testtools" ,python-testtools) + ("python-voluptuous" ,python-voluptuous))) + (home-page "https://stestr.readthedocs.io/en/latest/") + (synopsis "Parallel Python test runner") + (description "This package provides the @command{stestr} command, a +parallel Python test runner built around @code{subunit}. It is designed to +execute @code{unittest} test suites using multiple processes to split up +execution of a test suite. It will also store a history of all test runs to +help in debugging failures and optimizing the scheduler to improve speed.") + (license license:asl2.0))) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 0cee05cb09..6f3dbbf9f2 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -74,7 +74,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/python-otr/pure-python-otr.git") + (url "https://github.com/python-otr/pure-python-otr") (commit version))) (file-name (git-file-name name version)) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index e0d474c151..2ccb41fe3a 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2020 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2016, 2017, 2020 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2016, 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2017, 2020 Julien Lepiller <julien@lepiller.eu> @@ -68,6 +68,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages django) + #:use-module (gnu packages graphviz) #:use-module (gnu packages groff) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) @@ -76,6 +77,7 @@ #:use-module (gnu packages python-check) #:use-module (gnu packages python-compression) #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-science) #:use-module (gnu packages python-xyz) #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) @@ -276,6 +278,158 @@ WSGI. This package includes libraries for implementing ASGI servers.") ;; looks like the user can choose a license. (license (list license:gpl3+ license:lgpl3+ license:expat)))) +(define-public python-aws-sam-translator + (package + (name "python-aws-sam-translator") + (version "1.30.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "aws-sam-translator" version)) + (sha256 + (base32 + "0d9ppd94x2kw404m49ajswmmxgdngbs4p5ajyrdvnlivfzqbv7dx")))) + (build-system python-build-system) + (arguments + `(;; XXX: Tests are not distributed with the PyPI archive, and would + ;; introduce a circular dependency on python-cfn-lint. + #:tests? #f + #:phases (modify-phases %standard-phases + (add-after 'unpack 'loosen-requirements + (lambda _ + ;; The package needlessly specifies exact versions + ;; of dependencies, when it works fine with others. + (substitute* "requirements/base.txt" + (("(.*)(~=[0-9\\.]+)" all package version) + package)) + #t))))) + (propagated-inputs + `(("python-boto3" ,python-boto3) + ("python-jsonschema" ,python-jsonschema) + ("python-six" ,python-six))) + (home-page "https://github.com/awslabs/serverless-application-model") + (synopsis "Transform AWS SAM templates into AWS CloudFormation templates") + (description + "AWS SAM Translator is a library that transform @dfn{Serverless Application +Model} (SAM) templates into AWS CloudFormation templates.") + (license license:asl2.0))) + +(define-public python-aws-xray-sdk + (package + (name "python-aws-xray-sdk") + (version "2.6.0") + (home-page "https://github.com/aws/aws-xray-sdk-python") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "12fzr0ylpa1lx3xr1x2f1jx8iiyzcr6g57fb9jign0j0lxdlbzpv")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'disable-tests + (lambda _ + (for-each delete-file + '(;; These tests require packages not yet in Guix. + "tests/ext/aiobotocore/test_aiobotocore.py" + "tests/ext/aiohttp/test_middleware.py" + "tests/ext/pg8000/test_pg8000.py" + "tests/ext/psycopg2/test_psycopg2.py" + "tests/ext/pymysql/test_pymysql.py" + "tests/ext/pynamodb/test_pynamodb.py" + "tests/test_async_recorder.py" + + ;; FIXME: Why is this failing? + "tests/test_patcher.py" + + ;; TODO: How to configure Django for these tests. + "tests/ext/django/test_db.py" + "tests/ext/django/test_middleware.py" + + ;; These tests want to access httpbin.org. + "tests/ext/requests/test_requests.py" + "tests/ext/httplib/test_httplib.py" + "tests/ext/aiohttp/test_client.py")))) + (replace 'check + (lambda _ + (setenv "PYTHONPATH" + (string-append "./build/lib:.:" + (getenv "PYTHONPATH"))) + (invoke "pytest" "-vv" "tests")))))) + (native-inputs + `(;; These are required for the test suite. + ("python-bottle" ,python-bottle) + ("python-flask" ,python-flask) + ("python-flask-sqlalchemy" ,python-flask-sqlalchemy) + ("python-pymysql" ,python-pymysql) + ("python-pytest" ,python-pytest) + ("python-pytest-aiohttp" ,python-pytest-aiohttp) + ("python-requests" ,python-requests) + ("python-sqlalchemy" ,python-sqlalchemy) + ("python-webtest" ,python-webtest))) + (propagated-inputs + `(("python-aiohttp" ,python-aiohttp) + ("python-botocore" ,python-botocore) + ("python-future" ,python-future) + ("python-jsonpickle" ,python-jsonpickle) + ("python-urllib3" ,python-urllib3) + ("python-wrapt" ,python-wrapt))) + (synopsis "Profile applications on AWS X-Ray") + (description + "The AWS X-Ray SDK for Python enables Python developers to record and +emit information from within their applications to the AWS X-Ray service.") + (license license:asl2.0))) + +(define-public python-cfn-lint + (package + (name "python-cfn-lint") + (version "0.41.0") + (home-page "https://github.com/aws-cloudformation/cfn-python-lint") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0nqs0fmj3hd7pnd9hkb4z57jvi2iv82hh6n3xxba6i6p8zgx75q4")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Remove test for the documentation update scripts + ;; to avoid a dependency on 'git'. + (delete-file + "test/unit/module/maintenance/test_update_documentation.py") + (setenv "PYTHONPATH" + (string-append "./build/lib:" + (getenv "PYTHONPATH"))) + (setenv "PATH" (string-append out "/bin:" + (getenv "PATH"))) + (invoke "python" "-m" "unittest" "discover" + "-s" "test"))))))) + (native-inputs + `(("python-pydot" ,python-pydot) + ("python-mock" ,python-mock))) + (propagated-inputs + `(("python-aws-sam-translator" ,python-aws-sam-translator) + ("python-jsonpatch" ,python-jsonpatch) + ("python-jsonschema" ,python-jsonschema) + ("python-junit-xml" ,python-junit-xml) + ("python-networkx" ,python-networkx) + ("python-pyyaml" ,python-pyyaml) + ("python-six" ,python-six))) + (synopsis "Validate CloudFormation templates") + (description + "This package lets you validate CloudFormation YAML/JSON templates against +the CloudFormation spec and additional checks. Includes checking valid values +for resource properties and best practices.") + (license license:expat))) + (define-public python-falcon (package (name "python-falcon") @@ -460,14 +614,14 @@ HTTP servers, RESTful APIs, and web services.") (define-public python-html2text (package (name "python-html2text") - (version "2019.8.11") + (version "2020.1.16") (source (origin (method url-fetch) (uri (pypi-uri "html2text" version)) (sha256 (base32 - "0ppgjplg06kmv9sj0x8p7acczcq2mcfgk1jdjwm4w5w40b0vj5pm")))) + "1fvv4z6dblii2wk1x82981ag8yhxbim1v2ksgywxsndh2s7335p2")))) (build-system python-build-system) (arguments '(#:phases @@ -485,7 +639,94 @@ Swartz.") (license license:gpl3+))) (define-public python2-html2text - (package-with-python2 python-html2text)) + (let ((base (package-with-python2 python-html2text))) + (package + (inherit base) + ;; This is the last version with support for Python 2. + (version "2019.8.11") + (source (origin + (method url-fetch) + (uri (pypi-uri "html2text" version)) + (sha256 + (base32 + "0ppgjplg06kmv9sj0x8p7acczcq2mcfgk1jdjwm4w5w40b0vj5pm"))))))) + +(define-public python-jose + (package + (name "python-jose") + (version "3.2.0") + (home-page "http://github.com/mpdavis/python-jose") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xmnf8whzv2gnkkdv0fqcn9qwmcc7y647p4kw9fi3lvcp9kch8vi")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (invoke "pytest" "-vv") + (format #t "test suite not run~%")) + #t))))) + (native-inputs + `(;; All native inputs are for tests. + ("python-pyasn1" ,python-pyasn1) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-runner" ,python-pytest-runner))) + (propagated-inputs + `(("python-cryptography" ,python-cryptography) + ("python-rsa" ,python-rsa) + ("python-six" ,python-six))) + (synopsis "JOSE implementation in Python") + (description + "The @dfn{JavaScript Object Signing and Encryption} (JOSE) technologies +- JSON Web Signature (JWS), JSON Web Encryption (JWE), JSON Web Key (JWK), and +JSON Web Algorithms (JWA) - collectively can be used to encrypt and/or sign +content using a variety of algorithms.") + (license license:expat))) + +(define-public python-jsonpickle + (package + (name "python-jsonpickle") + (version "1.4.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "jsonpickle" version)) + (sha256 + (base32 + "1fn86z468hamw8njh2grw2xdhsm7g48dyxs3lw0n10nn1g6vgm78")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "PYTHONPATH" + (string-append "./build/lib:" + (getenv "PYTHONPATH"))) + (invoke "pytest" "-vv" + ;; Prevent running the flake8 and black + ;; pytest plugins, which only tests style + ;; and frequently causes harmless failures. + "-o" "addopts=''")))))) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm) + ("python-toml" ,python-toml) ;XXX: for setuptools_scm[toml] + ;; For tests. + ("python-numpy" ,python-numpy) + ("python-pandas" ,python-pandas) + ("python-pytest" ,python-pytest))) + (home-page "https://jsonpickle.github.io/") + (synopsis "Serialize object graphs into JSON") + (description + "This package provides a Python library for serializing any arbitrary +object graph to and from JSON.") + (license license:bsd-3))) (define-public python-mechanicalsoup (package @@ -712,6 +953,30 @@ both of which are installed automatically if you install this library.") (define-public python2-flask-babel (package-with-python2 python-flask-babel)) +(define-public python-flask-cors + (package + (name "python-flask-cors") + (version "3.0.9") + (source (origin + (method url-fetch) + (uri (pypi-uri "Flask-Cors" version)) + (sha256 + (base32 + "1f36hkaxc92zn12f88fkzwifdvlvsnmlp1dv3p5inpcc500c3kvb")))) + (build-system python-build-system) + (native-inputs + `(("python-flask" ,python-flask) + ("python-nose" ,python-nose) + ("python-packaging" ,python-packaging))) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "https://flask-cors.readthedocs.io/en/latest/") + (synopsis "Handle Cross-Origin Resource Sharing with Flask") + (description + "This package provides a Flask extension for handling @acronym{CORS,Cross +Origin Resource Sharing}, making cross-origin AJAX possible.") + (license license:expat))) + (define-public python-html5lib (package (name "python-html5lib") @@ -788,6 +1053,41 @@ C, yielding parse times that can be a thirtieth of the html5lib parse times.") (define-public python2-html5-parser (package-with-python2 python-html5-parser)) +(define-public python-minio + (package + (name "python-minio") + (version "6.0.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "minio" version)) + (sha256 + (base32 + "1cxpa0m7mdvpdbc1g6wlihq6ja4g4paxkl6f3q84bbnx07zpbllp")))) + (build-system python-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'check 'disable-failing-tests + (lambda _ + ;; This test requires network access. + (delete-file "tests/unit/credentials_test.py") + #t))))) + (native-inputs + `(("python-faker" ,python-faker) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose))) + (propagated-inputs + `(("python-certifi" ,python-certifi) + ("python-configparser" ,python-configparser) + ("python-dateutil" ,python-dateutil) + ("python-pytz" ,python-pytz) + ("python-urllib3" ,python-urllib3))) + (home-page "https://github.com/minio/minio-py") + (synopsis "Programmatically access Amazon S3 from Python") + (description + "This package provides a Python library for interacting with any +Amazon S3 compatible object storage server.") + (license license:asl2.0))) + (define-public python-pycurl (package (name "python-pycurl") @@ -1013,6 +1313,49 @@ another XPath engine to find the matching elements in an XML or HTML document.") (define-public python2-cssselect (package-with-python2 python-cssselect)) +(define-public python-databricks-cli + (package + (name "python-databricks-cli") + (version "0.14.0") + (home-page "https://github.com/databricks/databricks-cli") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0imwpfda2pxix1rx0nlqs48v58icfw065nsv53rpg0dw4bw9x2wi")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "PYTHONPATH" + (string-append "./build/lib:" + (getenv "PYTHONPATH"))) + (invoke "pytest" "tests" "-vv" + ;; XXX: This fails with newer Pytest + ;; (upstream uses Pytest 3..). + "-k" "not test_get_request_with_list")))))) + (native-inputs + `(;; For tests. + ("python-decorator" ,python-decorator) + ("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-requests-mock" ,python-requests-mock))) + (propagated-inputs + `(("python-click" ,python-click) + ("python-configparser" ,python-configparser) + ("python-requests" ,python-requests) + ("python-six" ,python-six) + ("python-tabulate" ,python-tabulate))) + (synopsis "Command line interface for Databricks") + (description + "The Databricks Command Line Interface is a tool which provides an easy +to use interface to the Databricks platform. The CLI is built on top of the +Databricks REST APIs.") + (license license:asl2.0))) + (define-public python-openid-cla (package (name "python-openid-cla") @@ -1163,6 +1506,37 @@ WebSockets (over HTTP/1 and HTTP/2), ASGI/2, and ASGI/3 specifications. It can utilise asyncio, uvloop, or trio worker types.") (license license:expat))) +(define-public python-querystring-parser + (package + (name "python-querystring-parser") + (version "1.2.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "querystring_parser" version)) + (sha256 + (base32 + "0qlar8a0wa003hm2z6wcpb625r6vjj0a70rsni9h8lz0zwfcwkv4")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; XXX FIXME: This test is broken with Python 3.7: + ;; https://github.com/bernii/querystring-parser/issues/35 + (substitute* "querystring_parser/tests.py" + (("self\\.assertEqual\\(self\\.knownValuesNormalized, result\\)") + "True")) + (invoke "python" "querystring_parser/tests.py")))))) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "https://github.com/bernii/querystring-parser") + (synopsis "QueryString parser that correctly handles nested dictionaries") + (description + "This package provides a query string parser for Python and Django +projects that correctly creates nested dictionaries from sent form/querystring +data.") + (license license:expat))) + (define-public python-tornado (package (name "python-tornado") @@ -2283,15 +2657,16 @@ supports url redirection and retries, and also gzip and deflate decoding.") (define-public awscli (package + ;; Note: updating awscli typically requires updating botocore as well. (name "awscli") - (version "1.18.6") + (version "1.18.183") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "0p479mfs9r0m82a217pap8156ijwvhv6r3kqa4k267gd05wgvygm")))) + "0n1pmdl33r1v8qnrcg08ihvri9zm4fvsp14605vwmlkxvs8nb7s5")))) (build-system python-build-system) (arguments ;; FIXME: The 'pypi' release does not contain tests. @@ -2789,13 +3164,13 @@ Betamax.") (define-public python-s3transfer (package (name "python-s3transfer") - (version "0.2.0") + (version "0.3.3") (source (origin (method url-fetch) (uri (pypi-uri "s3transfer" version)) (sha256 (base32 - "08fhj73b1ai52hrs2q3nggshq3pswn1gq8ch3m009cb2v2vmqggj")))) + "1nzp5kwmy9669334shcz9ipg89jgpdqhrmbkgdg18r7wmvi3f6lj")))) (build-system python-build-system) (arguments `(#:phases diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index c3624784e9..2f270d1b3e 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -91,6 +91,7 @@ ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; Copyright © 2020 Diego N. Barbato <dnbarbato@posteo.de> ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at> +;;; Copyright © 2019 Kristian Trandem <kristian@devup.no> ;;; ;;; This file is part of GNU Guix. ;;; @@ -122,6 +123,7 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages databases) #:use-module (gnu packages dbm) + #:use-module (gnu packages docker) #:use-module (gnu packages enchant) #:use-module (gnu packages file) #:use-module (gnu packages fontutils) @@ -3933,6 +3935,30 @@ augment the changelog, but it can be used for other documents, too.") (define-public python2-rst.linker (package-with-python2 python-rst.linker)) +(define-public python-sshpubkeys + (package + (name "python-sshpubkeys") + (version "3.1.0") + (home-page "https://github.com/ojarva/python-sshpubkeys") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1h4gwmcfn84kkqh83km1vfz8sc5kr2g4gzgzmr8gz704jmqiv7nq")))) + (build-system python-build-system) + (propagated-inputs + `(("python-cryptography" ,python-cryptography) + ("python-ecdsa" ,python-ecdsa))) + (synopsis "OpenSSH public key parser") + (description + "This package provides a library for parsing and validating OpenSSH +public key files.") + (license license:bsd-3))) + (define-public python-feedgenerator (package (name "python-feedgenerator") @@ -5636,14 +5662,14 @@ the OleFileIO module from PIL, the Python Image Library.") (define-public python-pillow (package (name "python-pillow") - (version "6.2.1") + (version "8.0.1") (source (origin (method url-fetch) (uri (pypi-uri "Pillow" version)) (sha256 (base32 - "1c8wkzc58f5wdh006jvmwdk3wxld1xgagcbdvj7iv17qi0m9fkmz")))) + "17pv0flaqqfld9m4lz8ayxyqb11gbbmr7w04mw4ar79cn3lwdi8i")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest))) @@ -5683,12 +5709,24 @@ efficient internal representation, and fairly powerful image processing capabilities. The core image library is designed for fast access to data stored in a few basic pixel formats. It should provide a solid foundation for a general image processing tool.") + (properties `((python2-variant . ,(delay python2-pillow)))) (license (license:x11-style "http://www.pythonware.com/products/pil/license.htm" "The PIL Software License")))) (define-public python2-pillow - (package-with-python2 python-pillow)) + (package-with-python2 + (package + (inherit (strip-python2-variant python-pillow)) + ;; Version 6 is the last series with Python 2 support. + (version "6.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Pillow" version)) + (sha256 + (base32 + "0l5rv8jkdrb5q846v60v03mcq64yrhklidjkgwv6s1pda71g17yv"))))))) (define-public python-pillow-2.9 (package @@ -8148,27 +8186,6 @@ PEP 8.") (define-public python2-pyflakes (package-with-python2 python-pyflakes)) -;; Flake8 2.6 requires an older version of pyflakes. -;; This should be removed ASAP. -(define-public python-pyflakes-1.2 - (package (inherit python-pyflakes) - (version "1.2.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pyflakes" version)) - (sha256 - (base32 - "17hkw8yd44cr8fz13phy4aih3r5j2p7ild4zlvqdh2c8dmiinjif")))) - (arguments - '(#:phases - (modify-phases %standard-phases - ;; This one test fails. - (replace 'check - (lambda _ (invoke "pytest" "-vv" "-k" "not test_f_string")))))) - (native-inputs - `(("python-pytest" ,python-pytest))))) - (define-public python-mccabe (package (name "python-mccabe") @@ -8194,39 +8211,6 @@ complexity of Python source code.") (define-public python2-mccabe (package-with-python2 python-mccabe)) -(define-public python-mccabe-0.2.1 - (package (inherit python-mccabe) - (version "0.2.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "mccabe" version)) - (sha256 - (base32 - "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs")))))) - -(define-public python2-mccabe-0.2.1 - (package-with-python2 python-mccabe-0.2.1)) - -;; Flake8 2.4.1 requires an older version of pep8. -;; This should be removed ASAP. -(define-public python-pep8-1.5.7 - (package (inherit python-pep8) - (version "1.5.7") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pep8" version)) - (sha256 - (base32 - "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m")))) - (arguments - ;; XXX Tests not compatible with Python 3.5. - '(#:tests? #f)))) - -(define-public python2-pep8-1.5.7 - (package-with-python2 python-pep8-1.5.7)) - (define-public python-flake8 (package (name "python-flake8") @@ -8273,40 +8257,6 @@ complexity of Python source code.") ("python2-typing" ,python2-typing) ,@(package-propagated-inputs base)))))) -;; python-hacking requires flake8 <2.7.0. -(define-public python-flake8-2.6 - (package - (inherit python-flake8) - (version "2.6.2") - (source (origin - (method url-fetch) - (uri (pypi-uri "flake8" version)) - (sha256 - (base32 - "0y57hzal0j84dh9i1g1g6dc4aywvrnhy2fjmmbglpv5ajihxh713")))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'use-later-pycodestyles - (lambda __ - (substitute* '("flake8.egg-info/requires.txt" - "setup.py") - (("pycodestyle >= 2.0, < 2.1") - "pycodestyle >= 2.0")) - #t)) - (delete 'check) - (add-after 'install 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "pytest" "-v") - #t))))) - (propagated-inputs - `(("python-pep8" ,python-pep8) - ("python-pycodestyle" ,python-pycodestyle) - ("python-entrypoints" ,python-entrypoints) - ("python-pyflakes" ,python-pyflakes-1.2) - ("python-mccabe" ,python-mccabe))))) - (define-public python-flake8-bugbear (package (name "python-flake8-bugbear") @@ -8734,6 +8684,26 @@ should be stored on various operating systems.") (define-public python2-appdirs (package-with-python2 python-appdirs)) +(define-public python-gorilla + (package + (name "python-gorilla") + (version "0.3.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "gorilla" version)) + (sha256 + (base32 + "0b40blcp6fih4nvqbilra4qw1dfccv1ahjmr41ac4d9rjadqkcpy")))) + (build-system python-build-system) + (home-page "https://github.com/christophercrouzet/gorilla") + (synopsis "Convenient monkey patching with Python") + (description + "Gorilla is a Python library that provides a convenient approach to +monkey patching. Monkey patching is the process of modifying module and +class attributes at runtime with the purpose of replacing or extending +third-party code.") + (license license:expat))) + (define-public python-llfuse (package (name "python-llfuse") @@ -10922,6 +10892,73 @@ text.") (define-public python2-colorama (package-with-python2 python-colorama)) +(define-public python-moto + (package + (name "python-moto") + ;; XXX: Use a pre-release for compatibility with latest botocore & friends. + (version "1.3.16.dev134") + (source (origin + (method url-fetch) + (uri (pypi-uri "moto" version)) + (sha256 + (base32 + "1pix0c7zszjwzfy88n1rpih9vkdm25nqcvz93z850xvgwb4v81bd")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-hardcoded-executable-names + (lambda _ + (substitute* "moto/batch/models.py" + (("/bin/sh") + (which "sh"))) + (substitute* (find-files "tests" "\\.py$") + (("#!/bin/bash") + (string-append "#!" (which "bash")))) + #t)) + (replace 'check + (lambda _ + (setenv "PYTHONPATH" (string-append "./build/lib:" + (getenv "PYTHONPATH"))) + (invoke "pytest" "-vv" "-m" "not network" + ;; These tests require Docker. + "-k" "not test_terminate_job \ +and not test_invoke_function_from_sqs_exception")))))) + (native-inputs + `(("python-flask" ,python-flask) + ("python-flask-cors" ,python-flask-cors) + ("python-freezegun" ,python-freezegun) + ("python-parameterized" ,python-parameterized) + ("python-pytest" ,python-pytest) + ("python-sure" ,python-sure))) + (propagated-inputs + `(("python-aws-xray-sdk" ,python-aws-xray-sdk) + ("python-boto" ,python-boto) + ("python-boto3" ,python-boto3) + ("python-botocore" ,python-botocore) + ("python-cfn-lint" ,python-cfn-lint) + ("python-cryptography" ,python-cryptography) + ("python-dateutil" ,python-dateutil) + ("python-docker" ,python-docker) + ("python-idna" ,python-idna) + ("python-jinja2" ,python-jinja2) + ("python-jose" ,python-jose) + ("python-jsondiff" ,python-jsondiff) + ("python-mock" ,python-mock) + ("python-pytz" ,python-pytz) + ("python-pyyaml" ,python-pyyaml) + ("python-requests" ,python-requests) + ("python-responses" ,python-responses) + ("python-six" ,python-six) + ("python-sshpubkeys" ,python-sshpubkeys) + ("python-werkzeug" ,python-werkzeug) + ("python-xmltodict" ,python-xmltodict))) + (home-page "https://github.com/spulec/moto") + (synopsis "Mock out the boto library") + (description + "@code{moto} is a library designed to easily mock out the +@code{boto} library.") + (license license:asl2.0))) + (define-public python-rsa (package (name "python-rsa") @@ -11077,32 +11114,55 @@ document.") manipulation library.") (license license:expat))) +(define-public python-boto + (package + (name "python-boto") + (version "2.49.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "boto" version)) + (sha256 + (base32 + "0njy09c4wjx7ipxhwi6vv404nflyiasl78vwwxxpclnql903n3ga")))) + (build-system python-build-system) + (arguments + ;; XXX: This package is unmaintained and has problems with newer versions + ;; of Python 3 as well as test libraries. 'python-moto' still uses a + ;; subset of this library, so keep it around for now, but disable tests. + '(#:tests? #f)) + (propagated-inputs + `(("python-paramiko" ,python-paramiko) + ("python-requests" ,python-requests))) + (home-page "https://github.com/boto/boto") + (synopsis "Python interfaces for Amazon Web Services") + (description + "This package provides various facilities for interacting with Amazon +Web Services through Python. + +This software is unmaintained, and new projects should use @code{boto3} instead.") + (license license:expat))) + (define-public python-botocore + ;; Note: When updating botocore, also make sure that boto3 and awscli + ;; are compatible. (package (name "python-botocore") - (version "1.15.26") + (version "1.19.22") (source (origin (method url-fetch) (uri (pypi-uri "botocore" version)) (sha256 (base32 - "1a87pbwkk5vlwz92hy1wizfnpiwn11bhaicr6bmji1i5ybwdhnr8")))) + "0iim86x7c6hqmvd61ygz6x6x9glnsfbnyzv2y67qjdcdx8jpkmw7")))) (build-system python-build-system) (arguments ;; FIXME: Many tests are failing. '(#:tests? #f)) (propagated-inputs `(("python-dateutil" ,python-dateutil) - ("python-docutils" ,python-docutils) - ("python-jmespath" ,python-jmespath))) - (native-inputs - `(("python-mock" ,python-mock) - ("python-nose" ,python-nose) - ("behave" ,behave) - ("python-tox" ,python-tox) - ("python-urllib3" ,python-urllib3) - ("python-wheel" ,python-wheel))) + ("python-jmespath" ,python-jmespath) + ("python-urllib3" ,python-urllib3))) (home-page "https://github.com/boto/botocore") (synopsis "Low-level interface to AWS") (description "Botocore is a Python library that provides a low-level @@ -11112,6 +11172,40 @@ interface to the Amazon Web Services (AWS) API.") (define-public python2-botocore (package-with-python2 python-botocore)) +(define-public python-boto3 + (package + (name "python-boto3") + (version "1.16.22") + (home-page "https://github.com/boto/boto3") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0h20hgl4yfl58g75qhb6ibrdmzn47md3srgar7hask14cjmfhfy3")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-network-tests + ;; Deleting integration tests because they are trying to connect to AWS. + (lambda _ + (delete-file-recursively "tests/integration") + #t))))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose) + ("python-mock" ,python-mock))) + (propagated-inputs + `(("python-botocore" ,python-botocore) + ("python-jmespath" ,python-jmespath) + ("python-s3transfer" ,python-s3transfer))) + (synopsis "AWS SDK for Python") + (description + "Boto3 is a Python library for writing programs that interact with +@acronym{AWS,Amazon Web Services}.") + (license license:asl2.0))) + (define-public python-pyfiglet (package (name "python-pyfiglet") @@ -14719,22 +14813,20 @@ converting text with ANSI color codes to HTML or LaTeX.") (define-public python-ddt (package (name "python-ddt") - (version "1.1.3") + (version "1.4.1") (source (origin (method url-fetch) (uri (pypi-uri "ddt" version)) (sha256 (base32 - "1lw17420iimhghkgzgax85nn8d1an2d6k2cfvb7j5kwn2dqlr1vk")))) + "1niqpzc26sxdbyi46r07n4pma5fjx6crww2539vpfmsf0w6yg585")))) (build-system python-build-system) (native-inputs - `(("python-mock" ,python-mock) - ("python-nose" ,python-nose))) + `(("python-pytest" ,python-pytest))) (propagated-inputs - `(("python-six" ,python-six) - ("python-pyyaml" ,python-pyyaml))) - (home-page "https://github.com/txels/ddt") + `(("python-pyyaml" ,python-pyyaml))) + (home-page "https://github.com/datadriventests/ddt") (synopsis "Data-Driven Tests") (description "Data-Driven Tests (@dfn{DDT}) allow you to multiply one test case by @@ -14742,9 +14834,6 @@ running it with different test data, and make it appear as multiple test cases.") (license license:expat))) -(define-public python2-ddt - (package-with-python2 python-ddt)) - (define-public python-pycountry (package (name "python-pycountry") @@ -16038,7 +16127,7 @@ by path in a JSON document (see RFC 6901).") (base32 "0k9pff06lxama3nhsc7cdxbp83422bdy8ifs52i6xkas8hpyzfzr")))) (build-system python-build-system) - (native-inputs + (propagated-inputs `(("python-jsonpointer" ,python-jsonpointer))) (home-page "https://github.com/stefankoegl/python-json-patch") (synopsis "Applying JSON Patches in Python 2.6+ and 3.x") diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index aabbdc308f..2e621e758c 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1566,7 +1566,7 @@ message."))) (origin (method git-fetch) (uri (git-reference - (url "https://github.com/manisandro/qtspell.git") + (url "https://github.com/manisandro/qtspell") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/raspberry-pi.scm b/gnu/packages/raspberry-pi.scm index 7700c26d06..cdea392fc7 100644 --- a/gnu/packages/raspberry-pi.scm +++ b/gnu/packages/raspberry-pi.scm @@ -76,7 +76,7 @@ used in the Raspberry Pi") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/RPi-Distro/raspi-gpio.git") + (url "https://github.com/RPi-Distro/raspi-gpio") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -98,7 +98,7 @@ used in the Raspberry Pi") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/librerpi/rpi-open-firmware.git") + (url "https://github.com/librerpi/rpi-open-firmware") (commit "6be45466e0be437a1b0b3512a86f3d9627217006"))) (file-name "rpi-open-firmware-checkout") (sha256 diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm index 0fc63e8675..30523deefe 100644 --- a/gnu/packages/rdesktop.scm +++ b/gnu/packages/rdesktop.scm @@ -87,7 +87,7 @@ to remotely control a user's Windows desktop.") (origin (method git-fetch) (uri (git-reference - (url "git://github.com/FreeRDP/FreeRDP.git") + (url "git://github.com/FreeRDP/FreeRDP") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index fafa7436a0..8fc228f6ed 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1349,7 +1349,7 @@ Prawn module.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/prawnpdf/prawn-templates.git") + (url "https://github.com/prawnpdf/prawn-templates") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -1411,7 +1411,7 @@ loader for the file type associated with a filename extension, and it augments (origin (method git-fetch) ;no test suite in distributed gem (uri (git-reference - (url "https://github.com/cjheath/treetop.git") + (url "https://github.com/cjheath/treetop") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -1474,7 +1474,7 @@ for performance optimizations in Ruby code.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/searls/gimme.git") + (url "https://github.com/searls/gimme") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -1535,7 +1535,7 @@ only what they care about.") (origin (method git-fetch) ;no test suite in distributed gem (uri (git-reference - (url "https://github.com/testdouble/standard.git") + (url "https://github.com/testdouble/standard") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -1587,7 +1587,7 @@ to save time in the following ways: (origin (method git-fetch) (uri (git-reference - (url "https://github.com/wvanbergen/chunky_png.git") + (url "https://github.com/wvanbergen/chunky_png") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -1705,7 +1705,7 @@ web pages.") (origin (method git-fetch) ;no test suite in the distributed gem (uri (git-reference - (url "https://github.com/asciidoctor/asciidoctor-pdf.git") + (url "https://github.com/asciidoctor/asciidoctor-pdf") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -6824,7 +6824,7 @@ inspired by the Sinatra microframework style of specifying actions: (origin (method git-fetch) ;no test suite in distributed gem (uri (git-reference - (url "https://github.com/rubocop-hq/rubocop-ast.git") + (url "https://github.com/rubocop-hq/rubocop-ast") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -6868,7 +6868,7 @@ by RuboCop to deal with Ruby's Abstract Syntax Tree (AST), in particular: (origin (method git-fetch) ;no tests in distributed gem (uri (git-reference - (url "https://github.com/ruby/rexml.git") + (url "https://github.com/ruby/rexml") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -6919,7 +6919,7 @@ better performance than @code{Regexp} and @code{String} methods from the (origin (method git-fetch) (uri (git-reference - (url "https://github.com/janosch-x/range_compressor.git") + (url "https://github.com/janosch-x/range_compressor") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -6952,7 +6952,7 @@ following: @code{[1, 2, 3, 4, 6, 8, 9, 10]} into @code{[1..4, 6..6, 8..10]}.") (origin (method git-fetch) (uri (git-reference ;no test suite in distributed gem - (url "https://github.com/jaynetics/regexp_property_values.git") + (url "https://github.com/jaynetics/regexp_property_values") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -6983,7 +6983,7 @@ they match.") (origin (method git-fetch) ;bin/test missing from gem (uri (git-reference - (url "https://github.com/ammar/regexp_parser.git") + (url "https://github.com/ammar/regexp_parser") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -7056,7 +7056,7 @@ run.") (origin (method git-fetch) ;no tests in distributed gem (uri (git-reference - (url "https://github.com/rubocop-hq/rubocop.git") + (url "https://github.com/rubocop-hq/rubocop") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -10536,7 +10536,7 @@ custom checks. This gem provides a set of additional checks.") (source (origin (method git-fetch) ;no test in distributed gem archive (uri (git-reference - (url "https://github.com/yob/pdf-reader.git") + (url "https://github.com/yob/pdf-reader") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -10576,7 +10576,7 @@ access to the contents of a PDF file with a high degree of flexibility.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/prawnpdf/pdf-inspector.git") + (url "https://github.com/prawnpdf/pdf-inspector") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -10639,7 +10639,7 @@ functionality from Prawn.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/prawnpdf/prawn.git") + (url "https://github.com/prawnpdf/prawn") (commit commit))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index fabb4e0380..004f71ae8d 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -73,13 +73,7 @@ ("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.4)) #:cargo-development-inputs (("rust-datetime" ,rust-datetime-0.4)) - #:phases (modify-phases %standard-phases - (add-after 'configure 'dont-vendor-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t)) ;; Ignoring failing tests. ;; Reported in https://github.com/ogham/exa/issues/318 (add-before 'check 'disable-failing-tests @@ -393,18 +387,12 @@ gitignore rules.") ("rust-lazy-static" ,rust-lazy-static-1) ("rust-regex" ,rust-regex-1) ("rust-serde-json" ,rust-serde-json-1) - ("rust-tempfile" ,rust-tempfile-3)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'unvendor-libraries-from-crates - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + ("rust-tempfile" ,rust-tempfile-3)))) (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs `(("libgit2" ,libgit2) ("openssl" ,openssl) - ("pkg-config" ,pkg-config) ("zlib" ,zlib))) (home-page "https://tokei.rs") (synopsis "Count code, quickly") diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 38e4079a09..bd77b3e808 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -408,7 +408,7 @@ implementation techniques and as an expository tool.") version "/racket-" version "-src.tgz"))) (sha256 (base32 - "18pz6gjzqy6a62xkcmjanhr7kgxpvpmc0blrk4igz8ldcybz44if")) + "0gmp2ahmfd97nn9bwpfx9lznjmjkd042slnrrbdmyh59cqh98y2m")) (patches (search-patches "racket-store-checksum-override.patch")))) (build-system gnu-build-system) diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index b1db32a3dc..181a640475 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -278,7 +278,7 @@ below the current cursor position, scrolling the screen if necessary.") (define-public hstr (package (name "hstr") - (version "2.2") + (version "2.3") (source (origin (method git-fetch) (uri (git-reference @@ -287,7 +287,7 @@ below the current cursor position, scrolling the screen if necessary.") (file-name (git-file-name name version)) (sha256 (base32 - "07fkilqlkpygvf9kvxyvl58g3lfq0bwwdp3wczy4hk8qlbhmgihn")))) + "1chmfdi1dwg3sarzd01nqa82g65q7wdr6hrnj96l75vikwsg986y")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index a95160c1c1..45efd5c472 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -684,17 +684,13 @@ user interface to the FEniCS core components and external libraries.") (with-directory-excursion "test" ;; Note: The test test_snes_set_from_options() in the file ;; unit/nls/test_PETScSNES_solver.py fails and is ignored. - (and (invoke "py.test" "unit" "--ignore" - "unit/nls/test_PETScSNES_solver.py") - (invoke "mpirun" "-np" "3" "python" "-B" "-m" - "pytest" "unit" "--ignore" - "unit/nls/test_PETScSNES_solver.py"))) - (with-directory-excursion "demo" - ;; Check demos. - (invoke "python" "generate-demo-files.py") - (and (invoke "python" "-m" "pytest" "-v" "test.py") - (invoke "python" "-m" "pytest" "-v" "test.py" - "--mpiexec=mpiexec" "--num-proc=3"))) + ;; Limit the number of jobs to 3 as 500 MiB of memory is used + ;; per process. + (invoke "mpirun" "-np" (number->string + (min 3 (parallel-job-count))) + "python" "-B" "-m" + "pytest" "unit" "--ignore" + "unit/nls/test_PETScSNES_solver.py")) #t)) (add-after 'install 'install-demo-files (lambda* (#:key outputs #:allow-other-keys) diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm index e1549c1728..48944d3b72 100644 --- a/gnu/packages/storage.scm +++ b/gnu/packages/storage.scm @@ -55,14 +55,14 @@ (define-public ceph (package (name "ceph") - (version "14.2.13") + (version "14.2.14") (source (origin (method url-fetch) (uri (string-append "https://download.ceph.com/tarballs/ceph-" version ".tar.gz")) (sha256 (base32 - "0gaxjs909wf00nvh4z53cin89dw67v1q47b2jvi3iibynhkahkg1")) + "10ma8qimgspz1q3lqb4yl990l9xa87iwd0r4dxl5xg89w6j7qwix")) (patches (search-patches "ceph-disable-cpu-optimizations.patch")) (modules '((guix build utils))) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 434e236054..7e479a0d39 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -195,7 +195,7 @@ Protocol.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/syncthing/syncthing-gtk.git") + (url "https://github.com/syncthing/syncthing-gtk") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index c4420978b8..00b0bf6ddb 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -352,7 +352,13 @@ required structures.") ((string-prefix? "arm" target) "linux-armv4") ((string-prefix? "aarch64" target) - "linux-aarch64"))) + "linux-aarch64") + ((string-prefix? "powerpc64le" target) + "linux-ppc64le") + ((string-prefix? "powerpc64" target) + "linux-ppc64") + ((string-prefix? "powerpc" target) + "linux-ppc"))) #t))) '()) (replace 'configure diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 21380a9677..e58be3b274 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -286,7 +286,7 @@ video and audio streams from a DVD.") (method git-fetch) (uri (git-reference - (url "https://github.com/OpenVisualCloud/SVT-HEVC.git") + (url "https://github.com/OpenVisualCloud/SVT-HEVC") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -314,7 +314,7 @@ efficiency.") (method git-fetch) (uri (git-reference - (url "https://github.com/Intel-Media-SDK/MediaSDK.git") + (url "https://github.com/Intel-Media-SDK/MediaSDK") (commit (string-append "intel-" name "-" version)))) (file-name (git-file-name name version)) (sha256 @@ -490,7 +490,7 @@ and mmsh protocols.") (method git-fetch) (uri (git-reference - (url "https://github.com/farindk/libvideogfx.git") + (url "https://github.com/farindk/libvideogfx") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -534,7 +534,7 @@ applications by providing high-level classes for commonly required tasks.") (method git-fetch) (uri (git-reference - (url "https://github.com/strukturag/libde265.git") + (url "https://github.com/strukturag/libde265") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -575,7 +575,7 @@ other software.") (method git-fetch) (uri (git-reference - (url "https://github.com/libts/tslib.git") + (url "https://github.com/libts/tslib") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -2188,14 +2188,14 @@ To load this plugin, specify the following option when starting mpv: (define-public youtube-dl (package (name "youtube-dl") - (version "2020.11.17") + (version "2020.11.21.1") (source (origin (method url-fetch) (uri (string-append "https://youtube-dl.org/downloads/latest/" "youtube-dl-" version ".tar.gz")) (sha256 (base32 - "0b0vsmvnm2jn1k66jmymzly0nb34nk79z97msns0sw0cqhbld1b2")))) + "0a9livib328z5j3kfndxys2193dvfs4hh38krx0idg0k26xp7cfl")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -3799,7 +3799,7 @@ iTunes-style metadata.") (define-public livemedia-utils (package (name "livemedia-utils") - (version "2020.11.05") + (version "2020.11.19") (source (origin (method url-fetch) (uri (string-append @@ -3807,7 +3807,7 @@ iTunes-style metadata.") version ".tar.gz")) (sha256 (base32 - "1dx5imjil5yiya5dqlvbqkvzgic5pybsfilx5jz1cpi1znkzpgc9")))) + "16w6yxdbmjdhvffnrb752dn4llf3l0wb00dgdkyia0vqsv2qqyn7")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 236bb97cbe..cda1e144ec 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -70,7 +70,7 @@ (define-public vim (package (name "vim") - (version "8.2.1980") + (version "8.2.2017") (source (origin (method git-fetch) (uri (git-reference @@ -79,7 +79,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1l1bb4lhlivgvj4jaxkibdkcg6rh1gk80d6ni41kphyrir7xahja")))) + "0ad0c4wv8zf28wns06k82c19rs63ilsphnglajhgw5j2a1aqplyn")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -110,7 +110,7 @@ ;; Make sure the TERM environment variable is set for the tests (setenv "TERM" "xterm") #t)) - (add-before 'check 'skip-failing-tests + (add-before 'check 'skip-or-fix-failing-tests (lambda _ ;; This test assumes that PID 1 is run as root and that the user ;; running the test suite does not have permission to kill(1, 0) @@ -121,16 +121,36 @@ (substitute* "src/testdir/test_swap.vim" (("if !IsRoot\\(\\)") "if 0")) - ;; These tests check how the terminal looks after executing some - ;; actions. The path of the bash binary is shown, which results in - ;; a difference being detected. Patching the expected result is - ;; non-trivial due to the special format used, so skip the test. - (substitute* "src/testdir/test_terminal.vim" - ((".*Test_terminal_postponed_scrollback.*" line) - (string-append line "return\n"))) + ;; These tests compares output against a golden ‘…/|b|i|n|/|s|h…’ + ;; literal. We need to match that and substitute a similarly + ;; ‘spliced’ path to ‘sh’ in the store, truncated to the last + ;; 44 (spliced: 88) or so characters. + ;; Two of the tests we simply skip instead of patching the screen dump. (substitute* "src/testdir/test_popupwin.vim" - ((".*Test_popup_drag_termwin.*" line) - (string-append line "return\n"))) + ((".*Test_popupwin_term_0[1|2].*") "")) + ;; We replace the external program call (!) with a scroll-back (<) + ;; symbol and blindly fix some other differences based on error output. + (let ((splice (lambda (s separator) + (string-join (map string (string->list s)) + separator)))) + (substitute* "src/testdir/dumps/Test_terminal_from_cmd.dump" + (((splice "/bin/sh" "\\|")) + (splice (string-take-right (which "sh") 44) "|")) + (("^\\|!") "|<") + (("@37") "")) + (substitute* '("src/testdir/dumps/Test_terminal_scrollback_1.dump" + "src/testdir/dumps/Test_terminal_scrollback_2.dump") + (((splice "/bin/sh" "\\|")) + (splice (string-take-right (which "sh") 61) "|")) + (("^\\|!") "|<") + ((" @55") " @1")) + (substitute* '("src/testdir/dumps/Test_terminal_scrollback_3.dump" + "src/testdir/dumps/Test_popupwin_term_03.dump" + "src/testdir/dumps/Test_popupwin_term_04.dump") + (((splice "/bin/sh" "\\|")) + (splice (string-take-right (which "sh") 62) "|")) + (("^\\|!") "|<") + (("\\]\\| @56") "]| @1"))) #t))))) (inputs `(("gawk" ,gawk) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 40e1b94230..f1c4143a59 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1424,7 +1424,7 @@ used to validate and fix HTML data.") (define-public esbuild (package (name "esbuild") - (version "0.8.7") + (version "0.8.11") (source (origin (method git-fetch) @@ -1434,7 +1434,7 @@ used to validate and fix HTML data.") (file-name (git-file-name name version)) (sha256 (base32 - "14x95dmh4jrfp93p7ln0cv917qxll04sqzlpf9rl6w01fifr2s75")) + "18cp68jds8cq58hpcwh85cgvh5vlkjfdcpwqp5h754065j896rr3")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index a21679a4d1..02e8093ddf 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -787,6 +787,7 @@ on the screen.") "/tmp/final.jpg") (copy-file "/tmp/final.jpg" image)) '(;; "backgrounds/xfce-blue.jpg" + "backgrounds/xfce-stripes.png" "backgrounds/xfce-teal.jpg")) #t))) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index ef0ae25e13..1db3c2ead1 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com> ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> +;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -84,7 +85,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/hughsie/libxmlb.git") + (url "https://github.com/hughsie/libxmlb") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -218,7 +219,7 @@ project (but it is usable outside of the Gnome platform).") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/libxmlplusplus/libxmlplusplus.git") + (url "https://github.com/libxmlplusplus/libxmlplusplus") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -278,7 +279,7 @@ It uses libxml2 to access the XML files.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/libxmlplusplus/libxmlplusplus.git") + (url "https://github.com/libxmlplusplus/libxmlplusplus") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -1260,7 +1261,15 @@ C++ programming language.") (substitute* "Makefile" (("^examples/schema1\\\\") "\\") (("^examples/valid1\\\\") "\\")) - #t))))) + #t)) + (add-after 'install 'symlink-xmlstarlet + (lambda* (#:key outputs #:allow-other-keys) + ;; Other distros usually either rename or symlink the `xml' binary + ;; as `xmlstarlet', let's do it as well for compatibility. + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (symlink "xml" (string-append bin "/xmlstarlet")) + #t)))))) (inputs `(("libxslt" ,libxslt) ("libxml2" ,libxml2))) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 224ce981b9..4b8bd5b8f7 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -6270,16 +6270,15 @@ basic eye-candy effects.") (define-public xpra (package (name "xpra") - (version "4.0.4") + (version "4.0.5") (source (origin (method url-fetch) (uri (string-append "https://www.xpra.org/src/xpra-" version ".tar.xz")) (sha256 - (base32 "10alqdfmgml9ixdi1nyd9xlw8a5q0j8m2sv4g9p83pd6z1a0rpv2")) - (patches (search-patches "xpra-4.0.1-systemd-run.patch" - "xpra-4.0.4-norequests.patch")))) + (base32 "11ml66z8vbc0fa567kkmp2j20l5l60aflnkrz5ay8arw3w92nmnz")) + (patches (search-patches "xpra-4.0.1-systemd-run.patch")))) (build-system python-build-system) ;; see also http://xpra.org/trac/wiki/Dependencies (inputs `( diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 065e89d312..029df5ac16 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -62,7 +62,8 @@ #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:use-module (ice-9 format) - #:re-export (user-processes-service-type) ;backwards compatibility + #:re-export (user-processes-service-type ;backwards compatibility + %default-substitute-urls) #:export (fstab-service-type root-file-system-service file-system-service-type diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm index 7d2defacaa..e8957c6859 100644 --- a/gnu/services/cups.scm +++ b/gnu/services/cups.scm @@ -482,7 +482,8 @@ programs.") (package cups) "The CUPS package.") (extensions - (package-list (list cups-filters escpr hplip-minimal foomatic-filters)) + (package-list (list cups-filters epson-inkjet-printer-escpr + foomatic-filters hplip-minimal splix)) "Drivers and other extensions to the CUPS package.") (files-configuration (files-configuration (files-configuration)) diff --git a/gnu/services/sddm.scm b/gnu/services/sddm.scm index 59f8b16985..694ad736dc 100644 --- a/gnu/services/sddm.scm +++ b/gnu/services/sddm.scm @@ -169,7 +169,7 @@ Relogin=" (if (sddm-configuration-relogin? config) (list (shepherd-service (documentation "SDDM display manager.") - (requirement '(user-processes)) + (requirement '(user-processes elogind)) (provision '(xorg-server display-manager)) (start #~(make-forkexec-constructor #$sddm-command)) (stop #~(make-kill-destructor))))) diff --git a/gnu/system/images/pinebook-pro.scm b/gnu/system/images/pinebook-pro.scm new file mode 100644 index 0000000000..b038e262cb --- /dev/null +++ b/gnu/system/images/pinebook-pro.scm @@ -0,0 +1,66 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu system images pinebook-pro) + #:use-module (gnu bootloader) + #:use-module (gnu bootloader u-boot) + #:use-module (gnu image) + #:use-module (gnu packages linux) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu system) + #:use-module (gnu system file-systems) + #:use-module (gnu system image) + #:use-module (srfi srfi-26) + #:export (pinebook-pro-barebones-os + pinebook-pro-image-type + pinebook-pro-barebones-raw-image)) + +(define pinebook-pro-barebones-os + (operating-system + (host-name "viso") + (timezone "Europe/Paris") + (locale "en_US.utf8") + (bootloader (bootloader-configuration + (bootloader u-boot-pinebook-pro-rk3399-bootloader) + (target "/dev/vda"))) + (initrd-modules '()) + (kernel linux-libre-arm64-generic) + (file-systems (cons (file-system + (device (file-system-label "my-root")) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + (services (cons (service agetty-service-type + (agetty-configuration + (extra-options '("-L")) ; no carrier detect + (baud-rate "115200") + (term "vt100") + (tty "ttyS0"))) + %base-services)))) + +(define pinebook-pro-image-type + (image-type + (name 'pinebook-pro-raw) + (constructor (cut image-with-os arm64-disk-image <>)))) + +(define pinebook-pro-barebones-raw-image + (image + (inherit + (os->image pinebook-pro-barebones-os #:type pinebook-pro-image-type)) + (name 'pinebook-pro-barebones-raw-image))) diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm index 73493af551..c7beffc6e4 100644 --- a/guix/build/cargo-build-system.scm +++ b/guix/build/cargo-build-system.scm @@ -123,6 +123,13 @@ directory = '" port) (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) (setenv "LIBGIT2_SYS_USE_PKG_CONFIG" "1") (setenv "LIBSSH2_SYS_USE_PKG_CONFIG" "1") + (when (assoc-ref inputs "openssl") + (setenv "OPENSSL_DIR" (assoc-ref inputs "openssl"))) + (when (assoc-ref inputs "gettext") + (setenv "GETTEXT_SYSTEM" (assoc-ref inputs "gettext"))) + (when (assoc-ref inputs "clang") + (setenv "LIBCLANG_PATH" + (string-append (assoc-ref inputs "clang") "/lib"))) ;; We don't use the Cargo.lock file to determine the package versions we use ;; during building, and in any case if one is not present it is created diff --git a/guix/cpio.scm b/guix/cpio.scm index e4692e2e9c..c9932f5bf9 100644 --- a/guix/cpio.scm +++ b/guix/cpio.scm @@ -27,6 +27,7 @@ make-cpio-header file->cpio-header file->cpio-header* + special-file->cpio-header* write-cpio-header read-cpio-header @@ -132,9 +133,10 @@ (%make-cpio-header MAGIC inode mode uid gid nlink mtime - (if (= C_ISDIR (logand mode C_FMT)) - 0 - size) + (if (or (= C_ISLNK (logand mode C_FMT)) + (= C_ISREG (logand mode C_FMT))) + size + 0) major minor rmajor rminor (+ name-size 1) ;include trailing zero 0))) ;checksum @@ -146,6 +148,8 @@ denotes, similar to 'stat:type'." (cond ((= C_ISREG fmt) 'regular) ((= C_ISDIR fmt) 'directory) ((= C_ISLNK fmt) 'symlink) + ((= C_ISBLK fmt) 'block-special) + ((= C_ISCHR fmt) 'char-special) (else (error "unsupported file type" mode))))) @@ -187,6 +191,25 @@ produced in a deterministic fashion." #:size (stat:size st) #:name-size (string-length file-name)))) +(define* (special-file->cpio-header* file + device-type + device-major + device-minor + permission-bits + #:optional (file-name file)) + "Create a character or block device header. + +DEVICE-TYPE is either 'char-special or 'block-special. + +The number of hard links is assumed to be 1." + (make-cpio-header #:mode (logior (match device-type + ('block-special C_ISBLK) + ('char-special C_ISCHR)) + permission-bits) + #:nlink 1 + #:rdev (device-number device-major device-minor) + #:name-size (string-length file-name))) + (define %trailer "TRAILER!!!") @@ -233,6 +256,10 @@ produces with the '-H newc' option." (put-string port target))) ((directory) #t) + ((block-special) + #t) + ((char-special) + #t) (else (error "file type not supported"))) diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index 35c67cad8d..6ca4f65cb0 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -40,7 +40,8 @@ #:use-module (guix upstream) #:use-module (guix packages) #:use-module ((guix utils) #:select (call-with-temporary-output-file)) - #:export (hackage->guix-package + #:export (%hackage-url + hackage->guix-package hackage-recursive-import %hackage-updater @@ -92,20 +93,23 @@ (define package-name-prefix "ghc-") +(define %hackage-url + (make-parameter "https://hackage.haskell.org")) + (define (hackage-source-url name version) "Given a Hackage package NAME and VERSION, return a url to the source tarball." - (string-append "https://hackage.haskell.org/package/" name - "/" name "-" version ".tar.gz")) + (string-append (%hackage-url) "/package/" + name "/" name "-" version ".tar.gz")) (define* (hackage-cabal-url name #:optional version) "Given a Hackage package NAME and VERSION, return a url to the corresponding .cabal file on Hackage. If VERSION is #f or missing, the url for the latest version is returned." (if version - (string-append "https://hackage.haskell.org/package/" + (string-append (%hackage-url) "/package/" name "-" version "/" name ".cabal") - (string-append "https://hackage.haskell.org/package/" + (string-append (%hackage-url) "/package/" name "/" name ".cabal"))) (define (hackage-name->package-name name) diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm index 93cf214127..77cc6350cb 100644 --- a/guix/import/stackage.scm +++ b/guix/import/stackage.scm @@ -30,7 +30,8 @@ #:use-module (guix memoization) #:use-module (guix packages) #:use-module (guix upstream) - #:export (stackage->guix-package + #:export (%stackage-url + stackage->guix-package stackage-recursive-import %stackage-updater)) @@ -39,7 +40,8 @@ ;;; Stackage info fetcher and access functions ;;; -(define %stackage-url "https://www.stackage.org") +(define %stackage-url + (make-parameter "https://www.stackage.org")) ;; Latest LTS version compatible with GHC 8.6.5. (define %default-lts-version "14.27") @@ -55,7 +57,7 @@ ;; "Retrieve the information about the LTS Stackage release VERSION." (memoize (lambda* (#:optional (version "")) - (let* ((url (string-append %stackage-url + (let* ((url (string-append (%stackage-url) "/lts-" (if (string-null? version) %default-lts-version version))) diff --git a/guix/lint.scm b/guix/lint.scm index 91dbc806dc..be6bb4eb01 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> +;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,8 @@ #:use-module (guix http-client) #:use-module (guix packages) #:use-module (guix i18n) + #:use-module ((guix gexp) + #:select (local-file? local-file-absolute-file-name)) #:use-module (guix licenses) #:use-module (guix records) #:use-module (guix grafts) @@ -50,6 +53,7 @@ #:use-module ((guix swh) #:hide (origin?)) #:autoload (guix git-download) (git-reference? git-reference-url git-reference-commit) + #:use-module (guix import stackage) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (ice-9 format) @@ -73,6 +77,7 @@ check-inputs-should-be-native check-inputs-should-not-be-an-input-at-all check-patch-file-names + check-patch-headers check-synopsis-style check-derivation check-home-page @@ -87,6 +92,7 @@ check-formatting check-archival check-profile-collisions + check-haskell-stackage lint-warning lint-warning? @@ -712,6 +718,54 @@ patch could not be found." (_ #f)) patches))))) +(define (check-patch-headers package) + "Check that PACKAGE's patches start with a comment. Return a list of +warnings." + (define (blank? str) + (string-every char-set:blank str)) + + (define (patch-header-warnings patch) + (call-with-input-file patch + (lambda (port) + ;; Read from PORT until a non-blank line is found or EOF is reached. + (let loop () + (let ((line (read-line port))) + (cond ((eof-object? line) + (list (make-warning package + (G_ "~a: empty patch") + (list (basename patch)) + #:field 'source))) + ((blank? line) + (loop)) + ((or (string-prefix? "--- " line) + (string-prefix? "+++ " line)) + (list (make-warning package + (G_ "~a: patch lacks comment and \ +upstream status") + (list (basename patch)) + #:field 'source))) + (else + '()))))))) + + (guard (c ((formatted-message? c) ;raised by 'search-patch' + (list (%make-warning package + (formatted-message-string c) + (formatted-message-arguments c) + #:field 'source)))) + (let ((patches (if (origin? (package-source package)) + (origin-patches (package-source package)) + '()))) + (append-map (lambda (patch) + ;; Dismiss PATCH if it's an origin or similar. + (cond ((string? patch) + (patch-header-warnings patch)) + ((local-file? patch) + (patch-header-warnings + (local-file-absolute-file-name patch))) + (else + '()))) + patches)))) + (define (escape-quotes str) "Replace any quote character in STR by an escaped quote character." (list->string @@ -1234,6 +1288,25 @@ Heritage") '() (apply throw key args)))))))) +(define (check-haskell-stackage package) + "Check whether PACKAGE is a Haskell package ahead of the current +Stackage LTS version." + (match (with-networking-fail-safe + (format #f (G_ "while retrieving upstream info for '~a'") + (package-name package)) + #f + (package-latest-release package (list %stackage-updater))) + ((? upstream-source? source) + (if (version>? (package-version package) + (upstream-source-version source)) + (list + (make-warning package + (G_ "ahead of Stackage LTS version ~a") + (list (upstream-source-version source)) + #:field 'version)) + '())) + (#f '()))) + ;;; ;;; Source code formatting. @@ -1418,6 +1491,10 @@ or a list thereof") (description "Validate file names and availability of patches") (check check-patch-file-names)) (lint-checker + (name 'patch-headers) + (description "Validate patch headers") + (check check-patch-headers)) + (lint-checker (name 'formatting) (description "Look for formatting issues in the source") (check check-formatting)))) @@ -1456,7 +1533,11 @@ or a list thereof") (lint-checker (name 'archival) (description "Ensure source code archival on Software Heritage") - (check check-archival)))) + (check check-archival)) + (lint-checker + (name 'haskell-stackage) + (description "Ensure Haskell packages use Stackage LTS versions") + (check check-haskell-stackage)))) (define %all-checkers (append %local-checkers diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index cc020632af..a959cb827d 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -182,8 +182,6 @@ options handled by 'set-build-options-from-command-line', and listed in (display (G_ " -M, --max-jobs=N allow at most N build jobs")) (display (G_ " - --help-transform list package transformation options not shown here")) - (display (G_ " --debug=LEVEL produce debugging output at LEVEL"))) (define (set-build-options-from-command-line store opts) @@ -319,14 +317,7 @@ use '--no-offload' instead~%"))) (if c (apply values (alist-cons 'max-jobs c result) rest) (leave (G_ "not a number: '~a' option argument: ~a~%") - name arg))))) - (option '("help-transform") #f #f - (lambda _ - (format #t - (G_ "Available package transformation options:~%")) - (show-transformation-options-help) - (newline) - (exit 0))))) + name arg))))))) ;;; @@ -383,6 +374,8 @@ Build the given PACKAGE-OR-DERIVATION and return their output paths.\n")) (newline) (show-build-options-help) (newline) + (show-transformation-options-help) + (newline) (display (G_ " -h, --help display this help and exit")) (display (G_ " diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 2328df98b8..e435bf0ce4 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -180,6 +180,8 @@ COMMAND or an interactive shell in that environment.\n")) (newline) (show-build-options-help) (newline) + (show-transformation-options-help) + (newline) (display (G_ " -h, --help display this help and exit")) (display (G_ " diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm index 6874904deb..ddfc6ba497 100644 --- a/guix/scripts/graph.scm +++ b/guix/scripts/graph.scm @@ -35,7 +35,8 @@ #:use-module ((guix diagnostics) #:select (location-file formatted-message)) #:use-module ((guix transformations) - #:select (options->transformation + #:select (show-transformation-options-help + options->transformation %transformation-options)) #:use-module ((guix scripts build) #:select (%standard-build-options)) @@ -546,6 +547,8 @@ Emit a representation of the dependency graph of PACKAGE...\n")) (display (G_ " -L, --load-path=DIR prepend DIR to the package module search path")) (newline) + (show-transformation-options-help) + (newline) (display (G_ " -h, --help display this help and exit")) (display (G_ " diff --git a/guix/scripts/install.scm b/guix/scripts/install.scm index 82f5875dd1..63e625f266 100644 --- a/guix/scripts/install.scm +++ b/guix/scripts/install.scm @@ -39,6 +39,8 @@ This is an alias for 'guix package -i'.\n")) (newline) (show-build-options-help) (newline) + (show-transformation-options-help) + (newline) (display (G_ " -h, --help display this help and exit")) (display (G_ " diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 18cd167537..c72dc3caad 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2019, 2020 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,11 +48,15 @@ ;; provided MESSAGE. (for-each (lambda (lint-warning) - (let ((package (lint-warning-package lint-warning)) - (loc (lint-warning-location lint-warning))) - (info loc (G_ "~a@~a: ~a~%") - (package-name package) (package-version package) - (lint-warning-message lint-warning)))) + (let* ((package (lint-warning-package lint-warning)) + (name (package-name package)) + (version (package-version package)) + (loc (lint-warning-location lint-warning)) + (message (lint-warning-message lint-warning))) + (parameterize + ((guix-warning-port (current-output-port))) + (info loc (G_ "~a@~a: ~a~%") + name version message)))) warnings)) (define* (run-checkers package checkers #:key store) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 0b29997200..ba9a6dc1b2 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -1067,6 +1067,8 @@ last resort for relocation." Create a bundle of PACKAGE.\n")) (show-build-options-help) (newline) + (show-transformation-options-help) + (newline) (display (G_ " -f, --format=FORMAT build a pack in the given FORMAT")) (display (G_ " diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index eb2e67a0de..6faf2adb7a 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -398,6 +398,8 @@ Install, remove, or upgrade packages in a single transaction.\n")) (newline) (show-build-options-help) (newline) + (show-transformation-options-help) + (newline) (display (G_ " -h, --help display this help and exit")) (display (G_ " diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index f1a9970a7f..2a2185e2b9 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -63,10 +63,14 @@ #:use-module ((guix build utils) #:select (dump-port mkdir-p find-files)) #:use-module ((guix build syscalls) #:select (set-thread-name)) - #:export (%public-key + #:export (%default-gzip-compression + + %public-key %private-key signed-string + open-server-socket + run-publish-server guix-publish)) (define (show-help) diff --git a/guix/scripts/upgrade.scm b/guix/scripts/upgrade.scm index 1ee8937acf..dcbcb2ab09 100644 --- a/guix/scripts/upgrade.scm +++ b/guix/scripts/upgrade.scm @@ -42,6 +42,8 @@ This is an alias for 'guix package -u'.\n")) (newline) (show-build-options-help) (newline) + (show-transformation-options-help) + (newline) (display (G_ " -h, --help display this help and exit")) (display (G_ " diff --git a/guix/store.scm b/guix/store.scm index d859ea33ed..11e2dae579 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -113,6 +113,7 @@ build query-failed-paths clear-failed-paths + ensure-path add-temp-root add-indirect-root add-permanent-root @@ -1397,6 +1398,11 @@ When a handler is installed with 'with-build-handler', it is called any time (message "unsupported build mode") (status 1)))))))))))) +(define-operation (ensure-path (store-path path)) + "Make PATH a temporary root for the duration of the current session. +Return #t." + boolean) + (define-operation (add-temp-root (store-path path)) "Make PATH a temporary root for the duration of the current session. Return #t." diff --git a/guix/transformations.scm b/guix/transformations.scm index 30142dd059..d49041cf59 100644 --- a/guix/transformations.scm +++ b/guix/transformations.scm @@ -508,9 +508,17 @@ to the same package but with #:strip-binaries? #f in its 'arguments' field." (option '("with-debug-info") #t #f (parser 'with-debug-info)) (option '("without-tests") #t #f - (parser 'without-tests))))) + (parser 'without-tests)) -(define (show-transformation-options-help) + (option '("help-transform") #f #f + (lambda _ + (format #t + (G_ "Available package transformation options:~%")) + (show-transformation-options-help/detailed) + (newline) + (exit 0)))))) + +(define (show-transformation-options-help/detailed) (display (G_ " --with-source=[PACKAGE=]SOURCE use SOURCE when building the corresponding package")) @@ -539,6 +547,10 @@ to the same package but with #:strip-binaries? #f in its 'arguments' field." --without-tests=PACKAGE build PACKAGE without running its tests"))) +(define (show-transformation-options-help) + "Show basic help for package transformation options." + (display (G_ " + --help-transform list package transformation options not shown here"))) (define (options->transformation opts) "Return a procedure that, when passed an object to build (package, diff --git a/po/doc/guix-manual.fr.po b/po/doc/guix-manual.fr.po index f727b6b5b3..025f8084ff 100644 --- a/po/doc/guix-manual.fr.po +++ b/po/doc/guix-manual.fr.po @@ -41,7 +41,7 @@ msgstr "" "Project-Id-Version: guix-manual 1.2.0-pre3\n" "Report-Msgid-Bugs-To: bug-guix@gnu.org\n" "POT-Creation-Date: 2020-11-05 17:27+0100\n" -"PO-Revision-Date: 2020-11-09 00:09+0100\n" +"PO-Revision-Date: 2020-11-20 14:37+0100\n" "Last-Translator: Julien Lepiller <julien@lepiller.eu>\n" "Language-Team: French <traduc@traduc.org>\n" "Language: fr\n" @@ -658,7 +658,7 @@ msgstr "La distribution GNU est jeune et vos paquets préférés peuvent manquer #. type: Plain text #: doc/contributing.texi:339 msgid "Free software packages are usually distributed in the form of @dfn{source code tarballs}---typically @file{tar.gz} files that contain all the source files. Adding a package to the distribution means essentially two things: adding a @dfn{recipe} that describes how to build the package, including a list of other packages required to build it, and adding @dfn{package metadata} along with that recipe, such as a description and licensing information." -msgstr "Les paquets de logiciels libres sont habituellement distribués sous forme @dfn{d'archives de sources} — typiquement des fichiers @file{.tar.gz} contenant tous les fichiers sources. Ajouter un paquet à la distribution signifie essentiellement deux choses : ajouter une @dfn{recette} qui décrit comment construire le paquet, avec une liste d'autres paquets requis pour le construire, et ajouter des @dfn{métadonnées de paquet} avec la recette, comme une description et une licence." +msgstr "Les paquets de logiciels libres sont habituellement distribués sous forme @dfn{d'archives de sources} — typiquement des fichiers @file{.tar.gz} contenant tous les fichiers sources. Ajouter un paquet à la distribution signifie en substance deux choses : ajouter une @dfn{recette} qui décrit comment construire le paquet, avec une liste d'autres paquets requis pour le construire, et ajouter des @dfn{métadonnées de paquet} avec la recette, comme une description et une licence." #. type: Plain text #: doc/contributing.texi:348 @@ -10698,7 +10698,7 @@ msgstr "Le format nar est comparable dans l'esprit au format \"tar\", mais avec #. type: Plain text #: doc/guix.texi:4747 msgid "That nar bundle format is essentially the concatenation of zero or more nars along with metadata for each store item it contains: its file name, references, corresponding derivation, and a digital signature." -msgstr "Ce format nar bundle est essentiellement la concaténation de zéro ou plus de nar avec des métadonnées pour chaque élément du dépôt qu'il contient : son nom de fichier, ses références, la dérivation correspondante et une signature numérique." +msgstr "Ce format de lot nar est surtout la concaténation de zéro, un ou plusieurs nar avec des métadonnées pour chaque élément du dépôt qu'il contient : son nom de fichier, ses références, la dérivation correspondante et une signature numérique." #. type: Plain text #: doc/guix.texi:4753 @@ -11226,12 +11226,9 @@ msgstr "" " (version 0)\n" " (dependencies\n" " (channel\n" -" (name une-collection)\n" -" (url \"https://exemple.org/premiere-collection.git\"))\n" -" (channel\n" -" (name une-autre-collection)\n" -" (url \"https://exemple.org/deuxieme-collection.git\")\n" -" (branch \"testing\"))))\n" +" (name 'some-collection)\n" +" (url \"https://example.org/first-collection.git\")\n" +"\n" #. type: lisp #: doc/guix.texi:5151 @@ -11249,7 +11246,7 @@ msgid "" " (url \"https://example.org/second-collection.git\")\n" " (branch \"testing\"))))\n" msgstr "" -" ;; La partie \"introduction\" ci-dessous est facultative : vous la\n" +" ;; La partie « introduction » ci-dessous est facultative : vous la\n" " ;; fournissez pour les dépendances qui peuvent être authentifiées.\n" " (introduction\n" " (channel-introduction\n" @@ -12361,7 +12358,7 @@ msgstr "Produire des @dfn{binaires repositionnables} — c.-à-d.@: des binaires #. type: table #: doc/guix.texi:5890 msgid "When this option is passed once, the resulting binaries require support for @dfn{user namespaces} in the kernel Linux; when passed @emph{twice}@footnote{Here's a trick to memorize it: @code{-RR}, which adds PRoot support, can be thought of as the abbreviation of ``Really Relocatable''. Neat, isn't it?}, relocatable binaries fall to back to other techniques if user namespaces are unavailable, and essentially work anywhere---see below for the implications." -msgstr "Lorsque vous passez cette option une fois, les binaires qui en résultent demandent le support des @dfn{espaces de nom utilisateurs} dans le noyau Linux ; lorsque vous la passez @emph{deux fois}@footnote{Il y a une astuce pour s'en souvenir : on peut envisager @code{-RR}, qui ajoute le support PRoot, comme étant l'abréviation de « Réellement Repositionnable ». Pas mal, hein ?}, les binaires repositionnables utilisent PRoot si les espaces de noms ne sont pas utilisables, et ça fonctionne partout — voir plus bas pour comprendre les implications." +msgstr "Lorsque vous passez cette option une fois, les binaires qui en résultent demandent le support des @dfn{espaces de nom utilisateurs} dans le noyau Linux ; lorsque vous la passez @emph{deux fois}@footnote{Il y a une astuce pour s'en souvenir : on peut envisager @code{-RR}, qui ajoute le support PRoot, comme étant l'abréviation de « Réellement Repositionnable ». Pas mal, hein ?}, les binaires repositionnables utilisent PRoot si les espaces de noms ne sont pas utilisables, et ça fonctionne à peu près partout — voir plus bas pour comprendre les implications." #. type: table #: doc/guix.texi:5892 @@ -12875,7 +12872,7 @@ msgstr "En ajoutant le répertoire contenant vos modules de paquets au chemin de #. type: enumerate #: doc/guix.texi:6264 msgid "By defining a @dfn{channel} and configuring @command{guix pull} so that it pulls from it. A channel is essentially a Git repository containing package modules. @xref{Channels}, for more information on how to define and use channels." -msgstr "En définissant un @dfn{canal} et en configurant @command{guix pull} pour qu'il l'utilise. Un canal est essentiellement un dépôt Git contenant des modules de paquets. @xref{Channels}, pour plus d'informations sur comment définir et utiliser des canaux." +msgstr "En définissant un @dfn{canal} et en configurant @command{guix pull} pour qu'il l'utilise. Un canal est en substance un dépôt Git contenant des modules de paquets. @xref{Channels}, pour plus d'informations sur comment définir et utiliser des canaux." #. type: Plain text #: doc/guix.texi:6267 @@ -12968,7 +12965,7 @@ msgstr "" #. type: Plain text #: doc/guix.texi:6325 msgid "Without being a Scheme expert, the reader may have guessed the meaning of the various fields here. This expression binds the variable @code{hello} to a @code{<package>} object, which is essentially a record (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}). This package object can be inspected using procedures found in the @code{(guix packages)} module; for instance, @code{(package-name hello)} returns---surprise!---@code{\"hello\"}." -msgstr "Sans être un expert Scheme, le lecteur peut comprendre la signification des différents champs présents. Cette expression lie la variable @code{hello} à un objet @code{<package>}, qui est essentiellement un enregistrement (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}). On peut inspecter cet objet de paquet avec les procédures qui se trouvent dans le module @code{(guix packages)} ; par exemple, @code{(package-name hello)} renvoie — oh surprise ! — @code{\"hello\"}." +msgstr "Sans être un expert Scheme, le lecteur peut comprendre la signification des différents champs présents. Cette expression lie la variable @code{hello} à un objet @code{<package>}, qui est en substance un enregistrement (@pxref{SRFI-9, Scheme records,, guile, GNU Guile Reference Manual}). On peut inspecter cet objet de paquet avec les procédures qui se trouvent dans le module @code{(guix packages)} ; par exemple, @code{(package-name hello)} renvoie — oh surprise ! — @code{\"hello\"}." #. type: Plain text #: doc/guix.texi:6329 @@ -13959,7 +13956,7 @@ msgstr "" #. type: Plain text #: doc/guix.texi:6888 msgid "The example above corresponds to what the @option{--with-source} package transformation option does. Essentially @code{hello-2.2} preserves all the fields of @code{hello}, except @code{version} and @code{source}, which it overrides. Note that the original @code{hello} variable is still there, in the @code{(gnu packages base)} module, unchanged. When you define a custom package like this, you are really @emph{adding} a new package definition; the original one remains available." -msgstr "L'exemple ci-dessus correspond à ce que l'option de transformation des paquets @option{--with-source} fait. Essentiellement, @code{hello-2.2} préserve tous les champs de @code{hello}, sauf @code{version} et @code{source}, qu'il remplace. Remarquez que la variable @code{hello} originale est toujours là, dans le module @code{(gnu packages base)}, et n'est pas modifiée. Lorsque vous définissez un paquet personnalisé comme ceci, vous @emph{ajoutez} en fait une nouvelle définition de paquet ; la version originale est toujours disponible." +msgstr "L'exemple ci-dessus correspond à ce que l'option de transformation des paquets @option{--with-source} fait. En substance, @code{hello-2.2} préserve tous les champs de @code{hello}, sauf @code{version} et @code{source}, qu'il remplace. Remarquez que la variable @code{hello} originale est toujours là, dans le module @code{(gnu packages base)}, et n'est pas modifiée. Lorsque vous définissez un paquet personnalisé comme ceci, vous @emph{ajoutez} en fait une nouvelle définition de paquet ; la version originale est toujours disponible." #. type: Plain text #: doc/guix.texi:6894 @@ -14997,7 +14994,7 @@ msgstr "{Variable Scheme} julia-build-system" #. type: defvr #: doc/guix.texi:7550 msgid "This variable is exported by @code{(guix build-system julia)}. It implements the build procedure used by @uref{https://julialang.org/, julia} packages, which essentially is similar to running @samp{julia -e 'using Pkg; Pkg.add(package)'} in an environment where @env{JULIA_LOAD_PATH} contains the paths to all Julia package inputs. Tests are run with @code{Pkg.test}." -msgstr "Cette variable est exportée par @code{(guix build-system julia)}. Elle implémente la procédure de compilation utilisée par les paquets @uref{https://julialang.org/, julia}, qui est essentiellement similaire à l'exécution de @samp{julia -e 'using Pkg ; Pkg.add(package)'} dans un environnement où @env{JULIA_LOAD_PATH} contient les chemins de toutes les entrées des paquets Julia. Les tests sont effectués avec @code{Pkg.test}." +msgstr "Cette variable est exportée par @code{(guix build-system julia)}. Elle implémente la procédure de compilation utilisée par les paquets @uref{https://julialang.org/, julia}, qui est globalement similaire à l'exécution de @samp{julia -e 'using Pkg ; Pkg.add(package)'} dans un environnement où @env{JULIA_LOAD_PATH} contient les chemins de toutes les entrées des paquets Julia. Les tests sont effectués avec @code{Pkg.test}." #. type: defvr #: doc/guix.texi:7553 @@ -15221,7 +15218,7 @@ msgstr "{Variable Scheme} r-build-system" #. type: defvr #: doc/guix.texi:7753 msgid "This variable is exported by @code{(guix build-system r)}. It implements the build procedure used by @uref{https://r-project.org, R} packages, which essentially is little more than running @samp{R CMD INSTALL --library=/gnu/store/@dots{}} in an environment where @env{R_LIBS_SITE} contains the paths to all R package inputs. Tests are run after installation using the R function @code{tools::testInstalledPackage}." -msgstr "Cette variable est exportée par @code{(guix build-system r)}. Elle implémente la procédure de compilation utilisée par les paquets @uref{https://r-project.org, R}, qui consiste essentiellement à exécuter @samp{R CMD INSTALL --library=/gnu/store/@dots{}} dans un environnement où @env{R_LIBS_SITE} contient les chemins de toutes les entrées des paquets R. Les tests sont exécutés après l'installation en utilisant la fonction R @code{tools::testInstalledPackage}." +msgstr "Cette variable est exportée par @code{(guix build-system r)}. Elle implémente la procédure de compilation utilisée par les paquets @uref{https://r-project.org, R}, qui consiste en substance à exécuter @samp{R CMD INSTALL --library=/gnu/store/@dots{}} dans un environnement où @env{R_LIBS_SITE} contient les chemins de toutes les entrées des paquets R. Les tests sont exécutés après l'installation en utilisant la fonction R @code{tools::testInstalledPackage}." #. type: defvr #: doc/guix.texi:7755 @@ -18835,7 +18832,7 @@ msgstr "Produire une sortie de débogage qui provient du démon de construction. #. type: Plain text #: doc/guix.texi:10046 msgid "Behind the scenes, @command{guix build} is essentially an interface to the @code{package-derivation} procedure of the @code{(guix packages)} module, and to the @code{build-derivations} procedure of the @code{(guix derivations)} module." -msgstr "Sous le capot, @command{guix build} est surtout un interface à la procédure @code{package-derivation} du module @code{(guix packages)}, et à la procédure @code{build-derivations} du module @code{(guix derivations)}." +msgstr "Sous le capot, @command{guix build} est surtout une interface à la procédure @code{package-derivation} du module @code{(guix packages)}, et à la procédure @code{build-derivations} du module @code{(guix derivations)}." #. type: Plain text #: doc/guix.texi:10050 @@ -20766,7 +20763,7 @@ msgstr "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n" #. type: table #: doc/guix.texi:11317 msgid "This command lists the dependents of the ``final'' libc (essentially all the packages)." -msgstr "Cette commande liste les dépendances de la libc « finale » (essentiellement tous les paquets)." +msgstr "Cette commande liste les dépendances de la libc « finale » (presque tous les paquets)." #. type: item #: doc/guix.texi:11318 @@ -23567,17 +23564,19 @@ msgid "" "\n" msgstr "" "(define %my-services\n" -" ;; Ma propre liste de services.\n" +" ;; ma propre liste de services.\n" " (modify-services %base-services\n" " (guix-service-type config =>\n" " (guix-configuration\n" " (inherit config)\n" -" (use-substitutes? #f)\n" -" (extra-options '(\"--gc-keep-derivations\"))))\n" +" ;; Récupérer les substituts depuis example.org.\n" +" (substitute-urls\n" +" (list \"https://example.org/guix\"\n" +" \"https://ci.guix.gnu.org\"))))\n" " (mingetty-service-type config =>\n" " (mingetty-configuration\n" -" (inherit config)))))\n" -" ;; Automatially log in as \"guest\".\n" +" (inherit config)\n" +" ;; Connexion automatique en tant que « guest ».\n" " (auto-login \"guest\")))))\n" "\n" @@ -25029,7 +25028,7 @@ msgstr "" " \"audio\" ;carte son\n" " \"video\" ;périphériques réseaux comme les webcams\n" " \"cdrom\")) ;le bon vieux CD-ROM\n" -" (comment \"Bob's sister\")\n" +" (comment \"Bob's sister\"))\n" #. type: Plain text #: doc/guix.texi:13865 diff --git a/tests/lint.scm b/tests/lint.scm index 95abd71378..9b230814a5 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017 Alex Kost <alezost@gmail.com> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,6 +37,10 @@ #:use-module (guix lint) #:use-module (guix ui) #:use-module (guix swh) + #:use-module ((guix gexp) #:select (local-file)) + #:use-module ((guix utils) #:select (call-with-temporary-directory)) + #:use-module ((guix import hackage) #:select (%hackage-url)) + #:use-module ((guix import stackage) #:select (%stackage-url)) #:use-module (gnu packages) #:use-module (gnu packages glib) #:use-module (gnu packages pkg-config) @@ -344,6 +349,60 @@ (list (search-patch "this-patch-does-not-exist!")))))))) (check-patch-file-names pkg)))) +(test-assert "patch headers: no warnings" + (call-with-temporary-directory + (lambda (directory) + (call-with-output-file (string-append directory "/t.patch") + (lambda (port) + (display "This is a patch.\n\n--- a\n+++ b\n" + port))) + + (parameterize ((%patch-path (list directory))) + (let ((pkg (dummy-package "x" + (source (dummy-origin + (patches (search-patches "t.patch"))))))) + (null? (check-patch-headers pkg))))))) + +(test-equal "patch headers: missing comment" + "t.patch: patch lacks comment and upstream status" + (call-with-temporary-directory + (lambda (directory) + (call-with-output-file (string-append directory "/t.patch") + (lambda (port) + (display "\n--- a\n+++ b\n" + port))) + + (parameterize ((%patch-path (list directory))) + (let ((pkg (dummy-package "x" + (source (dummy-origin + (patches (search-patches "t.patch"))))))) + (single-lint-warning-message (check-patch-headers pkg))))))) + +(test-equal "patch headers: empty" + "t.patch: empty patch" + (call-with-temporary-directory + (lambda (directory) + (call-with-output-file (string-append directory "/t.patch") + (const #t)) + + (parameterize ((%patch-path '())) + (let ((pkg (dummy-package "x" + (source (dummy-origin + (patches + (list (local-file + (string-append directory + "/t.patch"))))))))) + (single-lint-warning-message (check-patch-headers pkg))))))) + +(test-equal "patch headers: patch not found" + "does-not-exist.patch: patch not found\n" + (parameterize ((%patch-path '())) + (let ((pkg (dummy-package "x" + (source (dummy-origin + (patches + (search-patches "does-not-exist.patch"))))))) + (single-lint-warning-message (check-patch-headers pkg))))) + (test-equal "derivation: invalid arguments" "failed to create x86_64-linux derivation: (wrong-type-arg \"map\" \"Wrong type argument: ~S\" (invalid-module) ())" (match (let ((pkg (dummy-package "x" @@ -1001,6 +1060,35 @@ (string-contains (single-lint-warning-message warnings) "rate limit reached"))) +(test-skip (if (http-server-can-listen?) 0 1)) +(test-assert "haskell-stackage" + (let* ((stackage (string-append "{ \"packages\": [{" + " \"name\":\"x\"," + " \"version\":\"1.0\" }]}")) + (packages (map (lambda (version) + (dummy-package + (string-append "ghc-x") + (version version) + (source + (dummy-origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/" + "x-" version "/x-" version ".tar.gz")))))) + '("0.9" "1.0" "2.0"))) + (warnings (pk (with-http-server `((200 ,stackage) ; memoized + (200 "name: x\nversion: 1.0\n") + (200 "name: x\nversion: 1.0\n") + (200 "name: x\nversion: 1.0\n")) + (parameterize ((%hackage-url (%local-url)) + (%stackage-url (%local-url))) + (append-map check-haskell-stackage packages)))))) + (match warnings + (((? lint-warning? warning)) + (and (string=? (package-version (lint-warning-package warning)) "2.0") + (string-contains (lint-warning-message warning) + "ahead of Stackage LTS version")))))) + (test-end "lint") ;; Local Variables: diff --git a/tests/store-database.scm b/tests/store-database.scm index 4d91884250..3b4ef43f6d 100644 --- a/tests/store-database.scm +++ b/tests/store-database.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +21,8 @@ #:use-module (guix store) #:use-module (guix store database) #:use-module ((guix utils) #:select (call-with-temporary-output-file)) + #:use-module ((guix build utils) + #:select (mkdir-p delete-file-recursively)) #:use-module (srfi srfi-26) #:use-module (srfi srfi-64)) @@ -55,6 +57,28 @@ (list (stat:mtime (lstat file)) (stat:mtime (lstat ref))))))) +(test-equal "register-path, directory" + '(1 1 1) + (let ((file (string-append (%store-prefix) "/" (make-string 32 #\f) + "-fake-directory"))) + (when (valid-path? %store file) + (delete-paths %store (list file))) + (false-if-exception (delete-file-recursively file)) + + (let ((drv (string-append file ".drv"))) + (mkdir-p (string-append file "/a")) + (call-with-output-file (string-append file "/a/b") + (const #t)) + (register-path file #:deriver drv) + + (and (valid-path? %store file) + (null? (references %store file)) + (null? (valid-derivers %store file)) + (null? (referrers %store file)) + (list (stat:mtime (lstat file)) + (stat:mtime (lstat (string-append file "/a"))) + (stat:mtime (lstat (string-append file "/a/b")))))))) + (test-equal "new database" (list 1 2) (call-with-temporary-output-file |