diff options
Diffstat (limited to 'gnu')
92 files changed, 3801 insertions, 1570 deletions
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index 65d7171432..4f18c9b518 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Stefan <stefan-guix@vodafonemail.de> ;;; Copyright © 2022 Karl Hallsby <karl@hallsby.com> +;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,6 +58,7 @@ grub-bootloader grub-efi-bootloader grub-efi-removable-bootloader + grub-efi32-bootloader grub-efi-netboot-bootloader grub-mkrescue-bootloader grub-minimal-bootloader @@ -636,6 +638,29 @@ fi~%")))) "--bootloader-id=Guix" "--efi-directory" target-esp))))) +(define install-grub-efi32 + #~(lambda (bootloader efi-dir mount-point) + ;; There is nothing useful to do when called in the context of a disk + ;; image generation. + (when efi-dir + ;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the + ;; system whose root is mounted at MOUNT-POINT. + (let ((grub-install (string-append bootloader "/sbin/grub-install")) + (install-dir (string-append mount-point "/boot")) + ;; When installing Guix, it's common to mount EFI-DIR below + ;; MOUNT-POINT rather than /boot/efi on the live image. + (target-esp (if (file-exists? (string-append mount-point efi-dir)) + (string-append mount-point efi-dir) + efi-dir))) + ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or + ;; root partition. + (setenv "GRUB_ENABLE_CRYPTODISK" "y") + (invoke/quiet grub-install "--boot-directory" install-dir + "--bootloader-id=Guix" + (cond ((target-x86?) "--target=i386-efi") + ((target-arm?) "--target=arm-efi")) + "--efi-directory" target-esp))))) + (define (install-grub-efi-netboot subdir) "Define a grub-efi-netboot bootloader installer for installation in SUBDIR, which is usually efi/Guix or efi/boot." @@ -768,6 +793,13 @@ considered for security aspects." (name 'grub-efi-removable-bootloader) (installer install-grub-efi-removable))) +(define grub-efi32-bootloader + (bootloader + (inherit grub-efi-bootloader) + (installer install-grub-efi32) + (name 'grub-efi32) + (package grub-efi32))) + (define grub-efi-netboot-bootloader (bootloader (inherit grub-efi-bootloader) diff --git a/gnu/build/bootloader.scm b/gnu/build/bootloader.scm index 9a89fe55cb..af6063a884 100644 --- a/gnu/build/bootloader.scm +++ b/gnu/build/bootloader.scm @@ -1,6 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +;;; Copyright © 2022 Timothy Sample <samplet@ngyro.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -54,8 +56,12 @@ ;;; EFI bootloader. ;;; -(define (install-efi grub grub-config esp) - "Write a self-contained GRUB EFI loader to the mounted ESP using GRUB-CONFIG." +(define* (install-efi grub grub-config esp #:key targets) + "Write a self-contained GRUB EFI loader to the mounted ESP using +GRUB-CONFIG. + +If TARGETS is set, use its car as the GRUB image format and its cdr as +the output filename. Otherwise, use defaults for the host platform." (let* ((system %host-type) ;; Hard code the output location to a well-known path recognized by ;; compliant firmware. See "3.5.1.1 Removable Media Boot Behaviour": @@ -63,14 +69,15 @@ (grub-mkstandalone (string-append grub "/bin/grub-mkstandalone")) (efi-directory (string-append esp "/EFI/BOOT")) ;; Map grub target names to boot file names. - (efi-targets (cond ((string-prefix? "x86_64" system) - '("x86_64-efi" . "BOOTX64.EFI")) - ((string-prefix? "i686" system) - '("i386-efi" . "BOOTIA32.EFI")) - ((string-prefix? "armhf" system) - '("arm-efi" . "BOOTARM.EFI")) - ((string-prefix? "aarch64" system) - '("arm64-efi" . "BOOTAA64.EFI"))))) + (efi-targets (or targets + (cond ((string-prefix? "x86_64" system) + '("x86_64-efi" . "BOOTX64.EFI")) + ((string-prefix? "i686" system) + '("i386-efi" . "BOOTIA32.EFI")) + ((string-prefix? "armhf" system) + '("arm-efi" . "BOOTARM.EFI")) + ((string-prefix? "aarch64" system) + '("arm64-efi" . "BOOTAA64.EFI")))))) ;; grub-mkstandalone requires a TMPDIR to prepare the firmware image. (setenv "TMPDIR" esp) @@ -81,9 +88,12 @@ ;; Graft the configuration file onto the image. (string-append "boot/grub/grub.cfg=" grub-config)))) -(define (install-efi-loader grub-efi esp) +(define* (install-efi-loader grub-efi esp #:key targets) "Install in ESP directory the given GRUB-EFI bootloader. Configure it to -load the Grub bootloader located in the 'Guix_image' root partition." +load the Grub bootloader located in the 'Guix_image' root partition. + +If TARGETS is set, use its car as the GRUB image format and its cdr as +the output filename. Otherwise, use defaults for the host platform." (let ((grub-config "grub.cfg")) (call-with-output-file grub-config (lambda (port) @@ -97,5 +107,6 @@ load the Grub bootloader located in the 'Guix_image' root partition." insmod part_gpt~@ search --set=root --label Guix_image~@ configfile /boot/grub/grub.cfg~%"))) - (install-efi grub-efi grub-config esp) + (install-efi grub-efi grub-config esp #:targets targets) (delete-file grub-config))) + diff --git a/gnu/build/image.scm b/gnu/build/image.scm index ddfd34c111..321be8e4b1 100644 --- a/gnu/build/image.scm +++ b/gnu/build/image.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org> +;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ #:use-module (guix build syscalls) #:use-module (guix build utils) #:use-module (guix store database) + #:use-module (guix utils) #:use-module (gnu build bootloader) #:use-module (gnu build install) #:use-module (gnu build linux-boot) @@ -41,6 +43,7 @@ convert-disk-image genimage initialize-efi-partition + initialize-efi32-partition initialize-root-partition make-iso9660-image)) @@ -169,6 +172,17 @@ produced by #:references-graphs. Pass WAL-MODE? to call-with-database." "Install in ROOT directory, an EFI loader using GRUB-EFI." (install-efi-loader grub-efi root)) +(define* (initialize-efi32-partition root + #:key + grub-efi32 + #:allow-other-keys) + "Install in ROOT directory, an EFI 32bit loader using GRUB-EFI32." + (install-efi-loader grub-efi32 root + #:targets (cond ((target-x86?) + '("i386-efi" . "BOOTIA32.EFI")) + ((target-arm?) + '("arm-efi" . "BOOTARM.EFI"))))) + (define* (initialize-root-partition root #:key bootcfg diff --git a/gnu/local.mk b/gnu/local.mk index e557e5be08..d2617f771f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -960,6 +960,7 @@ dist_patch_DATA = \ %D%/packages/patches/cling-use-shared-library.patch \ %D%/packages/patches/clucene-pkgconfig.patch \ %D%/packages/patches/cmake-curl-certificates.patch \ + %D%/packages/patches/cmh-support-fplll.patch \ %D%/packages/patches/coda-use-system-libs.patch \ %D%/packages/patches/collectd-5.11.0-noinstallvar.patch \ %D%/packages/patches/combinatorial-blas-awpm.patch \ @@ -1000,7 +1001,6 @@ dist_patch_DATA = \ %D%/packages/patches/docbook-xsl-support-old-url.patch \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ - %D%/packages/patches/docker-fix-tests.patch \ %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ @@ -1611,6 +1611,7 @@ dist_patch_DATA = \ %D%/packages/patches/perl-reproducible-build-date.patch \ %D%/packages/patches/perl-www-curl-fix-struct-void.patch \ %D%/packages/patches/perl-www-curl-remove-symbol.patch \ + %D%/packages/patches/phoronix-test-suite-fsdg.patch \ %D%/packages/patches/php-bug-74093-test.patch \ %D%/packages/patches/php-openssl_x509_checkpurpose_basic.patch \ %D%/packages/patches/picard-fix-id3-rename-test.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 2a3e962858..49c3256651 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1156,8 +1156,7 @@ IPv6, proxies, and Unix sockets.") (lambda _ ;; These #defines aren't well-documented and, e.g., POWER was ;; not actually tested on every possible TARGET-POWERPC?. - (let* ((system #$(cond ((target-x86-32?) "X86") - ((target-x86-64?) "X86") + (let* ((system #$(cond ((target-x86?) "X86") ((target-arm?) "ARM") ((target-powerpc?) "POWER") (else "CROSS_FINGERS")))) @@ -1845,7 +1844,7 @@ system administrator.") (define-public sudo (package (name "sudo") - (version "1.9.11p2") + (version "1.9.11p3") (source (origin (method url-fetch) (uri @@ -1855,7 +1854,7 @@ system administrator.") version ".tar.gz"))) (sha256 (base32 - "1lli4z10b5j238cn7471jb8vcjlj5px68x48ysa3f1n0kzmih6d2")) + "0w0z9w4vnhjsc4jjghi6wlyv4v055hsy38ncb67p08b7yp9fg1s6")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 3dd476ace9..6823531cc0 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -302,7 +302,8 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") version ".tar.gz")) (sha256 (base32 - "1ws2yhzxmm2l5xqqqcjcimmg40f9qq5l9i6d4i5434an9v9s8531")))) + "1ws2yhzxmm2l5xqqqcjcimmg40f9qq5l9i6d4i5434an9v9s8531")) + (patches (search-patches "cmh-support-fplll.patch")))) (build-system gnu-build-system) (inputs (list gmp diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 93c45d5780..82a67ce5ef 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -26,18 +26,15 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages astronomy) - #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module (guix utils) - #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) + #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages curl) + #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) @@ -49,16 +46,20 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages lua) #:use-module (gnu packages maths) + #:use-module (gnu packages ncurses) #:use-module (gnu packages netpbm) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pretty-print) + #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) + #:use-module (gnu packages readline) #:use-module (gnu packages time) #:use-module (gnu packages version-control) #:use-module (gnu packages video) @@ -66,9 +67,15 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) + #:use-module (gnu packages) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system python) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) @@ -107,6 +114,93 @@ moment, supported SPICE files are: @end itemize\n") (license license:cecill))) +(define-public casacore + (package + (name "casacore") + (version "3.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/casacore/casacore") + (commit (string-append "v" version)))) + (sha256 + (base32 + "05ar5gykgh4dm826xplj5ri5rw7znhxrvin2l67a3mjwfys7r2a0")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + (list + ;; Note: There are multiple failures in + ;; tests which require additional measures data. They are + ;; distributed via FTP without any license: + ;; ftp://ftp.astron.nl/outgoing/Measures/ + ;; TODO: Check how to fix tests. + #:tests? #f + #:parallel-build? #t + #:configure-flags + #~(list "-DBUILD_PYTHON3=ON" + "-DBUILD_PYTHON=OFF" + "-DBUILD_TESTING=TRUE" + "-DUSE_HDF5=ON" + "-DUSE_OPENMP=OFF" + "-DUSE_THREADS=ON" + (string-append "-DDATA_DIR=" #$output "/data") + (string-append "-DPYTHON3_EXECUTABLE=" + #$(this-package-input "python") "/bin") + (string-append "-DPYTHON3_INCLUDE_DIR=" + #$(this-package-input "python") "/include") + (string-append "-DPYTHON3_LIBRARY=" + #$(this-package-input "python") "/lib")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-env + (lambda _ + (setenv "HOME" "/tmp"))) + (add-after 'unpack 'use-absolute-rm + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "casa/OS/test/tFile.run" + (("/bin/rm") + (search-input-file inputs "/bin/rm"))))) + (add-after 'unpack 'use-absolute-python3 + (lambda _ + (substitute* "build-tools/casacore_floatcheck" + (("#!/usr/bin/env python") + (string-append "#!" (which "python3")))))) + ;; NOTE: (Sharlatan-20220611T200837+0100): Workaround for casacore + ;; tests stuck with missing "qsub" issue. + ;; https://github.com/casacore/casacore/issues/1122 + (add-after 'unpack 'patch-pre-test-checks + (lambda _ + (substitute* "build-tools/casacore_assay" + (("QSUBP=.*$") "QSUBP=\n") + (("YODP=.*$") "YODP=\n"))))))) + (native-inputs + (list bison + boost + flex + readline)) + (inputs + (list cfitsio + fftw + fftwf + gfortran + hdf5 + lapack + ncurses + openblas + python + python-numpy + wcslib)) + (home-page "http://casacore.github.io/casacore/") + (synopsis "Suite of C++ libraries for radio astronomy data processing") + (description + "The casacore package contains the core libraries of the old +AIPS++/CASA (Common Astronomy Software Application) package. This split was +made to get a better separation of core libraries and applications. +@url{https://casa.nrao.edu/, CASA} is now built on top of Casacore.") + (license license:gpl2+))) + (define-public cfitsio (package (name "cfitsio") diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 38f5c24ba3..2517da85dd 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -86,6 +86,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm index b167c6de6e..f0e05483f0 100644 --- a/gnu/packages/benchmark.scm +++ b/gnu/packages/benchmark.scm @@ -39,20 +39,23 @@ #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages compression) - #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages databases) #:use-module (gnu packages docbook) + #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages maths) #:use-module (gnu packages mpi) #:use-module (gnu packages opencl) #:use-module (gnu packages perl) + #:use-module (gnu packages php) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) @@ -60,6 +63,11 @@ #:use-module (gnu packages xml) #:use-module (ice-9 match)) +;; Lazily resolve the gcc-toolchain to avoid a circular dependency. +(define gcc-toolchain* + (delay (module-ref (resolve-interface '(gnu packages commencement)) + 'gcc-toolchain))) + (define-public fio (package (name "fio") @@ -263,6 +271,59 @@ speed, the number of seeks that can be performed per second, and the number of file metadata operations that can be performed per second.") (license license:gpl2))) ;GPL 2 only, see copyright.txt +(define-public phoronix-test-suite + (package + (name "phoronix-test-suite") + (version "10.8.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://phoronix-test-suite.com/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "105shk78jy46nwj6vnlmgp3y3lv9klar3dmcgasy4bslm4l2wx2b")) + (patches (search-patches "phoronix-test-suite-fsdg.patch")))) + (arguments + (list + #:tests? #f ;no test suite + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda _ + (invoke "./install-sh" #$output "--free-software-only"))) + (add-after 'install 'wrap-binary + (lambda* (#:key inputs #:allow-other-keys) + (let ((pts (string-append #$output "/bin/phoronix-test-suite"))) + (wrap-program pts + (list "PATH" 'prefix + (map (lambda (binary) + (dirname (search-input-file + inputs (string-append "bin/" binary)))) + '("bash" "cat" ;coreutils + "gzip" "make" "php" "sed" "tar" "which")))))))))) + (build-system gnu-build-system) + (native-inputs (list python which)) + ;; Wrap the most basic build tools needed by Phoronix Test Suite to build + ;; simple tests such as 'fio'. + (inputs (list bash coreutils gnu-make gzip php sed tar which)) + ;; Phoronix Test Suite builds and caches the benchmarking tools itself; + ;; the user is required to manually install extra libraries depending on + ;; the selected test; but at least a working C/C++ toolchain is assumed to + ;; be available. + (propagated-inputs (list (force gcc-toolchain*))) + (home-page "https://www.phoronix-test-suite.com/") + (synopsis "Automated testing/benchmarking software") + (description + "The Phoronix Test Suite is a comprehensive testing and benchmarking platform +that provides an extensible framework for which new tests can be easily added. +It can carry out both qualitative and quantitative benchmarks in a clean, +reproducible, and easy-to-use manner, making it easy to compare one particular +setup against another one.") + (license license:gpl3+))) + (define-public python-locust (package (name "python-locust") diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 91d259475a..71a10f54d5 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> +;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -332,6 +333,18 @@ menu to select one of the installed operating systems.") "/bin/mcopy\""))) #t)))))))))) +(define-public grub-efi32 + (package + (inherit grub-efi) + (name "grub-efi32") + (synopsis "GRand Unified Boot loader (UEFI 32bit version)") + (arguments + `(,@(substitute-keyword-arguments (package-arguments grub-efi) + ((#:configure-flags flags + ''()) `(cons* ,(cond ((target-x86?) "--target=i386") + ((target-arm?) "--target=arm")) + ,flags))))))) + ;; Because grub searches hardcoded paths it's easiest to just build grub ;; again to make it find both grub-pc and grub-efi. There is a command ;; line argument which allows you to specify ONE platform - but diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 3e49539473..1ce507119f 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -147,44 +147,38 @@ compiler while still keeping it small, simple, fast and understandable.") (license (list license:bsd-2 license:bsd-3)))) (define-public qbe - (let ((commit "2caa26e388b1c904d2f12fb09f84df7e761d8331") - (revision "1")) - (package - (name "qbe") - (version (git-version "0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "git://c9x.me/qbe") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1gv03ym0gqrl4wkbhysa82025xwrkr1fg44z814b6vnggwlqgljc")))) - (build-system gnu-build-system) - (arguments - (list #:make-flags - #~(list (string-append "CC=" #$(cc-for-target)) - (string-append "PREFIX=" #$output)) - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'allow-cross-compilation - (lambda _ - (substitute* "Makefile" - (("`uname -m`") #$(or (%current-target-system) - (%current-system)))))) - (add-after 'allow-cross-compilation 'use-$CC-for-tests - (lambda _ - (substitute* "tools/test.sh" - (("cc=\"cc -no-pie\"") "cc=\"${CC} -no-pie\"")))) - (delete 'configure)))) - (supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux")) - (synopsis "Simple compiler backend") - (description - "QBE is a small compiler backend using an SSA-based intermediate + (package + (name "qbe") + (version "1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://c9x.me/qbe") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qx4a3fjjrp2m4dsn19rpbjf89k9w7w7l09s96jx8vv15vzsdgis")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'allow-cross-compilation + (lambda _ + (substitute* "Makefile" + (("`uname -m`") #$(or (%current-target-system) + (%current-system)))))) + (delete 'configure)))) + (supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux")) + (synopsis "Simple compiler backend") + (description + "QBE is a small compiler backend using an SSA-based intermediate language as input.") - (home-page "https://c9x.me/compile/") - (license license:expat)))) + (home-page "https://c9x.me/compile/") + (license license:expat))) (define-public python-pcpp (package diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 129eb58aa0..fa55822762 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -50,6 +50,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages sphinx) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 175f77f115..962dff9ae7 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015, 2017 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015, 2016, 2018-2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org> @@ -892,18 +892,28 @@ available via the @code{unittest.mock} module.") (define-public python-nose2 (package (name "python-nose2") - (version "0.9.2") + (version "0.11.0") (source (origin (method url-fetch) (uri (pypi-uri "nose2" version)) (sha256 (base32 - "0pmbb6nk31yhgh4zkcblzxsznml7f7pf5q1ihgrwvbxv4mwzfql7")))) + "1scxwvwbgfdj41acma41xzdhcfdwjj9irj6sfifdbyf9dryqs83d")))) (build-system python-build-system) - (arguments `(#:tests? #f)) ; 'module' object has no attribute 'collector' + (arguments + (list #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; Tests require nose2 itself. + (setenv "PYTHONPATH" (getcwd)) + (invoke (string-append #$output "/bin/nose2") "-v"))))))) + (native-inputs + (list python-coverage)) (propagated-inputs - (list python-cov-core python-pytest-cov python-six)) + (list python-six)) (home-page "https://github.com/nose-devs/nose2") (synopsis "Next generation of nicer testing for Python") (description @@ -2036,14 +2046,14 @@ programs, something like CSmith, a random generator of C programs.") (define-public python-lit (package (name "python-lit") - (version "12.0.1") + (version "14.0.3") (source (origin (method url-fetch) (uri (pypi-uri "lit" version)) (sha256 (base32 - "01yggsb73s2gbq36xwifxl6k5ll5lkss5rwz59k9h3jnbnn7m5fj")))) + "162x7pddwl395c3mdb0mfn3f5z24x1jz6g27x303lfxpzidnn4m4")))) (build-system python-build-system) (arguments `(#:phases diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index bdfebed99e..e9e20ab7b9 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -50,6 +50,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages kerberos) + #:use-module (gnu packages maths) #:use-module (gnu packages ninja) #:use-module (gnu packages node) #:use-module (gnu packages nss) @@ -122,6 +123,7 @@ "third_party/ced" ;BSD-3 "third_party/cld_3" ;ASL2.0 "third_party/closure_compiler" ;ASL2.0 + "third_party/cpuinfo" ;BSD-2 "third_party/crashpad" ;ASL2.0 "third_party/crashpad/crashpad/third_party/lss" ;ASL2.0 "third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib @@ -233,6 +235,7 @@ "third_party/private-join-and-compute" ;ASL2.0 "third_party/protobuf" ;BSD-3 "third_party/protobuf/third_party/six" ;Expat + "third_party/pthreadpool" ;BSD-2 "third_party/pyjson5" ;ASL2.0 "third_party/qcms" ;Expat "third_party/rnnoise" ;BSD-3 @@ -290,6 +293,7 @@ "third_party/wuffs" ;ASL2.0 "third_party/xcbproto" ;X11 "third_party/xdg-utils" ;Expat + "third_party/xnnpack" ;BSD-3 ;; These are forked components of the X11 keybinding code. "third_party/libxcb-keysyms" ;X11 @@ -312,7 +316,7 @@ ;; run the Blink performance tests, just remove everything to save ~70MiB. '("third_party/blink/perf_tests")) -(define %chromium-version "102.0.5005.115") +(define %chromium-version "103.0.5060.53") (define %ungoogled-revision (string-append %chromium-version "-1")) (define %debian-revision "debian/102.0.5005.61-1") @@ -324,7 +328,7 @@ (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (sha256 (base32 - "1z2xkxxviggyyksga74cqa4v73gynlgzi22ckg8yv84qxrklik6p")))) + "1g5ciwzrhg9g13gvhrwqf19djk9jhj1d6nx2f6a8d5ch1mhi2z8s")))) (define %debian-origin (origin @@ -347,11 +351,7 @@ (define %debian-patches (map debian-patch - '("upstream/libxml.patch" - "upstream/dawn-version-fix.patch" - "upstream/blink-ftbfs.patch" - "upstream/nested-nested-nested-nested-nested-nested-regex-patterns.patch" - "system/jsoncpp.patch" + '("system/jsoncpp.patch" "system/zlib.patch" "system/openjpeg.patch"))) @@ -477,7 +477,7 @@ %chromium-version ".tar.xz")) (sha256 (base32 - "1rj7vy824vn513hiivc90lnxvxyi2s0qkdmfqsdssv9v6zjl079h")) + "00di0nw6h3kb0qp2wp3ny3zsar1ayn1lyx5zr28dl1h5cwaaxjqf")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) @@ -880,12 +880,14 @@ flac ffmpeg fontconfig + fp16 freetype + fxdiv gdk-pixbuf glib gtk+ harfbuzz-3.0 - icu4c + icu4c-71 jsoncpp lcms libevent diff --git a/gnu/packages/cluster.scm b/gnu/packages/cluster.scm index d27544e992..db610d5fed 100644 --- a/gnu/packages/cluster.scm +++ b/gnu/packages/cluster.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw> -;;; Copyright © 2020 Marius Bakke <marius@gnu.org> +;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2021 Dion Mendel <guix@dm9.info> ;;; ;;; This file is part of GNU Guix. @@ -22,6 +22,7 @@ (define-module (gnu packages cluster) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) #:use-module (guix build-system gnu) #:use-module (guix download) #:use-module (guix git-download) @@ -29,27 +30,30 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages docbook) #:use-module (gnu packages flex) #:use-module (gnu packages gettext) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages ruby) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages texinfo) - #:use-module (gnu packages tls)) + #:use-module (gnu packages tls) + #:use-module (gnu packages xml)) (define-public drbd-utils (package (name "drbd-utils") - (version "9.19.1") + (version "9.21.2") (source (origin (method url-fetch) (uri (list (string-append "https://pkg.linbit.com/downloads/drbd" "/utils/drbd-utils-" version ".tar.gz"))) (sha256 (base32 - "1l99kcrb0j85wxxmrdihpx9bk1a4sdi7wlp5m1x5l24k8ck1m5cf")) + "1zhinblhpfb7wq3wkaim4xzx1m89671djvnrf4vjabfzpclkz60h")) (modules '((guix build utils))) (snippet '(begin @@ -65,62 +69,73 @@ (substitute* "configure" ;; Use a sensible default udev rules directory. (("default_udevdir=/lib/udev") - "default_udevdir='${prefix}/lib/udev'")) - #t)))) + "default_udevdir='${prefix}/lib/udev'")))))) (build-system gnu-build-system) (arguments - `(#:configure-flags '(;; Do not install sysv or systemd init scripts. - "--with-initscripttype=none" - ;; Use the pre-built manual pages present in release - ;; tarballs instead of generating them from scratch. - "--with-prebuiltman" - ;; Disable support for DRBD 8.3 as it is only for - ;; Linux-Libre versions < 3.8. 8.4 is the latest - ;; kernel driver as of Linux 5.7. - "--without-83support" - "--sysconfdir=/etc" - "--localstatedir=/var") - #:test-target "test" - #:make-flags '("WANT_DRBD_REPRODUCIBLE_BUILD=yesplease") - #:phases - (modify-phases %standard-phases - (add-after 'patch-generated-file-shebangs 'patch-documentation - (lambda _ - ;; The preceding phase misses some Makefiles with unusual file - ;; names, so we handle those here. - (for-each patch-makefile-SHELL (find-files "documentation/common" - "^Makefile")) - #t)) - (add-before 'configure 'use-absolute-/lib/drbd - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; Look for auxiliary executables below exec_prefix instead - ;; of assuming /lib/drbd (see TODO comment in the file). - (substitute* "user/v9/drbdtool_common.c" - (("\"/lib/drbd\"") - (string-append "\"" out "/lib/drbd\""))) - #t))) - (add-after 'configure 'adjust-installation-directories - (lambda _ - ;; Do not attempt to create /etc or /var. - (substitute* "scripts/Makefile" - (("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)") - "$(DESTDIR)$(prefix)$(sysconfdir)")) - (substitute* "user/v84/Makefile" - (("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)") - "$(DESTDIR)$(prefix)$(localstatedir)") - (("\\$\\(DESTDIR\\)/lib/drbd") - "$(DESTDIR)$(prefix)/lib/drbd")) - (substitute* "user/v9/Makefile" - (("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)") - "$(DESTDIR)$(prefix)$(localstatedir)") - (("\\$\\(DESTDIR\\)\\$\\(DRBD_LIB_DIR\\)") - "$(DESTDIR)$(prefix)$(DRBD_LIB_DIR)")) - #t))))) + (list + #:configure-flags + #~(list "--sysconfdir=/etc" + "--localstatedir=/var" + ;; Do not install sysv or systemd init scripts. + "--with-initscripttype=none" + ;; Disable support for DRBD 8.3 as it is only for + ;; Linux-Libre versions < 3.8. 8.4 is the latest + ;; kernel driver as of Linux 5.18. + "--without-83support") + #:test-target "test" + #:make-flags #~(list "WANT_DRBD_REPRODUCIBLE_BUILD=yesplease") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-ja-translation + (lambda _ + ;; XXX: The japanese documentation cannot be created due to + ;; several "Invalid po file" and "use of uninitialized variable" + ;; in po4a. + (substitute* "Makefile.in" + (("(DOC_DIRS.*)documentation/ja/v[[:digit:]]+" _ match) + match) + (("[[:blank:]]+\\$\\(MAKE\\) -C documentation/ja/v[[:digit:]]+.*") + "")))) + (add-after 'patch-generated-file-shebangs 'patch-documentation + (lambda _ + ;; The preceding phase misses some Makefiles with unusual file + ;; names, so we handle those here. + (for-each patch-makefile-SHELL (find-files "documentation/common" + "^Makefile")))) + (add-before 'configure 'use-absolute-/lib/drbd + (lambda _ + ;; Look for auxiliary executables below exec_prefix instead + ;; of assuming /lib/drbd (see TODO comment in the file). + (substitute* "user/v9/drbdtool_common.c" + (("\"/lib/drbd\"") + (string-append "\"" #$output "/lib/drbd\""))))) + (add-after 'configure 'adjust-installation-directories + (lambda _ + ;; Do not attempt to create /etc or /var. + (substitute* "scripts/Makefile" + (("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)") + "$(DESTDIR)$(prefix)$(sysconfdir)")) + (substitute* "user/v84/Makefile" + (("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)") + "$(DESTDIR)$(prefix)$(localstatedir)") + (("\\$\\(DESTDIR\\)/lib/drbd") + "$(DESTDIR)$(prefix)/lib/drbd")) + (substitute* "user/v9/Makefile" + (("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)") + "$(DESTDIR)$(prefix)$(localstatedir)") + (("\\$\\(DESTDIR\\)\\$\\(DRBD_LIB_DIR\\)") + "$(DESTDIR)$(prefix)$(DRBD_LIB_DIR)"))))))) (native-inputs - `(("clitest" ,clitest) - ("flex" ,flex) - ("udev" ,eudev))) ;just to satisfy a configure check + (list clitest + eudev ;just to satisfy a configure check + flex + ;; For the documentation. + docbook-xml + docbook-xml-4.4 ;used by documentation/ra2refentry.xsl + docbook-xsl + libxml2 ;for XML_CATALOG_FILES + libxslt ;for xsltproc + ruby-asciidoctor)) (home-page "https://www.linbit.com/drbd/") (synopsis "Replicate block devices between machines") (description @@ -128,6 +143,9 @@ shared-nothing, replicated storage solution mirroring the content of block devices (hard disks, partitions, logical volumes etc.) over any network connection. This package contains the userland utilities.") + (properties + '((release-monitoring-url + . "https://www.linbit.com/en/drbd-community/drbd-download/"))) (license license:gpl2+))) (define-public keepalived diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 78e4f3bd8e..5ae5efc330 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -406,7 +406,7 @@ combination of these streams.") (define-public xsimd (package (name "xsimd") - (version "8.0.5") + (version "8.1.0") (source (origin (method git-fetch) @@ -414,7 +414,7 @@ combination of these streams.") (url "https://github.com/QuantStack/xsimd") (commit version))) (sha256 - (base32 "0fph1gzrj13knfkl3fvg098ccvqkbzs0jb8n323m7pnxajpzhzij")) + (base32 "16b9fdvhhsbs93llbzccgpxjdkj8kfvac3wx0b30i306k5f3maq2")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -435,7 +435,7 @@ operating on batches.") (define-public google-highway (package (name "google-highway") - (version "0.15.0") + (version "0.17.0") (source (origin (method git-fetch) @@ -444,7 +444,7 @@ operating on batches.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1yjwgnrpd9m99x2nqf6ld28zc6y9nlsxqg128bxxmja1gg4g4qdz")))) + (base32 "0iwn7m8f1j7bchwbi5h84nzkzmzqd7byddbr4lh6i6lpd87wny08")))) (build-system cmake-build-system) (arguments `(#:configure-flags (list "-DHWY_SYSTEM_GTEST=on"))) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 92ab94f453..9e9b584f7a 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -131,6 +131,7 @@ #:use-module (gnu packages popt) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-science) @@ -650,13 +651,13 @@ replacement for the code@{python-memcached} library.") (define-public litecli (package (name "litecli") - (version "1.8.0") + (version "1.9.0") (source (origin (method url-fetch) (uri (pypi-uri "litecli" version)) (sha256 - (base32 "0ghh8hq5bw3y2ybiy4ibbdfz55jxvilg1s6zmhxmqikhg5s95xh2")))) + (base32 "1897divrdqlhl1p5jvvm29rg3d99f48s58na7hgdzm1x13x2rbr1")))) (build-system python-build-system) (propagated-inputs (list python-cli-helpers @@ -1184,14 +1185,14 @@ and high-availability (HA).") (define-public postgresql-14 (package (name "postgresql") - (version "14.3") + (version "14.4") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "0f5gm43hx8j67nfad8mrfhzb9aq4brfgka5d0nf936pmicv5g417")) + "0slg7ld5mldmv3pn1wxxwglm4s3xc6c91ixx24apj713qlvn4fy2")) (patches (search-patches "postgresql-disable-resolve_symlinks.patch")))) (build-system gnu-build-system) (arguments @@ -1426,7 +1427,7 @@ PostgreSQL extension, providing automatic partitioning across time and space (define-public pgloader (package (name "pgloader") - (version "3.6.3") + (version "3.6.4") (source (origin (method git-fetch) @@ -1434,7 +1435,7 @@ PostgreSQL extension, providing automatic partitioning across time and space (url "https://github.com/dimitri/pgloader") (commit (string-append "v" version)))) (sha256 - (base32 "147dcf0rmi94p95dvifx8qy7602fvs041dv9wlg3q31ly13agwb5")) + (base32 "05lpa0r5l7pvx97ljfb0cryxz11krczbb86gi1i1ixp0h9bvqw2a")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 59015baa40..995a7b50d5 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -30,6 +30,7 @@ #:use-module (gnu packages) #:use-module (gnu packages check) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) diff --git a/gnu/packages/dezyne.scm b/gnu/packages/dezyne.scm index af1abf11a9..ccdf7fe09f 100644 --- a/gnu/packages/dezyne.scm +++ b/gnu/packages/dezyne.scm @@ -31,14 +31,14 @@ (define-public dezyne (package (name "dezyne") - (version "2.15.1") + (version "2.15.2") (source (origin (method url-fetch) (uri (string-append "https://dezyne.org/download/dezyne/" name "-" version ".tar.gz")) (sha256 - (base32 "0yid2a9xvp4hc7fry07zp0q2hva89czri6i1m2d1n22srh7r0my6")))) + (base32 "0yy4cmpxhw4z82bc1mvxyic4fnmb9a1d3w8fijvk1y2kqx2fiq6f")))) (inputs (list bash-minimal guile-3.0-latest guile-json-4 diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 01628b5ccc..0c4acdee0b 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -73,7 +73,7 @@ (define-public diffoscope (package (name "diffoscope") - (version "216") + (version "217") (source (origin (method git-fetch) @@ -82,7 +82,7 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "066w4mcrjvymwii5j5hylcslpz18wgd5afl11z1n3588j8c1zw15")) + (base32 "0vbyg8lm5ddrdkhahcs70rhdmz42blppzliryghxcyyxs7g3gzq5")) (patches (search-patches "diffoscope-fix-llvm-test.patch")))) (build-system python-build-system) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index b7d739bea8..d723e30f0d 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -1198,13 +1198,13 @@ FileFields during tests.") (define-public python-django-auth-ldap (package (name "python-django-auth-ldap") - (version "4.0.0") + (version "4.1.0") (source (origin (method url-fetch) (uri (pypi-uri "django-auth-ldap" version)) (sha256 (base32 - "0fajn4bk7m1hk0mjz97q7vlfzh7ibzv8f4qn7zhkq26f4kk7jvr7")))) + "0jd9jms9qpa92fk5n7gqcxjk3zs6ay79r73ann7cw1vqn79lkxvp")))) (build-system python-build-system) (arguments (list #:phases @@ -1271,13 +1271,13 @@ to ElasticSearch.") (define-public python-django-netfields (package (name "python-django-netfields") - (version "1.2.4") + (version "1.3.0") (source (origin (method url-fetch) (uri (pypi-uri "django-netfields" version)) (sha256 (base32 - "0jwlbyaxk91fq69g2y0zpfjgmjgh6l0lqm5mhys7m5968lkihvgp")))) + "122d0db1f420cwzrd7hynfbnnpqkjj2ridym5mrnj0l736nin5rr")))) (build-system python-build-system) (arguments '(#:tests? #f)) ;XXX: Requires a running PostgreSQL server (propagated-inputs diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm index 403fcbbd6b..9a972182cc 100644 --- a/gnu/packages/dlang.scm +++ b/gnu/packages/dlang.scm @@ -3,10 +3,12 @@ ;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2019, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> -;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2021, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 ( <paren@disroot.org> +;;; Copyright © 2022 Esther Flashner <esther@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,19 +30,23 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix gexp) #:use-module (guix utils) #:use-module ((guix build utils) #:hide (delete which)) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages curl) + #:use-module (gnu packages gcc) #:use-module (gnu packages gdb) #:use-module (gnu packages libedit) #:use-module (gnu packages llvm) #:use-module (gnu packages ninja) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) @@ -48,137 +54,161 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) -(define-public rdmd +(define-public d-tools (package - (name "rdmd") - (version "2.077.1") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/dlang/tools/archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0c8w373rv6iz3xfid94w40ncv2lr2ncxi662qsr4lda4aghczmq7")))) + (name "d-tools") + (version "2.100.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dlang/tools") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jbn0hyskv4ykcckw0iganpyrm0bq2lggswspw21r4hgnxkmjbyw")))) (build-system gnu-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (delete 'configure) - (delete 'check) ; There is no Makefile, so there's no 'make check'. - (replace - 'build - (lambda _ - (invoke "ldc2" "rdmd.d"))) - (replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - (install-file "rdmd" bin))))))) + (list #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (mkdir-p "bin") + (setenv "CC" #$(cc-for-target)) + (setenv "LD" #$(ld-for-target)) + (invoke "ldc2" "rdmd.d" "--of" "bin/rdmd") + (apply invoke "ldc2" "--of=bin/dustmite" + (find-files "DustMite" ".*\\.d")))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "bin/rdmd" "rdmd_test.d" "bin/rdmd" + "--rdmd-default-compiler" "ldmd2")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man (string-append out "/man"))) + (for-each delete-file (find-files "bin" "\\.o$")) + (copy-recursively "bin" bin) + (copy-recursively "man" man))))))) (native-inputs - (list ldc)) - (home-page "https://github.com/D-Programming-Language/tools/") - (synopsis "Specialized equivalent to 'make' for the D language") + (list ldc + (module-ref (resolve-interface + '(gnu packages commencement)) + 'ld-gold-wrapper))) + (home-page "https://github.com/dlang/tools") + (synopsis "Useful D-related tools") (description - "rdmd is a companion to the dmd compiler that simplifies the typical -edit-compile-link-run or edit-make-run cycle to a rapid edit-run cycle. Like -make and other tools, rdmd uses the relative dates of the files involved to -minimize the amount of work necessary. Unlike make, rdmd tracks dependencies -and freshness without requiring additional information from the user.") + "@code{d-tools} provides two useful tools for the D language: @code{rdmd}, +which runs D source files as scripts, and @code{dustmite}, which reduces D code +to a minimal test case.") (license license:boost1.0))) -;;; The 0.17.6 version is the last release to support being bootstrapped -;;; without a D compiler (requiring only a C++ compiler). -;;; TODO: Bootstrap ldc from GDC (the D frontend for GCC). -(define ldc-bootstrap-0.17 +(define-public gdmd + (let ((commit "ff2c97a47408fb71c18a2d453294d18808a97cc5") + (revision "1")) + (package + (name "gdmd") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/D-Programming-GDC/gdmd") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pd70clk70069xcjysaas7zszzmigrcw1zl2xxv8kzdg7y7xrzvm")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan + #~'(("dmd-script" "bin/gdmd") + ("dmd-script.1" "share/man/man1/gdmd.1")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-gdc-location + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "dmd-script" + (("my \\$gdc_dir.*") + (string-append "my $gdc_dir = \"" + (dirname (search-input-file inputs "/bin/gdc")) + "\";\n")))))))) + (inputs + (list gdc-10 perl)) + (home-page "https://github.com/D-Programming-GDC/gdmd") + (synopsis "DMD-like wrapper for GDC") + (description "This package provides a DMD-like wrapper for the +@acronym{GNU D Compiler,GDC}.") + (license license:gpl3+)))) + +;; We use GDC, the D frontend for GCC, to bootstrap ldc. We then use +;; ldc to bootstrap itself so that no reference remains to GDC. +(define ldc-bootstrap (package (name "ldc") - (version "0.17.6") + (version "1.27.1") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ldc-developers/ldc") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://github.com/ldc-developers/ldc/releases" + "/download/v" version "/ldc-" version "-src.tar.gz")) (sha256 - (base32 "1q6hm4fkrcwys83x0p4kfg9xrc1b9g2qicqif2zy5z4nsfsb5vgs")))) + (base32 "1775001ba6n8w46ln530kb5r66vs935ingnppgddq8wqnc0gbj4k")))) (build-system cmake-build-system) - (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) - (properties - ;; Some of the tests take a very long time on ARMv7. See - ;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>. - `((max-silent-time . ,(* 3600 3)))) (arguments - `(#:tests? #f ;requires obsolete python-lit test dependency + `(#:tests? #f ;skip in the bootstrap + #:build-type "Release" + #:configure-flags + (list "-GNinja") + #:make-flags ;used as build targets + (list "all") #:phases (modify-phases %standard-phases - (add-after 'unpack 'unpack-submodule-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((unpack (lambda (input target) - (let ((source (assoc-ref inputs input))) - ;; Git checkouts are directories as long as - ;; there are no patches; tarballs otherwise. - (if (file-is-directory? source) - (copy-recursively source target) - (with-directory-excursion target - (invoke "tar" "xvf" source - "--strip-components=1"))))))) - (unpack "phobos-src" "runtime/phobos") - (unpack "druntime-src" "runtime/druntime") - (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))) - (add-after 'unpack-submodule-sources 'patch-paths + (add-after 'unpack 'patch-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "runtime/phobos/std/process.d" (("/bin/sh") (which "sh")) - (("echo") (which "echo"))) - (substitute* "runtime/phobos/std/datetime.d" - (("/usr/share/zoneinfo/") - (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")) - (("tzName == \"[+]VERSION\"") - "(tzName == \"+VERSION\" || \ -std.algorithm.endsWith(tzName, \"/leapseconds\"))"))))))) + (("echo") (which "echo"))))) + (replace 'build + ;; Building with Make would result in "make: *** [Makefile:166: + ;; all] Error 2". + (lambda* (#:key make-flags parallel-tests? #:allow-other-keys) + (let ((job-count (number->string (or (and parallel-tests? + (parallel-job-count)) + 1)))) + (apply invoke "cmake" "--build" "." "-j" job-count + "--target" make-flags)))) + (replace 'install + (lambda _ + (invoke "cmake" "--install" ".")))))) (inputs `(("libconfig" ,libconfig) ("libedit" ,libedit) ("tzdata" ,tzdata) ("zlib" ,zlib))) (native-inputs - `(("llvm" ,llvm-6) + ;; Importing (gnu packages commencement) would introduce a cycle. + `(("ld-gold-wrapper" ,(module-ref (resolve-interface + '(gnu packages commencement)) + 'ld-gold-wrapper)) + ("llvm" ,llvm-11) + ("ldc" ,gdmd) + ("ninja" ,ninja) ("python-wrapper" ,python-wrapper) - ("unzip" ,unzip) - ("phobos-src" - ,(origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ldc-developers/phobos") - (commit (string-append "ldc-v" version)))) - (file-name (git-file-name "phobos" version)) - (sha256 - (base32 "15jzs38wanks2jfp2izzl7zqrp4c8ai54ppsgm8ws86p3sbbkmj8")))) - ("druntime-src" - ,(origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ldc-developers/druntime") - (commit (string-append "ldc-v" version)))) - (file-name (git-file-name "druntime" version)) - (sha256 - (base32 "00wr2kiggwnd8h7by51fhj1xc65hv1ysip5gbgdbkfar58p2d0bb")))) - ("dmd-testsuite-src" - ,(origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ldc-developers/dmd-testsuite") - (commit (string-append "ldc-v" version)))) - (file-name (git-file-name "dmd-testsuite" version)) - (sha256 - (base32 "1d1c0979wbippldrkjf7szyj4n87hxz8dwqg1r5b3aai37g9kcky")))))) + ("unzip" ,unzip))) (home-page "http://wiki.dlang.org/LDC") (synopsis "LLVM-based compiler for the D programming language") (description "LDC is an LLVM compiler for the D programming language. It is based on the latest DMD compiler that was written in C and is used for bootstrapping more recent compilers written in D.") + (properties + ;; Some of the tests take a very long time on ARMv7. See + ;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>. + `((max-silent-time . ,(* 3600 3)))) ;; Most of the code is released under BSD-3, except for code originally ;; written for GDC, which is released under GPLv2+, and the DMD frontend, ;; which is released under the "Boost Software License version 1.0". @@ -186,108 +216,19 @@ bootstrapping more recent compilers written in D.") license:gpl2+ license:boost1.0)))) -;;; This is the last version that supports being built with 32 bit machines -;;; from 0.17. -(define ldc-bootstrap-1.12 - (package - (inherit ldc-bootstrap-0.17) - (version "1.12.0") - (source - (origin - (method url-fetch) - ;; The official release include the matching source code releases of - ;; phobos, druntime and dmd-testsuite. - (uri (string-append "https://github.com/ldc-developers/ldc/releases" - "/download/v" version "/ldc-" version "-src.tar.gz")) - (sha256 - (base32 "1fdma1w8j37wkr0pqdar11slkk36qymamxnk6d9k8ybhjmxaaawm")))) - (arguments - (substitute-keyword-arguments (package-arguments ldc-bootstrap-0.17) - ((#:build-type _ #f) "Release") - ((#:configure-flags _ #f) - `(list "-GNinja")) - ((#:make-flags _ #f) ;used as build targets - `(list "all")) - ((#:tests? _) #f) - ((#:phases phases) - `(modify-phases ,phases - (delete 'unpack-submodule-sources) - (replace 'patch-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* '("runtime/phobos/std/process.d") - (("/bin/sh") (which "sh")) - (("echo") (which "echo"))))) - (replace 'build - ;; Building with Make would result in "make: *** [Makefile:166: - ;; all] Error 2". - (lambda* (#:key make-flags parallel-tests? #:allow-other-keys) - (let ((job-count (number->string (or (and parallel-tests? - (parallel-job-count)) - 1)))) - (apply invoke "cmake" "--build" "." "-j" job-count - "--target" make-flags)))) - (replace 'install - (lambda _ - (invoke "cmake" "--install" "."))))))) - (native-inputs - ;; Importing (gnu packages commencement) would introduce a cycle. - `(("ld-gold-wrapper" ,(module-ref (resolve-interface - '(gnu packages commencement)) - 'ld-gold-wrapper)) - ("llvm" ,llvm-6) - ("ldc" ,ldc-bootstrap-0.17) - ("ninja" ,ninja) - ("python-wrapper" ,python-wrapper) - ("unzip" ,unzip))))) - -;;; For 32 bits systems, 1.12 cannot build 1.27 directly, so we need another -;;; hop. -(define ldc-bootstrap-1.24 - (package - (inherit ldc-bootstrap-1.12) - (version "1.24.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/ldc-developers/ldc/releases" - "/download/v" version "/ldc-" version "-src.tar.gz")) - (sha256 - (base32 "0g5svf55i0kq55q49awmwqj9qi1n907cyrn1vjdjgs8nx6nn35gx")))) - (native-inputs - (fold alist-replace - (package-native-inputs ldc-bootstrap-1.12) - '("ldc" "llvm") - `((,ldc-bootstrap-1.12) (,llvm-11)))))) - -(define ldc-bootstrap-1.27 - (package - (inherit ldc-bootstrap-1.24) - (version "1.27.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/ldc-developers/ldc/releases" - "/download/v" version "/ldc-" version "-src.tar.gz")) - (sha256 - (base32 "1775001ba6n8w46ln530kb5r66vs935ingnppgddq8wqnc0gbj4k")))) - (native-inputs - (fold alist-replace - (package-native-inputs ldc-bootstrap-1.24) - '("ldc" "llvm") - `((,ldc-bootstrap-1.24) (,llvm-11)))))) - (define-public ldc (package - (inherit ldc-bootstrap-1.27) + (inherit ldc-bootstrap) (arguments - (substitute-keyword-arguments (package-arguments ldc-bootstrap-1.27) + (substitute-keyword-arguments (package-arguments ldc-bootstrap) ((#:make-flags _ #f) '(list "all" ;; Also build the test runner binaries. "ldc2-unittest" "all-test-runners")) ((#:configure-flags flags) `(,@flags "-DBUILD_SHARED_LIBS=ON" - "-DLDC_LINK_MANUALLY=OFF")) + "-DLDC_LINK_MANUALLY=OFF" + "-DLDC_DYNAMIC_COMPILE=OFF")) ((#:tests? _) #t) ((#:phases phases) `(modify-phases ,phases @@ -308,7 +249,8 @@ bootstrapping more recent compilers written in D.") system))))) (matches ("x86_64" => "x86_64") ("i686" => "i386") - ("armhf" => "armhf")))) + ("armhf" => "armhf") + ("aarch64" => "aarch64")))) ;; Coax LLVM into agreeing with Clang about system target ;; naming. (substitute* "driver/linker-gcc.cpp" @@ -358,30 +300,28 @@ bootstrapping more recent compilers written in D.") (substitute* "runtime/druntime/test/exceptions/Makefile" ((".*TESTS\\+=rt_trap_exceptions_drt_gdb.*") "")) - ;; The following tests fail on the supported 32 bit systems, - ;; which are not tested upstream. + ;; The following tests fail on some systems, not all of + ;; which are tested upstream. (with-directory-excursion "tests" - (let ((system ,(or (%current-target-system) - (%current-system)))) - (when (or (string-prefix? "armhf" system ) - (string-prefix? "i686" system )) + (cond + (,(or (target-x86-32?) + (target-arm32?)) (for-each delete-file '("PGO/profile_rt_calls.d" "codegen/mangling.d" - "debuginfo/print_gdb.d" - "dynamiccompile/bind.d" - "dynamiccompile/bind_bool.d" - "dynamiccompile/bind_func_opt.d" - "dynamiccompile/bind_nested_opt.d" - "dynamiccompile/bind_opt.d" - "dynamiccompile/compiler_context.d" - "dynamiccompile/compiler_context_parallel.d" "instrument/xray_check_pipeline.d" "instrument/xray_link.d" "instrument/xray_simple_execution.d" "sanitizers/msan_noerror.d" "sanitizers/msan_uninitialized.d" - "d2/dmd-testsuite/runnable_cxx/cppa.d"))))))) + "d2/dmd-testsuite/runnable_cxx/cppa.d"))) + (,(target-aarch64?) + (for-each delete-file + '("d2/dmd-testsuite/runnable/ldc_cabi1.d" + "sanitizers/fuzz_basic.d" + "sanitizers/msan_noerror.d" + "sanitizers/msan_uninitialized.d"))) + (#t '()))))) (add-before 'configure 'set-cc-and-cxx-to-use-clang ;; The tests require to be built with Clang; build everything ;; with it, for simplicity. @@ -414,15 +354,15 @@ integration tests...\n") "-E" "dmd-testsuite|lit-tests|ldc2-unittest"))))))))) (native-inputs (append (delete "llvm" - (alist-replace "ldc" (list ldc-bootstrap-1.27) - (package-native-inputs ldc-bootstrap-1.27))) + (alist-replace "ldc" (list ldc-bootstrap) + (package-native-inputs ldc-bootstrap))) `(("clang" ,clang-11) ;propagates llvm and clang-runtime ("python-lit" ,python-lit)))))) (define-public dub (package (name "dub") - (version "1.7.2") + (version "1.23.0") (source (origin (method git-fetch) @@ -431,26 +371,31 @@ integration tests...\n") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9")))) + (base32 "06a4whsl1m600k096nwif83n7za3vr7pj1xwapncy5fcad1gmady")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; it would have tested itself by installing some packages (vibe etc) - #:phases - (modify-phases %standard-phases - (delete 'configure) ; no configure script - (replace 'build - (lambda _ - (invoke "./build.sh"))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (install-file "bin/dub" bin) - #t)))))) + (list #:tests? #f ; tests try to install packages + #:phases + #~(modify-phases %standard-phases + (delete 'configure) ; no configure script + (replace 'build + (lambda _ + (setenv "CC" #$(cc-for-target)) + (setenv "LD" #$(ld-for-target)) + (invoke "./build.d"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "bin/dub" bin))))))) (inputs (list curl)) (native-inputs - (list ldc)) + (list d-tools + ldc + (module-ref (resolve-interface + '(gnu packages commencement)) + 'ld-gold-wrapper))) (home-page "https://code.dlang.org/getting_started") (synopsis "Package and build manager for D projects") (description diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 07731886ae..ae4ee419af 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com> ;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) @@ -52,7 +54,7 @@ ;; Note - when changing Docker versions it is important to update the versions ;; of several associated packages (docker-libnetwork and go-sctp). -(define %docker-version "19.03.15") +(define %docker-version "20.10.17") (define-public python-docker (package @@ -173,7 +175,7 @@ Python without keeping their credentials in a Docker configuration file.") (define-public containerd (package (name "containerd") - (version "1.4.4") + (version "1.6.6") (source (origin (method git-fetch) @@ -182,51 +184,58 @@ Python without keeping their credentials in a Docker configuration file.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qjbfj1dw6pykxhh8zahcxlgpyjzgnrngk5vjaf34akwyan8nrxb")))) + (base32 "1vsl747i3wyy68j4lp4nprwxadbyga8qxlrk892afcd2990zp5mr")))) (build-system go-build-system) (arguments - (let ((make-flags (list (string-append "VERSION=" version) - "REVISION=0"))) - `(#:import-path "github.com/containerd/containerd" - #:phases - (modify-phases %standard-phases - (add-after 'chdir 'patch-paths - (lambda* (#:key inputs import-path outputs #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (substitute* "runtime/v1/linux/runtime.go" - (("defaultRuntime[ \t]*=.*") - (string-append "defaultRuntime = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("defaultShim[ \t]*=.*") - (string-append "defaultShim = \"" - (assoc-ref outputs "out") - "/bin/containerd-shim\"\n"))) - (substitute* "vendor/github.com/containerd/go-runc/runc.go" - (("DefaultCommand[ \t]*=.*") - (string-append "DefaultCommand = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "vendor/github.com/containerd/continuity/testutil\ + (let ((make-flags #~(list (string-append "VERSION=" #$version) + (string-append "DESTDIR=" #$output) + "PREFIX=" + "REVISION=0"))) + (list + #:import-path "github.com/containerd/containerd" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs import-path outputs #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* "runtime/v1/linux/runtime.go" + (("defaultRuntime[ \t]*=.*") + (string-append "defaultRuntime = \"" + (search-input-file inputs "/sbin/runc") + "\"\n")) + (("defaultShim[ \t]*=.*") + (string-append "defaultShim = \"" + (assoc-ref outputs "out") + "/bin/containerd-shim\"\n"))) + (substitute* "pkg/cri/config/config_unix.go" + (("DefaultRuntimeName: \"runc\"") + (string-append "DefaultRuntimeName: \"" + (search-input-file inputs "/sbin/runc") + "\""))) + (substitute* "vendor/github.com/containerd/go-runc/runc.go" + (("DefaultCommand[ \t]*=.*") + (string-append "DefaultCommand = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "vendor/github.com/containerd/continuity/testutil\ /loopback/loopback_linux.go" - (("exec\\.Command\\(\"losetup\"") - (string-append "exec.Command(\"" - (assoc-ref inputs "util-linux") - "/sbin/losetup\""))) - (substitute* "archive/compression/compression.go" - (("exec\\.LookPath\\(\"unpigz\"\\)") - (string-append "\"" (assoc-ref inputs "pigz") - "/bin/unpigz\", error(nil)")))))) - (replace 'build - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (apply invoke "make" ',make-flags)))) - (replace 'install - (lambda* (#:key import-path outputs #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (let* ((out (assoc-ref outputs "out"))) - (apply invoke "make" (string-append "DESTDIR=" out) "install" - ',make-flags))))))))) + (("exec\\.Command\\(\"losetup\"") + (string-append "exec.Command(\"" + (search-input-file inputs "/sbin/losetup") + "\""))) + (substitute* "archive/compression/compression.go" + (("exec\\.LookPath\\(\"unpigz\"\\)") + (string-append "\"" + (search-input-file inputs "/bin/unpigz") + "\", error(nil)")))))) + (replace 'build + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (apply invoke "make" #$make-flags)))) + (replace 'install + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (apply invoke "make" "install" #$make-flags)))))))) (inputs (list btrfs-progs libseccomp pigz runc util-linux)) (native-inputs @@ -243,11 +252,10 @@ network attachments.") ;;; anyway, as it needs many dependencies that aren't being satisfied. (define docker-libnetwork ;; There are no recent release for libnetwork, so choose the last commit of - ;; the branch that Docker uses, as can be seen in the Docker source file - ;; 'hack/dockerfile/install/proxy.installer'. NOTE - It is important that - ;; this version is kept in sync with the version of Docker being used. - ;; This commit is the "bump_19.03" branch, as mentioned in Docker's vendor.conf. - (let ((commit "55e924b8a84231a065879156c0de95aefc5f5435") + ;; the branch that Docker uses, as can be seen in the 'vendor.conf' Docker + ;; source file. NOTE - It is important that this version is kept in sync + ;; with the version of Docker being used. + (let ((commit "f6ccccb1c082a432c2a5814aaedaca56af33d9ea") (version (version-major+minor %docker-version)) (revision "1")) (package @@ -262,12 +270,10 @@ network attachments.") (file-name (git-file-name name version)) (sha256 (base32 - "19syb3scwiykn44gqfaqrgqv8a0df4ps0ykf3za9xkjc5cyi99mp")) + "0nxpr0h0smv4n641g41vxibr5r85ixfcvs9cp3c4fc7zvrhjc49s")) ;; Delete bundled ("vendored") free software source code. (modules '((guix build utils))) - (snippet '(begin - (delete-file-recursively "vendor") - #t)))) + (snippet '(delete-file-recursively "vendor")))) (build-system go-build-system) (arguments `(#:import-path "github.com/moby/libnetwork/")) @@ -315,278 +321,269 @@ built-in registry server of Docker.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0419iha9zmwlhzhnbfxlsa13vgd04yifnsr8qqnj2ks5dxrcajl8")) - (patches - (search-patches "docker-fix-tests.patch")))) + (base32 "0hn7fg717rggwk6dbicrwa7aglqp7dp0jp5rvn6p9gfcnrp2w97d")))) (build-system gnu-build-system) (arguments - `(#:modules - ((guix build gnu-build-system) + (list + #:modules + '((guix build gnu-build-system) ((guix build go-build-system) #:prefix go:) (guix build union) (guix build utils)) - #:imported-modules - (,@%gnu-build-system-modules + #:imported-modules + `(,@%gnu-build-system-modules (guix build union) (guix build go-build-system)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "builder/builder-next/executor_unix.go" - (("CommandCandidates:.*runc.*") - (string-append "CommandCandidates: []string{\"" - (assoc-ref inputs "runc") - "/sbin/runc\"},\n"))) - (substitute* "vendor/github.com/containerd/go-runc/runc.go" - (("DefaultCommand = .*") - (string-append "DefaultCommand = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "vendor/github.com/containerd/containerd/runtime/v1/linux/runtime.go" - (("defaultRuntime[ \t]*=.*") - (string-append "defaultRuntime = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("defaultShim[ \t]*=.*") - (string-append "defaultShim = \"" - (assoc-ref inputs "containerd") - "/bin/containerd-shim\"\n"))) - (substitute* "daemon/daemon_unix.go" - (("DefaultShimBinary = .*") - (string-append "DefaultShimBinary = \"" - (assoc-ref inputs "containerd") - "/bin/containerd-shim\"\n")) - (("DefaultRuntimeBinary = .*") - (string-append "DefaultRuntimeBinary = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("DefaultRuntimeName = .*") - (string-append "DefaultRuntimeName = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n"))) - (substitute* "daemon/config/config.go" - (("StockRuntimeName = .*") - (string-append "StockRuntimeName = \"" - (assoc-ref inputs "runc") - "/sbin/runc\"\n")) - (("DefaultInitBinary = .*") - (string-append "DefaultInitBinary = \"" - (assoc-ref inputs "tini") - "/bin/tini-static\"\n"))) - (substitute* "daemon/config/config_common_unix_test.go" - (("expectedInitPath: \"docker-init\"") - (string-append "expectedInitPath: \"" - (assoc-ref inputs "tini") - "/bin/tini-static\""))) - (substitute* "vendor/github.com/moby/buildkit/executor/runcexecutor/executor.go" - (("var defaultCommandCandidates = .*") - (string-append "var defaultCommandCandidates = []string{\"" - (assoc-ref inputs "runc") "/sbin/runc\"}"))) - (substitute* "vendor/github.com/docker/libnetwork/portmapper/proxy.go" - (("var userlandProxyCommandName = .*") - (string-append "var userlandProxyCommandName = \"" - (assoc-ref inputs "docker-proxy") - "/bin/proxy\"\n"))) - (substitute* "pkg/archive/archive.go" - (("string\\{\"xz") - (string-append "string{\"" (assoc-ref inputs "xz") "/bin/xz"))) - ;; TODO: Remove when Docker proper uses v1.14.x to build - (substitute* "registry/resumable/resumablerequestreader_test.go" - (("I%27m%20not%20an%20url" all) - (string-append "\"" all "\""))) - ;; TODO: Remove when Docker proper uses v1.14.x to build - (substitute* "vendor/gotest.tools/x/subtest/context.go" - (("func \\(tc \\*testcase\\) Cleanup\\(" all) - (string-append all "func()")) - (("tc\\.Cleanup\\(" all) - (string-append all "nil"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "builder/builder-next/executor_unix.go" + (("CommandCandidates:.*runc.*") + (string-append "CommandCandidates: []string{\"" + (search-input-file inputs "/sbin/runc") + "\"},\n"))) + (substitute* "vendor/github.com/containerd/go-runc/runc.go" + (("DefaultCommand = .*") + (string-append "DefaultCommand = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "vendor/github.com/containerd/containerd/\ +runtime/v1/linux/runtime.go" + (("defaultRuntime[ \t]*=.*") + (string-append "defaultRuntime = \"" + (search-input-file inputs "/sbin/runc") + "\"\n")) + (("defaultShim[ \t]*=.*") + (string-append "defaultShim = \"" + (search-input-file inputs "/bin/containerd-shim") + "\"\n"))) + (substitute* "daemon/daemon_unix.go" + (("DefaultShimBinary = .*") + (string-append "DefaultShimBinary = \"" + (search-input-file inputs "/bin/containerd-shim") + "\"\n")) + (("DefaultRuntimeBinary = .*") + (string-append "DefaultRuntimeBinary = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "daemon/runtime_unix.go" + (("defaultRuntimeName = .*") + (string-append "defaultRuntimeName = \"" + (search-input-file inputs "/sbin/runc") + "\"\n"))) + (substitute* "daemon/config/config.go" + (("StockRuntimeName = .*") + (string-append "StockRuntimeName = \"" + (search-input-file inputs "/sbin/runc") + "\"\n")) + (("DefaultInitBinary = .*") + (string-append "DefaultInitBinary = \"" + (search-input-file inputs "/bin/tini-static") + "\"\n"))) + (substitute* "daemon/config/config_common_unix_test.go" + (("expectedInitPath: \"docker-init\"") + (string-append "expectedInitPath: \"" + (search-input-file inputs "/bin/tini-static") + "\""))) + (substitute* "vendor/github.com/moby/buildkit/executor/\ +runcexecutor/executor.go" + (("var defaultCommandCandidates = .*") + (string-append "var defaultCommandCandidates = []string{\"" + (search-input-file inputs "/sbin/runc") "\"}"))) + (substitute* "vendor/github.com/docker/libnetwork/portmapper/proxy.go" + (("var userlandProxyCommandName = .*") + (string-append "var userlandProxyCommandName = \"" + (search-input-file inputs "/bin/proxy") + "\"\n"))) + (substitute* "pkg/archive/archive.go" + (("string\\{\"xz") + (string-append "string{\"" (search-input-file inputs "/bin/xz")))) - (let ((source-files (filter (lambda (name) - (not (string-contains name "test"))) - (find-files "." "\\.go$")))) - (let-syntax ((substitute-LookPath* - (syntax-rules () - ((_ (source-text package relative-path) ...) - (substitute* source-files - (((string-append "\\<exec\\.LookPath\\(\"" - source-text - "\")")) - (string-append "\"" - (assoc-ref inputs package) - "/" relative-path - "\", error(nil)")) ...)))) - (substitute-Command* - (syntax-rules () - ((_ (source-text package relative-path) ...) - (substitute* source-files - (((string-append "\\<(re)?exec\\.Command\\(\"" - source-text - "\"") _ re?) - (string-append (if re? re? "") - "exec.Command(\"" - (assoc-ref inputs package) - "/" relative-path - "\"")) ...))))) - (substitute-LookPath* - ("containerd" "containerd" "bin/containerd") - ("ps" "procps" "bin/ps") - ("mkfs.xfs" "xfsprogs" "bin/mkfs.xfs") - ("lvmdiskscan" "lvm2" "sbin/lvmdiskscan") - ("pvdisplay" "lvm2" "sbin/pvdisplay") - ("blkid" "util-linux" "sbin/blkid") - ("unpigz" "pigz" "bin/unpigz") - ("iptables" "iptables" "sbin/iptables") - ("iptables-legacy" "iptables" "sbin/iptables") - ("ip" "iproute2" "sbin/ip")) + (let ((source-files (filter (lambda (name) + (not (string-contains name "test"))) + (find-files "." "\\.go$")))) + (let-syntax ((substitute-LookPath* + (syntax-rules () + ((_ (source-text path) ...) + (substitute* source-files + (((string-append "\\<exec\\.LookPath\\(\"" + source-text + "\")")) + (string-append "\"" + (search-input-file inputs path) + "\", error(nil)")) ...)))) + (substitute-Command* + (syntax-rules () + ((_ (source-text path) ...) + (substitute* source-files + (((string-append "\\<(re)?exec\\.Command\\(\"" + source-text + "\"") _ re?) + (string-append (if re? re? "") + "exec.Command(\"" + (search-input-file inputs path) + "\"")) ...))))) + (substitute-LookPath* + ("containerd" "/bin/containerd") + ("ps" "/bin/ps") + ("mkfs.xfs" "/sbin/mkfs.xfs") + ("lvmdiskscan" "/sbin/lvmdiskscan") + ("pvdisplay" "/sbin/pvdisplay") + ("blkid" "/sbin/blkid") + ("unpigz" "/bin/unpigz") + ("iptables" "/sbin/iptables") + ("ip6tables" "/sbin/ip6tables") + ("iptables-legacy" "/sbin/iptables") + ("ip" "/sbin/ip")) - (substitute-Command* - ("modprobe" "kmod" "bin/modprobe") - ("pvcreate" "lvm2" "sbin/pvcreate") - ("vgcreate" "lvm2" "sbin/vgcreate") - ("lvcreate" "lvm2" "sbin/lvcreate") - ("lvconvert" "lvm2" "sbin/lvconvert") - ("lvchange" "lvm2" "sbin/lvchange") - ("mkfs.xfs" "xfsprogs" "sbin/mkfs.xfs") - ("xfs_growfs" "xfsprogs" "sbin/xfs_growfs") - ("mkfs.ext4" "e2fsprogs" "sbin/mkfs.ext4") - ("tune2fs" "e2fsprogs" "sbin/tune2fs") - ("blkid" "util-linux" "sbin/blkid") - ("resize2fs" "e2fsprogs" "sbin/resize2fs") - ("ps" "procps" "bin/ps") - ("losetup" "util-linux" "sbin/losetup") - ("uname" "coreutils" "bin/uname") - ("dbus-launch" "dbus" "bin/dbus-launch") - ("git" "git" "bin/git"))) - ;; docker-mountfrom ?? - ;; docker - ;; docker-untar ?? - ;; docker-applyLayer ?? - ;; /usr/bin/uname - ;; grep - ;; apparmor_parser + (substitute-Command* + ("modprobe" "/bin/modprobe") + ("pvcreate" "/sbin/pvcreate") + ("vgcreate" "/sbin/vgcreate") + ("lvcreate" "/sbin/lvcreate") + ("lvconvert" "/sbin/lvconvert") + ("lvchange" "/sbin/lvchange") + ("mkfs.xfs" "/sbin/mkfs.xfs") + ("xfs_growfs" "/sbin/xfs_growfs") + ("mkfs.ext4" "/sbin/mkfs.ext4") + ("tune2fs" "/sbin/tune2fs") + ("blkid" "/sbin/blkid") + ("resize2fs" "/sbin/resize2fs") + ("ps" "/bin/ps") + ("losetup" "/sbin/losetup") + ("uname" "/bin/uname") + ("dbus-launch" "/bin/dbus-launch") + ("git" "/bin/git"))) + ;; docker-mountfrom ?? + ;; docker + ;; docker-untar ?? + ;; docker-applyLayer ?? + ;; /usr/bin/uname + ;; grep + ;; apparmor_parser - ;; Make compilation fail when, in future versions, Docker - ;; invokes other programs we don't know about and thus don't - ;; substitute. - (substitute* source-files - ;; Search for Java in PATH. - (("\\<exec\\.Command\\(\"java\"") - "xxec.Command(\"java\"") - ;; Search for AUFS in PATH (mainline Linux doesn't support it). - (("\\<exec\\.Command\\(\"auplink\"") - "xxec.Command(\"auplink\"") - ;; Fail on other unsubstituted commands. - (("\\<exec\\.Command\\(\"([a-zA-Z0-9][a-zA-Z0-9_-]*)\"" - _ executable) - (string-append "exec.Guix_doesnt_want_Command(\"" - executable "\"")) - (("\\<xxec\\.Command") - "exec.Command") - ;; Search for ZFS in PATH. - (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") - ;; Fail on other unsubstituted LookPaths. - (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") - (("\\<LooxPath") "LookPath"))) - #t)) - (add-after 'patch-paths 'delete-failing-tests - (lambda _ - ;; Needs internet access. - (delete-file "builder/remotecontext/git/gitutils_test.go") - ;; Permission denied. - (delete-file "daemon/graphdriver/devmapper/devmapper_test.go") - ;; Operation not permitted (idtools.MkdirAllAndChown). - (delete-file "daemon/graphdriver/vfs/vfs_test.go") - ;; Timeouts after 5 min. - (delete-file "plugin/manager_linux_test.go") - ;; Operation not permitted. - (delete-file "daemon/graphdriver/aufs/aufs_test.go") - (delete-file "daemon/graphdriver/btrfs/btrfs_test.go") - (delete-file "daemon/graphdriver/overlay/overlay_test.go") - (delete-file "daemon/graphdriver/overlay2/overlay_test.go") - (delete-file "pkg/chrootarchive/archive_unix_test.go") - (delete-file "daemon/container_unix_test.go") - ;; This file uses cgroups and /proc. - (delete-file "pkg/sysinfo/sysinfo_linux_test.go") - ;; This file uses cgroups. - (delete-file "runconfig/config_test.go") - ;; This file uses /var. - (delete-file "daemon/oci_linux_test.go") - ;; Signal tests fail in bizarre ways - (delete-file "pkg/signal/signal_linux_test.go") - #t)) - (replace 'configure - (lambda _ - (setenv "DOCKER_BUILDTAGS" "seccomp") - (setenv "DOCKER_GITCOMMIT" (string-append "v" ,%docker-version)) - (setenv "VERSION" (string-append ,%docker-version "-ce")) - ;; Automatically use bundled dependencies. - ;; TODO: Unbundle - see file "vendor.conf". - (setenv "AUTO_GOPATH" "1") - ;; Respectively, strip the symbol table and debug - ;; information, and the DWARF symbol table. - (setenv "LDFLAGS" "-s -w") - ;; Make build faster - (setenv "GOCACHE" "/tmp") - #t)) - (add-before 'build 'setup-go-environment - (assoc-ref go:%standard-phases 'setup-go-environment)) - (replace 'build - (lambda _ - ;; Our LD doesn't like the statically linked relocatable things - ;; that go produces, so install the dynamic version of - ;; dockerd instead. - (invoke "hack/make.sh" "dynbinary"))) - (replace 'check - (lambda _ - ;; The build process generated a file because the environment - ;; variable "AUTO_GOPATH" was set. Use it. - (setenv "GOPATH" (string-append (getcwd) "/.gopath")) - ;; ".gopath/src/github.com/docker/docker" is a link to the current - ;; directory and chdir would canonicalize to that. - ;; But go needs to have the uncanonicalized directory name, so - ;; store that. - (setenv "PWD" (string-append (getcwd) - "/.gopath/src/github.com/docker/docker")) - (with-directory-excursion ".gopath/src/github.com/docker/docker" - (invoke "hack/test/unit")) - (setenv "PWD" #f) - #t)) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (out-bin (string-append out "/bin"))) - (install-file "bundles/dynbinary-daemon/dockerd" out-bin) - (install-file (string-append "bundles/dynbinary-daemon/dockerd-" - (getenv "VERSION")) - out-bin) - #t))) - (add-after 'install 'remove-go-references - (assoc-ref go:%standard-phases 'remove-go-references))))) + ;; Make compilation fail when, in future versions, Docker + ;; invokes other programs we don't know about and thus don't + ;; substitute. + (substitute* source-files + ;; Search for Java in PATH. + (("\\<exec\\.Command\\(\"java\"") + "xxec.Command(\"java\"") + ;; Search for AUFS in PATH (mainline Linux doesn't support it). + (("\\<exec\\.Command\\(\"auplink\"") + "xxec.Command(\"auplink\"") + ;; Fail on other unsubstituted commands. + (("\\<exec\\.Command\\(\"([a-zA-Z0-9][a-zA-Z0-9_-]*)\"" + _ executable) + (string-append "exec.Guix_doesnt_want_Command(\"" + executable "\"")) + (("\\<xxec\\.Command") + "exec.Command") + ;; Search for ZFS in PATH. + (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") + ;; Do not fail when buildkit-qemu-<target> isn't found. + ;; FIXME: We might need to package buildkit and docker's + ;; buildx plugin, to support qemu-based docker containers. + (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"") + ;; Fail on other unsubstituted LookPaths. + (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") + (("\\<LooxPath") "LookPath"))))) + (add-after 'patch-paths 'delete-failing-tests + (lambda _ + ;; Needs internet access. + (delete-file "builder/remotecontext/git/gitutils_test.go") + ;; Permission denied. + (delete-file "daemon/graphdriver/devmapper/devmapper_test.go") + ;; Operation not permitted (idtools.MkdirAllAndChown). + (delete-file "daemon/graphdriver/vfs/vfs_test.go") + ;; Timeouts after 5 min. + (delete-file "plugin/manager_linux_test.go") + ;; Operation not permitted. + (delete-file "daemon/graphdriver/aufs/aufs_test.go") + (delete-file "daemon/graphdriver/btrfs/btrfs_test.go") + (delete-file "daemon/graphdriver/overlay/overlay_test.go") + (delete-file "daemon/graphdriver/overlay2/overlay_test.go") + (delete-file "pkg/chrootarchive/archive_unix_test.go") + (delete-file "daemon/container_unix_test.go") + ;; This file uses cgroups and /proc. + (delete-file "pkg/sysinfo/sysinfo_linux_test.go") + ;; This file uses cgroups. + (delete-file "runconfig/config_test.go") + ;; This file uses /var. + (delete-file "daemon/oci_linux_test.go") + ;; Signal tests fail in bizarre ways + (delete-file "pkg/signal/signal_linux_test.go"))) + (replace 'configure + (lambda _ + (setenv "DOCKER_BUILDTAGS" "seccomp") + (setenv "DOCKER_GITCOMMIT" (string-append "v" #$%docker-version)) + (setenv "VERSION" (string-append #$%docker-version "-ce")) + ;; Automatically use bundled dependencies. + ;; TODO: Unbundle - see file "vendor.conf". + (setenv "AUTO_GOPATH" "1") + ;; Respectively, strip the symbol table and debug + ;; information, and the DWARF symbol table. + (setenv "LDFLAGS" "-s -w") + ;; Make build faster + (setenv "GOCACHE" "/tmp"))) + (add-before 'build 'setup-go-environment + (assoc-ref go:%standard-phases 'setup-go-environment)) + (replace 'build + (lambda _ + ;; Our LD doesn't like the statically linked relocatable things + ;; that go produces, so install the dynamic version of + ;; dockerd instead. + (invoke "hack/make.sh" "dynbinary"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; The build process generated a file because the environment + ;; variable "AUTO_GOPATH" was set. Use it. + (setenv "GOPATH" (string-append (getcwd) "/.gopath")) + ;; ".gopath/src/github.com/docker/docker" is a link to the current + ;; directory and chdir would canonicalize to that. + ;; But go needs to have the uncanonicalized directory name, so + ;; store that. + (setenv "PWD" (string-append + (getcwd) "/.gopath/src/github.com/docker/docker")) + (with-directory-excursion ".gopath/src/github.com/docker/docker" + (invoke "hack/test/unit")) + (setenv "PWD" #f)))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-bin (string-append out "/bin"))) + (install-file "bundles/dynbinary-daemon/dockerd" out-bin) + (install-file (string-append "bundles/dynbinary-daemon/dockerd-" + (getenv "VERSION")) + out-bin)))) + (add-after 'install 'remove-go-references + (assoc-ref go:%standard-phases 'remove-go-references))))) (inputs - `(("btrfs-progs" ,btrfs-progs) - ("containerd" ,containerd) ; for containerd-shim - ("coreutils" ,coreutils) - ("dbus" ,dbus) - ("docker-proxy" ,docker-libnetwork-cmd-proxy) - ("e2fsprogs" ,e2fsprogs) - ("git" ,git) - ("iproute2" ,iproute) - ("iptables" ,iptables) - ("kmod" ,kmod) - ("libseccomp" ,libseccomp) - ("pigz" ,pigz) - ("procps" ,procps) - ("runc" ,runc) - ("util-linux" ,util-linux) - ("lvm2" ,lvm2) - ("tini" ,tini) - ("xfsprogs" ,xfsprogs) - ("xz" ,xz))) + (list btrfs-progs + containerd ; for containerd-shim + coreutils + dbus + docker-libnetwork-cmd-proxy + e2fsprogs + git + iproute + iptables + kmod + libseccomp + pigz + procps + runc + util-linux + lvm2 + tini + xfsprogs + xz)) (native-inputs (list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc) - go-1.14 gotestsum pkg-config)) - (synopsis "Docker container component library, and daemon") + go gotestsum pkg-config)) + (synopsis "Container component library and daemon") (description "This package provides a framework to assemble specialized container systems. It includes components for orchestration, image management, secret management, configuration management, networking, @@ -600,13 +597,13 @@ provisioning etc.") (version %docker-version) (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/docker/cli") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1asapjj8brvbkd5irgdq82fx1ihrc14qaq30jxvjwflfm5yb7lv0")))) + (method git-fetch) + (uri (git-reference + (url "https://github.com/docker/cli") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ksicj4iqvgp9jabd4xmhkf3vax6dwn4f5dsr73bdqj4mf3ahav0")))) (build-system go-build-system) (arguments `(#:import-path "github.com/docker/cli" @@ -626,21 +623,20 @@ provisioning etc.") ;; Make build reproducible. (setenv "BUILDTIME" "1970-01-01 00:00:01.000000000+00:00") (symlink "src/github.com/docker/cli/scripts" "./scripts") - (symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile") - #t)) + (symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile"))) (replace 'build (lambda _ - (invoke "./scripts/build/dynbinary"))) + (setenv "GO_LINKMODE" "dynamic") + (invoke "./scripts/build/binary"))) (replace 'check (lambda* (#:key make-flags tests? #:allow-other-keys) (setenv "PATH" (string-append (getcwd) "/build:" (getenv "PATH"))) - (if tests? - ;; Use the newly-built docker client for the tests. - (with-directory-excursion "src/github.com/docker/cli" - ;; TODO: Run test-e2e as well? - (apply invoke "make" "-f" "docker.Makefile" "test-unit" - (or make-flags '()))) - #t))) + (when tests? + ;; Use the newly-built docker client for the tests. + (with-directory-excursion "src/github.com/docker/cli" + ;; TODO: Run test-e2e as well? + (apply invoke "make" "-f" "docker.Makefile" "test-unit" + (or make-flags '())))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -653,8 +649,7 @@ provisioning etc.") (string-append etc "/fish/completions")) (install-file "zsh/_docker" (string-append etc "/zsh/site-functions"))) - (install-file "build/docker" out-bin) - #t)))))) + (install-file "build/docker" out-bin))))))) (native-inputs (list go libltdl pkg-config)) (synopsis "Command line interface to Docker") diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 3b9c01c786..9e5a17a6ae 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -579,7 +579,7 @@ a pen-tablet display and a beamer.") (define-public fet (package (name "fet") - (version "6.2.2") + (version "6.5.3") (source (origin (method url-fetch) @@ -588,20 +588,21 @@ a pen-tablet display and a beamer.") (list (string-append directory base) (string-append directory "old/" base)))) (sha256 - (base32 "1x8m543n88iqprh4zccx1zcfm20balmh0h6syrbv03cszmkvfw07")))) + (base32 "030njv53azzw6fn2d5mkxn7hyvyb45yss2y49wxb8bgj3ayv1rgp")))) (build-system gnu-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-hardcoded-directories - (lambda* (#:key outputs #:allow-other-keys) - (substitute* (list "fet.pro" - "src/src.pro" - "src/src-cl.pro" - "src/interface/fet.cpp") - (("/usr") (assoc-ref outputs "out"))))) - (replace 'configure - (lambda _ (invoke "qmake" "fet.pro")))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-hardcoded-directories + (lambda _ + (substitute* (list "fet.pro" + "src/src.pro" + "src/src-cl.pro" + "src/interface/fet.cpp") + (("/usr") #$output)))) + (replace 'configure + (lambda _ (invoke "qmake" "fet.pro")))))) (inputs (list qtbase)) (home-page "https://www.lalescu.ro/liviu/fet/") diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index d02e1dc7d5..ff2ed00c47 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -114,6 +114,7 @@ ;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com> ;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org> ;;; Copyright © 2022 Haider Mirza <haider@haider.gq> +;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -778,10 +779,10 @@ information in the mode line.") (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar")) (sha256 - (base32 "1x3zkbjsi04v5ny3yxqrb75vcacrj9kxmpm9mvkp0n07j5g34f68")))) + (base32 "0q2js8qihlhchpx2mx0f992ygslsqri2q4iv8kcl4fx31lpp7c1k")))) (build-system emacs-build-system) (propagated-inputs (list emacs-xref)) - (home-page "http://elpa.gnu.org/packages/project.html") + (home-page "https://elpa.gnu.org/packages/project.html") (synopsis "Operations on the current project") (description "This library contains generic infrastructure for dealing with projects, @@ -1627,92 +1628,99 @@ replacement.") (license license:gpl3+)))) (define-public emacs-haskell-mode - (package - (name "emacs-haskell-mode") - (version "17.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/haskell/haskell-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0zxbacqzr84krmhqpvzndnvlcjh1gs1x20ys0dykgd7chyhci5j5")))) - (propagated-inputs - (list emacs-dash)) - (native-inputs - (list emacs-minimal emacs-el-search emacs-stream texinfo)) - (build-system gnu-build-system) - (arguments - (list - #:make-flags #~(list - (string-append "EMACS=" #$emacs-minimal "/bin/emacs")) - #:modules `((ice-9 match) - (srfi srfi-26) - ((guix build emacs-build-system) #:prefix emacs:) - ,@%gnu-build-system-modules) - #:imported-modules `(,@%gnu-build-system-modules - (guix build emacs-build-system) - (guix build emacs-utils)) - #:phases - #~(modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'pre-build - (lambda* (#:key inputs #:allow-other-keys) - (define (el-dir store-dir) - (match (find-files store-dir "\\.el$") - ((f1 f2 ...) (dirname f1)) - (_ ""))) - - (let ((sh (search-input-file inputs "/bin/sh"))) - (define emacs-prefix? (cut string-prefix? "emacs-" <>)) - - (setenv "SHELL" "sh") - (setenv "EMACSLOADPATH" - (string-concatenate - (map (match-lambda - (((? emacs-prefix? name) . dir) - (string-append (el-dir dir) ":")) - (_ "")) - inputs))) - (substitute* (find-files "." "\\.el") (("/bin/sh") sh))))) - (add-before 'check 'delete-failing-tests - ;; XXX: these tests require GHC executable, which would be a big - ;; native input. - (lambda _ - (with-directory-excursion "tests" - ;; File `haskell-indent-tests.el' fails with - ;; `haskell-indent-put-region-in-literate-2' - ;; on Emacs 27.1+ - ;; XXX: https://github.com/haskell/haskell-mode/issues/1714 - (for-each delete-file - '("haskell-indent-tests.el" - "haskell-customize-tests.el" - "inferior-haskell-tests.el"))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (el-dir (emacs:elpa-directory out)) - (doc (string-append - out "/share/doc/haskell-mode-" #$version)) - (info (string-append out "/share/info"))) - (define (copy-to-dir dir files) - (for-each (lambda (f) - (install-file f dir)) - files)) - - (with-directory-excursion "doc" - (invoke "makeinfo" "haskell-mode.texi") - (install-file "haskell-mode.info" info)) - (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md")) - (copy-to-dir el-dir (find-files "." "\\.elc?")))))))) - (home-page "https://github.com/haskell/haskell-mode") - (synopsis "Haskell mode for Emacs") - (description - "This is an Emacs mode for editing, debugging and developing Haskell + (let ((revision "0") + (commit "5a9f8072c7b9168f0a8409adf9d62a3e4ad4ea3d")) + (package + (name "emacs-haskell-mode") + (version (git-version "17.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/haskell/haskell-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0np1wrwdq7b9hpqpl9liampacnkx6diphyk8h2sbz2mfn9qr7pxs")))) + (propagated-inputs + (list emacs-dash)) + (native-inputs + (list emacs-minimal emacs-el-search emacs-stream texinfo)) + (build-system gnu-build-system) + (arguments + (list + #:make-flags #~(list + (string-append "EMACS=" #$emacs-minimal "/bin/emacs")) + #:modules `((ice-9 match) + (srfi srfi-26) + ((guix build emacs-build-system) #:prefix emacs:) + ,@%gnu-build-system-modules) + #:imported-modules `(,@%gnu-build-system-modules + (guix build emacs-build-system) + (guix build emacs-utils)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'pre-build + (lambda* (#:key inputs #:allow-other-keys) + (define (el-dir store-dir) + (match (find-files store-dir "\\.el$") + ((f1 f2 ...) (dirname f1)) + (_ ""))) + + (let ((sh (search-input-file inputs "/bin/sh"))) + (define emacs-prefix? (cut string-prefix? "emacs-" <>)) + + (setenv "SHELL" "sh") + (setenv "EMACSLOADPATH" + (string-concatenate + (map (match-lambda + (((? emacs-prefix? name) . dir) + (string-append (el-dir dir) ":")) + (_ "")) + inputs))) + (substitute* (find-files "." "\\.el") (("/bin/sh") sh))))) + (add-before 'check 'delete-failing-tests + ;; XXX: these tests require GHC executable, which would be a big + ;; native input. + (lambda _ + (with-directory-excursion "tests" + ;; File `haskell-indent-tests.el' fails with + ;; `haskell-indent-put-region-in-literate-2' + ;; on Emacs 27.1+ + ;; XXX: https://github.com/haskell/haskell-mode/issues/1714 + (for-each delete-file + '("haskell-indent-tests.el" + "haskell-customize-tests.el" + "inferior-haskell-tests.el")) + + ;; requires many external tools (e.g. git, hasktags) + (substitute* "haskell-mode-tests.el" + (("\\(ert-deftest haskell-generate-tags.*" all) + (string-append all " (skip-unless nil)")))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (el-dir (emacs:elpa-directory out)) + (doc (string-append + out "/share/doc/haskell-mode-" #$version)) + (info (string-append out "/share/info"))) + (define (copy-to-dir dir files) + (for-each (lambda (f) + (install-file f dir)) + files)) + + (with-directory-excursion "doc" + (invoke "makeinfo" "haskell-mode.texi") + (install-file "haskell-mode.info" info)) + (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md")) + (copy-to-dir el-dir (find-files "." "\\.elc?")))))))) + (home-page "https://github.com/haskell/haskell-mode") + (synopsis "Haskell mode for Emacs") + (description + "This is an Emacs mode for editing, debugging and developing Haskell programs.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-dante (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b") @@ -1746,47 +1754,44 @@ supports type hints, definition-jumping, completion, and more.") (license license:gpl3+)))) (define-public emacs-flycheck - ;; Last release version was more than 500 commits ago. - (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3") - (revision "2")) - (package - (name "emacs-flycheck") - (version (git-version "31" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/flycheck/flycheck/") - (commit commit))) - (sha256 - (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-dash)) - (native-inputs - (list emacs-shut-up)) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'change-flycheck-version - (lambda _ - (substitute* "flycheck.el" - (("\\(pkg-info-version-info 'flycheck\\)") - (string-append "\"" #$version "\"")))))) - ;; TODO: many failing tests - #:tests? #f - #:test-command - #~(list "emacs" "-Q" "--batch" - "-L" "." - "--load" "test/flycheck-test" - "--load" "test/run.el" - "-f" "flycheck-run-tests-main"))) - (home-page "https://www.flycheck.org") - (synopsis "On-the-fly syntax checking") - (description - "This package provides on-the-fly syntax checking for GNU Emacs. It is a + (package + (name "emacs-flycheck") + (version "32") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/flycheck/flycheck/") + (commit version))) + (sha256 + (base32 "0dx6wqxz1yfp4shas4yn6abqc8bz21ks3glcyzznm3xspjdaq21s")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-dash)) + (native-inputs + (list emacs-shut-up)) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'change-flycheck-version + (lambda _ + (substitute* "flycheck.el" + (("\\(pkg-info-version-info 'flycheck\\)") + (string-append "\"" #$version "\"")))))) + ;; TODO: many failing tests + #:tests? #f + #:test-command + #~(list "emacs" "-Q" "--batch" + "-L" "." + "--load" "test/flycheck-test" + "--load" "test/run.el" + "-f" "flycheck-run-tests-main"))) + (home-page "https://www.flycheck.org") + (synopsis "On-the-fly syntax checking") + (description + "This package provides on-the-fly syntax checking for GNU Emacs. It is a replacement for the older Flymake extension which is part of GNU Emacs, with many improvements and additional features. @@ -1794,7 +1799,7 @@ Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax checking for over 30 programming and markup languages with more than 70 different tools. It highlights errors and warnings inline in the buffer, and provides an optional IDE-like error list.") - (license license:gpl3+)))) ;+GFDLv1.3+ for the manual + (license license:gpl3+))) ;+GFDLv1.3+ for the manual (define-public emacs-flymake-flycheck (package @@ -2571,14 +2576,14 @@ directories or regex patterns.") (define-public emacs-bbdb (package (name "emacs-bbdb") - (version "3.2.1") + (version "3.2.2.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "bbdb-" version ".tar")) (sha256 - (base32 "01vsnifs47krq1srgdkk9agbv3p2fykl9nydr4nrfjxbqpnyh3ij")))) + (base32 "0bf20r5xhxln6z4qp8zrlln0303dkci2ydsr74pxcj08aqgk5xxf")))) (build-system emacs-build-system) (arguments ;; XXX: The following file cannot be byte-compiled, because et requires @@ -2897,14 +2902,14 @@ as a library for other Emacs packages.") (define-public emacs-auctex (package (name "emacs-auctex") - (version "13.1.1") + (version "13.1.3") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "auctex-" version ".tar")) (sha256 - (base32 "193sqq2wiq3lg99m8hifl9rjxdazpy638r99sqvmxmkfm98cr34r")))) + (base32 "0v9rxwz6ngnwrgvzgdki861s136gq30lqhy2gcd9q0a36gb6zhwk")))) (build-system emacs-build-system) ;; We use 'emacs' because AUCTeX requires dbus at compile time ;; ('emacs-minimal' does not provide dbus). @@ -6778,6 +6783,37 @@ tupfiles, such as rule definitions, user-defined variables, macros, flags, bin variables, and so on. The mode also allows you to execute Tup commands.") (license license:gpl3+))) +(define-public emacs-compat + (package + (name "emacs-compat") + (version "28.1.1.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~pkal/compat") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19abp29rnbkw91q0h2yqm2z7awzzjhci8h6v875g5ahvplrp6337")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-nadvice)) + (home-page "https://git.sr.ht/~pkal/compat") + (synopsis "Emacs Lisp Compatibility Library") + (description + "To allow for the usage of Emacs functions and macros that are defined +in newer versions of Emacs, @code{compat.el} provides definitions that +are installed ONLY if necessary. These reimplementations of functions +and macros are at least subsets of the actual implementations. Be +sure to read the documentation string to make sure. + +Not every function provided in newer versions of Emacs is provided +here. Some depend on new features from the core, others cannot be +implemented to a meaningful degree. The main audience for this +library are not regular users, but package maintainers. Therefore +commands and user options are usually not implemented here.") + (license license:gpl3+))) + (define-public emacs-company (package (name "emacs-company") @@ -7797,8 +7833,39 @@ using @code{python-isort}.") (base32 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1")))) (build-system emacs-build-system) - (native-inputs - (list emacs-mocker)) + (arguments + (list + #:imported-modules `(,@%emacs-build-system-modules + (guix build python-build-system)) + #:modules '((guix build emacs-build-system) + ((guix build python-build-system) #:prefix python:) + (guix build emacs-utils) + (guix build utils)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'ensure-no-mtimes-pre-1980 + (assoc-ref python:%standard-phases + 'ensure-no-mtimes-pre-1980)) + (add-after 'ensure-no-mtimes-pre-1980 'relax-python-requirements + (lambda _ + ;; Argparse should only be required for Python < 3.2 + ;; (see: https://github.com/tkf/emacs-jedi/issues/365). + (substitute* "setup.py" + ((".*argparse.*") "")))) + (add-after 'relax-python-requirements 'python:add-install-to-pythonpath + (assoc-ref python:%standard-phases 'add-install-to-pythonpath)) + (add-after 'python:add-install-to-pythonpath 'python:install + ;; This is needed to get the Python-built 'jediepcserver' command. + (assoc-ref python:%standard-phases 'install)) + (add-after 'python:install 'python:wrap + (assoc-ref python:%standard-phases 'wrap)) + (add-after 'python:wrap 'patch-jedi:server-command + (lambda* (#:key outputs #:allow-other-keys) + (emacs-substitute-variables "jedi-core.el" + ("jedi:server-command" + (search-input-file outputs "bin/jediepcserver")))))))) + (native-inputs (list emacs-mocker python-wrapper)) + (inputs (list python-wrapper python-epc python-jedi)) ;wrapped (propagated-inputs (list emacs-auto-complete emacs-python-environment emacs-epc)) (home-page "https://github.com/tkf/emacs-jedi") @@ -8499,7 +8566,7 @@ variants.") (define-public emacs-solarized-theme (package (name "emacs-solarized-theme") - (version "1.3.1") + (version "2.0.0") (source (origin (method git-fetch) @@ -8508,7 +8575,7 @@ variants.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g")))) + (base32 "17z6cj8ids88xj2i6zs1s0mxs0fhn3gr7g5nhhy8s8khnzmyy2vj")))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash)) @@ -8834,7 +8901,7 @@ them easier to distinguish from other, less important buffers.") (define-public emacs-embark (package (name "emacs-embark") - (version "0.16") + (version "0.17") (source (origin (method git-fetch) @@ -8842,7 +8909,7 @@ them easier to distinguish from other, less important buffers.") (url "https://github.com/oantolin/embark") (commit version))) (sha256 - (base32 "04xxwhh577aam0fqfmprxqaw0v1l6yidikr6chajcf16mf1wd2gv")) + (base32 "1s0ssf4q9kg4c5w87h2ypyvrhi31mz3s6k4h7pxi9a47lkccq8n1")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs @@ -8952,7 +9019,7 @@ style, or as multiple word prefixes.") (define-public emacs-consult (package (name "emacs-consult") - (version "0.17") + (version "0.18") (source (origin (method git-fetch) @@ -8960,9 +9027,10 @@ style, or as multiple word prefixes.") (url "https://github.com/minad/consult") (commit version))) (sha256 - (base32 "08l3h7b5j1q9nwcq660667b245qspl20ikhfdvd9k3g3n2p6p5kz")) + (base32 "0sy4rn1vjk1g50r8z14hzj8lds6s7ij2zkjqfi6mfash5il75wnq")) (file-name (git-file-name name version)))) (build-system emacs-build-system) + (propagated-inputs (list emacs-compat)) (home-page "https://github.com/minad/consult") (synopsis "Consulting completing-read") (description "This package provides various handy commands based on the @@ -9018,6 +9086,27 @@ replaced with the directory you choose.") and present results either as single emails or full trees.") (license license:gpl3+))) +(define-public emacs-consult-eglot + (package + (name "emacs-consult-eglot") + (version "0.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mohkale/consult-eglot") + (commit (string-append "v" version)))) + (sha256 + (base32 "1qxk1npxbf8m3g9spikgdxcf6mzjx6cwy3f5vn6zz5ksh14xw3sd")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-consult emacs-eglot)) + (home-page "https://github.com/mohkale/consult-eglot") + (synopsis "Consulting-read interface for eglot") + (description "This package acts as a parallel of consult-lsp for eglot and +provides a front-end interface for the workspace/symbols LSP procedure +call.") + (license license:gpl3+))) + (define-public emacs-marginalia (package (name "emacs-marginalia") @@ -9071,6 +9160,35 @@ features found in other packages it also brings many improvements as well as completely new features.") (license license:gpl3+))) +(define-public emacs-dumbparens + ;; There are no releases. + (let ((commit "18b668772f25e5f7b62c0a000b8169eaf7515057") + (revision "0")) + (package + (name "emacs-dumbparens") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/raxod502/dumbparens") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xv2yzjzq2450z007jppf86knnwzb2s3sxvqyk1yp6qs9mgrmnyp")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "make" "test"))) + (home-page "https://github.com/raxod502/dumbparens/") + (synopsis "Minor mode that provides improvements on Smartparens") + (description + "@code{emacs-dumbparens} is a minor mode for Emacs that deals with parens +pairs and doesn't try to be smart about it.") + (license license:expat)))) + (define-public emacs-highlight-symbol ;; We prefer a more recent commit that provides an option to squelch ;; echo-area alerts that can drown out useful information like eldoc @@ -9982,8 +10100,9 @@ state and will work even without lispy being enabled.") (license license:gpl3+)))) (define-public emacs-lpy - (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766") - (revision "3")) + ;; There is no proper release/tag. + (let ((commit "076ce9acb68f6ac1b39127b634a91ffd865d13d8") + (revision "4")) (package (name "emacs-lpy") (version (git-version "0.1.0" revision commit)) @@ -9995,7 +10114,7 @@ state and will work even without lispy being enabled.") (commit commit))) (sha256 (base32 - "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas")) + "10sab50wmr3zn7jgzx93201ymhmacqacn3m2qllsqkfw2gpsi6dn")) (file-name (git-file-name name version)))) (propagated-inputs (list emacs-zoutline emacs-lispy)) @@ -11575,7 +11694,7 @@ Emacs.") (define-public emacs-web-mode (package (name "emacs-web-mode") - (version "17") + (version "17.2.1") (source (origin (method git-fetch) @@ -11584,7 +11703,7 @@ Emacs.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk")))) + (base32 "0sd2ysysn8x4iwz2fhnvh8knr3pdqgkvhkhsl948smmfl0dwj42f")))) (build-system emacs-build-system) (synopsis "Major mode for editing web templates") (description "Web mode is an Emacs major mode for editing web templates @@ -16006,8 +16125,8 @@ which avoids some of the issues with using Emacs’s built-in Url library.") (license license:gpl3+))) (define-public emacs-ement - (let ((commit "c951737dc855604aba389166bb0e7366afadc533") - (revision "1")) + (let ((commit "45b7882c8a8f28eb59113f78db0e79918f2c58ee") + (revision "2")) (package (name "emacs-ement") (version (git-version "0.1-pre" revision commit)) @@ -16019,12 +16138,15 @@ which avoids some of the issues with using Emacs’s built-in Url library.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "00iwwz4hzg4g59wrb5df6snqz3ppvrsadhfp61w1pa8gvg2z9bvy")))) + (base32 "1f79h9l7chazan7kh2g73banqim5p4gz2nyx3cvp9jjfz32c4k46")))) (build-system emacs-build-system) (arguments `(#:emacs ,emacs)) ;need libxml support (propagated-inputs - (list emacs-plz emacs-ts)) + (list emacs-plz + emacs-svg-lib + emacs-taxy + emacs-ts)) (home-page "https://github.com/alphapapa/ement.el") (synopsis "Matrix client for Emacs") (description "Ement.el is a Matrix client for Emacs.") @@ -16359,8 +16481,8 @@ key. Optionally, a mouse pop-up can be added by binding (license license:gpl3+))) (define-public emacs-idris-mode - (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59") - (revision "0")) + (let ((commit "9bc7697406f719258d93835df3c1761efbfecaa7") + (revision "1")) (package (name "emacs-idris-mode") (version (git-version "1.0" revision commit)) @@ -16373,7 +16495,7 @@ key. Optionally, a mouse pop-up can be added by binding (file-name (git-file-name name commit)) (sha256 (base32 - "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1")))) + "1d1f7kx0fw632js7qd1sra5wbpwyamcqs5wpzhyynmr5ybb0vyl7")))) (build-system emacs-build-system) (propagated-inputs (list emacs-prop-menu)) @@ -26600,14 +26722,14 @@ well as an option for visually flashing evaluated s-expressions.") (define-public emacs-tramp (package (name "emacs-tramp") - (version "2.5.2.2") + (version "2.5.2.5") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "tramp-" version ".tar")) (sha256 - (base32 "104nn6xdmcviqqv4cx5llhwj1sh4q04w3h9s8gimmi2kg0z8s36r")))) + (base32 "05f59x7jl4m187y2cidhnfz7p8q85gav4xpipazfvm5dicxz4j7c")))) (build-system emacs-build-system) (arguments (list @@ -27248,7 +27370,7 @@ it forcibly (define-public emacs-elpher (package (name "emacs-elpher") - (version "3.3.3") + (version "3.4.1") (source (origin (method git-fetch) @@ -27257,7 +27379,7 @@ it forcibly (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "166fjq9d883hifa35zklyjrm4c575nd6zxdx7akbwibrgwi65bl0")))) + (base32 "0dv71zc95m5sa4824vk3d1xk726nh2v50i0yp6w3ydfzzsfph6j6")))) (build-system emacs-build-system) (arguments (list @@ -31029,7 +31151,7 @@ and preferred services can easily be configured.") (define-public emacs-vertico (package (name "emacs-vertico") - (version "0.23") + (version "0.24") (source (origin (method git-fetch) @@ -31038,7 +31160,7 @@ and preferred services can easily be configured.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1lyvnpqplwdawlplriz0rphsjsaqdcbc3nwzpd7bs9qghpsfb56z")))) + (base32 "03p9rf80jnralxpydvxi88igs0r6qa6v41xf1fafwgsf235b49yi")))) (build-system emacs-build-system) (arguments `(#:phases @@ -31205,6 +31327,30 @@ to the @url{https://multitran.com} online dictionary.") @command{python} buffers.") (license license:gpl3))) +(define-public emacs-code-cells + ;; No tagged release upstream + (let ((commit "8660bdeedee360e5eb632f1eb1356eb09d7dfbee") + (revision "0")) + (package + (name "emacs-code-cells") + (version (git-version "0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/astoff/code-cells.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mvfsdlhc3znc0d2p8vm7apkbpvbs688wmwvd0sms33qly53f546")))) + (build-system emacs-build-system) + (home-page "https://github.com/astoff/code-cells.el") + (synopsis "Emacs utilities for code split into cells, including Jupyter +notebooks") + (description "This package lets you efficiently navigate, edit and +execute code split into cells according to certain magic comments.") + (license license:gpl3+)))) + (define-public emacs-kibit-helper (package (name "emacs-kibit-helper") @@ -31398,14 +31544,14 @@ are prefixed with @code{seq-} and work on lists, strings, and vectors.") (define-public emacs-setup (package (name "emacs-setup") - (version "1.2.0") + (version "1.3.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/setup-" version ".tar")) (sha256 - (base32 "1fyzkm42gsvsjpk3vahfb7asfldarixm0wsw3g66q3ad0r7cbjnz")))) + (base32 "0r13ry73jm31j8fq7v1sh0k113fr4blfkiz85696bdpah2pnca87")))) (build-system emacs-build-system) (home-page "https://git.sr.ht/~pkal/setup") (synopsis "Helpful configuration macro") @@ -31565,6 +31711,60 @@ headlines, keywords, tables and source blocks.") "@code{emacs-pyimport} manages python imports from Emacs via @code{python-pyflakes}.") (license license:gpl3+)))) ; License is in pyimport.el +(define-public emacs-straight-el + (let ((commit "4517e118ee43f849f708025dbb2cf4f281793121") + (revision "0")) + (package + (name "emacs-straight-el") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/raxod502/straight.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0idhgh203rac9c046286gir9rq0lgnlllzj4b4hrjpd3idg9v0r8")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command + #~(list "emacs" "-Q" "--batch" + "-L" "." + "--load" "ert" + "--load" "tests/straight-test.el" + "--eval" "(progn (require 'straight-ert-print-hack) (ert-run-tests-batch-and-exit))") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-git-executable + (lambda* (#:key inputs #:allow-other-keys) + (make-file-writable "straight.el") + (substitute* "straight.el" + (("\"git\"") + (string-append "\"" + (search-input-file inputs "/bin/git") + "\""))))) + (add-after 'check 'delete-tests + ;; "tests" directory includes bogus ".el" files that can make + ;; `patch-el-files' phase fail. + (lambda _ + (delete-file-recursively "tests")))))) + (native-inputs + (list texinfo)) + (inputs + (list git)) + (propagated-inputs + (list emacs-magit)) + (home-page "https://github.com/raxod502/straight.el/") + (synopsis "Purely functional package manager for the Emacs hacker") + (description + "@code{emacs-straight-el} is a purely functional package manager for the Emacs +hacker.") + (license license:expat)))) + (define-public emacs-osm (package (name "emacs-osm") diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 31b5c04324..0de4b7a5d5 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -106,7 +106,7 @@ ;; Make sure Tramp looks for binaries in the right places on ;; remote Guix System machines, where 'getconf PATH' returns ;; something bogus. - (substitute* "net/tramp-sh.el" + (substitute* "net/tramp.el" ;; Patch the line after "(defcustom tramp-remote-path". (("\\(tramp-default-remote-path") (format #f "(tramp-default-remote-path ~s ~s ~s ~s " diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 190af4edfb..fe8ab13298 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -33,6 +33,7 @@ ;;; Copyright © 2022 Malte Frank Gerdes <malte.f.gerdes@gmail.com> ;;; Copyright © 2022 Konstantinos Agiannis <agiannis.kon@gmail.com> ;;; Copyright © 2022 Greg Hogan <code@greghogan.com> +;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -942,7 +943,7 @@ Emacs).") (define-public kicad (package (name "kicad") - (version "6.0.5") + (version "6.0.6") (source (origin (method git-fetch) (uri (git-reference @@ -950,7 +951,7 @@ Emacs).") (commit version))) (sha256 (base32 - "19mg672h1gjdvnkp13cpkhk67xpwms72y4gd6g8983fcsxr8nq23")) + "0cb9zba812dlmn2w27s1q38mjpfdwhv0nnbilwsxchpvwg8j4k2j")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -1057,7 +1058,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.") (file-name (git-file-name name version)) (sha256 (base32 - "190pnrf2cy06wnnskyb4fqj4a4nfmz17i3y79rnrz3j62h3fmg0w")))) + "1kxv0j3nx6zn45znrhqq6bdqrsd60mgmgvr1gjv5p8g3cbkkslrx")))) (build-system cmake-build-system) (arguments `(#:configure-flags (list "-DBUILD_FORMATS=html") @@ -1091,7 +1092,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.") (file-name (git-file-name name version)) (sha256 (base32 - "1dhgdp08ah08fc5nvwkqmgpl2any9vgy1gykmyzsd4dl8hhvznh5")))) + "02z3vqhz1rlf57zi8vyrlxvvdl1hpsh447p41qdgcpn5dyjycb9d")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no tests exist @@ -1120,7 +1121,7 @@ libraries.") (file-name (git-file-name name version)) (sha256 (base32 - "0sxzd4dr1g12ck8b2wsyg9r2s1j3472nksrjrwpzjdyfc8rqbjai")))) + "1phynxisha2pq2knbx5l1hkdz1bmjm0qxl3lcb4ab82h8d35r37c")))) (synopsis "Official KiCad footprint libraries") (description "This package contains the official KiCad footprint libraries."))) @@ -1137,7 +1138,7 @@ libraries.") (file-name (git-file-name name version)) (sha256 (base32 - "00i6mybg3pprzb283b26z5b2g7a8sbghlvc0fwk9gwrp3wz1yqzc")))) + "0ci9gxbpfnfqwah95ki4qcwlca78s1z6s7hckisnp58a1cm9siya")))) (synopsis "Official KiCad 3D model libraries") (description "This package contains the official KiCad 3D model libraries."))) @@ -1154,7 +1155,7 @@ libraries.") (file-name (git-file-name name version)) (sha256 (base32 - "13h9ly6amiwm7zkwa2fd9730kh295ls8j95fszlfjp9rczv2yyzm")))) + "08zxh83fbygh1x2jhca8nrp3f9kihf7kmg65qmyp95wvps4p5h8v")))) (synopsis "Official KiCad project and worksheet templates") (description "This package contains the official KiCad project and worksheet templates."))) @@ -3169,7 +3170,7 @@ visualization, matrix manipulation.") (define-public prusa-slicer (package (name "prusa-slicer") - (version "2.4.1") + (version "2.4.2") (source (origin (method git-fetch) @@ -3178,7 +3179,7 @@ visualization, matrix manipulation.") (url "https://github.com/prusa3d/PrusaSlicer") (commit (string-append "version_" version)))) (file-name (git-file-name name version)) - (sha256 (base32 "0q1m8fcz39s03r9csq411ss8vbbpjx45icj8vgkysy8hqgqz3gz0")) + (sha256 (base32 "17p56f0zmiryy8k4da02in1l6yxniz286gf9yz8s1gaz5ksqj4af")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 53b58aec60..b3fc881397 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -44,7 +44,7 @@ (define-public erlang (package (name "erlang") - (version "24.3.4") + (version "25.0.2") (source (origin (method git-fetch) ;; The tarball from http://erlang.org/download contains many @@ -56,7 +56,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0rrnppglh261x81w9bzmh6wvxy8xjqiiw3nvv4q2214pmc1pxilr")) + "0xgp035vy0yy5m155rpmf22m6rq7pvw3m65s5mz22bcpj2rw4b0x")) (patches (search-patches "erlang-man-path.patch")))) (build-system gnu-build-system) (native-inputs @@ -70,7 +70,7 @@ (version-major+minor version) ".tar.gz")) (sha256 (base32 - "057nrw8563nyd98l5zp9ffi3npw6h3jx06j1hv110wzpxqi25bb8")))))) + "17ap4kawlbqmcl13c543gh54p1ng8ivxmbn6lbbij07k81ry5p1y")))))) (inputs (list ncurses openssl wxwidgets)) (propagated-inputs diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 216e4cfcda..9f6ca10831 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -1146,7 +1146,7 @@ with the included @command{xfstests-check} helper.") (define-public zfs (package (name "zfs") - (version "2.1.4") + (version "2.1.5") (outputs '("out" "module" "src")) (source (origin @@ -1155,7 +1155,7 @@ with the included @command{xfstests-check} helper.") "/download/zfs-" version "/zfs-" version ".tar.gz")) (sha256 - (base32 "1xmcy4f0damf1pkb1sy1339ir1jkky0dwzd8vhwgc1pqjgac0liv")))) + (base32 "0371j5k28cymqngfl76dfxzggvdf8n0ssij37350gzs4bhg084qr")))) (build-system linux-module-build-system) (arguments (list diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index eaa11b1c81..1630c80925 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -212,43 +212,31 @@ Cyrillic, Canadian Syllabics and most Latin based languages are supported.") (version "0.303") (source (origin - (method url-fetch/zipbomb) - (uri (string-append "https://gitlab.gnome.org/GNOME/cantarell-fonts/-/" - "jobs/1515399/artifacts/download")) - (file-name (string-append name "-" version "-static")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.gnome.org/GNOME/cantarell-fonts") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1dz551xrrhx6l40j57ksk2alllrihghg4947z1r88dpcq3snpn1s")))) - (build-system font-build-system) + (base32 + "1d1ay0fdqchk0wa5yqxis2c98imvzsbbd2kjv0x8sk4fm419847b")))) + (build-system meson-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-source - ;; The actual OTF fonts are prebuilt (building them requires at least - ;; the currently unpackaged psautohint and its numerous dependencies; - ;; TODO), but unpack the source so that COPYING is installed later. - (lambda* (#:key outputs #:allow-other-keys) - (invoke "tar" "--strip-components=1" "-xvf" - (string-append "build/meson-dist/cantarell-fonts-" - ,version ".tar.xz")))) - (add-after 'unpack 'unpack-variable-font - (lambda* (#:key inputs #:allow-other-keys) - (let ((variable-font (assoc-ref inputs "variable-font"))) - (copy-recursively (string-append variable-font "/prebuilt") - "."))))))) + (list #:configure-flags #~(list "-Dbuildstatics=true"))) (native-inputs - `(("variable-font" - ,(origin - (method url-fetch/zipbomb) - (uri (string-append "https://gitlab.gnome.org/GNOME/cantarell-fonts/-/" - "jobs/1515398/artifacts/download")) - (file-name (string-append name "-" version "-variable")) - (sha256 - (base32 "0z93pbkxidsx3y98rsl2jm2qpvxv5pj0w870xhnsciglw6pc9a9i")))) - ("unzip" ,unzip))) + (list gettext-minimal + psautohint + python + python-cffsubr + python-fontmath + python-statmake + python-ufo2ft)) (home-page "https://wiki.gnome.org/Projects/CantarellFonts") (synopsis "Cantarell sans-serif typeface") (description "The Cantarell font family is a contemporary Humanist -sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.") +sans-serif designed for on-screen reading. It is used by GNOME@tie{}3. +This package contains both the non-variable as well as the variable versions +of the font.") (license license:silofl1.1))) (define-public font-lato diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index c2686c380f..123d477838 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -1396,6 +1396,79 @@ generate bitmaps.") `(("python" ,python-2) ,@(alist-delete "python" (package-inputs fontforge)))))) +(define-public python-statmake + (package + (name "python-statmake") + (version "0.5.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/daltonmaag/statmake") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qavzspxhwnaayj5mxq6ncjjziggabxj157ls04h2rdrpq167706")))) + (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + ;; XXX: PEP 517 manual build copied from python-isort. + (add-after 'unpack 'adjust-for-older-attrs + ;; Our older attrs package is using the 'attr' rather than 'attrs' + ;; namespace. + ;; TODO: Remove after python-attrs is updated to >= 21.4.0. + (lambda _ + (substitute* "pyproject.toml" + (("attrs = \">=21.3\"") + "attrs = \">=21.2\"")) + (substitute* (find-files "." "\\.py$") + (("from attrs\\b") + "from attr") + (("import attrs") + "import attr") + (("@attrs") + "@attr") + (("\\battrs\\.") + "attr.")))) + (replace 'build + (lambda _ + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (replace 'install + (lambda _ + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output whl)))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv" "tests" + ;;"-n" (number->string (parallel-job-count)) + ;; This test requires orjson, which needs the maturin + ;; build system and new Rust dependencies. + ;;"--ignore" "tests/test_preconf.py" + ))))))) + (native-inputs + (list python-poetry-core + python-pypa-build + python-pytest + python-ufo2ft)) + (propagated-inputs + (list python-attrs + python-cattrs + python-fonttools)) + (home-page "https://github.com/daltonmaag/statmake") + (synopsis "Apply OpenType STAT information to a variable font") + (description + "@command{statmake} takes a user-written Stylespace that defines +@url{https://docs.microsoft.com/en-us/typography/opentype/spec/stat, OpenType +STAT information} for an entire font family and then (potentially subsets and) +applies it to a specific variable font. This spares users from having to deal +with @url{https://github.com/fonttools/fonttools/, raw TTX dumps} and juggling +with @samp{nameIDs}.") + (license license:expat))) + (define-public python-ufolib2 (package (name "python-ufolib2") diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 36b792ccf0..adb2212610 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -31,6 +31,7 @@ ;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de> ;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> +;;; Copyright © 2022 muradm <mail@muradm.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -704,6 +705,32 @@ the org.freedesktop.login1 interface over the system bus, allowing other parts of a the system to know what users are logged in, and where.") (license license:lgpl2.1+))) +(define-public basu + (package + (name "basu") + (version "0.2.0") + (home-page "https://git.sr.ht/~emersion/basu") + (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 "0h23n7wg18xc7xwldca18wi00iajyliixwicqyvv38qx831d8q18")))) + (build-system meson-build-system) + (native-inputs + (list pkg-config python gperf)) + (inputs + (list libcap)) + (synopsis "The sd-bus library, extracted from systemd") + (description "Some projects rely on the sd-bus library for DBus support. +However not all systems have systemd or elogind installed. +This library provides just sd-bus (and the busctl utility).") + (license license:lgpl2.1+))) + (define-public localed ;; XXX: This package is extracted from systemd but we retain so little of it ;; that it would make more sense to maintain a fork of the bits we need. diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index 3f17dcf407..7a69e3b4e2 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -177,14 +177,14 @@ as required.") (define-public libfilezilla (package (name "libfilezilla") - (version "0.36.0") + (version "0.37.2") (source (origin (method url-fetch) (uri (string-append "https://download.filezilla-project.org/" "libfilezilla/libfilezilla-" version ".tar.bz2")) (sha256 - (base32 "0wm8acwbrsblilfwj5asxr26gy8grg175j91df1bryz7xlc1q9y0")))) + (base32 "1mg2zqmpkkcimx6kq3a1ab26v515zzxw2s8rwhmajsv4cgp404g5")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -217,14 +217,14 @@ output. (define-public filezilla (package (name "filezilla") - (version "3.58.0") + (version "3.60.1") (source (origin (method url-fetch) (uri (string-append "https://download.filezilla-project.org/client/" "FileZilla_" version "_src.tar.bz2")) (sha256 - (base32 "122x72rvd178y2rffvidyvzr33kf325q2rk4l2x44xqzw1r7zznh")))) + (base32 "1bv643abf8jai552j9fqcl4i54h1yrs5hgn6w0w1ibwccdinryc1")))) (build-system gnu-build-system) (arguments ;; Don't let filezilla phone home to check for updates. diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 5fc3159136..3682368c03 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -1101,6 +1101,14 @@ provides the GNU compiler for the Go programming language.")) (custom-gcc gcc-10 "gcc-objc" '("objc") %objc-search-paths)) +(define-public gcc-objc-11 + (custom-gcc gcc-11 "gcc-objc" '("objc") + %objc-search-paths)) + +(define-public gcc-objc-12 + (custom-gcc gcc-12 "gcc-objc" '("objc") + %objc-search-paths)) + (define-public gcc-objc gcc-objc-10) (define %objc++-search-paths @@ -1143,6 +1151,14 @@ provides the GNU compiler for the Go programming language.")) (custom-gcc gcc-10 "gcc-objc++" '("obj-c++") %objc++-search-paths)) +(define-public gcc-objc++-11 + (custom-gcc gcc-11 "gcc-objc++" '("obj-c++") + %objc++-search-paths)) + +(define-public gcc-objc++-12 + (custom-gcc gcc-12 "gcc-objc++" '("obj-c++") + %objc++-search-paths)) + (define-public gcc-objc++ gcc-objc++-10) (define (make-libstdc++-doc gcc) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 7b29c55088..2e737373a8 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2021 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2021 Nikolay Korotkiy <sikmir@disroot.org> +;;; Copyright © 2022 Roman Scherer <roman.scherer@burningswell.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -113,6 +114,7 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages textutils) #:use-module (gnu packages time) + #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages webkit) #:use-module (gnu packages wxwidgets) @@ -914,7 +916,7 @@ development.") (define-public gdal (package (name "gdal") - (version "3.3.3") + (version "3.5.0") (source (origin (method url-fetch) (uri (string-append @@ -922,7 +924,7 @@ development.") version ".tar.gz")) (sha256 (base32 - "0nk09lws1hk873yn5f4wzqfvr82gm4hw3gq8w9g1h0kvf6j5x4i8")) + "0h7dgjx8nk3dd17wwqm2yjnaqciyrd2mz9gcjswpcnmap09wbzrs")) (modules '((guix build utils))) (snippet `(begin @@ -946,27 +948,23 @@ development.") (string-append option "=" (assoc-ref %build-inputs input)))))) (list - ;; TODO: --with-pcidsk, --with-pcraster - (with "--with-freexl" "freexl") - (with "--with-libjson-c" "json-c") - (with "--with-png" "libpng") - (with "--with-webp" "libwebp") - (with "--with-gif" "giflib") - (with "--with-jpeg" "libjpeg-turbo") - (with "--with-libtiff" "libtiff") - (with "--with-geotiff" "libgeotiff") - (with "--with-libz" "zlib") - (with "--with-expat" "expat") - (with "--with-sqlite3" "sqlite") - "--with-pcre")) - #:phases - (modify-phases %standard-phases - (add-before 'build 'fix-path - (lambda _ - (substitute* "frmts/mrf/mrf_band.cpp" - (("\"../zlib/zlib.h\"") "<zlib.h>"))))))) + ;; TODO: --with-pcidsk, --with-pcraster + (with "--with-expat" "expat") + (with "--with-freexl" "freexl") + (with "--with-geotiff" "libgeotiff") + (with "--with-gif" "giflib") + (with "--with-jpeg" "libjpeg-turbo") + (with "--with-libjson-c" "json-c") + (with "--with-libtiff" "libtiff") + (with "--with-libz" "zlib") + (with "--with-png" "libpng") + (with "--with-sqlite3" "sqlite") + (with "--with-webp" "libwebp") + "--without-jpeg12" + "--with-pcre")))) (inputs - (list expat + (list curl + expat freexl geos giflib @@ -977,6 +975,7 @@ development.") libtiff libwebp netcdf + openssl pcre postgresql ; libpq proj @@ -1147,6 +1146,7 @@ Shapely capabilities json-c libjpeg-turbo libxml2 + openssl pcre postgresql protobuf-c @@ -2485,6 +2485,7 @@ growing set of geoscientific methods.") "PyQgsProviderConnectionSpatialite" "PyQgsPythonProvider" "PyQgsRasterLayer" + "PyQgsRasterResampler" "PyQgsRulebasedRenderer" "PyQgsSelectiveMasking" "PyQgsSettings" diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 9e5d319291..da316186d5 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2021 Attila Lendvai <attila@lendvai.name> ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com> ;;; Copyright © 2022 Eric Bavier <bavier@posteo.net> +;;; Copyright © 2022 Sughosha <sughosha@proton.me> ;;; ;;; This file is part of GNU Guix. ;;; @@ -985,6 +986,102 @@ animation of closing windowed applications.") GNOME Shell, including the top panel, dash and overview.") (license license:gpl3))) +(define-public gnome-shell-extension-radio + (package + (name "gnome-shell-extension-radio") + (version "19") + (source (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/hslbck/gnome-shell-extension-radio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qsi6c57hxh4jqdw18knm06601lhag6jdbvzg0r79aa9572zy8a0")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan #~'(("radio@hslbck.gmail.com" + "/share/gnome-shell/extensions/")) + #:phases + #~(modify-phases %standard-phases + (add-before 'install 'glib-compile-schemas + (lambda _ + (invoke "glib-compile-schemas" + "radio@hslbck.gmail.com/schemas")))))) + (native-inputs (list `(,glib "bin"))) + (home-page "https://github.com/hslbck/gnome-shell-extension-radio") + (synopsis "Internet radio for GNOME Shell") + (description "This extension implements an internet radio player +directly inside GNOME Shell. It can manage stations and play streams.") + (license license:gpl3+))) + +(define-public gnome-shell-extension-sound-output-device-chooser + (package + (name "gnome-shell-extension-sound-output-device-chooser") + (version "43") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kgshank/gse-sound-output-device-chooser") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qk6ypyqbv8zwwlky6cgk9hgp1zh32jmzw4wza200g4v94ifkwm9")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ; no check target + #:make-flags #~(list (string-append "INSTALL_DIR=" + #$output + "/share/gnome-shell/extensions")) + #:phases + #~(modify-phases %standard-phases (delete 'configure)))) + (native-inputs (list gettext-minimal `(,glib "bin"))) + (inputs (list python)) + (home-page + "https://extensions.gnome.org/extension/906/sound-output-device-chooser") + (synopsis "Sound output chooser for GNOME Shell") + (description "This extension shows a list of sound output and input devices +in the status menu below the volume slider. Various active ports like HDMI, +Speakers etc. of the same device are also displayed for selection.") + (license license:gpl3+))) + +(define-public gnome-shell-extension-transparent-window + (let ((commit "cc9bc70c192dd565fa6f1d1b28d9a20f99684f2a") + (revision "45")) + (package + (name "gnome-shell-extension-transparent-window") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/pbxqdown/" + "gnome-shell-extension-transparent-window")) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1f9iqqjpmmylqz0ws8cy5rs475bwzi7jy44q9ip44ig2acz2wxzp")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan + #~'(("." + #$(string-append "/share/gnome-shell/extensions" + "/transparent-window@pbxqdown.github.com"))))) + (home-page + "https://github.com/pbxqdown/gnome-shell-extension-transparent-window") + (synopsis "Change the opacity of windows in GNOME Shell") + (description "This extension adds keybindings to change the opacity +of windows.") + (license license:expat)))) + (define-public arc-theme (package (name "arc-theme") diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index 3dc6eac33a..734f24d6c3 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -461,8 +461,8 @@ contains supporting code for evaluation and parameter tuning.") (lambda () (let ((python-version ,(version-major+minor (package-version python)))) (format #t "\ -PYTHONCFLAGS =-I~a/include/python~am/ -I~a/lib/python~a/site-packages/numpy/core/include -LIBS = -lpython~am -lfaiss +PYTHONCFLAGS =-I~a/include/python~a/ -I~a/lib/python~a/site-packages/numpy/core/include +LIBS = -lpython~a -lfaiss SHAREDFLAGS = -shared -fopenmp CXXFLAGS = -fpermissive -fopenmp -fPIC CPUFLAGS = ~{~a ~}~%" diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 0b66d9442f..c193be1efb 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -30,6 +30,7 @@ ;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022 Zheng Junjie <873216071@qq.com> +;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2054,3 +2055,68 @@ and build scripts for the OpenXR loader.") such as VR and AR on mobile, PC/desktop, and any other device. Monado aims to be a complete and conforming implementation of the OpenXR API made by Khronos.") (license license:boost1.0))) + +(define-public azpainter + (package + (name "azpainter") + (version "3.0.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/azelpg/azpainter") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1iplp3p8pw9q44kb43hrk89sv2aff6bdy9fk58j2v6k5lqbk6kvf")))) + (build-system gnu-build-system) ;actually a home grown build system + (arguments + (list #:tests? #f + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "./configure" + (string-append "--prefix=" + #$output)))) + (replace 'build + (lambda* (#:key parallel-build? #:allow-other-keys) + (let ((job-count (if parallel-build? + (number->string (parallel-job-count)) + "1"))) + (invoke "ninja" "-j" job-count "-C" "build")))) + (add-before 'install 'disable-cache-generation + (lambda _ + (setenv "DESTDIR" "/") #t)) + (replace 'install + (lambda _ + (invoke "ninja" "-C" "build" "install")))))) + (inputs (list fontconfig + freetype + libjpeg-turbo + libpng + libtiff + libwebp + libx11 + libxcursor + libxext + libxi + zlib)) + (native-inputs (list ninja pkg-config)) + (home-page "http://azsky2.html.xdomain.jp/soft/azpainter.html") + (synopsis "Paint software for editing illustrations and images") + (description + "AzPainter is a lightweight full color painting application for editing +illustrations and images. + +Features include: +@itemize +@item Layers +@item Many artistic filters +@item Good range of selection tools +@item Pen pressure support with automatic brush size adjustment +@item Support for 16-bit color images with transparency (RGBA) +@item Support for image formats like PSD, PNG, JPEG, TIFF, WebP +@end itemize +") + (license license:gpl3+))) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 2ed6617fd2..2456509b97 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2015, 2017 Christine Lemmer-Webber <cwebber@dustycloud.org> +;;; Copyright © 2015, 2017, 2022 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com> @@ -496,34 +496,31 @@ and then run @command{scm example.scm}.") ,@(package-arguments guile2.0-bash))))) (define-public guile-8sync - (package - (name "guile-8sync") - (version "0.4.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/8sync/8sync-" version - ".tar.gz")) - (sha256 - (base32 - "031wm13srak3wsnll7j2mbbi29g1pcm4swdb71ds9yn567pn20qw")))) - (build-system gnu-build-system) - (native-inputs (list autoconf automake guile-2.2 pkg-config texinfo)) - (arguments - `(#:phases (modify-phases %standard-phases - (add-before 'configure 'setenv - (lambda _ - ;; quiet warnings - (setenv "GUILE_AUTO_COMPILE" "0") - #t))))) - (home-page "https://gnu.org/s/8sync/") - (synopsis "Asynchronous actor model library for Guile") - (description - "GNU 8sync (pronounced \"eight-sync\") is an asynchronous programming -library for GNU Guile based on the actor model. - -Note that 8sync is only available for Guile 2.2.") - (properties '((upstream-name . "8sync"))) - (license license:lgpl3+))) + (let ((commit "183b4f02e68279d4984e79b79e06bfcf1861fcbf") (revision "0")) + (package + (name "guile-8sync") + (version (git-version "0.4.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (commit commit) + (url "https://git.savannah.gnu.org/git/8sync.git"))) + (sha256 + (base32 + "0r22kxasv1zqnf1ykzyx6c226qxn1wgjb1gc54526bid24x508ij")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (native-inputs (list autoconf automake guile-3.0 pkg-config texinfo)) + (arguments + (list #:make-flags + #~(list "GUILE_AUTO_COMPILE=0"))) + (home-page "https://gnu.org/s/8sync/") + (synopsis "Asynchronous actor model library for Guile") + (description + "GNU 8sync (pronounced \"eight-sync\") is an asynchronous programming +library for GNU Guile based on the actor model.") + (properties '((upstream-name . "8sync"))) + (license license:lgpl3+)))) (define-public guile-daemon (package @@ -5103,3 +5100,46 @@ Protocol (TAP). It comes with an experimental harness (tap-harness).") termios API is used. GNU Guile doesn't have an interface for that built in. This module implements this interface by use of Guile's dynamic FFI.") (license license:bsd-2))) + +(define-public guile-goblins + (package + (name "guile-goblins") + (version "0.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/spritely/guile-goblins/") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "1mmyykh79jwhrfgnhhw94aw7a8m6qw249kj7k60ynj16mcfm5iyy")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list "GUILE_AUTO_COMPILE=0"))) + (native-inputs + (list autoconf automake pkg-config texinfo)) + (inputs (list guile-3.0)) + (propagated-inputs + (list guile-fibers guile-gcrypt)) + (home-page "https://spritely.institute/goblins") + (synopsis "Distributed programming environment for Guile") + ;; In guile-goblins 0.9, OCapN support will be added (it already + ;; exists in racket-goblins). At that point we should add the + ;; following to this description: + ;; + ;; Goblins allows for cooperation between networked programs + ;; in a mutually suspicious network through OCapN, the Object + ;; Capability Network. This includes collaboration across + ;; runtimes; for instance, programs written in the Guile and Racket + ;; versions of Goblins are able to speak to each other. + (description + "@code{guile-goblins} is the Guile version of +@url{https://spritely.institute/goblins, Spritely Goblins}, +a transactional, distributed programming environment following object +capability security designs. Goblins is a general toolkit, and also +the core layer of Spritely's work to support healthy distributed +networked communities.") + (license license:asl2.0))) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 63aed09a9b..8ba4711ca0 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -650,14 +650,14 @@ specification. These are the main features: (package (inherit guile-json-3) (name "guile-json") - (version "4.5.2") + (version "4.7.1") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/guile-json/guile-json-" version ".tar.gz")) (sha256 (base32 - "0cqr0ljqmzlc2bwrapcsmcgxg147h66mcxf23824ri5i6vn4dc0s")))))) + "0hv8jjb6wdhvfrprwdi36125sci1ip4zfflv79hqlz7nh0irld65")))))) (define-public guile2.2-json (package-for-guile-2.2 guile-json-4)) diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index 1471c28fa2..acc3fb3059 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -34,23 +34,34 @@ #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) + #:use-module (gnu packages avahi) + #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages compression) #:use-module (gnu packages check) #:use-module (gnu packages cpp) #:use-module (gnu packages crypto) + #:use-module (gnu packages cups) #:use-module (gnu packages curl) + #:use-module (gnu packages debian) + #:use-module (gnu packages disk) #:use-module (gnu packages documentation) #:use-module (gnu packages flex) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages guile) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages lxqt) + #:use-module (gnu packages package-management) #:use-module (gnu packages ncurses) + #:use-module (gnu packages networking) #:use-module (gnu packages openldap) #:use-module (gnu packages pciutils) #:use-module (gnu packages perl) @@ -62,8 +73,12 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) + #:use-module (gnu packages scanner) + #:use-module (gnu packages security-token) #:use-module (gnu packages tls) + #:use-module (gnu packages video) #:use-module (gnu packages virtualization) + #:use-module (gnu packages vulkan) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) @@ -71,6 +86,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) + #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix download) #:use-module (guix gexp) @@ -84,7 +100,6 @@ ;; This is a module for packages related to physical hardware that don't (yet) ;; have a more specific home like gps.scm, security-token.scm, &c. - (define-public envytools (let ((commit "9014a51b1436461c7b3b005bdae72bf4912f4e72") (revision "1")) @@ -111,6 +126,195 @@ drivers, including an assembler and a disassembler for several GPU instruction sets, and tools to deal with register databases.") (license license:expat)))) +(define-public hw-probe + (package + (name "hw-probe") + (version "1.6.4") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/linuxhw/hw-probe") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "028wnhrbn10lfxwmcpzdbz67ygldimv7z1k1bm64ggclykvg5aim")))) + (build-system perl-build-system) + (arguments + (list + #:tests? #f ;no test suite + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Correct install prefix. + (substitute* "Makefile" + (("/usr") #$output)) + + (define preserve + ;; Either not available in Guix or better left untouched. + '("$HWInfoCmd" "$CurlCmd" "$NvidiaSmi_Path" ;perl variables + "vblank_mode=0" "DRI_PRIME=1" ;environment variables + "sha512" ;fall-back to sha512sum + ;; hp-probe comes from the full 'hplib' package, which would + ;; pull Qt and increase the size of the closure by 600 MiB. + "hp-probe" + + ;; Android. + "apk" "getprop" + + ;; BSD-related. + "atactl" "acpiconf" + "bsdhwmon" "camcontrol" + "devinfo" "diskinfo" "disklabel" + "freebsd-version" "ghostbsd-version" + "hwstat" "kldstat" "mfiutil" "modstat" "mport" + "ofwdump" "opnsense-version" + "pcictl" "pcidump" "pciconf" "pkg" "pkg_info" "pkgin" + "start-hello" "sysinfo" "usbconfig" "usbdevs" + + ;; Package managers. + "eopkg" "pacman" "swupd" + + ;; Not packaged in Guix (TODO). + "apm" ;apmd + "drm_info" ;drm_info + "megactl" ;megactl + "lspnp" ;pnputils + "lsb_release" ;lsb-release + "lsinitrd" ;dracut + "optirun" ;bumblebee + "usbctl" ;usbctl + "monitor-get-edid" ;monitor-edid + "journalctl" "systemctl" "systemd-analyze" ;systemd + "superiotool" ;superiotool + "x86info" ;x86info + + ;; Other. + "arcconf" ;proprietary + "config" ;unknown origin (Linux-related) + "dkms" ;unknown origin (Linux-related) + "amdconfig" "fglrxinfo" ;proprietary/obsolete + "geom" ;unknown origin + "hciconfig" "hcitool" ;deprecated from bluez + "nm-tool")) ;replaced by nmcli in network-manager + + (substitute* "hw-probe.pl" + (("(check|find|run)Cmd\\(\"([^\" ]+)" _ prefix command) + (string-append + prefix "Cmd(\"" + (if (member command preserve) + command + (or (false-if-exception + (search-input-file + inputs (string-append "bin/" command))) + (search-input-file + inputs (string-append "sbin/" command)))))) + (("(my \\$HWInfoCmd = \")hwinfo" _ head) + (string-append head (search-input-file inputs "sbin/hwinfo"))) + (("(my \\$CurlCmd = \")curl" _ head) + (string-append head (search-input-file inputs "bin/curl"))) + (("(\\$LsblkCmd = \")lsblk" _ head) + (string-append head (search-input-file inputs "bin/lsblk"))) + (("(\\$SmartctlCmd = \")smartctl" _ head) + (string-append head (search-input-file inputs "sbin/smartctl"))) + (("(my \\$FindmntCmd = \")findmnt" _ head) + (string-append head (search-input-file inputs "bin/findmnt"))) + (("(\\$DDCUtilCmd = \")ddcutil" _ head) + (string-append head (search-input-file inputs "bin/ddcutil"))) + (("(my \\$VaInfoCmd = \")vainfo" _ head) + (string-append head (search-input-file inputs "bin/vainfo"))) + (("(\\$CheckHddCmd = \")hdparm" _ head) + (string-append head (search-input-file inputs "sbin/hdparm"))) + (("(\\$USE_DIGEST_ALT = \")sha512sum" _ head) + (string-append head (search-input-file inputs "bin/sha512sum")))))) + (delete 'configure) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (define hw-probe (search-input-file outputs "bin/hw-probe")) + ;; 'NeedProgs' core utilities are specially checked for + ;; availability. It's easier to wrap them in PATH than patching + ;; their references. + ;; TODO: package edid-decode and add "bin/edid-decode" below: + (define need-progs (list "sbin/dmidecode" "sbin/smartctl" + "sbin/lspci" "bin/lsusb")) + (wrap-script hw-probe + (list "PERL5LIB" 'prefix (list (getenv "PERL5LIB"))) + (list "PATH" 'prefix + (map (lambda (command) + (dirname (search-input-file inputs command))) + need-progs)))))))) + (inputs + (list acpi + acpica + alsa-utils + avahi + bash-minimal + coreutils + cpuid + cpupower + curl + ddcutil + dmidecode + dpkg + edid-decode + efibootmgr + efivar + ethtool + eudev + findutils + gpart + grep + guile-3.0 ;for wrap-script + hddtemp + hdparm + i2c-tools + inxi + iproute + iw + libva-utils + lm-sensors + mcelog + memtester + mesa-utils + modem-manager + module-init-tools + neofetch + net-tools + network-manager + numactl + nvme-cli + opensc + openssl + p7zip + pciutils + perl-data-dumper + perl-digest-sha + perl-libwww + procps + psmisc ;for pstree + rpm + sane-backends + smartmontools + sysstat + upower + usbutils + util-linux + wireless-tools + vdpauinfo + vulkan-tools + xdpyinfo + xinput + xrandr + xvinfo)) + (propagated-inputs (list hwinfo)) + (home-page "https://linux-hardware.org") + (synopsis "Hardware Probe") + (description "Hardware Probe is a tool to probe for hardware, check its +operability and find drivers.") + (license (list license:lgpl2.1+ license:bsd-4)))) ;dual-licensed + (define-public hwinfo (package (name "hwinfo") diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm index edaeb59641..234d4bd75f 100644 --- a/gnu/packages/ibus.scm +++ b/gnu/packages/ibus.scm @@ -9,6 +9,8 @@ ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2021 Songlin Jiang <hollowman@hollowman.ml> +;;; Copyright © 2021 Taiju HIGASHI <higashi@taiju.info> +;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -307,7 +309,7 @@ Chinese pinyin input methods.") (define-public ibus-anthy (package (name "ibus-anthy") - (version "1.5.9") + (version "1.5.14") (source (origin (method url-fetch) (uri (string-append @@ -315,34 +317,41 @@ Chinese pinyin input methods.") version "/ibus-anthy-" version ".tar.gz")) (sha256 (base32 - "1y8sf837rmp662bv6zakny0xcm7c9c5qda7f9kq9riv9ywpcbw6x")))) + "16vd0k8wm13s38869jqs3dnwmjvywgn0snnpyi41m28binhlssf8")))) (build-system gnu-build-system) (arguments '(#:configure-flags ;; Use absolute exec path in the anthy.xml. (list (string-append "--libexecdir=" %output "/libexec")) + ;; The test suite fails (see: + ;; https://github.com/ibus/ibus-anthy/issues/28). + #:tests? #f #:phases (modify-phases %standard-phases (add-after 'install 'wrap-programs - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (for-each - (lambda (prog) - (wrap-program (string-append out "/libexec/" prog) - `("GUIX_PYTHONPATH" ":" prefix - (,(getenv "GUIX_PYTHONPATH"))) - `("GI_TYPELIB_PATH" ":" prefix - (,(getenv "GI_TYPELIB_PATH") - ,(string-append out "/lib/girepository-1.0"))))) - '("ibus-engine-anthy" "ibus-setup-anthy")) - #t)))))) + (lambda* (#:key inputs outputs #:allow-other-keys) + (for-each (lambda (prog) + (wrap-program (search-input-file + outputs (string-append "libexec/" prog)) + `("GUIX_PYTHONPATH" ":" prefix + (,(getenv "GUIX_PYTHONPATH"))) + `("GI_TYPELIB_PATH" ":" prefix + (,(getenv "GI_TYPELIB_PATH") + ,(search-input-directory + inputs "lib/girepository-1.0"))))) + '("ibus-engine-anthy" "ibus-setup-anthy"))))))) (native-inputs - `(("gettext" ,gettext-minimal) - ("intltool" ,intltool) - ("pkg-config" ,pkg-config) - ("python" ,python))) + (list gettext-minimal + `(,glib "bin") + intltool + pkg-config + python)) (inputs - (list anthy gtk+ ibus gobject-introspection python-pygobject)) + (list anthy + gtk+ + ibus + gobject-introspection + python-pygobject)) (synopsis "Anthy Japanese language input method for IBus") (description "IBus-Anthy is an engine for the input bus \"IBus\"). It adds the Anthy Japanese language input method to IBus. Because most graphical diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 6032da11d1..1be214f67f 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -106,6 +106,22 @@ C/C++ part.") (license x11) (home-page "http://site.icu-project.org/"))) +(define-public icu4c-71 + (package + (inherit icu4c) + (version "71.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/unicode-org/icu/releases/download/release-" + (string-map (lambda (x) (if (char=? x #\.) #\- x)) version) + "/icu4c-" + (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) + "-src.tgz")) + (sha256 + (base32 + "1gqywaqj9jmdwrng9lm6inyqmi5j2cz36db9dcqg3yk13zjyd9v7")))))) + (define-public icu4c-70 (package (inherit icu4c) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 18db5a1d9e..307b91864c 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -80,6 +80,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages photo) + #:use-module (gnu packages popt) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) @@ -2233,56 +2234,57 @@ Format) file format decoder and encoder.") (license license:lgpl3+))) (define-public libjxl - (package - (name "libjxl") - (version "0.6.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/libjxl/libjxl") - (commit (string-append "v" version)) - (recursive? #t))) - (file-name (git-file-name name version)) - (sha256 - (base32 "17pvc5zgm9az5hfg2p80325f42w3dqspyb03iakrwg9x4n3vjckx")) - (modules '((guix build utils))) - (snippet - ;; Delete the bundles that will not be used. libjxl bundles LCMS - ;; which is in Guix but there is no option to use the system package. - ;; This option will be introduced after version 0.6.1 and then we - ;; probably won't need to download the submodules. - '(begin - (for-each (lambda (directory) - (delete-file-recursively - (string-append "third_party/" directory))) - '("brotli" "googletest" "highway")))))) - (build-system cmake-build-system) - (arguments - `(#:configure-flags - (list "-DJPEGXL_FORCE_SYSTEM_GTEST=true" - "-DJPEGXL_FORCE_SYSTEM_BROTLI=true" - ;; "-DJPEGXL_FORCE_SYSTEM_LCMS2=true" ; next version after 0.6.1 - "-DJPEGXL_FORCE_SYSTEM_HWY=true"))) - (native-inputs - (list asciidoc doxygen googletest pkg-config python)) - (inputs - (list freeglut - giflib - google-brotli - google-highway - imath - ;; lcms ; next version after 0.6.1 - libavif - libjpeg-turbo - libpng - libwebp - openexr)) - (home-page "https://github.com/libjxl/libjxl") - (synopsis "JPEG XL image format reference implementation") - (description "This package contains a reference implementation of JPEG XL + (let ((commit "b7076f1869914eee47b3eae107750f3a3ce43a76") + (revision "0")) + (package + (name "libjxl") + (version (git-version "0.6.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libjxl/libjxl") + (commit commit) + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jx0hkd2nk15mmnzlk7y7fp644w336il7nsnp5yhf14j8zfaiqz8")) + (modules '((guix build utils))) + (snippet + ;; Delete the bundles that will not be used. libjxl bundles LCMS, + ;; which is in Guix, but a newer version is required. + '(begin + (for-each (lambda (directory) + (delete-file-recursively + (string-append "third_party/" directory))) + '("brotli" "googletest" "highway")))))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DJPEGXL_FORCE_SYSTEM_GTEST=true" + "-DJPEGXL_FORCE_SYSTEM_BROTLI=true" + ;; "-DJPEGXL_FORCE_SYSTEM_LCMS2=true" ; requires lcms@2.13 + "-DJPEGXL_FORCE_SYSTEM_HWY=true"))) + (native-inputs + (list asciidoc doxygen googletest pkg-config python)) + (inputs + (list freeglut + gflags + giflib + google-brotli + google-highway + imath + ;; lcms ; requires lcms@2.13 + libavif + libjpeg-turbo + libpng + libwebp + openexr)) + (home-page "https://github.com/libjxl/libjxl") + (synopsis "JPEG XL image format reference implementation") + (description "This package contains a reference implementation of JPEG XL (encoder and decoder).") - (license license:bsd-3))) + (license license:bsd-3)))) (define-public mtpaint (package diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 7b0507d93c..16bd0d155a 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -7908,6 +7908,40 @@ Commons CLI supports different types of options: This is a part of the Apache Commons Project.") (license license:asl2.0))) +(define-public java-commons-text + (package + (name "java-commons-text") + (version "1.9") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/text/source/" + "commons-text-" version "-src.tar.gz")) + (sha256 + (base32 + "1k99ib2dxlqxb5y94kpzf4ix8xgxz1j3n9kq3ddssqqcccsp5ik2")))) + (build-system ant-build-system) + (arguments + (list #:jar-name "java-commons-text.jar" + #:source-dir "src/main/java" + #:test-dir "src/test" + #:tests? #f ; Tests require JUnit5. + #:phases + #~(modify-phases %standard-phases + (replace 'install + (install-from-pom "pom.xml"))))) + (inputs + (list java-commons-io)) + (propagated-inputs + (list java-commons-lang3 + apache-commons-parent-pom-51)) + (home-page "https://commons.apache.org/text/") + (synopsis "Library focused on algorithms working on strings") + (description "Apache Commons Text is a library focused on algorithms +working on strings. + +This is a part of the Apache Commons Project.") + (license license:asl2.0))) + (define-public java-commons-codec (package (name "java-commons-codec") diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index ba81e1c387..b56b63e784 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -479,7 +479,7 @@ expression library, that is used in Krita.") (define-public krita (package (name "krita") - (version "5.0.2") + (version "5.0.8") (source (origin (method url-fetch) @@ -487,7 +487,7 @@ expression library, that is used in Krita.") "mirror://kde/stable/krita/" version "/krita-" version ".tar.gz")) (sha256 - (base32 "1gww95fyd5r3x2260j2ls7d8fp4rsfxnwdqai2j7fjahxg3iyxg6")))) + (base32 "0iaypyv21zxvhr989r9j9nlhx642jc89xphz1qaw9q1y0yjiy7gd")))) (build-system qt-build-system) (arguments `(#:tests? #f diff --git a/gnu/packages/license.scm b/gnu/packages/license.scm index cc6b03b412..3146f38c1c 100644 --- a/gnu/packages/license.scm +++ b/gnu/packages/license.scm @@ -25,6 +25,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (guix build-system perl) @@ -168,13 +169,13 @@ belonging to various licenses.") (define-public reuse (package (name "reuse") - (version "0.14.0") + (version "1.0.0") (source (origin (method url-fetch) (uri (pypi-uri "reuse" version)) (sha256 - (base32 "1q84qv982y67inqb67iy3r6z7339593w7zdaaxswjqxfrd1by7bp")))) + (base32 "1m78q5x19xvhywi1xl0prrag89ihvqiq14lba27rrxl75nz24c6v")))) (build-system python-build-system) (native-inputs (list python-pytest python-setuptools-scm)) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index fe4dc2219b..16a73902a6 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -370,92 +370,92 @@ 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.15-version "5.15.47") +(define-public linux-libre-5.15-version "5.15.49") (define-public linux-libre-5.15-gnu-revision "gnu") (define deblob-scripts-5.15 (linux-libre-deblob-scripts linux-libre-5.15-version linux-libre-5.15-gnu-revision (base32 "1n57mz5agvf1d0ggbg080d7hvx8p9y0iqxkq4ypg10a7n96zy7y5") - (base32 "17xsn91h0c2d8igpzgmjm1g58nfpihlhgg9wm8zbfyd5g4airs8f"))) + (base32 "129qlhwdv2mfb85gbvq03kkbdfp73b444rryr4rrbvi0jmq4cp24"))) (define-public linux-libre-5.15-pristine-source (let ((version linux-libre-5.15-version) - (hash (base32 "1700js21yimx8rz4bsglszry564l2ycmmcr36rdqspzbmlx5w8wb"))) + (hash (base32 "1p2r02h2z0j34hpkp3kr4741pr15ii72b94zllravx27pa9phj9j"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.15))) -(define-public linux-libre-5.10-version "5.10.122") +(define-public linux-libre-5.10-version "5.10.124") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts linux-libre-5.10-version linux-libre-5.10-gnu-revision (base32 "0mw7qn77y9c6wrnw4rjvf75cpm1w6n1aqqhf8cnghcb97p2yxxrf") - (base32 "1ryfc8fppigssrzz5lfbqgli49cgs3lmf0yh46lpi2k0j2x30qcc"))) + (base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "0h0gfi3p1dd4p8xxklrl8sc3rv4xd08q7nv0i4m166w8188v62wj"))) + (hash (base32 "0yz3yw02b6b1sq800r46x5b3dagswb6z4clrfq485c4669sb2ipc"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.198") +(define-public linux-libre-5.4-version "5.4.200") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts linux-libre-5.4-version linux-libre-5.4-gnu-revision (base32 "1nlgk8ajb5wl3aa96h9a0pb9j5a5wmrbpk63varn557x1d00r7wj") - (base32 "05i286d98fm2pdf9724x1dsmfcm7gsd7yyyvxqlpisyj1kx14hda"))) + (base32 "1vnjbdyssa7dwyjl9kg35alwvf7yh597cl74yr1wy2gk5bc9paw6"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "0wvscr5wia2xdiqfxxdwl8kxf1s085qdj5h4423mraj7dh6l0ihh"))) + (hash (base32 "1f15al9g4cd17fm43im5rqqrbz1cqhz2hq5ycpqvwa02pydprsga"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.247") +(define-public linux-libre-4.19-version "4.19.248") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts linux-libre-4.19-version linux-libre-4.19-gnu-revision (base32 "06pqv050bkii0hc2v7ymny5264w1bca8db0dp1pw9mfmjg865am5") - (base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx"))) + (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "136gmsmvgb2nid4by2ld003w06lsr7hgn9ajx0wfziag7pfnjsv2"))) + (hash (base32 "0cdflfk6l13slw1cawpkhpjzbbnffcbyffrh29p9jg73pdqx23y4"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.283") +(define-public linux-libre-4.14-version "4.14.284") (define-public linux-libre-4.14-gnu-revision "gnu1") (define deblob-scripts-4.14 (linux-libre-deblob-scripts linux-libre-4.14-version linux-libre-4.14-gnu-revision (base32 "02rxvr0gmxb3zfsyyzdmzgfq04gkdkv1cc38md0xfl0mxzdzdfyk") - (base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx"))) + (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "191gybhnck4mh9yjzwgv1crrbxjc90p12bcif721rbs6xzszmxzh"))) + (hash (base32 "1f7bidisa6b4ff0mgn66h1nmf94j5mcx4wnkwnd9f49im6hcqllq"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.318") +(define-public linux-libre-4.9-version "4.9.319") (define-public linux-libre-4.9-gnu-revision "gnu1") (define deblob-scripts-4.9 (linux-libre-deblob-scripts linux-libre-4.9-version linux-libre-4.9-gnu-revision (base32 "0nai5m4rbh37qaj1xf2qj7656l2gacfh0847q5d07y22b048fq5n") - (base32 "14jyn2yrbm6ayp0bszs4f9jy3p1qkrj5p5gf5c42spr67aa2lv2v"))) + (base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "09czsc0ynyw068yczs9qx4cliqmrh5hvz93c77lhh014wn02pba4"))) + (hash (base32 "11242bn95k51knm9da7xk7r10vk7iji06wix1cq4g5nzldrfp9sp"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index a88f19e28e..78eca82db6 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -21467,3 +21467,78 @@ in a native template application).") (define-public ecl-clog (sbcl-package->ecl-package sbcl-clog)) + +(define-public sbcl-nkeymaps + (package + (name "sbcl-nkeymaps") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/atlas-engineer/nkeymaps") + (commit version))) + (file-name (git-file-name "cl-nkeymaps" version)) + (sha256 + (base32 "0shkklc3aiq44hyv1q6fahw4vjcr0iw4zsmxbhmxqh04r7185ddf")))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-alexandria + sbcl-cl-str + sbcl-fset + sbcl-trivial-package-local-nicknames)) + (native-inputs + (list sbcl-prove)) + (home-page "https://github.com/atlas-engineer/nkeymaps") + (synopsis "Keymap facility for Common Lisp") + (description + "This is a keymap facility for Common Lisp inspired by Emacsy +(keymap.scm) which is inspired by Emacs. +@itemize + +@item Support prefix keys to other keymaps. For instance, if you prefix +my-mode-map with C-c, then all bindings for my-mode will be accessible after +pressing C-c. + +@item List all bindings matching a given prefix. (Also known as which-key in +Emacs.) + +@item List the bindings associated to a command. + +@item Support multiple inheritance. + +@item Support keycode. + +@item Validate keyspec at compile time. + +@item define-key can set multiple bindings in a single call. + +@item Support multiple scheme to make it easy to switch between, say, +Emacs-style and VI-style bindings. This orthogonality to keymaps composes +better than having multiple keymaps: changing scheme applies to the entire +program, which is easier than looping through all keymaps to change them. + +@item Translate keyspecs as a fallback. For instance if shift-a is not bound, +check A. + +@item Behaviour can be customized with global parameters such as +*print-shortcut*. + +@item The compose function can merge multiple keymaps together. + +@item Support multiple arguments when that makes sense (e.g. multiple keymaps +for lookup-key). + +@item Key remapping à-la Emacs. + +@item Typed keymaps, i.e. keymaps where bound values can only be of a given +type. This is convenient to catch typos, for instance when binding 'FOO +instead of #'FOO. +@end itemize") + (license license:bsd-3))) + +(define-public cl-nkeymaps + (sbcl-package->cl-source-package sbcl-nkeymaps)) + +(define-public ecl-nkeymaps + (sbcl-package->ecl-package sbcl-nkeymaps)) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index c26da670ac..3c43f8fa4c 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -1165,7 +1165,7 @@ including a built-in database engine and a GUI system.") (define-public janet (package (name "janet") - (version "1.21.1") + (version "1.23.0") (source (origin (method git-fetch) @@ -1174,7 +1174,7 @@ including a built-in database engine and a GUI system.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1c8lrwg518182rnz47mahv5r9jd3haj6ysigk0bkv8lpb0d2b760")))) + (base32 "1qfahq1203kv5jxd0im7nxm3yy1p9k1wc0pk34b5h2sfships1hm")))) (build-system gnu-build-system) (arguments (list #:make-flags diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 32625385ff..6e12c3ebde 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -878,7 +878,22 @@ of programming tools as well as libraries with equivalent functionality.") (patches (search-patches "llvm-9-fix-bitcast-miscompilation.patch" "llvm-9-fix-scev-miscompilation.patch" - "llvm-9-fix-lpad-miscompilation.patch")))))) + "llvm-9-fix-lpad-miscompilation.patch")))) + (arguments + (if (target-riscv64?) + (substitute-keyword-arguments (package-arguments llvm-10) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-dsymutil-link + (lambda _ + (substitute* "tools/dsymutil/CMakeLists.txt" + (("endif\\(APPLE\\)") + (string-append + "endif(APPLE)\n\n" + "if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES \"riscv64\")\n" + " target_link_libraries(dsymutil PRIVATE atomic)\n" + "endif()")))))))) + (package-arguments llvm-10))))) (define-public clang-runtime-9 (clang-runtime-from-llvm diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 15a53a337d..a03bf2fa05 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -138,6 +138,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) @@ -1782,7 +1783,7 @@ delivery.") (define-public exim (package (name "exim") - (version "4.95") + (version "4.96") (source (origin (method url-fetch) @@ -1796,86 +1797,84 @@ delivery.") (string-append "https://ftp.exim.org/pub/exim/exim4/old/" file-name)))) (sha256 - (base32 "0rzi0kc3qiiaw8vnv5qrpwdvvh4sr5chns026xy99spjzx9vd76c")))) + (base32 "18ziihkpa23lybm7m2l9wp2farxw0bd5ng7xm9ylgcrfgf95d6i9")))) (build-system gnu-build-system) - (inputs - `(("bdb" ,bdb-5.3) ; ‘#error Version 6 and later BDB API is not supported’ - ("gnutls" ,gnutls/dane) - ("gzip" ,gzip) - ("bzip2" ,bzip2) - ("xz" ,xz) - ("perl" ,perl) - ("libnsl" ,libnsl) - ("libxt" ,libxt) - ("libxaw" ,libxaw))) - (native-inputs - (list `(,pcre "bin") perl pkg-config)) (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'configure - ;; We'd use #:make-flags but the top-level Makefile calls others - ;; recursively, so just set all variables this way. - (lambda* (#:key outputs inputs #:allow-other-keys) - (substitute* '("Makefile" "OS/Makefile-Default") - (("(RM_COMMAND=).*" all var) - (string-append var "rm\n"))) - (copy-file "src/EDITME" "Local/Makefile") - (copy-file "exim_monitor/EDITME" "Local/eximon.conf") - (let ((out (assoc-ref outputs "out")) - (gzip (assoc-ref inputs "gzip")) - (bzip2 (assoc-ref inputs "bzip2")) - (xz (assoc-ref inputs "xz"))) - (substitute* '("Local/Makefile") - (("(BIN_DIRECTORY=).*" all var) - (string-append var out "/bin\n")) - (("(CONFIGURE_FILE=).*" all var) - (string-append var out "/etc/exim.conf\n")) - (("(EXIM_USER=).*" all var) - (string-append var "nobody\n")) - (("(FIXED_NEVER_USERS=).*" all var) - (string-append var "\n")) ; XXX no root in build environment - (("(COMPRESS_COMMAND=).*" all var) - (string-append var gzip "/bin/gzip\n")) - (("(ZCAT_COMMAND=).*" all var) - (string-append var gzip "/bin/zcat\n")) - (("# (USE_GNUTLS(|_PC)=.*)" all line) - (string-append line "\n")) - (("# (AUTH_CRAM_MD5=yes)" all line) line) - (("# (AUTH_DOVECOT=yes)" all line) line) - (("# (AUTH_EXTERNAL=yes)" all line) line) - (("# (AUTH_PLAINTEXT=yes)" all line) line) - (("# (AUTH_SPA=yes)" all line) line) - (("# (AUTH_TLS=yes)" all line) line)) - ;; This file has hard-coded relative file names for tools despite - ;; the zcat configuration above. - (substitute* '("src/exigrep.src") - (("'zcat'") (string-append "'" gzip "/bin/zcat'")) - (("'bzcat'") (string-append "'" bzip2 "/bin/bzcat'")) - (("'xzcat'") (string-append "'" xz "/bin/xzcat'")) - (("'lzma'") (string-append "'" xz "/bin/lzma'")))))) - (add-before 'build 'fix-sh-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* '("scripts/lookups-Makefile" "scripts/reversion") - (("SHELL=/bin/sh") "SHELL=sh")) - (substitute* '("scripts/Configure-config.h") - (("\\| /bin/sh") "| sh")) - (let ((bash (assoc-ref inputs "bash"))) - (substitute* '("scripts/Configure-eximon") - (("#!/bin/sh") (string-append "#!" bash "/bin/sh")))))) - (add-before 'build 'build-reproducibly - (lambda _ - ;; The ‘compilation number’ is incremented for every build from the - ;; same source tree. It appears to vary over different (parallel?) - ;; builds. Make it a ‘constant number’ instead. - (substitute* "src/version.c" - (("#include \"cnumber.h\"") "1"))))) - #:make-flags - (list (string-append "CC=" ,(cc-for-target)) - "INSTALL_ARG=-no_chown") - ;; No 'check' target. There is a test suite in test/, which assumes that - ;; certain build options were (not) used and that it can freely ‘sudo’. - #:tests? #f)) + (list #:phases + #~(modify-phases %standard-phases + (replace 'configure + ;; We'd use #:make-flags but the top-level Makefile calls + ;; others recursively, so just set all variables this way. + (lambda* (#:key outputs inputs #:allow-other-keys) + (substitute* (list "Makefile" "OS/Makefile-Default") + (("(RM_COMMAND=).*" all var) + (string-append var "rm\n"))) + (copy-file "src/EDITME" "Local/Makefile") + (copy-file "exim_monitor/EDITME" "Local/eximon.conf") + (let ((out (assoc-ref outputs "out"))) + (substitute* "Local/Makefile" + (("(BIN_DIRECTORY=).*" all var) + (string-append var out "/bin\n")) + (("(CONFIGURE_FILE=).*" all var) + (string-append var out "/etc/exim.conf\n")) + (("(EXIM_USER=).*" all var) + (string-append var "nobody\n")) + (("(FIXED_NEVER_USERS=).*" all var) + (string-append var "\n")) ; no root in build environment + (("(COMPRESS_COMMAND=).*" all var) + (string-append var (search-input-file inputs "bin/gzip") + "\n")) + (("(ZCAT_COMMAND=).*" all var) + (string-append var (search-input-file inputs "bin/zcat") + "\n")) + (("# (USE_GNUTLS(|_PC)=.*)" all line) + (string-append line "\n")) + (("# (AUTH_CRAM_MD5=yes)" all line) line) + (("# (AUTH_DOVECOT=yes)" all line) line) + (("# (AUTH_EXTERNAL=yes)" all line) line) + (("# (AUTH_PLAINTEXT=yes)" all line) line) + (("# (AUTH_SPA=yes)" all line) line) + (("# (AUTH_TLS=yes)" all line) line)) + ;; This file has hard-coded relative file names for tools + ;; despite the zcat configuration above. + (substitute* "src/exigrep.src" + (("'(bzcat|xzcat|zcat|lzma)'" _ command) + (format #f "'~a'" + (search-input-file + inputs (string-append "bin/" command)))))))) + (add-before 'build 'fix-sh-file-names + (lambda _ + (substitute* (list "scripts/lookups-Makefile" + "scripts/reversion") + (("SHELL=/bin/sh") "SHELL=sh")) + (substitute* "scripts/Configure-config.h" + (("\\| /bin/sh") "| sh")) + (patch-shebang "scripts/Configure-eximon"))) + (add-before 'build 'build-reproducibly + (lambda _ + ;; The ‘compilation number’ increments on every build in the + ;; same source tree and varies across different (parallel?) + ;; builds. Make it a ‘constant number’ instead. + (substitute* "src/version.c" + (("#include \"cnumber.h\"") "1"))))) + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + "INSTALL_ARG=-no_chown") + ;; No ‘check’ target. The ‘test/’ suite assumes that particular + ;; build options were (not) used and that it can freely ‘sudo’. + #:tests? #f)) + (native-inputs + (list pcre2 perl pkg-config)) + (inputs + (list bdb-5.3 ; ‘#error Version 6 and later BDB API is not supported’ + bzip2 + gnutls/dane + gzip + libnsl + libxaw + libxt + perl + xz)) (home-page "https://www.exim.org/") (synopsis "Message Transfer Agent (MTA) developed at the University of Cambridge") @@ -1885,6 +1884,7 @@ Cambridge for use on Unix systems connected to the Internet. In style it is similar to Smail 3, but its facilities are more general. There is a great deal of flexibility in the way mail can be routed, and there are extensive facilities for checking incoming mail.") + (properties '((lint-hidden-cve . ("CVE-2020-28017")))) (license license:gpl2+))) (define-public dovecot diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 7259c046ef..1289a3cbbf 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -5524,9 +5524,11 @@ set.") texlive-capt-of texlive-caption texlive-cm + texlive-courier texlive-etoolbox texlive-fancyhdr texlive-fancyvrb + texlive-helvetic texlive-jknappen texlive-sectsty texlive-tex-gyre diff --git a/gnu/packages/maven-parent-pom.scm b/gnu/packages/maven-parent-pom.scm index cf48be86a2..660790b019 100644 --- a/gnu/packages/maven-parent-pom.scm +++ b/gnu/packages/maven-parent-pom.scm @@ -143,6 +143,11 @@ "50" "0ki8px35dan51ashblpw6rdl27c2fq62slazhslhq3lr4fwlpvxs" apache-parent-pom-21)) +(define-public apache-commons-parent-pom-51 + (make-apache-commons-parent-pom + "51" "05najrpys26jymla2p5jdz4mf4fjp525h6mnr0jfx55lp03xi939" + apache-parent-pom-23)) + (define-public apache-commons-parent-pom-52 (make-apache-commons-parent-pom "52" "0fb6id9cs9944fjlirjc07bf234bwi96i642px09m9nrfj338n5d" diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index e5831ee614..f84f1ae177 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -3938,3 +3938,30 @@ method and a end of tag by @code{xxxx_()} method.") (description "@samp{Doxia} is a content generation framework that provides powerful techniques for generating static and dynamic content, supporting a variety of markup languages."))) + +(define-public maven-doxia-core + (package + (inherit maven-doxia-sink-api) + (name "maven-doxia-core") + (arguments + `(#:jar-name "doxia-core.jar" + #:source-dir "doxia-core/src/main/java" + #:test-dir "doxia-core/src/test/java" + #:tests? #f ; tests require JUnit5 + #:phases (modify-phases %standard-phases + (replace 'install + (install-from-pom "doxia-core/pom.xml"))))) + (propagated-inputs (list maven-doxia-parent-pom + maven-doxia-sink-api + java-slf4j-api + java-javax-inject + java-plexus-utils + java-eclipse-sisu-plexus + java-commons-text)) + (synopsis "Doxia core classes and interfaces") + (description + "Doxia is a content generation framework that provides powerful +techniques for generating static and dynamic content, supporting a variety of +markup languages. + +This package contains Doxia core classes and interfaces."))) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 4038ef0e49..f1c5e0796c 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -1146,14 +1146,14 @@ simultaneously and therefore appear under the same nickname on IRC.") (define-public python-nbxmpp (package (name "python-nbxmpp") - (version "2.0.4") + (version "3.1.0") (source (origin (method url-fetch) (uri (pypi-uri "nbxmpp" version)) (sha256 - (base32 "1s2phiipq7ks8vrd93p96dzd5wgmgg8q9h2rxsnh2gg7iy06gj9c")))) + (base32 "0c32090gr1fiy7hkn73dcj4ad9gfdpks8hivl1dl8bql01jsfdnj")))) (build-system python-build-system) (native-inputs (list `(,glib "bin"))) @@ -1175,7 +1175,7 @@ of xmpppy.") (define-public gajim (package (name "gajim") - (version "1.3.3") + (version "1.4.5") (source (origin (method url-fetch) @@ -1184,7 +1184,7 @@ of xmpppy.") (version-major+minor version) "/gajim-" version ".tar.gz")) (sha256 - (base32 "1337qkpcv7j0fgws9scnk82mn2l7s17060vmrbh3ihinmxmbxg6x")) + (base32 "08a7kkc8vzjr5jxjkb96vs1bqnrgmmmcc5spy308z0zfxbpamsin")) (patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch")))) (build-system python-build-system) (arguments @@ -1198,13 +1198,6 @@ of xmpppy.") (guix build utils)) #:phases (modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda _ - ;; XXX Gajim builds fine on some (my) machines but fails elsewhere: - ;; ModuleNotFoundError: No module named 'gajim.gui.emoji_data' - ;; https://dev.gajim.org/gajim/gajim/-/issues/10478 - (delete-file "test/lib/gajim_mocks.py") - (delete-file "test/unit/test_gui_interface.py"))) (replace 'check (lambda _ ;; Tests require a running X server. @@ -1232,7 +1225,7 @@ of xmpppy.") (wrap-program file `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)) `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))) - '("gajim" "gajim-remote" "gajim-history-manager")))))))) + '("gajim" "gajim-remote")))))))) (native-search-paths (list (search-path-specification @@ -1274,6 +1267,7 @@ of xmpppy.") ("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base) ("gtk+" ,gtk+) + ("gtksourceview" ,gtksourceview) ("gupnp-igd" ,gupnp-igd) ("libnice" ,libnice) ("libsecret" ,libsecret) @@ -1282,6 +1276,7 @@ of xmpppy.") ("network-manager" ,network-manager) ("python-css-parser" ,python-css-parser) ("python-dbus" ,python-dbus) + ("python-gssapi" ,python-gssapi) ("python-keyring" ,python-keyring) ("python-nbxmpp" ,python-nbxmpp) ("python-packaging" ,python-packaging) @@ -1302,7 +1297,7 @@ and OpenPGP) and available in 29 languages.") (define-public gajim-omemo (package (name "gajim-omemo") - (version "2.7.14") + (version "2.8.13") (source (origin (method url-fetch/zipbomb) @@ -1311,7 +1306,7 @@ and OpenPGP) and available in 29 languages.") "https://ftp.gajim.org/plugins_releases/omemo_" version ".zip")) (sha256 - (base32 "0jmyjqfc4vimvq5vdqsvz25dsij6bh92alml8qnn59p5farnf86v")))) + (base32 "10ym9abvlfpi6llpsqc0691xdnqp9hrwnl361fnwb1nx2zw6bjbd")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -1338,7 +1333,7 @@ multi-client end-to-end encryption.") (define-public gajim-openpgp (package (name "gajim-openpgp") - (version "1.3.9") + (version "1.4.8") (source (origin (method url-fetch/zipbomb) @@ -1347,7 +1342,7 @@ multi-client end-to-end encryption.") "https://ftp.gajim.org/plugins_releases/openpgp_" version ".zip")) (sha256 - (base32 "0fzvvrap1hmj4rbrcjs6cs5c9l9c0795bgw9vxxxk915n6j91m23")))) + (base32 "05kgcrxalxsc034kq1i6nriqjb6sdlgf3yb2mani8vk9p00v3j90")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index 2e04c32f0a..1544efb614 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -61,6 +61,7 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages rrdtool) + #:use-module (gnu packages sphinx) #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages web)) @@ -164,7 +165,7 @@ etc. via a Web interface. Features include: (define-public zabbix-agentd (package (name "zabbix-agentd") - (version "6.0.3") + (version "6.0.5") (source (origin (method url-fetch) @@ -172,7 +173,7 @@ etc. via a Web interface. Features include: "https://cdn.zabbix.com/zabbix/sources/stable/" (version-major+minor version) "/zabbix-" version ".tar.gz")) (sha256 - (base32 "0hihi94dk235cn4rwhrzm496dlihk0pv8785y2jyqi17jhl566g6")) + (base32 "1hmx6dgsag84dpv867p12bkln141nypgkp6zhipxbnn5xxip1sry")) (modules '((guix build utils))) (snippet '(substitute* '("src/zabbix_proxy/proxy.c" @@ -252,7 +253,7 @@ solution (server-side)"))) (define-public zabbix-cli (package (name "zabbix-cli") - (version "2.2.1") + (version "2.3.0") (source (origin (method git-fetch) (uri (git-reference @@ -261,23 +262,40 @@ solution (server-side)"))) (file-name (git-file-name name version)) (sha256 (base32 - "0wzmrn8p09ksqhhgawr179c4az7p2liqr0l4q2dra62bxliawyqz")))) + "1p8xkq3mxg476srwrgqax76vjzji0rjx32njmgnpa409vaqrbj5p")))) (build-system python-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'use-absolute-ncurses - (lambda _ - (substitute* "bin/zabbix-cli" - (("'clear'") - (string-append "'" (which "clear") "'"))))) - (add-after 'unpack 'patch-setup.py - (lambda _ - ;; Install data_files to $out/share instead of /usr/share. - (substitute* "setup.py" - (("/usr/") ""))))))) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'use-absolute-ncurses + (lambda* (#:key inputs #:allow-other-keys) + (let ((clear (search-input-file inputs "bin/clear"))) + (substitute* "bin/zabbix-cli" + (("'clear'") + (string-append "'" clear "'")))))) + (add-after 'unpack 'patch-setup.py + (lambda _ + ;; Install data_files to $out/share instead of /usr/share. + (substitute* "setup.py" + (("/usr/") "")))) + (add-after 'build 'build-docs + (lambda _ + (invoke "make" "-C" "docs" "manual") + (invoke "make" "-C" "docs" "singlehtml"))) + (add-after 'install 'install-docs + (lambda _ + (install-file "docs/_build/man/zabbix-cli.1" + (string-append #$output "/share/man/man1")) + (copy-recursively "docs/_build/singlehtml" + (string-append #$output "/share/doc/" + #$name "/html")))) + (replace 'check + (lambda _ + (invoke "pytest" "-vv")))))) + (native-inputs + (list python-pytest python-sphinx)) (inputs - `(("clear" ,ncurses) - ("python-requests" ,python-requests))) + (list ncurses python-requests)) (home-page "https://github.com/unioslo/zabbix-cli") (synopsis "Command-line interface to Zabbix") (description diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 60cb176320..ce0fb2d500 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -6769,3 +6769,61 @@ local music library, along with flexible search capabilities. It includes a tag editor, which can also be invoked as a standalone program, and further supports streaming audio and feeds (such as podcasts).") (license license:gpl2+))) + +(define-public orca-music + (let ((commit "e55b8fdc3606341345938d5b24b2d9d9326afdb5") (revision "1")) + (package + (name "orca-music") + ;; No upstream version numbers; Using commit instead. + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~rabbits/orca") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xf5i9vd2wyrhvfp68j5gvd40iqm9rf6g1p74jan7d875g6kpppq")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) ;No autoconf + (replace 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "CC" + ,(cc-for-target)) + (invoke "make" "release"))) + (add-after 'build 'rename-orca + (lambda* _ + (invoke "mv" "-v" "./build/orca" "./build/orca-music"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) (dest-bin (string-append + out "/bin")) + (share (string-append out "/share")) + (dest-examples (string-append share "/examples")) + (dest-doc (string-append share "/doc"))) + (install-file "./build/orca-music" dest-bin) + (copy-recursively "./examples" dest-examples) + (install-file "./README.md" dest-doc))))))) + (inputs (list ncurses portmidi alsa-plugins + `(,alsa-plugins "pulseaudio"))) + (native-inputs (list pkg-config)) + (native-search-paths + (list (search-path-specification + (variable "TERMINFO_DIRS") + (files '("share/terminfo"))))) + (synopsis "Musical live-coding environment") + (description + "This is the C implementation of the ORCΛ language and terminal +livecoding environment. It's designed to be power efficient. It can handle +large files, even if your terminal is small. + +Orca is not a synthesizer, but a flexible livecoding environment capable of +sending MIDI, OSC, and UDP to your audio/visual interfaces like Ableton, +Renoise, VCV Rack, or SuperCollider.") + (home-page "https://100r.co/site/orca.html") + (license license:expat)))) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 8476da0df9..7bfdb1fc34 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -50,6 +50,7 @@ ;;; Copyright © 2022 Simon South <simon@simonsouth.net> ;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> +;;; Copyright © 2022 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -184,6 +185,33 @@ oriented, reliable transport protocol with direct support for multihoming that runs on top of IP or UDP, and supports both v4 and v6 versions.") (license license:bsd-3))) +(define-public arp-scan + (package + (name "arp-scan") + (version "1.9.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/royhills/arp-scan/") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mf7a4f9vzvnkiavc87aqyciswggsb4fpy7j05jxnvjyyxv3l7gp")))) + (build-system gnu-build-system) + (inputs + (list libpcap)) + (native-inputs + (list autoconf automake libtool pkg-config)) + (propagated-inputs + (list perl-libwww)) + (home-page "https://github.com/royhills/arp-scan") + (synopsis "Discover and fingerprint IP hosts on the local network using ARP") + (description "Arp-scan is a tool that uses ARP to discover and fingerprint +IP hosts on the local network.") + (license license:gpl3+))) + (define-public axel (package (name "axel") @@ -216,33 +244,37 @@ protocols.") (define-public libcamera (package (name "libcamera") - (version "0.0.0") + (version "0.0.0-1") (source (origin (method git-fetch) (uri (git-reference (url "git://linuxtv.org/libcamera.git") - (commit "74c8b508338ccdd0780aa1e067a1e8fcb9ee326b"))) + (commit "10be87fa7c3bfb097b21ca3d469c67e40c333f7e"))) (file-name (git-file-name name version)) (sha256 - (base32 "0d9lp8b9gyxh4jwfh55kp8zl1xyyg32z684v3y29378zpksncss1")))) + (base32 "0qgirhlalmk9f9v6piwz50dr2asb64rvbb9zb1vix7y9zh7m11by")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas #:configure-flags (list - "-Dv4l2=true") + "-Dv4l2=true" + ;; XXX: Requires bundled pybind11. + "-Dpycamera=disabled") #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-failing-tests (lambda _ (substitute* "test/meson.build" (("\\['list-cameras', 'list-cameras.cpp'\\],") - "")) - #t)) + "") + ;; TODO: Why do the gstreamer tests fail. + (("^subdir\\('gstreamer'\\)") + "")))) (add-after 'install 'move-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -250,24 +282,26 @@ protocols.") (mkdir-p (string-append doc "/share")) (rename-file (string-append out "/share/doc") - (string-append doc "/share/doc")) - #t)))))) + (string-append doc "/share/doc")))))))) (native-inputs - `(("dot" ,graphviz) - ("doxygen" ,doxygen) - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper) - ("sphinx" ,python-sphinx) - ("yaml" ,python-pyyaml))) + (list graphviz ;for 'dot' + doxygen + pkg-config + python-wrapper + python-sphinx + python-pyyaml)) (inputs - `(("boost" ,boost) - ("glib" ,glib) - ("gstreamer" ,gst-plugins-base) - ("gnutls" ,gnutls) - ("libtiff" ,libtiff) - ("openssl" ,openssl) - ("qt5" ,qtbase-5) - ("udev" ,eudev))) + (list boost + eudev + glib + gst-plugins-base + gnutls + libtiff + libyaml + openssl + python-jinja2 + python-ply + qtbase-5)) (synopsis "Camera stack and framework") (description "LibCamera is a complex camera support library for GNU+Linux, Android, and ChromeOS.") @@ -1744,8 +1778,8 @@ handling network namespaces in Go.") (define-public go-sctp ;; docker-libnetwork-cmd-proxy requires this exact commit. ;; This commit is mentioned in docker-libnetwork-cmd-proxy's vendor.conf. - (let ((commit "6e2cb1366111dcf547c13531e3a263a067715847") - (revision "2")) + (let ((commit "f2269e66cdee387bd321445d5d300893449805be") + (revision "3")) (package (name "go-sctp") (version (git-version "0.0.0" revision commit)) @@ -1757,7 +1791,7 @@ handling network namespaces in Go.") (file-name (git-file-name name version)) (sha256 (base32 - "1ba90fmpdwxa1ba4hrsjhi3gfy3pwmz7x8amw1p5dc9p5a7nnqrb")))) + "04463rnn9y9psp11ac5di6wrwxlhymw5h9hfhhhnxqwla90ikp0g")))) (build-system go-build-system) (arguments `(#:tests? #f ; Test suite is flakey. diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 4c28bb9283..0721d27dbf 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -49,14 +49,14 @@ (define-public python-bandit (package (name "python-bandit") - (version "1.6.2") + (version "1.7.4") (source (origin (method url-fetch) (uri (pypi-uri "bandit" version)) (sha256 (base32 - "0rb034c99pyhb4a60z7f2kz40cjydhm8m9v2blaal1rmhlam7rs1")))) + "1lkvf5ffdqa9504mm5fd9vvq0q5wdyqbkm32i4rswys1fg2shqrd")))) (build-system python-build-system) (arguments ;; The tests are disabled to avoid a circular dependency with @@ -77,25 +77,25 @@ scanning all the files it generates a report.") (define-public python-cliff (package (name "python-cliff") - (version "3.5.0") + (version "3.10.1") (source (origin (method url-fetch) (uri (pypi-uri "cliff" version)) (sha256 (base32 - "0n8pzr0mnn9lq2mykds69ij2xrn0fsirh4ndmkx0mzydbx5niysv")))) + "180059m5ky3hlw2m9fszh4h2ykja8zl7ql5dsxjijiv47hzywnh4")))) (build-system python-build-system) (arguments `(#:tests? #f)) (native-inputs (list python-pbr)) (propagated-inputs - (list python-cmd2 + (list python-autopage + python-cmd2 python-prettytable python-pyparsing python-pyyaml - python-bandit python-stevedore)) (home-page "https://opendev.org/openstack/cliff") (synopsis "Framework for building command line programs") diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 43ca40599f..2f7bd1f188 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1342,8 +1342,8 @@ environments.") (license (list license:gpl3+ license:agpl3+ license:silofl1.1)))) (define-public guix-build-coordinator - (let ((commit "3de63f1f66d5f0eb157ee60bc864404f386ee2b0") - (revision "53")) + (let ((commit "07b0b61d21a5ad2637271869414fa47eea34a8d9") + (revision "54")) (package (name "guix-build-coordinator") (version (git-version "0" revision commit)) @@ -1354,7 +1354,7 @@ environments.") (commit commit))) (sha256 (base32 - "1ld761c48ad925p3kisnjvad50p6hyk77z0yjcr29681n73xzzz4")) + "09zxwlkxngs6hx3hfd1gzrf99c07jdr0lslcms2nn8x77bdfp9i0")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -1650,8 +1650,8 @@ in an isolated environment, in separate namespaces.") (license license:gpl3+))) (define-public nar-herder - (let ((commit "042f49e5fb52ea844ed5d29c17b26fbc8ad49f0e") - (revision "8")) + (let ((commit "5acfcc0a9d99d78a167c365534aa5bf592f5625e") + (revision "9")) (package (name "nar-herder") (version (git-version "0" revision commit)) @@ -1662,7 +1662,7 @@ in an isolated environment, in separate namespaces.") (commit commit))) (sha256 (base32 - "1i9vwjdvkchwndjikqq3j73x0mvp3ny63s62ixql70yhpdgz5l69")) + "1mxdkay3l1la7b6m0455s8cansd6qcdhv0k231aik0ayhbck8kby")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -1693,6 +1693,7 @@ in an isolated environment, in separate namespaces.") "guile-gcrypt" "guix" "guile-lib" + "guile-lzlib" "guile-prometheus" "guile-sqlite3" "gnutls" @@ -1732,6 +1733,7 @@ in an isolated environment, in separate namespaces.") guile-fibers-1.1 guile-prometheus guile-lib + guile-lzlib guile-sqlite3)) (inputs (list bash-minimal @@ -1743,6 +1745,7 @@ in an isolated environment, in separate namespaces.") guile-fibers-1.1 guile-prometheus guile-lib + guile-lzlib guile-sqlite3 gnutls)) (home-page "https://git.cbaines.net/guix/nar-herder") diff --git a/gnu/packages/patches/cmh-support-fplll.patch b/gnu/packages/patches/cmh-support-fplll.patch new file mode 100644 index 0000000000..fae04f456b --- /dev/null +++ b/gnu/packages/patches/cmh-support-fplll.patch @@ -0,0 +1,27 @@ +Patch from the CMH git, after the 1.1.0 release. + +From 2328c819317dda2171217002268f57c74cedc476 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Emmanuel=20Thom=C3=A9?= <Emmanuel.Thome@inria.fr> +Date: Tue, 7 Jun 2022 12:17:05 -0700 +Subject: [PATCH] patch suggested by @x-YVicto + +--- + src/lll.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lll.cpp b/src/lll.cpp +index 83dab07..f005931 100644 +--- a/src/lll.cpp ++++ b/src/lll.cpp +@@ -37,7 +37,7 @@ + #ifdef HAVE_FPLLL + static void lll_fplll (mpz_t *v, mpz_t **M, const int m, const int n) + { +- ZZ_mat <mpz_t> Mp (m, n); ++ fplll::ZZ_mat <mpz_t> Mp (m, n); + int i, j; + + for (i = 0; i < m; i++) +-- +2.36.1 + diff --git a/gnu/packages/patches/docker-fix-tests.patch b/gnu/packages/patches/docker-fix-tests.patch deleted file mode 100644 index 3e3e318e25..0000000000 --- a/gnu/packages/patches/docker-fix-tests.patch +++ /dev/null @@ -1,28 +0,0 @@ -Author: Danny Milosavljevic <dannym@scratchpost.org> -The socket name ended up too long inside the container. -Use a shorter one. ---- a/pkg/authorization/authz_unix_test.go 2019-01-10 01:55:02.997985947 +0100 -+++ b/pkg/authorization/authz_unix_test.go 2019-01-10 02:03:21.177439757 +0100 -@@ -24,7 +24,7 @@ - ) - - const ( -- pluginAddress = "authz-test-plugin.sock" -+ pluginAddress = "/tmp/authz-test-plugin.sock" - ) - - func TestAuthZRequestPluginError(t *testing.T) { -@@ -263,12 +263,7 @@ - - // createTestPlugin creates a new sample authorization plugin - func createTestPlugin(t *testing.T) *authorizationPlugin { -- pwd, err := os.Getwd() -- if err != nil { -- t.Fatal(err) -- } -- -- client, err := plugins.NewClient("unix:///"+path.Join(pwd, pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true}) -+ client, err := plugins.NewClient("unix:///"+path.Join("/", pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true}) - if err != nil { - t.Fatalf("Failed to create client %v", err) - } diff --git a/gnu/packages/patches/phoronix-test-suite-fsdg.patch b/gnu/packages/patches/phoronix-test-suite-fsdg.patch new file mode 100644 index 0000000000..48d411e11d --- /dev/null +++ b/gnu/packages/patches/phoronix-test-suite-fsdg.patch @@ -0,0 +1,308 @@ +Submitted upstream at https://github.com/phoronix-test-suite/phoronix-test-suite/pull/642. + +diff --git a/delete-nonfree-metadata b/delete-nonfree-metadata +new file mode 100755 +index 000000000..e25e3b48c +--- /dev/null ++++ b/delete-nonfree-metadata +@@ -0,0 +1,195 @@ ++#!/usr/bin/env python3 ++ ++# Copyright (C) 2022, Maxim Cournoyer ++ ++# This program 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. ++ ++# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. ++ ++# Commentary: ++# ++# This script prunes the 'ob-cache' test metadata cache from any ++# nonfree test. This is useful for users who concerned with running ++# only free software or distributions complying with the Free Software ++# Distribution Guidelines (GNU FSDG, ++# https://www.gnu.org/distros/free-system-distribution-guidelines.html). ++import argparse ++import json ++import logging ++import pathlib ++import pprint ++import re ++import shutil ++import xml.etree.ElementTree as ET ++ ++ ++logger = logging.getLogger(__name__) ++logging.basicConfig(level='INFO', format='%(levelname)s: %(message)s') ++ ++ ++DEFAULT_ROOT_DIR = pathlib.Path(__file__).parent.resolve() ++# Global cache used to keep the test/suite definition licenses, keyed ++# by their test name key (e.g., 'caffe'). ++TEST_DEFINITION_LICENSES = {} ++ ++ ++def get_test_definitions(root_dir=DEFAULT_ROOT_DIR): ++ """Return the list of all test definition XML files.""" ++ return sorted(pathlib.Path(root_dir).glob('**/test-definition.xml')) ++ ++ ++def get_suite_definitions(root_dir=DEFAULT_ROOT_DIR): ++ return sorted(pathlib.Path(root_dir).glob('**/suite-definition.xml')) ++ ++ ++def get_index_files(root_dir=DEFAULT_ROOT_DIR): ++ return sorted(pathlib.Path(root_dir).glob('**/*.index')) ++ ++ ++def sanitize_index_files(index_files, nonfree_test_names): ++ """Remove non free test entries from `index_files`.""" ++ for index_file in index_files: ++ with index_file.open() as f: ++ index = json.load(f) ++ filtered_tests = {k: v for k, v in index['tests'].items() ++ if k not in nonfree_test_names} ++ index['tests'] = filtered_tests ++ if index['suites']: ++ filtered_suites = {k: v for k, v in index['suites'].items() ++ if k not in nonfree_test_names} ++ index['suites'] = filtered_suites ++ ++ with index_file.open('w') as f: ++ json.dump(index, f) ++ ++ ++def get_test_definition_license(test_definition_file, ++ root_dir=DEFAULT_ROOT_DIR): ++ """Return the licenses from `test_definition_file`, or None.""" ++ name = get_name_from_definition_file(test_definition_file) ++ if name in TEST_DEFINITION_LICENSES: ++ return TEST_DEFINITION_LICENSES[name] ++ ++ root = ET.parse(test_definition_file) ++ try: ++ license = next(root.iter('License')).text ++ except StopIteration: ++ # No license field; check if it extends another test. ++ try: ++ extended_test = next(root.iter('Extends')).text # e.g. 'pts/caffe' ++ extended_name = extended_test.split('/')[-1] ++ if extended_name in TEST_DEFINITION_LICENSES: ++ license = TEST_DEFINITION_LICENSES[extended_name] ++ else: ++ extended_definition_file = sorted( ++ pathlib.Path(root_dir).glob( ++ '**/test-profiles/' + extended_test ++ + '-*/test-definition.xml'))[-1] ++ license = get_test_definition_license(extended_definition_file, ++ root_dir) ++ except StopIteration: ++ logger.warning('could not find license for %s', ++ test_definition_file) ++ return None ++ ++ TEST_DEFINITION_LICENSES[name] = license ++ return license ++ ++ ++def is_test_definition_free(test_definition_file): ++ """True if `test_definition_file` has its license tag set to 'Free'.""" ++ license = get_test_definition_license(test_definition_file) ++ return license == 'Free' ++ ++ ++def is_suite_definition_free(suite_definition_file, nonfree_test_names): ++ """True if `suite_definition_file` is free. ++ ++ The suite definition is considered free when it doesn't reference ++ any test part of `nonfree_test_names`. ++ """ ++ root = ET.parse(suite_definition_file) ++ for test in root.iter('Test'): ++ test_name = test.text ++ name = test_name.split('/')[-1] # strip any prefix ++ if name in nonfree_test_names: ++ return False ++ ++ return True ++ ++ ++def get_name_from_definition_file(definition_file): ++ """Return the parent directory name of a definition file. ++ ++ The version information in stripped from the name.""" ++ parent_dir_name = pathlib.Path(definition_file).parent.name ++ # Strip the version from the name. ++ return re.search(r'^(.*)-', parent_dir_name).group(1) ++ ++ ++def get_default_user_config_file(root_dir): ++ return next(pathlib.Path(root_dir).glob('**/user-config-defaults.xml')) ++ ++ ++def disallow_refreshing_repositories(user_config_file): ++ """Set the 'AllowRefreshingRepositoryLists' option to FALSE.""" ++ config = ET.parse(user_config_file) ++ for option in config.iter('AllowRefreshingRepositoryLists'): ++ option.text = 'FALSE' ++ config.write(user_config_file) ++ ++ ++def main(root_dir): ++ # Gather data. ++ test_definitions = get_test_definitions(root_dir) ++ suite_definitions = get_suite_definitions(root_dir) ++ nonfree_test_definitions = [d for d in test_definitions ++ if not is_test_definition_free(d)] ++ nonfree_test_names = [get_name_from_definition_file(t) ++ for t in nonfree_test_definitions] ++ nonfree_suite_definitions = [ ++ s for s in suite_definitions ++ if not is_suite_definition_free(s, nonfree_test_names)] ++ nonfree_suite_names = [get_name_from_definition_file(s) ++ for s in nonfree_suite_definitions] ++ nonfree_definitions = nonfree_test_definitions + nonfree_suite_definitions ++ nonfree_definition_names = sorted(set(nonfree_test_names ++ + nonfree_suite_names)) ++ ++ # Delete nonfree definitions. ++ for nonfree_definition in nonfree_definitions: ++ shutil.rmtree(nonfree_definition.parent) ++ ++ # Delete nonfree entries in index files. ++ indexes = get_index_files(root_dir) ++ sanitize_index_files(indexes, nonfree_definition_names) ++ ++ logger.info('The following nonfree test suites were deleted:\n%s', ++ pprint.pformat([str(d) for d in nonfree_definitions])) ++ ++ # This is necessary to avoid downloading the ++ # OpenBenchmarking-provided tests metadata which includes all the ++ # tests, including teh proprietary ones. ++ user_config_file = get_default_user_config_file(root_dir) ++ disallow_refreshing_repositories(user_config_file) ++ logger.info('Disabled test metadata updates in default user config') ++ ++ ++if __name__ == '__main__': ++ parser = argparse.ArgumentParser( ++ description='Remove nonfree cached metadata') ++ parser.add_argument('--root-dir', type=str, ++ help='the Phoronix Test Suite root directory', ++ default=DEFAULT_ROOT_DIR) ++ args = parser.parse_args() ++ ++ main(args.root_dir) +diff --git a/documentation/phoronix-test-suite.md b/documentation/phoronix-test-suite.md +index c2e04ae4e..0c71ecf37 100644 +--- a/documentation/phoronix-test-suite.md ++++ b/documentation/phoronix-test-suite.md +@@ -817,7 +817,18 @@ The Phoronix Test Suite can be simply extracted from the downloaded *.tar.gz* or + + + ### Generic Installation +-Running *install-sh* from the root directory of the Phoronix Test Suite will install the software for system-wide access. By default the *phoronix-test-suite* executable is in */usr/bin/* , the Phoronix Test Suite files in */usr/share/phoronix-test-suite/* , and the documentation in / *usr/share/doc/phoronix-test-suite/* . Root access is required. The default installation prefix is /usr/ but can be adjusted as the first argument (example: *install-sh /home/user/* to install the Phoronix Test Suite in your home directory). ++Running *install-sh* from the root directory of the Phoronix Test ++Suite will install the software for system-wide access. By default the ++*phoronix-test-suite* executable is in */usr/bin/* , the Phoronix Test ++Suite files in */usr/share/phoronix-test-suite/* , and the ++documentation in / *usr/share/doc/phoronix-test-suite/* . Root access ++is required. The default installation prefix is /usr/ but can be ++adjusted as the first argument (example: *install-sh /home/user/* to ++install the Phoronix Test Suite in your home directory). Use the ++`--free-software-only` option of the `install-sh` script if you'd like ++to be offered only test profiles and suites relying on free software ++only. Note that this option disables the automatic fetching of new ++tests definitions from OpenBenchmarking.org. + + + ### Debian/Ubuntu Installation +@@ -937,6 +948,11 @@ If this option is set to *TRUE* , the system logs (i.e. dmesg, lspci, lsusb, Xor + #### AllowResultUploadsToOpenBenchmarking + This option defines whether to allow/support result uploads to OpenBenchmarking.org. If set to *FALSE* , the user will not be prompted to allow uploading of test results to the public site. + ++#### AllowRefreshingRepositoryLists ++This option defines whether to allow refreshing the test profiles ++(metadata) content from OpenBenchmarking.org. If set to *FALSE* , ++only the locally available test profiles will be used, and no updates ++will made to it. + + ## General Options + #### DefaultBrowser +diff --git a/install-sh b/install-sh +index f6228cde9..ff9bf9bd7 100755 +--- a/install-sh ++++ b/install-sh +@@ -1,4 +1,5 @@ + #!/bin/sh ++set -e + + # Phoronix Test Suite + # URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/ +@@ -28,6 +29,13 @@ else + INSTALL_PREFIX="$1" + fi + ++# XXX: Perhaps this should be the default? ++for arg in "$@"; do ++ if [ "$arg" = "--free-software-only" ]; then ++ FREE_SOFTWARE_ONLY=yes ++ fi ++done ++ + # Ensure the user is in the correct directory + if [ ! -f pts-core/phoronix-test-suite.php ] + then +@@ -114,6 +122,11 @@ else + + fi + ++# Post-installation process. ++if [ -n FREE_SOFTWARE_ONLY ]; then ++ ./delete-nonfree-metadata --root-dir="$DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/" ++fi ++ + echo -e "\nPhoronix Test Suite Installation Completed\n + Executable File: $INSTALL_PREFIX/bin/phoronix-test-suite + Documentation: $INSTALL_PREFIX/share/doc/phoronix-test-suite/ +@@ -124,4 +137,3 @@ then + echo "Installed to chroot: $DESTDIR" + echo "Please update your desktop and mime-database manually" + fi +- +diff --git a/pts-core/objects/pts_openbenchmarking.php b/pts-core/objects/pts_openbenchmarking.php +index 081f55c31..e9396ea36 100644 +--- a/pts-core/objects/pts_openbenchmarking.php ++++ b/pts-core/objects/pts_openbenchmarking.php +@@ -330,6 +330,11 @@ class pts_openbenchmarking + } + public static function refresh_repository_lists($repos = null, $force_refresh = false) + { ++ if(!pts_config::read_bool_config('PhoronixTestSuite/Options/OpenBenchmarking/AllowRefreshingRepositoryLists', true)) ++ { ++ return true; ++ } ++ + if($repos == null) + { + if($force_refresh == false) +diff --git a/pts-core/static/user-config-defaults.xml b/pts-core/static/user-config-defaults.xml +index 878c5137f..c9a67df5f 100644 +--- a/pts-core/static/user-config-defaults.xml ++++ b/pts-core/static/user-config-defaults.xml +@@ -6,6 +6,7 @@ + <IndexCacheTTL>3</IndexCacheTTL> + <AlwaysUploadSystemLogs>FALSE</AlwaysUploadSystemLogs> + <AllowResultUploadsToOpenBenchmarking>TRUE</AllowResultUploadsToOpenBenchmarking> ++ <AllowRefreshingRepositoryLists>TRUE</AllowRefreshingRepositoryLists> + </OpenBenchmarking> + <General> + <DefaultBrowser></DefaultBrowser> diff --git a/gnu/packages/pep.scm b/gnu/packages/pep.scm index d245ac74a3..f443170aa5 100644 --- a/gnu/packages/pep.scm +++ b/gnu/packages/pep.scm @@ -33,6 +33,7 @@ #:use-module (gnu packages mail) ; for libetpan #:use-module (gnu packages nettle) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages sequoia) #:use-module (gnu packages sqlite) diff --git a/gnu/packages/presentation.scm b/gnu/packages/presentation.scm index 1601ba7f2a..1472a2fcc1 100644 --- a/gnu/packages/presentation.scm +++ b/gnu/packages/presentation.scm @@ -51,6 +51,11 @@ `(#:tests? #f ; Test suite hasn't withstood the test of time. #:phases (modify-phases %standard-phases + (add-after 'unpack 'loosen-requirements + (lambda _ + ;; Remove version pinning. + (substitute* "requirements.txt" + (("pbr>=.*") "pbr")))) (replace 'wrap (lambda* (#:key python inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -68,8 +73,9 @@ "/site-packages") (search-path-as-string->list (or (getenv "GUIX_PYTHONPATH") "")))))) - '("presentty" "presentty-console"))) - #t))))) + '("presentty" "presentty-console"))))) + ;; XXX: console import test fails to find palette.py from the lib? + (delete 'sanity-check)))) (inputs (list cowsay figlet diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm index d85463ebab..e7023aca0c 100644 --- a/gnu/packages/python-build.scm +++ b/gnu/packages/python-build.scm @@ -1,4 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> @@ -403,3 +404,73 @@ specified by PEP 517, @code{flit_core.buildapi}.") (propagated-inputs (modify-inputs (package-propagated-inputs python-flit-core-bootstrap) (replace "python-toml" python-tomli))))) + +(define-public python-flit-scm + (package + (name "python-flit-scm") + (version "1.6.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "flit_scm" version)) + (sha256 + (base32 + "0p3lj2g1643m2dm14kihvfb6gn6jviglhm3dzdpn2c8zpqs17svg")))) + (build-system python-build-system) + (arguments + (list + #:tests? #f ;no test suite + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'relax-setuptools-scm-version + (lambda _ + (substitute* "pyproject.toml" + (("setuptools_scm~=6.4") + "setuptools_scm>=6.3")))) + ;; XXX: PEP 517 manual build/install procedures copied from + ;; python-isort. + (replace 'build + (lambda _ + ;; ZIP does not support timestamps before 1980. + (setenv "SOURCE_DATE_EPOCH" "315532800") + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output whl))))))) + (native-inputs + (list python-pypa-build + python-flit-core + python-setuptools-scm + python-tomli)) + (propagated-inputs + (list python-flit-core + python-setuptools-scm + python-tomli)) + (home-page "https://gitlab.com/WillDaSilva/flit_scm") + (synopsis "PEP 518 build backend combining flit_core and setuptools_scm") + (description "This package provides a PEP 518 build backend that uses +@code{setuptools_scm} to generate a version file from your version control +system, then @code{flit_core} to build the package.") + (license license:expat))) + +(define-public python-setuptools-scm + (package + (name "python-setuptools-scm") + (version "6.3.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "setuptools_scm" version)) + (sha256 + (base32 "1wm0i27siyy1yqr9rv7lqvb65agay9051yi8jzmi8dgb3q4ai6m4")))) + (build-system python-build-system) + (propagated-inputs + `(("python-packaging",python-packaging-bootstrap) + ("python-tomli" ,python-tomli))) + (home-page "https://github.com/pypa/setuptools_scm/") + (synopsis "Manage Python package versions in SCM metadata") + (description + "Setuptools_scm handles managing your Python package versions in +@dfn{software configuration management} (SCM) metadata instead of declaring +them as the version argument or in a SCM managed file.") + (license license:expat))) diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index c39b4e2ed1..1e59911299 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019, 2021 Hartmut Goebel <h.goebel@crazy-compilers.com> -;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2020, 2022 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com> ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> @@ -2324,3 +2324,32 @@ provided for the main Python test runners.") (description "This package provides a pytest fixture to mock httpx requests to be replied to with user provided responses.") (license license:expat))) + +(define-public python-pycotap + (package + (name "python-pycotap") + (version "1.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pycotap" version)) + (sha256 + (base32 "1v69fxial9i5wlap6wc4igq3hydvxbak7dlgb7cikk8wjgafqf7r")))) + (build-system python-build-system) + (home-page "https://el-tramo.be/pycotap") + (synopsis "Tiny Python TAP test runner") + (description "This package provides a simple Python test runner for +unittest that outputs Test Anything Protocol (TAP) results to standard +output. Contrary to other TAP runners for Python, pycotap... +@itemize +@item +prints TAP (and only TAP) to standard output instead of to a separate file, +allowing you to pipe it directly to TAP pretty printers and processors; +@item only contains a TAP reporter, so no parsers, no frameworks, no +dependencies, etc; +@item +is configurable: you can choose how you want the test output and test result +diagnostics to end up in your TAP output (as TAP diagnostics, YAML blocks, or +attachments). +@end itemize") + (license license:expat))) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index f2059dbbf5..f4e01198f5 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -26,6 +26,7 @@ ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2022 Antero Mejr <antero@mailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1651,3 +1652,29 @@ It does not provide such an implementation itself -- this is just the scaffolding for the command line, which should make it relatively easy to supply a handful of python functions as methods to a class.") (license license:expat))) ; MIT license + +(define-public python-starkbank-ecdsa + (package + (name "python-starkbank-ecdsa") + (version "2.0.3") + (home-page "https://github.com/starkbank/ecdsa-python") + (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 + "1k9h4p0frkgj76vrqfjim4mik98g09mivdxxcmxr6raa5jwr83sh")))) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'remove-broken-test + (lambda _ + (delete-file "tests/testOpenSSL.py")))))) + (build-system python-build-system) + (native-inputs (list python-pytest)) + (synopsis "Python ECDSA library") + (description "This package provides a Python ECDSA library, optimized for +speed but without C extensions.") + (license license:expat))) diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 56f109e3d5..35daef2815 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -1088,7 +1088,7 @@ computing in Python. It extends both the @code{concurrent.futures} and (define-public python-modin (package (name "python-modin") - (version "0.10.1") + (version "0.15.1") (source (origin ;; The archive on pypi does not include all required files. @@ -1099,7 +1099,7 @@ computing in Python. It extends both the @code{concurrent.futures} and (file-name (git-file-name name version)) (sha256 (base32 - "128ghfb9ncmnn8km409xjcdppvn9nr9jqw8rkvsfavh7wnwlk509")))) + "0nf2pdqna2vn7vq7q7b51f3cfbrxfn77pyif3clibjsxzvfm9k03")))) (build-system python-build-system) (arguments `(#:phases diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index b4500c6d2f..e48e4773df 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -51,6 +51,7 @@ ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; Copyright © 2022 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io> +;;; Copyright © 2022 Antero Mejr <antero@mailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1423,26 +1424,24 @@ C, yielding parse times that can be a thirtieth of the html5lib parse times.") (define-public python-minio (package (name "python-minio") - (version "6.0.0") + (version "7.1.9") (source (origin (method url-fetch) (uri (pypi-uri "minio" version)) (sha256 (base32 - "1cxpa0m7mdvpdbc1g6wlihq6ja4g4paxkl6f3q84bbnx07zpbllp")))) + "02nh865xbf2glxvcy70ir6gkcwqxl119zryfc70q7w0yjvkg64d7")))) (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))))) + (delete-file "tests/unit/credentials_test.py")))))) (native-inputs (list python-faker python-mock python-nose)) (propagated-inputs - (list python-certifi python-configparser python-dateutil python-pytz - python-urllib3)) + (list python-certifi python-dateutil python-pytz python-urllib3)) (home-page "https://github.com/minio/minio-py") (synopsis "Programmatically access Amazon S3 from Python") (description @@ -1808,7 +1807,7 @@ another XPath engine to find the matching elements in an XML or HTML document.") (define-public python-databricks-cli (package (name "python-databricks-cli") - (version "0.14.1") + (version "0.17.0") (home-page "https://github.com/databricks/databricks-cli") (source (origin (method git-fetch) @@ -1816,21 +1815,25 @@ another XPath engine to find the matching elements in an XML or HTML document.") (file-name (git-file-name name version)) (sha256 (base32 - "03w19rzh72jll9phai23wp0c2mlv39qsrv50mhckziy39z60yxh8")))) + "1qwbxnx64kw7lrzlyx3hfbnjxpc19cqvvj0gcrkqpyjsgd08vja0")))) (build-system python-build-system) (arguments - `(#:phases (modify-phases %standard-phases + '(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - (invoke "pytest" "tests" "-vv" - ;; XXX: This fails with newer Pytest - ;; (upstream uses Pytest 3..). - "-k" "not test_get_request_with_list")))))) + (invoke "pytest" "tests" "-vv")))))) (native-inputs - (list ;; For tests. - python-decorator python-mock python-pytest python-requests-mock)) + ;; For tests. + (list python-decorator + python-mock + python-pytest + python-requests-mock)) (propagated-inputs - (list python-click python-configparser python-requests python-six + (list python-click + python-oauthlib + python-pyjwt + python-requests + python-six python-tabulate)) (synopsis "Command line interface for Databricks") (description @@ -4196,13 +4199,13 @@ addon modules.") (define-public python-bottle (package (name "python-bottle") - (version "0.12.19") + (version "0.12.21") (source (origin (method url-fetch) (uri (pypi-uri "bottle" version)) (sha256 - (base32 "0b6s50vc4iad97b6bb3xnyrgajb3nj6n6jbr5p54a4vapky3zmx9")))) + (base32 "0zl8sy4dhafyxqpavy7pjz0qzpakmhgh2qr6pwlw5f82rjv62z3q")))) (build-system python-build-system) (home-page "https://bottlepy.org/") (synopsis "WSGI framework for small web-applications") @@ -6328,7 +6331,16 @@ the @code{BasicRouter}.") (arguments ;; PyPi sources does not contain tests, recursive dependency on ;; python-sanic. - (list #:tests? #f)) + (list #:tests? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'loosen-requirements + (lambda _ + ;; Don't place an upper boundary on httpx version. + ;; https://github.com/sanic-org/sanic-testing/pull/39 + (substitute* "setup.py" + (("httpx>=0\\.18,<0\\.23") + "httpx>=0.18"))))))) (propagated-inputs (list python-httpx python-sanic-bootstrap python-websockets)) (home-page "https://github.com/sanic-org/sanic-testing/") @@ -7535,3 +7547,50 @@ resources using Web Application Description Language (WADL) files as guides.") @end itemize") (license license:expat))) +(define-public python-http-client + (package + (name "python-http-client") + (version "3.3.7") + (home-page "https://github.com/sendgrid/python-http-client") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0z0ziw3f4zw5fj4spiwhhs2x8qs3i5999ry2p6a5sc8b1lkkj2zi")) + (snippet #~(begin + (use-modules (guix build utils)) + (delete-file "tests/profile.py"))))) + (build-system python-build-system) + (synopsis "HTTP REST client for Python") + (description + "This package provides access to any RESTful or RESTful-like API.") + (license license:expat))) + +(define-public python-sendgrid + (package + (name "python-sendgrid") + (version "6.9.7") + (home-page "https://github.com/sendgrid/sendgrid-python/") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0kvp4gm3bpcsj2mkv05pgvlcv1jlsfhcljcv61wz5kq9d273h7rg")))) + (build-system python-build-system) + (arguments + (list #:tests? #f)) ;241/340 tests fail due to attempted web access + (propagated-inputs (list python-http-client python-starkbank-ecdsa)) + (synopsis "SendGrid API library for Python") + (description + "The @code{sendgrid} Python library allows access to the +SendGrid Web API v3. Version 3+ of the library provides full support for all +SendGrid Web API v3 endpoints, including the new v3 /mail/send.") + (license license:expat))) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 75682be6ab..08986569b3 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2949,6 +2949,48 @@ software.") (inherit (package-with-python2 scons)) (name "scons-python2"))) +(define-public python-exceptiongroup + (package + (name "python-exceptiongroup") + (version "1.0.0rc8") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/agronholm/exceptiongroup") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xsbpv22n51p6yvyvz231mf8zhbi1i88b4zmacaxxx31zrq5ifv4")))) + (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + ;; XXX: PEP 517 manual build/install procedures copied from + ;; python-isort. + (replace 'build + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version) + ;; ZIP does not support timestamps before 1980. + (setenv "SOURCE_DATE_EPOCH" "315532800") + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output whl)))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv" "tests"))))))) + (native-inputs (list python-flit-scm python-pypa-build python-pytest)) + (home-page "https://github.com/agronholm/exceptiongroup") + (synopsis "PEP 654 backport from Python 3.11") + (description "This is a backport of the @code{BaseExceptionGroup} and +@code{ExceptionGroup} classes from Python 3.11.") + (license license:expat))) + (define-public python-extension-helpers (package (name "python-extension-helpers") @@ -5038,7 +5080,7 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.") (define-public python-pydantic (package (name "python-pydantic") - (version "1.9.0") + (version "1.9.1") (source (origin (method git-fetch) @@ -5047,32 +5089,11 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "14wj3k9007fpbxk7593w6gdqrr68yzrsw4a41sj5ji4cv3r8z18b")))) + (base32 "1406kgppqa7524mxllsipj7gb8fn7pwf51l11lqik59xjhsfv94f")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'check 'disable-test - (lambda _ - ;; Reported upstream: - ;; <https://github.com/samuelcolvin/pydantic/issues/1580>. - ;; Disable the faulty test as the fix is unclear. - (substitute* "tests/test_validators.py" - (("test_assert_raises_validation_error") - "_test_assert_raises_validation_error")) - - ;; These fail because of <https://bugs.python.org/issue40398>. - ;; Remove after Python has been upgraded to >= 3.9. - (substitute* "tests/test_generics.py" - (("assert replace_types\\(Callable, \\{T: int\\}\\) == Callable") - "")) - (substitute* "tests/test_schema.py" - (("test_unenforced_constraints_schema") - "_test_unenforced_constraints_schema")) - - ;; Disable tests for the Hypothesis plugin because it is tricky - ;; to configure in the build container. - (delete-file "tests/test_hypothesis_plugin.py"))) (replace 'check (lambda _ (invoke "pytest" "-vv")))))) (native-inputs @@ -5132,7 +5153,6 @@ Server (PLS).") "not test_pyqt_completion")))))) (propagated-inputs (list python-autopep8 - python-configparser python-pydocstyle python-flake8 python-future @@ -6668,6 +6688,58 @@ multivalue dictionary that retains the order of insertions and deletions.") run simple @code{argparse} parsers from function signatures.") (license license:lgpl3+))) +(define-public python-autopage + (package + (name "python-autopage") + (version "0.5.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "autopage" version)) + (sha256 + (base32 + "169ixll1ncm2a2pcc86665ikjv2lrzs10p6c1w4yj55p3gk3xgh1")))) + (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + ;; Do a manual PEP 517 style build/install procedure until the + ;; python-build-system overhaul is merged. + (replace 'build + (lambda _ + ;; ZIP does not support timestamps before 1980. + (let ((circa-1980 (* 10 366 24 60 60))) + (setenv "SOURCE_DATE_EPOCH" (number->string circa-1980)) + (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))) + (add-before 'check 'disable-e2e-tests + (lambda _ + ;; These tests rely on KeyboardInterrupts which do not + ;; work in the build container. + (delete-file "autopage/tests/test_end_to_end.py"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv")))) + (replace 'install + (lambda _ + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output whl))))))) + (native-inputs + (list python-pypa-build + python-setuptools + python-wheel + ;; For tests. + python-fixtures + python-pytest + python-testtools)) + (home-page "https://github.com/zaneb/autopage") + (synopsis "Automatic paging for console output") + (description + "Autopage is a Python library to automatically display terminal output +from a program in a @dfn{pager} such as @command{less}.") + (license license:asl2.0))) + (define-public python-autopep8 (package (name "python-autopep8") @@ -7783,27 +7855,6 @@ Pexpect works like Don Libes’ Expect. Pexpect allows your script to spawn a child application and control it as if a human were typing commands.") (license license:isc))) -(define-public python-setuptools-scm - (package - (name "python-setuptools-scm") - (version "6.3.2") - (source (origin - (method url-fetch) - (uri (pypi-uri "setuptools_scm" version)) - (sha256 - (base32 "1wm0i27siyy1yqr9rv7lqvb65agay9051yi8jzmi8dgb3q4ai6m4")))) - (build-system python-build-system) - (propagated-inputs - `(("python-packaging",python-packaging-bootstrap) - ("python-tomli" ,python-tomli))) - (home-page "https://github.com/pypa/setuptools_scm/") - (synopsis "Manage Python package versions in SCM metadata") - (description - "Setuptools_scm handles managing your Python package versions in -@dfn{software configuration management} (SCM) metadata instead of declaring -them as the version argument or in a SCM managed file.") - (license license:expat))) - (define-public python-sexpdata (package (name "python-sexpdata") @@ -8298,25 +8349,24 @@ cluster down and deletes the throwaway profile.") (define-public python-ipython-sql (package (name "python-ipython-sql") - (version "0.4.0") + (version "0.4.1") (source (origin (method url-fetch) (uri (pypi-uri "ipython-sql" version)) (sha256 - (base32 "0v74ayc6vw98f4jljmwy45qpqbcbhlrb4g1qdyypq9sppxcqx21y")))) + (base32 "1r6rz8jgrqzhkf2flwjw75d96g8l7kykmx5wli3q1988w96391ip")))) (build-system python-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-build - (lambda _ - ;; The "NEWS.rst" file is missing from the PyPI distribution. - ;; (see: https://github.com/catherinedevlin/ipython-sql/issues/164) - (substitute* "setup.py" - (("NEWS = [^\n]*") "") - (("long_description=README \\+ '\\\\n\\\\n' \\+ NEWS,") - "long_description=README,"))))))) + (list #:tests? #f ;must run under IPython + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'permit-newer-prettytable + ;; See https://github.com/catherinedevlin/ipython-sql/issues/202 + (lambda _ + (substitute* "setup.py" + (("prettytable<1") + "prettytable"))))))) (propagated-inputs (list python-ipython python-ipython-genutils @@ -9956,7 +10006,25 @@ applications.") (method url-fetch) (uri (pypi-uri "pyzmq" version)) (sha256 - (base32 "0737kizh53n4rjq1xbm6nhr0bq65xflg04i1d8fcky0nwwrw1pcf")))) + (base32 "0737kizh53n4rjq1xbm6nhr0bq65xflg04i1d8fcky0nwwrw1pcf")) + (snippet + #~(begin + (use-modules (guix build utils)) + ;; The bundled zeromq source code. + (delete-file-recursively "bundled") + ;; Delete cythonized files. + (for-each delete-file + (list "zmq/backend/cython/constants.c" + "zmq/backend/cython/context.c" + "zmq/backend/cython/_device.c" + "zmq/backend/cython/error.c" + "zmq/backend/cython/message.c" + "zmq/backend/cython/_poll.c" + "zmq/backend/cython/_proxy_steerable.c" + "zmq/backend/cython/socket.c" + "zmq/backend/cython/utils.c" + "zmq/backend/cython/_version.c" + "zmq/devices/monitoredqueue.c")))))) (build-system python-build-system) (arguments `(#:configure-flags @@ -11454,14 +11522,15 @@ distribution. It is not intended as an end-user tool.") (define-public python-immutables (package (name "python-immutables") - (version "0.14") + (version "0.18") (source (origin (method url-fetch) (uri (pypi-uri "immutables" version)) (sha256 - (base32 "0y0aqw29g525frdnmv9paljzacpp4s21sadfbca5b137iciwr8d0")))) + (base32 "1x4cinh0xbl6p6p2yfm2s07mxxy3lf0zzai9gqpydk4482bwfdjk")))) (build-system python-build-system) + (native-inputs (list python-mypy python-pytest)) (home-page "https://github.com/MagicStack/immutables") (synopsis "High-performance immutable mapping type for Python") (description @@ -11473,16 +11542,28 @@ functional languages.") (define-public python-prettytable (package (name "python-prettytable") - (version "0.7.2") + (version "3.3.0") (source (origin (method url-fetch) - (uri (pypi-uri "prettytable" version ".tar.bz2")) + (uri (pypi-uri "prettytable" version)) (sha256 (base32 - "0diwsicwmiq2cpzpxri7cyl5fmsvicafw6nfqf6p6p322dji2g45")))) + "1c599w31i2ndzbkn85xwsgv9sd2j16r56dl922w4jh3rs97vb3hi")))) (build-system python-build-system) - (home-page "https://code.google.com/archive/p/prettytable/") + (arguments + (list #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv"))))))) + (native-inputs + (list python-pytest + python-pytest-lazy-fixture + python-setuptools-scm)) + (propagated-inputs (list python-wcwidth)) + (home-page "https://github.com/jazzband/prettytable") (synopsis "Display tabular data in an ASCII table format") (description "A library designed to represent tabular data in visually appealing ASCII @@ -13063,7 +13144,7 @@ time.") texlive-zapfding)))) (home-page "https://jupyter.org") (synopsis "Converting Jupyter Notebooks") - (description "The @code{nbconvert} tool, @{jupyter nbconvert}, converts + (description "The @code{nbconvert} tool, @code{jupyter nbconvert}, converts notebooks to various other formats via Jinja templates. It allows you to convert an @code{.ipynb} notebook file into various static formats including: @@ -16133,7 +16214,7 @@ focus on event-based network programming and multiprotocol integration.") (define-public python-pika (package (name "python-pika") - (version "1.2.0") + (version "1.2.1") (source (origin (method git-fetch) @@ -16143,27 +16224,29 @@ focus on event-based network programming and multiprotocol integration.") (file-name (git-file-name name version)) (sha256 (base32 - "0cm45xydk2jigydwszwik89qlbk6l3l18sxhzppzqmxw2rdkm22s")))) + "0sqj3bg6jwign8vwvn337fbwy69sm684ns1vh5kbfnskq4him9i2")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'check 'disable-live-tests + (add-after 'unpack 'disable-live-tests (lambda _ ;; Disable tests that require RabbitMQ, which is not ;; yet available in Guix. - (substitute* "setup.cfg" - (("tests/unit,tests/acceptance") - "tests/unit")) + (substitute* "nose2.cfg" + (("tests=tests/unit,tests/acceptance") + "start-dir=tests/unit")) (with-directory-excursion "tests" (for-each delete-file '("unit/base_connection_tests.py" "unit/threaded_test_wrapper_test.py"))))) (replace 'check - (lambda _ - (invoke "nosetests")))))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "PYTHONPATH" (getcwd)) + (invoke "nose2" "-v"))))))) (native-inputs (list python-mock - python-nose + python-nose2 ;; These are optional at runtime, and provided here for tests. python-gevent python-tornado @@ -16493,6 +16576,73 @@ smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves.") (license license:asl2.0))) +(define-public python-cattrs + (package + (name "python-cattrs") + (version "22.1.0") + (source (origin + (method git-fetch) ;for tests + (uri (git-reference + (url "https://github.com/python-attrs/cattrs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1n0h25gj6zd02kqyl040xpdvg4hpy1j92716sz0rg019xjqqijqb")))) + (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + ;; XXX: PEP 517 manual build copied from python-isort. + (add-after 'unpack 'adjust-for-older-attrs + ;; Our older attrs package is using the 'attr' rather than 'attrs' + ;; namespace. + ;; TODO: Remove after python-attrs is updated to >= 21.4.0. + (lambda _ + (substitute* (find-files "." "\\.py$") + (("from attrs\\b") + "from attr")))) + (replace 'build + (lambda _ + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (replace 'install + (lambda _ + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output whl)))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; Do not use the 'pytest' binary as it hard-codes an older + ;; python-hypothesis version near the beginning of its + ;; GUIX_PYTHONPATH. + (invoke "python" "-m" "pytest" "-vv" "-c" "/dev/null" "tests" + "-n" (number->string (parallel-job-count)) + ;; This test requires orjson, which needs the maturin + ;; build system and new Rust dependencies. + "--ignore" "tests/test_preconf.py"))))))) + (native-inputs + (list python-hypothesis-next + python-immutables + python-msgpack + python-poetry-core + python-pymongo ;for the bson module + python-pypa-build + python-pytest + python-pytest-xdist)) + (propagated-inputs + (list python-attrs + python-exceptiongroup + python-typing-extensions)) + (home-page "https://github.com/python-attrs/cattrs") + (synopsis "Python library for structuring and unstructuring data") + (description "@code{cattrs} is an Python library for structuring and +unstructuring data. @code{cattrs} works best with @code{attrs} classes, +@code{dataclasses} and the usual Python collections, but other kinds of +classes can also be supported by manually registering converters.") + (license license:expat))) + (define-public python-cachy (package (name "python-cachy") @@ -17003,17 +17153,31 @@ scans through a file and detects issues.") (file-name (git-file-name name version)) (sha256 (base32 - "07drmi3ai49jw5n23ibkambcgijqcw073ihypjgxfnks5lv4yqy1")))) + "07drmi3ai49jw5n23ibkambcgijqcw073ihypjgxfnks5lv4yqy1")) + (modules '((guix build utils))) + (snippet + ;; Adjust comprehension syntax for Python > 3.8. + ;; From <https://github.com/davidhalter/jedi/issues/1824>. + '(substitute* "test/completion/lambdas.py" + (("if lambda: 3") + "if (lambda: 3)"))))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-completion-test + (lambda _ + ;; This resolves a failure in the 'test_completion' test (see: + ;; https://github.com/davidhalter/jedi/issues/1824). + ;; TODO: Remove after a new release is made (currently: 0.18.1). + (substitute* "test/completion/lambdas.py" + (("\\[a for a in \\[1,2\\] if lambda: 3\\]\\[0\\]") + "[a for a in [1,2] if (lambda: 3)][0]")))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? (setenv "HOME" "/tmp") - (invoke "python" "-m" "pytest" "-vv")) - #t))))) + (invoke "python" "-m" "pytest" "-vv"))))))) (native-inputs (list python-colorama python-docopt python-pytest)) (propagated-inputs @@ -17458,6 +17622,50 @@ multitouch applications.") Design spec without sacrificing ease of use or application performance.") (license license:expat))) +(define-public python-asynckivy + (package + (name "python-asynckivy") + (version "0.5.3") + (source + (origin + (method url-fetch) + (uri + (pypi-uri "asynckivy" version)) + (sha256 + (base32 "0ivjvch8yn3k1ybfp7c1nm8mhc0ymg7d04mq54lly7yjvg0jvcni")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'set-home + (lambda _ + ;; 'kivy/__init__.py' wants to create $HOME/.kivy. + (setenv "HOME" (getcwd))))))) + (propagated-inputs (list python-kivy python-asyncgui)) + (home-page "https://github.com/gottadiveintopython/asynckivy") + (synopsis "Async library for Kivy") + (description + "This package provides async versions of Kivy functions to avoid the +callback-heavy mode of interaction typical in some Kivy applications.") + (license license:expat))) + +(define-public python-asyncgui + (package + (name "python-asyncgui") + (version "0.5.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "asyncgui" version)) + (sha256 + (base32 + "0614130afg2qc1qq4p82piskvvx6lpjl4nlsakbjzdyd78xywnb7")))) + (build-system python-build-system) + (home-page "https://github.com/gottadiveintopython/asyncgui") + (synopsis "Enables async/await without an event loop") + (description "This package provides support for async/await applications +without requiring an event loop, useful for creative responsive GUIs.") + (license license:expat))) + (define-public python-binaryornot (package (name "python-binaryornot") @@ -17591,13 +17799,13 @@ JSON) codec.") (define-public python-pymongo (package (name "python-pymongo") - (version "3.7.2") + (version "4.1.1") (source (origin (method url-fetch) (uri (pypi-uri "pymongo" version)) (sha256 (base32 - "0zis4707r9hdg5qgkhp3wss9camr9h56ixyfc8n9dxwlnnly4x4c")))) + "1m9hc2a4kgg10xy3g5x00z4a7rrk9s0rbf5qfypwnhq0kdfg5f6p")))) (build-system python-build-system) (propagated-inputs (list python-certifi)) @@ -21383,20 +21591,23 @@ time-based (TOTP) passwords.") (define-public python-parso (package (name "python-parso") - (version "0.8.2") + (version "0.8.3") (source (origin (method url-fetch) (uri (pypi-uri "parso" version)) (sha256 - (base32 "161k8771m7w60qakyvrwf9q62lvakmix7mpfylpy7713qs939f0j")))) + (base32 "185gkxq92kqiw2h5zp1cmyn04055x0lix4hmi5c077xm1clvw1wc")))) (native-inputs (list python-pytest)) (build-system python-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (replace 'check - (lambda _ (invoke "pytest" "-vv")))))) + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv"))))))) (home-page "https://github.com/davidhalter/parso") (synopsis "Python Parser") (description "Parso is a Python parser that supports error recovery and @@ -25151,23 +25362,30 @@ choose to use Base64 without the “=” padding.") (license license:asl2.0))) (define-public python-py-cpuinfo - (package - (name "python-py-cpuinfo") - (version "5.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "py-cpuinfo" version)) - (sha256 - (base32 - "0045y6832gqjg63jmw0qj2jwyypgjwr7sfdq3lfv49b6fxpl5xic")))) - (build-system python-build-system) - (home-page "https://github.com/workhorsy/py-cpuinfo") - (synopsis "Get CPU info with Python") - (description - "This Python module returns the CPU info by using the best sources of + ;; This is the first commit where riscv64-linux support is available. + ;; We can move back to pypi releases with the next release. + (let ((commit "4d6987e5c30f2ebacb20781892c01329042cce60") + (revision "1")) + (package + (name "python-py-cpuinfo") + (version (git-version "8.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/workhorsy/py-cpuinfo") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0h5wi1bfcqqr1x3j1pa7dmkx7siprsyksbsy80fl2sdrrgpji0b0")))) + (build-system python-build-system) + (home-page "https://github.com/workhorsy/py-cpuinfo") + (synopsis "Get CPU info with Python") + (description + "This Python module returns the CPU info by using the best sources of information for your operating system.") - (license license:expat))) + (license license:expat)))) (define-public python-canonicaljson (package diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 5df217cc2e..1eeabbb809 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -132,6 +132,42 @@ useful in modems implemented with @dfn{digital signal processing} (DSP).") (license license:lgpl2.1)))) +(define-public libcorrect + (let ((commit "f5a28c74fba7a99736fe49d3a5243eca29517ae9") + (revision "1")) + (package + (name "libcorrect") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/quiet/libcorrect") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qc9k8x51k2xfvp6cx8vdiyb3g6fl1y657z4m201aw2m06hs1hzg")))) + (build-system cmake-build-system) + (arguments + (list + #:test-target "check" + #:phases + #~(modify-phases %standard-phases + (add-after 'build 'build-libfec-compatibility-layer + (lambda _ + (invoke "make" "shim"))) + (add-after 'install 'delete-static-libraries + (lambda _ + (delete-file (string-append #$output "/lib/libcorrect.a")) + (delete-file (string-append #$output "/lib/libfec.a"))))))) + (home-page "https://github.com/quiet/libcorrect") + (synopsis "Forward error correction library") + (description + "This library provides convolutional and Reed-Solomon codes for forward +error correction. It also includes a compatibility layer so that it can be +used as a drop-in substitute for @code{libfec}.") + (license license:bsd-3)))) + (define-public liquid-dsp (package (name "liquid-dsp") diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index d03540213e..d6fe2f9fc0 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -12666,3 +12666,100 @@ into Money objects.") (description "This package provides a gem that calculates the exchange rate using published rates from open-exchange-rates. Compatible with the money gem.") (license license:expat))) + +(define-public ruby-roda + (package + (name "ruby-roda") + (version "3.57.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "roda" version)) + (sha256 + (base32 "0nkfxnbcfnriywvx9kpamp850cwjmqv8ssajc95d0aiyjr4kdrfy")))) + (build-system ruby-build-system) + (arguments + ;; No rakefile + `(#:tests? #f)) + (propagated-inputs (list ruby-rack)) + (home-page "http://roda.jeremyevans.net") + (synopsis "Routing Tree Web Toolkit") + (description "Roda is a routing tree web toolkit, designed for building fast +and maintainable web applications in ruby.") + (license license:expat))) + +(define-public ruby-nori + (package + (name "ruby-nori") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "nori" version)) + (sha256 + (base32 "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn")))) + (build-system ruby-build-system) + (arguments + ;; Tests require too old version of rspec + `(#:tests? #f)) + (native-inputs + (list ruby-nokogiri + ruby-rake + ruby-rspec)) + (home-page "https://github.com/savonrb/nori") + (synopsis "XML to Hash translator") + (description "Nori is a simple XML parsing ripped from Crack which in-turn +ripped from Merb. It supports pluggable parsers and ships with both REXML and +Nokogiri implementations.") + (license license:expat))) + +(define-public ruby-faraday-middleware + (package + (name "ruby-faraday-middleware") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "faraday_middleware" version)) + (sha256 + (base32 "1bw8mfh4yin2xk7138rg3fhb2p5g2dlmdma88k82psah9mbmvlfy")))) + (build-system ruby-build-system) + (arguments + ;; No rakefile + `(#:tests? #f)) + (propagated-inputs + (list ruby-faraday)) + (home-page "https://github.com/lostisland/faraday_middleware") + (synopsis "Various middleware for Faraday") + (description "Faraday_Middleware is a collection of middleware for the +Faraday-based API wrappers.") + (license license:expat))) + +(define-public ruby-bandwidth-iris + (package + (name "ruby-bandwidth-iris") + (version "5.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "ruby-bandwidth-iris" version)) + (sha256 + (base32 "1hmrxs0dif6fw5npyzcshk4nq9qr2kbmnx7mdjr5v1nhzlfr0678")))) + (build-system ruby-build-system) + (arguments + ;; XXX: Tests don't require helper for some reason, so all fail. + `(#:tests? #f)) + (native-inputs + (list ruby-rspec + ruby-yard)) + (propagated-inputs + (list ruby-activesupport + ruby-builder + ruby-faraday + ruby-faraday-middleware + ruby-nori)) + (home-page "https://github.com/Bandwidth/ruby-bandwidth-iris") + (synopsis "Gem for integrating to Bandwidth's Iris API") + (description "Bandwidth IRIS is a Ruby SDK for Bandwidth Phone Number +Dashboard. It is a Ruby Client library for IRIS / BBS API.") + (license license:expat))) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index b775ad905c..41bb8f12fa 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -10,6 +10,8 @@ ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> +;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,7 +34,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages acl) @@ -116,7 +118,7 @@ mounting and managing @acronym{CIFS, Common Internet File System} shares using the Linux kernel CIFS client.") (home-page "https://wiki.samba.org/index.php/LinuxCIFS_utils") ;; cifs-utils is licensed as GPL3 or later, but 3 files contain LGPL code. - (license gpl3+))) + (license license:gpl3+))) (define-public iniparser (package @@ -178,7 +180,7 @@ are easy to read, write, and modify. The library is small, thread safe, and written in portable ANSI C with no external dependencies.") - (license x11))) + (license license:x11))) (define-public samba (package @@ -282,7 +284,7 @@ DOS and Windows, OS/2, GNU/Linux and many others. Samba is an important component to seamlessly integrate Linux/Unix Servers and Desktops into Active Directory environments using the winbind daemon.") - (license gpl3+))) + (license license:gpl3+))) (define-public samba/fixed ;; Version that rarely changes, depended on by libsoup. @@ -329,7 +331,7 @@ Desktops into Active Directory environments using the winbind daemon.") (description "Talloc is a hierarchical, reference counted memory pool system with destructors. It is the core memory allocator used in Samba.") - (license gpl3+))) ;; The bundled "replace" library uses LGPL3. + (license license:gpl3+))) ;; The bundled "replace" library uses LGPL3. (define-public talloc/static (package @@ -396,7 +398,7 @@ destructors. It is the core memory allocator used in Samba.") "Tevent is an event system based on the talloc memory management library. It is the core event system used in Samba. The low level tevent has support for many event types, including timers, signals, and the classic file descriptor events.") - (license lgpl3+))) + (license license:lgpl3+))) (define-public ldb (package @@ -452,7 +454,7 @@ many event types, including timers, signals, and the classic file descriptor eve is provide a fast database with an LDAP-like API designed to be used within an application. In some ways it can be seen as a intermediate solution between key-value pair databases and a real LDAP database.") - (license lgpl3+))) + (license license:lgpl3+))) (define-public ppp (package @@ -461,7 +463,7 @@ key-value pair databases and a real LDAP database.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/paulusmack/ppp") + (url "https://github.com/ppp-project/ppp") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -469,26 +471,24 @@ key-value pair databases and a real LDAP database.") "1bhhksdclsnkw54a517ndrw55q5zljjbh9pcqz1z4a2z2flxpsgk")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; no check target - #:make-flags '("CC=gcc") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-Makefile - (lambda* (#:key inputs #:allow-other-keys) - (let ((libc (assoc-ref inputs "libc")) - (openssl (assoc-ref inputs "openssl")) - (libpcap (assoc-ref inputs "libpcap"))) - (substitute* "pppd/Makefile.linux" - (("/usr/include/crypt\\.h") - (string-append libc "/include/crypt.h")) - (("/usr/include/openssl") - (string-append openssl "/include/openssl")) - (("/usr/include/pcap-bpf.h") - (string-append libpcap "/include/pcap-bpf.h"))) - #t)))))) + (list #:tests? #f ;; No "check" target + #:make-flags #~(list (string-append "CC=" #$(cc-for-target))) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'patch-Makefile + (lambda* (#:key inputs #:allow-other-keys) + (let ((openssl (assoc-ref inputs "openssl")) + (libpcap (assoc-ref inputs "libpcap"))) + (substitute* "pppd/Makefile.linux" + (("/usr/include/openssl") + (string-append openssl "/include")) + (("-DPPP_FILTER") + (string-append "-DPPP_FILTER -I" libpcap "/include"))) + (substitute* "pppd/pppcrypt.h" + (("des\\.h") "openssl/des.h"))) + #t))))) (inputs - (list libpcap - (@ (gnu packages tls) openssl))) + (list libpcap openssl)) (synopsis "Implementation of the Point-to-Point Protocol") (home-page "https://ppp.samba.org/") (description @@ -498,5 +498,7 @@ and IPV6 and the protocols layered above them, such as TCP and UDP.") ;; pppd, pppstats and pppdump are under BSD-style notices. ;; some of the pppd plugins are GPL'd. ;; chat is public domain. - (license (list bsd-3 bsd-4 gpl2+ public-domain)))) - + (license (list license:bsd-3 + license:bsd-4 + license:gpl2+ + license:public-domain)))) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index 346313c7ed..27c1aa3318 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org> ;;; Copyright © 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com> +;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,8 +28,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages search) - #:use-module ((guix licenses) - #:select (gpl2 gpl2+ gpl3+ agpl3+ lgpl2.1+ bsd-3 x11 perl-license)) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -73,14 +73,14 @@ (define-public xapian (package (name "xapian") - (version "1.4.18") + (version "1.4.19") ;; Note: When updating Xapian, remember to update xapian-bindings below. (source (origin (method url-fetch) (uri (string-append "https://oligarchy.co.uk/xapian/" version "/xapian-core-" version ".tar.xz")) (sha256 - (base32 "0xsb4ihf3p767f0zx9p4janwni6r9sg5j6lry0002i8hmnsdnv8r")))) + (base32 "1hx92kbqdl38gsrwzvbqgf2jc4wwzsad2gd99g62cdfclvy4ijhz")))) (build-system gnu-build-system) (inputs (list zlib `(,util-linux "lib"))) @@ -106,7 +106,7 @@ add advanced indexing and search facilities to their own applications. It supports the Probabilistic Information Retrieval model and also supports a rich set of boolean query operators.") (home-page "https://xapian.org/") - (license (list gpl2+ bsd-3 x11)))) + (license (list license:gpl2+ license:bsd-3 license:x11)))) (define-public python-xapian-bindings (package (inherit xapian) @@ -118,7 +118,7 @@ rich set of boolean query operators.") "/xapian-bindings-" version ".tar.xz")) (sha256 (base32 - "13ziql8027glgihgvnbsa75vkcn82g83mbihj60zf0njj170clpy")))) + "0gc8l9cn8jdma0p73jl14z17yizp6dax5zsycvgprajii6j8bhwi")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-python3") @@ -133,7 +133,7 @@ rich set of boolean query operators.") (inputs (list python xapian zlib)) (synopsis "Python bindings for the Xapian search engine library") - (license gpl2+))) + (license license:gpl2+))) (define-public perl-search-xapian (package @@ -157,7 +157,7 @@ rich set of boolean query operators.") "Search::Xapian wraps most methods of most Xapian classes. The missing classes and methods should be added in the future. It also provides a simplified, more 'perlish' interface to some common operations.") - (license perl-license))) + (license license:perl-license))) (define-public libtocc (package @@ -201,7 +201,7 @@ simplified, more 'perlish' interface to some common operations.") system. The goal of Tocc is to provide a better system for classifying files that is more flexible than classic file systems that are based on a tree of files and directories.") - (license gpl3+))) + (license license:gpl3+))) (define-public tocc (package @@ -222,7 +222,7 @@ files and directories.") (description "Tocc is a tag-based file management system. This package contains the command line tool for interacting with libtocc.") - (license gpl3+))) + (license license:gpl3+))) (define-public searx (package @@ -269,7 +269,7 @@ command line tool for interacting with libtocc.") (home-page "https://searx.github.io/searx/") (synopsis "Privacy-respecting metasearch engine") (description "Searx is a privacy-respecting, hackable metasearch engine.") - (license agpl3+))) + (license license:agpl3+))) (define-public bool (package @@ -294,7 +294,7 @@ statements, as well as the NEAR statement to search for the occurrence of words in close proximity to each other. It handles context gracefully, accounting for new lines and paragraph changes. It also has robust support for parsing HTML files.") - (license gpl3+))) + (license license:gpl3+))) (define-public fsearch (package @@ -325,7 +325,7 @@ for parsing HTML files.") (description "FSearch is a fast file search utility, inspired by Everything Search Engine. It is written in C and based on GTK3.") - (license gpl2+))) + (license license:gpl2+))) (define-public recoll (package @@ -421,7 +421,7 @@ their file names. It can search most document formats, but you may need external applications for text extraction. It can reach any storage place: files, archive members, email attachments, transparently handling decompression.") - (license gpl2+))) + (license license:gpl2+))) (define-public hyperestraier (package @@ -447,7 +447,7 @@ decompression.") (description "Hyper Estraier can be used to integrate full-text search into applications, using either the provided command line and CGI interfaces, or a C API.") - (license lgpl2.1+))) + (license license:lgpl2.1+))) (define-public mlocate (package @@ -470,7 +470,7 @@ most of the file system, which makes it faster and does not trash the system caches as much. The locate(1) utility is intended to be completely compatible with slocate, and attempts to be compatible to GNU locate when it does not conflict with slocate compatibility.") - (license gpl2))) + (license license:gpl2))) (define-public plocate (package @@ -508,7 +508,7 @@ conflict with slocate compatibility.") (description "Plocate is a @code{locate} based on posting lists, completely replacing @command{mlocate} with a faster and smaller index. It is suitable as a default locate on your system.") - (license gpl2))) + (license license:gpl2))) (define-public swish-e (package @@ -569,7 +569,7 @@ suitable as a default locate on your system.") "Swish-e is Simple Web Indexing System for Humans - Enhanced. Swish-e can quickly and easily index directories of files or remote web sites and search the generated indexes.") - (license gpl2+))) ;with exception + (license license:gpl2+))) ; with exception (define-public xapers (package @@ -637,7 +637,7 @@ geared towards academic journal articles build on the Xapian search engine. Think of it as your own personal document search engine, or a local cache of online libraries. It provides fast search of document text and bibliographic data and simple document and bibtex retrieval.") - (license gpl3+))) + (license license:gpl3+))) (define-public ugrep (package @@ -692,6 +692,6 @@ multi-threaded and other techniques to speed up search, pattern-matching and decompression. Many pre-defined regexps ease searching e.g. C typdefs or XML attributes. Results can be output in several structured or self-defined formats.") - (license bsd-3))) + (license license:bsd-3))) ;;; search.scm ends here diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index ad674a3989..110cbe9fda 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; Copyright © 2021 Wiktor Żelazny <wzelazny@vurv.cz> +;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -368,7 +369,7 @@ are already there.") (define-public direnv (package (name "direnv") - (version "2.31.0") + (version "2.32.1") (source (origin (method git-fetch) (uri (git-reference @@ -377,7 +378,7 @@ are already there.") (file-name (git-file-name name version)) (sha256 (base32 - "1c52izjzkdhmyrfx1gmbp34n0qpxyxw0s94f0vy3ldlg8xr36wmk")))) + "1i473j7j4sx8p83zqlnakskqk0jyd3byajp7jmv2gym9s4k841y7")))) (build-system go-build-system) (arguments '(#:import-path "github.com/direnv/direnv" diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index 1ae6be40ca..bbb070ddf6 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -468,6 +468,8 @@ builder does not support SVG images natively (e.g. LaTeX).") (arguments ;; FIXME: Tests depend on Sphinx, which depends on this. `(#:tests? #f)) + (propagated-inputs + (list python-sphinxcontrib-serializinghtml)) (home-page "https://sphinx-doc.org/") (synopsis "Sphinx API for web applications") (description @@ -717,14 +719,14 @@ and several other projects.") (define-public python-breathe (package (name "python-breathe") - (version "4.30.0") + (version "4.34.0") (source (origin (method url-fetch) (uri (pypi-uri "breathe" version)) (sha256 (base32 - "055h95fkdld7s49878fqjx1nri1drj1czc184vrb7i60mf2yqg9n")))) + "18fvphs1cb2cns9q82195fx7lmlwfikzwa10cczavpaax2jnh1xc")))) (build-system python-build-system) (propagated-inputs (list python-docutils python-sphinx)) @@ -817,7 +819,7 @@ enabled web server.") (define-public python-sphinx-autodoc-typehints (package (name "python-sphinx-autodoc-typehints") - (version "1.18.1") + (version "1.18.3") (source (origin (method git-fetch) ;no tests in pypi archive @@ -827,7 +829,7 @@ enabled web server.") (file-name (git-file-name name version)) (sha256 (base32 - "16yhpwfdmybir80a6892cnr98m58p19rklmjdlzhk3njx7di8jzp")))) + "049dlay21f4bccig31fkbzq2m8v0h6g63p1cn3dxay9q3h0mzgs0")))) (build-system python-build-system) (arguments (list diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 5aa37657b9..a560f8bc62 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages libbsd) #:use-module (gnu packages linux) #:use-module (gnu packages mpd) @@ -519,31 +520,33 @@ point surf to another URI by setting its XProperties.") (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - (delete 'configure)) ; no configuration - #:tests? #f ; no test suite + (delete 'configure) ;no configuration + (add-before 'build 'patch-farbfeld + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "config.def.h" + (("2ff") (search-input-file inputs "/bin/2ff")))))) + #:tests? #f ;no test suite #:make-flags (let ((pkg-config (lambda (flag) - (string-append - "$(shell pkg-config " flag " " - "xft fontconfig x11 libpng)")))) - (list (string-append "CC=" ,(cc-for-target)) + (string-append "$(shell pkg-config " flag " " + "xft fontconfig x11 libpng)")))) + (list (string-append "CC=" + ,(cc-for-target)) (string-append "PREFIX=" %output) - (string-append "INCS=-I. " (pkg-config "--cflags")) - (string-append "LIBS=" (pkg-config "--libs") " -lm"))))) - (native-inputs - (list pkg-config)) - (inputs - `(("libpng" ,libpng) - ("libx11" ,libx11) - ("libxft" ,libxft) - ("fontconfig" ,fontconfig))) + (string-append "INCS=-I. " + (pkg-config "--cflags")) + (string-append "LIBS=" + (pkg-config "--libs") " -lm"))))) + (native-inputs (list pkg-config)) + (inputs (list farbfeld libpng libx11 libxft fontconfig)) (synopsis "Plain-text presentation tool") - (description "Sent uses plain-text files and PNG images to create slideshow + (description + "Sent uses plain-text files and PNG images to create slideshow presentations. Each paragraph represents a slide in the presentation. Especially for presentations using the Takahashi method this is very nice and allows you to write down the presentation for a quick lightning talk within a few minutes.") - (home-page "https://tools.suckless.org/sent") + (home-page "https://tools.suckless.org/sent/") (license license:x11))) (define-public wmname @@ -1049,7 +1052,7 @@ support.") (define-public sfeed (package (name "sfeed") - (version "1.1") + (version "1.5") (source (origin (method git-fetch) @@ -1059,7 +1062,7 @@ support.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1b0l6f9aymk54ncc2kxavhg4flcqv7d4mpkpw8ljx7mzg0g4ygyk")))) + (base32 "1w3xk00nv502q2nr23y1sig7bkqa7f431f4fcaybfcfk7dbv2piq")))) (build-system gnu-build-system) (arguments (list @@ -1084,3 +1087,43 @@ There are formatting programs included to convert this TAB-separated format to various other formats. There are also some programs and scripts included to import and export OPML and to fetch, filter, merge and order feed items.") (license license:isc))) + +(define-public farbfeld + (let ((commit "ab5e3dfc9cdb476218538c6687df9f44826d8f11") (revision "0")) + (package + (name "farbfeld") + (version (git-version "4" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.suckless.org/farbfeld") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pkmkvv5ggpzqwqdchd19442x8gh152xy5z1z13ipfznhspsf870")))) + (build-system gnu-build-system) + (inputs (list libpng libjpeg-turbo imagemagick)) + (arguments + (list #:tests? + #f ;no check target + #:make-flags + #~(list (string-append "PREFIX=" + #$output) + (string-append "CC=" + #$(cc-for-target))) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'patch-2ff + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "2ff" + (("png2ff") (string-append #$output "/bin/png2ff")) + (("jpg2ff") (string-append #$output "/bin/jpg2ff")) + (("convert") (search-input-file inputs "/bin/convert"))))) + (delete 'configure)))) + (synopsis "Image format and conversion tools") + (description + "farbfeld is a lossless image format which is easy to parse, +pipe and compress.") + (home-page "https://git.suckless.org/farbfeld/") + (license license:isc)))) diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm index aeedbfbe6a..f8f52a8ccd 100644 --- a/gnu/packages/task-management.scm +++ b/gnu/packages/task-management.scm @@ -37,6 +37,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages time) #:use-module (gnu packages tls) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 1c936be6a8..02ce008491 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -56,6 +56,7 @@ #:use-module (gnu packages code) #:use-module (gnu packages cpp) #:use-module (gnu packages crates-io) + #:use-module (gnu packages datastructures) #:use-module (gnu packages documentation) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) @@ -1215,3 +1216,53 @@ can be embedded in any application This package includes the @code{libtree-sitter} runtime library. ") (license license:expat))) + +(define-public mle + (package + (name "mle") + (version "1.5.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/adsr/mle") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1nhd00lsx9v12zdmps92magz76c2d8zzln3lxvzl4ng73gbvq3n0")))) + (build-system gnu-build-system) + (inputs (list lua pcre uthash)) + (arguments + `(#:test-target "test" + #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-lua + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "mle.h" + (("<lua5.4/") "<")) + (substitute* "Makefile" + (("-llua5.4") "-llua") + (("/bin/sh") (which "sh"))))) + (add-after 'unpack 'patch-test-shebangs + (lambda _ + (substitute* (find-files "tests/func" "\\.sh$") + (("/usr/bin/env bash") (which "bash"))))) + (delete 'configure) ;no configure script + (add-after 'install 'install-man-pages + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man (string-append out + "/share/man/man1"))) + (install-file "mle.1" + (string-append man)))))) + #:make-flags (list (string-append "CC=" + ,(cc-for-target)) + (string-append "prefix=" %output)))) + (home-page "https://github.com/adsr/mle") + (synopsis "Small, flexible, terminal-based text editor") + (description + "mle is a small, flexible, terminal-based text editor written in C. +Notable features include: full Unicode support, syntax highlighting, +scriptable rc file, macros, search and replace (PCRE), window +splitting, multiple cursors, and integration with various shell +commands.") + (license license:asl2.0))) diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index eede7b9bd7..fea9ff25f7 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -43,6 +43,7 @@ #:use-module (gnu packages golang) #:use-module (gnu packages perl) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages terminals) #:use-module (gnu packages textutils) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index bb05adb8b7..7b2f43d993 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -351,6 +351,7 @@ OpenSSL for TARGET." (package (name "openssl") (version "1.1.1n") + (replacement openssl/fixed) (source (origin (method url-fetch) (uri (list (string-append "https://www.openssl.org/source/openssl-" @@ -473,10 +474,29 @@ OpenSSL for TARGET." (license license:openssl) (home-page "https://www.openssl.org/"))) +(define openssl/fixed + (package + (inherit openssl) + (name "openssl") + (version "1.1.1p") + (source (origin + (method url-fetch) + (uri (list (string-append "https://www.openssl.org/source/openssl-" + version ".tar.gz") + (string-append "ftp://ftp.openssl.org/source/" + "openssl-" version ".tar.gz") + (string-append "ftp://ftp.openssl.org/source/old/" + (string-trim-right version char-set:letter) + "/openssl-" version ".tar.gz"))) + (patches (search-patches "openssl-1.1-c-rehash-in.patch")) + (sha256 + (base32 + "0vyfibydji26wk1fmm0piz0810mfr7j4vaa2k5iwgiv6m8mbcqdz")))))) + (define-public openssl-3.0 (package (inherit openssl) - (version "3.0.3") + (version "3.0.4") (source (origin (method url-fetch) (uri (list (string-append "https://www.openssl.org/source/openssl-" @@ -489,7 +509,7 @@ OpenSSL for TARGET." (patches (search-patches "openssl-3.0-c-rehash-in.patch")) (sha256 (base32 - "02wcan5izwsxg6vl5fzkqq4icwi7cp4hrj327h05zppirsnph07f")))) + "03y0q2pzpkpgfgf74x4pf8gyar9d7pb0l0p7g2s0m2k6k8z88c98")))) (arguments (substitute-keyword-arguments (package-arguments openssl) ((#:phases phases '%standard-phases) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 3f565867aa..e88c3071a3 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -2467,7 +2467,7 @@ YouTube.com and many more sites.") (define-public yt-dlp (package/inherit youtube-dl (name "yt-dlp") - (version "2022.05.18") + (version "2022.06.22.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/yt-dlp/yt-dlp/" @@ -2475,7 +2475,7 @@ YouTube.com and many more sites.") version "/yt-dlp.tar.gz")) (sha256 (base32 - "0wiiwqj8m4z6lladmrsp9354ddwlhn2gf0b39j271001g6fyi82r")) + "1nr6g3dhvjc10jzhyvgjrrxqhsgi3hiw8bswp8bi6bscimd9vhps")) (snippet '(begin ;; Delete the pre-generated files, except for the man page diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 4cb83b4d85..e184f54e81 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -18,7 +18,7 @@ ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2021 Leo Famulari <leo@famulari.name> -;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2021 Dion Mendel <guix@dm9.info> ;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com> ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com> @@ -1166,7 +1166,7 @@ It started as a side project of LXC but can be used by any run-time.") (define-public lxd (package (name "lxd") - (version "4.22") + (version "4.24") (source (origin (method url-fetch) (uri (string-append @@ -1174,7 +1174,7 @@ It started as a side project of LXC but can be used by any run-time.") "lxd-" version "/lxd-" version ".tar.gz")) (sha256 (base32 - "119345936fcm1vv06k82k9hvj5yjf9jdrwqm9ccphhl5mswf8xq9")))) + "0lmjmvm98m6yjxcqlfw690i71nazfzgrm3mzbjj77g1631df3ylp")))) (build-system go-build-system) (arguments `(#:import-path "github.com/lxc/lxd" @@ -1817,7 +1817,7 @@ main monitor/GPU.") (define-public runc (package (name "runc") - (version "1.0.0-rc93") + (version "1.1.1") (source (origin (method url-fetch) (uri (string-append @@ -1826,7 +1826,7 @@ main monitor/GPU.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "0b90r1bkvlqli53ca1yc1l488dba0isd3i6l7nlhszxi8p7hzvkh")))) + "0jx56x49dgkygdbrfb3pmxycy1n37arj97jra8n422dj36xz1hbm")))) (build-system go-build-system) (arguments '(#:import-path "github.com/opencontainers/runc" @@ -1851,8 +1851,7 @@ main monitor/GPU.") (invoke "make" "install" "install-bash" "install-man" (string-append "PREFIX=" out))))))))) (native-inputs - `(("go-md2man" ,go-github-com-go-md2man) - ("pkg-config" ,pkg-config))) + (list go-github-com-go-md2man pkg-config)) (inputs (list libseccomp)) (synopsis "Open container initiative runtime") diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index d946fa4d2f..9703f76031 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -37,7 +37,7 @@ ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl> ;;; Copyright © 2020 EuAndreh <eu@euandre.org> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> -;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2020, 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com> ;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net> ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> @@ -55,6 +55,7 @@ ;;; Copyright © 2022 Pier-Hugues Pellerin <ph@heykimo.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 muradm <mail@muradm.net> +;;; Copyright © 2022 Elais Player <elais@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -130,6 +131,7 @@ #:use-module (gnu packages pretty-print) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) @@ -1469,19 +1471,29 @@ its size (define-public polybar (package (name "polybar") - (version "3.5.7") + (version "3.6.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/polybar/polybar/releases/" "download/" version "/polybar-" version ".tar.gz")) (sha256 - (base32 "1nr386jdlm8qkbdf23w7lyvbfhr362s90f957fawnyi1finhw8bk")))) + (base32 "19azx5dpfyfh0pv4q2fcrf4p7a0pc5d13m7lnv3qy8376mbmhmzj")))) (build-system cmake-build-system) (arguments ;; Test is disabled because it requires downloading googletest from the ;; Internet. - '(#:tests? #f)) + (list #:tests? #f + #:phases + #~(modify-phases %standard-phases + ;; Make polybar find its default configuration file in the + ;; store. + (add-after 'unpack 'patch-config-path + (lambda _ + (substitute* "CMakeLists.txt" + (("/etc") (string-append #$output "/etc"))) + (substitute* "src/utils/file.cpp" + (("\"/etc\"") (string-append "\"" #$output "/etc\"")))))))) (inputs (list alsa-lib cairo @@ -1489,6 +1501,7 @@ its size jsoncpp libmpdclient libnl + libuv libxcb pulseaudio xcb-proto @@ -1498,12 +1511,9 @@ its size xcb-util-wm xcb-util-xrm)) (native-inputs - `(("pkg-config" ,pkg-config) - ("python-sphinx" ,python-sphinx) ; for the manual - ;; XXX: "python" input must be located after "python-2", or the package - ;; fails to build with "missing required python module: xcbgen". - ("python-2" ,python-2) ; lib/xpp depends on python 2 - ("python" ,python))) ; xcb-proto depends on python 3 + (list pkg-config + python-sphinx ; for the manual + python)) ; xcb-proto depends on python 3 (home-page "https://polybar.github.io/") (synopsis "Fast and easy-to-use status bar") (description "Polybar aims to help users build beautiful and highly @@ -1538,7 +1548,7 @@ functionality to display information about the most commonly used services.") (propagated-inputs (list ;; As required by wlroots.pc. eudev - libinput + libinput-minimal libxkbcommon mesa pixman @@ -1572,7 +1582,10 @@ modules for building a Wayland compositor.") (base32 "0ss3l258blyf2d0lwd7pi7ga1fxfj8pxhag058k7cmjhs3y30y5l")))) (build-system meson-build-system) (arguments - `(#:phases + `(;; elogind is propagated by wlroots -> libseat + ;; and would otherwise shadow basu. + #:configure-flags '("-Dsd-bus-provider=basu") + #:phases (modify-phases %standard-phases (add-before 'configure 'hardcode-paths (lambda* (#:key inputs #:allow-other-keys) @@ -1587,12 +1600,12 @@ modules for building a Wayland compositor.") (string-append "'" (assoc-ref inputs "scdoc") "/bin/scdoc'"))) #t))))) - (inputs (list cairo - elogind + (inputs (list basu + cairo gdk-pixbuf json-c libevdev - libinput + libinput-minimal libxkbcommon pango swaybg @@ -1724,7 +1737,7 @@ display a clock or apply image manipulation techniques to the background image." gtkmm-3 jsoncpp libdbusmenu - libinput + libinput-minimal libmpdclient libnl libxml2 @@ -1785,16 +1798,16 @@ compositors that support the layer-shell protocol.") (define-public kanshi (package (name "kanshi") - (version "1.1.0") + (version "1.2.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/emersion/kanshi") + (url "https://git.sr.ht/~emersion/kanshi") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0nbpgm8qnn7ljsg9vgs35kl8l4rrk542vdcbx8wrn9r909ld3x92")))) + (base32 "10lxagwc2pkq86g2sxkwljjd39sahp3w1j5yx853d3c4d95iwls5")))) (build-system meson-build-system) (inputs (list wayland)) (native-inputs (list pkg-config scdoc)) @@ -1808,7 +1821,7 @@ Wayland compositors supporting the wlr-output-management protocol.") (define-public stumpwm (package (name "stumpwm") - (version "20.11") + (version "22.05") (source (origin (method git-fetch) @@ -1817,55 +1830,60 @@ Wayland compositors supporting the wlr-output-management protocol.") (commit version))) (file-name (git-file-name "stumpwm" version)) (sha256 - (base32 "1ghs6ihvmb3bz4q4ys1d3h6rdi96xyiw7l2ip7jh54c25049aymf")))) + (base32 "12hf70mpwy0ixiyvv8sf8pkwrzz8nb12a8ybvsdpibsxfjxgxnan")))) (build-system asdf-build-system/sbcl) - (native-inputs `(("fiasco" ,sbcl-fiasco) - ("texinfo" ,texinfo) - - ;; To build the manual. - ("autoconf" ,autoconf) - ("automake" ,automake))) - (inputs `(("cl-ppcre" ,sbcl-cl-ppcre) - ("clx" ,sbcl-clx) - ("alexandria" ,sbcl-alexandria))) + (native-inputs + (list sbcl-fiasco + texinfo + + ;; To build the manual. + autoconf + automake)) + (inputs + (list sbcl-alexandria + sbcl-cl-ppcre + sbcl-clx)) (outputs '("out" "lib")) (arguments - '(#:asd-systems '("stumpwm") - #:phases - (modify-phases %standard-phases - (add-after 'create-asdf-configuration 'build-program - (lambda* (#:key outputs #:allow-other-keys) - (build-program - (string-append (assoc-ref outputs "out") "/bin/stumpwm") - outputs - #:entry-program '((stumpwm:stumpwm) 0)))) - (add-after 'build-program 'create-desktop-file - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (xsessions (string-append out "/share/xsessions"))) - (mkdir-p xsessions) - (call-with-output-file - (string-append xsessions "/stumpwm.desktop") - (lambda (file) - (format file - "[Desktop Entry]~@ - Name=stumpwm~@ - Comment=The Stump Window Manager~@ - Exec=~a/bin/stumpwm~@ - TryExec=~@*~a/bin/stumpwm~@ - Icon=~@ - Type=Application~%" - out))) - #t))) - (add-after 'install 'install-manual - (lambda* (#:key (make-flags '()) outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (info (string-append out "/share/info"))) - (invoke "./autogen.sh") - (invoke "sh" "./configure" "SHELL=sh") - (apply invoke "make" "stumpwm.info" make-flags) - (install-file "stumpwm.info" info) - #t)))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + (substitute* "stumpwm-tests.asd" + (("\"ALL-TESTS\"") + "\"RUN-PACKAGE-TESTS\" :package")))) + (add-after 'create-asdf-configuration 'build-program + (lambda* (#:key outputs #:allow-other-keys) + (build-program + (string-append (assoc-ref outputs "out") "/bin/stumpwm") + outputs + #:entry-program '((stumpwm:stumpwm) 0)))) + (add-after 'build-program 'create-desktop-file + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (xsessions (string-append out "/share/xsessions"))) + (mkdir-p xsessions) + (call-with-output-file + (string-append xsessions "/stumpwm.desktop") + (lambda (file) + (format file + "[Desktop Entry]~@ + Name=stumpwm~@ + Comment=The Stump Window Manager~@ + Exec=~a/bin/stumpwm~@ + TryExec=~@*~a/bin/stumpwm~@ + Icon=~@ + Type=Application~%" + out)))))) + (add-after 'install 'install-manual + (lambda* (#:key (make-flags '()) outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (info (string-append out "/share/info"))) + (invoke "./autogen.sh") + (invoke "sh" "./configure" "SHELL=sh") + (apply invoke "make" "stumpwm.info" make-flags) + (install-file "stumpwm.info" info))))))) (synopsis "Window manager written in Common Lisp") (description "Stumpwm is a window manager written entirely in Common Lisp. It attempts to be highly customizable while relying entirely on the keyboard @@ -2566,7 +2584,7 @@ read and write, and compatible with JSON.") (list bmake pkg-config wayland-protocols)) (inputs (list cairo - libinput + libinput-minimal libucl libxkbcommon linux-pam diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm index f6b20fb82b..e3c101d042 100644 --- a/gnu/services/configuration.scm +++ b/gnu/services/configuration.scm @@ -27,7 +27,8 @@ #:use-module (guix records) #:use-module (guix gexp) #:use-module ((guix utils) #:select (source-properties->location)) - #:use-module ((guix diagnostics) #:select (formatted-message location-file)) + #:use-module ((guix diagnostics) + #:select (formatted-message location-file &error-location)) #:use-module ((guix modules) #:select (file-name->module-name)) #:use-module (guix i18n) #:autoload (texinfo) (texi-fragment->stexi) @@ -56,7 +57,6 @@ serialize-configuration define-maybe define-maybe/no-serialization - validate-configuration generate-documentation configuration->documentation empty-serializer @@ -87,9 +87,17 @@ (define (configuration-error message) (raise (condition (&message (message message)) (&configuration-error)))) -(define (configuration-field-error field val) - (configuration-error - (format #f "Invalid value for field ~a: ~s" field val))) +(define (configuration-field-error loc field value) + (raise (apply + make-compound-condition + (formatted-message (G_ "invalid value ~s for field '~a'") + value field) + (condition (&configuration-error)) + (if loc + (list (condition + (&error-location (location loc)))) + '())))) + (define (configuration-missing-field kind field) (configuration-error (format #f "~a configuration missing required field ~a" kind field))) @@ -116,14 +124,6 @@ does not have a default value" field kind))) ((configuration-field-getter field) config))) fields))) -(define (validate-configuration config fields) - (for-each (lambda (field) - (let ((val ((configuration-field-getter field) config))) - (unless ((configuration-field-predicate field) val) - (configuration-field-error - (configuration-field-name field) val)))) - fields)) - (define-syntax-rule (id ctx parts ...) "Assemble PARTS into a raw (unhygienic) identifier." (datum->syntax ctx (symbol-append (syntax->datum parts) ...))) @@ -210,9 +210,33 @@ does not have a default value" field kind))) (id #'stem #'serialize- type)))))) #'(field-type ...) #'((custom-serializer ...) ...)))) + (define (field-sanitizer name pred) + ;; Define a macro for use as a record field sanitizer, where NAME + ;; is the name of the field and PRED is the predicate that tells + ;; whether a value is valid for this field. + #`(define-syntax #,(id #'stem #'validate- #'stem #'- name) + (lambda (s) + ;; Make sure the given VALUE, for field NAME, passes PRED. + (syntax-case s () + ((_ value) + (with-syntax ((name #'#,name) + (pred #'#,pred) + (loc (datum->syntax #'value + (syntax-source #'value)))) + #'(if (pred value) + value + (configuration-field-error + (and=> 'loc source-properties->location) + 'name value)))))))) + #`(begin + ;; Define field validation macros. + #,@(map field-sanitizer + #'(field ...) + #'(field-predicate ...)) + (define-record-type* #,(id #'stem #'< #'stem #'>) - #,(id #'stem #'% #'stem) + stem #,(id #'stem #'make- #'stem) #,(id #'stem #'stem #'?) (%location #,(id #'stem #'stem #'-location) @@ -220,10 +244,13 @@ does not have a default value" field kind))) source-properties->location)) (innate)) #,@(map (lambda (name getter def) - #`(#,name #,getter (default #,def))) + #`(#,name #,getter (default #,def) + (sanitize + #,(id #'stem #'validate- #'stem #'- name)))) #'(field ...) #'(field-getter ...) #'(field-default ...))) + (define #,(id #'stem #'stem #'-fields) (list (configuration-field (name 'field) @@ -240,12 +267,7 @@ does not have a default value" field kind))) '#,(id #'stem #'% #'stem) 'field) field-default))) (documentation doc)) - ...)) - (define-syntax-rule (stem arg (... ...)) - (let ((conf (#,(id #'stem #'% #'stem) arg (... ...)))) - (validate-configuration conf - #,(id #'stem #'stem #'-fields)) - conf)))))))) + ...)))))))) (define no-serialization ;syntactic keyword for 'define-configuration' '(no serialization)) diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm index d99743ac31..10e6523861 100644 --- a/gnu/services/mail.scm +++ b/gnu/services/mail.scm @@ -285,7 +285,7 @@ the section name.") (serialize-fifo-listener-configuration field-name val)) ((inet-listener-configuration? val) (serialize-inet-listener-configuration field-name val)) - (else (configuration-field-error field-name val)))) + (else (configuration-field-error #f field-name val)))) (define (listener-configuration-list? val) (and (list? val) (and-map listener-configuration? val))) (define (serialize-listener-configuration-list field-name val) @@ -1610,10 +1610,6 @@ POP3, IMAP, and LMTP. @var{config} should be a configuration object created by @code{dovecot-configuration}. @var{config} may also be created by @code{opaque-dovecot-configuration}, which allows specification of the @code{dovecot.conf} as a string." - (validate-configuration config - (if (opaque-dovecot-configuration? config) - opaque-dovecot-configuration-fields - dovecot-configuration-fields)) (service dovecot-service-type config)) ;; A little helper to make it easier to document all those fields. diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm index 8be632d55f..82ff05b351 100644 --- a/gnu/services/vpn.scm +++ b/gnu/services/vpn.scm @@ -540,11 +540,9 @@ is truncated and rewritten every minute.") to an existing @acronym{VPN, virtual private network}."))) (define* (openvpn-client-service #:key (config (openvpn-client-configuration))) - (validate-configuration config openvpn-client-configuration-fields) (service openvpn-client-service-type config)) (define* (openvpn-server-service #:key (config (openvpn-server-configuration))) - (validate-configuration config openvpn-server-configuration-fields) (service openvpn-server-service-type config)) (define (generate-openvpn-server-documentation) @@ -814,7 +812,8 @@ PostUp = ~a set %i private-key ~a (start #~(lambda _ (invoke #$wg-quick "up" #$config))) (stop #~(lambda _ - (invoke #$wg-quick "down" #$config))) + (invoke #$wg-quick "down" #$config) + #f)) ;stopped! (documentation "Run the Wireguard VPN tunnel")))))) (define wireguard-service-type diff --git a/gnu/system/image.scm b/gnu/system/image.scm index f02f6e0b8c..5972a944d7 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org> +;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,6 +67,7 @@ root-label esp-partition + esp32-partition root-partition efi-disk-image @@ -75,6 +77,7 @@ image-with-os efi-raw-image-type + efi32-raw-image-type qcow2-image-type iso-image-type uncompressed-iso-image-type @@ -110,6 +113,11 @@ (flags '(esp)) (initializer (gexp initialize-efi-partition)))) +(define esp32-partition + (partition + (inherit esp-partition) + (initializer (gexp initialize-efi32-partition)))) + (define root-partition (partition (size 'guess) @@ -123,6 +131,11 @@ (format 'disk-image) (partitions (list esp-partition root-partition)))) +(define efi32-disk-image + (image + (format 'disk-image) + (partitions (list esp32-partition root-partition)))) + (define iso9660-image (image (format 'iso9660) @@ -164,6 +177,11 @@ set to the given OS." (name 'efi-raw) (constructor (cut image-with-os efi-disk-image <>)))) +(define efi32-raw-image-type + (image-type + (name 'efi32-raw) + (constructor (cut image-with-os efi32-disk-image <>)))) + (define qcow2-image-type (image-type (name 'qcow2) @@ -376,6 +394,7 @@ used in the image." #$(image-shared-store? image)) #:system-directory #$os #:grub-efi #+grub-efi + #:grub-efi32 #+grub-efi32 #:bootloader-package #+(bootloader-package bootloader) #:bootloader-installer diff --git a/gnu/tests/docker.scm b/gnu/tests/docker.scm index 6302bd0727..3e780d8a60 100644 --- a/gnu/tests/docker.scm +++ b/gnu/tests/docker.scm @@ -79,7 +79,8 @@ inside %DOCKER-OS." (gnu build marionette)) (define marionette - (make-marionette (list #$vm))) + ;; Relax timeout to accommodate older systems. + (make-marionette (list #$vm) #:timeout 60)) (test-runner-current (system-test-runner #$output)) (test-begin "docker") @@ -221,7 +222,8 @@ inside %DOCKER-OS." (guix build utils)) (define marionette - (make-marionette (list #$vm))) + ;; Relax timeout to accommodate older systems. + (make-marionette (list #$vm) #:timeout 60)) (test-runner-current (system-test-runner #$output)) (test-begin "docker") diff --git a/gnu/tests/ldap.scm b/gnu/tests/ldap.scm index d5403b3539..47e77c0c53 100644 --- a/gnu/tests/ldap.scm +++ b/gnu/tests/ldap.scm @@ -58,7 +58,9 @@ (guix combinators)))) (define vm - (virtual-machine os)) + (virtual-machine + (operating-system os) + (memory-size 1024))) (define test (with-imported-modules '((gnu build marionette)) |