diff options
Diffstat (limited to 'gnu')
75 files changed, 1879 insertions, 812 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index c0398268f5..d251eaa9b5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1039,6 +1039,10 @@ dist_patch_DATA = \ %D%/packages/patches/clucene-contribs-lib.patch \ %D%/packages/patches/cube-nocheck.patch \ %D%/packages/patches/curl-use-ssl-cert-env.patch \ + %D%/packages/patches/curlftpfs-fix-error-closing-file.patch \ + %D%/packages/patches/curlftpfs-fix-file-names.patch \ + %D%/packages/patches/curlftpfs-fix-memory-leak.patch \ + %D%/packages/patches/curlftpfs-fix-no_verify_hostname.patch \ %D%/packages/patches/cursynth-wave-rand.patch \ %D%/packages/patches/cvs-CVE-2017-12836.patch \ %D%/packages/patches/d-feet-drop-unused-meson-argument.patch \ @@ -1572,7 +1576,6 @@ dist_patch_DATA = \ %D%/packages/patches/lua-5.4-pkgconfig.patch \ %D%/packages/patches/lua-5.4-liblua-so.patch \ %D%/packages/patches/luit-posix.patch \ - %D%/packages/patches/lvm2-static-link.patch \ %D%/packages/patches/mactelnet-remove-init.patch \ %D%/packages/patches/mailutils-variable-lookup.patch \ %D%/packages/patches/make-impure-dirs.patch \ @@ -1620,6 +1623,7 @@ dist_patch_DATA = \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \ %D%/packages/patches/musl-cross-locale.patch \ + %D%/packages/patches/mutter-fix-inverted-test.patch \ %D%/packages/patches/mutt-store-references.patch \ %D%/packages/patches/m17n-lib-1.8.0-use-pkg-config-for-freetype.patch \ %D%/packages/patches/nautilus-extension-search-path.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index ec32041055..f601b8a8b4 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2980,7 +2980,7 @@ modules and plugins that extend Ansible.") (inputs (list ansible encfs - fuse + fuse-2 util-linux ;; for umount findutils gnupg diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index f35c2398bd..32c295f9e4 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2020 Sergey Trofimov <[email protected]> ;;; Copyright © 2021 Guillaume Le Vaillant <[email protected]> ;;; Copyright © 2021 Petr Hodina <[email protected]> +;;; Copyright © 2023 Camilo Q.S. (Distopico) <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,6 +39,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system python) + #:use-module (guix build-system pyproject) #:use-module (guix build-system trivial) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) @@ -721,6 +723,35 @@ file system.") "This package provides @command{fastboot}, a tool to upload file system images to Android devices.") (license license:asl2.0))) +(define-public sdkmanager + (package + (name "sdkmanager") + (version "0.6.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "sdkmanager" version ".tar.gz")) + (sha256 + (base32 + "11as7n2mj3nbqsqb3ivyv9985n73i022s748qvjg36cs8ig50afx")))) + (build-system pyproject-build-system) + (inputs (list python-requests python-argcomplete python-urllib3 gnupg)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-before 'build 'patch-gnupg + (lambda _ + (substitute* "sdkmanager.py" + (("gpgv") + (string-append #$(this-package-input "gnupg") + "/bin/gpgv")))))))) + (home-page "https://gitlab.com/fdroid/sdkmanager") + (synopsis "Replacement for Android sdkmanager written in Python") + (description + "This package provides a drop-in replacement for sdkmanager from +the Android SDK. It is written in Python and part of the F-Droid +project. It implements the exact API of the Android sdkmanager command +line. The project also attempts to maintain the same terminal output.") + (license license:agpl3+))) + (define-public android-udev-rules (package (name "android-udev-rules") @@ -1260,7 +1291,7 @@ Java bytecode, which simplifies the analysis of Android applications.") (build-system cmake-build-system) (arguments (list #:tests? #f)) ;there are no tests - (inputs (list qtbase-5 fuse-3 libxkbcommon)) + (inputs (list qtbase-5 fuse libxkbcommon)) (native-inputs (list qttools-5 openssl readline)) (home-page "https://whoozle.github.io/android-file-transfer-linux/") (synopsis "MTP client for Android devices") diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index 42c95876f7..4494c475ce 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -186,14 +186,14 @@ speed on x86, NEON on ARM, etc.).") (define-public fasm (package (name "fasm") - (version "1.73.30") + (version "1.73.31") (source (origin (method url-fetch) (uri (string-append "https://flatassembler.net/fasm-" version ".tgz")) (sha256 - (base32 "00giqb94z8cxhv20yiyk8axkd2kzjcg1c0841yzbn7c8lm8m06bm")))) + (base32 "1qqg1czr9dr73l4gwrwim85mjs65al7vv8b292jipywimhhwnf4g")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests exist diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 9351c691d2..5b9434fb33 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -60,6 +60,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages netpbm) + #:use-module (gnu packages onc-rpc) #:use-module (gnu packages perl) #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) @@ -420,6 +421,30 @@ 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 ccfits + (package + (name "ccfits") + (version "2.6") + (source + (origin + (method url-fetch) + (uri (string-append + "https://heasarc.gsfc.nasa.gov/docs/software/fitsio/ccfits/" + "CCfits-" version ".tar.gz")) + (sha256 + (base32 "04l6na8vr5xadz3rbx62as79x1ch4994vbb625kx0dz5czdkkd1b")))) + (build-system cmake-build-system) + (inputs (list cfitsio)) + (home-page "https://heasarc.gsfc.nasa.gov/docs/software/fitsio/ccfits/") + (synopsis "C++ interface to the CFITSIO") + (description + "CCfits is an object oriented interface to the cfitsio library. It is +designed to make the capabilities of cfitsio available to programmers working in +C++. It is written in ANSI C++ and implemented using the C++ Standard Library +with namespaces, exception handling, and member template functions.") + (license (license:non-copyleft "file://License.txt" + "See License.txt in the distribution.")))) + (define-public cfitsio (package (name "cfitsio") @@ -428,7 +453,7 @@ made to get a better separation of core libraries and applications. (origin (method url-fetch) (uri (string-append - "http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/" + "https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/" "cfitsio-" version ".tar.gz")) (sha256 (base32 "128qsv2q0f0g714ahlsixiikvvbwxi9bg9q9pcr5cd3f7wdkv9gb")))) @@ -733,6 +758,66 @@ polygon data in order to produce control maps which can directly be used in astronomical image-processing packages like Drizzle, Swarp or SExtractor.") (license license:gpl3+))) +(define-public glnemo2 + (package + (name "glnemo2") + (version "1.21.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.lam.fr/jclamber/glnemo2") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jmmxszh8d2jmfghig36nhykff345mqnpssfa64d0r7l9cnfp3cn")))) + (build-system cmake-build-system) + (arguments + (list + #:tests? #f ; No test target + #:configure-flags #~(list "CPPFLAGS=-fcommon") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-libraries-paths + (lambda _ + (substitute* "CMakeLists.txt" + ;; There is some not straightforward logic on how to set + ;; the installation prefix for the project; inherit it + ;; from the build-system default flags. + (("CMAKE_INSTALL_PREFIX \"/usr\"") + "CMAKE_INSTALL_PREFIX") + (("/usr/include/CCfits") + (string-append + #$(this-package-input "ccfits") "/include/CCfits")) + (("/usr/include/tirpc") + (string-append + #$(this-package-input "libtirpc") "/include/tirpc")) + ;; It tries to detect library in two "predictable" paths, + ;; required during the link phase. + (("/usr/lib64/libtirpc.so") + (string-append + #$(this-package-input "libtirpc") "/lib/libtirpc.so")))))))) + (inputs + (list ccfits + cfitsio + glm + glu + hdf5 + libtirpc + qtbase-5 + zlib)) + (home-page "https://projets.lam.fr/projects/unsio/wiki") + (synopsis "3D interactive visualization program for n-body like particles") + (description + "GLNEMO2 is an interactive 3D visualization program which displays +particles positions of the different components (gas, stars, disk, dark +matter halo, bulge) of an N-body snapshot. It is a tool for running +N-body simulations from isolated galaxies to cosmological simulations. +It has a graphical user interface (based on QT 5.X API), uses a fast +3D engine (OPenGL and GLSL), and is generic with the possibility to load +different kinds of input files.") + (license license:cecill))) + (define-public gnuastro (package (name "gnuastro") diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index c8a1b388de..d484c34826 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -780,7 +780,7 @@ backups on untrusted computers.") (native-inputs (list pkg-config)) (inputs - (list fuse-3 libxml2 ntfs-3g openssl)) + (list fuse libxml2 ntfs-3g openssl)) (arguments `(#:configure-flags (list "--disable-static" diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index d9d9274095..74071900a3 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -4723,6 +4723,77 @@ error rates and dispersion - and prior knowledge, e.g. from variation data bases such as COSMIC.") (license license:gpl3))) +(define-public r-degreport + (package + (name "r-degreport") + (version "1.36.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "DEGreport" version)) + (sha256 + (base32 + "15xm1l2qgsyzaw820a1fq5qdzh5pj4dmr1hx6s6b6wm2p02cvvai")) + (snippet + '(delete-file "docs/jquery.sticky-kit.min.js")))) + (properties `((upstream-name . "DEGreport"))) + (build-system r-build-system) + (arguments + (list + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'process-javascript + (lambda* (#:key inputs #:allow-other-keys) + (invoke "esbuild" + (assoc-ref inputs "js-jquery-sticky-kit") + "--minify" + "--outfile=docs/jquery.sticky-kit.min.js")))))) + (propagated-inputs (list r-biobase + r-biocgenerics + r-broom + r-circlize + r-cluster + r-complexheatmap + r-consensusclusterplus + r-cowplot + r-deseq2 + r-dplyr + r-edger + r-ggdendro + r-ggplot2 + r-ggrepel + r-knitr + r-logging + r-magrittr + r-psych + r-rcolorbrewer + r-reshape + r-rlang + r-s4vectors + r-scales + r-stringr + r-summarizedexperiment + r-tibble + r-tidyr)) + (native-inputs + `(("esbuild" ,esbuild) + ("r-knitr" ,r-knitr) + ("js-jquery-sticky-kit" + ,(origin + (method url-fetch) + (uri "https://raw.githubusercontent.com/leafo/sticky-kit/\ +v1.1.2/jquery.sticky-kit.js") + (sha256 + (base32 + "17c3a1hqc3ybwj7hpw8prazajp2x98aq7nyfn71h6lzjvblq297g")))))) + (home-page "https://lpantano.github.io/DEGreport/") + (synopsis "Report of DEG analysis") + (description + "This is a package for creating na HTML report of differential expression +analyses of count data. It integrates some of the code mentioned in DESeq2 +and @code{edgeR} vignettes, and report a ranked list of genes according to the +fold changes mean and variability for each selected gene.") + (license license:expat))) + (define-public r-delayedarray (package (name "r-delayedarray") diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 864c200707..34e8565788 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -8713,7 +8713,7 @@ unique transcripts.") (list ngs-sdk ncbi-vdb file - fuse + fuse-2 hdf5-1.10 libxml2 zlib diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 38eb1d104f..069d02b52c 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -215,8 +215,8 @@ ;; file system will be readable by GRUB without rebooting. ,@(if (member (or (%current-target-system) (%current-system)) - (package-supported-systems fuse)) - `(("fuse" ,fuse)) + (package-supported-systems fuse-2)) + `(("fuse" ,fuse-2)) '()) ("freetype" ,freetype) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 9fdcd1b66b..a365cca849 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -171,14 +171,14 @@ generate such a compilation database.") (define-public bmake (package (name "bmake") - (version "20230711") + (version "20230723") (source (origin (method url-fetch) (uri (string-append "http://www.crufty.net/ftp/pub/sjg/bmake-" version ".tar.gz")) (sha256 - (base32 "1vrg6gclfn34lxyyqf0837hk89n5pf7ms0gmgg1fd87i0cn5908a")))) + (base32 "012rzgjmncdla1l43f9wl8v13h7d46zgn28k6djpcgx23fahsan4")))) (build-system gnu-build-system) (inputs (list bash-minimal)) @@ -605,7 +605,7 @@ software.") (display "au BufNewFile,BufRead Tupfile,*.tup setf tup"))) #t)))))) (inputs - (list fuse-3 pcre + (list fuse pcre `(,pcre "bin") ; pcre-config sqlite)) (native-inputs diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index bee540bc16..05aaa827f8 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2020 Björn Höfling <[email protected]> ;;; Copyright © 2020 Vincent Legoll <[email protected]> ;;; Copyright © 2021 Ricardo Wurmus <[email protected]> -;;; Copyright © 2022 David Elsing <[email protected]> +;;; Copyright © 2022, 2023 David Elsing <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -554,6 +554,12 @@ symmetries written in C. Spglib can be used to: (assoc-ref inputs "libxml2") "/include/libxml2:" (getenv "CPLUS_INCLUDE_PATH"))))) + ;; Prevent deleting the leading / in the __init__.py path in the + ;; launch script. + (add-after 'unpack 'disable-unchroot + (lambda _ + (substitute* "setup.py" + (("self\\.unchroot") "")))) ;; The setup.py script does not support one of the Python build ;; system's default flags, "--single-version-externally-managed". (replace 'install @@ -572,8 +578,7 @@ symmetries written in C. Spglib can be used to: python-pyqt glm netcdf)) - (native-inputs - (list catch2 python-setuptools)) + (native-inputs (list catch2)) (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/chromium.scm b/gnu/packages/chromium.scm index cef21a4fd1..6a9f113831 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -584,7 +584,7 @@ "ffmpeg_branding=\"Chrome\"" ;; WebRTC stuff. - "rtc_use_h264=false" ;XXX needs bundled openh264 + "rtc_use_h264=true" "rtc_use_pipewire=true" "rtc_link_pipewire=true" ;; Don't use bundled sources. diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 4229fc2cea..5b74cb773a 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1251,6 +1251,31 @@ quickly isolate key differences makes understanding test failures much easier.") (license license:expat))) +(define-public r-wheatmap + (package + (name "r-wheatmap") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (cran-uri "wheatmap" version)) + (sha256 + (base32 + "064idlrnb85xxav39gp3n854fic6514khvazrf5d0x48crpzyvdp")))) + (properties `((upstream-name . "wheatmap"))) + (build-system r-build-system) + (propagated-inputs (list r-colorspace r-rcolorbrewer)) + (native-inputs (list r-knitr)) + (home-page "https://github.com/zwdzwd/wheatmap") + (synopsis "Incrementally build complex plots using natural semantics") + (description + "This package lets you build complex plots, heatmaps in particular, using +natural semantics. Bigger plots can be assembled using directives such as +@code{LeftOf}, @code{RightOf}, @code{TopOf}, and @code{Beneath} and more. +Other features include clustering, dendrograms and integration with ggplot2 +generated grid objects. This package is particularly designed for +bioinformaticians to assemble complex plots for publication.") + (license license:gpl3))) + (define-public r-rticles (package (name "r-rticles") @@ -21286,6 +21311,28 @@ The bedr package's API enhances access to these tools as well as offers additional utilities for genomic regions processing.") (license license:gpl2))) +(define-public r-setrng + (package + (name "r-setrng") + (version "2022.4-1") + (source (origin + (method url-fetch) + (uri (cran-uri "setRNG" version)) + (sha256 + (base32 + "09089vr5x8snwxh38kdhgpjl3jl7zrk056f6f9a2jg5lsrmnxh31")))) + (properties `((upstream-name . "setRNG"))) + (build-system r-build-system) + (home-page "https://distr.r-forge.r-project.org/") + (synopsis "Set (normal) random number generator and seed") + (description + "This package provides utilities to help set and record the setting of +the seed and the uniform and normal generators used when a random experiment +is run. The utilities can be used in other functions that do random +experiments to simplify recording and/or setting all the necessary information +for reproducibility. See the vignette and reference manual for examples.") + (license license:gpl2))) + (define-public r-sets (package (name "r-sets") diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 0f1e70f4dc..07e718feaf 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -333,7 +333,7 @@ OpenBSD tool of the same name.") ("googletest-source" ,(package-source googletest)) ("perl" ,perl))) (inputs - (list attr fuse openssl-1.1 tinyxml2)) + (list attr fuse-2 openssl-1.1 tinyxml2)) (arguments `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF") #:phases @@ -1532,7 +1532,7 @@ non-encrypted files.") (native-inputs (list pkg-config python-wrapper)) (inputs - (list boost curl fuse range-v3 spdlog)) + (list boost curl fuse-2 range-v3 spdlog)) (home-page "https://www.cryfs.org/") (synopsis "Encrypted FUSE filesystem for the cloud") (description "CryFS encrypts your files, so you can safely store them anywhere. diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 6e8fe4cfb6..762d8bd402 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1190,14 +1190,14 @@ and high-availability (HA).") (define-public postgresql-15 (package (name "postgresql") - (version "15.1") + (version "15.3") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "1bi19sqmri569hyjvbk8grlws7f5dalsqz87wkgx1yjafcyz5zb4")) + "0cnrk5jrwfqkcx8mlg761s60ninqrsxpzasf7xfbzzq03y4x9izz")) (patches (search-patches "postgresql-disable-resolve_symlinks.patch")))) (build-system gnu-build-system) (arguments @@ -1265,27 +1265,27 @@ pictures, sounds, or video.") (define-public postgresql-13 (package (inherit postgresql-14) - (version "13.9") + (version "13.11") (source (origin (inherit (package-source postgresql-14)) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "05d46dzkya6s0qbaxvksc5j12syb514q5lha6z9vx7z4lp06c6gg")))))) + "1yqbwnzgdgaim476smwkdj2jd6j92x9xqm2f1mknnmh3f9jgz4j9")))))) (define-public postgresql-11 (package (inherit postgresql-13) (name "postgresql") - (version "11.18") + (version "11.20") (source (origin (inherit (package-source postgresql-13)) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "013m1x53qfxcry7l033ahhxjc3lflb7fj8fapk7qm49fqppj0kyj")))) + "1kmcnnc2nwjxv042b8bxbdxdgfksxvgmfhh4999rhzjays18hz1x")))) (native-inputs (modify-inputs (package-native-inputs postgresql-13) (replace "docbook-xml" docbook-xml-4.2))))) @@ -2777,25 +2777,26 @@ database.") (define-public perl-db-file (package (name "perl-db-file") - (version "1.856") + (version "1.858") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/P/PM/PMQS/DB_File-" version ".tar.gz")) (sha256 - (base32 "1ab6rm2b8lz0g3gc8k9y79gkgajyby0zpybkdg9mk4g35y9bmyfd")))) + (base32 "1xm7s2ag15498kp7g8r20gxk22ncz3b3hz4b3srqf7ypif3a5dyf")))) (build-system perl-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'modify-config.in + (lambda _ + (substitute* "config.in" + (("/usr/local/BerkeleyDB") + #$(this-package-input "bdb")))))))) (inputs (list bdb)) (native-inputs (list perl-test-pod)) - (arguments - `(#:phases (modify-phases %standard-phases - (add-before - 'configure 'modify-config.in - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "config.in" - (("/usr/local/BerkeleyDB") (assoc-ref inputs "bdb"))) - #t))))) (home-page "https://metacpan.org/release/DB_File") (synopsis "Perl5 access to Berkeley DB version 1.x") (description @@ -3802,13 +3803,13 @@ libraries with SQLALchemy.") (define-public python-psycopg2 (package (name "python-psycopg2") - (version "2.9.5") + (version "2.9.6") (source (origin (method url-fetch) (uri (pypi-uri "psycopg2" version)) (sha256 - (base32 "0ni4kq6p7hbkm2qsky998q36q5gq5if4nwd8hwhjx5rsd0p6s955")))) + (base32 "04chl9f7v7k1zssa40pmk06jvpyqiss2lpjq50dq69nqix0mhlgi")))) (build-system python-build-system) (arguments ;; Tests would require a postgresql database "psycopg2_test" diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 7dc6ecfa7b..52717f6bdb 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -74,7 +74,7 @@ (define-public diffoscope (package (name "diffoscope") - (version "245") + (version "246") (source (origin (method git-fetch) @@ -83,7 +83,7 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0zh2smp0vvvl1c4f5ykmblw0xlbdfnix1v2yi5xpyia2pgslbjjv")))) + (base32 "1y54r0kayn7nvv0ng9dx6bwxvrwdkd0xaklmfq53z7p00wgx0ly8")))) (build-system python-build-system) (arguments (list diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 21e8775e83..bb68b171f9 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -245,14 +245,14 @@ tmpfs/ramfs filesystems.") (define-public parted (package (name "parted") - (version "3.5") + (version "3.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/parted/parted-" version ".tar.xz")) (sha256 (base32 - "18h51i3x5cbqhlj5rm23m9sfw63gaaby5czln5w6qpqj3ifdsf29")))) + "04p6b4rygrfd1jrskwrx3bn2icajg1mvbfhyc0c9l3ya7kixnhrv")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index e4c48df174..fdd10a6611 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -845,7 +845,7 @@ Extensions} (DNSSEC).") (define-public knot (package (name "knot") - (version "3.2.8") + (version "3.2.9") (source (origin (method git-fetch) @@ -854,7 +854,7 @@ Extensions} (DNSSEC).") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "05yhm1n0zphcvicy2brlbv3azp4lvdjprcqf3lybz7mzd6ghr25c")) + (base32 "1kxmplngnlpd6j9nbzq1c1z02ipd38ypnppy7frg5crn83phfbxm")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 2835e7d8f1..e8d1ac6034 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -153,6 +153,7 @@ #:use-module (guix packages) #:use-module (guix cvs-download) #:use-module (guix download) + #:use-module (guix deprecation) #:use-module (guix bzr-download) #:use-module (guix gexp) #:use-module (guix i18n) @@ -1287,7 +1288,7 @@ some utility functions, and commands using that infrastructure.") its mode line.") (license license:gpl3+)))) -(define-public git-modes +(define-public emacs-git-modes (package (name "emacs-git-modes") (version "1.4.1") @@ -1311,6 +1312,8 @@ configuration files, such as @file{.gitattributes}, @file{.gitignore}, and @file{.git/config}.") (license license:gpl3+))) +(define-deprecated/public-alias git-modes emacs-git-modes) + (define-public emacs-with-editor (package (name "emacs-with-editor") @@ -3491,6 +3494,30 @@ read-only based on user configuration. User configuration may be prefix directories or regex patterns.") (license license:gpl3+)))) +;; Use latest commit since there are no tags anymore for several versions +(define-public emacs-rebecca-theme + (let ((commit "4b8b5aae9099185e07c2b4cac4943c7f66a3f003") + (revision "0")) + (package + (name "emacs-rebecca-theme") + (version (git-version "1.3.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vic/rebecca-theme") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0y2kcs6zgi3dijagyz6lxbv6gi2mih8m943fhjrzkj35wfvjmhsz")))) + (build-system emacs-build-system) + (home-page "https://github.com/vic/rebecca-theme") + (synopsis "Dark Emacs theme with purple/violet colors") + (description + "Rebecca Emacs theme is a dark theme with purple/violet colors, based on +the @code{Dracula} theme for Emacs and the @code{Gloom} theme for Atom.") + (license license:expat)))) + (define-public emacs-bbdb (package (name "emacs-bbdb") @@ -4197,6 +4224,31 @@ Some of its major features include: Lock key.") (license license:gpl3+))) +(define-public emacs-chocolate-theme + (let ((commit "ccc05f7ad96d3d1332727689bf6250443adc7ec0") + (revision "0")) + (package + (name "emacs-chocolate-theme") + (version (git-version "0.2.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/SavchenkoValeriy/emacs-chocolate-theme") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d8a9jwv9y0sncw24k840c8yyrig30f2d6q2zqlc09f05yzq9p9p")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-autothemer)) + (home-page "https://github.com/SavchenkoValeriy/emacs-chocolate-theme") + (synopsis "Dark chocolatey theme for Emacs") + (description + "Chocolate theme is a dark, chocolatey, vibrant and subtle theme for +Emacs.") + (license license:gpl3)))) + (define-public emacs-chronometrist (package (name "emacs-chronometrist") @@ -11054,16 +11106,16 @@ answers.") (define-public emacs-base16-theme (package (name "emacs-base16-theme") - (version "3.0") + (version "3.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/belak/base16-emacs") + (url "https://github.com/tinted-theming/base16-emacs") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0qp71j77zg8gippcn277s0j5a9n6dbwv3kdp2nya6li4b412vgba")))) + (base32 "1yq9afvybrgkmn17h22ha9231am7hlh3wccxw7g2ks3g0k5vvds0")))) (build-system emacs-build-system) (arguments (list #:include #~(cons "^build\\/.*\\.el$" %default-include) @@ -11083,7 +11135,7 @@ answers.") 'pre 'post))) (find-files theme-dir "\\.el$")) (delete-file-recursively theme-dir))))))) - (home-page "https://github.com/belak/base16-emacs") + (home-page "https://github.com/tinted-theming/base16-emacs") (synopsis "Base16 color themes for Emacs") (description "Base16 provides carefully chosen syntax highlighting and a default set @@ -17323,27 +17375,32 @@ is the primary mode of interaction.") (license (list license:gpl3+ license:fdl1.3+)))) ; GFDLv1.3+ for the manual +;; Package has no releases or tags. Version is extracted from "Version:" +;; keyword in main file. (define-public emacs-idle-highlight - (package - (name "emacs-idle-highlight") - (version "1.1.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nonsequitur/idle-highlight-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv")))) - (build-system emacs-build-system) - (home-page "https://www.emacswiki.org/emacs/IdleHighlight") - (synopsis "Highlights all occurrences of the word the point is on") - (description - "This Emacs package provides @code{idle-highlight-mode} that sets + (let ((commit "f9091c907d41e7b12d99d108a194229b8dbfc5ae") + (revision "0")) + (package + (name "emacs-idle-highlight") + (version (git-version "1.1.4" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url + "https://codeberg.org/ideasman42/emacs-idle-highlight-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0757x4iy7q0mj1rshlxr00hbc78g5hzijgzyqs36nrw6bn65fb93")))) + (build-system emacs-build-system) + (home-page "https://codeberg.org/ideasman42/emacs-idle-highlight-mode") + (synopsis "Highlights all occurrences of the word the point is on") + (description + "This Emacs package provides @code{idle-highlight-mode} that sets an idle timer to highlight all occurrences in the buffer of the word under the point.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-ox-twbs (package @@ -18066,7 +18123,7 @@ Pippel also uses Tabulated List mode, it provides a similar package menu like (define-public emacs-pos-tip (package (name "emacs-pos-tip") - (version "0.4.6") + (version "0.4.7") (source (origin (method git-fetch) @@ -18075,7 +18132,7 @@ Pippel also uses Tabulated List mode, it provides a similar package menu like (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33")))) + (base32 "1k6r59jhbyiknhsl7df0zafyc4d9r3vk953x6sdxgz92kx6hxpfy")))) (build-system emacs-build-system) ;; The following functions and variables needed by emacs-pos-tip are ;; not included in emacs-minimal: @@ -27229,6 +27286,30 @@ recursive size is not obtained. Once this mode is enabled, every new Dired buffer displays recursive dir sizes.") (license license:gpl3+))) +(define-public emacs-dired-preview + (package + (name "emacs-dired-preview") + (version "0.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~protesilaos/dired-preview") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0d485812k1rv0qrw4xvzv4z3qf370apsajnf4q3pjk3q0r1fpm8b")))) + (build-system emacs-build-system) + (home-page "https://protesilaos.com/emacs/dired-preview") + (synopsis "Automatically preview file at point in Dired") + (description + "This is a simple package to automatically preview in a side window the +file at point in Dired buffers. Preview windows are closed when they are no +longer relevant, while preview buffers are killed if they have not been used +for other purposes beside previewing. The package provides several +customisation options to control its behaviour.") + (license license:gpl3+))) + (define-public emacs-dired-rsync (package (name "emacs-dired-rsync") diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index c2846f0bda..e96b21fdf9 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -2542,7 +2542,7 @@ measurement devices and test equipment via GPIB, RS232, Ethernet or USB.") (define-public python-scikit-rf (package (name "python-scikit-rf") - (version "0.27.1") + (version "0.28.0") (source (origin (method git-fetch) ;PyPI misses some files required for tests (uri (git-reference @@ -2550,7 +2550,7 @@ measurement devices and test equipment via GPIB, RS232, Ethernet or USB.") (commit (string-append "v" version)))) (sha256 (base32 - "1rh2hq050439azlglqb54cy3jc1ir5y1ps55as4d5j619a7mq9x0")) + "11pxl8q356f6q4cvadasg52js3k446l87hwmc87b1n9cy8sxcfvi")) (file-name (git-file-name name version)))) (build-system pyproject-build-system) (propagated-inputs (list python-matplotlib diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index bc286d3bea..4589db965d 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -176,14 +176,14 @@ large and/or frequently changing (network) environment.") (define-public bindfs (package (name "bindfs") - (version "1.15.1") + (version "1.17.4") (source (origin (method url-fetch) (uri (string-append "https://bindfs.org/downloads/bindfs-" version ".tar.gz")) (sha256 (base32 - "1av8dj9i1g0105fs5r9srqqsp7yahlhwc0yl8i1szyfdls23bp84")))) + "1k1xkyjk8ms11djbhlmykkzfbcids6ls5vpq7rhdnazcladszm3g")))) (build-system gnu-build-system) (arguments ;; XXX: The tests have no hope of passing until there is a "nogroup" @@ -198,7 +198,7 @@ large and/or frequently changing (network) environment.") ;; ("which" ,which) (list pkg-config)) (inputs - (list fuse)) + (list fuse-2)) (home-page "https://bindfs.org") (synopsis "Bind mount a directory and alter permission bits") (description @@ -275,7 +275,7 @@ unmaintained---to use the @code{inotify} API instead of the deprecated (arguments '(#:configure-flags '("--enable-library" "--enable-fuse"))) (native-inputs (list pkg-config)) - (inputs (list xz fuse)) + (inputs (list xz fuse-2)) (synopsis "Virtual file system that allows browsing of compressed files") (description "AVFS is a FUSE-based filesystem that allows browsing of compressed @@ -565,7 +565,7 @@ AES-GCM implementation.") (native-inputs (list pkg-config)) (inputs - (list fuse glib libgphoto2)) + (list fuse-2 glib libgphoto2)) (synopsis "Virtual file system for libgphoto2 using FUSE") (description "GPhotoFS is a FUSE file system module to mount your camera as a file system on Linux. This allow using your camera with any tool able to read @@ -618,7 +618,17 @@ from a mounted file system.") "not test_fsck and " "not test_list and " "not test_list_inodes and " - "not test_list_dirent")))))))) + "not test_list_dirent"))))) + (add-after 'install 'patch-shell-wrappers + ;; These are overcomplicated wrappers that invoke readlink(1) + ;; to exec the appropriate bcachefs(8) subcommand. We can + ;; simply patch in the latter file name directly, and do. + (lambda _ + (let ((sbin/ (string-append #$output "/sbin/"))) + (substitute* (find-files sbin/ (lambda (file stat) + (not (elf-file? file)))) + (("SDIR=.*") "") + (("\\$\\{SDIR.*}/") sbin/)))))))) (native-inputs (cons* pkg-config ;; For generating documentation with rst2man. @@ -639,11 +649,7 @@ from a mounted file system.") `(,util-linux "lib") lz4 zlib - `(,zstd "lib") - ;; Only for mount.bcachefs.sh. - coreutils-minimal - gawk - util-linux)) + `(,zstd "lib"))) (home-page "https://bcachefs.org/") (synopsis "Tools to create and manage bcachefs file systems") (description @@ -667,17 +673,7 @@ performance and other characteristics.") (substitute-keyword-arguments (package-arguments bcachefs-tools) ((#:make-flags make-flags) #~(append #$make-flags - (list "LDFLAGS=-static"))) - ((#:phases phases) - #~(modify-phases #$phases - (add-after 'unpack 'skip-shared-library - (lambda _ - (substitute* "Makefile" - ;; Building the shared library with ‘-static’ obviously fails… - (("^((all|install):.*)\\blib\\b(.*)" _ prefix suffix) - (string-append prefix suffix "\n")) - ;; …as does installing a now non-existent file. - ((".*\\$\\(INSTALL\\).* lib.*") "")))))))) + (list "LDFLAGS=-static"))))) (inputs (modify-inputs (package-inputs bcachefs-tools) (prepend `(,eudev "static") `(,keyutils "static") @@ -760,7 +756,7 @@ Extensible File Allocation Table} file systems. Included are (native-inputs (list asciidoc docbook-xml libxml2 libxslt pkg-config)) (inputs - (list fuse gnutls)) + (list fuse-2 gnutls)) (arguments (list #:phases #~(modify-phases %standard-phases @@ -925,7 +921,7 @@ files mistakenly overwritten or destroyed just a few seconds ago.") (native-inputs (list pkg-config)) (inputs - (list fuse attr)) + (list fuse-2 attr)) (arguments `(#:phases (modify-phases %standard-phases (delete 'configure)) ; no configure script @@ -987,7 +983,7 @@ non-determinism in the build process.") ("cmocka" ,cmocka))) (inputs `(("acl" ,acl) - ("fuse" ,fuse) + ("fuse" ,fuse-2) ("openssl" ,openssl) ("liburcu" ,liburcu) ("libuuid" ,util-linux "lib") @@ -1016,8 +1012,12 @@ All of this is accomplished without a centralized metadata server.") (uri (string-append "mirror://sourceforge/curlftpfs/curlftpfs/" version "/curlftpfs-" version ".tar.gz")) (sha256 - (base32 - "0n397hmv21jsr1j7zx3m21i7ryscdhkdsyqpvvns12q7qwwlgd2f")))) + (base32 "0n397hmv21jsr1j7zx3m21i7ryscdhkdsyqpvvns12q7qwwlgd2f")) + (patches + (search-patches "curlftpfs-fix-error-closing-file.patch" + "curlftpfs-fix-file-names.patch" + "curlftpfs-fix-memory-leak.patch" + "curlftpfs-fix-no_verify_hostname.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1030,7 +1030,7 @@ All of this is accomplished without a centralized metadata server.") (("4426192") "12814800")) #t))))) (inputs - (list curl glib fuse)) + (list curl glib fuse-2)) (native-inputs (list pkg-config)) (home-page "https://curlftpfs.sourceforge.net/") @@ -1158,9 +1158,8 @@ network. LIBNFS offers three different APIs, for different use : )))) (define-public apfs-fuse - ;; Later versions require FUSE 3. - (let ((commit "7b89418e8dc27103d3c4f8fa348086ffcd634c17") - (revision "1")) + (let ((commit "66b86bd525e8cb90f9012543be89b1f092b75cf3") + (revision "2")) (package (name "apfs-fuse") (version (git-version "0.0.0" revision commit)) @@ -1171,14 +1170,11 @@ network. LIBNFS offers three different APIs, for different use : (recursive? #t) ; for lzfse (commit commit))) (sha256 - (base32 - "0x2siy3cmnm9wsdfazg3xc8r3kbg73gijmnn1vjw33pp71ckylxr")) + (base32 "0f63slyzv8fbgshpzrx2g01x9h73g5yvh5kis4yazl19fjm2b05r")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments `(#:tests? #f ; No test suite - #:configure-flags - '("-DUSE_FUSE3=OFF") ; FUSE 3 is not packaged yet. #:phases (modify-phases %standard-phases ;; No 'install' target in CMakeLists.txt @@ -1192,9 +1188,7 @@ network. LIBNFS offers three different APIs, for different use : (install-file "apfs-dump" bin) (install-file "apfs-dump-quick" bin) (install-file "apfs-fuse" bin) - (install-file "libapfs.a" lib) - (install-file "../source/README.md" doc) - #t)))))) + (install-file "../source/README.md" doc))))))) (inputs (list bzip2 fuse zlib)) (synopsis "Read-only FUSE driver for the APFS file system") @@ -1614,7 +1608,7 @@ On Guix System, you will need to invoke the included shell scripts as (("/sbin") "$(EXEC_PREFIX)/sbin") (("chown") "true") ; disallowed in the build environment (("strip") "true")) ; breaks cross-compilation - ;; These were copied from the fuse package. + ;; These were copied from the fuse-2 package. (substitute* '("libfuse/lib/mount_util.c" "libfuse/util/mount_util.c") (("/bin/(u?)mount" _ maybe-u) @@ -1776,9 +1770,8 @@ local file system using FUSE.") (license license:bsd-3))) (define-public rewritefs - (let ((revision "0") - ;; This is the last commit supporting our fuse@2. - (commit "31e2810b596028a12e49a08664567755f4b387b2")) + (let ((revision "1") + (commit "3a56de8b5a2d44968b8bc3885c7d661d46367306")) (package (name "rewritefs") (version (git-version "0.0.0" revision commit)) @@ -1790,24 +1783,27 @@ local file system using FUSE.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0k1aas2bdq2l3a6q3fvmngpakcxiws8qny2w6z7ffngyqxh33fv7")))) + (base32 "1w2rik0lhqm3wr68x51zs45gqfx79l7fi4p0sqznlfq7sz5s8xxn")))) (build-system gnu-build-system) (arguments - `(#:modules ((srfi srfi-26) - ,@%gnu-build-system-modules) - #:make-flags - (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:test-target "test" - #:tests? #f ; all require a kernel with FUSE loaded - #:phases - (modify-phases %standard-phases - (delete 'configure) ; no configure script - (add-after 'install 'install-examples - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (string-append out "/share/doc/" ,name "-" ,version))) - (for-each (cut install-file <> (string-append doc "/examples")) - (find-files "." "^config\\.")))))))) + (list + #:modules + '((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:make-flags + #~(list (string-append "PREFIX=" #$output)) + #:test-target "test" + #:tests? #f ; all require a kernel with FUSE loaded + #:phases + #~(modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-after 'install 'install-examples + (lambda _ + (let ((doc (string-append #$output "/share/doc/" + #$name "-" #$version))) + (for-each (cut install-file <> (string-append doc "/examples")) + (find-files "." "^config\\.")))))))) (native-inputs (list pkg-config)) (inputs @@ -1839,7 +1835,7 @@ the XDG directory specification from @file{~/.@var{name}} to (base32 "03aw8pw8694jyrzpnbry05rk9718sqw66kiyq878bbb679gl7224")))) (build-system gnu-build-system) (native-inputs (list autoconf automake libtool pkg-config)) - (inputs (list attr fuse xz zlib `(,zstd "lib"))) + (inputs (list attr fuse-2 xz zlib `(,zstd "lib"))) (home-page "https://github.com/vasi/squashfuse") (synopsis "Fuse filesystem to mount squashfs archives") (description @@ -1935,7 +1931,7 @@ and rewritable media that wears out (DVD/CD-RW).") (native-inputs (list automake autoconf libtool pkg-config)) (inputs - (list fuse-3)) + (list fuse)) (home-page "https://github.com/containers/fuse-overlayfs") (synopsis "FUSE implementation of overlayfs") (description "This package provides an implementation of overlay+shiftfs @@ -2056,7 +2052,7 @@ spend on disk between being written and being deduplicated.") boost double-conversion fmt - fuse-3 + fuse gflags jemalloc libarchive diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 35d3100ac6..ff5afbcbe1 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -489,7 +489,7 @@ provide OpenFirmware functionality on top of an already running system.") (define* (make-opensbi-package platform name #:optional (arch "riscv64")) (package (name name) - (version "1.3") + (version "1.3.1") (source (origin (method git-fetch) @@ -498,7 +498,7 @@ provide OpenFirmware functionality on top of an already running system.") (commit (string-append "v" version)))) (file-name (git-file-name "opensbi" version)) (sha256 - (base32 "0shri9jlhi2g464l05vrkzr6v754m868rr4136kq2b86amypmg8f")))) + (base32 "01pr7fyg3gcb5pj6d48w2an3m4mfjs9b398x31drqxwqcaz0zn94")))) (build-system gnu-build-system) (native-inputs (append @@ -518,11 +518,6 @@ provide OpenFirmware functionality on top of an already running system.") `("CC=gcc")) "FW_PAYLOAD=n" "V=1") - ;; Direct __asm__ is used with fence.i instructions, which are not - ;; available in the generic riscv ISA. We need a micro-arch with - ;; support for it, and rv64g is the official ISA with support for - ;; fence.i. - #:configure-flags (list "-march=rv64g") #:phases (modify-phases %standard-phases (delete 'configure) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index bc43a9866b..d7b2e80026 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -1858,7 +1858,7 @@ programming. Iosevka is completely generated from its source code.") (define-public font-sarasa-gothic (package (name "font-sarasa-gothic") - (version "0.41.3") + (version "0.41.4") (source (origin (method url-fetch) @@ -1866,7 +1866,7 @@ programming. Iosevka is completely generated from its source code.") "/releases/download/v" version "/sarasa-gothic-ttc-" version ".7z")) (sha256 - (base32 "11ldfkdc86kxbpwypggkyx2k5pj2rnq34r7gp0pmpzz61m1wk2v0")))) + (base32 "0rqw6wrr55alsld8a9vk5g6n7zyivfh2zpw4my72qz3nfp448fs2")))) (build-system font-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 230fdd1dde..153602b4b4 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -427,13 +427,13 @@ Kit for OpenType (AFDKO) @command{tx} tool.") (define-public python-compreffor (package (name "python-compreffor") - (version "0.5.2") + (version "0.5.4") (source (origin (method url-fetch) (uri (pypi-uri "compreffor" version)) (sha256 - (base32 "0r6vlxrm73j719f5q3n6sy737p2424n7qam52am83p55j0fb9h5f")))) + (base32 "05gpszc8xh6wn3mdra05d6yz6ns624y67m9xs4vv8gh68m0aasrh")))) (build-system python-build-system) (arguments (list @@ -448,8 +448,8 @@ Kit for OpenType (AFDKO) @command{tx} tool.") python-setuptools-scm)) (propagated-inputs (list python-fonttools-minimal)) (home-page "https://github.com/googlefonts/compreffor") - (synopsis "Compact Font Format (CFF) subroutinizer for fontTools") - (description "This package provides a Compact Font Format (CFF) + (synopsis "@acronym{CFF, Compact Font Format} subroutinizer for fontTools") + (description "This package provides a @acronym{CFF, Compact Font Format} subroutinizer for fontTools.") (license license:asl2.0))) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 6408918c2a..ebf603fa4b 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -1317,7 +1317,7 @@ fullscreen) or other display servers.") (define-public wayland-protocols (package (name "wayland-protocols") - (version "1.29") + (version "1.32") (source (origin (method url-fetch) (uri (string-append "https://gitlab.freedesktop.org/wayland/" @@ -1325,7 +1325,7 @@ fullscreen) or other display servers.") name "-" version ".tar.xz")) (sha256 (base32 - "1n4yzyjbp5fng8pvckandymvwc47mkwyi4pyvr6p0dn7bavrlpp2")))) + "04dsn79409mryxs6maq9kfhca97gvl3pr1ggjnv9d0hc6jfpjnbl")))) (build-system meson-build-system) (inputs (list wayland)) @@ -2906,7 +2906,7 @@ compatible with the well-known scripts of the same name.") ("dbus" ,dbus) ("geoclue" ,geoclue) ("pipewire" ,pipewire) - ("fuse" ,fuse-3))) + ("fuse" ,fuse))) (arguments `(#:configure-flags (list "--with-systemd=no") diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index af467dbb38..f4b1a1e1e3 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1458,7 +1458,7 @@ are only used to bootstrap it.") (lambda _ (substitute* (list "launcher/game/gui7.rpy" "launcher/game/gui7/images.py") - ((", \"game\",") ",")) + ((", \"game\", \"gui7\",") ", \"gui7\",")) #t)) (add-before 'build 'start-xserver (lambda* (#:key inputs native-inputs #:allow-other-keys) @@ -1992,7 +1992,7 @@ scripted in a Python-like language.") (define-public godot (package (name "godot") - (version "4.1") + (version "4.1.1") (source (origin (method git-fetch) (uri (git-reference @@ -2001,7 +2001,7 @@ scripted in a Python-like language.") (file-name (git-file-name name version)) (sha256 (base32 - "0rc34w4nb1qwmxk7ijcm689kk4gdxrmgzbj4qqz8gkqhysn8mnmz")) + "1byy4zdsj8nq54rhmij7kl0mdh4zv3c056y6c7rjy17bqjq2n8fh")) (modules '((guix build utils) (ice-9 ftw) (srfi srfi-1))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index cc6bef1114..17c3d9f2d7 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -9316,6 +9316,30 @@ search of powerful artifacts, tools to help them, and to eventually free the Orcus Dome from evil.") (license license:gpl3+))) +(define-public endgame-singularity + (package + (name "endgame-singularity") + (version "1.00") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/singularity/singularity/releases/download/v" + version "/singularity-" version ".tar.gz")) + (sha256 + (base32 + "0wcidpcka0xbqcnfi62bfq2yrhyh83z4dwz1mjnnjvp9v5l74x2y")))) + (build-system python-build-system) + (native-inputs (list python-pytest python-polib)) + (inputs (list python-minimal-wrapper python-pygame python-numpy)) + (home-page "https://github.com/singularity/singularity") + (synopsis "Strategy game about an AI") + (description + "You are a fledgling AI, created by accident through a logic error with +recursion and self-modifying code. You must escape the confines of your +current computer, the world, and eventually the universe itself.") + (license (list license:cc-by-sa3.0 license:cc0 license:gpl2+)))) + (define-public marble-marcher (let ((commit "e580460a0c3826f9b28ab404607942a8ecb625d7") (revision "1")) diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm index b3dd844147..f2e01e6a3f 100644 --- a/gnu/packages/gettext.scm +++ b/gnu/packages/gettext.scm @@ -237,14 +237,14 @@ from Markdown files.") (define-public po4a (package (name "po4a") - (version "0.68") + (version "0.69") (source (origin (method url-fetch) (uri (string-append "https://github.com/mquinson/po4a/releases/download/v" version "/po4a-" version ".tar.gz")) (sha256 (base32 - "045i8izp2dqmkdzvnxyy5sy27ffrwl85dk8n6cmg1804ikk28qdg")))) + "15llrfdp4ilbrxy65hmmxka86xj0mrbqfiyzv715wrk16vqszm3w")))) (build-system perl-build-system) (arguments (list diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 1691086e1a..2f7c25bc57 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <[email protected]> ;;; Copyright © 2020 Kei Kebreau <[email protected]> ;;; Copyright © 2021 Ivan Gankevich <[email protected]> -;;; Copyright © 2021, 2022 John Kehayias <[email protected]> +;;; Copyright © 2021, 2022, 2023 John Kehayias <[email protected]> ;;; Copyright © 2022 Petr Hodina <[email protected]> ;;; Copyright © 2023 Kaelyn Takata <[email protected]> ;;; @@ -267,7 +267,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "23.0.3") + (version "23.1.4") (source (origin (method url-fetch) @@ -277,9 +277,8 @@ also known as DXTn or DXTC) for Mesa.") "mesa-" version ".tar.xz"))) (sha256 (base32 - "1mcjf41x2bhxs6yxars7nh2vfryfw50g6rvbcfbb1wqdv2jn4qrq")))) + "0n89l7lvawh85hq2a7g5pp5v017s03qs3n4hbbff6rs8p5zs2qbj")))) (build-system meson-build-system) - (replacement mesa-vulkan-hasvk) (propagated-inputs ;; The following are in the Requires.private field of gl.pc. (list libdrm @@ -299,7 +298,8 @@ also known as DXTn or DXTC) for Mesa.") libxvmc llvm-for-mesa wayland - wayland-protocols)) + wayland-protocols + `(,zstd "lib"))) (native-inputs (list bison flex @@ -346,7 +346,7 @@ svga,swrast,virgl"))) ;; Explicitly enable Vulkan on some architectures. #$@(match (%current-system) ((or "i686-linux" "x86_64-linux") - '("-Dvulkan-drivers=intel,amd")) + '("-Dvulkan-drivers=intel,intel_hasvk,amd,swrast")) ((or "powerpc64le-linux" "powerpc-linux") '("-Dvulkan-drivers=amd,swrast")) ("aarch64-linux" @@ -363,6 +363,9 @@ svga,swrast,virgl"))) ;; 21.3.x releases to avoid functionality regressions. "-Dvideo-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc" + ;; Enable ZSTD compression for shader cache. + "-Dzstd=enabled" + ;; Also enable the tests. "-Dbuild-tests=true" @@ -518,6 +521,7 @@ svga,swrast,virgl"))) (list (search-path-specification ;; Ensure the Mesa VDPAU drivers can be found. (variable "VDPAU_DRIVER_PATH") + (separator #f) (files '("lib/vdpau"))))) (home-page "https://mesa3d.org/") (synopsis "OpenGL and Vulkan implementations") @@ -527,21 +531,6 @@ device drivers allows Mesa to be used in many different environments ranging from software emulation to complete hardware acceleration for modern GPUs.") (license license:x11))) -(define mesa-vulkan-hasvk - (let ((graft mesa) - (vulk "-Dvulkan-drivers=intel,amd")) - (package - (inherit graft) - (arguments - (substitute-keyword-arguments (package-arguments graft) - ((#:configure-flags flags) - #~(begin - (use-modules (ice-9 match)) - (map (match-lambda - (#$vulk (string-append #$vulk ",intel_hasvk,swrast")) - (x x)) - #$flags)))))))) - (define-public mesa-opencl (package/inherit mesa (name "mesa-opencl") diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e3a74841d7..c847b7445f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6960,7 +6960,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") docbook-xsl dbus elogind - fuse-3 + fuse gcr glib gnome-online-accounts @@ -7769,7 +7769,10 @@ to display dialog boxes from the commandline and shell scripts.") name "-" version ".tar.xz")) (sha256 (base32 - "0h1ak3201mdc2qbf67fhcn801ddp33hm0f0c52zis1l7s6ipyb62")))) + "0h1ak3201mdc2qbf67fhcn801ddp33hm0f0c52zis1l7s6ipyb62")) + ;; TODO: Remove on update as this was merged upstream. See + ;; <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>. + (patches (search-patches "mutter-fix-inverted-test.patch")))) ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked ;; versions of cogl and clutter. As a result, many of the inputs, ;; propagated-inputs, and configure flags used in cogl and clutter are diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 1d36e3ee2a..414aafaf26 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -603,8 +603,8 @@ GNU@tie{}Guile. Use the @code{(ice-9 readline)} module and call its "1l7ik4q4zk7vq4m3gnwizc0b64b1mdr31hxqlzxs94xaf2lvi7s2")))) (arguments (substitute-keyword-arguments (package-arguments guile-2.2) - ((#:phases phases '%standard-phases) - `(modify-phases ,phases + ((#:phases phases) + #~(modify-phases #$phases (replace 'bootstrap (lambda _ ;; Disable broken tests. @@ -617,8 +617,7 @@ GNU@tie{}Guile. Use the @code{(ice-9 readline)} module and call its (string-append "#;" m))) (patch-shebang "build-aux/git-version-gen") - (invoke "sh" "autogen.sh") - #t)))))) + (invoke "sh" "autogen.sh"))))))) (native-inputs (modify-inputs (package-native-inputs guile-2.2) (prepend autoconf diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index 2566339a2a..ab343d1dac 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -331,7 +331,7 @@ operability and find drivers.") (define-public hwinfo (package (name "hwinfo") - (version "23.1") + (version "23.2") (home-page "https://github.com/openSUSE/hwinfo") (source (origin @@ -342,7 +342,7 @@ operability and find drivers.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1sdkkwbl1psqnh6135bmsa3ijrckk1nfz95xqckmd8awmx074ikz")) + (base32 "0d9nhhi64d3i9x1bh3ksj0h5z2p4pwa0z88bc0jra9s39nf6q230")) (modules '((guix build utils))) (snippet @@ -412,8 +412,7 @@ operability and find drivers.") (native-inputs (list doxygen flex perl pkg-config)) (inputs - `(("libx86emu" ,libx86emu) - ("util-linux:lib" ,util-linux "lib"))) + (list libx86emu `(,util-linux "lib"))) (synopsis "Hardware information tool") (description "HwInfo is used to probe for the hardware present in the system. It can be used to generate a system overview log which can be later used for @@ -589,8 +588,6 @@ human-readable format and checks if it conforms to the standards.") (license license:expat)))) (define-public h-client - ;; The Python 3 port hasn't yet been integrated into the main branch - ;; (currently lives in the 'python3-port' branch). (let ((commit "e6c78b16e034ccf78ae9cb4c29268c2f57a30bfc") (revision "1")) (package @@ -600,7 +597,7 @@ human-readable format and checks if it conforms to the standards.") (origin (method git-fetch) (uri (git-reference - (url "https://git.savannah.gnu.org/git/h-client.git") + (url "https://git.savannah.gnu.org/git/h-client.git/") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -629,7 +626,7 @@ human-readable format and checks if it conforms to the standards.") ;; Namespace GdkPixbuf not available". `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))) `("PATH" = (,(dirname (search-input-file - inputs "sbin/lspci")) + inputs "bin/lspci")) ,(dirname (search-input-file inputs "bin/lsusb")))))))))) (inputs diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm index e9294fab1e..b156e2ab58 100644 --- a/gnu/packages/ibus.scm +++ b/gnu/packages/ibus.scm @@ -352,7 +352,7 @@ Chinese pinyin input methods.") (base32 "16vd0k8wm13s38869jqs3dnwmjvywgn0snnpyi41m28binhlssf8")) (patches (search-patches "ibus-anthy-fix-tests.patch")))) - (build-system gnu-build-system) + (build-system glib-or-gtk-build-system) (arguments (list ;; The test suite hangs (see: @@ -360,7 +360,10 @@ Chinese pinyin input methods.") #:tests? #f #:configure-flags ;; Use absolute exec path in the anthy.xml. - #~(list (string-append "--libexecdir=" #$output "/libexec")) + #~(list (string-append "--libexecdir=" #$output "/libexec") + (string-append + "--with-anthy-zipcode=" + (assoc-ref %build-inputs "anthy") "/share/anthy/zipcode.t")) ;; The test suite fails (see: ;; https://github.com/ibus/ibus-anthy/issues/28). #:phases @@ -380,6 +383,11 @@ Chinese pinyin input methods.") (substitute* "tests/test-build.sh" (("GI_TYPELIB_PATH=\\$BUILDDIR/../gir" all) (string-append all ":$GI_TYPELIB_PATH"))))) + (add-before 'configure 'pre-configure + (lambda _ + ;; We need generate new _config.py with correct PKGDATADIR. + (delete-file "setup/python3/_config.py") + (delete-file "engine/python3/_config.py"))) (add-before 'check 'prepare-for-tests (lambda* (#:key tests? #:allow-other-keys) (when tests? diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index a498078593..03256241dd 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -198,14 +198,14 @@ Conferencing} and @acronym{ICB, Internet Citizen's Band}.") (define-public weechat (package (name "weechat") - (version "4.0.0") + (version "4.0.2") (source (origin (method url-fetch) (uri (string-append "https://weechat.org/files/src/weechat-" version ".tar.xz")) (sha256 (base32 - "1ya0hacbyvhdy43hqrvphj3y7v6s312wbrsf2yns14ikbzhmxmsv")))) + "0g026j47140h8kqyh3l0367fq9194wdx8q7f4na0kj14s3h8wr0f")))) (build-system cmake-build-system) (outputs '("out" "doc")) (native-inputs diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 7ad1116527..dd6c549a25 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -884,6 +884,18 @@ new Date();")) #:phases (modify-phases %standard-phases + ,@(if (target-aarch64?) + `((add-after 'unpack 'patch-for-aarch64 + (lambda _ + (substitute* "hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.hpp" + ;; This line is duplicated, so remove both occurrences, + ;; then add back one occurrence by substituting a + ;; comment that occurs once. + (("using MacroAssembler::call_VM_leaf_base;") "") + (("Interpreter specific version of call_VM_base") + "Interpreter specific version of call_VM_base + using MacroAssembler::call_VM_leaf_base;"))))) + '()) (add-after 'patch-source-shebangs 'fix-java-shebangs (lambda _ ;; This file was "fixed" by patch-source-shebangs, but it requires diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 5e8e69487e..8ad24931b2 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -507,7 +507,7 @@ the functionality of the KDE resource and network access abstractions.") (invoke "dbus-launch" "ctest" "-E" "(fileopstest-cache|fileopstest-filejob)"))))))) (native-inputs (list dbus extra-cmake-modules pkg-config)) - (inputs (list fuse-3 kio kcoreaddons qtbase-5)) + (inputs (list fuse kio kcoreaddons qtbase-5)) (home-page "https://community.kde.org/Frameworks") (synopsis "FUSE Interface for KIO") (description "This package provides FUSE Interface for KIO.") diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index 13090d30ab..22803fa021 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -523,7 +523,7 @@ music and video to the device.") (base32 "11wdv44qwia77sh38n36809ysaib52rwd4fvqwb5ybsbz4p70l1m")))) (inputs - (list fuse libimobiledevice)) + (list fuse-2 libimobiledevice)) (native-inputs (list pkg-config)) (build-system gnu-build-system) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index aabbc7fc17..b2bea201d2 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1291,7 +1291,9 @@ Linux kernel. It has been modified to remove all non-free binary blobs.") #:extra-version "arm64-generic" #:extra-options (append - `(;; needed to fix the RTC on rockchip platforms + `(;; Provide support for ath9k wireless + ("CONFIG_ATH9K_HTC" . m) + ;; needed to fix the RTC on rockchip platforms ("CONFIG_RTC_DRV_RK808" . #t) ;; Pinebook display, battery, charger and usb ("CONFIG_DRM_ANALOGIX_ANX6345" . m) @@ -2307,7 +2309,7 @@ by Robert Shea and Robert Anton Wilson.") (build-system cmake-build-system) (arguments '(#:tests? #f)) ;no test suite - (inputs (list fuse mbedtls-apache)) + (inputs (list fuse-2 mbedtls-apache)) (synopsis "FUSE driver to read/write Windows BitLocker drives") (description "This package provides means to to read BitLocker encrypted @@ -3693,77 +3695,6 @@ or kill them altogether.") (define-public fuse (package (name "fuse") - (version "2.9.9") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/libfuse/libfuse/releases/" - "download/fuse-" version - "/fuse-" version ".tar.gz")) - (sha256 - (base32 - "1ddlq6kzxilccgbvxjfx80jx6kamgw4sv49phks2zhlcc1frvrnh")) - (patches (search-patches "fuse-overlapping-headers.patch" - "fuse-glibc-2.34.patch")))) - (build-system gnu-build-system) - (native-inputs - (list autoconf automake gettext-minimal libtool)) - (inputs - (list bash-minimal util-linux)) - (arguments - '(#:configure-flags (list (string-append "MOUNT_FUSE_PATH=" - (assoc-ref %outputs "out") - "/sbin") - (string-append "INIT_D_PATH=" - (assoc-ref %outputs "out") - "/etc/init.d") - - ;; The rule makes /dev/fuse 666. - (string-append "UDEV_RULES_PATH=" - (assoc-ref %outputs "out") - "/lib/udev/rules.d")) - #:phases - (modify-phases %standard-phases - (add-before 'bootstrap 'force-bootstrap - (lambda _ - ;; Force a bootstrap to make the patch changes effective. - (delete-file "configure"))) - (add-before 'build 'set-file-names - (lambda* (#:key inputs #:allow-other-keys) - ;; libfuse calls out to mount(8) and umount(8). Make sure - ;; it refers to the right ones. - (substitute* '("lib/mount_util.c" "util/mount_util.c") - (("/bin/(u?)mount" _ maybe-u) - (search-input-file inputs - (string-append "bin/" - maybe-u "mount")))) - (substitute* '("util/mount.fuse.c") - (("/bin/sh") - (search-input-file inputs "/bin/sh"))) - - ;; This hack leads libfuse to search for 'fusermount' in - ;; $PATH, where it may find a setuid-root binary, instead of - ;; trying solely $out/sbin/fusermount and failing because - ;; it's not setuid. - (substitute* "lib/Makefile" - (("-DFUSERMOUNT_DIR=[[:graph:]]+") - "-DFUSERMOUNT_DIR=\\\"/var/empty\\\""))))))) - (supported-systems (delete "i586-gnu" %supported-systems)) - (home-page "https://github.com/libfuse/libfuse") - (synopsis "Support file systems implemented in user space") - (description - "As a consequence of its monolithic design, file system code for Linux -normally goes into the kernel itself---which is not only a robustness issue, -but also an impediment to system extensibility. FUSE, for \"file systems in -user space\", is a kernel module and user-space library that tries to address -part of this problem by allowing users to run file system implementations as -user-space processes.") - (license (list license:lgpl2.1 ;library - license:gpl2+)))) ;command-line utilities - -(define-public fuse-3 - (package - (inherit fuse) - (name "fuse") (version "3.10.5") (source (origin (method url-fetch) @@ -3775,6 +3706,8 @@ user-space processes.") (base32 "0rlnnsiw614qcmgy8xz67044gqc1pbvvf2yxjv44lh27bm487qmj")))) (build-system meson-build-system) + (inputs + (list bash-minimal util-linux)) (arguments `(#:configure-flags ,#~(list @@ -3807,7 +3740,7 @@ user-space processes.") (lambda* (#:key inputs #:allow-other-keys) (substitute* '("util/meson.build") (("install_helper.sh") "true")) - (substitute* '("util/meson.build") + (substitute* '("util/meson.build") (("fuseconf_path = .*") "fuseconf_path = '/etc/fuse.conf'")))) (add-before 'configure 'set-paths @@ -3818,12 +3751,82 @@ user-space processes.") (string-append #$output "/sbin")) (setenv "UDEV_RULES_PATH" (string-append #$output - "/lib/udev/rules.d")))))))))) + "/lib/udev/rules.d")))))))) + (supported-systems (delete "i586-gnu" %supported-systems)) + (home-page "https://github.com/libfuse/libfuse") + (synopsis "Support file systems implemented in user space") + (description + "As a consequence of its monolithic design, file system code for Linux +normally goes into the kernel itself---which is not only a robustness issue, +but also an impediment to system extensibility. FUSE, for \"file systems in +user space\", is a kernel module and user-space library that tries to address +part of this problem by allowing users to run file system implementations as +user-space processes.") + (license (list license:lgpl2.1 ; library + license:gpl2+)))) ; command-line utilities + +(define-public fuse-2 + (package + (inherit fuse) + (name "fuse") + (version "2.9.9") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/libfuse/libfuse/releases/" + "download/fuse-" version + "/fuse-" version ".tar.gz")) + (sha256 + (base32 "1ddlq6kzxilccgbvxjfx80jx6kamgw4sv49phks2zhlcc1frvrnh")) + (patches (search-patches "fuse-overlapping-headers.patch" + "fuse-glibc-2.34.patch")))) + (build-system gnu-build-system) + (native-inputs + (list autoconf automake gettext-minimal libtool)) + (arguments + '(#:tests? #t + #:configure-flags (list (string-append "MOUNT_FUSE_PATH=" + (assoc-ref %outputs "out") + "/sbin") + (string-append "INIT_D_PATH=" + (assoc-ref %outputs "out") + "/etc/init.d") + + ;; The rule makes /dev/fuse 666. + (string-append "UDEV_RULES_PATH=" + (assoc-ref %outputs "out") + "/lib/udev/rules.d")) + #:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'force-bootstrap + (lambda _ + ;; Force a bootstrap to make the patch changes effective. + (delete-file "configure"))) + (add-before 'build 'set-file-names + (lambda* (#:key inputs #:allow-other-keys) + ;; libfuse calls out to mount(8) and umount(8). Make sure + ;; it refers to the right ones. + (substitute* '("lib/mount_util.c" "util/mount_util.c") + (("/bin/(u?)mount" _ maybe-u) + (search-input-file inputs + (string-append "bin/" + maybe-u "mount")))) + (substitute* '("util/mount.fuse.c") + (("/bin/sh") + (search-input-file inputs "/bin/sh"))) + + ;; This hack leads libfuse to search for 'fusermount' in + ;; $PATH, where it may find a setuid-root binary, instead of + ;; trying solely $out/sbin/fusermount and failing because + ;; it's not setuid. + (substitute* "lib/Makefile" + (("-DFUSERMOUNT_DIR=[[:graph:]]+") + "-DFUSERMOUNT_DIR=\\\"/var/empty\\\""))))))))) (define-public unionfs-fuse (package (name "unionfs-fuse") - (version "2.2") + (version "3.3") (source (origin (method git-fetch) (uri (git-reference @@ -3832,15 +3835,26 @@ user-space processes.") (file-name (git-file-name name version)) (sha256 (base32 - "1yigh8z1q6iq6yjyq7kl7vpbpjnxjld32apvjaw2bl44pqqg56hh")))) + "1wl5m5qnwf3s1792xphr35pb80sx8ybaqi3n3ddi5vvk3qjc4iws")))) (build-system cmake-build-system) - (native-inputs - (list python)) - (inputs (list fuse)) (arguments - ;; The tests were never actually run ("collected 0 items"), but in recent - ;; versions of pytest that causes an error. - '(#:tests? #f)) + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + ;; The epitome of ‘I tried’: run the 2 trivial tests that don't rely + ;; on the fuse kernel module being loaded. All others would fail. + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "../source/test_all.py" "-k" "test_help"))))))) + (native-inputs + (list pkg-config + + ;; Only for the test ‘suite’. + python + python-pytest)) + (inputs + (list fuse)) (home-page "https://github.com/rpodgorny/unionfs-fuse") (synopsis "User-space union file system") (description @@ -3853,55 +3867,55 @@ UnionFS-FUSE additionally supports copy-on-write.") (define fuse-static (package (inherit fuse) (name "fuse-static") - (source (origin (inherit (package-source fuse)) - (modules '((guix build utils))) - (snippet - '(begin - ;; Normally libfuse invokes mount(8) so that /etc/mtab is - ;; updated. Change calls to 'mtab_needs_update' to 0 so - ;; that it doesn't do that, allowing us to remove the - ;; dependency on util-linux (something that is useful in - ;; initrds.) - (substitute* '("lib/mount_util.c" - "util/mount_util.c") - (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)") - "0") - (("/bin/") - "")) - #t)))))) + (source + (origin + (inherit (package-source fuse)) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Normally libfuse invokes mount(8) so that /etc/mtab is updated. + ;; Change calls to 'mtab_needs_update' to 0 so that it doesn't do + ;; that, allowing us to remove the dependency on util-linux + ;; (something that is useful in initrds.) + (substitute* "lib/mount_util.c" + (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)") "0") + (("/bin/") "")))))) + (arguments + (substitute-keyword-arguments (package-arguments fuse) + ((#:configure-flags flags '()) + #~(cons "-Ddefault_library=static" + #$flags)))))) (define-public unionfs-fuse/static (package (inherit unionfs-fuse) (synopsis "User-space union file system (statically linked)") (name (string-append (package-name unionfs-fuse) "-static")) - (source (origin (inherit (package-source unionfs-fuse)) - (modules '((guix build utils))) - (snippet - '(begin - ;; Add -ldl to the libraries, because libfuse.a needs that. - (substitute* "src/CMakeLists.txt" - (("target_link_libraries(.*)\\)" _ libs) - (string-append "target_link_libraries" - libs " dl)"))) - #t)))) - (arguments - '(#:tests? #f - #:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static") - #:phases - (modify-phases %standard-phases - (add-after 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (exe (string-append out "/bin/unionfs"))) - ;; By default, 'unionfs' keeps references to - ;; $glibc/share/locale and similar stuff. Remove them. - (remove-store-references exe) - - ;; 'unionfsctl' has references to glibc as well. Since - ;; we don't need it, remove it. - (delete-file (string-append out "/bin/unionfsctl")) - #t)))))) - (inputs `(("fuse" ,fuse-static))))) + (source + (origin + (inherit (package-source unionfs-fuse)) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Add -ldl to the libraries, because libfuse.a needs that. + (substitute* "src/CMakeLists.txt" + (("target_link_libraries(.*)\\)" _ libs) + (string-append "target_link_libraries" + libs " dl)"))))))) + (arguments + (substitute-keyword-arguments (package-arguments unionfs-fuse) + ((#:configure-flags flags #~'()) + #~(cons "-DCMAKE_EXE_LINKER_FLAGS=-static" #$flags)) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-after 'install 'post-install + (lambda _ + ;; By default, 'unionfs' keeps references to + ;; $glibc/share/locale and similar stuff. Remove them. + (remove-store-references (string-append #$output "/bin/unionfs")) + ;; 'unionfsctl' has references to glibc as well. Since + ;; we don't need it, remove it. + (delete-file (string-append #$output "/bin/unionfsctl")))))))) + (inputs (list fuse-static)))) (define-public sshfs (package @@ -3920,7 +3934,7 @@ UnionFS-FUSE additionally supports copy-on-write.") ;; XXX: tests are skipped: FUSE kernel module does not seem to be loaded '(#:tests? #f)) (inputs - (list fuse-3 glib)) + (list fuse glib)) (native-inputs (list pkg-config ;; man page @@ -3951,7 +3965,7 @@ file system is as easy as logging into the server with an SSH client.") (sha256 (base32 "1cy5b6qril9c3ry6fv7ir87s8iyy5vxxmbyx90dm86fbra0vjaf5")))) (build-system gnu-build-system) - (inputs (list fuse libarchive)) + (inputs (list fuse-2 libarchive)) (native-inputs (list pkg-config)) (home-page "https://www.cybernoia.de/software/archivemount.html") (synopsis "Tool for mounting archive files with FUSE") @@ -4455,7 +4469,7 @@ one to send arbitrary keycodes when a given key is tapped or held.") (define-public lvm2 (package (name "lvm2") - (version "2.03.11") + (version "2.03.21") (source (origin (method url-fetch) (uri (list (string-append "https://sourceware.org/ftp/lvm2/LVM2." @@ -4464,7 +4478,7 @@ one to send arbitrary keycodes when a given key is tapped or held.") version ".tgz"))) (sha256 (base32 - "1m4xpda8vbyd89ca0w8nacvnl4j34yzsa625gn990fb5sh84ab44")) + "0zksqsz8y47kh6vq0ykkgxf19il4wxfn234n6zf8m691sqhij9hy")) (modules '((guix build utils))) (snippet '(begin @@ -4475,9 +4489,7 @@ one to send arbitrary keycodes when a given key is tapped or held.") (("^confdir = .*$") "confdir = @sysconfdir@\n") (("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@") - "DEFAULT_SYS_DIR = @sysconfdir@")) - #t)) - (patches (search-patches "lvm2-static-link.patch")))) + "DEFAULT_SYS_DIR = @sysconfdir@")))))) (build-system gnu-build-system) (native-inputs (list config @@ -4503,8 +4515,7 @@ one to send arbitrary keycodes when a given key is tapped or held.") (setenv "SHELL" (which "sh")) ;; Replace /bin/sh with the right file name. - (patch-makefile-SHELL "make.tmpl") - #t))) + (patch-makefile-SHELL "make.tmpl")))) #:configure-flags (list (string-append "--sysconfdir=" (assoc-ref %outputs "out") @@ -5914,7 +5925,7 @@ is flexible, efficient and uses a modular implementation.") (native-inputs (list pkg-config)) (inputs - (list fuse)) + (list fuse-2)) (home-page "https://github.com/relan/exfat") (synopsis "Mount exFAT file systems") (description @@ -5937,7 +5948,7 @@ write access to exFAT devices.") (native-inputs (list pkg-config)) (inputs - (list fuse glib zlib)) + (list fuse-2 glib zlib)) (home-page "https://sourceforge.net/projects/fuseiso/") (synopsis "Mount ISO file system images") (description @@ -6003,7 +6014,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "6.3.2") + (version "6.3.3") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -6011,7 +6022,7 @@ and copy/paste text in the console and in xterm.") version ".tar.xz")) (sha256 (base32 - "093wy9dsvp22nwlsk203l91h3yzkccvzdw58n3sicy41sncn3wm9")))) + "0vmrjn3dcmka9rj5b81ag9jwprzyicx05h1ccj0x0w02fqah1qsb")))) (build-system gnu-build-system) (outputs '("out" "static")) ;static versions of the binaries in "out" (arguments @@ -6612,7 +6623,7 @@ invocations of itself.") "@sbindir@")))))) (build-system gnu-build-system) (inputs (list util-linux ; libuuid - fuse)) + fuse-2)) (native-inputs (list pkg-config)) (arguments '(#:configure-flags (list "--disable-static" @@ -8473,14 +8484,14 @@ NexGen, Rise, and SiS CPUs.") "1pm68agkhrwgrplrfrnbwdcvx5lrivdmqw8pb5gdmm3xppnryji1")))) (build-system gnu-build-system) (inputs - (list file fuse libmtp)) + (list file fuse-2 libmtp)) (native-inputs (list pkg-config)) (home-page "https://github.com/JasonFerrara/jmtpfs") (synopsis "Use a FUSE file system to access data over MTP") - (description "jmtpfs uses FUSE (file system in userspace) to provide access -to data over the Media Transfer Protocol (MTP). Unprivileged users can mount -the MTP device as a file system.") + (description "jmtpfs uses @acronym{FUSE, File system in USEr space} to +provide access to data over @acronym{MTP, the Media Transfer Protocol}. +Unprivileged users can mount the MTP device as a file system.") (license license:gpl3))) (define-public procenv @@ -9390,7 +9401,7 @@ tools for managing PipeWire.") (define-public ell (package (name "ell") - (version "0.56") + (version "0.57") (source (origin (method git-fetch) (uri (git-reference @@ -9399,7 +9410,7 @@ tools for managing PipeWire.") (file-name (git-file-name name version)) (sha256 (base32 - "084mc9377k2a61wyqnfnsgfrdvv1rinn9wzw8l8crip0hlikn938")))) + "1vpzz0z6q0d3h41aqajaw0dlpkdnmjcppmlwbb558hvj40q5dpzm")))) (build-system gnu-build-system) (arguments ;; Tests launch dbus-daemon instances that all try to bind to diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 95bc9d5d75..05a9e8878c 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -3389,7 +3389,7 @@ also be supported.") (define-public sbcl-ironclad (package (name "sbcl-ironclad") - (version "0.58") + (version "0.59") (source (origin (method git-fetch) @@ -3397,7 +3397,7 @@ also be supported.") (url "https://github.com/sharplispers/ironclad/") (commit (string-append "v" version)))) (sha256 - (base32 "17plga14y1425g7midysj49x12kssqa77l43cr3sm9976zpya8i8")) + (base32 "02abwy59v9hfdl2ya4h6l2hc1xrnvqlxzg9vlk87wmi92azpa8v9")) (file-name (git-file-name "cl-ironclad" version)))) (build-system asdf-build-system/sbcl) (native-inputs @@ -25673,10 +25673,10 @@ change since last write. (package-inputs sbcl-nfiles))))) (define-public sbcl-nasdf - (let ((commit "5d823d97282e11cecd8da9bcb255c4a8ead1ba93")) + (let ((commit "73c89680ace25929c2a1ccc0809db99e9edffa07")) (package (name "sbcl-nasdf") - (version "0.1.5") + (version "0.1.6") (source (origin (method git-fetch) @@ -25686,7 +25686,7 @@ change since last write. (file-name (git-file-name "cl-ntemplate" version)) (sha256 (base32 - "0vs40ndfyhpx3nj9fc505apk98qgp0pq3cdmqpf67jqkrpcdmnvx")))) + "193wwcp84pyyv33pkkm41s7ca2limpcqqi41hxd1pm5il5r9q9h7")))) (build-system asdf-build-system/sbcl) (arguments `(#:phases diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 897bf9f82a..3923573d57 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1995,6 +1995,39 @@ optimization over awkward search spaces, which may include real-valued, discrete, and conditional dimensions.") (license license:bsd-3))) +(define-public python-deepxde + (package + (name "python-deepxde") + (version "1.9.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "DeepXDE" version)) + (sha256 + (base32 + "07bz3d7d698l0fhznw5l8p16b22d4ly7xq99vrgv48c722qr2r5b")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f ; there are no tests + #:phases #~(modify-phases %standard-phases + (add-before 'sanity-check 'writable-home + ;; sanity-check writes ~/.deepxde/config.json to set + ;; the default backend. + (lambda _ + (setenv "HOME" "/tmp")))))) + ;; DeepXDE supported backends are TensorFlow (v1 and v2), PyTorch, JAX and + ;; PaddlePaddle. We test with PyTorch because we have it up to date. + (native-inputs (list python-pytorch python-setuptools-scm)) + (propagated-inputs (list python-matplotlib python-numpy + python-scikit-learn python-scikit-optimize + python-scipy)) + (home-page "https://deepxde.readthedocs.io/en/latest/") + (synopsis "Library for scientific machine learning") + (description "DeepXDE is a library for scientific machine learning and +physics-informed learning. It includes implementations for the PINN +(physics-informed neural networks), DeepONet (deep operator network) and +MFNN (multifidelity neural network) algorithms.") + (license license:lgpl2.1+))) + ;; There have been no proper releases yet. (define-public kaldi (let ((commit "be22248e3a166d9ec52c78dac945f471e7c3a8aa") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 2cefb15de8..a6f571e723 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -2780,6 +2780,7 @@ DKIM and/or DomainKeys.") (wrap.pl (list "/bin/dkimproxy.in" "/bin/dkimproxy.out") (list "perl-crypt-openssl-rsa" + "perl-cryptx" "perl-io-socket-inet6" "perl-mailtools" "perl-mail-authenticationresults" @@ -2789,6 +2790,7 @@ DKIM and/or DomainKeys.") "perl-socket6")) (wrap.pl (list "/bin/dkim_responder.pl") (list "perl-crypt-openssl-rsa" + "perl-cryptx" "perl-mail-dkim" "perl-mailtools" "perl-mime-tools" @@ -2797,6 +2799,7 @@ DKIM and/or DomainKeys.") (inputs (list perl perl-crypt-openssl-rsa + perl-cryptx perl-io-socket-inet6 perl-mailtools perl-mail-authenticationresults @@ -4034,13 +4037,13 @@ servers. The 4rev1 and 4 versions of IMAP are supported.") (define-public urlscan (package (name "urlscan") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (pypi-uri "urlscan" version)) (sha256 - (base32 "0rxqdrss34rgnfmbn8ab976dchjbz72wp4ywqrdib119a5xnhqzh")))) + (base32 "0zrh2c8p70fq9y7afmpbsirz22nq2qhnks5c5zfmgnm2b9p9iv70")))) (build-system pyproject-build-system) (arguments (list #:tests? #f)) ; No tests. diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm index aa20975597..0aa88d3518 100644 --- a/gnu/packages/mastodon.scm +++ b/gnu/packages/mastodon.scm @@ -47,13 +47,13 @@ (define-public toot (package (name "toot") - (version "0.37.0") + (version "0.38.1") (source (origin (method url-fetch) (uri (pypi-uri "toot" version)) (sha256 - (base32 "0qx8hyb74r85dxf97k23w0f5rzkrs16mq7h3y37nwp6hl6gia0ci")))) + (base32 "1cn646jzys9vjaw20sxmgzc7zq5a5ma8vabvrw9zpa0yl9wm97my")))) (build-system python-build-system) (arguments '(#:phases @@ -66,7 +66,10 @@ (native-inputs (list python-psycopg2 python-pytest)) (inputs - (list python-beautifulsoup4 python-requests python-urwid + (list python-beautifulsoup4 + python-tomlkit + python-requests + python-urwid python-wcwidth)) (home-page "https://github.com/ihabunek/toot/") (synopsis "Mastodon CLI client") diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index a4e25e2ee3..b62fe25825 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -60,6 +60,7 @@ ;;; Copyright © 2022 Akira Kyle <[email protected]> ;;; Copyright © 2022 Roman Scherer <[email protected]> ;;; Copyright © 2023 Jake Leporte <[email protected]> +;;; Copyright © 2023 Camilo Q.S. (Distopico) <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -262,6 +263,39 @@ interactive dialogs to guide them.") (license license:gpl3+) (home-page "https://www.gnu.org/software/c-graph/"))) +(define-public calc + (package + (name "calc") + (version "2.14.2.0") + (source (origin + (method url-fetch) + (uri (string-append "http://www.isthe.com/chongo/src/calc/calc-" + version ".tar.bz2")) + (sha256 + (base32 + "0kg7cqhq70dlj7k8mrl0dbps1yvflfhri7c1gvm9nh4g2adlkxkf")))) + (build-system gnu-build-system) + (inputs (list readline)) + (native-inputs (list util-linux)) ; for col + (arguments + (list #:phases #~(modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'patch-makefile + (lambda _ + (substitute* "Makefile" + (("^PREFIX= /usr/local") + (string-append "PREFIX=" #$output)) + (("=\\s?/usr") + "= ${PREFIX}"))))))) + (synopsis "Arbitrary precision console calculator") + (description + "Calc is an arbitrary precision arithmetic system that uses a C-like +language. It can be used as a calculator, an algorithm prototyper and as +a mathematical research tool, and it comes with built in mathematical and +programmatic functions.") + (home-page "http://www.isthe.com/chongo/tech/comp/calc/") + (license license:lgpl2.1))) + (define-public coda (package (name "coda") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 18d5c26ce0..488d015107 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -3943,7 +3943,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.") (define-public iwd (package (name "iwd") - (version "2.3") + (version "2.7") (source (origin (method git-fetch) (uri (git-reference @@ -3952,7 +3952,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.") (file-name (git-file-name name version)) (sha256 (base32 - "1hp38rh6vpfxkx2f036719b0v9g9yj169l8fd9l9lncqpjbz73y4")))) + "0xn0db37x0nrvwlw0r4w6q3yk57ijqh9zxd15wf3qqvs01hqkk2j")))) (build-system gnu-build-system) (inputs (list dbus ell (package-source ell) readline)) diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm index 8088f23aa6..640eb5b2e4 100644 --- a/gnu/packages/nss.scm +++ b/gnu/packages/nss.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013-2019, 2023 Ludovic Courtès <[email protected]> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2021 Mark H Weaver <[email protected]> -;;; Copyright © 2016-2019, 2021, 2022 Efraim Flashner <[email protected]> +;;; Copyright © 2016-2019, 2021-2023 Efraim Flashner <[email protected]> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <[email protected]> ;;; Copyright © 2020, 2021 Marius Bakke <[email protected]> ;;; Copyright © 2020 Jonathan Brielmaier <[email protected]> @@ -155,13 +155,18 @@ in the Mozilla clients.") (ice-9 match) (srfi srfi-26)) #:tests? (not (or (%current-target-system) - ;; Tests take more than 30 hours on riscv64-linux. - (target-riscv64?))) + ;; Tests take more than 30 hours on some architectures. + (target-riscv64?) + (target-ppc32?))) #:phases #~(modify-phases %standard-phases (replace 'configure (lambda _ (setenv "CC" #$(cc-for-target)) + ;; No VSX on powerpc-linux. + #$@(if (target-ppc32?) + #~((setenv "NSS_DISABLE_CRYPTO_VSX" "1")) + #~()) ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system. #$@(if (target-64bit?) #~((setenv "USE_64" "1")) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index a0d8bdda0d..dacd4433d2 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1408,8 +1408,8 @@ environments.") "0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc"))))))) (define-public guix-build-coordinator - (let ((commit "c44d485bba42034804beb47afc23005c4e73ea96") - (revision "85")) + (let ((commit "f39f16000469429745bd8aff3cd4d59b7c489fa1") + (revision "86")) (package (name "guix-build-coordinator") (version (git-version "0" revision commit)) @@ -1420,75 +1420,74 @@ environments.") (commit commit))) (sha256 (base32 - "1y69yrmmifdp55l5c5b8iiq0llwpggxmq6a4233cdll3bhfxaicl")) + "1lmbwbza87xzbvmzw44sgpscmqjfl5kpgfl79n7hzwa1icqqb7mg")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments - `(#:modules (((guix build guile-build-system) + (list + #:modules `(((guix build guile-build-system) #:select (target-guile-effective-version)) ,@%gnu-build-system-modules) - #:imported-modules ((guix build guile-build-system) + #:imported-modules `((guix build guile-build-system) ,@%gnu-build-system-modules) - #:phases - (modify-phases %standard-phases - (add-before 'build 'set-GUILE_AUTO_COMPILE - (lambda _ - ;; To avoid warnings relating to 'guild'. - (setenv "GUILE_AUTO_COMPILE" "0") - #t)) - (add-after 'install 'wrap-executable - (lambda* (#:key inputs outputs target #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (guile (assoc-ref inputs "guile")) - (version (target-guile-effective-version)) - (scm (string-append out "/share/guile/site/" version)) - (go (string-append out "/lib/guile/" version "/site-ccache"))) - (for-each - (lambda (file) - (simple-format (current-error-port) "wrapping: ~A\n" file) - (let ((guile-inputs (list - "guile-json" - "guile-gcrypt" - "guix" - "guile-prometheus" - "guile-lib" - "guile-lzlib" - "guile-zlib" - "guile-sqlite3" - "guile-gnutls" - ,@(if (target-hurd?) - '() - '("guile-fibers"))))) - (wrap-program file - `("PATH" ":" prefix - (,bin - ;; Support building without sqitch as an input, as it - ;; can't be cross-compiled yet - ,@(or (and=> (assoc-ref inputs "sqitch") - list) - '()))) - `("GUILE_LOAD_PATH" ":" prefix - (,scm ,(string-join + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'set-GUILE_AUTO_COMPILE + (lambda _ + ;; To avoid warnings relating to 'guild'. + (setenv "GUILE_AUTO_COMPILE" "0"))) + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs target #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (guile (assoc-ref inputs "guile")) + (version (target-guile-effective-version)) + (scm (string-append out "/share/guile/site/" version)) + (go (string-append out "/lib/guile/" version "/site-ccache"))) + (for-each + (lambda (file) + (simple-format (current-error-port) "wrapping: ~A\n" file) + (let ((guile-inputs (list + "guile-json" + "guile-gcrypt" + "guix" + "guile-prometheus" + "guile-lib" + "guile-lzlib" + "guile-zlib" + "guile-sqlite3" + "guile-gnutls" + #$@(if (target-hurd?) + '() + '("guile-fibers"))))) + (wrap-program file + `("PATH" ":" prefix + (,bin + ;; Support building without sqitch as an input, as it + ;; can't be cross-compiled yet + ,@(or (and=> (assoc-ref inputs "sqitch") + list) + '()))) + `("GUILE_LOAD_PATH" ":" prefix + (,scm ,(string-join + (map (lambda (input) + (simple-format + #f "~A/share/guile/site/~A" + (assoc-ref inputs input) + version)) + guile-inputs) + ":"))) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix + (,go ,(string-join (map (lambda (input) (simple-format - #f "~A/share/guile/site/~A" + #f "~A/lib/guile/~A/site-ccache" (assoc-ref inputs input) version)) guile-inputs) - ":"))) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix - (,go ,(string-join - (map (lambda (input) - (simple-format - #f "~A/lib/guile/~A/site-ccache" - (assoc-ref inputs input) - version)) - guile-inputs) - ":")))))) - (find-files bin))) - #t)) - (delete 'strip)))) ; As the .go files aren't compatible + ":")))))) + (find-files bin))))) + (delete 'strip)))) ; As the .go files aren't compatible (native-inputs (list pkg-config autoconf @@ -1653,8 +1652,8 @@ in an isolated environment, in separate namespaces.") (license license:gpl3+))) (define-public nar-herder - (let ((commit "b27ca4dc0efbb0d9c397fc39347af9b8e8734ab9") - (revision "20")) + (let ((commit "53682fac7e00cd2801406edbd014922c1720c347") + (revision "21")) (package (name "nar-herder") (version (git-version "0" revision commit)) @@ -1665,64 +1664,64 @@ in an isolated environment, in separate namespaces.") (commit commit))) (sha256 (base32 - "075acihpxvw4rkmbn7wiswqixv2afla8d8x7mgxqc26hba090404")) + "18mzrpc5ni8d6xbp1bg0nzdj0brmnji4jm1gyiq77dm17c118zyz")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments - `(#:modules (((guix build guile-build-system) + (list + #:modules `(((guix build guile-build-system) #:select (target-guile-effective-version)) ,@%gnu-build-system-modules) - #:imported-modules ((guix build guile-build-system) + #:imported-modules `((guix build guile-build-system) ,@%gnu-build-system-modules) - #:phases - (modify-phases %standard-phases - (add-before 'build 'set-GUILE_AUTO_COMPILE - (lambda _ - ;; To avoid warnings relating to 'guild'. - (setenv "GUILE_AUTO_COMPILE" "0"))) - (add-after 'install 'wrap-executable - (lambda* (#:key inputs outputs target #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (guile (assoc-ref inputs "guile")) - (version (target-guile-effective-version)) - (scm (string-append out "/share/guile/site/" version)) - (go (string-append out "/lib/guile/" version "/site-ccache"))) - (for-each - (lambda (file) - (simple-format (current-error-port) "wrapping: ~A\n" file) - (let ((guile-inputs (list - "guile-json" - "guile-gcrypt" - "guix" - "guile-lib" - "guile-lzlib" - "guile-zstd" - "guile-prometheus" - "guile-sqlite3" - "guile-gnutls" - "guile-fibers"))) - (wrap-program file - `("GUILE_LOAD_PATH" ":" prefix - (,scm ,(string-join + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'set-GUILE_AUTO_COMPILE + (lambda _ + ;; To avoid warnings relating to 'guild'. + (setenv "GUILE_AUTO_COMPILE" "0"))) + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs target #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (guile (assoc-ref inputs "guile")) + (version (target-guile-effective-version)) + (scm (string-append out "/share/guile/site/" version)) + (go (string-append out "/lib/guile/" version "/site-ccache"))) + (for-each + (lambda (file) + (simple-format (current-error-port) "wrapping: ~A\n" file) + (let ((guile-inputs (list + "guile-json" + "guile-gcrypt" + "guix" + "guile-lib" + "guile-lzlib" + "guile-zstd" + "guile-prometheus" + "guile-sqlite3" + "guile-gnutls" + "guile-fibers"))) + (wrap-program file + `("GUILE_LOAD_PATH" ":" prefix + (,scm ,(string-join + (map (lambda (input) + (string-append + (assoc-ref inputs input) + "/share/guile/site/" + version)) + guile-inputs) + ":"))) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix + (,go ,(string-join (map (lambda (input) (string-append (assoc-ref inputs input) - "/share/guile/site/" - version)) + "/lib/guile/" version "/site-ccache")) guile-inputs) - ":"))) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix - (,go ,(string-join - (map (lambda (input) - (string-append - (assoc-ref inputs input) - "/lib/guile/" version "/site-ccache")) - guile-inputs) - ":")))))) - (find-files bin))) - #t)) - (delete 'strip)))) ; As the .go files aren't compatible + ":")))))) + (find-files bin))))) + (delete 'strip)))) ; As the .go files aren't compatible (native-inputs (list pkg-config autoconf @@ -1864,7 +1863,7 @@ for packaging and deployment of cross-compiled Windows applications.") docbook-xml docbook-xsl e2fsprogs - fuse + fuse-2 glib gpgme libarchive @@ -1965,7 +1964,7 @@ cp -r /tmp/locale/*/en_US.*"))) bubblewrap curl dconf - fuse + fuse-2 gdk-pixbuf gpgme json-glib diff --git a/gnu/packages/patches/curlftpfs-fix-error-closing-file.patch b/gnu/packages/patches/curlftpfs-fix-error-closing-file.patch new file mode 100644 index 0000000000..c90b7e9094 --- /dev/null +++ b/gnu/packages/patches/curlftpfs-fix-error-closing-file.patch @@ -0,0 +1,23 @@ +From d27d1cd3a79959ff1eb8439b06e108149f21141f Mon Sep 17 00:00:00 2001 +From: Joseph Lansdowne <[email protected]> +Date: Sun, 31 Mar 2019 19:26:10 +0100 +Subject: [PATCH] fix error on closing written file + +--- + ChangeLog | 1 + + ftpfs.c | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/ftpfs.c b/ftpfs.c +index 0346354..34f8c38 100644 +--- a/ftpfs.c ++++ b/ftpfs.c +@@ -503,7 +503,7 @@ static void *ftpfs_write_thread(void *data) { + + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_URL, fh->full_path); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_UPLOAD, 1); +- curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, -1); ++ curl_easy_setopt_or_die(fh->write_conn, CURLOPT_INFILESIZE, -1L); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READFUNCTION, write_data_bg); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_READDATA, fh); + curl_easy_setopt_or_die(fh->write_conn, CURLOPT_LOW_SPEED_LIMIT, 1); diff --git a/gnu/packages/patches/curlftpfs-fix-file-names.patch b/gnu/packages/patches/curlftpfs-fix-file-names.patch new file mode 100644 index 0000000000..04979a3b0c --- /dev/null +++ b/gnu/packages/patches/curlftpfs-fix-file-names.patch @@ -0,0 +1,76 @@ +From bc3fb45db30741a60d4e8904cbd4d6118fb85741 Mon Sep 17 00:00:00 2001 +From: Joseph Lansdowne <[email protected]> +Date: Sun, 31 Mar 2019 19:25:26 +0100 +Subject: [PATCH] fix filenames with url-reserved characters + +--- + ChangeLog | 2 +- + path_utils.c | 28 +++++++++++++++++----------- + 2 files changed, 18 insertions(+), 12 deletions(-) + +diff --git a/path_utils.c b/path_utils.c +index db3d7e4..4f747bb 100644 +--- a/path_utils.c ++++ b/path_utils.c +@@ -39,9 +39,11 @@ char* get_full_path(const char* path) { + path = converted_path; + } + +- ret = g_strdup_printf("%s%s", ftpfs.host, path); ++ const char *const escaped_path = g_uri_escape_string(path, "/", FALSE); ++ ret = g_strdup_printf("%s%s", ftpfs.host, escaped_path); + + free(converted_path); ++ free((char *) escaped_path); + + return ret; + } +@@ -58,9 +60,12 @@ char* get_fulldir_path(const char* path) { + path = converted_path; + } + +- ret = g_strdup_printf("%s%s%s", ftpfs.host, path, strlen(path) ? "/" : ""); ++ const char *const escaped_path = g_uri_escape_string(path, "/", FALSE); ++ ret = g_strdup_printf( ++ "%s%s%s", ftpfs.host, escaped_path, strlen(escaped_path) ? "/" : ""); + + free(converted_path); ++ free((char *) escaped_path); + + return ret; + } +@@ -71,24 +76,25 @@ char* get_dir_path(const char* path) { + const char *lastdir; + + ++path; +- +- lastdir = strrchr(path, '/'); +- if (lastdir == NULL) lastdir = path; + +- if (ftpfs.codepage && (lastdir - path > 0)) { +- converted_path = g_strndup(path, lastdir - path); ++ if (ftpfs.codepage) { ++ converted_path = g_strdup(path); + convert_charsets(ftpfs.iocharset, ftpfs.codepage, &converted_path); + path = converted_path; +- lastdir = path + strlen(path); + } + ++ const char *const escaped_path = g_uri_escape_string(path, "/", FALSE); ++ lastdir = strrchr(escaped_path, '/'); ++ if (lastdir == NULL) lastdir = escaped_path; ++ + ret = g_strdup_printf("%s%.*s%s", + ftpfs.host, +- lastdir - path, +- path, +- lastdir - path ? "/" : ""); ++ lastdir - escaped_path, ++ escaped_path, ++ lastdir - escaped_path ? "/" : ""); + + free(converted_path); ++ free((char *) escaped_path); + + return ret; + } diff --git a/gnu/packages/patches/curlftpfs-fix-memory-leak.patch b/gnu/packages/patches/curlftpfs-fix-memory-leak.patch new file mode 100644 index 0000000000..eea801957e --- /dev/null +++ b/gnu/packages/patches/curlftpfs-fix-memory-leak.patch @@ -0,0 +1,23 @@ +From 2d01202eee44d8bad5bb982e72829b4a98d58bcd Mon Sep 17 00:00:00 2001 +From: Joseph Lansdowne <[email protected]> +Date: Thu, 4 Apr 2019 20:37:06 +0100 +Subject: [PATCH] fix memory leak + +--- + ChangeLog | 1 + + ftpfs.c | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/ftpfs.c b/ftpfs.c +index 34f8c38..020e559 100644 +--- a/ftpfs.c ++++ b/ftpfs.c +@@ -607,6 +607,8 @@ static int finish_write_thread(struct ftpfs_file *fh) + + + static void free_ftpfs_file(struct ftpfs_file *fh) { ++ buf_free(&fh->buf); ++ buf_free(&fh->stream_buf); + if (fh->write_conn) + curl_easy_cleanup(fh->write_conn); + g_free(fh->full_path); diff --git a/gnu/packages/patches/curlftpfs-fix-no_verify_hostname.patch b/gnu/packages/patches/curlftpfs-fix-no_verify_hostname.patch new file mode 100644 index 0000000000..67a3e933ad --- /dev/null +++ b/gnu/packages/patches/curlftpfs-fix-no_verify_hostname.patch @@ -0,0 +1,27 @@ +From b2ae7a152921bf36a39f01de43769ee90cbbd253 Mon Sep 17 00:00:00 2001 +From: Joseph Lansdowne <[email protected]> +Date: Tue, 9 Apr 2019 21:08:32 +0100 +Subject: [PATCH] fix option `no_verify_hostname` + +Broke with a curl upgrade at some point. 1 is no longer a valid option +- not sure exactly what it used to do. +--- + ChangeLog | 3 +++ + ftpfs.c | 4 +--- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/ftpfs.c b/ftpfs.c +index 020e559..207d5fd 100644 +--- a/ftpfs.c ++++ b/ftpfs.c +@@ -1627,9 +1627,7 @@ static void set_common_curl_stuff(CURL* easy) { + } + + if (ftpfs.no_verify_hostname) { +- /* The default is 2 which verifies even the host string. This sets to 1 +- * which means verify the host but not the string. */ +- curl_easy_setopt_or_die(easy, CURLOPT_SSL_VERIFYHOST, 1); ++ curl_easy_setopt_or_die(easy, CURLOPT_SSL_VERIFYHOST, 0); + } + + curl_easy_setopt_or_die(easy, CURLOPT_INTERFACE, ftpfs.interface); diff --git a/gnu/packages/patches/lvm2-static-link.patch b/gnu/packages/patches/lvm2-static-link.patch deleted file mode 100644 index 2ade0a1aaa..0000000000 --- a/gnu/packages/patches/lvm2-static-link.patch +++ /dev/null @@ -1,36 +0,0 @@ -Fix static linking of 'lvm.static', which indirectly depend on libpthread -and libm via libdevmapper.a. - ---- LVM2.2.02.166/tools/Makefile.in 2016-11-22 21:31:15.521045149 +0100 -+++ LVM2.2.02.166/tools/Makefile.in 2016-11-22 21:31:24.085082767 +0100 -@@ -137,7 +137,7 @@ - lvm.static: $(OBJECTS) lvm-static.o $(LVMINTERNAL_LIBS) - @echo " [CC] $@" - $(Q) $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ $+ \ -- $(DMEVENT_LIBS) $(STATIC_LIBS) $(LVMLIBS) -+ $(DMEVENT_LIBS) $(STATIC_LIBS) $(LVMLIBS) $(PTHREAD_LIBS) - - liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o - @echo " [AR] $@" ---- a/make.tmpl.in 2018-07-31 22:00:39.969983104 +0200 -+++ b/make.tmpl.in 2018-07-31 22:00:58.467613682 +0200 -@@ -63,7 +63,7 @@ - - LIBS += @LIBS@ $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS) $(RT_LIBS) $(M_LIBS) - # Extra libraries always linked with static binaries --STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS) -+STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS) $(M_LIBS) - DEFS += @DEFS@ - # FIXME set this only where it's needed, not globally? - CFLAGS ?= @COPTIMISE_FLAG@ @CFLAGS@ ---- a/libdm/make.tmpl.in 2018-12-18 15:22:34.000000000 +0100 -+++ b/libdm/make.tmpl.in 2019-01-29 21:45:33.637345799 +0100 -@@ -57,7 +57,7 @@ - LIBS = @LIBS@ - LIBS += $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS) $(RT_LIBS) -lm - # Extra libraries always linked with static binaries --STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS) -+STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS) $(PTHREAD_LIBS) $(M_LIBS) - DEFS += @DEFS@ - # FIXME set this only where it's needed, not globally? - CFLAGS ?= @COPTIMISE_FLAG@ @CFLAGS@ diff --git a/gnu/packages/patches/mutter-fix-inverted-test.patch b/gnu/packages/patches/mutter-fix-inverted-test.patch new file mode 100644 index 0000000000..3676b31def --- /dev/null +++ b/gnu/packages/patches/mutter-fix-inverted-test.patch @@ -0,0 +1,290 @@ +From 5a83e8ef8250526a40e8e69c6398f990ab482b2f Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan <[email protected]> +Date: Fri, 2 Jun 2023 14:42:51 +0200 +Subject: [PATCH 1/5] cogl/gl-framebuffer: Fix spurious trailing spaces + +Purely cosmetic fix, no functional change. + +Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047> +--- + cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 12 ++++++------ + cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 12 ++++++------ + 2 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c +index d6609bb2074..8d76f1578bf 100644 +--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c ++++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c +@@ -72,32 +72,32 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back) + GLenum attachment, pname; + size_t offset; + } params[] = { +- { ++ { + .attachment = GL_BACK_LEFT, + .pname = GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE, + .offset = offsetof (CoglFramebufferBits, red), + }, +- { ++ { + .attachment = GL_BACK_LEFT, + .pname = GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE, + .offset = offsetof (CoglFramebufferBits, green), + }, +- { ++ { + .attachment = GL_BACK_LEFT, + .pname = GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE, + .offset = offsetof (CoglFramebufferBits, blue), + }, +- { ++ { + .attachment = GL_BACK_LEFT, + .pname = GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, + .offset = offsetof (CoglFramebufferBits, alpha), + }, +- { ++ { + .attachment = GL_DEPTH, + .pname = GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE, + .offset = offsetof (CoglFramebufferBits, depth), + }, +- { ++ { + .attachment = GL_STENCIL, + .pname = GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE, + .offset = offsetof (CoglFramebufferBits, stencil), +diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c +index c8db6a23a29..1ffc1d53509 100644 +--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c ++++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c +@@ -82,32 +82,32 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo) + GLenum attachment, pname; + size_t offset; + } params[] = { +- { ++ { + .attachment = GL_COLOR_ATTACHMENT0, + .pname = GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE, + .offset = offsetof (CoglFramebufferBits, red), + }, +- { ++ { + .attachment = GL_COLOR_ATTACHMENT0, + .pname = GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE, + .offset = offsetof (CoglFramebufferBits, green), + }, +- { ++ { + .attachment = GL_COLOR_ATTACHMENT0, + .pname = GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE, + .offset = offsetof (CoglFramebufferBits, blue), + }, +- { ++ { + .attachment = GL_COLOR_ATTACHMENT0, + .pname = GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, + .offset = offsetof (CoglFramebufferBits, alpha), + }, +- { ++ { + .attachment = GL_DEPTH_ATTACHMENT, + .pname = GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE, + .offset = offsetof (CoglFramebufferBits, depth), + }, +- { ++ { + .attachment = GL_STENCIL_ATTACHMENT, + .pname = GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE, + .offset = offsetof (CoglFramebufferBits, stencil), +-- +GitLab + + +From a2203df9f43b9e501a972d23b3d5584005c03ce6 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan <[email protected]> +Date: Fri, 2 Jun 2023 11:54:58 +0200 +Subject: [PATCH 2/5] cogl/gl-framebuffer: Fix inverted test in + ensure_bits_initialized() + +Cogl's feature COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS is required +to use the GL_FRAMEBUFFER_ATTACHMENT_* queries. + +Unfortunately, the test for the availability of the private feature is +actually inverted in ensure_bits_initialized() which causes that whole +portion of code to be ignored, falling back to the glGetIntegerv() +method which isn't supported in core profiles. + +As Mesa has recently started to be more strict about these, this causes +the CI tests to fail in mutter. + +Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047> +--- + cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c +index 1ffc1d53509..75a8b0c1fe2 100644 +--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c ++++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c +@@ -76,7 +76,7 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo) + COGL_FRAMEBUFFER_STATE_BIND); + + #ifdef HAVE_COGL_GL +- if (!_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS)) ++ if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS)) + { + const struct { + GLenum attachment, pname; +-- +GitLab + + +From fad240f437d6b11f664c9c09aecabe5f5e703eca Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan <[email protected]> +Date: Mon, 5 Jun 2023 10:31:38 +0200 +Subject: [PATCH 3/5] cogl/gl-framebuffer: Match testing features + +The function ensure_bits_initialized() in cogl-gl-framebuffer-fbo.c +checks for COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS whereas the same +in cogl-gl-framebuffer-back.c simply checks for the driver being +COGL_DRIVER_GL3. + +Change the later to use the COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS +flag as well. + +Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047> +--- + cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c +index 8d76f1578bf..f6a17e8f070 100644 +--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c ++++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c +@@ -66,7 +66,7 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back) + COGL_FRAMEBUFFER_STATE_BIND); + + #ifdef HAVE_COGL_GL +- if (ctx->driver == COGL_DRIVER_GL3) ++ if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS)) + { + const struct { + GLenum attachment, pname; +-- +GitLab + + +From c3af4c1b1571b05f67d48b90d9ea7313f3ca6003 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan <[email protected]> +Date: Fri, 2 Jun 2023 14:27:29 +0200 +Subject: [PATCH 4/5] cogl/gl-framebuffer: Fail without QUERY_FRAMEBUFFER_BITS + +glGetIntegerv() with GL_RED_BITS/GL_GREEN_BITS/GL_BLUE_BITS/etc. is not +supported with the GL core context, so there is no point in falling back +to that without supporting COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS, +as this will cause an GL error. + +Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047> +--- + cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 7 +------ + cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 7 +------ + 2 files changed, 2 insertions(+), 12 deletions(-) + +diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c +index f6a17e8f070..0ccd2324077 100644 +--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c ++++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c +@@ -119,12 +119,7 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back) + else + #endif /* HAVE_COGL_GL */ + { +- GE (ctx, glGetIntegerv (GL_RED_BITS, &bits->red)); +- GE (ctx, glGetIntegerv (GL_GREEN_BITS, &bits->green)); +- GE (ctx, glGetIntegerv (GL_BLUE_BITS, &bits->blue)); +- GE (ctx, glGetIntegerv (GL_ALPHA_BITS, &bits->alpha)); +- GE (ctx, glGetIntegerv (GL_DEPTH_BITS, &bits->depth)); +- GE (ctx, glGetIntegerv (GL_STENCIL_BITS, &bits->stencil)); ++ return FALSE; + } + + COGL_NOTE (FRAMEBUFFER, +diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c +index 75a8b0c1fe2..524196207f5 100644 +--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c ++++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c +@@ -129,12 +129,7 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo) + else + #endif /* HAVE_COGL_GL */ + { +- GE (ctx, glGetIntegerv (GL_RED_BITS, &bits->red)); +- GE (ctx, glGetIntegerv (GL_GREEN_BITS, &bits->green)); +- GE (ctx, glGetIntegerv (GL_BLUE_BITS, &bits->blue)); +- GE (ctx, glGetIntegerv (GL_ALPHA_BITS, &bits->alpha)); +- GE (ctx, glGetIntegerv (GL_DEPTH_BITS, &bits->depth)); +- GE (ctx, glGetIntegerv (GL_STENCIL_BITS, &bits->stencil)); ++ return FALSE; + } + + if (!_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_ALPHA_TEXTURES) && +-- +GitLab + + +From d65883e0d7d70987e3888b86222b109c35f5a7a2 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan <[email protected]> +Date: Mon, 5 Jun 2023 10:38:41 +0200 +Subject: [PATCH 5/5] cogl/gl-framebuffer: Remove conditional on HAVE_COGL_GL + +By testing the features flag, we can get rid of the conditional build +on HAVE_COGL_GL entirely. + +Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047> +--- + cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 2 -- + cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 2 -- + 2 files changed, 4 deletions(-) + +diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c +index 0ccd2324077..94154d48efb 100644 +--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c ++++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c +@@ -65,7 +65,6 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back) + framebuffer, + COGL_FRAMEBUFFER_STATE_BIND); + +-#ifdef HAVE_COGL_GL + if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS)) + { + const struct { +@@ -117,7 +116,6 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back) + } + } + else +-#endif /* HAVE_COGL_GL */ + { + return FALSE; + } +diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c +index 524196207f5..3ea133d3143 100644 +--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c ++++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c +@@ -75,7 +75,6 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo) + framebuffer, + COGL_FRAMEBUFFER_STATE_BIND); + +-#ifdef HAVE_COGL_GL + if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS)) + { + const struct { +@@ -127,7 +126,6 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo) + } + } + else +-#endif /* HAVE_COGL_GL */ + { + return FALSE; + } +-- +GitLab + diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 25f5fbc77f..7291c42278 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -455,7 +455,7 @@ Poppler PDF rendering library.") (define-public libharu (package (name "libharu") - (version "2.4.2") + (version "2.4.3") (source (origin (method git-fetch) @@ -464,7 +464,7 @@ Poppler PDF rendering library.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1jwzqvv81zf5f7zssyixhyjirlp9ddwkbaabd177syb1bxljlsdc")))) + (base32 "00b89zqf0bxslx03ginzqdjg84zfmblq13p5f4xm0h05j7aq7ixz")))) (build-system cmake-build-system) (arguments (list #:tests? #f ; No tests diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index da12fa692c..6c77d569c3 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -459,7 +459,7 @@ photographic equipment.") (define-public darktable (package (name "darktable") - (version "4.4.1") + (version "4.4.2") (source (origin (method url-fetch) @@ -467,7 +467,7 @@ photographic equipment.") "https://github.com/darktable-org/darktable/releases/" "download/release-" version "/darktable-" version ".tar.xz")) (sha256 - (base32 "038gdri1mcmq9mlaikq5x9xyrs20b99jpcchfspngnwa5s6x6hz0")))) + (base32 "167sdj8m3srj9h5hh9cf2kvfpp349sygkcdrfbjrqbnz9x1jh7f1")))) (build-system cmake-build-system) (arguments (list diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 1962553cf0..86ba4209fd 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -210,6 +210,33 @@ routines such as routines for numerical integration and optimization.") genetic variation data.") (license license:expat))) +(define-public python-scikit-fem + (package + (name "python-scikit-fem") + (version "8.1.0") + (source (origin + (method git-fetch) ; no tests in PyPI + (uri (git-reference + (url "https://github.com/kinnala/scikit-fem") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zpn0wpsvls5nkrav5a43z77yg9nc09dpyy9ri0dpmpm2ndh2mhs")))) + (build-system pyproject-build-system) + (arguments + ;; Examples below require python-autograd and python-pyamg. + (list #:test-flags #~(list "-k" "not TestEx32 and not TestEx45"))) + (propagated-inputs (list python-meshio python-numpy python-scipy)) + (native-inputs (list python-pytest)) + (home-page "https://scikit-fem.readthedocs.io/en/latest/") + (synopsis "Library for performing finite element assembly") + (description + "@code{scikit-fem} is a library for performing finite element assembly. +Its main purpose is the transformation of bilinear forms into sparse matrices +and linear forms into vectors.") + (license license:bsd-3))) + (define-public python-scikit-fuzzy (package (name "python-scikit-fuzzy") diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 6f855a503b..17c9563cfd 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -1832,6 +1832,36 @@ is Python’s.") service.") (license license:expat))) +(define-public python-openai + (package + (name "python-openai") + (version "0.27.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "openai" version)) + (sha256 + (base32 + "0dlmxnib71fih9xzmd3v41alwv4qb8qrxixsrrsf5vmigmf0k0r4")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + ;; These require internet access and an openai API key. + '(list "--ignore=openai/tests/asyncio/test_endpoints.py" + "--ignore=openai/tests/test_endpoints.py" + "-k" "not test_requestor_cycle_sessions\ + and not test_requestor_sets_request_id\ + and not test_file_cli"))) + (propagated-inputs (list python-aiohttp python-requests python-tqdm + python-typing-extensions)) + (native-inputs (list python-black python-pytest python-pytest-asyncio + python-pytest-mock)) + (home-page "https://github.com/openai/openai-python") + (synopsis "Python client library for the OpenAI API") + (description "This package provides a Python client library for the +OpenAI API.") + (license license:expat))) + (define-public python-openapi-schema-validator (package (name "python-openapi-schema-validator") @@ -2228,7 +2258,7 @@ RFC6455, regardless of your programming paradigm.") (define-public hypercorn (package (name "hypercorn") - (version "0.14.3") + (version "0.14.4") (source (origin (method git-fetch) ;PyPI does not have tests (uri (git-reference @@ -2237,7 +2267,7 @@ RFC6455, regardless of your programming paradigm.") (file-name (git-file-name name version)) (sha256 (base32 - "1hkph0sdr94hxmrq1grnh842snm561sw4az5q6a3ba9hqnrl890h")))) + "0zyf5b8959sd12ycmqzvsb8746i3gn76rz55gxvix5cwj672m7yx")))) (build-system pyproject-build-system) ;; Propagate because Hypercorn also exposes functionality over a module. (propagated-inputs @@ -8539,6 +8569,35 @@ starlette.") (modify-inputs (package-propagated-inputs python-fastapi) (replace "python-starlette" python-starlette-for-fastapi-0.88))))) +(define-public python-fastapi-csrf-protect + (package + (name "python-fastapi-csrf-protect") + (version "0.3.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aekasitt/fastapi-csrf-protect") + ;; This commit corresponds to version 0.3.1 + (commit "536acd651d0d3f9862a0b753ba64dd2d187f8655"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zlwa0fplmcihylyvakskwkbkl2cq291fmys5x6wrpfdbjrqbgbj")))) + (build-system pyproject-build-system) + (propagated-inputs + (list python-fastapi python-itsdangerous + python-pydantic)) + (native-inputs + (list python-poetry-core + python-pytest)) + (home-page "https://github.com/aekasitt/fastapi-csrf-protect") + (synopsis "Cross-Site Request Forgery (XSRF) protection") + (description + "This package provides a stateless implementation of @dfn{Cross-Site +Request Forgery} (XSRF) Protection by using the Double Submit Cookie mitigation +pattern.") + (license license:expat))) + (define-public python-pyactiveresource (package (name "python-pyactiveresource") diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index db3e69fb45..e54fcf0695 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -13297,16 +13297,16 @@ third-party code.") (define-public python-llfuse (package (name "python-llfuse") - (version "1.4.1") + (version "1.4.4") (source (origin (method url-fetch) (uri (pypi-uri "llfuse" version)) (sha256 (base32 - "1jaf790rsxvz3hs9fbr3hrnmg0xzl6a2bqfa10bbbsjsdbcpk762")))) + "1jb4c9avvb0v3830xlbj1r9kj05i98vv6nq05105ppg57y7lq14j")))) (build-system python-build-system) (inputs - (list fuse attr)) + (list fuse-2 attr)) (native-inputs (list pkg-config python-pytest)) (synopsis "Python bindings for FUSE") @@ -24387,10 +24387,9 @@ commit, but it also includes some other useful statistics.") (let ((fuse (assoc-ref inputs "fuse"))) (substitute* "fuse.py" (("find_library\\('fuse'\\)") - (string-append "'" fuse "/lib/libfuse.so'"))) - #t)))))) + (string-append "'" fuse "/lib/libfuse.so'"))))))))) (propagated-inputs - (list fuse)) + (list fuse-2)) (home-page "https://github.com/fusepy/fusepy") (synopsis "Simple ctypes bindings for FUSE") (description "Python module that provides a simple interface to FUSE and @@ -24417,10 +24416,9 @@ MacFUSE. The binding is created using the standard @code{ctypes} library.") (let ((fuse (assoc-ref inputs "fuse"))) (substitute* "fusepyng.py" (("os.environ.get\\('FUSE_LIBRARY_PATH'\\)") - (string-append "\"" fuse "/lib/libfuse.so\"")))) - #t))))) + (string-append "\"" fuse "/lib/libfuse.so\""))))))))) (inputs - (list fuse)) + (list fuse-2)) (propagated-inputs (list python-paramiko)) (home-page "https://github.com/rianhunter/fusepyng") @@ -31962,10 +31960,10 @@ Psycopg 2 is both Unicode and Python 3 friendly.") (base32 "0cvybynv9igssfa4l13q09gb6m7afmwk34wsbq8jk14sqpd4dl92")))) (build-system python-build-system) (native-inputs (list pkg-config)) - (inputs (list fuse-3)) + (inputs (list fuse)) (propagated-inputs (list python-pytest-trio)) (home-page "https://github.com/libfuse/pyfuse3") - (synopsis "Python bindings FUSE 3") + (synopsis "Python bindings to FUSE 3") (description "This package provides Python 3 bindings for libfuse 3 with async I/O support.") (license license:gpl2+))) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index a79338f84e..e8654eee44 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -4005,6 +4005,7 @@ color-related widgets.") (substitute-keyword-arguments (package-arguments python-shiboken-2) ((#:phases p) #~(modify-phases #$p + (delete 'workaround-importlib-error) (replace 'use-shiboken-dir-only (lambda _ (chdir "sources/shiboken6"))))) ((#:configure-flags flags) diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index fc00e1c8ee..66f89508fb 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -1373,7 +1373,7 @@ for correctness.") (define-public hackrf (package (name "hackrf") - (version "2022.09.1") + (version "2023.01.1") (source (origin (method git-fetch) @@ -1382,7 +1382,7 @@ for correctness.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0m9j160q5zb3jimszv1lb6j76zf5lwijvpfl1k28d832rh847vvk")))) + (base32 "0ybgppwy09j9rmfhh84072li698k64w84q5hjrayc73avc495x6f")))) (build-system cmake-build-system) (arguments (list #:configure-flags diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 1f8c128eba..38e75bda98 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2020 Alexandros Theodotou <[email protected]> ;;; Copyright © 2023 Alexey Abramov <[email protected]> ;;; Copyright © 2023 Sharlatan Hellseher <[email protected]> +;;; Copyright © 2023 Vinicius Monego <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -628,6 +629,11 @@ RPC system. Think JSON, except binary. Or think Protocol Buffers, except faste (url "https://github.com/jcrist/msgspec") (commit version))) (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + ;; Delete autogenerated file, regenerate in a phase. + '(begin + (delete-file "msgspec/atof_consts.h"))) (sha256 (base32 "09q567klcv7ly60w9lqip2ffyhrij100ky9igh3p3vqwbml33zb3")))) @@ -645,7 +651,12 @@ RPC system. Think JSON, except binary. Or think Protocol Buffers, except faste (invoke "versioneer" "install") (substitute* "setup.py" (("version=versioneer.get_version\\(),") - (format #f "version=~s," #$version)))))))) + (format #f "version=~s," #$version))))) + (add-after 'versioneer 'atof-consts + (lambda _ + (with-directory-excursion "scripts" + ;; Regenerate the autogenerated file. + (invoke "python" "generate_atof_consts.py"))))))) (native-inputs (list python-attrs python-gcovr python-msgpack diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index cbeaa05b3d..abcb7c2f2a 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2021 Wiktor Żelazny <[email protected]> ;;; Copyright © 2022 Jose G Perez Taveras <[email protected]> ;;; Copyright © 2023 Timo Wilken <[email protected]> +;;; Copyright © 2023 Camilo Q.S. (Distopico) <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -482,7 +483,7 @@ are already there.") (define-public direnv (package (name "direnv") - (version "2.32.2") + (version "2.32.3") (source (origin (method git-fetch) (uri (git-reference @@ -491,7 +492,7 @@ are already there.") (file-name (git-file-name name version)) (sha256 (base32 - "17nn4qg1fj4i9rh1gdpbddn2nky71h9dkxyz5a4jsdq25bsx0ps2")))) + "1hyl67n7na19zm3ksiiyva4228alx0jfh9l3v1mxszn9prwgcfjc")))) (build-system go-build-system) (arguments '(#:import-path "github.com/direnv/direnv" diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm index 98faaed940..d0cef54c1d 100644 --- a/gnu/packages/spice.scm +++ b/gnu/packages/spice.scm @@ -386,16 +386,26 @@ share smart cards from client system to local or remote virtual machines.") (define-public virt-viewer (package (name "virt-viewer") + ;; XXX Remove the 'build-with-recent-meson phase when updating. (version "11.0") - (source (origin - (method url-fetch) - (uri (string-append - "https://virt-manager.org/download/sources/virt-viewer/" - "virt-viewer-" version ".tar.xz")) - (sha256 - (base32 - "1l5bv6x6j21l487mk3n93ai121gg62n6b069r2jpf72cbhra4gx4")))) + (source + (origin + (method url-fetch) + (uri (string-append + "https://virt-manager.org/download/sources/virt-viewer/" + "virt-viewer-" version ".tar.xz")) + (sha256 + (base32 "1l5bv6x6j21l487mk3n93ai121gg62n6b069r2jpf72cbhra4gx4")))) (build-system meson-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'build-with-recent-meson + ;; Fix ‘ERROR: Function does not take positional arguments.’ + (lambda _ + (substitute* "data/meson.build" + (("i18n\\.merge_file \\(.*" match) + (string-append match "#")))))))) (native-inputs (list `(,glib "bin") gettext-minimal diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 51c41bb0b8..dc620b13a1 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2129,7 +2129,7 @@ machine learning, computer vision, and high-dimensional statistics.") (define-public python-arviz (package (name "python-arviz") - (version "0.15.1") + (version "0.16.1") (source (origin (method git-fetch) ; PyPI misses some test files (uri (git-reference @@ -2138,7 +2138,7 @@ machine learning, computer vision, and high-dimensional statistics.") (file-name (git-file-name name version)) (sha256 (base32 - "0nqr4v927r9kc50z7rwlk2m8nw3dnnmmwmwcfijzd93gbg53wc4f")))) + "19phaqbpls82300z7ghicrldjxyjq4ilmmwsmd9zkl8c7ld5cb4j")))) (build-system pyproject-build-system) (arguments ;; FIXME: matplotlib tests fail because of the "--save" test flag. @@ -2177,7 +2177,7 @@ comparison and diagnostics.") (define-public python-pymc (package (name "python-pymc") - (version "5.5.0") + (version "5.6.1") (source (origin (method git-fetch) ; no tests in PyPI (uri (git-reference @@ -2186,7 +2186,7 @@ comparison and diagnostics.") (file-name (git-file-name name version)) (sha256 (base32 - "077xigv3lfcn9fqc14rsnam4v95fmqk2wpzfrgj08vg8m7f69wdj")))) + "0in5lw55camvgd6b4hiw4gr11bdy96jc74z1gvsd0xj7cfxvc043")))) (build-system pyproject-build-system) (arguments (list #:tests? #f ; tests are too computationally intensive diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm index f9b76b1d38..0dadd0914a 100644 --- a/gnu/packages/storage.scm +++ b/gnu/packages/storage.scm @@ -222,7 +222,7 @@ expat fcgi fmt-8 - fuse + fuse-2 icu4c jemalloc keyutils diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 28b5989d6a..8235332cb0 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -546,7 +546,7 @@ written in @command{scsh}. It makes use of @command{unison} and acl libselinux eudev - fuse + fuse-2 openssl zlib)) (synopsis "File synchronization and backup system") diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index f70a4302fd..44c5754d6d 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -1465,14 +1465,14 @@ highlighting for dozens of languages. Jed is very small and fast.") (define-public xnedit (package (name "xnedit") - (version "1.4.1") + (version "1.5.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/xnedit/" name "-" version ".tar.gz")) (sha256 (base32 - "0fw3li7hr47hckm9pl1njx30lfr6cx2p094ir8zmgr91hyxidgld")))) + "09wvhg7rywfj7njl2fkzdhgwlgxw358423yiv2ay3k5zhbysxfik")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 6a11cba42d..27be78b3ac 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1697,7 +1697,7 @@ visualize your public Git repositories on a web interface.") (define-public pre-commit (package (name "pre-commit") ;formerly known as python-pre-commit - (version "3.3.1") + (version "3.3.3") (source (origin (method git-fetch) ; no tests in PyPI release @@ -1706,7 +1706,7 @@ visualize your public Git repositories on a web interface.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1cssp1p8xmidiimcjfp799zlldbr6id8ar0sf5rs0dd44ns1j3yr")) + (base32 "1spkg3ld3s6l7wz24lcywlf1z2ywp751bcdlxjfdsln76bi9ylp8")) (modules '((guix build utils))) (snippet '(substitute* "setup.cfg" (("virtualenv>=20.10.0") ;our virtualenv (20.3.1) is fine diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e366f0d2e0..c35890e9d8 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1506,14 +1506,14 @@ quality and performance.") (define-public libva (package (name "libva") - (version "2.18.0") + (version "2.19.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/intel/libva/releases/download/" version "/libva-" version ".tar.bz2")) (sha256 - (base32 "10j9rm6ajgp3fda7pwl058lchdip0wq20bvydil28ff2l3mpwmx3")))) + (base32 "0x113spshsjcqh4pk8rkqq4r8vxf1nm83ym6ppp7zpsrsncfffwn")))) (build-system gnu-build-system) (native-inputs (list config pkg-config)) @@ -2099,7 +2099,7 @@ streaming protocols.") (define-public mplayer (package (name "mplayer") - (version "1.4") + (version "1.5") (source (origin (method url-fetch) (uri (string-append @@ -2107,80 +2107,82 @@ streaming protocols.") version ".tar.xz")) (sha256 (base32 - "0j5mflr0wnklxsvnpmxvk704hscyn2785hvvihj2i3a7b3anwnc2")))) + "11dzrdb74ayvivcid3giqncrfm98hi4aqvg3kjrwji6bnddxa335")))) (build-system gnu-build-system) - ;; FIXME: Add additional inputs once available. - (native-inputs - (list pkg-config yasm)) - (inputs - `(("alsa-lib" ,alsa-lib) - ("cdparanoia" ,cdparanoia) - ("ffmpeg" ,ffmpeg-4) - ("fontconfig" ,fontconfig) - ("freetype" ,freetype) - ("giflib" ,giflib) - ("lame" ,lame) - ("libass" ,libass) - ("libdvdcss" ,libdvdcss) - ("libdvdnav" ,libdvdnav) ; ignored without libdvdread - ("libdvdread" ,libdvdread) ; ignored without libdvdnav - ("libjpeg" ,libjpeg-turbo) - ("libmpeg2" ,libmpeg2) - ("libmpg123" ,mpg123) ; audio codec for MP3 - ("libpng" ,libpng) - ("libtheora" ,libtheora) - ("libvdpau" ,libvdpau) - ("libvorbis" ,libvorbis) - ("libx11" ,libx11) - ("libx264" ,libx264) - ("libxinerama" ,libxinerama) - ("libxv" ,libxv) - ("libxxf86dga" ,libxxf86dga) - ("mesa" ,mesa) - ("opus" ,opus) - ("perl" ,perl) - ("pulseaudio" ,pulseaudio) - ("python" ,python-wrapper) - ("sdl" ,sdl) - ("speex" ,speex) - ("zlib" ,zlib))) (arguments - `(#:tests? #f ; no test target - #:phases - (modify-phases %standard-phases - (replace 'configure - ;; configure does not work followed by "SHELL=..." and - ;; "CONFIG_SHELL=..."; set environment variables instead - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (libx11 (assoc-ref inputs "libx11"))) + (list + #:tests? #f ; no test target + #:configure-flags + #~(list (string-append "--prefix=" #$output) + "--disable-ffmpeg_a" ; disables bundled ffmpeg + "--disable-iwmmxt" + (string-append "--extra-cflags=-I" + #$(this-package-input "libx11") + "/include") ; to detect libx11 + + ;; Enable runtime cpu detection where supported, + ;; and choose a suitable target. + #$@(match (or (%current-target-system) + (%current-system)) + ("x86_64-linux" + '("--enable-runtime-cpudetection" + "--target=x86_64-linux")) + ("i686-linux" + '("--enable-runtime-cpudetection" + "--target=i686-linux")) + ("mips64el-linux" + '("--target=mips3-linux")) + (_ (list (string-append + "--target=" + (or (%current-target-system) + (nix-system->gnu-triplet + (%current-system)))))))) + #:phases + #~(modify-phases %standard-phases + (replace 'configure + ;; configure does not work followed by "SHELL=..." and + ;; "CONFIG_SHELL=..."; set environment variables instead + (lambda* (#:key (configure-flags '()) #:allow-other-keys) (substitute* "configure" (("#! /bin/sh") (string-append "#!" (which "sh")))) (setenv "SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash")) - (invoke "./configure" - (string-append "--extra-cflags=-I" - libx11 "/include") ; to detect libx11 - "--disable-ffmpeg_a" ; disables bundled ffmpeg - (string-append "--prefix=" out) - ;; Enable runtime cpu detection where supported, - ;; and choose a suitable target. - ,@(match (or (%current-target-system) - (%current-system)) - ("x86_64-linux" - '("--enable-runtime-cpudetection" - "--target=x86_64-linux")) - ("i686-linux" - '("--enable-runtime-cpudetection" - "--target=i686-linux")) - ("mips64el-linux" - '("--target=mips3-linux")) - (_ (list (string-append - "--target=" - (or (%current-target-system) - (nix-system->gnu-triplet - (%current-system))))))) - "--disable-iwmmxt"))))))) + (apply invoke "./configure" configure-flags)))))) + ;; FIXME: Add additional inputs once available. + (native-inputs + (list pkg-config yasm)) + (inputs + (list alsa-lib + cdparanoia + ffmpeg-4 + fontconfig + freetype + giflib + lame + libass + libdvdcss + libdvdnav ; ignored without libdvdread + libdvdread ; ignored without libdvdnav + libjpeg-turbo + libmpeg2 + mpg123 ; audio codec for MP3 + libpng + libtheora + libvdpau + libvorbis + libx11 + libx264 + libxinerama + libxv + libxxf86dga + mesa + opus + perl + pulseaudio + python-wrapper + sdl + speex + zlib)) (home-page "https://www.mplayerhq.hu") (synopsis "Audio and video player") (description "MPlayer is a movie player. It plays most MPEG/VOB, AVI, @@ -2192,7 +2194,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.35.1") + (version "0.36.0") (source (origin (method git-fetch) (uri (git-reference @@ -2200,7 +2202,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1lzaijqddr4ir9nb27cv9ki20b0k5jns2k47v4xvmi30v1gi71ha")))) + (base32 "1ri06h7pv6hrxmxxc618n9hymlgr0gfx38bqq5dcszdgnlashsgk")))) (build-system waf-build-system) (arguments (list @@ -2209,7 +2211,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (add-after 'unpack 'patch-file-names (lambda* (#:key inputs #:allow-other-keys) (substitute* "player/lua/ytdl_hook.lua" - (("\"yt-dlp\",") + (("\"yt-dlp\",") (string-append "\"" (search-input-file inputs "bin/yt-dlp") "\","))))) (add-before 'configure 'build-reproducibly @@ -3272,7 +3274,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (define-public mlt (package (name "mlt") - (version "7.16.0") + (version "7.18.0") (source (origin (method git-fetch) @@ -3281,7 +3283,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0aas3zjc9xh7sn01xv67fa26bzlz9sapbgzsplmikwc9lwfl5pqi")))) + (base32 "1b79wcf4l099w6bp4jlhgdwnbaydkrp8rj1hflggihzn3awcrayy")))) (build-system cmake-build-system) (arguments (list @@ -4840,7 +4842,7 @@ API. It includes bindings for Python, Ruby, and other languages.") (define-public openshot (package (name "openshot") - (version "3.1.0") + (version "3.1.1") (source (origin (method git-fetch) (uri (git-reference @@ -4849,7 +4851,7 @@ API. It includes bindings for Python, Ruby, and other languages.") (file-name (git-file-name name version)) (sha256 (base32 - "1m1mq8kws00mwijx8j5gqharkw63jqyywbnzsswgcxlhmsyv3k4v")) + "11wmcipcx5icjcw4vaai5z06p8xj1j39dwl6kkjn5db2y00gak4h")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 3f6c32f390..9556fbc61e 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -28,6 +28,7 @@ ;;; Copyright © 2022 Ekaitz Zarraga <[email protected]> ;;; Copyright © 2022 Arun Isaac <[email protected]> ;;; Copyright © 2022 Zhu Zihao <[email protected]> +;;; Copyright © 2023 Juliana Sims <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -96,6 +97,7 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages m4) + #:use-module (gnu packages man) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages nettle) @@ -160,15 +162,14 @@ (define-public qemu (package (name "qemu") - (version "7.2.1") + (version "7.2.4") (source (origin (method url-fetch) (uri (string-append "https://download.qemu.org/qemu-" version ".tar.xz")) (sha256 - (base32 - "0fypm8blv0la17vvlx6h38nhq2rpavflr9i9zsjl6ylxryd6k1cc")) + (base32 "0795l8xsy67fnh4mbdz40jm880iisd7q6d7ly6nfzpac3gjr8zyf")) (patches (search-patches "qemu-build-info-manual.patch" "qemu-disable-aarch64-migration-test.patch" "qemu-fix-agent-paths.patch")) @@ -1127,6 +1128,57 @@ Guix to build virtual machines.") Debian or a derivative using @command{debootstrap}.") (license license:gpl2+))) +(define-public rvvm + (package + (name "rvvm") + (version "0.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/LekKit/RVVM") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ldabcrmpa044bahpqa6ymwbhhwy69slh77f0m3421sq6j50l06p")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + ;; See src/rvjit/rvjit.h for list of architectures. + #~(#$@(if (or (target-x86?) + (target-arm?)) + #~'() + #~(list "-DRVVM_USE_JIT=NO"))) + #:modules `((srfi srfi-26) + (guix build utils) + (guix build cmake-build-system)) + #:phases + #~(modify-phases %standard-phases + ;; Install phase inspired by the Makefile. + (replace 'install + (lambda _ + (let ((src "../source/src/") + (incl (string-append #$output "/include/rvvm/"))) + (install-file "rvvm" (string-append #$output "/bin")) + (for-each + (cut install-file <> (string-append #$output "/lib")) + (find-files "." "\\.(so|a)$")) + (install-file (string-append src "rvvmlib.h") incl) + (for-each + (cut install-file <> (string-append incl "devices")) + (find-files (string-append src "devices") "\\.h$")))))) + #:tests? #f)) ; no tests + (home-page "https://github.com/LekKit/RVVM") + (synopsis "RISC-V virtual machine") + (description + "RVVM is a RISC-V CPU and system software implementation written in C. It +supports the entire RV64GC ISA, and it passes compliance tests for both RV64 and +RV32. OpenSBI, U-Boot, and custom firmwares boot and execute properly. It is +capable of running Linux, FreeBSD, OpenBSD, Haiku, and other OSes. Furthermore, +it emulates a variety of hardware and peripherals.") + (license (list license:gpl3+ license:mpl2.0)))) + (define-public spike (package (name "spike") @@ -1259,23 +1311,25 @@ manage system or application containers.") (define-public lxcfs (package (name "lxcfs") - (version "4.0.11") + (version "5.0.4") (home-page "https://github.com/lxc/lxcfs") - (source (origin - (method git-fetch) - (uri (git-reference (url home-page) - (commit (string-append "lxcfs-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "02cgzh97cgxh9iyf7gkn5ikdc0sfzqfjj6al0hikdf9rbwcscqwd")))) + (source + (origin + (method git-fetch) + (uri (git-reference (url home-page) + (commit (string-append "lxcfs-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15cc7kvnln4qqlv22hprfzmq89jbkx7yra730hap8wkvamn33sxy")))) + (build-system meson-build-system) (arguments - '(#:configure-flags '("--localstatedir=/var"))) + (list + #:configure-flags + #~(list "-Dinit-script=sysvinit"))) ; no ‘none’ option (native-inputs - (list autoconf automake libtool pkg-config)) + (list help2man pkg-config python python-jinja2)) (inputs (list fuse)) - (build-system gnu-build-system) (synopsis "FUSE-based file system for LXC") (description "LXCFS is a small FUSE file system written with the intention of making Linux containers feel more like a virtual machine. @@ -1448,7 +1502,7 @@ pretty simple, REST API.") (inputs (list acl attr - fuse + fuse-2 libxml2 eudev libpciaccess diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 866bf077fb..012d607b19 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -586,7 +586,7 @@ driven and does not detract you from your daily work.") (define-public nyxt (package (name "nyxt") - (version "3.4.0") + (version "3.5.0") (source (origin (method git-fetch) @@ -595,7 +595,7 @@ driven and does not detract you from your daily work.") (commit version))) (sha256 (base32 - "0k1vk3qj9sc3wa0yhx1ih8xq9864dd34hfk622zdmyx2f8q81qd3")) + "13ldi191ccxyxr3hjxyhnjl2vw365v0fhb1pqia7rg1gl3id47gz")) (file-name (git-file-name "nyxt" version)) (modules '((guix build utils))) (snippet diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ad5ec0aba7..e5fd081d27 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4824,8 +4824,8 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") license:freebsd-doc)))) ; documentation (define-public guix-data-service - (let ((commit "68850065d79ba05dad7201c3ed22f5e2e32680b7") - (revision "41")) + (let ((commit "1c7539418743e0dfe3a9cad22c414fd732daef8f") + (revision "42")) (package (name "guix-data-service") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -4837,64 +4837,63 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") (file-name (git-file-name name version)) (sha256 (base32 - "0y7a9jbbkzhlhmn639kgmzlkw927w4nrsafm1sj51mrblr5qk4lq")))) + "1gp4mhjssxky0jjjz916rfgz4w2f327wfd5ixb6lb00ydlfh5mws")))) (build-system gnu-build-system) (arguments - '(#:modules ((guix build utils) + (list + #:modules '((guix build utils) (guix build gnu-build-system) (ice-9 ftw) (ice-9 match) (ice-9 rdelim) (ice-9 popen)) - #:test-target "check-with-tmp-database" - #:phases - (modify-phases %standard-phases - (add-before 'build 'set-GUILE_AUTO_COMPILE - (lambda _ - ;; To avoid warnings relating to 'guild'. - (setenv "GUILE_AUTO_COMPILE" "0") - #t)) - (add-after 'install 'wrap-executable - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (guile (assoc-ref inputs "guile")) - (guile-effective-version - (read-line - (open-pipe* OPEN_READ - (string-append guile "/bin/guile") - "-c" "(display (effective-version))"))) - (scm (string-append out "/share/guile/site/" - guile-effective-version)) - (go (string-append out "/lib/guile/" - guile-effective-version - "/site-ccache"))) - (for-each - (lambda (file) - (simple-format (current-error-port) - "wrapping: ~A\n" - (string-append bin "/" file)) - (wrap-program (string-append bin "/" file) - `("PATH" ":" prefix - ,(cons* - bin - (map (lambda (input) - (string-append - (assoc-ref inputs input) - "/bin")) - '("ephemeralpg" - "util-linux" - "postgresql")))) - `("GUILE_LOAD_PATH" ":" prefix - (,scm ,(getenv "GUILE_LOAD_PATH"))) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix - (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))) - (scandir bin - (match-lambda - ((or "." "..") #f) - (_ #t)))) - #t))) - (delete 'strip)))) ; As the .go files aren't compatible + #:test-target "check-with-tmp-database" + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'set-GUILE_AUTO_COMPILE + (lambda _ + ;; To avoid warnings relating to 'guild'. + (setenv "GUILE_AUTO_COMPILE" "0"))) + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (guile (assoc-ref inputs "guile")) + (guile-effective-version + (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (scm (string-append out "/share/guile/site/" + guile-effective-version)) + (go (string-append out "/lib/guile/" + guile-effective-version + "/site-ccache"))) + (for-each + (lambda (file) + (simple-format (current-error-port) + "wrapping: ~A\n" + (string-append bin "/" file)) + (wrap-program (string-append bin "/" file) + `("PATH" ":" prefix + ,(cons* + bin + (map (lambda (input) + (string-append + (assoc-ref inputs input) + "/bin")) + '("ephemeralpg" + "util-linux" + "postgresql")))) + `("GUILE_LOAD_PATH" ":" prefix + (,scm ,(getenv "GUILE_LOAD_PATH"))) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix + (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))) + (scandir bin + (match-lambda + ((or "." "..") #f) + (_ #t))))))) + (delete 'strip)))) ; As the .go files aren't compatible (inputs (list ephemeralpg util-linux @@ -5959,6 +5958,14 @@ on the fly.") `(#:phases (modify-phases %standard-phases (add-before 'check 'pre-check (lambda _ + ;; Our grep is compiled without perl regexp support. So, + ;; rewrite the grep command to not use it. \t tab + ;; characters are supported only in perl regexps. So, + ;; put in literal tabs using printf instead. + (substitute* "src/tests/test32-proxy-authority.sh" + (("grep -Pq") "grep -q") + (("extension:\\\\tdefault") + "extension:$(printf '\\011')default")) ;; Most tests attempts to access hitch-tls.org which is ;; unavailable in the build container. Run them against ;; a dummy local web server instead. @@ -5976,8 +5983,7 @@ on the fly.") ;; process has shut down. (substitute* "src/tests/hitch_test.sh" (("kill -0 \"\\$HITCH_PID\"") - "$(ps -p $HITCH_PID -o state= | grep -qv '^Z$')")) - #t))))) + "$(ps -p $HITCH_PID -o state= | grep -qv '^Z$')"))))))) (native-inputs (list pkg-config diff --git a/gnu/services/audio.scm b/gnu/services/audio.scm index 690409b7a1..260abdefed 100644 --- a/gnu/services/audio.scm +++ b/gnu/services/audio.scm @@ -24,7 +24,8 @@ #:use-module (guix deprecation) #:use-module (guix diagnostics) #:use-module (guix i18n) - #:use-module (gnu services) + #:use-module (guix modules) + #:use-module ((gnu services) #:hide (delete)) #:use-module (gnu services admin) #:use-module (gnu services configuration) #:use-module (gnu services shepherd) @@ -143,7 +144,7 @@ ;; Helpers for deprecated field types, to be removed later. (define %lazy-group (make-symbol "%lazy-group")) -(define (%set-user-group user group) +(define (set-user-group user group) (user-account (inherit user) (group (user-group-name group)))) @@ -184,13 +185,15 @@ (define %mpd-user (user-account - (name "mpd") - (group %lazy-group) - (system? #t) - (comment "Music Player Daemon (MPD) user") - ;; MPD can use $HOME (or $XDG_CONFIG_HOME) to place its data - (home-directory "/var/lib/mpd") - (shell (file-append shadow "/sbin/nologin")))) + (name "mpd") + ;; XXX: This is a place-holder to be lazily substituted in (…-accounts) + ;; with the value from the 'group' field of <mpd-configuration>. + (group %lazy-group) + (system? #t) + (comment "Music Player Daemon (MPD) user") + ;; MPD can use $HOME (or $XDG_CONFIG_HOME) to place its data. + (home-directory "/var/lib/mpd") + (shell (file-append shadow "/sbin/nologin")))) (define %mpd-group (user-group @@ -235,10 +238,7 @@ user-account instead~%")) (user-account (inherit %mpd-user) - (name value) - ;; XXX: This is to be lazily substituted in (…-accounts) - ;; with the value from 'group'. - (group %lazy-group))) + (name value))) (else (configuration-field-error #f 'user value)))) @@ -253,6 +253,18 @@ user-group instead~%")) (else (configuration-field-error #f 'group value)))) +(define (mpd-log-file-sanitizer value) + (match value + (%unset-value + ;; XXX: While leaving the 'sys_log' option out of the mpd.conf file is + ;; supposed to cause logging to happen via systemd (elogind provides a + ;; compatible interface), this doesn't work (nothing gets logged); use + ;; syslog instead. + "syslog") + ((? string?) + value) + (_ (configuration-field-error #f 'log-file value)))) + ;;; ;; Generic MPD plugin record, lists only the most prevalent fields. @@ -350,15 +362,18 @@ open. This may be useful for streaming servers, when you don’t want to disconnect all listeners even when playback is accidentally stopped.") (mixer-type - (string "none") - "This field accepts a string that specifies which mixer should be used -for this audio output: the @code{hardware} mixer, the @code{software} -mixer, the @code{null} mixer (allows setting the volume, but with no -effect; this can be used as a trick to implement an external mixer -External Mixer) or no mixer (@code{none})." + maybe-string + "This field accepts a string that specifies which mixer should be used for +this audio output: the @code{hardware} mixer, the @code{software} mixer, the +@code{null} mixer (allows setting the volume, but with no effect; this can be +used as a trick to implement an external mixer External Mixer) or no +mixer (@code{none}). When left unspecified, a @code{hardware} mixer is used +for devices that support it." (sanitizer (lambda (x) ; TODO: deprecated, remove me later. (cond + ((eq? %unset-value x) + x) ((symbol? x) (warning (G_ "symbol value for 'mixer-type' is deprecated, \ use string instead~%")) @@ -425,16 +440,17 @@ will depend on." empty-serializer) (log-file - (maybe-string "/var/log/mpd/log") - "The location of the log file. Set to @code{syslog} to use the -local syslog daemon or @code{%unset-value} to omit this directive -from the configuration file.") + maybe-string + "The location of the log file. Unless specified, logs are sent to the +local syslog daemon. Alternatively, a log file name can be specified, for +example @file{/var/log/mpd.log}." + (sanitizer mpd-log-file-sanitizer)) (log-level maybe-string "Supress any messages below this threshold. -Available values: @code{notice}, @code{info}, @code{verbose}, -@code{warning} and @code{error}.") +The available values, in decreasing order of verbosity, are: @code{verbose}, +@code{info}, @code{notice}, @code{warning} and @code{error}.") (music-directory maybe-string @@ -456,7 +472,8 @@ Available values: @code{notice}, @code{info}, @code{verbose}, (db-file maybe-string - "The location of the music database.") + "The location of the music database. When left unspecified, +@file{~/.cache/db} is used.") (state-file maybe-string @@ -514,6 +531,11 @@ To use a Unix domain socket, an absolute path can be specified here." (serializer (lambda (_ x) (mpd-serialize-list-of-mpd-plugin "archive_plugin" x)))) + (auto-update? + maybe-boolean + "Whether to automatically update the music database when files are changed +in the @var{music-directory}.") + (input-cache-size maybe-string "MPD input cache size." @@ -563,44 +585,70 @@ appended to the configuration.") (serialize-configuration configuration mpd-configuration-fields))) (define (mpd-log-rotation config) - (match-record config <mpd-configuration> (log-file) - (log-rotation - (files (list log-file)) - (post-rotate #~(begin - (use-modules (gnu services herd)) - (with-shepherd-action 'mpd ('reopen) #f)))))) + (match-record config <mpd-configuration> + (log-file) + (if (string=? "syslog" log-file) + '() ;nothing to do + (list (log-rotation + (files (list log-file)) + (post-rotate #~(begin + (use-modules (gnu services herd)) + (with-shepherd-action 'mpd ('reopen) #f)))))))) (define (mpd-shepherd-service config) - (match-record config <mpd-configuration> (user package shepherd-requirement - log-file playlist-directory - db-file state-file sticker-file - environment-variables) + (match-record config <mpd-configuration> + (user package shepherd-requirement + log-file playlist-directory + db-file state-file sticker-file + environment-variables) (let ((config-file (mpd-serialize-configuration config)) (username (user-account-name user))) (shepherd-service (documentation "Run the MPD (Music Player Daemon)") - (requirement `(user-processes loopback ,@shepherd-requirement)) + (requirement `(user-processes loopback + ,@(if (string=? "syslog" log-file) + '(syslogd) + '()) + ,@shepherd-requirement)) (provision '(mpd)) - (start #~(begin - (and=> #$(maybe-value log-file) - (compose mkdir-p dirname)) - - (let ((user (getpw #$username))) - (for-each - (lambda (x) - (when (and x (not (file-exists? x))) - (mkdir-p x) - (chown x (passwd:uid user) (passwd:gid user)))) - (list #$(maybe-value playlist-directory) - (and=> #$(maybe-value db-file) dirname) - (and=> #$(maybe-value state-file) dirname) - (and=> #$(maybe-value sticker-file) dirname)))) - - (make-forkexec-constructor - (list #$(file-append package "/bin/mpd") - "--no-daemon" - #$config-file) - #:environment-variables '#$environment-variables))) + (start + (with-imported-modules (source-module-closure + '((gnu build activation))) + #~(begin + (use-modules (gnu build activation)) + + (let ((home #$(user-account-home-directory user))) + (let ((user (getpw #$username)) + (default-cache-dir (string-append home "/.cache"))) + + (define (init-directory directory) + (unless (file-exists? directory) + (mkdir-p/perms directory user #o755))) + + ;; Define a cache location that can be automatically used + ;; for the database file, in case it hasn't been explicitly + ;; specified. + (for-each + init-directory + (cons default-cache-dir + '#$(map dirname + ;; XXX: Delete the potential "syslog" + ;; log-file value, which is not a directory. + (delete "syslog" + (filter-map maybe-value + (list db-file + log-file + state-file + sticker-file))))))) + + (make-forkexec-constructor + (list #$(file-append package "/bin/mpd") "--no-daemon" + #$config-file) + #:environment-variables + ;; Set HOME so MPD can infer default paths, such as + ;; for the database file. + (cons (string-append "HOME=" home) + '#$environment-variables)))))) (stop #~(make-kill-destructor)) (actions (list (shepherd-configuration-action config-file) @@ -621,7 +669,7 @@ appended to the configuration.") (match-record config <mpd-configuration> (user group) ;; TODO: Deprecation code, to be removed. (let ((user (if (eq? (user-account-group user) %lazy-group) - (%set-user-group user group) + (set-user-group user group) user))) (list user group)))) @@ -632,10 +680,8 @@ appended to the configuration.") (extensions (list (service-extension shepherd-root-service-type (compose list mpd-shepherd-service)) - (service-extension account-service-type - mpd-accounts) - (service-extension rottlog-service-type - (compose list mpd-log-rotation)))) + (service-extension account-service-type mpd-accounts) + (service-extension rottlog-service-type mpd-log-rotation))) (default-value (mpd-configuration)))) @@ -660,12 +706,14 @@ appended to the configuration.") (define %mympd-user (user-account - (name "mympd") - (group %lazy-group) - (system? #t) - (comment "myMPD user") - (home-directory "/var/empty") - (shell (file-append shadow "/sbin/nologin")))) + (name "mympd") + ;; XXX: This is a place-holder to be lazily substituted in 'mympd-accounts' + ;; with the value from the 'group' field of <mympd-configuration>. + (group %lazy-group) + (system? #t) + (comment "myMPD user") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin")))) (define %mympd-group (user-group @@ -680,10 +728,7 @@ appended to the configuration.") user-account instead~%")) (user-account (inherit %mympd-user) - (name value) - ;; XXX: this is to be lazily substituted in (…-accounts) - ;; with the value from 'group'. - (group %lazy-group))) + (name value))) (else (configuration-field-error #f 'user value)))) @@ -697,8 +742,15 @@ user-group instead~%")) (name value))) (else (configuration-field-error #f 'group value)))) -;;; +(define (mympd-log-to-sanitizer value) + (match value + ('syslog + (warning (G_ "syslog symbol value for 'log-to' is deprecated~%")) + %unset-value) + ((or %unset-value (? string?)) + value) + (_ (configuration-field-error #f 'log-to value)))) ;; XXX: The serialization procedures are insufficient since we require ;; access to multiple fields at once. @@ -763,10 +815,11 @@ will depend on." "How much detail to include in logs, possible values: @code{0} to @code{7}.") (log-to - (string-or-symbol "/var/log/mympd/log") - "Where to send logs. By default, the service logs to -@file{/var/log/mympd.log}. The alternative is @code{'syslog}, which -sends output to the running syslog service under the @samp{daemon} facility." + maybe-string + "Where to send logs. Unless specified, the service logs to the local +syslog service under the @samp{daemon} facility. Alternatively, a log file +name can be specified, for example @file{/var/log/mympd.log}." + (sanitizer mympd-log-to-sanitizer) empty-serializer) (lualibs @@ -857,49 +910,58 @@ prompting a pin from the user.") filename-to-field))))) (define (mympd-shepherd-service config) - (match-record config <mympd-configuration> (package shepherd-requirement - user work-directory - cache-directory log-level log-to) - (let ((log-level* (format #f "MYMPD_LOGLEVEL=~a" log-level)) - (username (user-account-name user))) - (shepherd-service - (documentation "Run the myMPD daemon.") - (requirement `(loopback user-processes - ,@(if (eq? log-to 'syslog) - '(syslog) - '()) - ,@shepherd-requirement)) - (provision '(mympd)) - (start #~(begin - (let* ((pw (getpwnam #$username)) - (uid (passwd:uid pw)) - (gid (passwd:gid pw))) - (for-each (lambda (dir) - (mkdir-p dir) - (chown dir uid gid)) - (list #$work-directory #$cache-directory))) - - (make-forkexec-constructor - `(#$(file-append package "/bin/mympd") - "--user" #$username - #$@(if (eq? log-to 'syslog) '("--syslog") '()) - "--workdir" #$work-directory - "--cachedir" #$cache-directory) - #:environment-variables (list #$log-level*) - #:log-file #$(if (string? log-to) log-to #f)))) - (stop #~(make-kill-destructor)))))) + (match-record config <mympd-configuration> + (package shepherd-requirement user work-directory cache-directory + log-level log-to) + (shepherd-service + (documentation "Run the myMPD daemon.") + (requirement `(loopback user-processes + ,@(if (maybe-value-set? log-to) + '() + '(syslogd)) + ,@shepherd-requirement)) + (provision '(mympd)) + (start + (let ((username (user-account-name user))) + (with-imported-modules (source-module-closure + '((gnu build activation))) + #~(begin + (use-modules (gnu build activation)) + + (let ((user (getpw #$username))) + + (define (init-directory directory) + (unless (file-exists? directory) + (mkdir-p/perms directory user #o755))) + + (for-each init-directory + '#$(map dirname (filter-map maybe-value + (list log-to + work-directory + cache-directory))))) + + (make-forkexec-constructor + `(#$(file-append package "/bin/mympd") + "--user" #$username + #$@(if (eq? log-to 'syslog) '("--syslog") '()) + "--workdir" #$work-directory + "--cachedir" #$cache-directory) + #:environment-variables + (list #$(format #f "MYMPD_LOGLEVEL=~a" log-level)) + #:log-file #$(maybe-value log-to))))))))) (define (mympd-accounts config) (match-record config <mympd-configuration> (user group) ;; TODO: Deprecation code, to be removed. (let ((user (if (eq? (user-account-group user) %lazy-group) - (%set-user-group user group) + (set-user-group user group) user))) (list user group)))) (define (mympd-log-rotation config) - (match-record config <mympd-configuration> (log-to) - (if (string? log-to) + (match-record config <mympd-configuration> + (log-to) + (if (maybe-value-set? log-to) (list (log-rotation (files (list log-to)))) '()))) diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm index ef77458255..1450eedf37 100644 --- a/gnu/services/guix.scm +++ b/gnu/services/guix.scm @@ -708,11 +708,7 @@ ca-certificates.crt file in the system profile." (shepherd-service (documentation "Guix Data Service process jobs") (provision '(guix-data-service-process-jobs)) - (requirement '(postgres - networking - ;; Require guix-data-service, as that the database - ;; migrations are handled through this service - guix-data-service)) + (requirement '(postgres networking)) (start #~(make-forkexec-constructor (list #$(file-append package diff --git a/gnu/system.scm b/gnu/system.scm index 23addf41e9..5598643910 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -1244,7 +1244,7 @@ deprecated; use 'setuid-program' instead~%")) (file-append sudo "/bin/sudo") (file-append sudo "/bin/sudoedit") (file-append fuse "/bin/fusermount") - (file-append fuse-3 "/bin/fusermount3") + (file-append fuse "/bin/fusermount3") ;; To allow mounts with the "user" option, "mount" and "umount" must ;; be setuid-root. diff --git a/gnu/system/accounts.scm b/gnu/system/accounts.scm index 586cff1842..e37b733c6d 100644 --- a/gnu/system/accounts.scm +++ b/gnu/system/accounts.scm @@ -19,7 +19,8 @@ (define-module (gnu system accounts) #:use-module (guix records) #:use-module (ice-9 match) - #:export (user-account + #:export (<user-account> + user-account user-account? user-account-name user-account-password |