diff options
author | Marius Bakke <marius@gnu.org> | 2022-09-16 19:11:43 +0200 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2022-09-16 19:11:43 +0200 |
commit | 7e0f2728a46b8f96b875a7199655bd63ad6a9fff (patch) | |
tree | bc86385f3ef3f788eed795764ff40c71595dcf2b | |
parent | af53cf42b7391d3af4fa303233afb87700eccd5f (diff) | |
parent | 706e6c3c8f9aa19c6ec22d4bbd77d09624dbf671 (diff) | |
download | guix-7e0f2728a46b8f96b875a7199655bd63ad6a9fff.tar.gz |
Merge branch 'staging' into core-updates
37 files changed, 756 insertions, 290 deletions
diff --git a/NEWS b/NEWS index 12a6d8a8f9..96f411b4c2 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org> Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -16,8 +17,12 @@ Please send Guix bug reports to bug-guix@gnu.org. ** Package management *** New ‘guix home’ command, for home environment management *** New ‘guix shell’ command, the successor to ‘guix environment’ +*** New ‘guix system edit’ command, to edit services *** New ‘deb’ format for the ‘guix pack’ command *** New ‘guix import minetest’ command, to import Minetest extensions +*** New ‘guix import elm’ command, to import Elm packages +*** New ‘guix import egg’ command, to import CHICKEN egg packages +*** New ‘guix import hexpm’ command, to import Erlang and Elixir packages *** New 'guix style' command, to auto-format package definitions *** ‘guix import texlive’ rewritten to use the TLPDB as its source *** ‘guix import elpa’ now supports the non-GNU ELPA repository @@ -25,26 +30,75 @@ Please send Guix bug reports to bug-guix@gnu.org. *** ‘guix import cran’ can now import a specific version *** New updater (see ‘guix refresh’): ‘generic-git’ *** ‘guix graph’ has a new ‘--max-depth’ option +*** ‘guix deploy’ has a new ‘--execute’ option *** ‘--with-commit’ option now accepts strings returned by ‘git describe’ +*** Align tabular data output by commands like ‘guix package --list-available’ +*** Improved ‘guix import go’ importer via a new PEG parser +*** Improved Software Heritage downloader +*** New 'web.archive.org’ download fall-back +*** Various performance enhancements +*** New ‘--tune’ package transformation option +*** ‘guix refresh’ ‘-L’ option is repurposed to ‘load-path’ modification +*** ‘guix system image’ supersedes the ‘docker-image’ sub-command + ** Distribution *** The installation script can now enable local substitute servers discovery *** More control over boot-time file system checks and repairs *** XFS file systems can be created by the installer and mounted by label/UUID *** New interface for declaring swap space *** GNOME is now at version 42 +*** TeX Live is now at version 2021 +*** Python is now faster thanks to being built with optimizations *** The Rust bootstrap now starts from 1.54 instead of 1.19 *** Most Python 2 packages have been removed *** Guix now makes use of parallel xz compression *** Faster shared libraries discovery via a per-package dynamic linker cache -*** Build phases are no longer required to return a boolean -*** Package inputs can now be provided without explicit labels +*** Package inputs can now be plain package lists *** A package origin can now be a single file rather than an archive *** Multiple Tex Live trees can now be used via GUIX_TEXMF *** A new sanity-check phase detects packaging problems at build time -*** G-Expressions can now be used to author build phases *** Fetching sources can now fall-back to use Disarchive +*** Improved CI and infrastructure +*** Multiple cross-compilation tooling addition and fixes +*** Many Qt 6 modules are now packaged +*** Configuring setuid programs is now more flexible +*** Add support for the XFS file system +*** Add partial support for LUKS2 headers when using GRUB +*** GDM now supports Wayland +*** Guix System static networking support is improved +*** The installer final configuration is prettified +*** The installer external command handling is improved +*** The installer now has a crash dump upload mechanism +*** Emacs now supports native compilation +*** GRUB bootloader now supports chain-loading + ** Programming interfaces *** (guix records) now supports “field sanitizers” +*** Build phases are no longer required to return a boolean +*** G-Expressions can now be used to author build phases +*** Various improvements to the helpers in (gnu service configuration) +*** New ‘modify-inputs’ macro to ease customizing a list of package inputs +*** New ‘this-package-input’ and ‘this-package-native-input’ macros +*** ‘texlive-union’ is now deprecated in favor of ‘texlive-updmap.cfg’ +*** New (guix cpu) module +*** New (guix least-authority) module +*** New (guix plaform) module +*** New (guix read-print) module + +It provides a comment-preserving reader and a comment-preserving +pretty-printer smarter than (ice-9 pretty-print). + +*** New ‘channel-build-system’ + +This build system lets you build Guix instances from channel specifications, +similar to how 'guix time-machine' would do it, as regular packages. + +*** New ‘elm-build-system’ +*** New ‘rebar-build-system’ +*** New services +anonip, bitmask, fail2ban, gitile, greetd, jami, lightdm, log-cleanup, +nar-herder, opendht, rasdaemon, seatd, strongswan + ** Noteworthy bug fixes *** Fall back to Software Heritage when cloning a channel (<https://issues.guix.gnu.org/44187>) @@ -56,13 +110,42 @@ Please send Guix bug reports to bug-guix@gnu.org. (<https://issues.guix.gnu.org/24937>) *** File system flags are validated before system instantiation (<https://issues.guix.gnu.org/51425>) -*** Fonts can now be discovered in any profile +*** Fonts can now be discovered in any profile via XDG_DATA_DIRS + (<https://issues.guix.gnu.org/31403>) *** Python modules discovery no longer uses PYTHONPATH *** Various Python reproducibility fixes -*** Installer now supports MSDOS disk labels on UEFI systems +*** The installer now supports MSDOS disk labels on UEFI systems (<https://issues.guix.gnu.org/47889>) +*** The installer can now properly mount FAT16 partitions + (<https://issues.guix.gnu.org/48419>) +*** The installer no longer crashes when deleting a free space partition *** Emacs handles major upgrades better without a re-login (<https://bugs.gnu.org/47458>) +*** The bootloader configuration now accepts multiple targets + (<https://issues.guix.gnu.org/40997>.) +*** A file system mount point is always created when ‘create?’ is true + (<https://issues.guix.gnu.org/40158>) +*** Build the man database only if ‘man-db’ is in the profile +*** gdk-pixbuf now discovers pixbuf loaders via a search path + (<https://issues.guix.gnu.org/50957>) +*** Gitolite home directory permissions are fixed + (https://issues.guix.gnu.org/56444) +*** The man-db database is indexed via man pages names + (https://issues.guix.gnu.org/38838) +*** ‘chfn’ can now change the user's full name + (https://issues.guix.gnu.org/52539) +*** Gnome settings Bluetooth panel is now working + (https://issues.guix.gnu.org/32166) +*** Inferiors are now caching store connections + (https://issues.guix.gnu.org/48007) +*** The installer doesn't segfault when removing an extended partition +*** The installer doesn't ship an older Guix revision + (https://issues.guix.gnu.org/53210) +*** The installer cannot proceed without any non-root user accounts + (https://issues.guix.gnu.org/54666) +*** <operating-system> compiler truly honors the 'system' argument + (https://issues.guix.gnu.org/55951) + * Changes in 1.3.0 (since 1.2.0) ** Package management *** POWER9 (powerpc64le-linux) is now supported as a technology preview diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index 06b699bd7b..5ebf783892 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.scm @@ -178,7 +178,18 @@ QEMU monitor and to the guest's backdoor REPL." (($ <marionette> command pid monitor (= force repl)) (write exp repl) (newline repl) - (read repl)))) + (with-exception-handler + (lambda (exn) + (simple-format + (current-error-port) + "error reading marionette response: ~A + remaining response: ~A\n" + exn + (get-line repl)) + (raise-exception exn)) + (lambda () + (read repl)) + #:unwind? #t)))) (define* (wait-for-file file marionette #:key (timeout 10) (read 'read)) @@ -187,7 +198,14 @@ FILE has not shown up after TIMEOUT seconds, raise an error." (match (marionette-eval `(let loop ((i ,timeout)) (cond ((file-exists? ,file) - (cons 'success (call-with-input-file ,file ,read))) + (cons 'success + (let ((content + (call-with-input-file ,file ,read))) + (if (eof-object? content) + ;; #<eof> can't be read, so convert to the + ;; empty string + "" + content)))) ((> i 0) (sleep 1) (loop (- i 1))) diff --git a/gnu/local.mk b/gnu/local.mk index bad2714cf0..a1e8a0f389 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1321,7 +1321,6 @@ dist_patch_DATA = \ %D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \ %D%/packages/patches/jamvm-2.0.0-opcode-guard.patch \ %D%/packages/patches/java-antlr4-Add-standalone-generator.patch \ - %D%/packages/patches/java-antlr4-fix-code-too-large.java \ %D%/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch \ %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ %D%/packages/patches/java-commons-collections-fix-java8.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 663123e638..fd27c1cc71 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -3615,7 +3615,7 @@ stretching and pitch scaling of audio. This package contains the library.") (base32 "0nvhdzy0m3bchk3dpnspv2f518p2v9fjcrv36z1sva1pv9a2g35w")))) (build-system cmake-build-system) (native-inputs - (list catch-framework2)) + (list catch2)) (inputs (list fftw)) (home-page "https://mixxxdj.github.io/libkeyfinder/") diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index f35412d4ec..b35802e915 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3792,7 +3792,7 @@ comment or quality sections.") (inputs (list gsl openblas zlib)) (native-inputs - `(("catch" ,catch-framework2-1) + `(("catch" ,catch2-1) ("perl" ,perl) ("shunit2" ,shunit2) ("which" ,which))) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index b521b57ecd..210bc30536 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -600,7 +600,12 @@ also initializes the boards (RAM etc).") (("'cc'") "'gcc'")) (substitute* "tools/patman/test_util.py" ;; python3-coverage is simply called coverage in guix. - (("python3-coverage") "coverage")) + (("python3-coverage") "coverage") + + ;; Don't require 100% coverage since it's brittle and can + ;; fail with newer versions of coverage or dependencies. + (("raise ValueError\\('Test coverage failure'\\)") + "print('Continuing anyway since Guix does not care :O')")) (substitute* "test/run" ;; Make it easier to find test failures. (("#!/bin/bash") "#!/bin/bash -x") diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index b5b9d501f9..84a62d0fd6 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -45,9 +45,11 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) + #:use-module (gnu packages elf) #:use-module (gnu packages linux) #:use-module (gnu packages logging) #:use-module (gnu packages lua) + #:use-module (gnu packages ninja) #:use-module (gnu packages package-management) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) @@ -62,7 +64,7 @@ #:use-module (gnu packages rpc) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) - #:use-module (gnu packages ninja) + #:use-module (gnu packages version-control) #:use-module (guix build-system gnu) #:use-module (guix build-system python)) @@ -342,6 +344,81 @@ resembles Python.") ;; TODO: Bump this in the next rebuild cycle. (define-public meson meson-0.60) +(define-public meson-python + (package + (name "meson-python") + (version "0.8.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "meson_python" version)) + (sha256 + (base32 + "0k2yn0iws1n184sdznzmfw4xgbqgq5cn02hpc7m0xdaxryj1ybs4")))) + (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'avoid-ninja-dependency + (lambda _ + ;; Avoid dependency on the "ninja" PyPI distribution, + ;; which is a meta-package that simply downloads and + ;; installs ninja from the web ... + (substitute* "pyproject.toml" + (("'ninja',") + "")))) + (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 _ + (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" "-k" + (string-append + "not " + ;; These tests require a git checkout. + (string-join '("test_contents_unstaged" + "test_no_pep621" + "test_pep621" + "test_dynamic_version" + "test_contents" + "test_contents_subdirs") + " and not "))))))))) + (propagated-inputs + (list meson-0.63 ;>=0.62 required + ninja + ;; XXX: python-meson forcefully sets the RUNPATH of binaries + ;; for vendoring purposes, and uses PatchELF for that(!). This + ;; functionality is not useful in Guix, but removing this + ;; dependency is tricky. There is discussion upstream about making + ;; it optional, but for now we'll just carry it: + ;; https://github.com/FFY00/meson-python/issues/125 + patchelf + python-colorama + python-pyproject-metadata + python-tomli + python-wheel)) + (native-inputs + (list python-pypa-build + python-wheel + + ;; For tests. + pkg-config + python-gitpython + python-pytest + python-pytest-mock)) + (home-page "https://github.com/FFY00/mesonpy") + (synopsis "Meson-based build backend for Python") + (description + "meson-python is a PEP 517 build backend for Meson projects.") + (license license:expat))) + (define-public premake4 (package (name "premake") diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 3ee8fd9b01..4a42bc7eca 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -441,7 +441,7 @@ PyUnit and others.") multi-paradigm automated test framework for C++ and Objective-C.") (license license:boost1.0))) -(define-public catch-framework2-1 +(define-public catch2-1 (package (name "catch2") (version "1.12.2") @@ -470,7 +470,7 @@ multi-paradigm automated test framework for C++ and Objective-C.") a multi-paradigm automated test framework for C++ and Objective-C.") (license license:boost1.0))) -(define-public catch-framework2 +(define-public catch2 (package (name "catch2") (version "2.13.8") diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index 735d599d2d..c517610fe8 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -559,7 +559,7 @@ symmetries written in C. Spglib can be used to: glm netcdf)) (native-inputs - (list catch-framework2 python-setuptools)) + (list catch2 python-setuptools)) (home-page "https://pymol.org") (synopsis "Molecular visualization system") (description "PyMOL is a capable molecular viewer and renderer. It can be diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 6289c9520f..d03e0bc7e1 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -531,7 +531,7 @@ functions, class methods, and stl containers. (modules '((guix build utils))) (snippet '(delete-file-recursively "./test/thirdparty")))) (inputs - (list catch-framework2-1)) + (list catch2-1)) (build-system cmake-build-system) (arguments '(#:phases @@ -1264,7 +1264,7 @@ services including database, analytic, and machine learning technologies.") (lambda _ (invoke "./tests")))))) (native-inputs - (list catch-framework2)) + (list catch2)) (synopsis "C++11/14/17 std::expected with functional-style extensions") (description "@code{std::expected} is proposed as the preferred way to represent objects which will either have an expected value, or an unexpected diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index c3a27cb113..df4064ae56 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2020 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org> ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com> +;;; Copyright © 2021 Mathieu Laparie <mlaparie@disr.it> ;;; ;;; This file is part of GNU Guix. ;;; @@ -678,3 +679,43 @@ format documents, with the following features: @item handling encrypted documents @end itemize\n") (license license:lgpl3+))) + +(define-public python-ebooklib + (package + (name "python-ebooklib") + (version "0.17.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "EbookLib" version)) + (sha256 + (base32 + "1w972g0kmh9cdxf3kjr7v4k99wvv4lxv3rxkip39c08550nf48zy")))) + (build-system python-build-system) + (propagated-inputs (list python-lxml python-six)) + (home-page "https://github.com/aerkalov/ebooklib") + (synopsis "Ebook library which can handle EPUB2/EPUB3 and Kindle format") + (description + "Ebook library which can handle EPUB2/EPUB3 and Kindle format.") + (license license:agpl3+))) + +(define-public shirah + (package + (name "shirah") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "shirah_reader" version)) + (sha256 + (base32 + "0j15v435lz68c1mj5clfx5dmfyjc6jvvz2q8hqvv799mb2faj42y")))) + (build-system python-build-system) + (propagated-inputs (list python-beautifulsoup4 python-ebooklib + python-syllables python-termcolor)) + (home-page "https://github.com/hallicopter/shirah-reader") + (synopsis "Terminal ebook reader with an optional RSVP mode") + (description + "@command{shirah} is a curses based terminal ebook reader that can +display ebooks in the usual way or with Rapid Serial Visual Presentation, a +method to enable speedreading by showing the text word by word at configurable +speeds.") + (license license:gpl2+))) diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index afe93ef842..54cd00d08d 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com> ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> +;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages databases) + #:use-module (gnu packages django) #:use-module (gnu packages flex) #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) @@ -45,6 +47,7 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages golang) #:use-module (gnu packages gtk) + #:use-module (gnu packages gstreamer) #:use-module (gnu packages image) #:use-module (gnu packages javascript) #:use-module (gnu packages kde) @@ -1075,3 +1078,75 @@ machine, and more.") (description "Commandline client for exercism.io, a free service providing mentored learning for programming languages.") (license license:expat))) + +(define-public mazo + (package + (name "mazo") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/luis-felipe/mazo.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06246380i5rxycniwg5syn0aldd2zy10cbqk1lgyc0qfqb2lyrwj")))) + (build-system python-build-system) + (arguments + `(#:use-setuptools? #f + #:phases + (modify-phases %standard-phases + (delete 'build) + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (let* ((out (assoc-ref outputs "out")) + (home (string-append out "/tmp"))) + (add-installed-pythonpath inputs outputs) + (setenv "HOME" home) + (invoke "python3" "manage.py" "test"))))) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (script (string-append bin "/mazo")) + (share (string-append out "/share")) + (help (string-append share "/help/C/mazo")) + (icons (string-append + share + "/icons/hicolor/scalable/apps")) + (apps (string-append share "/applications")) + (site (string-append + (site-packages inputs outputs) + "/mazo"))) + (mkdir-p help) + (mkdir-p bin) + (copy-file "mazo.py" script) + (chmod script #o555) + (install-file "icons/mazo.svg" icons) + (install-file "lugare.ulkeva.Mazo.desktop" apps) + (copy-recursively "help/C/mazo" help) + (copy-recursively "mazo" site))))))) + (native-inputs + (list python-django + python-django-cleanup + python-django-svg-image-form-field + python-pillow + python-pycairo)) + (propagated-inputs + (list gstreamer + gtk+ + python + python-django + python-django-cleanup + python-django-svg-image-form-field + python-pillow + python-pycairo + python-pygobject + yelp)) + (home-page "https://luis-felipe.gitlab.io/mazo/") + (synopsis "Memorize concepts using multimedia flash cards") + (description "Mazo is a learning application that helps you memorize +simple concepts using multimedia flash cards and spaced reviews.") + (license license:public-domain))) diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm index 4b31c3131b..1f82b2447e 100644 --- a/gnu/packages/enchant.scm +++ b/gnu/packages/enchant.scm @@ -58,7 +58,7 @@ (base32 "0wbb6dwmzlsyy224y0liis0azgzwbjdvcyzc31pw1aw6vbp36na6")))) (build-system cmake-build-system) (native-inputs - (list catch-framework2 + (list catch2 git-minimal perl ;;FIX-ME: Building with ronn fails. diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 673ea8023b..5c84b9ede0 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -3218,7 +3218,7 @@ perform various useful functions such as: ;; with all of these. (inputs `(("boost" ,boost) - ("catch2" ,catch-framework2) + ("catch2" ,catch2) ("cgal" ,cgal) ("eigen" ,eigen) ("embree" ,embree) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index edcd888f73..a812476db1 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -756,7 +756,7 @@ OpenType variant of these fonts.") (define-public font-amiri (package (name "font-amiri") - (version "0.114") + (version "0.117") (source (origin (method git-fetch) (uri (git-reference @@ -765,7 +765,7 @@ OpenType variant of these fonts.") (file-name (git-file-name name version)) (sha256 (base32 - "01d54i68pmy37fhvxv8kld3iqlc1m0vr871zd66y5y4c7kn2v7as")))) + "1z2hdmny52bapakf96y5xfr29f8ax7q6nj651zrihnnhfdriqfx1")))) (build-system gnu-build-system) (arguments (list @@ -779,6 +779,7 @@ OpenType variant of these fonts.") (assoc-ref font:%standard-phases 'install))))) (native-inputs (list python-fonttools + python-glyphsets python-pcpp python-opentype-sanitizer python-sfdlib diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index bedd8ead8c..902472546e 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -138,16 +138,22 @@ them as it goes.") (define-public python-afdko (package (name "python-afdko") - (version "3.8.1") + (version "3.9.1") (source (origin (method url-fetch) (uri (pypi-uri "afdko" version)) (sha256 - (base32 "171r9f7n8fgz37dkcgpzj508lxfafcyzzx43ps12j1z2nk1sk905")) + (base32 "0k1204vykgx32saa495s1lgmz1dixcp8bjiv486imx77killvm02")) (modules '((guix build utils))) (snippet #~(begin + (substitute* + "tests/buildcff2vf_data/expected_output/SHSansJPVFTest.ttx" + ;; Adjust expected output to match newer fonttools. Taken from: + ;; https://github.com/adobe-type-tools/afdko/commit/7c526390a10e + (("FDSelect format=\"3\"") + "FDSelect format=\"0\"")) (with-directory-excursion "c/makeotf/lib/hotconv" ;; Delete ANTLR-generated code. (for-each delete-file @@ -158,6 +164,27 @@ them as it goes.") (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'use-c++17 + (lambda _ + ;; ANTLR4 4.10 and later require C++ 17. + (substitute* "CMakeLists.txt" + (("CMAKE_CXX_STANDARD 11") + "CMAKE_CXX_STANDARD 17")))) + (add-after 'unpack 'use-system-libxml2 + (lambda _ + ;; XXX: These horrifying substitutions revert this upstream + ;; PR: <https://github.com/adobe-type-tools/afdko/pull/1527>. + ;; Hopefully it's only temporary..! + (substitute* (find-files "." "^CMakeLists.txt$") + (("\\(\\(NOT \\$\\{LibXml2_FOUND\\}\\) OR \ +\"\\$\\{CMAKE_SYSTEM\\}\" MATCHES \"Linux\"\\)") + "(NOT ${LibXml2_FOUND})") + (("\\(\\(\\$\\{LibXml2_FOUND\\}\\) AND \ +\\(NOT \"\\$\\{CMAKE_SYSTEM\\}\" MATCHES \"Linux\"\\)\\)") + "(${LibXml2_FOUND})")) + (substitute* "cmake/ExternalLibXML2.cmake" + (("set\\(LIBXML2_STATIC_INCLUDE_DIR") + "set(LIBXML2_INCLUDE_DIR)")))) (add-after 'unpack 'patch-problematic-requirements (lambda _ (substitute* "requirements.txt" @@ -177,7 +204,8 @@ them as it goes.") (format #f "include_directories(SYSTEM ~a)" (search-input-directory inputs "include/antlr4-runtime")))) - (substitute* "c/makeotf/lib/hotconv/CMakeLists.txt" + (substitute* '("c/makeotf/lib/hotconv/CMakeLists.txt" + "c/makeotf/lib/cffread/CMakeLists.txt") (("antlr4_static") "antlr4-runtime")))) (add-after 'unpack 'regenerate-hotconv-grammar @@ -198,7 +226,8 @@ them as it goes.") (lambda* (#:key tests? #:allow-other-keys) (when tests? (setenv "HOME" "/tmp") - (invoke "pytest" "-vv")))) + (invoke "pytest" "-vv" "--dist" "loadfile" "-n" + (number->string (parallel-job-count)))))) (add-after 'check 'wrap (assoc-ref %standard-phases 'wrap)) (add-before 'wrap 'wrap-PATH @@ -216,11 +245,16 @@ them as it goes.") (list antlr4 openjdk ;required by antlr4 ninja + pkg-config python-pytest + python-pytest-xdist python-scikit-build python-setuptools-scm python-wheel)) - (inputs (list java-antlr4-runtime-cpp `(,util-linux "lib"))) + (inputs + (list java-antlr4-runtime-cpp + libxml2 + `(,util-linux "lib"))) (propagated-inputs (list psautohint python-booleanoperations @@ -349,13 +383,13 @@ Kit for OpenType (AFDKO) @command{tx} tool.") (define-public python-compreffor (package (name "python-compreffor") - (version "0.5.1.post1") + (version "0.5.2") (source (origin (method url-fetch) (uri (pypi-uri "compreffor" version)) (sha256 - (base32 "1r3wqd67qnz8p6irv68mvadqv1nklgzw53376iarw3pq4gxrma36")))) + (base32 "0r6vlxrm73j719f5q3n6sy737p2424n7qam52am83p55j0fb9h5f")))) (build-system python-build-system) (arguments (list @@ -405,13 +439,13 @@ converts any cubic curves to quadratic. The most useful function is probably (define-public python-ufo2ft (package (name "python-ufo2ft") - (version "2.26.0") + (version "2.28.0") (source (origin (method url-fetch) (uri (pypi-uri "ufo2ft" version)) (sha256 - (base32 "0a6iq5g6qdxj7nvip8nnf0mf8y5wmpd3wwq0dv7d4nm9bjrh0r6m")))) + (base32 "068hm62s1iphyg66w96vgiif6ahpcsaf8fr44rk6jdf71f6fyqd5")))) (build-system python-build-system) (native-inputs (list python-pytest python-pytest-runner python-setuptools-scm)) @@ -436,13 +470,13 @@ to generate OpenType font binaries from Unified Font Objects (UFOs).") (define-public python-fontmath (package (name "python-fontmath") - (version "0.9.1") + (version "0.9.2") (source (origin (method url-fetch) (uri (pypi-uri "fontMath" version ".zip")) (sha256 - (base32 "001756zxn2386dm4svgqjgw5026hvyacxl09b2qlk7s06phpcphw")))) + (base32 "014407hpvqdx123g06i664qrfq86bf9l621x7jllpgqw3rqir2sc")))) (build-system python-build-system) (propagated-inputs (list python-fonttools)) (native-inputs @@ -509,13 +543,13 @@ implementing the pen protocol for manipulating glyphs.") (hidden-package (package (name "python-fontparts-bootstrap") - (version "0.10.4") + (version "0.10.8") (source (origin (method url-fetch) (uri (pypi-uri "fontParts" version ".zip")) (sha256 - (base32 "1ic453q86s5hsw8mxnclk1vr4qp69fd67gywhv23zqwz9a7kb7lh")))) + (base32 "0i5ww6yl9m74wnjd7gyvjkdh7m56haql4gv7lasmppdipay2209g")))) (build-system python-build-system) (propagated-inputs (list python-booleanoperations @@ -540,6 +574,101 @@ process. FontParts is the successor of RoboFab.") (alist-delete 'hidden? (package-properties python-fontparts-bootstrap))))) +(define-public python-glyphslib + (package + (name "python-glyphslib") + (version "6.0.7") + (source (origin + (method url-fetch) + (uri (pypi-uri "glyphsLib" version)) + (sha256 + (base32 + "0mkkwd09g76hvif603ij5aqicxh47zvhgyyd0pjcjmpdy6dr70yw")))) + (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'build + (lambda _ + ;; The Zip format does not support pre-1980 time stamps. + (let ((circa-1980 (* 10 366 24 60 60))) + (setenv "SOURCE_DATE_EPOCH" (number->string circa-1980)) + (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? + (setenv "GUIX_PYTHONPATH" + (string-append (getcwd) ":" (getenv "GUIX_PYTHONPATH"))) + (invoke "pytest" "-vv" + ;; These fail because the test data has not yet been + ;; updated for newer FontTools: + ;; https://github.com/googlefonts/glyphsLib/issues/787 + ;; Re-enable for versions > 6.0.7. + "--ignore=tests/builder/designspace_gen_test.py" + "--ignore=tests/builder/interpolation_test.py" + ))))))) + (native-inputs + (list python-pypa-build + python-setuptools-scm + python-wheel + + ;; For tests. + python-pytest + python-xmldiff)) + (propagated-inputs + (list python-defcon + python-fonttools + python-openstep-plist + python-ufolib2 + python-ufo2ft + python-ufonormalizer)) + (home-page "https://github.com/googlefonts/glyphsLib") + (synopsis "Bridge Glyphs source files to UFOs") + (description + "This package provides a bridge from Glyphs source files (@file{.glyphs}) +to UFOs and DesignSpace files via @code{defcon} and @code{designspaceLib}.") + (license license:asl2.0))) + +(define-public python-glyphsets + (package + (name "python-glyphsets") + (version "0.5.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "glyphsets" version)) + (sha256 + (base32 + "1dc24i0hkd85gkkg3bqjhagjyw3xsqxazd86yh2l60c1wr5n9y6g")))) + (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'loosen-version-constraints + (lambda _ + (substitute* "setup.py" + (("setuptools_scm>=4,<6\\.1") + "setuptools_scm>=4")))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv" "tests/testglyphdata.py") + (invoke "pytest" "-vv" "tests/testusage.py"))))))) + (native-inputs (list python-pytest python-setuptools-scm)) + (propagated-inputs + (list python-defcon python-fonttools python-glyphslib)) + (home-page "https://github.com/googlefonts/glyphsets/") + (synopsis "Evaluate coverage of glyph sets") + (description + "This package provides an API with data about glyph sets for many +different scripts and languages.") + (license license:asl2.0))) + (define-public python-opentype-sanitizer (package (name "python-opentype-sanitizer") @@ -1556,13 +1685,13 @@ API-compatible with defcon.") (define-public python-defcon-bootstrap (package (name "python-defcon-bootstrap") - (version "0.10.0") + (version "0.10.2") (source (origin (method url-fetch) (uri (pypi-uri "defcon" version ".zip")) (sha256 - (base32 "0g0bjwzdj6sskyh8snbxsxza3czdmvb807qv38mizx631cm8c2d0")))) + (base32 "0i1a306b8c42dpbplwxj6ili2aac5lwq2ir6r1jswicysvk9dqxf")))) (build-system python-build-system) (propagated-inputs (list python-fontpens-bootstrap python-fonttools-full)) (native-inputs diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm index 58b81bf83a..11c56477a8 100644 --- a/gnu/packages/fpga.scm +++ b/gnu/packages/fpga.scm @@ -58,7 +58,8 @@ #:use-module (gnu packages qt) #:use-module (gnu packages boost) #:use-module (gnu packages algebra) - #:use-module (gnu packages libftdi)) + #:use-module (gnu packages libftdi) + #:use-module (gnu packages libusb)) (define-public abc (let ((commit "5ae4b975c49c") @@ -584,3 +585,29 @@ libraries, optionally encrypted, into other simulators.") hardware designs in Verilog.") (home-page "https://zipcpu.com/") (license license:lgpl3+)))) + +(define-public openfpgaloader + (package + (name "openfpgaloader") + (version "0.9.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/trabucayre/openFPGALoader.git") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1v3bwzhsrnsn304cqhd5azn68cl847qv8w8cb8bl7372jiqz5wqq")))) + (build-system cmake-build-system) + (native-inputs + (list pkg-config)) + (inputs + (list libftdi libusb hidapi zlib)) + (arguments + `(#:tests? #f)) ; No tests exist + (synopsis "Utility for programming FPGA") + (description "This package provides a program to transfer a bitstream +to an FPGA.") + (home-page "https://f4pga.org/") + (license license:asl2.0))) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index d210cd63b5..4fdee3dc7b 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -65,6 +65,7 @@ #:use-module (gnu packages boost) #:use-module (gnu packages build-tools) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages cups) @@ -823,42 +824,72 @@ street bearings/orientations, and speed/travel time.") (license license:expat))) (define-public mapnik - (package - (name "mapnik") - (version "3.1.0") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/mapnik/mapnik/releases/download/v" - version "/mapnik-v" version ".tar.bz2")) - (sha256 - (base32 - "0qb2irykja5qhr9apz9r230pcxap9v3j85fi98mj2xd9sa163ms3")))) - (build-system scons-build-system) - (inputs - (list boost - cairo - freetype - harfbuzz - icu4c - libjpeg-turbo - libpng - libtiff - libwebp - libxml2 - proj.4 - sqlite - zlib)) - (native-inputs - (list pkg-config postgresql)) - (arguments - `(#:scons-flags - (list "CC=gcc" - (string-append "PREFIX=" %output) - (string-append "CUSTOM_LDFLAGS=-Wl,-rpath=" %output "/lib")))) - (home-page "https://mapnik.org/") - (synopsis "Toolkit for developing mapping applications") - (description "Mapnik is a toolkit for developing mapping applications. It + ;; There hasn't been a release since early 2021, and it fails to build with + ;; Boost 1.77+. + (let ((commit "81103491b467e17218140f50bc0bb9dc8c1f0317") + (revision "0")) + (package + (name "mapnik") + (version (git-version "3.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mapnik/mapnik") + (commit commit) + ;; TODO: Un-bundle mapbox dependencies (not yet packaged). + (recursive? #t))) ;for mapbox dependencies and test data + (file-name (git-file-name name version)) + (sha256 + (base32 "094nam57bdd5nak88qy33z2p3kjahk3vk2nk56m5jkcr5d3hlnx2")))) + (build-system qt-build-system) + (arguments + (list + #:cmake cmake ;for FIND_PACKAGE_ARGS + #:configure-flags + #~(list (string-append "-DCMAKE_CXX_FLAGS=-I" + #$(this-package-native-input "catch2") + "/include/catch2")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'use-system-catch2 + (lambda _ + (substitute* "test/CMakeLists.txt" + (("GIT_TAG.*v2.13.7" all) + (string-append all "\n" + " FIND_PACKAGE_ARGS NAMES Catch2")) + (("^include.*Catch2_SOURCE_DIR.*contrib/Catch.cmake.*") + "include(Catch)\n")))) + (add-after 'unpack 'disable-problematic-tests + (lambda _ + ;; The 'ogr' test fails for unknown reasons. Mark it as + ;; expected to fail (see: + ;; https://github.com/mapnik/mapnik/issues/4329). + (substitute* "test/unit/datasource/ogr.cpp" + (("TEST_CASE\\(\"ogr\"" all) + (string-append all ", \"[!shouldfail]\"")))))))) + (native-inputs + (list catch2 + pkg-config + postgresql)) + (inputs + (list boost + cairo + freetype + gdal + harfbuzz + icu4c + libjpeg-turbo + libpng + libtiff + libwebp + libxml2 + proj + sqlite + zlib)) + (home-page "https://mapnik.org/") + (synopsis "Toolkit for developing mapping applications") + (description "Mapnik is a toolkit for developing mapping applications. It is basically a collection of geographic objects like maps, layers, datasources, features, and geometries. At its core is a C++ shared library providing algorithms and patterns for spatial data access and visualization. @@ -866,15 +897,15 @@ The library does not rely on any specific windowing system and can be deployed to any server environment. It is intended to play fair in a multi-threaded environment and is aimed primarily, but not exclusively, at web-based development.") - (license (list license:lgpl2.1+ - ;; demo/viewer, demo/python/rundemo.py - license:gpl2+ - ;; deps/boost, deps/mapbox, deps/agg/include/agg_conv_offset.h - license:boost1.0 - ;; deps/mapnik/sparsehash - license:bsd-3 - ;; deps/agg - (license:non-copyleft "file://deps/agg/copying"))))) + (license (list license:lgpl2.1+ + ;; demo/viewer, demo/python/rundemo.py + license:gpl2+ + ;; deps/boost, deps/mapbox, deps/agg/include/agg_conv_offset.h + license:boost1.0 + ;; deps/mapnik/sparsehash + license:bsd-3 + ;; deps/agg + (license:non-copyleft "file://deps/agg/copying")))))) (define-public spatialite-gui (package diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 201d939918..cb255fc488 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -9730,8 +9730,10 @@ associations for GNOME.") gobject-introspection gsettings-desktop-schemas pkg-config)) - (inputs - (list rest-next)) + (propagated-inputs + ;; These dependencies are required by govirt-1.0.pc. + (list glib + rest-next)) (synopsis "GoVirt Library") (description "GoVirt is a GObject wrapper for the oVirt REST API.") (home-page "https://gitlab.gnome.org/GNOME/libgovirt") diff --git a/gnu/packages/irods.scm b/gnu/packages/irods.scm index e9ac0d5297..58ef3bf474 100644 --- a/gnu/packages/irods.scm +++ b/gnu/packages/irods.scm @@ -154,7 +154,7 @@ ("unixodbc" ,unixodbc) ("zeromq" ,zeromq))) (native-inputs - `(("catch2" ,catch-framework2) + `(("catch2" ,catch2) ("clang" ,clang-toolchain-6) ("clang-runtime" ,clang-runtime-6) ("libcxx+libcxxabi" ,libcxx+libcxxabi-6))) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 8b3b172ae9..f467c473d7 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -8717,7 +8717,7 @@ actual rendering.") (define-public java-antlr4-runtime (package (name "java-antlr4-runtime") - (version "4.8") + (version "4.10.1") (source (origin (method git-fetch) (uri (git-reference @@ -8726,10 +8726,9 @@ actual rendering.") (file-name (git-file-name name version)) (sha256 (base32 - "1qal3add26qxskm85nk7r758arladn5rcyjinmhlhznmpbbv9j8m")) + "0ldvd9jm4nrivaw7i7wh1q40q6xgzmzirsywiakbhg8sppagqlv7")) (patches - (search-patches "java-antlr4-Add-standalone-generator.patch" - "java-antlr4-fix-code-too-large.java")))) + (search-patches "java-antlr4-Add-standalone-generator.patch")))) (build-system ant-build-system) (arguments `(#:jar-name "java-antlr4-runtime.jar" @@ -8759,6 +8758,8 @@ sources by ANTLR.") ;; TODO: try to run the tests under ;; runtime-testsuite/test/org/antlr/v4/test/runtime/cpp with antlr4. #:tests? #f ;no CMake test target + ;; TODO: Building the tests wants to download googletest. + #:configure-flags #~'("-DANTLR_BUILD_CPP_TESTS=OFF") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -8787,10 +8788,12 @@ generated sources by ANTLR."))) (arguments `(#:jar-name "antlr4.jar" #:source-dir "tool/src" - #:test-dir "tool-testsuite/test:runtime-testsuite/test:runtime-testsuite/annotations/src" + #:test-dir "tool-testsuite/test:runtime-testsuite/test" #:test-include (list "**/Test*.java") #:test-exclude (list - ;; no runnable method + ;; These have no runnable methods and fail because + ;; test-include above is too broad. + "**/TestContext.java" "**/TestOutputReading.java" ;; no @Test methods "**/TestParserErrors.java" @@ -8808,9 +8811,7 @@ generated sources by ANTLR."))) "**/TestFullContextParsing.java" "**/TestCompositeLexers.java" ;; Null pointer exception - "**/TestCompositeGrammars.java" - ;; Wrong assumption on emoji - "**/TestUnicodeData.java") + "**/TestCompositeGrammars.java") #:phases (modify-phases %standard-phases (add-before 'build 'fix-build.xml @@ -8824,7 +8825,6 @@ generated sources by ANTLR."))) (add-after 'bin-install 'check (lambda _ (invoke "ant" "compile-tests") - (invoke "ant" "check" "-Dtest.home=runtime-testsuite/annotations/src") (invoke "ant" "check" "-Dtest.home=runtime-testsuite/test") (invoke "ant" "check" "-Dtest.home=tool-testsuite/test") #t)) diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index 47845700ee..e2cdf7c448 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -311,7 +311,7 @@ through a text-based interface.") (define-public python-pyzabbix (package (name "python-pyzabbix") - (version "1.0.0") + (version "1.2.1") (home-page "https://github.com/lukecyca/pyzabbix") ;; No tests on PyPI, use the git checkout. (source @@ -321,26 +321,20 @@ through a text-based interface.") (file-name (git-file-name name version)) (sha256 (base32 - "146pv8bj6pv8max1lkm07560b9zcc268c927kff6rcib47qxfnn2")))) + "0ad5xac67brmwc3wd0f87pjplly3cqyrz1dp725lzz2hrjgiaqi8")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'patch - (lambda _ - ;; Permit newer versions of httpretty. - (substitute* "setup.py" - (("httpretty<0\\.8\\.7") - "httpretty")))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (if tests? - (invoke "nosetests") + (invoke "pytest" "-vv" "tests") (format #t "test suite not run~%"))))))) (native-inputs ;; For tests. - (list python-httpretty python-nose)) + (list python-requests-mock python-pytest)) (propagated-inputs - (list python-requests python-semantic-version)) + (list python-packaging python-requests)) (synopsis "Python interface to the Zabbix API") (description "@code{pyzabbix} is a Python module for working with the Zabbix API.") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index ee4d91bd2a..a69c7fbad8 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1378,7 +1378,7 @@ between different versions of ØMQ.") (native-inputs (list pkg-config)) (inputs - (list catch-framework2 zeromq)) + (list catch2 zeromq)) (home-page "https://zeromq.org") (synopsis "C++ bindings for the ØMQ messaging library") (description @@ -3603,7 +3603,7 @@ communication over HTTP.") (build-system cmake-build-system) (inputs ; TODO: Need to force-keep references on some inputs, e.g. boost. (list zlib - catch-framework2 + catch2 openssl boost pcre diff --git a/gnu/packages/nfs.scm b/gnu/packages/nfs.scm index ce951543ff..d5ebe6a760 100644 --- a/gnu/packages/nfs.scm +++ b/gnu/packages/nfs.scm @@ -116,7 +116,6 @@ (inputs `(("keyutils" ,keyutils) ("libevent" ,libevent) - ("libnfsidmap" ,libnfsidmap) ("rpcsvc-proto" ,rpcsvc-proto) ;for 'rpcgen' ("sqlite" ,sqlite) ("lvm2" ,lvm2) diff --git a/gnu/packages/patches/java-antlr4-fix-code-too-large.java b/gnu/packages/patches/java-antlr4-fix-code-too-large.java deleted file mode 100644 index 9e9f92349d..0000000000 --- a/gnu/packages/patches/java-antlr4-fix-code-too-large.java +++ /dev/null @@ -1,90 +0,0 @@ -From d22db2048534bdf3d9615117291f9d86564ff10d Mon Sep 17 00:00:00 2001 -From: Julien Lepiller <julien@lepiller.eu> -Date: Sat, 19 Sep 2020 21:05:48 +0200 -Subject: [PATCH] Separate addPropertyAliases in two methods - -The quantity of data used to generate addPropertyAliases creates a big -method, that is too big for java and results in "error: code too large". -This is most likely due to added data between the expected version of -icu and the actual version of icu in Guix. ---- - .../org/antlr/v4/tool/templates/unicodedata.st | 17 ++++++++++++++--- - .../unicode/UnicodeDataTemplateController.java | 18 ++++++++++-------- - 2 files changed, 24 insertions(+), 11 deletions(-) - -diff --git a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st -index 0f22c73..3573873 100644 ---- a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st -+++ b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st -@@ -1,4 +1,4 @@ --unicodedata(propertyCodePointRanges, propertyAliases) ::= << -+unicodedata(propertyCodePointRanges, propertyAliasesA, propertyAliasesB) ::= << - package org.antlr.v4.unicode; - - import java.util.Arrays; -@@ -15,7 +15,7 @@ import org.antlr.v4.runtime.misc.Interval; - */ - public abstract class UnicodeData { - private static final Map\<String, IntervalSet\> propertyCodePointRanges = new HashMap\<\>(<length(propertyCodePointRanges)>); -- private static final Map\<String, String\> propertyAliases = new HashMap\<\>(<length(propertyAliases)>); -+ private static final Map\<String, String\> propertyAliases = new HashMap\<\>(<length(propertyAliasesA)> + <length(propertyAliasesB)>); - - // Work around Java 64k bytecode method limit by splitting up static - // initialization into one method per Unicode property -@@ -30,9 +30,20 @@ static private void addProperty<i>() { - propertyCodePointRanges.put("<k>".toLowerCase(Locale.US), codePointRanges); - \}}; separator="\n\n"> - -+ // Property aliases -+ static private void addPropertyAliases1() { -+ <propertyAliasesA.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesA.(k)>".toLowerCase(Locale.US)); }; separator="\n"> -+ } -+ -+ // Property aliases -+ static private void addPropertyAliases2() { -+ <propertyAliasesB.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesB.(k)>".toLowerCase(Locale.US)); }; separator="\n"> -+ } -+ - // Property aliases - static private void addPropertyAliases() { -- <propertyAliases.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliases.(k)>".toLowerCase(Locale.US)); }; separator="\n"> -+ addPropertyAliases1(); -+ addPropertyAliases2(); - } - - // Put it all together -diff --git a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java -index da244a3..dc591cb 100644 ---- a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java -+++ b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java -@@ -78,17 +78,19 @@ public abstract class UnicodeDataTemplateController { - addTR35ExtendedPictographicPropertyCodesToCodePointRanges(propertyCodePointRanges); - addEmojiPresentationPropertyCodesToCodePointRanges(propertyCodePointRanges); - -- Map<String, String> propertyAliases = new LinkedHashMap<>(); -- addUnicodeCategoryCodesToNames(propertyAliases); -- addUnicodeBinaryPropertyCodesToNames(propertyAliases); -- addUnicodeScriptCodesToNames(propertyAliases); -- addUnicodeBlocksToNames(propertyAliases); -- addUnicodeIntPropertyCodesToNames(propertyAliases); -- propertyAliases.put("EP", "Extended_Pictographic"); -+ Map<String, String> propertyAliases1 = new LinkedHashMap<>(); -+ Map<String, String> propertyAliases2 = new LinkedHashMap<>(); -+ addUnicodeCategoryCodesToNames(propertyAliases1); -+ addUnicodeBinaryPropertyCodesToNames(propertyAliases1); -+ addUnicodeScriptCodesToNames(propertyAliases1); -+ addUnicodeBlocksToNames(propertyAliases2); -+ addUnicodeIntPropertyCodesToNames(propertyAliases2); -+ propertyAliases2.put("EP", "Extended_Pictographic"); - - Map<String, Object> properties = new LinkedHashMap<>(); - properties.put("propertyCodePointRanges", propertyCodePointRanges); -- properties.put("propertyAliases", propertyAliases); -+ properties.put("propertyAliasesA", propertyAliases1); -+ properties.put("propertyAliasesB", propertyAliases2); - return properties; - } - --- -2.28.0 - diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 3548345326..d1698e5f67 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -42,6 +42,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bioinformatics) #:use-module (gnu packages boost) + #:use-module (gnu packages build-tools) #:use-module (gnu packages check) #:use-module (gnu packages cpp) #:use-module (gnu packages databases) @@ -75,81 +76,86 @@ (define-public python-scipy (package (name "python-scipy") - (version "1.8.0") + (version "1.9.1") (source (origin (method url-fetch) (uri (pypi-uri "scipy" version)) (sha256 - (base32 "1gghkwn93niyasm36333xbqrnn3yiadq9d97wnc9mg14nzbg5m1i")))) - (outputs '("out" "doc")) + (base32 "1jcb94xal7w7ax80kaivqqics36v8smi4a3xngyxbrh0i538rli6")))) (build-system python-build-system) (arguments (list - #:modules '((guix build utils) - (guix build python-build-system) - (ice-9 format)) #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'disable-pythran - (lambda _ - (setenv "SCIPY_USE_PYTHRAN" "0"))) - (add-before 'build 'change-home-dir + (add-after 'unpack 'loosen-requirements (lambda _ - ;; Change from /homeless-shelter to /tmp for write permission. - (setenv "HOME" "/tmp"))) - (add-before 'build 'configure-openblas + (substitute* "pyproject.toml" + (("numpy==") "numpy>=") + (("meson==") "meson>=")))) + (replace 'build (lambda _ - (call-with-output-file "site.cfg" - (lambda (port) - (format port - "\ -[blas] -libraries = openblas -library_dirs = ~a/lib -include_dirs = ~:*~a/include - -[atlas] -library_dirs = ~:*~a/lib -atlas_libs = openblas~%" #$(this-package-input "openblas")))))) - (add-before 'build 'parallelize-build + ;; ZIP does not support timestamps before 1980. + (setenv "SOURCE_DATE_EPOCH" "315532800") + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (replace 'install (lambda _ - (setenv "NPY_NUM_BUILD_JOBS" - (number->string (parallel-job-count))))) - (add-before 'check 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let* ((data (string-append (assoc-ref outputs "doc") "/share")) - (doc (string-append data "/doc/" #$name "-" #$version)) - (html (string-append doc "/html"))) - (with-directory-excursion "doc" - ;; Build doc. - (invoke "make" "html" - ;; Building the documentation takes a very long time. - ;; Parallelize it. - (string-append "SPHINXOPTS=-j" - (number->string (parallel-job-count)))) - ;; Install doc. - (mkdir-p html) - (copy-recursively "build/html" html))))) + (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 "./runtests.py" "-vv" "--no-build" "--mode=fast" - "-j" (number->string (parallel-job-count))))))))) - (propagated-inputs (list python-numpy python-matplotlib python-pyparsing)) + ;; Step out of the source directory to avoid interference. + (with-directory-excursion "/tmp" + (invoke "python" "-c" + (string-append + "import scipy; scipy.test('fast', parallel=" + (number->string (parallel-job-count)) + ", verbose=2)")))))) + (add-after 'check 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + ;; FIXME: Documentation cannot be built because it requires + ;; a newer version of pydata-sphinx-theme, which currently + ;; cannot build without internet access: + ;; <https://github.com/pydata/pydata-sphinx-theme/issues/628>. + ;; Keep the phase for easy testing. + (let ((sphinx-build (false-if-exception + (search-input-file input "bin/sphinx-build")))) + (if sphinx-build + (let* ((doc (assoc-ref outputs "doc")) + (data (string-append doc "/share")) + (docdir (string-append + data "/doc/" + #$(package-name this-package) "-" + #$(package-version this-package))) + (html (string-append docdir "/html"))) + (with-directory-excursion "doc" + ;; Build doc. + (invoke "make" "html" + ;; Building the documentation takes a very long time. + ;; Parallelize it. + (string-append "SPHINXOPTS=-j" + (number->string (parallel-job-count)))) + ;; Install doc. + (mkdir-p html) + (copy-recursively "build/html" html))) + (format #t "sphinx-build not found, skipping~%")))))))) + (propagated-inputs + (list python-numpy python-matplotlib python-pyparsing python-pythran)) (inputs (list openblas pybind11)) (native-inputs (list gfortran - perl + ;; XXX: Adding gfortran shadows GCC headers, causing a compilation + ;; failure. Somehow also providing GCC works around it ... + gcc + meson-python + pkg-config python-cython - python-numpydoc - python-pydata-sphinx-theme + python-pypa-build python-pytest python-pytest-xdist - python-sphinx-4 - python-sphinx-panels - python-threadpoolctl - which)) + python-threadpoolctl)) (home-page "https://scipy.org/") (synopsis "The Scipy library provides efficient numerical routines") (description "The SciPy library is one of the core packages that make up diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 72bb841208..92db6715df 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -128,6 +128,7 @@ ;;; Copyright © 2022 Marek Felšöci <marek@felsoci.sk> ;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl> +;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it> ;;; ;;; This file is part of GNU Guix. ;;; @@ -10030,6 +10031,24 @@ function signatures.") "This package provides a YAML template engine with Python expressions.") (license license:expat))) +(define-public python-syllables + (package + (name "python-syllables") + (version "1.0.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "syllables" version)) + (sha256 + (base32 + "0wkl6h0rg6fbsxfp0a8fnibf3l4l6lbh6z12cvcilgb6qhxzpmv3")))) + (build-system python-build-system) + (home-page "https://github.com/prosegrinder/python-syllables") + (synopsis "Package for estimating the number of syllables in a word") + (description + "This package provides a Python package for estimating the number of +syllables in a word.") + (license license:gpl3))) + (define-public python-sympy (package (name "python-sympy") @@ -11559,6 +11578,40 @@ reading and writing MessagePack data.") and MAC network addresses.") (license license:bsd-3))) +(define-public python-openstep-plist + (package + (name "python-openstep-plist") + (version "0.3.0") + (home-page "https://github.com/fonttools/openstep-plist") + (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 + "1rxjgzh0p069ncsr2986rn32vhdqyq35irbqg2559jh18456mkca")))) + (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'pretend-version + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" + #$(package-version this-package)))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv"))))))) + (native-inputs + (list python-cython python-pytest python-setuptools-scm)) + (synopsis "OpenStep plist parser and writer") + (description + "This package provides a parser for the \"old style\" OpenStep property +list format (also known as ASCII plist), written in Cython.") + (license license:expat))) + (define-public python-wrapt (package (name "python-wrapt") @@ -22283,7 +22336,7 @@ user-space file systems in Python.") ;; The following dependencies are used for tests. ("python-pytest" ,python-pytest) - ("catch" ,catch-framework2-1) + ("catch" ,catch2-1) ("eigen" ,eigen))) (arguments `(#:configure-flags diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index d89714b577..f2cd6e33af 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -741,7 +741,7 @@ an unprivileged user.") (arguments ;; These tests do not require any device to be connected '(#:configure-flags (list "-DCOMPILE_OFFLINE_TESTS=ON"))) - (native-inputs (list catch-framework2 doxygen graphviz pkg-config)) + (native-inputs (list catch2 doxygen graphviz pkg-config)) (inputs (list hidapi libusb)) (home-page "https://github.com/Nitrokey/libnitrokey") (synopsis "Communication library for Nitrokey") @@ -765,7 +765,7 @@ an unprivileged user.") (arguments '(#:configure-flags (list "-DBUILD_TESTING=on"))) (native-inputs (list pkg-config qttools-5)) - (inputs (list catch-framework2)) + (inputs (list catch2)) (home-page "https://github.com/tplgy/cppcodec") (synopsis "Header library to encode/decode base64, base64url, etc.") (description "This package provides library to encode/decode base64, diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index b1bbb7f996..39b5620822 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -465,7 +465,7 @@ FFC is part of the FEniCS Project.") ("sundials" ,sundials-openmpi) ("zlib" ,zlib))) (native-inputs - `(("catch" ,catch-framework2-1) + `(("catch" ,catch2-1) ("pkg-config" ,pkg-config))) (propagated-inputs `(("ffc" ,python-fenics-ffc) diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm index 5d505b0ee2..2be724c455 100644 --- a/gnu/packages/spice.scm +++ b/gnu/packages/spice.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org> +;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,22 +24,26 @@ #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages compression) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages gettext) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages nss) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages security-token) #:use-module (gnu packages tls) + #:use-module (gnu packages virtualization) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) @@ -369,35 +374,32 @@ share smart cards from client system to local or remote virtual machines.") (define-public virt-viewer (package (name "virt-viewer") - (version "7.0") + (version "11.0") (source (origin (method url-fetch) (uri (string-append - "https://virt-manager.org/download/sources/virt-viewer/" - "virt-viewer-" version ".tar.gz")) + "https://virt-manager.org/download/sources/virt-viewer/" + "virt-viewer-" version ".tar.xz")) (sha256 (base32 - "00y9vi69sja4pkrfnvrkwsscm41bqrjzvp8aijb20pvg6ymczhj7")))) - (build-system gnu-build-system) - (inputs - (list gtk+ gtk-vnc libcap libxml2 spice-gtk)) + "1l5bv6x6j21l487mk3n93ai121gg62n6b069r2jpf72cbhra4gx4")))) + (build-system meson-build-system) (native-inputs - `(("glib:bin" ,glib "bin") - ("intltool" ,intltool) - ("pkg-config" ,pkg-config))) - (arguments - `(#:configure-flags - '("--with-spice-gtk") - #:phases - (modify-phases %standard-phases - (add-after - 'install 'wrap-remote-viewer - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))) - (wrap-program (string-append out "/bin/remote-viewer") - `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))) - #t))))) + (list `(,glib "bin") + gettext-minimal + perl ;for pod2man + pkg-config + python)) + (inputs + (list bash-completion + gtk+ + gtk-vnc + libcap + libgovirt + libvirt-glib + libxml2 + spice-gtk + vte)) (synopsis "Graphical console client for virtual machines") (description "Graphical console client for virtual machines using SPICE or VNC.") diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm index 4976acbc0c..1a22d230d2 100644 --- a/gnu/packages/telegram.scm +++ b/gnu/packages/telegram.scm @@ -387,7 +387,7 @@ Telegram project, for its use in telegram desktop client.") (inputs `(("alsa" ,alsa-lib) ("c++-gsl" ,c++-gsl) - ("catch" ,catch-framework2) + ("catch" ,catch2) ("codegen-source" ,(origin (method git-fetch) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 8c0f187be1..9cc1ea46e3 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -784,9 +784,15 @@ old-fashioned output methods with powerful ascii-art renderer.") "/celluloid-" version ".tar.xz")) (sha256 (base32 "0ns9xh582c8kajw4v2x5ap5jfiba3gxywqc2klc0v6fc3id1gqii")))) - (build-system glib-or-gtk-build-system) + (build-system meson-build-system) (native-inputs - (list intltool pkg-config)) + (list + desktop-file-utils ; for update-desktop-database + intltool + `(,glib "bin") ; for glib-compile-resources + `(,gtk "bin") ; for gtk-update-icon-cache + pkg-config + python-wrapper)) ; for generate-authors.py (inputs (list gtk libadwaita libepoxy mpv)) (home-page "https://github.com/celluloid-player/celluloid") diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index cebcc9742d..199156dbb9 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1517,7 +1517,7 @@ virtualization library.") (list dconf gtk+ gtk-vnc - gtksourceview + gtksourceview-4 libvirt libvirt-glib libosinfo diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index e92cb22d7d..6a60e65650 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5717,14 +5717,14 @@ on the fly.") (define-public hitch (package (name "hitch") - (version "1.7.2") + (version "1.7.3") (home-page "https://hitch-tls.org/") (source (origin (method url-fetch) (uri (string-append home-page "source/hitch-" version ".tar.gz")) (sha256 (base32 - "118p3a8wjvr0yhldpd1zm7d2cmgaw4vmyz9ib8m64z18qsz5rmnw")))) + "11wp50zs5irb5bj5xyanm060nlvna6ha328wqf6p2nvpbnaz86qs")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 0d595992cc..02e04ccf88 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -2893,7 +2893,7 @@ create layout indicator widgets.") "1gxpgifzy0hnpd0ymw3r32amzr32z3bgb90ldjzl438p6h1q0i26")))) (build-system cmake-build-system) (native-inputs - (list catch-framework2)) + (list catch2)) (arguments `(#:configure-flags '("-DWITH_GIT_CATCH=off") #:phases diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 07e7500847..9b3eb12613 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -1034,7 +1034,7 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks." '(ignore poweroff reboot halt kexec suspend hibernate hybrid-sleep lock)) (define (handle-action x) (if (unspecified? x) - "" ;empty serializer + x ;let the unspecified value go through (enum x handle-actions))) (define (sleep-list tokens) (unless (valid-list? tokens char-set:user-name) @@ -1042,10 +1042,18 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks." (string-join tokens " ")) (define-syntax ini-file-clause (syntax-rules () + ;; Produce an empty line when encountering an unspecified value. This + ;; is better than an empty string value, which can, in some cases, cause + ;; warnings such as "Failed to parse handle action setting". ((_ config (prop (parser getter))) - (string-append prop "=" (parser (getter config)) "\n")) + (let ((value (parser (getter config)))) + (if (unspecified? value) + "" + (string-append prop "=" value "\n")))) ((_ config str) - (string-append str "\n")))) + (if (unspecified? str) + "" + (string-append str "\n"))))) (define-syntax-rule (ini-file config file clause ...) (plain-file file (string-append (ini-file-clause config clause) ...))) (ini-file diff --git a/gnu/system/install.scm b/gnu/system/install.scm index a7b7c246bf..003c49a3e7 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -476,7 +476,7 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m ;; non-functional: ;; <https://lists.gnu.org/archive/html/guix-devel/2019-03/msg00441.html>. ;; Thus, blacklist it. - (kernel-arguments '("quiet" "modprobe.blacklist=radeon")) + (kernel-arguments '("quiet" "modprobe.blacklist=radeon,amdgpu")) (file-systems ;; Note: the disk image build code overrides this root file system with |