diff --git a/CODEOWNERS b/CODEOWNERS index 0c39857a5e5..1c81bec433f 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -240,7 +240,6 @@ guix/build-system/asdf\.scm @guix/lisp gnu/packages/anthy\.scm @guix/localization gnu/packages/fcitx5\.scm @guix/localization -gnu/packages/fcitx\.scm @guix/localization gnu/packages/fonts\.scm @guix/localization gnu/packages/ibus\.scm @guix/localization diff --git a/doc/guix.texi b/doc/guix.texi index 3bff8c4904d..2c4814a1011 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13983,7 +13983,7 @@ natively. @cindex building the dependents of a package @anchor{build-dependents} @item --dependents[=@var{depth}] -@itemx -P [@var{depth}] +@itemx -P @var{depth} Build the dependents of the following package. By default, build all the direct and indirect dependents; when @var{depth} is provided, limit to dependents at that distance: 1 for direct dependents, 2 for @@ -26956,23 +26956,46 @@ site} for more information. @defvar sane-service-type This service provides access to scanners @i{via} @uref{http://www.sane-project.org, SANE} by installing the necessary -udev rules. It is included in @code{%desktop-services} (@pxref{Desktop -Services}) and relies by default on @code{sane-backends-minimal} package -(see below) for hardware support. +udev rules and pluggable backends. It is included in +@code{%desktop-services} (@pxref{Desktop Services}) and relies by +default on @code{sane-backends} package (see below) for hardware +support. @end defvar -@defvar sane-backends-minimal -The default package which the @code{sane-service-type} installs. It -supports many recent scanners. -@end defvar +@deftp {Data Type} sane-configuration +Data type representing the configuration for SANE. -@defvar sane-backends -This package includes support for all scanners that -@code{sane-backends-minimal} supports, plus older Hewlett-Packard -scanners supported by @code{hplip} package. In order to use this on -a system which relies on @code{%desktop-services}, you may use -@code{modify-services} (@pxref{Service Reference, -@code{modify-services}}) as illustrated below: +@table @asis + +@item @code{sane} (default: @code{sane}) +Package containing SANE library. + +@item @code{backends} (default: @code{(sane-backends)}) +List of packages with pluggable SANE backends: + +@itemize @bullet +@item +@code{sane-backends}: The default backend collection which supports many recent scanners, + +@item +@code{sane-airscan}: A backend that enables network scanners supporting eSCL (Apple) or WSD, +(Microsoft) protocols + +@item +@code{hplip}: A backend containing drivers for older Hewlett-Packard scanners, + +@item +@code{utsushi}: A backend containing drivers for older Epson devices. + +@end itemize + +@end table +@end deftp + +In order to use additional backends on a system which relies on +@code{%desktop-services}, you may use @code{modify-services} +(@pxref{Service Reference, @code{modify-services}}) as illustrated +below: @lisp (use-modules (gnu)) @@ -26986,13 +27009,14 @@ a system which relies on @code{%desktop-services}, you may use (define %my-desktop-services ;; List of desktop services that supports a broader range of scanners. (modify-services %desktop-services - (sane-service-type _ => sane-backends))) + (sane-service-type _ => + (sane-configuration + (backends (list sane-backends sane-airscan)))))) (operating-system @dots{} (services %my-desktop-services)) @end lisp -@end defvar @deffn {Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()] Return a configuration allowing an application to access GeoClue diff --git a/etc/teams.scm b/etc/teams.scm index e50dec890e9..69057e16efa 100755 --- a/etc/teams.scm +++ b/etc/teams.scm @@ -797,7 +797,6 @@ asdf-build-system." "Localization of your system to specific languages." #:scope (list "gnu/packages/anthy.scm" "gnu/packages/fcitx5.scm" - "gnu/packages/fcitx.scm" "gnu/packages/fonts.scm" "gnu/packages/ibus.scm"))) diff --git a/gnu/local.mk b/gnu/local.mk index 1ef437c3a80..e50b6037db1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -276,7 +276,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/erlang-xyz.scm \ %D%/packages/esolangs.scm \ %D%/packages/fabric-management.scm \ - %D%/packages/fcitx.scm \ %D%/packages/fcitx5.scm \ %D%/packages/fediverse.scm \ %D%/packages/figlet.scm \ @@ -1137,7 +1136,7 @@ dist_patch_DATA = \ %D%/packages/patches/csvkit-set-locale-for-tests.patch \ %D%/packages/patches/ctranslate2-local-build.patch \ %D%/packages/patches/cube-nocheck.patch \ - %D%/packages/patches/cups-minimal-Address-PPD-injection-issues.patch \ + %D%/packages/patches/cups-relax-root-ownership-check.patch \ %D%/packages/patches/cura-engine-gcc-14.patch \ %D%/packages/patches/curl-CVE-2024-8096.patch \ %D%/packages/patches/curl-use-ssl-cert-env.patch \ @@ -1229,6 +1228,7 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-telega-path-placeholder.patch \ %D%/packages/patches/emacs-telega-test-env.patch \ %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \ + %D%/packages/patches/emacs-zoom-image-test-fix.patch \ %D%/packages/patches/enblend-enfuse-reproducible.patch \ %D%/packages/patches/enjarify-setup-py.patch \ %D%/packages/patches/enlightenment-fix-setuid-path.patch \ @@ -1554,6 +1554,7 @@ dist_patch_DATA = \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk-doc-respect-xml-catalog.patch \ + %D%/packages/patches/gtk-doc-mkhtml-test-fix.patch \ %D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ %D%/packages/patches/gtksourceview-2-add-default-directory.patch \ @@ -1604,6 +1605,7 @@ dist_patch_DATA = \ %D%/packages/patches/idris-test-ffi008.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ %D%/packages/patches/inferno-fix-crash.patch \ + %D%/packages/patches/inkscape-libxml2.patch \ %D%/packages/patches/instead-use-games-path.patch \ %D%/packages/patches/intltool-perl-compatibility.patch \ %D%/packages/patches/inetutils-hurd64.patch \ @@ -1675,6 +1677,7 @@ dist_patch_DATA = \ %D%/packages/patches/librewolf-use-system-wide-dir.patch \ %D%/packages/patches/libvirt-add-install-prefix.patch \ %D%/packages/patches/libvirt-respect-modules-path.patch \ + %D%/packages/patches/libzmf-doxygen-1.14.patch \ %D%/packages/patches/libziparchive-add-includes.patch \ %D%/packages/patches/lightdm-arguments-ordering.patch \ %D%/packages/patches/lightdm-vnc-ipv6.patch \ @@ -1747,6 +1750,7 @@ dist_patch_DATA = \ %D%/packages/patches/libofa-ftbfs-1.diff \ %D%/packages/patches/libofa-curl.diff \ %D%/packages/patches/libofa-ftbfs-2.diff \ + %D%/packages/patches/libosinfo-libxml2-fix.patch \ %D%/packages/patches/libotr-test-auth-fix.patch \ %D%/packages/patches/libksieve-Fix-missing-link-libraries.patch \ %D%/packages/patches/libmad-armv7-thumb-pt1.patch \ @@ -1787,7 +1791,6 @@ dist_patch_DATA = \ %D%/packages/patches/libxcb-path-max.patch \ %D%/packages/patches/libxml2-xpath0-Add-option-xpath0.patch \ %D%/packages/patches/libwpd-gcc-compat.patch \ - %D%/packages/patches/libxslt-generated-ids.patch \ %D%/packages/patches/libxt-guix-search-paths.patch \ %D%/packages/patches/lierolibre-check-unaligned-access.patch \ %D%/packages/patches/lierolibre-is-free-software.patch \ @@ -1830,6 +1833,7 @@ dist_patch_DATA = \ %D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/makem-replace-git.patch \ %D%/packages/patches/marisa-fix-MARISA_WORD_SIZE.patch \ + %D%/packages/patches/mash-add-missing-headers.patch \ %D%/packages/patches/mathjax-disable-webpack.patch \ %D%/packages/patches/mathjax-no-a11y.patch \ %D%/packages/patches/mathjax-3.1.2-no-a11y.patch \ @@ -2226,6 +2230,7 @@ dist_patch_DATA = \ %D%/packages/patches/rtosc-0.3.1-fix-invalid-comparison-operator.patch \ %D%/packages/patches/racket-chez-scheme-bin-sh.patch \ %D%/packages/patches/racket-launcher-config-dir.patch \ + %D%/packages/patches/raptor2-libxml2.patch \ %D%/packages/patches/racket-rktio-bin-sh.patch \ %D%/packages/patches/re2c-Use-maximum-alignment.patch \ %D%/packages/patches/reduce-unbundle-libffi.patch \ @@ -2261,6 +2266,7 @@ dist_patch_DATA = \ %D%/packages/patches/sage-safeguard-sage-getargspec-cython.patch \ %D%/packages/patches/sajson-for-gemmi-numbers-as-strings.patch \ %D%/packages/patches/sajson-build-with-gcc10.patch \ + %D%/packages/patches/sane-look-for-plugins-in-SANE_BACKEND_LIB_PATH.patch \ %D%/packages/patches/sbc-fix-build-non-x86.patch \ %D%/packages/patches/sbcl-fix-arm64-shared-lib.patch \ %D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \ @@ -2433,6 +2439,7 @@ dist_patch_DATA = \ %D%/packages/patches/vtk-7-gcc-11-compat.patch \ %D%/packages/patches/vtk-7-hdf5-compat.patch \ %D%/packages/patches/vtk-7-python-compat.patch \ + %D%/packages/patches/vulkan-tools-wayland-1.24.patch \ %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \ %D%/packages/patches/wcstools-extend-makefiles.patch \ %D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch \ diff --git a/gnu/packages/augeas.scm b/gnu/packages/augeas.scm index 0b3233e960e..8a784f48175 100644 --- a/gnu/packages/augeas.scm +++ b/gnu/packages/augeas.scm @@ -57,7 +57,7 @@ "1zzdp5bwnszza5q6cjw66hkicay8b49n5pda7cbcgfg4hbbzv2rn")))) (build-system gnu-build-system) (propagated-inputs - (list libxml2-next)) + (list libxml2)) (native-inputs (list readline pkg-config)) (home-page "https://augeas.net") diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 7c36ff22c94..84f2444004e 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020, 2023, 2024, 2025 Janneke Nieuwenhuizen ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2022 Marius Bakke +;;; Copyright © 2025 John Kehayias ;;; ;;; This file is part of GNU Guix. ;;; @@ -460,7 +461,13 @@ Makefile, simplifying the entire process for the developer.") '("t/tags-lisp-space.sh" ;; This test fails, probably a timestamp thing: ;; make: Nothing to be done for 'all'. - "t/remake-aclocal-version-mismatch.sh") + "t/remake-aclocal-version-mismatch.sh" + ;; Non-deterministic test failures: + "t/aclocal-autoconf-version-check.sh" + "t/backcompat2.sh" + "t/backcompat3.sh" + "t/nodef.sh" + "t/nodef2.sh") (("^#!.*" all) (string-append all "exit 77;\n"))))) #$@(if (%current-target-system) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 51a06c5413e..2b3367d5b2b 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -526,8 +526,6 @@ used to apply commands with arbitrarily long arguments.") "tests/split/fail.sh" ;; These tests error "tests/dd/nocache.sh" - ;; These tests can intermitently fail on btrfs - "tests/cp/reflink-auto.sh" ;; These tests fail "tests/cp/sparse.sh" "tests/cp/special-f.sh" @@ -573,6 +571,10 @@ used to apply commands with arbitrarily long arguments.") (("(^| )main *\\(.*" all) (string-append all "{\n exit (77);//")))) '()) + ;; These tests can fail on btrfs. + (substitute* "tests/cp/reflink-auto.sh" + (("^#!.*" all) + (string-append all "exit 77;\n"))) (substitute* "Makefile.in" ;; fails on filesystems where inotify cannot be used, ;; more info in #47935 diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 36078787149..9792e656e80 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7310,7 +7310,9 @@ trees (phylogenies) and characters.") (base32 "0w1p4l1jwg9kkifm0jsg33a212ps0jn61islmnng2afp77y5nkr6")))) (build-system pyproject-build-system) - (native-inputs (list python-setuptools python-setuptools-scm python-wheel)) + (arguments + (list #:test-flags #~(list "py2bitTest/test.py"))) + (native-inputs (list python-pytest python-setuptools python-setuptools-scm)) (home-page "https://github.com/dpryan79/py2bit") (synopsis "Access 2bit files using lib2bit") (description @@ -10463,7 +10465,7 @@ technology. Its features include: (define-public mash (package (name "mash") - (version "2.1") + (version "2.3") (source (origin (method git-fetch) (uri (git-reference @@ -10472,12 +10474,13 @@ technology. Its features include: (file-name (git-file-name name version)) (sha256 (base32 - "049hwcc059p2fd9vwndn63laifvvsi0wmv84i6y1fr79k15dxwy6")) + "00x4pvxwp3isf0qign1qmxwxc9rwzn5b3igjw9hyn3vx17bsx92q")) (modules '((guix build utils))) (snippet ;; Delete bundled kseq. ;; TODO: Also delete bundled murmurhash and open bloom filter. - '(delete-file "src/mash/kseq.h")))) + '(delete-file "src/mash/kseq.h")) + (patches (search-patches "mash-add-missing-headers.patch")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No tests. @@ -10496,7 +10499,8 @@ technology. Its features include: (lambda _ (substitute* '("src/mash/Sketch.cpp" "src/mash/CommandFind.cpp" - "src/mash/CommandScreen.cpp") + "src/mash/CommandScreen.cpp" + "src/mash/CommandTaxScreen.cpp") (("^#include \"kseq\\.h\"") "#include \"htslib/kseq.h\"")))) (add-after 'fix-includes 'use-c++14 @@ -20727,7 +20731,7 @@ efficiently.") (define-public python-hic2cool (package (name "python-hic2cool") - (version "0.8.3") + (version "1.0.1") ;; pypi sources do not contain the test_data directory and no test can be ;; run (source @@ -20739,32 +20743,15 @@ efficiently.") (file-name (git-file-name name version)) (sha256 (base32 - "0dlnf0qfcp4jrc1nyya32a035c13xicyq16bwfnwhbb9s47mz7gl")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; Two of the test-data files need to be writable. - (add-after 'unpack 'make-test-data-writable - (lambda _ - (for-each make-file-writable - (list "test_data/hic2cool_0.4.2_single_res.cool" - "test_data/hic2cool_0.7.0_multi_res.mcool")))) - ;; See https://github.com/4dn-dcic/hic2cool/issues/58 - (add-after 'unpack 'fix-incompatibility-with-h5py-3 - (lambda _ - (substitute* "test.py" - (("h5py.File\\(fname\\)") "h5py.File(fname, 'r')")) - (substitute* "hic2cool/hic2cool_updates.py" - (("h5py.File\\(writefile\\)") - "h5py.File(writefile, 'a')")))) - ;; These two tests fail for unknown reasons. - (add-after 'unpack 'disable-broken-tests - (lambda _ - (substitute* "test.py" - (("def test_convert") "def _test_convert"))))))) + "0k0i43z43rxbpna4hfci406ma906w893frfj3cha1n8drvhdql6c")))) + (build-system pyproject-build-system) + (native-inputs + (list python-poetry-core)) (propagated-inputs - (list python-cooler python-h5py python-numpy python-pandas + (list python-cooler + python-h5py + python-numpy + python-pandas python-scipy)) (home-page "https://github.com/4dn-dcic/hic2cool") (synopsis "Converter for .hic and .cool files") @@ -23605,7 +23592,7 @@ The output is in SAM format.") #$(this-package-input "libxml2") "/include/libxml2")))) (propagated-inputs - (list libxml2-next)) + (list libxml2)) (native-inputs (list check swig)) (home-page "https://sbml.org/Software/libSBML") diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index cae3673c8d4..62b383179db 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; Copyright © 2025 Aiden Isik ;;; Copyright © 2025 Josep Bigorra +;;; Copyright © 2025 John Kehayias ;;; ;;; This file is part of GNU Guix. ;;; @@ -308,7 +309,7 @@ files and generates build instructions for the Ninja build system.") (define-public meson (package (name "meson") - (version "1.5.2") + (version "1.9.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -316,8 +317,8 @@ files and generates build instructions for the Ninja build system.") version ".tar.gz")) (sha256 (base32 - "02wi62k9w7716xxdgrrx68q89vaq3ncnbpw5ms0g27npn2df0mgr")))) - (build-system python-build-system) + "13a9pj7d2mxgv5gbd78di4pb4w722vjis0vmk38m1vdm95v2f9yd")))) + (build-system pyproject-build-system) (arguments (list #:tests? #f ;disabled to avoid extra dependencies #:phases @@ -327,12 +328,14 @@ files and generates build instructions for the Ninja build system.") (replace 'wrap (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* (search-input-file outputs "bin/meson") - (("# EASY-INSTALL-ENTRY-SCRIPT") - (format #f "\ -import sys -sys.path.insert(0, '~a') -# EASY-INSTALL-ENTRY-SCRIPT" (site-packages inputs outputs))))))))) - (inputs (list python ninja/pinned)) + (("import sys" all) + (string-append + all "\n" + "sys.path.insert(0, '" + (site-packages inputs outputs) + "')")))))))) + (native-inputs (list python-setuptools)) + (inputs (list python ninja)) (home-page "https://mesonbuild.com/") (synopsis "Build system designed to be fast and user-friendly") (description diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index a24588f2ad6..c0a13082aff 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -31,7 +31,7 @@ ;;; Copyright © 2020 Antoine Côté ;;; Copyright © 2020 Arun Isaac ;;; Copyright © 2020 Magali Lemes -;;; Copyright © 2020, 2021, 2022, 2023 Simon Tournier +;;; Copyright © 2020-2023, 2025 Simon Tournier ;;; Copyright © 2020 Aniket Patil ;;; Copyright © 2021 Marcel Schilling ;;; Copyright © 2021 Guillaume Le Vaillant @@ -103,6 +103,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages networking) #:use-module (gnu packages node) + #:use-module (gnu packages ocr) #:use-module (gnu packages pcre) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) @@ -55433,6 +55434,36 @@ or animation) or multiple time series; methods for spatial and temporal matching or aggregation, retrieving coordinates, print, summary, etc.") (license license:gpl2+))) +(define-public r-tesseract + (package + (name "r-tesseract") + (version "5.2.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "tesseract" version)) + (sha256 + (base32 "181fbv1qhqxljr67phkrxahbfgsxa73gzq30zq0wvi38gzbfbnv8")))) + (properties `((upstream-name . "tesseract"))) + (build-system r-build-system) + (inputs (list tesseract-ocr + zlib)) + (propagated-inputs (list r-curl + r-digest + r-pdftools + r-rappdirs + r-rcpp)) + (native-inputs (list pkg-config + r-knitr + r-spelling)) + (home-page "https://github.com/ropensci/tesseract") + (synopsis "Open Source OCR Engine") + (description + "Bindings to @code{tesseract}: an optical character recognition (OCR) engine +that supports over 100 languages. The engine is highly configurable in order +to tune the detection algorithms and obtain the best possible results.") + (license license:asl2.0))) + (define-public r-gstat (package (name "r-gstat") diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 4155fb901ae..a6114427c80 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -1136,20 +1136,26 @@ trivial to build for local use. Portability is emphasized over performance.") (file-name (git-file-name name version)) (sha256 (base32 - "1d0cnd2s607j642h64821mpklfvvzy70mkyl2dlsm5s9lgvndn2p")) - (modules '((guix build utils))) - (snippet - ;; These files are pre-generated, the build system is able to - ;; re-generate those. - #~(for-each delete-file '("src/precomputed_ecmult.c" - "src/precomputed_ecmult_gen.c"))))) + "1d0cnd2s607j642h64821mpklfvvzy70mkyl2dlsm5s9lgvndn2p")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--enable-module-recovery" - "--enable-experimental" - "--enable-shared" - "--disable-static" - "--disable-benchmark"))) + (list #:configure-flags + #~(list + "--enable-module-recovery" + "--enable-experimental" + "--enable-shared" + "--disable-static" + "--disable-benchmark") + #:phases + (if (%current-target-system) + #~%standard-phases + #~(modify-phases %standard-phases + ;; These files are pre-generated, the build system is able to + ;; re-generate those if not cross-compiling, + (add-after 'unpack 'delete-precomputed-files + (lambda _ + (for-each delete-file '("src/precomputed_ecmult.c" + "src/precomputed_ecmult_gen.c")))))))) (native-inputs (list autoconf automake libtool)) (synopsis "C library for EC operations on curve secp256k1") diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index fcc63f3cad5..ad9779cb2e6 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2025 Lukas Gradl ;;; Copyright © 2025 Antoine Côté ;;; Copyright © 2024 Janneke Nieuwenhuizen +;;; Copyright © 2025 John Kehayias ;;; ;;; This file is part of GNU Guix. ;;; @@ -321,7 +322,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.") (define-public cups-minimal (package (name "cups-minimal") - (version "2.4.9") + (version "2.4.14") (source (origin (method git-fetch) @@ -331,8 +332,8 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.") ;; Avoid NAME confusion: these are the complete CUPS sources. (file-name (git-file-name "cups" version)) (sha256 - (base32 "08wjd1flyaslhnwvxl39403qi3g675rk532ysiyk6cda4r8ks1g1")) - (patches (search-patches "cups-minimal-Address-PPD-injection-issues.patch")))) + (base32 "1dk5salizxy1qm19gw93ffdd34hsn1cd4s57nwl7nfhwwirkiri2")) + (patches (search-patches "cups-relax-root-ownership-check.patch")))) (build-system gnu-build-system) (arguments (list #:configure-flags @@ -703,6 +704,14 @@ should only be used as part of the Guix cups-pk-helper service.") (string-append "rulessystemdir = " out "/lib/systemd/system")) (("/etc/sane.d") (string-append out "/etc/sane.d")))))) + (add-after 'install 'move-sane-config-to-dll.d + (lambda _ + ;; move dll.conf to dll.d - the directory intended for 3rd-party + ;; backend configurations. + (let ((dll.d (string-append #$output "/etc/sane.d/dll.d")) + (dll.conf (string-append #$output "/etc/sane.d/dll.conf"))) + (mkdir-p dll.d) + (rename-file dll.conf (string-append dll.d "/hpaio"))))) (add-after 'install 'install-models-dat (lambda* (#:key outputs #:allow-other-keys) (install-file "data/models/models.dat" @@ -751,7 +760,7 @@ should only be used as part of the Guix cups-pk-helper service.") python-pygobject python-pyqt python-wrapper - sane-backends-minimal + sane net-snmp openssl avahi @@ -789,7 +798,7 @@ should only be used as part of the Guix cups-pk-helper service.") dbus libjpeg-turbo libusb - sane-backends-minimal + sane zlib)) (synopsis "GUI-less version of hplip"))) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 547016c85ab..c5d90d900d2 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1173,7 +1173,7 @@ Language.") (define-public mariadb (package (name "mariadb") - (version "10.11.10") + (version "10.11.14") (source (origin (method url-fetch) (uri (string-append "https://downloads.mariadb.com/MariaDB" @@ -1181,7 +1181,7 @@ Language.") version ".tar.gz")) (sha256 (base32 - "08phlqcwcwl753zi2jv702q7b3h25d489289mflnm8c31djp8smh")) + "0bq5gn5yl3c6jnsamam4nb42y10c43ag764f7mkf7m5i9yqiqmwa")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 38e0e7bea6b..3f7b24aa478 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -528,7 +528,7 @@ server and embedded PowerPC, and S390 guests.") (package (inherit american-fuzzy-lop) (name "aflplusplus") - (version "4.32c") + (version "4.33c") (source (origin (method git-fetch) (uri (git-reference @@ -537,7 +537,7 @@ server and embedded PowerPC, and S390 guests.") (file-name (git-file-name name version)) (sha256 (base32 - "1a92mbwk51pih5jb944wqhvmbpy0acpxgvdfbq3c4xw7gisgn5qn")))) + "1h4ya82s1wd11c04r0g0wsq56asl1np3nmsf6yk4vyic9nm0hsq0")))) (arguments (substitute-keyword-arguments (package-arguments american-fuzzy-lop) ((#:make-flags _ ''()) diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index d9a97a9b0fa..b18e62e3db9 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -187,7 +187,7 @@ markup) can be customized and extended by the user.") (define-public doxygen (package (name "doxygen") - (version "1.9.8") + (version "1.14.0") (home-page "https://www.doxygen.nl/") (source (origin (method url-fetch) @@ -198,7 +198,7 @@ markup) can be customized and extended by the user.") ".src.tar.gz"))) (sha256 (base32 - "0qjgw7bnx668hpi4r8m366vsq118s9365zf8z4x5yjrqx0ld5qq5")))) + "0pbbdvc1zxps6mi58bry16rcrdw6b9gvf9nhv0kp60qkmc8nslyl")))) (build-system cmake-build-system) (native-inputs (list bison @@ -219,12 +219,15 @@ markup) can be customized and extended by the user.") #~'()) #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'disable-bibtex-test + (add-after 'unpack 'disable-some-tests (lambda _ - ;; Disable test that requires bibtex to avoid a - ;; circular dependency. (for-each delete-file-recursively - '("testing/012" "testing/012_cite.dox")))) + ;; Disable test that requires bibtex to avoid a + ;; circular dependency. + '("testing/012" "testing/012_cite.dox" + ;; Reported upstream, see + ;; . + "testing/009" "testing/009_bug.cpp")))) (add-before 'configure 'patch-sh (lambda* (#:key inputs #:allow-other-keys) (let ((/bin/sh (search-input-file inputs "/bin/sh"))) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 40558a4c6ca..0b435993ef4 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -243,7 +243,7 @@ object or archive file), @command{eu-strip} (for discarding symbols), (list pkg-config texinfo python-sphinx python)) (propagated-inputs (list elfutils ;libabigail.la says -lelf - libxml2-next)) ;in Requires.private of libabigail.pc + libxml2)) ;in Requires.private of libabigail.pc (synopsis "Analyze application binary interfaces (ABIs)") (description "@dfn{ABIGAIL} stands for the Application Binary Interface Generic diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 90e12e0690a..1c10acad067 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -9432,11 +9432,11 @@ inline PDF preview in Org buffers by using @command{pdf2svg}.") (license license:gpl3+))) (define-public emacs-org-rainbow-tags - ;; Upstream didn't tag version. - (let ((commit "c6040d228c5e8c5c6d33c7f81fc09d935ad1bcbd")) + (let ((commit "dfe36047bc9646b621452f3e2e97170e99e2b43f") + (revision "1")) (package (name "emacs-org-rainbow-tags") - (version "0.1-pre") + (version (git-version "0.1-pre" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -9445,7 +9445,7 @@ inline PDF preview in Org buffers by using @command{pdf2svg}.") (file-name (git-file-name name version)) (sha256 (base32 - "006nx01sby8k0fc9lf63ldf0sl94ihldyrvqr9r18fb1gpzvivl6")))) + "1rhgvbhsbm999l5kg19747dxwscd5h5sl330d6a422f0dxvvxqrq")))) (build-system emacs-build-system) (home-page "https://github.com/KaratasFurkan/org-rainbow-tags") (synopsis "Colorize Org tags automatically") diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 776c11a350f..5a7af4ea62c 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -158,7 +158,8 @@ "emacs-native-comp-driver-options.patch" "emacs-native-comp-fix-filenames.patch" "emacs-native-comp-pin-packages.patch" - "emacs-pgtk-super-key-fix.patch")) + "emacs-pgtk-super-key-fix.patch" + "emacs-zoom-image-test-fix.patch")) (modules '((guix build utils))) (snippet '(with-directory-excursion "lisp" diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 0d5748b3c0d..f398fab48b5 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1566,8 +1566,7 @@ use on a given system.") parallel perl pkg-config - python-wrapper - python-libxml2)) + python-wrapper)) (inputs (list pcre2)) (home-page "https://www.gnu.org/software/libredwg/") diff --git a/gnu/packages/fcitx.scm b/gnu/packages/fcitx.scm deleted file mode 100644 index 44d4d6f9203..00000000000 --- a/gnu/packages/fcitx.scm +++ /dev/null @@ -1,96 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Sou Bunnbu -;;; Copyright © 2019 Tobias Geerinckx-Rice -;;; Copyright © 2022 Maxim Cournoyer -;;; Copyright © 2023 Efraim Flashner -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (gnu packages fcitx) - #:use-module ((guix licenses) #:select (gpl2+)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system glib-or-gtk) - #:use-module (gnu packages autotools) - #:use-module (gnu packages documentation) - #:use-module (gnu packages gettext) - #:use-module (gnu packages glib) - #:use-module (gnu packages graphviz) - #:use-module (gnu packages gtk) - #:use-module (gnu packages man) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages python) - #:use-module (gnu packages sqlite) - #:use-module (gnu packages xml) - #:use-module (gnu packages xorg)) - -(define-public presage - (package - (name "presage") - (version "0.9.1") - (source - (origin - (method url-fetch) - (uri - (string-append "mirror://sourceforge/presage/presage/" - version "/presage-" version ".tar.gz")) - (sha256 - (base32 "0rm3b3zaf6bd7hia0lr1wyvi1rrvxkn7hg05r5r1saj0a3ingmay")))) - (build-system glib-or-gtk-build-system) - (outputs '("out" "doc")) - (arguments - `(#:configure-flags - (list - "CFLAGS=-Wno-narrowing -std=c++14" - "CXXFLAGS=-Wno-narrowing -std=c++14") - #:phases - (modify-phases %standard-phases - (add-after 'install 'move-doc - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - (mkdir-p (string-append doc "/share/presage")) - (rename-file - (string-append out "/share/presage/html") - (string-append doc "/share/presage/html"))))) - (add-after 'unpack 'update-config-scripts - (lambda* (#:key native-inputs inputs #:allow-other-keys) - (for-each (lambda (file) - (install-file - (search-input-file - (or native-inputs inputs) - (string-append "/bin/" file)) ".")) - '("config.guess" "config.sub"))))))) - (native-inputs - `(("config" ,config) - ("dot" ,graphviz) - ("doxygen" ,doxygen) - ("gettext" ,gettext-minimal) - ("glib:bin" ,glib "bin") - ("gtk+:bin" ,gtk+ "bin") - ("help2man" ,help2man) - ("pkg-config" ,pkg-config) - ("python-wrapper" ,python-wrapper))) - (inputs - (list glib gtk+ libx11 sqlite tinyxml)) - (synopsis "Intelligent Predictive Text Entry System") - (description "Presage generates predictions by modelling natural language as -a combination of redundant information sources. It computes probabilities for -words which are most likely to be entered next by merging predictions generated -by the different predictive algorithms.") - (home-page "https://presage.sourceforge.io/") - (license gpl2+))) - diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index ca107180ac5..d5589fba198 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -94,7 +94,6 @@ #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) - #:use-module (gnu packages fcitx) #:use-module (gnu packages file) #:use-module (gnu packages fontutils) #:use-module (gnu packages gawk) @@ -380,95 +379,6 @@ inappropriate content.") license:gpl2+ license:lgpl2.1+)))) -(define-public maliit-framework - (package - (name "maliit-framework") - (version "2.3.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/maliit/framework") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1dkjxvfxg56hfy70j6ibfklfyv57jiha4vgc3ggl60r5kjx65s5b")))) - (build-system cmake-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - ;; The Ft_MIMPluginManager::testPluginDescriptions test fails - ;; with a QFATAL error: received signal 11, while - ;; ut_mimpluginmanager fails at least on powerpc64le with a - ;; subprocess aborted error (see: - ;; https://github.com/maliit/framework/issues/120). - (invoke "ctest" "-E" - "(ft_mimpluginmanager|ut_mimpluginmanager)"))))))) - (native-inputs (list extra-cmake-modules - wayland-protocols - pkg-config - doxygen - graphviz - `(,glib "bin"))) ;for gdbus-codegen)) - (inputs (list qtbase-5 - qtdeclarative-5 - qtwayland-5 - wayland - libxkbcommon - dbus - eudev - glib)) - (home-page "https://github.com/maliit/framework") - (synopsis "Core libraries of Maliit") - (description "This package provides Maliit provides a flexible input -method framework.") - (license license:lgpl2.1+))) - -(define-public maliit-keyboard - (package - (name "maliit-keyboard") - (version "2.3.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/maliit/keyboard") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0g89lckl4wzwamc89hs8871fbiyrsjwzk5b6ic4vhc4d1clyqzaw")))) - (build-system cmake-build-system) - (arguments - (list #:tests? #f - #:phases #~(modify-phases %standard-phases - (add-after 'install 'install-schemas - (lambda* (#:key source outputs #:allow-other-keys) - (with-directory-excursion (string-append #$output - "/share/glib-2.0/schemas") - (invoke "glib-compile-schemas" "."))))))) - (native-inputs (list extra-cmake-modules pkg-config gettext-minimal - `(,glib "bin"))) - (inputs (list hunspell - glib - libchewing - libpinyin - maliit-framework - presage - qtbase-5 - qtdeclarative-5 - qtmultimedia-5 - qtquickcontrols2-5)) - (home-page "https://github.com/maliit/keyboard") - (synopsis "Maliit Keyboard") - (description - "This package provides virtual keyboard for Wayland and X11 -display servers. It supports many different languages and emoji.") - (license license:gpl3+))) - ;; Private package used by shared-mime-info. (define xdgmime ;; No public release, match commit to the one used in the @@ -676,7 +586,7 @@ freedesktop.org project.") ;; Updating this will rebuild over 700 packages through libinput-minimal. (package (name "libinput") - (version "1.26.2") + (version "1.29.0") (source (origin (method git-fetch) (uri (git-reference @@ -685,7 +595,7 @@ freedesktop.org project.") (file-name (git-file-name name version)) (sha256 (base32 - "1zwwq7a0a6yznc6jxhp6gb50yw5vpfkvgbrabrpc5pwldpckfbrg")))) + "1kgr18p7n9bvim9bx24jbr5nwp6icla3bgzfskr04f68mirmx561")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false") @@ -732,21 +642,6 @@ other applications that need to directly deal with input devices.") "-Ddebug-gui=false" ;requires gtk+@3 ,flags)))))) -;; TODO: Remove this package when libinput-minimal >= 1.28 -(define-public libinput-minimal-next - (package/inherit libinput-minimal - (name "libinput-minimal") - (version "1.28.903") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.freedesktop.org/libinput/libinput.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0i5yljdff4fjchpa8ifscbcssnmiim58ai1zy3v41vim2illprv5")))))) - (define-public libei (package (name "libei") @@ -1453,7 +1348,7 @@ in and for C++.") (define-public wayland (package (name "wayland") - (version "1.23.1") + (version "1.24.0") (source (origin (method url-fetch) (uri (string-append "https://gitlab.freedesktop.org/" name @@ -1461,12 +1356,11 @@ in and for C++.") name "-" version ".tar.xz")) (sha256 (base32 - "1vg5h6d94hglh7724q6wx9dpg4y0afvxksankp1hwbcy76lb4kw6")))) + "0dh5bldg24ajxz7xmylwm01nmj572x1vb0ya9qrppmhsl23j92c2")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments - (list #:parallel-tests? #f - #:phases + (list #:phases #~(modify-phases %standard-phases (add-after 'install 'move-doc (lambda _ @@ -1504,7 +1398,7 @@ fullscreen) or other display servers.") (define-public wayland-protocols (package (name "wayland-protocols") - (version "1.44") + (version "1.45") (source (origin (method git-fetch) (uri (git-reference @@ -1513,7 +1407,7 @@ fullscreen) or other display servers.") (file-name (git-file-name name version)) (sha256 (base32 - "1gjhfiah8hkhqlfan2pr8jvf9h8rjkyz79kkxddi8js2q7dy4bbq")))) + "1d2fv41vq75pvgkd3ykjypnp8zv0afv71p36cd91h19lbmwaia8h")))) (build-system meson-build-system) (inputs (list wayland)) @@ -2340,7 +2234,7 @@ between protocols to provide a unified interface for applications.") (inputs (list sqlite)) (propagated-inputs ;; telepathy-logger-0.2.pc refers to all these. - (list libxml2-next telepathy-glib)) + (list libxml2 telepathy-glib)) (synopsis "Telepathy logger library") (home-page "https://telepathy.freedesktop.org/") (description diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index d5da671ada6..89fa08ca316 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -244,7 +244,10 @@ provided, as well as a framework to add new color models and data types.") (base32 "0v2wa2a3vnz1g4z5h9s8ili5h5kzk95hxlcp0zlxkwgbf5img1sq")))) (build-system meson-build-system) (arguments - `(#:phases + `(#:configure-flags + ;; TODO: properly unbundle. + '("--wrap-mode=nodownload") + #:phases (modify-phases %standard-phases (add-after 'unpack 'extend-test-time-outs (lambda _ diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 38c0f5be546..60c3a094f4b 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -314,7 +314,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "25.1.3") + (version "25.2.3") (source (origin (method url-fetch) @@ -324,7 +324,7 @@ also known as DXTn or DXTC) for Mesa.") "mesa-" version ".tar.xz"))) (sha256 (base32 - "0zxsvly6xjinaicgcf81ycljjjzy3mj0hqwf01b6sdgxnnnnrjzz")))) + "1y5lj9zy2hfvx9ji1rvsjapmzap7mpp5i3pf2yfcpmpica2v5mpj")))) (build-system meson-build-system) (propagated-inputs ;; The following are in the Requires.private field of gl.pc. @@ -357,7 +357,6 @@ also known as DXTn or DXTC) for Mesa.") glslang libclc pkg-config - python-libxml2 ;for OpenGL ES 1.1 and 2.0 support python-mako python-ply python-pyyaml @@ -406,13 +405,12 @@ panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink")) "-Dglx=dri" ;Thread Local Storage, improves performance ;; "-Dopencl=true" ;; "-Domx=true" - "-Dosmesa=true" - "-Dgallium-xa=enabled" ;; features required by wayland "-Dgles2=enabled" "-Dgbm=enabled" "-Dshared-glapi=enabled" + "--wrap-mode=nodownload" ; XXX: disable #$@(cond ((target-x86-32?) @@ -439,6 +437,9 @@ panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink")) ;; Also enable the tests. "-Dbuild-tests=true" + ;; Re-enable X11 protocol support for the DRI2 extension. + "-Dlegacy-x11=dri2" + "-Dllvm=enabled") ; default is x86/x86_64 only ;; XXX: 'debugoptimized' causes LTO link failures on some drivers. The diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 8347359a846..acdf9268cda 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -770,7 +770,7 @@ The intltool collection can be used to do these things: "1jl7gsr7aclb9nvqazr039m86y7f7ivfhl2pixcrbfqjkb97r6kb")))) (build-system gnu-build-system) (inputs - (list bash-minimal libxml2 python-libxml2 python)) + (list bash-minimal libxml2 python)) (arguments (list #:phases @@ -858,7 +858,7 @@ by GDBus included in Glib.") pkg-config vala)) (inputs (list check python python-pygobject)) - (propagated-inputs (list glib libxml2-next sqlite)) + (propagated-inputs (list glib libxml2 sqlite)) (arguments (list #:tests? #f ;one test fails. #:imported-modules `((guix build python-build-system) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 084f84dfbdd..63b65d42482 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -443,7 +443,7 @@ services.") "/share/gtk-doc/html")))) (native-inputs (list docbook-xml-4.1.2 gobject-introspection gtk-doc/stable pkg-config)) - (propagated-inputs (list glib libsoup-minimal-2 libxml2-next-for-grafting)) + (propagated-inputs (list glib libsoup-minimal-2 libxml2)) (synopsis "Glib library for feeds") (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom, and other formats.") @@ -1223,7 +1223,7 @@ Library reference documentation.") ;; These inputs are required by the pkg-config file. (list glib libsoup - libxml2-next-for-grafting)) + libxml2)) (synopsis "WebDav server implementation using libsoup") (description "PhoDav was initially developed as a file-sharing mechanism for Spice, but it is generic enough to be reused in other projects, @@ -1433,7 +1433,7 @@ a debugging tool, @command{gssdp-device-sniffer}.") gsettings-desktop-schemas ;for ‘org.gnome.system.proxy’. gssdp libsoup - libxml2-next-for-grafting)) + libxml2)) (synopsis "PnP API for GNOME") (description "This package provides GUPnP, an object-oriented framework for creating UPnP devices and control points, written in C using @@ -2018,7 +2018,7 @@ and system administrators.") (inputs (list graphene gtk+ - libxml2-next-for-grafting + libxml2 libxslt poppler python-minimal @@ -2068,7 +2068,7 @@ formats like PNG, SVG, PDF and EPS.") ("json-glib" ,json-glib) ("liboauth" ,liboauth) ("libsoup" ,libsoup-minimal-2) - ("libxml2" ,libxml2-next-for-grafting))) + ("libxml2" ,libxml2))) (home-page "https://wiki.gnome.org/Projects/libgdata") (synopsis "Library for accessing online service APIs") (description @@ -3600,7 +3600,7 @@ XML/CSS rendering engine.") zlib)) (propagated-inputs (list glib - libxml2-next-for-grafting)) + libxml2)) (synopsis "G Structured File Library") (description "Libgsf aims to provide an efficient extensible I/O abstraction for dealing with different structured file formats.") @@ -3802,7 +3802,7 @@ diagrams.") `(,glib "bin") ; glib-mkenums, etc. gobject-introspection)) ; g-ir-compiler, etc. (inputs - (list pango libcroco libxml2)) + (list pango libcroco libxml2-2.11)) (propagated-inputs ;; librsvg-2.0.pc refers to all of that. (list cairo gdk-pixbuf glib)) @@ -4215,7 +4215,7 @@ ported to GTK+.") (inputs (list python)) ;; needed for the optional libglade-convert program (propagated-inputs - (list gtk+-2 libxml2-next-for-grafting)) ; required by libglade-2.0.pc + (list gtk+-2 libxml2)) ; required by libglade-2.0.pc (native-inputs (list pkg-config)) (home-page "https://developer.gnome.org/libglade") @@ -4254,7 +4254,7 @@ widgets built in the loading process.") ;; Therefore we must do it. (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))))))))) ;; Mentioned as Required by the .pc file - (propagated-inputs (list libxml2-next-for-grafting)) + (propagated-inputs (list libxml2)) (inputs (list popt pangox-compat libgnome libgnomecanvas libglade)) (native-inputs @@ -4911,7 +4911,7 @@ GLib and GObject, and integrates JSON with GLib data types.") ("libtool" ,libtool))) (propagated-inputs ;; Required by libxklavier.pc. - (list glib libxml2-next-for-grafting)) + (list glib libxml2)) (inputs (list iso-codes/pinned libxi libxkbfile xkbcomp xkeyboard-config)) (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/") @@ -5021,7 +5021,6 @@ files.") (define-public rest (package - (replacement rest/fixed) (name "rest") (version "0.8.1") (source (origin @@ -5050,13 +5049,6 @@ claim to be \"RESTful\". It includes convenience wrappers for libsoup and libxml to ease remote use of the RESTful API.") (license license:lgpl2.1+))) -(define-public rest/fixed - (package - (inherit rest) - (propagated-inputs - (modify-inputs (package-propagated-inputs rest) - (replace "libxml2" libxml2-next-for-grafting))))) - (define-public rest-next (package (inherit rest) @@ -5210,7 +5202,7 @@ as OpenStreetMap, OpenCycleMap, OpenAerialMap and Maps.") libpsl nghttp2 ;for pkg-config `(,nghttp2 "lib") - libxml2-next-for-grafting + libxml2 sqlite zlib)) (inputs @@ -5799,7 +5791,7 @@ output devices.") docbook-xsl gtk-doc/stable libxslt - sane-backends + sane vala))))) ;for VAPI, needed by simple-scan (define-public geoclue @@ -6018,7 +6010,7 @@ service via the system message bus.") (list gtk+ gdk-pixbuf json-glib - libxml2-next-for-grafting + libxml2 libsoup geocode-glib)) (inputs @@ -6137,7 +6129,7 @@ settings, themes, mouse settings, and startup of other daemons.") (list intltool `(,glib "bin") gobject-introspection pkg-config)) (propagated-inputs - (list glib gmime libarchive libgcrypt libxml2-next-for-grafting)) + (list glib gmime libarchive libgcrypt libxml2)) (inputs (list libsoup)) (home-page "https://projects.gnome.org/totem") @@ -7238,7 +7230,7 @@ USB transfers with your high-level application or system daemon.") gdk-pixbuf gusb libadwaita - sane-backends)) + sane)) (home-page "https://gitlab.gnome.org/GNOME/simple-scan") (synopsis "Document and image scanner") (description @@ -8122,7 +8114,7 @@ to display dialog boxes from the commandline and shell scripts.") libxext libxfixes libxkbcommon - libxml2-next-for-grafting + libxml2 libxrandr mesa pango @@ -8948,7 +8940,7 @@ the available networks and allows users to easily switch between them.") (base32 "0gp8irc5ny9i6bw9fp21p8djgksi1s8l5flbn5blisgfpcb2w820")))) (build-system gnu-build-system) (propagated-inputs - (list libxml2-next-for-grafting)) ;required by .pc file + (list libxml2)) ;required by .pc file (native-inputs (list autoconf automake @@ -9726,7 +9718,8 @@ easy, safe, and automatic.") #$output "/lib:" #$output "/lib/tracker-3.0") "-Ddocs=false" - "-Dsystemd_user_services=false") + "-Dsystemd_user_services=false" + "--wrap-mode=nodownload") ; XXX: to be disabled #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-paths @@ -13885,7 +13878,7 @@ developed with the aim of being used with the Librem 5 phone.") sqlite vala)) (propagated-inputs - (list libxml2-next-for-grafting)) ; required by libgda-5.0.pc + (list libxml2)) ; required by libgda-5.0.pc (home-page "https://gitlab.gnome.org/GNOME/libgda") (synopsis "Uniform data access") (description @@ -14000,7 +13993,7 @@ world.") ("python-pyenchant" ,python-pyenchant) ("python-reportlab" ,python-reportlab) ("python-sane" ,python-sane) - ("sane-backends" ,sane-backends) + ("sane" ,sane) ("tesseract-ocr" ,tesseract-ocr))) (home-page "https://wiki.gnome.org/Apps/OCRFeeder") (synopsis "Complete OCR Suite") diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm index cc12a5dbd7a..445059447d8 100644 --- a/gnu/packages/golang-build.scm +++ b/gnu/packages/golang-build.scm @@ -60,6 +60,75 @@ ;;; ;;; Code: +(define-public go-cel-dev-expr + (package + (name "go-cel-dev-expr") + (version "0.24.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/cel-spec") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0fzy5njwzg48h1mqbfhczyq6hxmbq3yzdivkjh1x8ipj19v4hvfl")))) + (build-system go-build-system) + (arguments + (list + #:import-path "cel.dev/expr")) + (propagated-inputs + (list go-google-golang-org-genproto-googleapis-rpc + go-google-golang-org-protobuf)) + (home-page "https://cel.dev/") + (synopsis "Common Expression Language") + (description + "The Common Expression Language (CEL) implements common semantics for +expression evaluation, enabling different applications to more easily +interoperate.") + (license license:asl2.0))) + +(define-public go-github-com-ebitengine-purego + (package + (name "go-github-com-ebitengine-purego") + (version "0.8.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ebitengine/purego") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sy5cn56wxwv1qpl6vg5160hlk004m5wdlf18rfnj63573f5kivh")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ebitengine/purego" + ;; TODO: This failed test should be proper checked. + ;; ld: + ;; /tmp/guix-build-go-github-com-ebitengine-purego-0.8.4.drv-0/ccguQKNs.o: + ;; relocation R_X86_64_32 against `.bss' can not be used when making a + ;; shared object; recompile with -fPIC ld: failed to set dynamic section + ;; sizes: bad value collect2: error: ld returned 1 exit status + #:test-flags #~(list "-skip" "TestNestedDlopenCall"))) + (home-page "https://github.com/ebitengine/purego") + (synopsis "Library for calling C functions from Go without Cgo") + (description + "This package provides a library for calling C functions from Go without +Cgo. + +Featues: +@itemize +@item build for other platforms easily without a C compiler +@item efficiently cache entirely Go builds +@item using Cgo generates a C wrapper function for each C function called +@item load symbols at runtime and use it as a plugin system +@item call into other languages that are compiled into shared objects +@item works even with @code{CGO_ENABLED=1} so incremental porting is possible +@end itemize") + (license license:asl2.0))) + (define-public go-github-com-goccmack-gocc (package (name "go-github-com-goccmack-gocc") diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm index 963bc942a9e..62f716d732b 100644 --- a/gnu/packages/golang-check.scm +++ b/gnu/packages/golang-check.scm @@ -289,6 +289,57 @@ for Golang projects via modular Makefiles and GitHub Actions.") in Golang.") (license license:expat))) +(define-public go-github-com-bsm-ginkgo-v2 + (package + (name "go-github-com-bsm-ginkgo-v2") + (version "2.12.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bsm/ginkgo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01k1j1bwdq23hs9zzbz9kdljvr6hzym53mqxh2gy0bz4lggcd6qs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/bsm/ginkgo/v2" + #:test-flags #~(list "-vet=off"))) + (home-page "https://github.com/bsm/ginkgo") + (synopsis "Straight copy of Ginkgo library") + (description + "This package is a straight copy of the excellent +@url{http://onsi.github.io/ginkgo/, Ginkgo} library, stripped to the bare core +to be free of third-party dependencies.") + (license license:expat))) + +(define-public go-github-com-bsm-gomega + (package + (name "go-github-com-bsm-gomega") + (version "1.27.10") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bsm/gomega") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0i7p85wsqv1j9aq052vdw006xq42n1rdgnk1lr6f5wnapwab2shz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/bsm/gomega")) + (home-page "https://github.com/bsm/gomega") + (synopsis "Straight copy of Gomega library") + (description + "This is a straight copy of the excellent +@url{http://onsi.github.io/gomega/, Gomega} library, stripped to the bare core +to be free of third-party dependencies.") + (license license:expat))) + (define-public go-github-com-caarlos0-testfs (package (name "go-github-com-caarlos0-testfs") diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 602d8262d86..feef60477a7 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -438,6 +438,73 @@ Signature headers are to be set (but not both). It's an alternative fork of @url{https://github.com/go-fed/httpsig}.") (license license:bsd-3))) +(define-public go-github-com-a-h-templ + (package + (name "go-github-com-a-h-templ") + (version "0.3.943") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/a-h/templ") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dqcdva7z53lhfv6ldjixwp4a363sr2cv5qm8rz2w7n8ba60m37f")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/a-h/templ/docs + ;; - github.com/a-h/templ/runtime/fuzzing + (delete-file-recursively "docs") + (delete-file-recursively "runtime/fuzzing"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/a-h/templ" + #:unpack-path "github.com/a-h/templ" + ;; TODO: Find out how to enable complete test suit, which might need + ;; gopls and other extra commands available in the PATH. + #:test-flags + #~(list "-skip" (string-join + (list "Test/css-1.css" + "Test/js-1.js" + "TestFormatting" + "TestIsAvailable/existing_commands_return_true") + "|")) + #:test-subdirs #~(list "internal/...") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key unpack-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" unpack-path) + (delete-file-recursively "examples"))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-a-h-parse + go-github-com-andybalholm-brotli + go-github-com-cenkalti-backoff-v4 + go-github-com-cli-browser + go-github-com-fatih-color + go-github-com-fsnotify-fsnotify + go-github-com-google-go-cmp + go-github-com-natefinch-atomic + go-github-com-rs-cors + go-golang-org-x-mod + go-golang-org-x-net + go-golang-org-x-sync + go-golang-org-x-tools)) + (home-page "https://templ.guide/") + (synopsis "Language for writing HTML user interfaces in Golang") + (description + "This package implements a functionality to create components that render +fragments of HTML and compose them to create screens, pages, documents, or +apps.") + (license license:expat))) + (define-public go-github-com-aki237-nscjar (package (name "go-github-com-aki237-nscjar") @@ -6556,6 +6623,30 @@ intends to be compatible with Avahi.") Block Storage for container, cloud and virtualisation.") (license license:asl2.0))) +(define-public go-github-com-lum8rjack-go-ja4h + (package + (name "go-github-com-lum8rjack-go-ja4h") + (version "0.0.0-20250828030157-fa5266d50650") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lum8rjack/go-ja4h") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "079qh3lj6a8jr90g170lc36b878hqfyi94azqs8fl0wnj2fzzcs3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lum8rjack/go-ja4h")) + (home-page "https://github.com/lum8rjack/go-ja4h") + (synopsis "JA4H Fingerprint in Golang") + (description + "This Package provides an implementation of the +@url{https://github.com/FoxIO-LLC/ja4, JA4HTTP (JA4H) hashing algorithm}.") + (license license:expat))) + (define-public go-github-com-macronut-go-tproxy (package (name "go-github-com-macronut-go-tproxy") @@ -9879,6 +9970,39 @@ information or even the peer of a VETH interface.") "Package jsonschema provides json-schema compilation and validation.") (license license:asl2.0))) +(define-public go-github-com-sebest-xff + (package + (name "go-github-com-sebest-xff") + (version "0.0.0-20210106013422-671bd2870b3a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sebest/xff") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06is8vvgxsis4sdr1d1n7p5g16x3rrw86qwkiwgamm5vnjkrvcdp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/sebest/xff" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "examples"))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/sebest/xff") + (synopsis "X-Forwarded-For middleware fo Golang") + (description + "Package @@code{xff} is a @code{net/http} middleware/handler to parse +@url{http://tools.ietf.org/html/rfc7239, Forwarded HTTP Extension} in +Golang.") + (license license:expat))) + (define-public go-github-com-sherclockholmes-webpush-go (package (name "go-github-com-sherclockholmes-webpush-go") @@ -13580,6 +13704,22 @@ carries no encryption keys and cannot decode the traffic that it proxies."))) (propagated-inputs '()) (inputs '()))) +(define-public templ + (package/inherit go-github-com-a-h-templ + (name "templ") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-a-h-templ) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:import-path _ "github.com/a-h/templ") + "github.com/a-h/templ/cmd/templ"))) + (native-inputs + (append (package-native-inputs go-github-com-a-h-templ) + (package-propagated-inputs go-github-com-a-h-templ))) + (propagated-inputs '()) + (inputs '()))) + (define-public xurls (package/inherit go-mvdan-cc-xurls-v2 (name "xurls") diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm index d64d5ff08b3..b81e611e3cc 100644 --- a/gnu/packages/golang-xyz.scm +++ b/gnu/packages/golang-xyz.scm @@ -751,6 +751,32 @@ Application Record Encoding} https://baremessages.org/ message format for Golang.") (license license:asl2.0))) +(define-public go-github-com-a-h-parse + (package + (name "go-github-com-a-h-parse") + (version "0.0.0-20250122154542-74294addb73e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/a-h/parse") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1warii2f9mrp5m2da9pn4chzd4y3fjlc3547va8xljfh09bvray4")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/a-h/parse")) + (native-inputs + (list go-github-com-google-go-cmp)) + (home-page "https://github.com/a-h/parse") + (synopsis "Parsing tools for Golang") + (description + "This package provides a set of parsing tools for Go inspired by +@url{https://github.com/sprache/Sprache/, Sprache}.") + (license license:expat))) + (define-public go-github-com-a8m-envsubst (package (name "go-github-com-a8m-envsubst") @@ -1609,6 +1635,34 @@ commands.") "This package implements optimal parameters for data-types.") (license license:expat))) +(define-public go-github-com-antlr4-go-antlr-v4 + (package + (name "go-github-com-antlr4-go-antlr-v4") + (version "4.13.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/antlr4-go/antlr") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1m5q00fvz28dgvv3ws924p6gamxm6gzqfm12f5ryhljifg22xq3d")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/antlr4-go/antlr/v4")) + (propagated-inputs + (list go-golang-org-x-exp)) + (home-page "https://github.com/antlr4-go/antlr") + (synopsis "ANTLR4 Go Runtime Module") + (description + "This package implements the Go version of the +@url{https://github.com/antlr/antlr4, ANTLR 4} runtime - ANother Tool for +Language Recognition, a parser generator that uses a LL algorithm for +parsing.") + (license license:bsd-3))) + (define-public go-github-com-apex-logs (package (name "go-github-com-apex-logs") @@ -4570,6 +4624,92 @@ dependencies and a simple API.") "This package provides a transport-agnostic, filesystem metadata manifest system.") (license license:asl2.0))) +(define-public go-github-com-containerd-errdefs + (package + (name "go-github-com-containerd-errdefs") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/containerd/errdefs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0afaljkkd388f6igr3f2vjnd14yr8h20fcfzglw8j5q1q7a1cvik")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/containerd/errdefs/pkg + (delete-file-recursively "pkg"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/containerd/errdefs")) + (home-page "https://github.com/containerd/errdefs") + (synopsis "Common definition and library of errors used by containerd") + (description + "Package errdefs defines the common errors used throughout containerd +packages.") + (license license:asl2.0))) + +(define-public go-github-com-containerd-errdefs-pkg + (package + (name "go-github-com-containerd-errdefs-pkg") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/containerd/errdefs") + (commit (go-version->git-ref version + #:subdir "pkg")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0afaljkkd388f6igr3f2vjnd14yr8h20fcfzglw8j5q1q7a1cvik")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (with-directory-excursion directory + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) + (items (scandir "." pred))) + (for-each (cut delete-file-recursively <>) items)))) + (delete-all-but "." "pkg"))))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/containerd/errdefs/pkg" + #:unpack-path "github.com/containerd/errdefs")) + (propagated-inputs + (list go-github-com-containerd-errdefs + go-github-com-containerd-typeurl-v2 + go-google-golang-org-genproto-googleapis-rpc + go-google-golang-org-grpc + go-google-golang-org-protobuf)) + (home-page "https://github.com/containerd/errdefs") + (synopsis "Addintional error handling modules for containerd") + (description + "This package provides an additinal Golang modules for error handling in +containerd projects. + +@itemize +@item errgrpc - provides utility functions for translating errors to and from +a gRPC context +@item errhttp - provides utility functions for translating errors to and from +a HTTP context +@end itemize") + (license license:asl2.0))) + (define-public go-github-com-containerd-fifo (package (name "go-github-com-containerd-fifo") @@ -7016,6 +7156,31 @@ in a consistent state and never represent an in-progress write.") ;; <...> (license license:bsd-3))) +(define-public go-github-com-facebookgo-flagenv + (package + (name "go-github-com-facebookgo-flagenv") + (version "0.0.0-20160425205200-fcd59fca7456") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/facebookarchive/flagenv") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0c7fw4y4gmdrn66dx7la637lx0hvs1w27x9j12wdx037n51r078g")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ;Tests require dated code + #:import-path "github.com/facebookgo/flagenv")) + (home-page "https://github.com/facebookgo/flagenv") + (synopsis "Populate flags from environment variables") + (description + "Package flagenv provides the ability to populate flags from environment +variables.") + (license license:bsd-3))) + (define-public go-github-com-facette-natsort (package (name "go-github-com-facette-natsort") @@ -8836,6 +9001,67 @@ This package contains a series of small enhancements and additions.") the resource usage and performance characteristics of running containers.") (license license:asl2.0)))) +(define-public go-github-com-google-cel-go + (package + (name "go-github-com-google-cel-go") + (version "0.26.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/cel-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hrdr9fzac0p7jrlbchz2qvdikr1szq5rg4sdsld7n849mmz8ypf")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/google/cel-go/codelab + ;; - github.com/google/cel-go/conformance + ;; - github.com/google/cel-go/policy + ;; - github.com/google/cel-go/repl/appengine + ;; - github.com/google/cel-go/repl + ;; - github.com/google/cel-go/tools + (for-each delete-file-recursively + (list "codelab" + "conformance" + "policy" + "repl/appengine" + "repl" + "tools" + "vendor")))))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/google/cel-go" + #:test-flags #~(list "-skip" "TestStringFormat") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "examples"))))))) + (propagated-inputs + (list go-cel-dev-expr + go-github-com-antlr4-go-antlr-v4 + go-github-com-stoewer-go-strcase + go-golang-org-x-text + go-google-golang-org-genproto-googleapis-api + go-google-golang-org-protobuf + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/google/cel-go") + (synopsis "Common Expression Language") + (description + "The Common Expression Language (CEL) is a non-Turing complete language +designed for simplicity, speed, safety, and portability. CEL's C-like +@url{https://github.com/google/cel-spec, syntax} looks nearly identical to +equivalent expressions in C++, Go, Java, and TypeScript.") + (license license:asl2.0))) + (define-public go-github-com-google-gnostic-models (package (name "go-github-com-google-gnostic-models") @@ -9221,6 +9447,31 @@ according @@url{https://rfc-editor.org/rfc/rfc8785.html, RFC 8785}.") "This package can generate ASCII line graphs in Golang.") (license license:bsd-3))) +(define-public go-github-com-h2non-filetype + (package + (name "go-github-com-h2non-filetype") + (version "1.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/h2non/filetype") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05xad4dfimlccg3hy0fpcns4fl7yj17dbpdf6ijwbp6k4ryzy9cm")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/h2non/filetype")) + (home-page "https://github.com/h2non/filetype") + (synopsis "Infer binary file types based on the magic numbers header signature") + (description + "This package implements a functionality to infer file and MIME type +checking the @url{https://en.wikipedia.org/wiki/Magic_number_(programming) +,magic numbers} signature.") + (license license:expat))) + (define-public go-github-com-h2non-parth (package (name "go-github-com-h2non-parth") @@ -14146,6 +14397,30 @@ the current user without cgo. This library does that, enabling cross-compilation.") (license license:expat))) +(define-public go-github-com-mitchellh-go-ps + (package + (name "go-github-com-mitchellh-go-ps") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mitchellh/go-ps") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ipcbz66x7q8xczi7cyfq06y7n7v0syvkp730vn9jrn7s8f5ag0z")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mitchellh/go-ps")) + (home-page "https://github.com/mitchellh/go-ps") + (synopsis "Process List Library for Golang") + (description + "This package provides an API for finding and listing processes in a +platform-agnostic way.") + (license license:expat))) + (define-public go-github-com-mitchellh-go-wordwrap (package (name "go-github-com-mitchellh-go-wordwrap") @@ -14299,6 +14574,29 @@ parsing.") "This directory contains documents about Docker Image Specification v1.X.") (license license:asl2.0))) +(define-public go-github-com-moby-spdystream + (package + (name "go-github-com-moby-spdystream") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moby/spdystream") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0p5pwwspmp24ff900656fyvrgdz8xxl6y0dk9fqgcaaaylmw0v9g")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/moby/spdystream")) + (home-page "https://github.com/moby/spdystream") + (synopsis "Multiplexed streams for Golang") + (description + "This package provides a multiplexed stream library using spdy.") + (license license:asl2.0))) + (define-public go-github-com-moby-sys-capability (package (name "go-github-com-moby-sys-capability") @@ -15145,6 +15443,31 @@ multibase} (self identifying base encodings) in Go.") varints.") (license license:expat))) +(define-public go-github-com-mxk-go-flowrate + (package + (name "go-github-com-mxk-go-flowrate") + (version "0.0.0-20140419014527-cca7078d478f") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mxk/go-flowrate") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zqs39923ja0yypdmiqk6x8pgmfs3ms5x5sl1dqv9z6zyx2xy541")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/mxk/go-flowrate")) + (home-page "https://github.com/mxk/go-flowrate") + (synopsis "Limiting and monitoring data flow rate in Golang") + (description + "This package provides the tools for monitoring and limiting the flow +rate of an arbitrary data stream.") + (license license:bsd-3))) + (define-public go-github-com-nakagami-firebirdsql (package (name "go-github-com-nakagami-firebirdsql") @@ -15179,6 +15502,30 @@ varints.") @url{https://firebirdsql.org/, Firebird} RDBMS.") (license license:expat))) +(define-public go-github-com-natefinch-atomic + (package + (name "go-github-com-natefinch-atomic") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/natefinch/atomic") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y1hr9smjfwp3zgn8s9njp84x9m42x3a7f1h2q7qyd0i5hf9bcvx")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/natefinch/atomic")) + (home-page "https://github.com/natefinch/atomic") + (synopsis "Atomic file writing in Golang") + (description + "This package provides functions to atomically change files, by writing +first to a temp file, and then overwriting the target file in an atomic way.") + (license license:expat))) + (define-public go-github-com-nathan-osman-go-sunrise (package (name "go-github-com-nathan-osman-go-sunrise") @@ -15336,6 +15683,38 @@ through it's psuedoterminal.") list of sentences.") (license license:expat))) +(define-public go-github-com-nicksnyder-go-i18n-v2 + (package + (name "go-github-com-nicksnyder-go-i18n-v2") + (version "2.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nicksnyder/go-i18n") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14v4v06j30rsn2y8lss7j5qyfbr7wir7yzpjd8wqh279aq489d2j")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/nicksnyder/go-i18n/v2" + ;; One test fails with error: open active.en.toml: permission denied. + #:test-flags #~(list "-skip" "TestMain/extract"))) + (propagated-inputs + (list go-github-com-burntsushi-toml + go-golang-org-x-text + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/nicksnyder/go-i18n") + (synopsis "Internationalization and localization for Golang") + (description + "This package provides support for implementing internationalization and +localization of Go code, covering pluralized strings for all 200+ languages in +@acronym{CLDR, Unicode Common Locale Data Repository}.") + (license license:expat))) + (define-public go-github-com-nightlyone-lockfile (package (name "go-github-com-nightlyone-lockfile") @@ -17206,6 +17585,58 @@ watches memory utilization and forces Go GC in accordance with a user-defined policy.") (license (list license:asl2.0 license:expat)))) +(define-public go-github-com-redis-go-redis-v9 + (package + (name "go-github-com-redis-go-redis-v9") + (version "9.13.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/redis/go-redis") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19scv5fbwacrbpv329w2a48z1w5wmxi7ax93bp1p398k4yqx6izf")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/redis/go-redis/extra/rediscensus/v9 + ;; - github.com/redis/go-redis/extra/rediscmd/v9 + ;; - github.com/redis/go-redis/extra/redisotel/v9 + ;; - github.com/redis/go-redis/extra/redisprometheus/v9 + ;; - github.com/redis/go-redis/internal/customvet + (delete-file-recursively "extra") + (delete-file-recursively "internal/customvet"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/redis/go-redis/v9" + #:test-flags + ;; Tests requir running Redis server. + #~(list "-skip" "Example|TestGinkgoSuite") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (delete-file-recursively + (string-append "src/" import-path "/example"))))))) + (native-inputs + (list go-github-com-bsm-ginkgo-v2 + go-github-com-bsm-gomega)) + (propagated-inputs + (list go-github-com-cespare-xxhash-v2 + go-github-com-dgryski-go-rendezvous)) + (home-page "https://github.com/redis/go-redis") + (synopsis "Redis client for Golang") + (description + "go-redis is the official Redis client library for the Go programming +language. It offers a straightforward interface for interacting with Redis +servers.") + (license license:bsd-2))) + (define-public go-github-com-reiver-go-porterstemmer ;; The latest commit contain test fixtures. (let ((commit "ab0f922907ea0321367a5776bd7a6c35d505d53b") @@ -22665,6 +23096,32 @@ machine readable. It is modeled after the Go standard library's @code{io} and go-github-com-mattn-go-colorable go-golang-org-x-term)))) +(define-public go-gopkg-in-inf-v0 + (package + (name "go-gopkg-in-inf-v0") + (version "0.9.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-inf/inf") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00k5iqjcp371fllqxncv7jkf80hn1zww92zm78cclbcn4ybigkng")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gopkg.in/inf.v0" + ;; Tests are not copatiblw with Go 1.24+. + #:test-flags #~(list "-vet=off"))) + (home-page "https://github.com/go-inf/inf") + (synopsis "Infinite precision decimal arithmetic in Golang") + (description + "This package (type @code{inf.Dec}) implements a \"infinite-precision\" +decimal arithmetic.") + (license license:expat))) + (define-public go-gopkg-in-ini-v1 (package (name "go-gopkg-in-ini-v1") @@ -22977,6 +23434,61 @@ dependencies.") XML, Apple Binary, OpenStep, and GNUStep) from/to arbitrary Go types.") (license license:giftware))) +(define-public go-k8s-io-apimachinery + (package + (name "go-k8s-io-apimachinery") + (version "0.34.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kubernetes/apimachinery") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mdmw951k9a2v817c0xxlazvz2500lw80mh53xjwspss0yx9b8fb")))) + (build-system go-build-system) + (arguments + (list + #:import-path "k8s.io/apimachinery" + ;; TODO: Check why some tests fails in other subdirectories. + #:test-subdirs #~(list "pkg/test/..."))) + (native-inputs + (list go-github-com-armon-go-socks5 + go-github-com-stretchr-testify + go-golang-org-x-time)) + (propagated-inputs + (list go-github-com-davecgh-go-spew + go-github-com-fxamacker-cbor-v2 + go-github-com-gogo-protobuf + go-github-com-google-gnostic-models + go-github-com-google-go-cmp + go-github-com-google-uuid + go-github-com-moby-spdystream + go-github-com-mxk-go-flowrate + go-github-com-pmezard-go-difflib + go-github-com-spf13-pflag + go-golang-org-x-net + go-gopkg-in-evanphx-json-patch-v4 + go-gopkg-in-inf-v0 + go-k8s-io-klog-v2 + go-k8s-io-kube-openapi + go-k8s-io-utils + go-sigs-k8s-io-json + go-sigs-k8s-io-randfill + go-sigs-k8s-io-structured-merge-diff-v6 + go-sigs-k8s-io-yaml)) + (home-page "https://k8s.io/apimachinery") + (synopsis "Kubernetes and Kubernetes-like API utilities") + (description + "This package provides scheme, typing, encoding, decoding, and conversion +functions for Kubernetes and Kubernetes-like API objects. It is a shared +dependency for servers and clients to work with Kubernetes API infrastructure +without direct type dependencies. Its first consumers are +@code{k8s.io/kubernetes}, @code{k8s.io/client-go}, and +@code{k8s.io/apiserver}.") + (license license:asl2.0))) + (define-public go-k8s-io-gengo-v2 (package (name "go-k8s-io-gengo-v2") @@ -23549,6 +24061,61 @@ prints the Go version used to build that executable.") unmarshaling functions based on @code{encoding/json} @code{Unmarshal()}.") (license license:asl2.0))) +(define-public go-sigs-k8s-io-kustomize-cmd-config + (package + (name "go-sigs-k8s-io-kustomize-cmd-config") + (version "0.20.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kubernetes-sigs/kustomize") + (commit (go-version->git-ref version + #:subdir "cmd/config")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12n8ij4gisah5mvxcgq263iic61gjpxdj3ml03826zckzn7wlv46")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (with-directory-excursion directory + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) + (items (scandir "." pred))) + (for-each (cut delete-file-recursively <>) items)))) + (delete-all-but "." "cmd") + (delete-all-but "cmd" "config"))))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "sigs.k8s.io/kustomize/cmd/config" + #:unpack-path "sigs.k8s.io/kustomize" + ;; Full test suite requires Docker in the PATH. + #:test-subdirs #~(list "internal/commands" + "runner/..."))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-go-errors-errors + go-github-com-spf13-cobra + go-gopkg-in-inf-v0 + go-sigs-k8s-io-kustomize-kyaml)) + (home-page "https://sigs.k8s.io/kustomize") + (synopsis "Kubernetes config filters") + (description + "This package implements a functionality to expose Kubernetes config +filters directly as CLI commands for the purposes of development of the +@code{kyaml} package and as a reference implementation for using the +libraries.") + (license license:asl2.0))) + (define-public go-sigs-k8s-io-kustomize-kyaml (package (name "go-sigs-k8s-io-kustomize-kyaml") diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index f023947f97f..7f8e6c159ac 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -374,7 +374,7 @@ arrays of data.") (define-public gstreamer-docs (package (name "gstreamer-docs") - (version "1.24.9") + (version "1.26.3") (source (origin (method url-fetch) (uri (string-append @@ -382,7 +382,7 @@ arrays of data.") "/gstreamer-docs-" version ".tar.xz")) (sha256 (base32 - "0vb4d35rglvjlj2y9r0nlgankflqw0ql6gwsf4612505sa01mz7s")))) + "11q0yydchisd4c0jnqa6kmnf66kf25fim3l456krlwcy1qpsvd4j")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -434,7 +434,7 @@ the GStreamer multimedia framework.") (define-public gstreamer (package (name "gstreamer") - (version "1.24.9") + (version "1.26.3") (source (origin (method url-fetch) @@ -443,7 +443,7 @@ the GStreamer multimedia framework.") version ".tar.xz")) (sha256 (base32 - "03r6rwmih3nqxrfw9nkhpbwpwp1yf7qw3m2phl6a027mxrmppx7b")))) + "1016z0znl2j43n08rl19zdhfvfsgnmg44qh8fk6dr4qj481icrnw")))) (build-system meson-build-system) (arguments (list #:disallowed-references (list python) @@ -515,7 +515,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.24.9") + (version "1.26.3") (source (origin (method url-fetch) @@ -523,7 +523,7 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "1jspg24zlpmg4bxa298v6l8hcaqw27411dj2v16y0g3xj13bkcsv")))) + "0cvrq9767w0aqzinifbirbc95jg4i4md4b8f4b70hlq217pzkyaf")))) (build-system meson-build-system) (propagated-inputs (list glib ;required by gstreamer-sdp-1.0.pc @@ -623,7 +623,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.24.9") + (version "1.26.3") (source (origin (method url-fetch) @@ -632,7 +632,7 @@ for the GStreamer multimedia library.") "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "17vr55pgh2paqi82l5jn841873c2w0lal7kgz2i3qzikzw5yazc9")))) + (base32 "0lrwscda9yy8a61bv65c3392vb5m8phrl5i7bwgbprnz1rkwjkpy")))) (build-system meson-build-system) (arguments (list @@ -743,14 +743,14 @@ model to base your own plug-in on, here it is.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.24.9") + (version "1.26.3") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "1aswb97v1ird3rmfcsa32bvp4kgp8r987f83pd1knx8amylzgz1n")) + "0qbmblksgl2nmbi6brw54b1bzziw9flvqk2zb576y9qlmyn8vi4m")) (modules '((guix build utils))) (snippet '(begin @@ -814,7 +814,13 @@ model to base your own plug-in on, here it is.") ((".*elements/dtls\\.c.*") "") ;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3921 - ((".*elements/mxfdemux\\.c.*") "")) + ((".*elements/mxfdemux\\.c.*") "") + + ;; Unable to create pipeline 'bin. + ;; ( vulkanupload ! vulkancolorconvert ! vulkandownload )': + ;; no element "vulkanupload" + ((".*elements/vkcolorconvert\\.c.*") "") + ((".*elements/vkupload\\.c.*") "")) (substitute* "tests/check/elements/zxing.c" ;; zxing 1.2.0 seemingly changed the type representation of ;; the EAN_13 structure; disable it. @@ -953,7 +959,7 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.24.9") + (version "1.26.3") (source (origin (method url-fetch) @@ -961,7 +967,7 @@ par compared to the rest.") (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "1dn33ivfc0rnn545y40303h5z9bm5ca9f8j2czmhbk9q1w8k0ssb")))) + (base32 "19fvv6rvrcvhw4lnx078xb4b85pzbwbrqwdk841sqd7pjpl5wzs1")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas @@ -1010,7 +1016,7 @@ think twice about shipping them.") (define-public gst-libav (package (name "gst-libav") - (version "1.24.9") + (version "1.26.3") (source (origin (method url-fetch) @@ -1019,7 +1025,7 @@ think twice about shipping them.") "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "0v253lbic7abc9vpb690f80arql10193ljqkzgs03vh8wnd2ws1j")))) + (base32 "0kbjs8z545maj3j2qzgpg41v3yr53q1c852v80zbmf5rld87xnis")))) (build-system meson-build-system) (native-inputs (list perl pkg-config python-wrapper ruby)) (inputs (list ffmpeg)) @@ -1033,7 +1039,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") (define-public gst-editing-services (package (name "gst-editing-services") - (version "1.24.9") + (version "1.26.3") (source (origin (method url-fetch) (uri (string-append @@ -1041,7 +1047,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") "gst-editing-services-" version ".tar.xz")) (sha256 (base32 - "04khlbw3wy5zr2s246252zrd4hnzv2x36l5avz0lxif6pr9nwl07")))) + "1lkgs5h76qzqfpqvi31vs5xr68bbi0kwkw2g0ahvcs1l5hysj86x")))) (build-system meson-build-system) (arguments (list @@ -1100,10 +1106,45 @@ given, also pass them to the build system instead of the ones used by PKG." \"bad\" plugin set, essentially containing libraries and the gst-transcoder binary, but none of the actual plugins."))) +(define-public gst-rtsp-server + (package + (name "gst-rtsp-server") + (version "1.26.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "1ibg83sa0nswqan5fg378bg36jis5sn1dwfl1mvqjiw4m59qlpj1")))) + (build-system meson-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-failing-tests + (lambda _ + (define failing + (list "client" "media" "mediafactory" "rtspserver" + "sessionmedia" "stream" "onvif" "rtspclientsink")) + (substitute* "tests/check/meson.build" + (("'gst/(.*)',?" all test) + (if (member test failing) "" all)))))))) + (propagated-inputs + (list gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad)) + (native-inputs (list gobject-introspection + `(,glib "bin") + pkg-config + python-wrapper)) + (home-page "https://gstreamer.freedesktop.org/") + (synopsis "Library for building RTSP servers with GStreamer") + (description "This package provides a GStreamer extension to handle +RTSP connections and messages.") + (license license:lgpl2.0+))) + (define-public python-gst (package (name "python-gst") - (version "1.24.9") + (version "1.26.3") (source (origin (method url-fetch) (uri (string-append @@ -1111,7 +1152,7 @@ binary, but none of the actual plugins."))) "gst-python-" version ".tar.xz")) (sha256 (base32 - "0bplhfnvsi3l9fmfb346n2dvzi1jrxqpp4kcwiwsrjrlgic1vrl0")))) + "04hv5pj8br56knvw1nsx74j1lpxskbm6znsdqac28iszqjkvjhwk")))) (build-system meson-build-system) (arguments (list @@ -1127,7 +1168,10 @@ binary, but none of the actual plugins."))) (native-inputs (list pkg-config python)) (propagated-inputs - (list gst-plugins-base python-pygobject)) + (list gst-plugins-base + gst-plugins-bad ; for gst-analytics + gst-rtsp-server + python-pygobject)) (home-page "https://gstreamer.freedesktop.org/") (synopsis "GStreamer GObject Introspection overrides for Python") (description diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 002bbe17fef..b1193ff4205 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -36,7 +36,7 @@ ;;; Copyright © 2023 Sergiu Ivanov ;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023, 2025 Janneke Nieuwenhuizen -;;; Copyright © 2024 John Kehayias +;;; Copyright © 2024, 2025 John Kehayias ;;; Copyright © 2025 Florian Pelz ;;; Copyright © 2025 Remco van 't Veer ;;; @@ -613,7 +613,7 @@ diagrams.") fribidi glib gtk - libxml2-next + libxml2 pango pcre2)) (home-page "https://wiki.gnome.org/Projects/GtkSourceView") @@ -1009,19 +1009,19 @@ application suites.") (package (inherit gtk+-2) (name "gtk+") - (version "3.24.43") - (replacement gtk+/fixed) - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "1izky8dxaxp4bg5nii4n58dgpkw79mvmvbkldf04n0qmhmjg013y")) - (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch" - "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) + (version "3.24.49") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.gnome.org/GNOME/gtk") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0flsnh3f0l9v3y2hmnxz1h15nw1l12ixmiwcpiy1ywplrlgq4j00")) + (patches (search-patches + "gtk3-respect-GUIX_GTK3_PATH.patch" + "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) ;; There is no "doc" output, because adding gtk-doc here would introduce a ;; dependency cycle with itself. (outputs '("out" "bin")) @@ -1097,11 +1097,22 @@ application suites.") #~(modify-phases %standard-phases (add-after 'unpack 'disable-failing-tests (lambda _ - ;; These tests fail only in the containerized environment, for - ;; unknown reasons. - (substitute* "testsuite/gtk/meson.build" - ((".*\\['defaultvalue'],.*") "") - ((".*\\['objects-finalize',.*") "")))) + ;; These tests fail only in the containerized environment, for + ;; unknown reasons. + (substitute* "testsuite/gtk/meson.build" + ((".*\\['defaultvalue'],.*") "") + ((".*\\['objects-finalize',.*") "")) + ;; The 'flipping-icons.ui' and 'gtk-icontheme-sizing.ui' tests + ;; fail for unknown reasons (see: + ;; ). + (substitute* "testsuite/reftests/meson.build" + ((" 'flipping-icons.ui',.*") "") + ((" 'gtk-icontheme-sizing.ui',.*") "")) + ;; This test fails just on i686-linux, for unknown reasons. + #$@(if (target-x86-32?) + #~((substitute* "testsuite/reftests/meson.build" + ((" 'linear-gradient.ui',.*") ""))) + #~()))) (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file (assoc-ref glib-or-gtk:%standard-phases 'generate-gdk-pixbuf-loaders-cache-file)) @@ -1128,41 +1139,6 @@ application suites.") (variable "GUIX_GTK3_PATH") (files '("lib/gtk-3.0"))))))) -(define-public gtk+/fixed - (package - (inherit gtk+) - (name "gtk+") - (version "3.24.49") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.gnome.org/GNOME/gtk") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0flsnh3f0l9v3y2hmnxz1h15nw1l12ixmiwcpiy1ywplrlgq4j00")) - (patches (search-patches - "gtk3-respect-GUIX_GTK3_PATH.patch" - "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) - (arguments - (substitute-keyword-arguments (package-arguments gtk+) - ((#:phases phases) - #~(modify-phases #$phases - (replace 'disable-failing-tests - (lambda _ - ;; These tests fail only in the containerized environment, for - ;; unknown reasons. - (substitute* "testsuite/gtk/meson.build" - ((".*\\['defaultvalue'],.*") "") - ((".*\\['objects-finalize',.*") "")) - ;; The 'flipping-icons.ui' and 'gtk-icontheme-sizing.ui' tests - ;; fail for unknown reasons (see: - ;; ). - (substitute* "testsuite/reftests/meson.build" - ((" 'flipping-icons.ui',.*") "") - ((" 'gtk-icontheme-sizing.ui',.*") "")))))))))) - (define-public gtk (package (name "gtk") @@ -2370,7 +2346,8 @@ information.") (base32 "0746lwxgybc5ss3hzdd0crjjghk0ck0x9jbmz73iig405arp42xj")) (patches - (search-patches "gtk-doc-respect-xml-catalog.patch")))) + (search-patches "gtk-doc-respect-xml-catalog.patch" + "gtk-doc-mkhtml-test-fix.patch")))) (build-system meson-build-system) (arguments (list diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index cdf5f6d5463..0f8f5e7809b 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -476,7 +476,7 @@ sharing.") procps psmisc ;for pstree rpm - sane-backends + sane smartmontools sysstat upower diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 9f2f1afd454..520ceeb0d8f 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -815,7 +815,7 @@ the OpenCV-Python library.") libpng (librsvg-for-system) libtiff - libxml2-next + libxml2 libwebp matio openexr diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index b1b03928d06..a06e61294f1 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2020 Boris A. Dekshteyn ;;; Copyright © 2020 Ekaitz Zarraga ;;; Copyright © 2023, 2024 Efraim Flashner +;;; Copyright © 2025 John Kehayias ;;; ;;; This file is part of GNU Guix. ;;; @@ -78,6 +79,7 @@ (base32 "0sq81smxwypgnp7r3wgza8w25dsz9qa8ga79sc85xzj3qi6q9lfv")) (modules '((guix build utils) (ice-9 format))) + (patches (search-patches "inkscape-libxml2.patch")) (snippet '(begin (let-syntax diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 3dde1505a27..20641d8cf36 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -1417,7 +1417,7 @@ transport data and for performing public transport journey queries.") (list extra-cmake-modules)) (inputs (list ki18n - sane-backends)) + sane)) (home-page "https://invent.kde.org/libraries/ksanecore") (synopsis "Library providing logic to interface scanners") (description diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index a0b3cd353ae..a372793c6a6 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -286,7 +286,7 @@ into other word processors.") (native-inputs (list cppunit gperf pkg-config)) (propagated-inputs ; in Requires or Requires.private field of .pkg - (list icu4c liblangtag librevenge libxml2-next)) + (list icu4c liblangtag librevenge libxml2)) (inputs (list boost)) (arguments @@ -372,7 +372,7 @@ working with graphics in the WPG (WordPerfect Graphics) format.") (native-inputs (list autoconf automake libtool cppunit pkg-config)) (propagated-inputs ;in Requires field of .pkg - (list curl libxml2-next)) + (list curl libxml2)) (inputs (list boost cyrus-sasl openssl)) (arguments @@ -413,7 +413,7 @@ as Alfresco or Nuxeo.") (native-inputs (list doxygen gperf perl pkg-config)) (propagated-inputs ; in Requires or Requires.private field of .pkg - (list librevenge libxml2-next)) + (list librevenge libxml2)) (inputs (list boost)) (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libabw") @@ -467,7 +467,7 @@ CorelDRAW documents of all versions.") (native-inputs (list cppunit doxygen gperf pkg-config)) (propagated-inputs ; in Requires or Requires.private field of .pkg - (list liblangtag librevenge libxml2-next zlib)) + (list liblangtag librevenge libxml2 zlib)) (inputs (list boost glm mdds)) (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libetonyek") @@ -479,14 +479,14 @@ Apple Keynote documents. It currently supports Keynote versions 2 to 5.") (define-public liblangtag (package (name "liblangtag") - (version "0.6.4") + (version "0.6.7") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/tagoh/liblangtag/downloads/" "liblangtag-" version ".tar.bz2")) (sha256 - (base32 "0r55r30ih8dgq1hwbpl834igilj7bpxcnmlrlkd3vryk2wn0c0ap")))) + (base32 "03h33sjqsrmmkyj2kxs7c6226hd4s5n22bz62b4hag1zmvabrmjy")))) (build-system gnu-build-system) (native-inputs (list libtool pkg-config)) @@ -772,15 +772,28 @@ Works word processor file format.") (uri (string-append "http://dev-www.libreoffice.org/src/libzmf/libzmf-" version ".tar.xz")) (sha256 (base32 - "08mg5kmkjrmqrd8j5rkzw9vdqlvibhb1ynp6bmfxnzq5rcq1l197")))) + "08mg5kmkjrmqrd8j5rkzw9vdqlvibhb1ynp6bmfxnzq5rcq1l197")) + (patches (search-patches "libzmf-doxygen-1.14.patch")))) (build-system gnu-build-system) (arguments - ;; A harmless 'sign-compare' error pops up on i686 so disable '-Werror'. - '(#:configure-flags '("--disable-werror"))) + (list + ;; A harmless 'sign-compare' error pops up on i686 so disable '-Werror'. + #:configure-flags #~'("--disable-werror") + #:phases + #~(modify-phases %standard-phases + (replace 'bootstrap + (lambda _ + ;; Override the bootstrap phase as a makefile has been patched. + (invoke "autoreconf" "-vif")))))) (inputs (list boost icu4c libpng librevenge zlib)) (native-inputs - (list cppunit doxygen pkg-config)) + (list autoconf + automake + libtool + cppunit + doxygen + pkg-config)) (home-page "https://wiki.documentfoundation.org/DLP/Libraries/libzmf") (synopsis "Parses file format of Zoner Callisto/Draw documents") (description "Libzmf is a library that parses the file format of Zoner @@ -1177,7 +1190,7 @@ commonly called @code{ftoa} or @code{dtoa}.") python-lxml qrcodegen-cpp redland - sane-backends + sane unixodbc unzip vigra diff --git a/gnu/packages/librewolf.scm b/gnu/packages/librewolf.scm index f4711abbce3..ff34cff736c 100644 --- a/gnu/packages/librewolf.scm +++ b/gnu/packages/librewolf.scm @@ -116,14 +116,14 @@ (define computed-origin-method (@@ (guix packages) computed-origin-method)) (define firefox-l10n - (let ((commit "2962877b9abd5bfa1e24e5bbc1e16e47e12d6760")) + (let ((commit "0349e18db25a701938d83c61fa90f6074ae9df01")) (origin (method git-fetch) (uri (git-reference (url "https://github.com/mozilla-l10n/firefox-l10n.git") (commit commit))) (file-name (git-file-name "firefox-l10n" commit)) - (sha256 (base32 "1gaxbjjm0d4k4wgl64mwcxy2hx1vdq1dbmvjacg2fqxpnb62481x"))))) + (sha256 (base32 "0lqpmfgkfwjz5n45qifc0v1cxk5qw8ldyi6423m591l7z4n4rjdg"))))) (define* (make-librewolf-source #:key version firefox-hash librewolf-hash l10n) (let* ((ff-src (firefox-source-origin @@ -220,17 +220,17 @@ ;; It's used for cache validation and therefore can lead to strange bugs. ;; ex: date '+%Y%m%d%H%M%S' ;; or: (format-time-string "%Y%m%d%H%M%S") -(define %librewolf-build-id "20250829153926") +(define %librewolf-build-id "20250919153758") (define-public librewolf (package (name "librewolf") - (version "142.0.1-1") + (version "143.0-1") (source (make-librewolf-source #:version version - #:firefox-hash "1h0hx0jxwy4rshdq6s5l5hbj8gyhn2zssisr59skwf63si7b9bdh" - #:librewolf-hash "1myzm6jblnrw1vdf5xlynbfr6a9swwcaws689az7xgq6s6n0rc3y" + #:firefox-hash "10yz3rz2akf3b19hd2c5v77f038j0h6ci1asjb4w480q14wclibc" + #:librewolf-hash "1jq52g5v38f0dmpyhpr9x9mjsbnn7afq2cr113wmqpdz6ynl07kr" #:l10n firefox-l10n)) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 286252b6ed0..64f92318362 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -303,7 +303,7 @@ desktop and the mate-about program.") (propagated-inputs ;; both of these are requires.private in mateweather.pc (list libsoup-minimal-2 - libxml2-next)) + libxml2)) (home-page "https://mate-desktop.org/") (synopsis "MATE library for weather information from the Internet") (description diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 26ea6d55fe7..65de945b71d 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -300,7 +300,7 @@ XMPP-based sessions.") gtk-doc/stable pkg-config)) (inputs (list libxcrypt ncurses)) - (propagated-inputs (list glib libxml2-next)) + (propagated-inputs (list glib libxml2)) (synopsis "GLib Ncurses Toolkit") (description "GNT is an ncurses toolkit for creating text-mode graphical user interfaces in a fast and easy way. It is based on GLib and ncurses.") diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm index 0bb18b2ad5b..36ba51affe6 100644 --- a/gnu/packages/nss.scm +++ b/gnu/packages/nss.scm @@ -286,7 +286,7 @@ This package tracks the Extended Support Release (ESR) channel.") (package (inherit nss) (name "nss-rapid") - (version "3.115") + (version "3.116") (source (origin (inherit (package-source nss)) @@ -297,7 +297,7 @@ This package tracks the Extended Support Release (ESR) channel.") "releases/NSS_" version-with-underscores "_RTM/src/" "nss-" version ".tar.gz"))) (sha256 - (base32 "1av1g18dkx86zxvpr34j5mx976mgsk002khlb40k4ydx6gxlfamc")) + (base32 "0wxvy9kxqafrwqkx977wpy1mynvsf7mdag3zy9qkn7mdwhfn2f1r")) (patches (search-patches "nss-3.56-pkgconfig.patch" "nss-getcwd-nonnull.patch" diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm index cc7c6ba665c..bfb32b36e53 100644 --- a/gnu/packages/ocr.scm +++ b/gnu/packages/ocr.scm @@ -213,7 +213,7 @@ default. To add support for more languages, the leptonica podofo poppler-qt5 - sane-backends + sane qtbase-5 qtspell quazip-5 diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 5f8217ed177..4fa251d6294 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -194,8 +194,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.4.0") - (commit "a68bcfd2f53a409c530629d8ec0d9d152a56e16b") - (revision 44)) + (commit "679c9b0d8b02710f286b7fb3e65835eefa9f1890") + (revision 45)) (package (name "guix") @@ -211,7 +211,7 @@ (commit commit))) (sha256 (base32 - "10ri7f1pwq43ix0k59fqrrgdipz67sx9kyi3yw9x9n89v3k1ns62")) + "0mzflm74kllhfr4gbb1r93l6v8l6r9ak6f46bakpxfpv763bp719")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/patches/cups-minimal-Address-PPD-injection-issues.patch b/gnu/packages/patches/cups-minimal-Address-PPD-injection-issues.patch deleted file mode 100644 index b6cf94c0854..00000000000 --- a/gnu/packages/patches/cups-minimal-Address-PPD-injection-issues.patch +++ /dev/null @@ -1,529 +0,0 @@ -From 373924d728b61cf6dec9c8a1a1edeb4b9f342529 Mon Sep 17 00:00:00 2001 -From: Tobias Geerinckx-Rice -Date: Fri, 27 Sep 2024 17:03:10 +0200 -Subject: [PATCH] gnu: cups-minimal: Address PPD injection issues. - -This patch combines 5 upstream commits: - 9939a70b750edd9d05270060cc5cf62ca98cfbe5 - 04bb2af4521b56c1699a2c2431c56c05a7102e69 - e0630cd18f76340d302000f2bf6516e99602b844 - 1e6ca5913eceee906038bc04cc7ccfbe2923bdfd - 2abe1ba8a66864aa82cd9836b37e57103b8e1a3b ---- - cups/ppd-cache.c | 235 +++++++++++++++++++++++++++++++++-------------- - scheduler/ipp.c | 9 +- - 2 files changed, 174 insertions(+), 70 deletions(-) - -diff --git a/cups/ppd-cache.c b/cups/ppd-cache.c -index e750fccd4..d2533b731 100644 ---- a/cups/ppd-cache.c -+++ b/cups/ppd-cache.c -@@ -32,6 +32,7 @@ - static int cups_connect(http_t **http, const char *url, char *resource, size_t ressize); - static int cups_get_url(http_t **http, const char *url, char *name, size_t namesize); - static const char *ppd_inputslot_for_keyword(_ppd_cache_t *pc, const char *keyword); -+static void ppd_put_string(cups_file_t *fp, cups_lang_t *lang, cups_array_t *strings, const char *ppd_option, const char *ppd_choice, const char *pwg_msgid); - static void pwg_add_finishing(cups_array_t *finishings, ipp_finishings_t template, const char *name, const char *value); - static void pwg_add_message(cups_array_t *a, const char *msg, const char *str); - static int pwg_compare_finishings(_pwg_finishings_t *a, _pwg_finishings_t *b); -@@ -3197,9 +3198,10 @@ _ppdCreateFromIPP2( - ipp_t *media_col, /* Media collection */ - *media_size; /* Media size collection */ - char make[256], /* Make and model */ -- *model, /* Model name */ -+ *mptr, /* Pointer into make and model */ - ppdname[PPD_MAX_NAME]; - /* PPD keyword */ -+ const char *model; /* Model name */ - int i, j, /* Looping vars */ - count, /* Number of values */ - bottom, /* Largest bottom margin */ -@@ -3221,8 +3223,7 @@ _ppdCreateFromIPP2( - int have_qdraft = 0,/* Have draft quality? */ - have_qhigh = 0; /* Have high quality? */ - char msgid[256]; /* Message identifier (attr.value) */ -- const char *keyword, /* Keyword value */ -- *msgstr; /* Localized string */ -+ const char *keyword; /* Keyword value */ - cups_array_t *strings = NULL;/* Printer strings file */ - struct lconv *loc = localeconv(); - /* Locale data */ -@@ -3260,34 +3261,104 @@ _ppdCreateFromIPP2( - } - - /* -- * Standard stuff for PPD file... -+ * Get a sanitized make and model... - */ - -- cupsFilePuts(fp, "*PPD-Adobe: \"4.3\"\n"); -- cupsFilePuts(fp, "*FormatVersion: \"4.3\"\n"); -- cupsFilePrintf(fp, "*FileVersion: \"%d.%d\"\n", CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR); -- cupsFilePuts(fp, "*LanguageVersion: English\n"); -- cupsFilePuts(fp, "*LanguageEncoding: ISOLatin1\n"); -- cupsFilePuts(fp, "*PSVersion: \"(3010.000) 0\"\n"); -- cupsFilePuts(fp, "*LanguageLevel: \"3\"\n"); -- cupsFilePuts(fp, "*FileSystem: False\n"); -- cupsFilePuts(fp, "*PCFileName: \"ippeve.ppd\"\n"); -+ if ((attr = ippFindAttribute(supported, "printer-make-and-model", IPP_TAG_TEXT)) != NULL && ippValidateAttribute(attr)) -+ { -+ /* -+ * Sanitize the model name to only contain PPD-safe characters. -+ */ - -- if ((attr = ippFindAttribute(supported, "printer-make-and-model", IPP_TAG_TEXT)) != NULL) - strlcpy(make, ippGetString(attr, 0, NULL), sizeof(make)); -+ -+ for (mptr = make; *mptr; mptr ++) -+ { -+ if (*mptr < ' ' || *mptr >= 127 || *mptr == '\"') -+ { -+ /* -+ * Truncate the make and model on the first bad character... -+ */ -+ -+ *mptr = '\0'; -+ break; -+ } -+ } -+ -+ while (mptr > make) -+ { -+ /* -+ * Strip trailing whitespace... -+ */ -+ -+ mptr --; -+ if (*mptr == ' ') -+ *mptr = '\0'; -+ } -+ -+ if (!make[0]) -+ { -+ /* -+ * Use a default make and model if nothing remains... -+ */ -+ -+ strlcpy(make, "Unknown", sizeof(make)); -+ } -+ } - else -- strlcpy(make, "Unknown Printer", sizeof(make)); -+ { -+ /* -+ * Use a default make and model... -+ */ -+ -+ strlcpy(make, "Unknown", sizeof(make)); -+ } - - if (!_cups_strncasecmp(make, "Hewlett Packard ", 16) || !_cups_strncasecmp(make, "Hewlett-Packard ", 16)) - { -+ /* -+ * Normalize HP printer make and model... -+ */ -+ - model = make + 16; - strlcpy(make, "HP", sizeof(make)); -+ -+ if (!_cups_strncasecmp(model, "HP ", 3)) -+ model += 3; -+ } -+ else if ((mptr = strchr(make, ' ')) != NULL) -+ { -+ /* -+ * Separate "MAKE MODEL"... -+ */ -+ -+ while (*mptr && *mptr == ' ') -+ *mptr++ = '\0'; -+ -+ model = mptr; - } -- else if ((model = strchr(make, ' ')) != NULL) -- *model++ = '\0'; - else -- model = make; -+ { -+ /* -+ * No separate model name... -+ */ - -+ model = "Printer"; -+ } -+ -+ /* -+ * Standard stuff for PPD file... -+ */ -+ -+ cupsFilePuts(fp, "*PPD-Adobe: \"4.3\"\n"); -+ cupsFilePuts(fp, "*FormatVersion: \"4.3\"\n"); -+ cupsFilePrintf(fp, "*FileVersion: \"%d.%d\"\n", CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR); -+ cupsFilePuts(fp, "*LanguageVersion: English\n"); -+ cupsFilePuts(fp, "*LanguageEncoding: ISOLatin1\n"); -+ cupsFilePuts(fp, "*PSVersion: \"(3010.000) 0\"\n"); -+ cupsFilePuts(fp, "*LanguageLevel: \"3\"\n"); -+ cupsFilePuts(fp, "*FileSystem: False\n"); -+ cupsFilePuts(fp, "*PCFileName: \"ippeve.ppd\"\n"); - cupsFilePrintf(fp, "*Manufacturer: \"%s\"\n", make); - cupsFilePrintf(fp, "*ModelName: \"%s\"\n", model); - cupsFilePrintf(fp, "*Product: \"(%s)\"\n", model); -@@ -3317,13 +3388,13 @@ _ppdCreateFromIPP2( - } - cupsFilePuts(fp, "\"\n"); - -- if ((attr = ippFindAttribute(supported, "printer-more-info", IPP_TAG_URI)) != NULL) -+ if ((attr = ippFindAttribute(supported, "printer-more-info", IPP_TAG_URI)) != NULL && ippValidateAttribute(attr)) - cupsFilePrintf(fp, "*APSupplies: \"%s\"\n", ippGetString(attr, 0, NULL)); - -- if ((attr = ippFindAttribute(supported, "printer-charge-info-uri", IPP_TAG_URI)) != NULL) -+ if ((attr = ippFindAttribute(supported, "printer-charge-info-uri", IPP_TAG_URI)) != NULL && ippValidateAttribute(attr)) - cupsFilePrintf(fp, "*cupsChargeInfoURI: \"%s\"\n", ippGetString(attr, 0, NULL)); - -- if ((attr = ippFindAttribute(supported, "printer-strings-uri", IPP_TAG_URI)) != NULL) -+ if ((attr = ippFindAttribute(supported, "printer-strings-uri", IPP_TAG_URI)) != NULL && ippValidateAttribute(attr)) - { - http_t *http = NULL; /* Connection to printer */ - char stringsfile[1024]; /* Temporary strings file */ -@@ -3367,7 +3438,7 @@ _ppdCreateFromIPP2( - - response = cupsDoRequest(http, request, resource); - -- if ((attr = ippFindAttribute(response, "printer-strings-uri", IPP_TAG_URI)) != NULL) -+ if ((attr = ippFindAttribute(response, "printer-strings-uri", IPP_TAG_URI)) != NULL && ippValidateAttribute(attr)) - cupsFilePrintf(fp, "*cupsStringsURI %s: \"%s\"\n", keyword, ippGetString(attr, 0, NULL)); - - ippDelete(response); -@@ -3389,10 +3460,10 @@ _ppdCreateFromIPP2( - if (ippGetBoolean(ippFindAttribute(supported, "job-accounting-user-id-supported", IPP_TAG_BOOLEAN), 0)) - cupsFilePuts(fp, "*cupsJobAccountingUserId: True\n"); - -- if ((attr = ippFindAttribute(supported, "printer-privacy-policy-uri", IPP_TAG_URI)) != NULL) -+ if ((attr = ippFindAttribute(supported, "printer-privacy-policy-uri", IPP_TAG_URI)) != NULL && ippValidateAttribute(attr)) - cupsFilePrintf(fp, "*cupsPrivacyURI: \"%s\"\n", ippGetString(attr, 0, NULL)); - -- if ((attr = ippFindAttribute(supported, "printer-mandatory-job-attributes", IPP_TAG_KEYWORD)) != NULL) -+ if ((attr = ippFindAttribute(supported, "printer-mandatory-job-attributes", IPP_TAG_KEYWORD)) != NULL && ippValidateAttribute(attr)) - { - char prefix = '\"'; // Prefix for string - -@@ -3410,7 +3481,7 @@ _ppdCreateFromIPP2( - cupsFilePuts(fp, "\"\n"); - } - -- if ((attr = ippFindAttribute(supported, "printer-requested-job-attributes", IPP_TAG_KEYWORD)) != NULL) -+ if ((attr = ippFindAttribute(supported, "printer-requested-job-attributes", IPP_TAG_KEYWORD)) != NULL && ippValidateAttribute(attr)) - { - char prefix = '\"'; // Prefix for string - -@@ -3973,18 +4044,16 @@ _ppdCreateFromIPP2( - cupsFilePrintf(fp, "*DefaultInputSlot: %s\n", ppdname); - - for (j = 0; j < (int)(sizeof(sources) / sizeof(sources[0])); j ++) -+ { - if (!strcmp(sources[j], keyword)) - { - snprintf(msgid, sizeof(msgid), "media-source.%s", keyword); - -- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr)) -- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) -- msgstr = keyword; -- - cupsFilePrintf(fp, "*InputSlot %s: \"<>setpagedevice\"\n", ppdname, j); -- cupsFilePrintf(fp, "*%s.InputSlot %s/%s: \"\"\n", lang->language, ppdname, msgstr); -+ ppd_put_string(fp, lang, strings, "InputSlot", ppdname, msgid); - break; - } -+ } - } - cupsFilePuts(fp, "*CloseUI: *InputSlot\n"); - } -@@ -4010,12 +4079,9 @@ _ppdCreateFromIPP2( - pwg_ppdize_name(keyword, ppdname, sizeof(ppdname)); - - snprintf(msgid, sizeof(msgid), "media-type.%s", keyword); -- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr)) -- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) -- msgstr = keyword; - - cupsFilePrintf(fp, "*MediaType %s: \"<>setpagedevice\"\n", ppdname, ppdname); -- cupsFilePrintf(fp, "*%s.MediaType %s/%s: \"\"\n", lang->language, ppdname, msgstr); -+ ppd_put_string(fp, lang, strings, "MediaType", ppdname, msgid); - } - cupsFilePuts(fp, "*CloseUI: *MediaType\n"); - } -@@ -4476,12 +4542,9 @@ _ppdCreateFromIPP2( - pwg_ppdize_name(keyword, ppdname, sizeof(ppdname)); - - snprintf(msgid, sizeof(msgid), "output-bin.%s", keyword); -- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr)) -- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) -- msgstr = keyword; - - cupsFilePrintf(fp, "*OutputBin %s: \"\"\n", ppdname); -- cupsFilePrintf(fp, "*%s.OutputBin %s/%s: \"\"\n", lang->language, ppdname, msgstr); -+ ppd_put_string(fp, lang, strings, "OutputBin", ppdname, msgid); - - if ((tray_ptr = ippGetOctetString(trays, i, &tray_len)) != NULL) - { -@@ -4600,9 +4663,6 @@ _ppdCreateFromIPP2( - cupsArrayAdd(names, (char *)keyword); - - snprintf(msgid, sizeof(msgid), "finishings.%d", value); -- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr)) -- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) -- msgstr = keyword; - - if (value >= IPP_FINISHINGS_NONE && value <= IPP_FINISHINGS_LAMINATE) - ppd_keyword = base_keywords[value - IPP_FINISHINGS_NONE]; -@@ -4617,7 +4677,7 @@ _ppdCreateFromIPP2( - continue; - - cupsFilePrintf(fp, "*StapleLocation %s: \"\"\n", ppd_keyword); -- cupsFilePrintf(fp, "*%s.StapleLocation %s/%s: \"\"\n", lang->language, ppd_keyword, msgstr); -+ ppd_put_string(fp, lang, strings, "StapleLocation", ppd_keyword, msgid); - cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*StapleLocation %s\"\n", value, keyword, ppd_keyword); - } - -@@ -4680,9 +4740,6 @@ _ppdCreateFromIPP2( - cupsArrayAdd(names, (char *)keyword); - - snprintf(msgid, sizeof(msgid), "finishings.%d", value); -- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr)) -- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) -- msgstr = keyword; - - if (value >= IPP_FINISHINGS_NONE && value <= IPP_FINISHINGS_LAMINATE) - ppd_keyword = base_keywords[value - IPP_FINISHINGS_NONE]; -@@ -4697,7 +4754,7 @@ _ppdCreateFromIPP2( - continue; - - cupsFilePrintf(fp, "*FoldType %s: \"\"\n", ppd_keyword); -- cupsFilePrintf(fp, "*%s.FoldType %s/%s: \"\"\n", lang->language, ppd_keyword, msgstr); -+ ppd_put_string(fp, lang, strings, "FoldType", ppd_keyword, msgid); - cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*FoldType %s\"\n", value, keyword, ppd_keyword); - } - -@@ -4768,9 +4825,6 @@ _ppdCreateFromIPP2( - cupsArrayAdd(names, (char *)keyword); - - snprintf(msgid, sizeof(msgid), "finishings.%d", value); -- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr)) -- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) -- msgstr = keyword; - - if (value >= IPP_FINISHINGS_NONE && value <= IPP_FINISHINGS_LAMINATE) - ppd_keyword = base_keywords[value - IPP_FINISHINGS_NONE]; -@@ -4785,7 +4839,7 @@ _ppdCreateFromIPP2( - continue; - - cupsFilePrintf(fp, "*PunchMedia %s: \"\"\n", ppd_keyword); -- cupsFilePrintf(fp, "*%s.PunchMedia %s/%s: \"\"\n", lang->language, ppd_keyword, msgstr); -+ ppd_put_string(fp, lang, strings, "PunchMedia", ppd_keyword, msgid); - cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*PunchMedia %s\"\n", value, keyword, ppd_keyword); - } - -@@ -4856,9 +4910,6 @@ _ppdCreateFromIPP2( - cupsArrayAdd(names, (char *)keyword); - - snprintf(msgid, sizeof(msgid), "finishings.%d", value); -- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr)) -- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) -- msgstr = keyword; - - if (value == IPP_FINISHINGS_TRIM) - ppd_keyword = "Auto"; -@@ -4866,7 +4917,7 @@ _ppdCreateFromIPP2( - ppd_keyword = trim_keywords[value - IPP_FINISHINGS_TRIM_AFTER_PAGES]; - - cupsFilePrintf(fp, "*CutMedia %s: \"\"\n", ppd_keyword); -- cupsFilePrintf(fp, "*%s.CutMedia %s/%s: \"\"\n", lang->language, ppd_keyword, msgstr); -+ ppd_put_string(fp, lang, strings, "CutMedia", ppd_keyword, msgid); - cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*CutMedia %s\"\n", value, keyword, ppd_keyword); - } - -@@ -4905,12 +4956,11 @@ _ppdCreateFromIPP2( - - cupsArrayAdd(templates, (void *)keyword); - -+ pwg_ppdize_name(keyword, ppdname, sizeof(ppdname)); -+ - snprintf(msgid, sizeof(msgid), "finishing-template.%s", keyword); -- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr)) -- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid) -- msgstr = keyword; - -- cupsFilePrintf(fp, "*cupsFinishingTemplate %s: \"\n", keyword); -+ cupsFilePrintf(fp, "*cupsFinishingTemplate %s: \"\n", ppdname); - for (finishing_attr = ippFirstAttribute(finishing_col); finishing_attr; finishing_attr = ippNextAttribute(finishing_col)) - { - if (ippGetValueTag(finishing_attr) == IPP_TAG_BEGIN_COLLECTION) -@@ -4923,7 +4973,7 @@ _ppdCreateFromIPP2( - } - } - cupsFilePuts(fp, "\"\n"); -- cupsFilePrintf(fp, "*%s.cupsFinishingTemplate %s/%s: \"\"\n", lang->language, keyword, msgstr); -+ ppd_put_string(fp, lang, strings, "cupsFinishingTemplate", ppdname, msgid); - cupsFilePuts(fp, "*End\n"); - } - -@@ -4959,9 +5009,8 @@ _ppdCreateFromIPP2( - { - ipp_t *preset = ippGetCollection(attr, i); - /* Preset collection */ -- const char *preset_name = ippGetString(ippFindAttribute(preset, "preset-name", IPP_TAG_ZERO), 0, NULL), -+ const char *preset_name = ippGetString(ippFindAttribute(preset, "preset-name", IPP_TAG_ZERO), 0, NULL); - /* Preset name */ -- *localized_name; /* Localized preset name */ - ipp_attribute_t *member; /* Member attribute in preset */ - const char *member_name; /* Member attribute name */ - char member_value[256]; /* Member attribute value */ -@@ -4969,7 +5018,8 @@ _ppdCreateFromIPP2( - if (!preset || !preset_name) - continue; - -- cupsFilePrintf(fp, "*APPrinterPreset %s: \"\n", preset_name); -+ pwg_ppdize_name(preset_name, ppdname, sizeof(ppdname)); -+ cupsFilePrintf(fp, "*APPrinterPreset %s: \"\n", ppdname); - for (member = ippFirstAttribute(preset); member; member = ippNextAttribute(preset)) - { - member_name = ippGetName(member); -@@ -5010,7 +5060,10 @@ _ppdCreateFromIPP2( - fin_col = ippGetCollection(member, i); - - if ((keyword = ippGetString(ippFindAttribute(fin_col, "finishing-template", IPP_TAG_ZERO), 0, NULL)) != NULL) -- cupsFilePrintf(fp, "*cupsFinishingTemplate %s\n", keyword); -+ { -+ pwg_ppdize_name(keyword, ppdname, sizeof(ppdname)); -+ cupsFilePrintf(fp, "*cupsFinishingTemplate %s\n", ppdname); -+ } - } - } - else if (!strcmp(member_name, "media")) -@@ -5037,13 +5090,13 @@ _ppdCreateFromIPP2( - if ((keyword = ippGetString(ippFindAttribute(media_col, "media-source", IPP_TAG_ZERO), 0, NULL)) != NULL) - { - pwg_ppdize_name(keyword, ppdname, sizeof(ppdname)); -- cupsFilePrintf(fp, "*InputSlot %s\n", keyword); -+ cupsFilePrintf(fp, "*InputSlot %s\n", ppdname); - } - - if ((keyword = ippGetString(ippFindAttribute(media_col, "media-type", IPP_TAG_ZERO), 0, NULL)) != NULL) - { - pwg_ppdize_name(keyword, ppdname, sizeof(ppdname)); -- cupsFilePrintf(fp, "*MediaType %s\n", keyword); -+ cupsFilePrintf(fp, "*MediaType %s\n", ppdname); - } - } - else if (!strcmp(member_name, "print-quality")) -@@ -5088,8 +5141,9 @@ _ppdCreateFromIPP2( - - cupsFilePuts(fp, "\"\n*End\n"); - -- if ((localized_name = _cupsMessageLookup(strings, preset_name)) != preset_name) -- cupsFilePrintf(fp, "*%s.APPrinterPreset %s/%s: \"\"\n", lang->language, preset_name, localized_name); -+ snprintf(msgid, sizeof(msgid), "preset-name.%s", preset_name); -+ pwg_ppdize_name(preset_name, ppdname, sizeof(ppdname)); -+ ppd_put_string(fp, lang, strings, "APPrinterPreset", ppdname, msgid); - } - } - -@@ -5360,6 +5414,43 @@ cups_get_url(http_t **http, /* IO - Current HTTP connection */ - } - - -+/* -+ * 'ppd_put_strings()' - Write localization attributes to a PPD file. -+ */ -+ -+static void -+ppd_put_string(cups_file_t *fp, /* I - PPD file */ -+ cups_lang_t *lang, /* I - Language */ -+ cups_array_t *strings, /* I - Strings */ -+ const char *ppd_option,/* I - PPD option */ -+ const char *ppd_choice,/* I - PPD choice */ -+ const char *pwg_msgid) /* I - PWG message ID */ -+{ -+ const char *text; /* Localized text */ -+ -+ -+ if ((text = _cupsLangString(lang, pwg_msgid)) == pwg_msgid || !strcmp(pwg_msgid, text)) -+ { -+ if ((text = _cupsMessageLookup(strings, pwg_msgid)) == pwg_msgid) -+ return; -+ } -+ -+ // Add the first line of localized text... -+ cupsFilePrintf(fp, "*%s.%s %s/", lang->language, ppd_option, ppd_choice); -+ while (*text && *text != '\n') -+ { -+ // Escape ":" and "<"... -+ if (*text == ':' || *text == '<') -+ cupsFilePrintf(fp, "<%02X>", *text); -+ else -+ cupsFilePutChar(fp, *text); -+ -+ text ++; -+ } -+ cupsFilePuts(fp, ": \"\"\n"); -+} -+ -+ - /* - * 'pwg_add_finishing()' - Add a finishings value. - */ -@@ -5473,7 +5564,7 @@ pwg_ppdize_name(const char *ipp, /* I - IPP keyword */ - *end; /* End of name buffer */ - - -- if (!ipp) -+ if (!ipp || !_cups_isalnum(*ipp)) - { - *name = '\0'; - return; -@@ -5488,8 +5579,14 @@ pwg_ppdize_name(const char *ipp, /* I - IPP keyword */ - ipp ++; - *ptr++ = (char)toupper(*ipp++ & 255); - } -- else -+ else if (*ipp == '_' || *ipp == '.' || *ipp == '-' || _cups_isalnum(*ipp)) -+ { - *ptr++ = *ipp++; -+ } -+ else -+ { -+ ipp ++; -+ } - } - - *ptr = '\0'; -diff --git a/scheduler/ipp.c b/scheduler/ipp.c -index 37623c54e..14b1fe1e0 100644 ---- a/scheduler/ipp.c -+++ b/scheduler/ipp.c -@@ -1,7 +1,7 @@ - /* - * IPP routines for the CUPS scheduler. - * -- * Copyright © 2020-2023 by OpenPrinting -+ * Copyright © 2020-2024 by OpenPrinting - * Copyright © 2007-2021 by Apple Inc. - * Copyright © 1997-2007 by Easy Software Products, all rights reserved. - * -@@ -5417,6 +5417,13 @@ create_local_bg_thread( - } - } - -+ // Validate response from printer... -+ if (!ippValidateAttributes(response)) -+ { -+ send_ipp_status(con, IPP_STATUS_ERROR_DEVICE, _("Printer returned invalid data: %s"), cupsLastErrorString()); -+ goto finish_response; -+ } -+ - // TODO: Grab printer icon file... - httpClose(http); - --- -2.46.0 - diff --git a/gnu/packages/patches/cups-relax-root-ownership-check.patch b/gnu/packages/patches/cups-relax-root-ownership-check.patch new file mode 100644 index 00000000000..f24461153d8 --- /dev/null +++ b/gnu/packages/patches/cups-relax-root-ownership-check.patch @@ -0,0 +1,34 @@ +From 943e44dafa192b54fadcbb24f5f87d62a22c9f84 Mon Sep 17 00:00:00 2001 +From: Sergey Trofimov +Date: Wed, 17 Sep 2025 12:09:34 +0200 +Subject: [PATCH] Exempt files in /gnu/store from root ownership check. + +--- + cups/file.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/cups/file.c b/cups/file.c +index 95054f3c8..9822619d4 100644 +--- a/cups/file.c ++++ b/cups/file.c +@@ -159,7 +159,8 @@ _cupsFileCheck( + * 4. Must not be writable by others + */ + +- if (fileinfo.st_uid || /* 1. Must be owned by root */ ++ int in_gnu_store = !strncmp(filename, "/gnu/store/", 11); ++ if ((fileinfo.st_uid && !in_gnu_store) || /* 1. Must be owned by root or be in /gnu/store */ + (fileinfo.st_mode & S_IWGRP) || /* 2. Must not be writable by group */ + (fileinfo.st_mode & S_ISUID) || /* 3. Must not be setuid */ + (fileinfo.st_mode & S_IWOTH)) /* 4. Must not be writable by others */ +@@ -198,7 +199,7 @@ _cupsFileCheck( + goto finishup; + } + +- if (fileinfo.st_uid || /* 1. Must be owned by root */ ++ if ((fileinfo.st_uid && !in_gnu_store) || /* 1. Must be owned by root or be in /gnu/store */ + (fileinfo.st_mode & S_IWGRP) || /* 2. Must not be writable by group */ + (fileinfo.st_mode & S_ISUID) || /* 3. Must not be setuid */ + (fileinfo.st_mode & S_IWOTH)) /* 4. Must not be writable by others */ +-- +2.51.0 diff --git a/gnu/packages/patches/emacs-zoom-image-test-fix.patch b/gnu/packages/patches/emacs-zoom-image-test-fix.patch new file mode 100644 index 00000000000..b47cc4f800d --- /dev/null +++ b/gnu/packages/patches/emacs-zoom-image-test-fix.patch @@ -0,0 +1,25 @@ +From 462a541db904405ede8446c48ba0c71ad41c544d Mon Sep 17 00:00:00 2001 +From: Eli Zaretskii +Date: Thu, 17 Jul 2025 19:34:50 +0300 +Subject: [PATCH] ; * test/lisp/net/shr-tests.el (shr-test/zoom-image): Fix + (bug#79041). + +--- + test/lisp/net/shr-tests.el | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/test/lisp/net/shr-tests.el b/test/lisp/net/shr-tests.el +index 363cd144e8f3..a931d07a1631 100644 +--- a/test/lisp/net/shr-tests.el ++++ b/test/lisp/net/shr-tests.el +@@ -145,8 +145,8 @@ settings, then once more for each (OPTION . VALUE) pair.") + (dolist (alt '(nil "" "nothing to see here")) + (with-temp-buffer + (ert-info ((format "image with alt=%S" alt)) +- (let ((attrs (if alt (format " alt=\"%s\"" alt) ""))) +- (insert (format "" alt) ">"))) ++ (insert (format " +Date: Fri, 9 Feb 2024 15:32:38 -0500 +Subject: [PATCH] Add gobject example source code to path for mkhtml test + +Fixes #150 + +I'm not really sure why this is required, but I suspect it has to do +with changes in how GCC handles path traversal due to recent (ish) +security issues, as the code here is evaluated to +`../xml/../../examples/gobject.c` which probably looks unhealthy to +automatically include. + +Signed-off-by: Neil Hanlon +--- + tests/gobject/docs/meson.build | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/gobject/docs/meson.build b/tests/gobject/docs/meson.build +index a1dd66ca..236a1cc0 100644 +--- a/tests/gobject/docs/meson.build ++++ b/tests/gobject/docs/meson.build +@@ -119,6 +119,7 @@ test( + '--path=@0@'.format(':'.join([ + gobject_test_docs_dir, + srcdir, ++ join_paths(srcdir, 'tests/gobject/examples'), + ]) + ), + ], +-- +GitLab + diff --git a/gnu/packages/patches/inkscape-libxml2.patch b/gnu/packages/patches/inkscape-libxml2.patch new file mode 100644 index 00000000000..dc5b0f53460 --- /dev/null +++ b/gnu/packages/patches/inkscape-libxml2.patch @@ -0,0 +1,33 @@ +From 694d8ae43d06efff21adebf377ce614d660b24cd Mon Sep 17 00:00:00 2001 +From: Christian Hesse +Date: Fri, 17 Nov 2023 22:30:42 +0100 +Subject: [PATCH] include missing header file +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes build error: +``` +/build/inkscape/src/inkscape/src/object/uri.cpp: In constructor ‘Inkscape::URI::URI(const gchar*, const char*)’: +/build/inkscape/src/inkscape/src/object/uri.cpp:86:9: error: ‘xmlFree’ was not declared in this scope; did you mean ‘xmlFreeURI’? + 86 | xmlFree(full); +``` +--- + src/object/uri.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/object/uri.h b/src/object/uri.h +index 381adec58cf..d5b211fe2b2 100644 +--- a/src/object/uri.h ++++ b/src/object/uri.h +@@ -13,6 +13,7 @@ + #define INKSCAPE_URI_H + + #include ++#include + #include + #include + +-- +GitLab + diff --git a/gnu/packages/patches/libosinfo-libxml2-fix.patch b/gnu/packages/patches/libosinfo-libxml2-fix.patch new file mode 100644 index 00000000000..71d620532c3 --- /dev/null +++ b/gnu/packages/patches/libosinfo-libxml2-fix.patch @@ -0,0 +1,83 @@ +From 0adf38535637ec668e658d43f04f60f11f51574f Mon Sep 17 00:00:00 2001 +From: Roman Bogorodskiy +Date: Thu, 10 Apr 2025 13:54:02 +0200 +Subject: [PATCH] loader: don't use libxml2 deprecated APIs + +Address the following items: + + - Deprecated direct access to buf's content + - Mismatching error function signature + - Deprecated direct access to ctxt's lastError + +Signed-off-by: Roman Bogorodskiy +--- + osinfo/osinfo_loader.c | 42 +++++++++++++++++++++++------------------- + 1 file changed, 23 insertions(+), 19 deletions(-) + +diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c +index 0a9004af..b3fd4535 100644 +--- a/osinfo/osinfo_loader.c ++++ b/osinfo/osinfo_loader.c +@@ -354,7 +354,7 @@ osinfo_loader_doc(const char *xpath, + xmlXPathFreeObject(obj); + OSINFO_LOADER_SET_ERROR(err, "Cannot format stylesheet"); + } +- ret = g_strdup((char *)buf->content); ++ ret = g_strdup((char *)xmlBufferContent(buf)); + + xmlBufferFree(buf); + xmlXPathFreeObject(obj); +@@ -1902,28 +1902,32 @@ static void osinfo_loader_root(OsinfoLoader *loader, + } + + static void +-catchXMLError(void *ctx, const char *msg ATTRIBUTE_UNUSED, ...) ++catchXMLError(void *ctx, const char *msg, ...) + { + xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; ++ const xmlError *xmlErr = NULL; ++ g_autofree gchar *xmlmsg = NULL; + +- if (ctxt && ctxt->_private) { +- GError **err = ctxt->_private; +- if (!error_is_set(err)) { +- gchar *xmlmsg; +- if (ctxt->lastError.file) { +- xmlmsg = g_strdup_printf("%s:%d: %s", +- ctxt->lastError.file, +- ctxt->lastError.line, +- ctxt->lastError.message); +- } else { +- xmlmsg = g_strdup_printf("at line %d: %s", +- ctxt->lastError.line, +- ctxt->lastError.message); +- } +- OSINFO_LOADER_SET_ERROR(ctxt->_private, xmlmsg); +- g_free(xmlmsg); +- } ++ if (!ctxt || !ctxt->_private) ++ return; ++ ++ if (error_is_set(ctxt->_private)) ++ return; ++ ++ if (!(xmlErr = xmlCtxtGetLastError(ctx))) ++ return; ++ ++ if (xmlErr->file) { ++ xmlmsg = g_strdup_printf("%s:%d: %s", ++ xmlErr->file, ++ xmlErr->line, ++ xmlErr->message); ++ } else { ++ xmlmsg = g_strdup_printf("at line %d: %s", ++ xmlErr->line, ++ xmlErr->message); + } ++ OSINFO_LOADER_SET_ERROR(ctxt->_private, xmlmsg); + } + + static void osinfo_loader_process_xml(OsinfoLoader *loader, +-- +GitLab + diff --git a/gnu/packages/patches/libxslt-generated-ids.patch b/gnu/packages/patches/libxslt-generated-ids.patch deleted file mode 100644 index 1cd2363d6aa..00000000000 --- a/gnu/packages/patches/libxslt-generated-ids.patch +++ /dev/null @@ -1,173 +0,0 @@ -This makes generated IDs deterministic. - -Written by Daniel Veillard. - -This should be fixed in next release (2.29). -See https://bugzilla.gnome.org/show_bug.cgi?id=751621. - -diff --git a/libxslt/functions.c b/libxslt/functions.c -index 6448bde..5b00a6d 100644 ---- a/libxslt/functions.c -+++ b/libxslt/functions.c -@@ -651,6 +651,63 @@ xsltFormatNumberFunction(xmlXPathParserContextPtr ctxt, int nargs) - } - - /** -+ * xsltCleanupIds: -+ * @ctxt: the transformation context -+ * @root: the root of the resulting document -+ * -+ * This clean up ids which may have been saved in Element contents -+ * by xsltGenerateIdFunction() to provide stable IDs on elements. -+ * -+ * Returns the number of items cleaned or -1 in case of error -+ */ -+int -+xsltCleanupIds(xsltTransformContextPtr ctxt, xmlNodePtr root) { -+ xmlNodePtr cur; -+ int count = 0; -+ -+ if ((ctxt == NULL) || (root == NULL)) -+ return(-1); -+ if (root->type != XML_ELEMENT_NODE) -+ return(-1); -+ -+ cur = root; -+ while (cur != NULL) { -+ if (cur->type == XML_ELEMENT_NODE) { -+ if (cur->content != NULL) { -+ cur->content = NULL; -+ count++; -+ } -+ if (cur->children != NULL) { -+ cur = cur->children; -+ continue; -+ } -+ } -+ if (cur->next != NULL) { -+ cur = cur->next; -+ continue; -+ } -+ do { -+ cur = cur->parent; -+ if (cur == NULL) -+ break; -+ if (cur == (xmlNodePtr) root) { -+ cur = NULL; -+ break; -+ } -+ if (cur->next != NULL) { -+ cur = cur->next; -+ break; -+ } -+ } while (cur != NULL); -+ } -+ -+fprintf(stderr, "Attributed %d IDs for element, cleaned up %d\n", -+ ctxt->nextid, count); -+ -+ return(count); -+} -+ -+/** - * xsltGenerateIdFunction: - * @ctxt: the XPath Parser context - * @nargs: the number of arguments -@@ -701,7 +758,39 @@ xsltGenerateIdFunction(xmlXPathParserContextPtr ctxt, int nargs){ - if (obj) - xmlXPathFreeObject(obj); - -- val = (long)((char *)cur - (char *)&base_address); -+ /* -+ * Try to provide stable ID for generated document: -+ * - usually ID are computed to be placed on elements via attributes -+ * so using the element as the node for the ID -+ * - the cur->content should be a correct placeholder for this, we use -+ * it to hold element node numbers in xmlXPathOrderDocElems to -+ * speed up XPath too -+ * - xsltCleanupIds() clean them up before handing the XSLT output -+ * to the API client. -+ * - other nodes types use the node address method but that should -+ * not end up in resulting document ID -+ * - we can enable this by default without risk of performance issues -+ * only the one pass xsltCleanupIds() is added -+ */ -+ if (cur->type == XML_ELEMENT_NODE) { -+ if (cur->content == NULL) { -+ xsltTransformContextPtr tctxt; -+ -+ tctxt = xsltXPathGetTransformContext(ctxt); -+ if (tctxt == NULL) { -+ val = (long)((char *)cur - (char *)&base_address); -+ } else { -+ tctxt->nextid++; -+ val = tctxt->nextid; -+ cur->content = (void *) (val); -+ } -+ } else { -+ val = (long) cur->content; -+ } -+ } else { -+ val = (long)((char *)cur - (char *)&base_address); -+ } -+ - if (val >= 0) { - sprintf((char *)str, "idp%ld", val); - } else { -diff --git a/libxslt/functions.h b/libxslt/functions.h -index e0e0bf9..4a1e163 100644 ---- a/libxslt/functions.h -+++ b/libxslt/functions.h -@@ -64,6 +64,13 @@ XSLTPUBFUN void XSLTCALL - int nargs); - - /* -+ * Cleanup for ID generation -+ */ -+XSLTPUBFUN int XSLTCALL -+ xsltCleanupIds (xsltTransformContextPtr ctxt, -+ xmlNodePtr root); -+ -+/* - * And the registration - */ - -diff --git a/libxslt/transform.c b/libxslt/transform.c -index 24f9eb2..2bdf6bf 100644 ---- a/libxslt/transform.c -+++ b/libxslt/transform.c -@@ -700,6 +700,7 @@ xsltNewTransformContext(xsltStylesheetPtr style, xmlDocPtr doc) { - cur->traceCode = (unsigned long*) &xsltDefaultTrace; - cur->xinclude = xsltGetXIncludeDefault(); - cur->keyInitLevel = 0; -+ cur->nextid = 0; - - return(cur); - -@@ -6092,6 +6093,13 @@ xsltApplyStylesheetInternal(xsltStylesheetPtr style, xmlDocPtr doc, - if (root != NULL) { - const xmlChar *doctype = NULL; - -+ /* -+ * cleanup ids which may have been saved in Elements content ptrs -+ */ -+ if (ctxt->nextid != 0) { -+ xsltCleanupIds(ctxt, root); -+ } -+ - if ((root->ns != NULL) && (root->ns->prefix != NULL)) - doctype = xmlDictQLookup(ctxt->dict, root->ns->prefix, root->name); - if (doctype == NULL) -diff --git a/libxslt/xsltInternals.h b/libxslt/xsltInternals.h -index 95e8fe6..8eedae4 100644 ---- a/libxslt/xsltInternals.h -+++ b/libxslt/xsltInternals.h -@@ -1782,6 +1782,8 @@ struct _xsltTransformContext { - int maxTemplateVars; - unsigned long opLimit; - unsigned long opCount; -+ -+ unsigned long nextid;/* for generating stable ids */ - }; - - /** diff --git a/gnu/packages/patches/libzmf-doxygen-1.14.patch b/gnu/packages/patches/libzmf-doxygen-1.14.patch new file mode 100644 index 00000000000..46d05a2549d --- /dev/null +++ b/gnu/packages/patches/libzmf-doxygen-1.14.patch @@ -0,0 +1,30 @@ +From 48f94abff2fcc4943626a62c6180c60862288b08 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Tue, 3 Jun 2025 11:57:29 +0200 +Subject: [PATCH 245/248] Install all files generated by doxygen + +Install the whole directory and do not pick only some file-types + +Change-Id: I743253696f3e57dfe70c6509b7d620dc2bf39e76 +--- + docs/doxygen/Makefile.am | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/docs/doxygen/Makefile.am b/docs/doxygen/Makefile.am +index 4351042..40a02e8 100644 +--- a/docs/doxygen/Makefile.am ++++ b/docs/doxygen/Makefile.am +@@ -6,9 +6,7 @@ if WITH_LIBZMF_DOCS + + install-data-am: + mkdir -p $(DESTDIR)$(docdir)/html +- $(INSTALL_DATA) html/*.html $(DESTDIR)$(docdir)/html/ +- $(INSTALL_DATA) html/*.png $(DESTDIR)$(docdir)/html/ +- $(INSTALL_DATA) html/*.css $(DESTDIR)$(docdir)/html/ ++ $(INSTALL_DATA) html/* $(DESTDIR)$(docdir)/html/ + + uninstall-am: + -rm -rf $(DESTDIR)$(docdir)/html +-- +2.51.0 + diff --git a/gnu/packages/patches/mash-add-missing-headers.patch b/gnu/packages/patches/mash-add-missing-headers.patch new file mode 100644 index 00000000000..d4eca2a5b44 --- /dev/null +++ b/gnu/packages/patches/mash-add-missing-headers.patch @@ -0,0 +1,26 @@ +https://patch-diff.githubusercontent.com/raw/marbl/Mash/pull/181.diff + +Add missing includes to support newer compilers. +--- +diff --git a/src/mash/robin_hood.h b/src/mash/robin_hood.h +index 573607f..9141848 100644 +--- a/src/mash/robin_hood.h ++++ b/src/mash/robin_hood.h +@@ -42,6 +42,7 @@ + #include + #include + #include ++#include + #include // only to support hash of smart pointers + #include + #include +--- a/src/mash/Command.cpp ++++ b/src/mash/Command.cpp +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + #include "Command.h" + #include "version.h" \ No newline at end of file diff --git a/gnu/packages/patches/python-libxml2-utf8.patch b/gnu/packages/patches/python-libxml2-utf8.patch index e39672faa1b..9c4ca4fdb29 100644 --- a/gnu/packages/patches/python-libxml2-utf8.patch +++ b/gnu/packages/patches/python-libxml2-utf8.patch @@ -6,18 +6,18 @@ that 'itstool' stumbles upon when processing UTF-8 data: Patch by Jan Matejek from . ---- libxml2-2.9.5.orig/python/libxml.c -+++ libxml2-2.9.5/python/libxml.c -@@ -1620,6 +1620,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU +--- a/python/libxml.c ++++ b/python/libxml.c +@@ -1499,6 +1499,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNUSED void *ctx, const char *msg, PyObject *message; PyObject *result; char str[1000]; + unsigned char *ptr = (unsigned char *)str; - #ifdef DEBUG_ERROR - printf("libxml_xmlErrorFuncHandler(%p, %s, ...) called\n", ctx, msg); -@@ -1636,12 +1637,20 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU - str[999] = 0; + if (libxml_xmlPythonErrorFuncHandler == NULL) { + va_start(ap, msg); +@@ -1510,12 +1511,20 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNUSED void *ctx, const char *msg, + str[999] = 0; va_end(ap); +#if PY_MAJOR_VERSION >= 3 @@ -32,7 +32,7 @@ from . - message = libxml_charPtrConstWrap(str); + message = libxml_charPtrConstWrap(ptr); PyTuple_SetItem(list, 1, message); - result = PyEval_CallObject(libxml_xmlPythonErrorFuncHandler, list); + result = PyObject_CallObject(libxml_xmlPythonErrorFuncHandler, list); + /* Forget any errors caused in the error handler. */ + PyErr_Clear(); Py_XDECREF(list); diff --git a/gnu/packages/patches/raptor2-libxml2.patch b/gnu/packages/patches/raptor2-libxml2.patch new file mode 100644 index 00000000000..605301ca0fd --- /dev/null +++ b/gnu/packages/patches/raptor2-libxml2.patch @@ -0,0 +1,30 @@ +https://bugs.gentoo.org/906227 +https://github.com/dajobe/raptor/issues/59 +https://github.com/dajobe/raptor/pull/58 + +From 4dbc4c1da2a033c497d84a1291c46f416a9cac51 Mon Sep 17 00:00:00 2001 +From: David Anes +Date: Thu, 4 May 2023 11:54:02 +0200 +Subject: [PATCH] Remove the access to entities 'checked' private symbol for + libxml2 2.11.0 + +Since version 2.11.0, some private symbols that were never intended +as public API/ABI have been removed from libxml2, therefore the field +'checked' is no longer present and raptor fails to build in this +scenario. +--- a/src/raptor_libxml.c ++++ b/src/raptor_libxml.c +@@ -246,10 +246,11 @@ raptor_libxml_getEntity(void* user_data, const xmlChar *name) + + ret->owner = 1; + +-#if LIBXML_VERSION >= 20627 ++#if LIBXML_VERSION >= 20627 && LIBXML_VERSION < 21100 + /* Checked field was released in 2.6.27 on 2006-10-25 + * http://git.gnome.org/browse/libxml2/commit/?id=a37a6ad91a61d168ecc4b29263def3363fff4da6 + * ++ * and was later removed in version 2.11.0 + */ + + /* Mark this entity as having been checked - never do this again */ + diff --git a/gnu/packages/patches/sane-look-for-plugins-in-SANE_BACKEND_LIB_PATH.patch b/gnu/packages/patches/sane-look-for-plugins-in-SANE_BACKEND_LIB_PATH.patch new file mode 100644 index 00000000000..aef4d152743 --- /dev/null +++ b/gnu/packages/patches/sane-look-for-plugins-in-SANE_BACKEND_LIB_PATH.patch @@ -0,0 +1,25 @@ +From 324ad2e5b5d4b08fb682fa05d5baaaf087d13f5c Mon Sep 17 00:00:00 2001 +From: Sergey Trofimov +Date: Sat, 20 Sep 2025 18:26:44 +0200 +Subject: [PATCH] Look for plugins in SANE_BACKEND_LIB_PATH. + +--- + backend/dll.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/backend/dll.c b/backend/dll.c +index bf34c4f6d..d52e81206 100644 +--- a/backend/dll.c ++++ b/backend/dll.c +@@ -461,6 +461,8 @@ load (struct backend *be) + be->op[i] = op_unsupported; + + path = getenv ("LD_LIBRARY_PATH"); ++ if (!path) ++ path = getenv ("SANE_BACKEND_LIB_PATH"); /* for guix */ + if (!path) + path = getenv ("SHLIB_PATH"); /* for HP-UX */ + if (!path) +-- +2.51.0 + diff --git a/gnu/packages/patches/vulkan-tools-wayland-1.24.patch b/gnu/packages/patches/vulkan-tools-wayland-1.24.patch new file mode 100644 index 00000000000..7d440c09caf --- /dev/null +++ b/gnu/packages/patches/vulkan-tools-wayland-1.24.patch @@ -0,0 +1,100 @@ +From f546743016f5301c063f2c50af0ea43dd2485ef4 Mon Sep 17 00:00:00 2001 +From: Charles Giessen +Date: Thu, 17 Jul 2025 09:56:40 -0500 +Subject: [PATCH] build: Remove pkg-config provided library names + +The library names of Xcb, Xlib, and Wayland do not need to be queried from pkg-config, +instead they can be hardcoded to use the fallback names. + +The intent of querying the library names was to prevent issues where the hardcoded name +was not the platform-appropriate name. But because _LINK_LIBRARIES can have +more than one library name, the logic to assign _LINK_LIBRARIES into a compile +definition breaks horribly. While it is possible to handle this in CMake, the dlopen code would +also have to handle it which is much more error prone. +--- + cube/CMakeLists.txt | 20 -------------------- + cube/wayland_loader.h | 3 --- + cube/xcb_loader.h | 3 --- + cube/xlib_loader.h | 3 --- + 4 files changed, 29 deletions(-) + +diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt +index 7e135e79b..dac6bfed9 100644 +--- a/cube/CMakeLists.txt ++++ b/cube/CMakeLists.txt +@@ -307,16 +307,6 @@ if (ANDROID) + return() + endif() + +-if (XCB_LINK_LIBRARIES) +- target_compile_definitions(vkcube PRIVATE "XCB_LIBRARY=\"${XCB_LINK_LIBRARIES}\"") +-endif() +-if (X11_LINK_LIBRARIES) +- target_compile_definitions(vkcube PRIVATE "XLIB_LIBRARY=\"${X11_LINK_LIBRARIES}\"") +-endif() +-if (WAYLAND_CLIENT_LINK_LIBRARIES) +- target_compile_definitions(vkcube PRIVATE "WAYLAND_LIBRARY=\"${WAYLAND_CLIENT_LINK_LIBRARIES}\"") +-endif() +- + # ---------------------------------------------------------------------------- + # vkcubepp + +@@ -360,16 +350,6 @@ target_include_directories(vkcubepp PRIVATE .) + target_compile_definitions(vkcubepp PRIVATE ${ENABLED_CUBE_PLATFORMS}) + target_link_libraries(vkcubepp ${CMAKE_DL_LIBS} Vulkan::Headers) + +-if (XCB_LINK_LIBRARIES ) +- target_compile_definitions(vkcubepp PUBLIC "XCB_LIBRARY=\"${XCB_LINK_LIBRARIES}\"") +-endif() +-if (X11_LINK_LIBRARIES) +- target_compile_definitions(vkcubepp PUBLIC "XLIB_LIBRARY=\"${X11_LINK_LIBRARIES}\"") +-endif() +-if (WAYLAND_CLIENT_LINK_LIBRARIES) +- target_compile_definitions(vkcubepp PUBLIC "WAYLAND_LIBRARY=\"${WAYLAND_CLIENT_LINK_LIBRARIES}\"") +-endif() +- + if(APPLE) + install( + TARGETS vkcubepp +diff --git a/cube/wayland_loader.h b/cube/wayland_loader.h +index 2afab6e97..7d7d91412 100644 +--- a/cube/wayland_loader.h ++++ b/cube/wayland_loader.h +@@ -80,9 +80,6 @@ static PFN_wl_display_disconnect cube_wl_display_disconnect = NULL; + + static inline void *initialize_wayland() { + void *wayland_library = NULL; +-#if defined(WAYLAND_LIBRARY) +- wayland_library = dlopen(WAYLAND_LIBRARY, RTLD_NOW | RTLD_LOCAL); +-#endif + if (NULL == wayland_library) { + wayland_library = dlopen("libwayland-client.so.0", RTLD_NOW | RTLD_LOCAL); + } +diff --git a/cube/xcb_loader.h b/cube/xcb_loader.h +index a94d5ab56..cecd25402 100644 +--- a/cube/xcb_loader.h ++++ b/cube/xcb_loader.h +@@ -88,9 +88,6 @@ static PFN_xcb_screen_next cube_xcb_screen_next = NULL; + + void *initialize_xcb() { + void *xcb_library = NULL; +-#if defined(XCB_LIBRARY) +- xcb_library = dlopen(XCB_LIBRARY, RTLD_NOW | RTLD_LOCAL); +-#endif + if (NULL == xcb_library) { + xcb_library = dlopen("libxcb.so.1", RTLD_NOW | RTLD_LOCAL); + } +diff --git a/cube/xlib_loader.h b/cube/xlib_loader.h +index c7874d0e7..881789f18 100644 +--- a/cube/xlib_loader.h ++++ b/cube/xlib_loader.h +@@ -72,9 +72,6 @@ static PFN_XFlush cube_XFlush = NULL; + + void* initialize_xlib() { + void* xlib_library = NULL; +-#if defined(XLIB_LIBRARY) +- xlib_library = dlopen(XLIB_LIBRARY, RTLD_NOW | RTLD_LOCAL); +-#endif + if (NULL == xlib_library) { + xlib_library = dlopen("libX11.so.6", RTLD_NOW | RTLD_LOCAL); + } diff --git a/gnu/packages/prolog.scm b/gnu/packages/prolog.scm index 62299065f0a..c6d5f42aa5b 100644 --- a/gnu/packages/prolog.scm +++ b/gnu/packages/prolog.scm @@ -185,7 +185,7 @@ it.") (define-public trealla (package (name "trealla") - (version "2.83.5") + (version "2.83.8") (source (origin (method git-fetch) @@ -194,7 +194,7 @@ it.") (url "https://github.com/trealla-prolog/trealla") (commit (string-append "v" version)))) (sha256 - (base32 "04d1h8331dsb1gbrp28h2sqkwqh3cfzbdlziczwqk2kyyp9sf9f8")) + (base32 "1bpfzrwsgbmjl1maiaw5b8ixkgh548gw1lkiznsjgkjm7dxr4ns4")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 525c7781af0..fe7f39333f1 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -5220,13 +5220,16 @@ sanitizer Rust crate.") (version "0.3.1") (source (origin - (method url-fetch) - (uri (pypi-uri "noiseprotocol" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/plizonczyk/noiseprotocol") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "0ifnj0mpbqsfqba9n12vf5yzxj4qf2gxql3ry43qyshgnrqsi4mh")))) + (base32 "1mk0rqpjifdv3v1cjwkdnjbrfmzzjm9f3qqs1r8vii4j2wvhm6am")))) (build-system pyproject-build-system) (propagated-inputs (list python-cryptography)) - (native-inputs (list python-setuptools python-wheel)) + (native-inputs (list python-setuptools python-pytest)) (home-page "https://github.com/plizonczyk/noiseprotocol") (synopsis "Implementation of Noise Protocol Framework") (description diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 23fa9c21f7d..502f97d2b96 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -13131,8 +13131,7 @@ experimental data and metadata at the Laboratory for Fluorescence Dynamics.") python-pytest python-setuptools python-wheel)) - (inputs - (list ffmpeg-7)) + (inputs (list ffmpeg)) (home-page "https://github.com/PyAV-Org/PyAV") (synopsis "Pythonic bindings for FFmpeg's libraries") (description @@ -15629,14 +15628,14 @@ the GObject Introspection bindings to libnotify for non-GTK applications.") (define-public python-beautifulsoup4 (package (name "python-beautifulsoup4") - (version "4.13.4") + (version "4.13.5") (source (origin (method url-fetch) (uri (pypi-uri "beautifulsoup4" version)) (sha256 (base32 - "15bi8fl51aibdz33h3j1191n5l0c4r3k4hpjvbmyysmfrvhw9cyv")))) + "159niwk99m9lbcxb9sl6jfqy9mb39bss4l1lwcypq3lkh89i6w2y")))) (build-system pyproject-build-system) (native-inputs (list python-hatchling @@ -17643,7 +17642,7 @@ from an XML-based format.") (propagated-inputs (list python-brotli python-fs - python-lxml-4.9 + python-lxml python-lz4 python-scipy python-unicodedata2 @@ -29198,6 +29197,7 @@ submitting it.") (sha256 (base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691")))) (build-system pyproject-build-system) + (arguments (list #:tests? #f)) ;No test suite. (native-inputs (list python-setuptools python-wheel)) (home-page "https://github.com/iwalton3/python-mpv-jsonipc") (synopsis "Python API to control MPV using JSON IPC") @@ -34263,7 +34263,19 @@ and have a maximum lifetime built-in.") (list #:test-flags ;; Disable some failing tests. - '(list "-k" "not test_print_subprocess" + ;; + ;; test_print_subprocess seems to inherit wrong environment, fails with + ;; E + ModuleNotFoundError: No module named 'executing' + ;; Test runs fine from local clone. + ;; + ;; test_executing_failure fails with + ;; E - [1, 2] (list) len=2 + ;; E + [x, y]: [1, 2] (list) len=2 + ;; unclear why, probably due to a dependency. + '(list "-k" "not test_print_subprocess and not test_executing_failure" + ;; test_insert_assert.py also seems to inherit a bad environment: + ;; E fixture 'pytester_pretty' not found + ;; Test runs fine from local clone. "--ignore=tests/test_insert_assert.py"))) (native-inputs (list python-hatchling python-pytest python-pytest-mock)) @@ -35514,7 +35526,7 @@ restores the original state after the string is printed.") (native-inputs (list python-pytest)) (inputs - (list sane-backends)) + (list sane)) (home-page "https://github.com/python-pillow/Sane") (synopsis "Python interface to the SANE scanner") (description "This package provides Python interface to the SANE scanner @@ -38711,7 +38723,7 @@ parsing rules in a single place.") (sha256 (base32 "0g4cn522n4dv6ly8pwf97dc62rr4f7my38v0bh6vmac7jmrip7pv")))) (build-system pyproject-build-system) - (native-inputs (list python-setuptools python-wheel)) + (native-inputs (list python-setuptools python-pytest)) (home-page "https://github.com/pR0Ps/iterable-io") (synopsis "Adapt generators and other iterables to a file-like interface") (description diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 3ad2181530b..5a1dd7762cd 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -2117,7 +2117,7 @@ Vulkan, OpenGL and other main graphic APIs.") vulkan-headers)) (inputs (list alsa-lib - ffmpeg + ffmpeg-6 glib libxkbcommon libxrandr diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm index d341c59e629..bfb0bb82b55 100644 --- a/gnu/packages/rdesktop.scm +++ b/gnu/packages/rdesktop.scm @@ -252,8 +252,7 @@ of parts of the Windows API.") linux-pam openssl pixman - python - python-libxml2)) + python)) (native-inputs (append (list bison diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index ad6ec7921e5..609cae6d50b 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -77,7 +77,8 @@ "-" version ".tar.gz")) (sha256 (base32 - "1026whyxpajwijlr4k5c0iliwn09mwxrg7gkvd5kb0n9ga6vg788")))) + "1026whyxpajwijlr4k5c0iliwn09mwxrg7gkvd5kb0n9ga6vg788")) + (patches (search-patches "raptor2-libxml2.patch")))) (build-system gnu-build-system) (inputs (list curl libxml2 libxslt zlib)) diff --git a/gnu/packages/rust-crates.scm b/gnu/packages/rust-crates.scm index 9e96ac63e4e..572f6ece2f0 100644 --- a/gnu/packages/rust-crates.scm +++ b/gnu/packages/rust-crates.scm @@ -19903,6 +19903,7 @@ `(("paste" ,rust-paste-1.0.15) ("proc-macro2" ,rust-proc-macro2-1.0.94) ("quote" ,rust-quote-1.0.40) + ("rustc-hash" ,rust-rustc-hash-2.1.1) ("syn" ,rust-syn-2.0.100) ("unicode-ident" ,rust-unicode-ident-1.0.18))) diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm index 259e378b658..3cbfa227175 100644 --- a/gnu/packages/scanner.scm +++ b/gnu/packages/scanner.scm @@ -42,18 +42,20 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml) #:use-module (guix build-system gnu) + #:use-module (guix deprecation) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) + #:use-module (guix search-paths) #:use-module (guix utils)) (define-public sane-airscan (package (name "sane-airscan") - (version "0.99.27") + (version "0.99.36") (source (origin (method git-fetch) @@ -62,7 +64,7 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1syxsih1kdnz9slsg5a92bqnllagm4cybqk4n2y6mbkqn6h0zlnv")))) + (base32 "1dh7rq1g120gqhkr7ac3p7yizm330dj3xqrrg08dff7ra1jx955y")))) (build-system gnu-build-system) (arguments (list #:make-flags @@ -78,8 +80,9 @@ gnutls libjpeg-turbo libpng + libtiff libxml2 - sane-backends)) + sane)) (home-page "https://github.com/alexpevzner/sane-airscan") (synopsis "SANE backend for eSCL (AirScan) and WSD document scanners") (description ; no @acronym{eSCL} because the meaning isn't officially known @@ -103,10 +106,11 @@ both WSD and eSCL.") (license (list license:gpl2+ ; the combined work license:expat)))) ; http_parser.[ch] -(define-public sane-backends-minimal +(define-deprecated/public-alias sane-backends-minimal sane) +(define-public sane (package - (name "sane-backends-minimal") - (version "1.3.1") + (name "sane") + (version "1.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -114,7 +118,9 @@ both WSD and eSCL.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1fb6shx9bz0svcyasmyqs93rbbwq7kzg6l0h1zh3kjvcwhchyv72")) + (base32 "09hcqrli127amdxjlj6xd9lvc0rhlhhm8vxrnldbd8c2mxss7dbv")) + (patches (search-patches + "sane-look-for-plugins-in-SANE_BACKEND_LIB_PATH.patch")) (modules '((guix build utils))) (snippet ;; Generated HTML files and udev rules normally embed a @@ -186,6 +192,11 @@ both WSD and eSCL.") (string-append out "/lib/udev/rules.d/" "60-libsane.rules"))))) + (add-after 'install 'remove-dll.conf + (lambda _ + ;; dll.conf lists enabled backends, so it should be removed as + ;; there are none in this package + (delete-file (string-append %output "/etc/sane.d/dll.conf")))) (add-after 'install 'make-reproducible ;; XXX Work around an old bug . ;; Then work around "Throw to key `decoding-error' ..." by using sed. @@ -197,6 +208,14 @@ both WSD and eSCL.") (invoke "sed" "-i" "/^PO-Revision-Date:/d" file)) (list "en@boldquot/LC_MESSAGES/sane-backends.mo" "en@quot/LC_MESSAGES/sane-backends.mo"))))))))) + (native-search-paths + (list + (search-path-specification + (variable "SANE_CONFIG_DIR") + (files '("etc/sane.d"))) + (search-path-specification + (variable "SANE_BACKEND_LIB_PATH") + (files '("lib/sane"))))) (home-page "http://www.sane-project.org") (synopsis "Raster image scanner library and drivers, without scanner support") @@ -206,20 +225,16 @@ hand-held scanner, video- and still-cameras, frame-grabbers, etc.). The package contains the library, but no drivers.") (license license:gpl2+))) ; plus linking exception -;; This variant links in the hpaio backend provided by hplip, which adds -;; support for HP scanners whose backends are not maintained by the SANE -;; project, and builds all of those backends. (define-public sane-backends - (package/inherit sane-backends-minimal + (package/inherit sane (name "sane-backends") (inputs - `(("hplip" ,(@ (gnu packages cups) hplip)) - ("libjpeg" ,libjpeg-turbo) ; for pixma/epsonds/other back ends + `(("libjpeg" ,libjpeg-turbo) ; for pixma/epsonds/other back ends ("libpng" ,libpng) ; support ‘scanimage --format=png’ ("libxml2" ,libxml2) ; for pixma back end - ,@(package-inputs sane-backends-minimal))) + ,@(package-inputs sane))) (arguments - (substitute-keyword-arguments (package-arguments sane-backends-minimal) + (substitute-keyword-arguments (package-arguments sane) ((#:phases phases) `(modify-phases ,phases (delete 'disable-backends) @@ -229,22 +244,6 @@ package contains the library, but no drivers.") ;; (substitute* "testsuite/backend/genesys/Makefile.in" ((" genesys_unit_tests\\$\\(EXEEXT\\)") "")) - #t)) - (add-after 'unpack 'add-backends - (lambda _ - (substitute* "backend/dll.conf.in" - (("hp5590" all) (format #f "~a~%~a" all "hpaio"))) - #t)) - (add-after 'install 'install-hpaio - (lambda* (#:key inputs outputs #:allow-other-keys) - (define hplip (string-append (assoc-ref inputs "hplip") - "/lib/sane")) - (define out (string-append (assoc-ref outputs "out") - "/lib/sane")) - (for-each - (lambda (file) - (symlink file (string-append out "/" (basename file)))) - (find-files hplip)) #t)))))) (synopsis "Raster image scanner library and drivers, with scanner support") @@ -288,7 +287,7 @@ package contains the library and drivers."))) "/lib/udev/rules.d"))))))) (inputs (list boost eudev - sane-backends-minimal + sane libusb libjpeg-turbo imagemagick @@ -350,11 +349,7 @@ standard.") (native-inputs (list pkg-config)) (inputs - `(("dbus" ,dbus) - ("libconfuse" ,libconfuse) - ("sane-backends" ,sane-backends) - ("udev" ,eudev) - ("zlib" ,zlib))) + (list dbus libconfuse sane eudev zlib)) (home-page "https://scanbd.sourceforge.io") (synopsis "Configurable scanner button monitor") (description "Scanbd stands for scanner button daemon. It regularly polls @@ -435,7 +430,7 @@ provided the driver also exposes the buttons.") lcms libjpeg-turbo libtiff - sane-backends + sane xdg-utils)) ;to open the manual from the Help menu (home-page "https://gitlab.com/sane-project/frontend/xsane") (synopsis "Featureful graphical interface for document and image scanners") diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 481fe177bfa..b2775e795f7 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -660,7 +660,7 @@ This package also provides @samp{kdlpp}, a C++20 wrapper around @samp{ckdl}.") (define-public capnproto (package (name "capnproto") - (version "1.0") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append @@ -668,13 +668,13 @@ This package also provides @samp{kdlpp}, a C++20 wrapper around @samp{ckdl}.") version ".tar.gz")) (sha256 (base32 - "03f1862ljdshg7d0rg3j7jzgm3ip55kzd2y91q7p0racax3hxx6i")) + "1vs2zpk4l55hb4lq4kldbwdqcjnwm1jblhcaqxmii9dxrd7f807d")) (patches (search-patches "capnproto-fix-test.patch")))) - (build-system gnu-build-system) + (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-before 'check 'use-tmp-for-temporary-files + (add-after 'unpack 'use-tmp-for-temporary-files (lambda _ ;; Use /tmp for temporary files, as the default /var/tmp directory ;; doesn't exist. diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 462e0188201..bc52898c0ae 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -16,7 +16,7 @@ ;;; Copyright © 2021 Wiktor Żelazny ;;; Copyright © 2022 Jose G Perez Taveras ;;; Copyright © 2023 Timo Wilken -;;; Copyright © 2023 Camilo Q.S. (Distopico) +;;; Copyright © 2023, 2025 Camilo Q.S. (Distopico) ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2024 Artyom V. Poptsov ;;; Copyright © 2024 Brian Kubisiak @@ -744,7 +744,7 @@ Latin script and other languages.") (define-public direnv (package (name "direnv") - (version "2.36.0") + (version "2.37.1") (source (origin (method git-fetch) (uri (git-reference @@ -753,7 +753,7 @@ Latin script and other languages.") (file-name (git-file-name name version)) (sha256 (base32 - "0p6n9zi3p9frj3ndnpdc1cz51hq0nkyjc9b1rqg7967l8vhdr8f6")))) + "08wywbj5niqhpy6m4y8xw065w3rgpi8khfy5qzqfxr6752h66v7p")))) (build-system go-build-system) (arguments (list #:install-source? #f diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm index 3ac19e56156..b3bf99074cc 100644 --- a/gnu/packages/telegram.scm +++ b/gnu/packages/telegram.scm @@ -39,7 +39,6 @@ #:use-module (gnu packages cpp) #:use-module (gnu packages crypto) #:use-module (gnu packages digest) - #:use-module (gnu packages fcitx) #:use-module (gnu packages fcitx5) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gl) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 7d9b2db9406..8021652dbcd 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -887,7 +887,7 @@ eye-candy, customizable, and reasonably lightweight.") (list (search-path-specification (variable "TERMINFO_DIRS") (files '("share/terminfo"))))) - (inputs (list fcft libxkbcommon-1.8 wayland wayland-protocols)) + (inputs (list fcft libxkbcommon wayland wayland-protocols)) (synopsis "Wayland-native terminal emulator") (description "@command{foot} is a terminal emulator for systems using the Wayland diff --git a/gnu/packages/tor-browsers.scm b/gnu/packages/tor-browsers.scm index ddd34a9f3e1..3473829855f 100644 --- a/gnu/packages/tor-browsers.scm +++ b/gnu/packages/tor-browsers.scm @@ -240,7 +240,7 @@ Browser.") libxcomposite libxt libffi - ffmpeg-7 + ffmpeg libvpx icu4c pixman diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index f03994406e7..b870f7396d2 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -4224,7 +4224,11 @@ will reconstruct the object along its delta-base chain and return it.") (install-file manpage (string-append #$output "/share/man/man1"))) (find-files "." "^git-lfs.*\\.1$")))))) - #~())))) + #~()) + (add-after 'install 'rename-binary + (lambda _ + (with-directory-excursion (string-append #$output "/bin") + (rename-file "v3" "git-lfs"))))))) (native-inputs (append (list git-minimal go-github-com-avast-retry-go @@ -4251,7 +4255,7 @@ will reconstruct the object along its delta-base chain and return it.") (if (supported-package? ruby-asciidoctor/minimal) (list ronn-ng ruby-asciidoctor/minimal) '()))) - (home-page "https://git-lfs.github.com/") + (home-page "https://git-lfs.com/") (synopsis "Git extension for versioning large files") (description "Git Large File Storage (LFS) replaces large files such as audio samples, diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index fe1fa25ad91..5198a759049 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1527,7 +1527,7 @@ libebml is a C++ library to read and write EBML files.") (define-public libplacebo (package (name "libplacebo") - (version "7.349.0") + (version "7.351.0") (source (origin (method git-fetch) @@ -1536,7 +1536,7 @@ libebml is a C++ library to read and write EBML files.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1q12yf04z570a2l3vkig2iqm7bgqr90hdxmn78sk2injrsyx124q")))) + (base32 "094mzr4cvvryxr7rpxqhvrs018r89m116cpkmmfy3d3sk8b09jki")))) (build-system meson-build-system) (arguments (list #:configure-flags @@ -1644,17 +1644,17 @@ These tools require a supported graphics chip, driver, and VA-API back end to operate properly.") (license license:expat))) -(define-public ffmpeg-7 +(define-public ffmpeg (package (name "ffmpeg") - (version "7.0.2") + (version "8.0") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "12dkv17mrsdqrm70c30azjw7qi1lfxca7xisw81x6flacddm2il6")))) + "13kvs9rh5mp21gx64hdj0jlnz6q5c6spik8kh5q7fk6cnv61yxdj")))) (outputs '("out" "debug")) (build-system gnu-build-system) (inputs @@ -1674,6 +1674,8 @@ operate properly.") libcaca libcdio-paranoia libdrm + libgme + libplacebo libtheora libva libvdpau @@ -1685,13 +1687,16 @@ operate properly.") mesa openal pulseaudio + shaderc sdl2 soxr speex + spirv-tools srt svt-av1 twolame vidstab + vulkan-loader x265 xvid zlib))) @@ -1701,7 +1706,8 @@ operate properly.") pkg-config texinfo speex - yasm)) + vulkan-headers + nasm)) (arguments (list #:test-target "fate" @@ -1716,7 +1722,6 @@ operate properly.") ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] ;; --enable-libflite enable flite (voice synthesis) support via ;; libflite [no] - ;; --enable-libgme enable Game Music Emu via libgme [no] ;; --enable-libgsm enable GSM de/encoding via libgsm [no] ;; --enable-libiec61883 enable iec61883 via libiec61883 [no] ;; --enable-libilbc enable iLBC de/encoding via libilbc [no] @@ -1769,12 +1774,15 @@ operate properly.") "--enable-libcdio" "--enable-libdav1d" "--enable-libfreetype" + "--enable-libgme" "--enable-libmp3lame" "--enable-libopus" + "--enable-libplacebo" "--enable-libpulse" #$@(if (this-package-input "rav1e") '("--enable-librav1e") '()) + "--enable-libshaderc" "--enable-libsoxr" "--enable-libspeex" "--enable-libsrt" @@ -1792,6 +1800,7 @@ operate properly.") "--enable-opengl" "--enable-libdrm" "--enable-vaapi" + "--enable-vulkan" "--enable-runtime-cpudetect" @@ -1836,7 +1845,7 @@ operate properly.") (lambda* (#:key outputs configure-flags #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* "configure" - (("#! /bin/sh") (string-append "#!" (which "sh")))) + (("#! */bin/sh") (string-append "#!" (which "sh")))) (setenv "SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash")) (apply invoke @@ -1861,23 +1870,23 @@ convert and stream audio and video. It includes the libavcodec audio/video codec library.") (license license:gpl2+))) -(define-public ffmpeg +(define-public ffmpeg-6 (package - (inherit ffmpeg-7) - (version "6.1.1") + (inherit ffmpeg) + (version "6.1.2") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "0s7r2qv8gh2a3w568n9xxgcz0q8j5ww1jdsci1hm9f4l1yqg9146")) + "0f2fr8ywchhlkdff88lr4d4vscqzsi1ndjh3r5jwbkayf94lcqiv")) (patches (search-patches "ffmpeg-add-av_stream_get_first_dts-for-chromium.patch")))) (arguments (if (target-x86-32?) - (substitute-keyword-arguments (package-arguments ffmpeg-7) + (substitute-keyword-arguments (package-arguments ffmpeg) ((#:phases phases) #~(modify-phases #$phases (add-before 'configure 'relax-gcc-14-strictness @@ -1885,8 +1894,9 @@ audio/video codec library.") (setenv "CFLAGS" (string-append "-g -O2" - " -Wno-error=incompatible-pointer-types"))))))) - (package-arguments ffmpeg-7))))) + " -Wno-error=incompatible-pointer-types" + " -Wno-error=int-conversion"))))))) + (package-arguments ffmpeg))))) (define-public ffmpeg-5 (package @@ -1926,8 +1936,12 @@ audio/video codec library.") (replace "sdl2" sdl2-2.0))) (arguments (substitute-keyword-arguments (package-arguments ffmpeg-5) + ((#:modules modules %default-gnu-modules) + `((srfi srfi-1) ,@modules)) ((#:configure-flags flags ''()) - #~(cons "--enable-avresample" #$flags)))))) + #~(cons "--enable-avresample" + (fold delete #$flags '("--enable-libplacebo" + "--enable-libshaderc")))))))) (define-public ffmpeg-for-stepmania (hidden-package @@ -1995,270 +2009,271 @@ audio/video codec library.") ;;; Custom ffmpeg package used by Jami, which incorporates custom patches. (define-public ffmpeg-jami - (package - (inherit ffmpeg) - (name "ffmpeg-jami") - (source (let ((ffmpeg-origin (package-source ffmpeg))) - (origin - (inherit ffmpeg-origin) - ;; These patches originate come from - ;; . - ;; Make sure to keep them update and/or register any new ones - ;; here. - (patches - (append - (origin-patches ffmpeg-origin) - (search-patches - "ffmpeg-jami-remove-mjpeg-log.patch" - "ffmpeg-jami-change-RTCP-ratio.patch" - "ffmpeg-jami-rtp_ext_abs_send_time.patch" - "ffmpeg-jami-libopusdec-enable-FEC.patch" - "ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch" - "ffmpeg-jami-screen-sharing-x11-fix.patch" - "ffmpeg-jami-pipewiregrab-source-filter.patch")))))) - (arguments - (substitute-keyword-arguments (package-arguments ffmpeg) - ((#:configure-flags _ '()) - ;; The base configure flags preserved from ffmpeg appear first. - #~(list "--disable-static" - "--enable-shared" - "--disable-stripping" + (let ((ffmpeg ffmpeg-6)) + (package + (inherit ffmpeg) + (name "ffmpeg-jami") + (source (let ((ffmpeg-origin (package-source ffmpeg))) + (origin + (inherit ffmpeg-origin) + ;; These patches originate come from + ;; . + ;; Make sure to keep them update and/or register any new ones + ;; here. + (patches + (append + (origin-patches ffmpeg-origin) + (search-patches + "ffmpeg-jami-remove-mjpeg-log.patch" + "ffmpeg-jami-change-RTCP-ratio.patch" + "ffmpeg-jami-rtp_ext_abs_send_time.patch" + "ffmpeg-jami-libopusdec-enable-FEC.patch" + "ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch" + "ffmpeg-jami-screen-sharing-x11-fix.patch" + "ffmpeg-jami-pipewiregrab-source-filter.patch")))))) + (arguments + (substitute-keyword-arguments (package-arguments ffmpeg) + ((#:configure-flags _ '()) + ;; The base configure flags preserved from ffmpeg appear first. + #~(list "--disable-static" + "--enable-shared" + "--disable-stripping" - ;; Extra Guix-added flags that make sense for this custom - ;; package; these could be contributed upstream. - "--disable-doc" + ;; Extra Guix-added flags that make sense for this custom + ;; package; these could be contributed upstream. + "--disable-doc" - ;; The following flags are those specified by Jami. - ;; They're from the jami/daemon/contrib/src/ffmpeg/rules.mak - ;; file. We try to keep it as close to the official Jami - ;; package as possible, to provide all the codecs and extra - ;; features that are expected (see: - ;; https://review.jami.net/plugins/gitiles/jami-daemon/+/ - ;; refs/heads/master/contrib/src/ffmpeg/rules.mak). - "--disable-everything" - "--enable-zlib" - "--enable-gpl" - "--enable-swscale" - "--enable-bsfs" - "--disable-filters" - "--disable-programs" - "--disable-postproc" + ;; The following flags are those specified by Jami. + ;; They're from the jami/daemon/contrib/src/ffmpeg/rules.mak + ;; file. We try to keep it as close to the official Jami + ;; package as possible, to provide all the codecs and extra + ;; features that are expected (see: + ;; https://review.jami.net/plugins/gitiles/jami-daemon/+/ + ;; refs/heads/master/contrib/src/ffmpeg/rules.mak). + "--disable-everything" + "--enable-zlib" + "--enable-gpl" + "--enable-swscale" + "--enable-bsfs" + "--disable-filters" + "--disable-programs" + "--disable-postproc" - "--enable-libpipewire" - "--enable-filter=pipewiregrab" - "--enable-indev=lavfi" - "--enable-decoder=wrapped_avframe" + "--enable-libpipewire" + "--enable-filter=pipewiregrab" + "--enable-indev=lavfi" + "--enable-decoder=wrapped_avframe" - "--disable-protocols" - "--enable-protocol=crypto" - "--enable-protocol=file" - "--enable-protocol=rtp" - "--enable-protocol=srtp" - "--enable-protocol=tcp" - "--enable-protocol=udp" - "--enable-protocol=unix" - "--enable-protocol=pipe" + "--disable-protocols" + "--enable-protocol=crypto" + "--enable-protocol=file" + "--enable-protocol=rtp" + "--enable-protocol=srtp" + "--enable-protocol=tcp" + "--enable-protocol=udp" + "--enable-protocol=unix" + "--enable-protocol=pipe" - ;; Enable muxers/demuxers. - "--disable-demuxers" - "--disable-muxers" - "--enable-muxer=rtp" - "--enable-muxer=g722" - "--enable-muxer=g723_1" - "--enable-muxer=g726" - "--enable-muxer=g726le" - "--enable-muxer=h263" - "--enable-muxer=h264" - "--enable-muxer=hevc" - "--enable-muxer=matroska" - "--enable-muxer=webm" - "--enable-muxer=ogg" - "--enable-muxer=pcm_s16be" - "--enable-muxer=pcm_s16le" - "--enable-muxer=wav" - "--enable-demuxer=rtp" - "--enable-demuxer=mjpeg" - "--enable-demuxer=mjpeg_2000" - "--enable-demuxer=mpegvideo" - "--enable-demuxer=gif" - "--enable-demuxer=image_jpeg_pipe" - "--enable-demuxer=image_png_pipe" - "--enable-demuxer=image_webp_pipe" - "--enable-demuxer=matroska" - "--enable-demuxer=m4v" - "--enable-demuxer=mp3" - "--enable-demuxer=ogg" - "--enable-demuxer=flac" - "--enable-demuxer=wav" - "--enable-demuxer=ac3" - "--enable-demuxer=g722" - "--enable-demuxer=g723_1" - "--enable-demuxer=g726" - "--enable-demuxer=g726le" - "--enable-demuxer=pcm_mulaw" - "--enable-demuxer=pcm_alaw" - "--enable-demuxer=pcm_s16be" - "--enable-demuxer=pcm_s16le" - "--enable-demuxer=h263" - "--enable-demuxer=h264" - "--enable-demuxer=hevc" + ;; Enable muxers/demuxers. + "--disable-demuxers" + "--disable-muxers" + "--enable-muxer=rtp" + "--enable-muxer=g722" + "--enable-muxer=g723_1" + "--enable-muxer=g726" + "--enable-muxer=g726le" + "--enable-muxer=h263" + "--enable-muxer=h264" + "--enable-muxer=hevc" + "--enable-muxer=matroska" + "--enable-muxer=webm" + "--enable-muxer=ogg" + "--enable-muxer=pcm_s16be" + "--enable-muxer=pcm_s16le" + "--enable-muxer=wav" + "--enable-demuxer=rtp" + "--enable-demuxer=mjpeg" + "--enable-demuxer=mjpeg_2000" + "--enable-demuxer=mpegvideo" + "--enable-demuxer=gif" + "--enable-demuxer=image_jpeg_pipe" + "--enable-demuxer=image_png_pipe" + "--enable-demuxer=image_webp_pipe" + "--enable-demuxer=matroska" + "--enable-demuxer=m4v" + "--enable-demuxer=mp3" + "--enable-demuxer=ogg" + "--enable-demuxer=flac" + "--enable-demuxer=wav" + "--enable-demuxer=ac3" + "--enable-demuxer=g722" + "--enable-demuxer=g723_1" + "--enable-demuxer=g726" + "--enable-demuxer=g726le" + "--enable-demuxer=pcm_mulaw" + "--enable-demuxer=pcm_alaw" + "--enable-demuxer=pcm_s16be" + "--enable-demuxer=pcm_s16le" + "--enable-demuxer=h263" + "--enable-demuxer=h264" + "--enable-demuxer=hevc" - ;; Enable parsers. - "--enable-parser=h263" - "--enable-parser=h264" - "--enable-parser=hevc" - "--enable-parser=mpeg4video" - "--enable-parser=vp8" - "--enable-parser=vp9" - "--enable-parser=opus" + ;; Enable parsers. + "--enable-parser=h263" + "--enable-parser=h264" + "--enable-parser=hevc" + "--enable-parser=mpeg4video" + "--enable-parser=vp8" + "--enable-parser=vp9" + "--enable-parser=opus" - ;; Encoders/decoders. - "--enable-encoder=adpcm_g722" - "--enable-decoder=adpcm_g722" - "--enable-encoder=adpcm_g726" - "--enable-decoder=adpcm_g726" - "--enable-encoder=adpcm_g726le" - "--enable-decoder=adpcm_g726le" - "--enable-decoder=g729" - "--enable-encoder=g723_1" - "--enable-decoder=g723_1" - "--enable-encoder=rawvideo" - "--enable-decoder=rawvideo" - "--enable-encoder=libx264" - "--enable-decoder=h264" - "--enable-encoder=pcm_alaw" - "--enable-decoder=pcm_alaw" - "--enable-encoder=pcm_mulaw" - "--enable-decoder=pcm_mulaw" - "--enable-encoder=mpeg4" - "--enable-decoder=mpeg4" - "--enable-encoder=libvpx_vp8" - "--enable-decoder=vp8" - "--enable-decoder=vp9" - "--enable-encoder=h263" - "--enable-encoder=h263p" - "--enable-decoder=h263" - "--enable-encoder=mjpeg" - "--enable-decoder=mjpeg" - "--enable-decoder=mjpegb" - "--enable-libspeex" - "--enable-libopus" - "--enable-libvpx" - "--enable-libx264" - "--enable-encoder=libspeex" - "--enable-decoder=libspeex" - "--enable-encoder=libopus" - "--enable-decoder=libopus" + ;; Encoders/decoders. + "--enable-encoder=adpcm_g722" + "--enable-decoder=adpcm_g722" + "--enable-encoder=adpcm_g726" + "--enable-decoder=adpcm_g726" + "--enable-encoder=adpcm_g726le" + "--enable-decoder=adpcm_g726le" + "--enable-decoder=g729" + "--enable-encoder=g723_1" + "--enable-decoder=g723_1" + "--enable-encoder=rawvideo" + "--enable-decoder=rawvideo" + "--enable-encoder=libx264" + "--enable-decoder=h264" + "--enable-encoder=pcm_alaw" + "--enable-decoder=pcm_alaw" + "--enable-encoder=pcm_mulaw" + "--enable-decoder=pcm_mulaw" + "--enable-encoder=mpeg4" + "--enable-decoder=mpeg4" + "--enable-encoder=libvpx_vp8" + "--enable-decoder=vp8" + "--enable-decoder=vp9" + "--enable-encoder=h263" + "--enable-encoder=h263p" + "--enable-decoder=h263" + "--enable-encoder=mjpeg" + "--enable-decoder=mjpeg" + "--enable-decoder=mjpegb" + "--enable-libspeex" + "--enable-libopus" + "--enable-libvpx" + "--enable-libx264" + "--enable-encoder=libspeex" + "--enable-decoder=libspeex" + "--enable-encoder=libopus" + "--enable-decoder=libopus" - ;; Encoders/decoders for ringtones and audio streaming. - "--enable-decoder=flac" - "--enable-decoder=vorbis" - "--enable-decoder=aac" - "--enable-decoder=ac3" - "--enable-decoder=eac3" - "--enable-decoder=mp3" - "--enable-decoder=pcm_u24le" - "--enable-decoder=pcm_u32le" - "--enable-decoder=pcm_u8" - "--enable-decoder=pcm_f16le" - "--enable-decoder=pcm_f32le" - "--enable-decoder=pcm_f64le" - "--enable-decoder=pcm_s16le" - "--enable-decoder=pcm_s24le" - "--enable-decoder=pcm_s32le" - "--enable-decoder=pcm_s64le" - "--enable-decoder=pcm_u16le" - "--enable-encoder=pcm_u8" - "--enable-encoder=pcm_f32le" - "--enable-encoder=pcm_f64le" - "--enable-encoder=pcm_s16le" - "--enable-encoder=pcm_s32le" - "--enable-encoder=pcm_s64le" + ;; Encoders/decoders for ringtones and audio streaming. + "--enable-decoder=flac" + "--enable-decoder=vorbis" + "--enable-decoder=aac" + "--enable-decoder=ac3" + "--enable-decoder=eac3" + "--enable-decoder=mp3" + "--enable-decoder=pcm_u24le" + "--enable-decoder=pcm_u32le" + "--enable-decoder=pcm_u8" + "--enable-decoder=pcm_f16le" + "--enable-decoder=pcm_f32le" + "--enable-decoder=pcm_f64le" + "--enable-decoder=pcm_s16le" + "--enable-decoder=pcm_s24le" + "--enable-decoder=pcm_s32le" + "--enable-decoder=pcm_s64le" + "--enable-decoder=pcm_u16le" + "--enable-encoder=pcm_u8" + "--enable-encoder=pcm_f32le" + "--enable-encoder=pcm_f64le" + "--enable-encoder=pcm_s16le" + "--enable-encoder=pcm_s32le" + "--enable-encoder=pcm_s64le" - ;; Encoders/decoders for images. - "--enable-encoder=gif" - "--enable-decoder=gif" - "--enable-encoder=jpegls" - "--enable-decoder=jpegls" - "--enable-encoder=ljpeg" - "--enable-decoder=jpeg2000" - "--enable-encoder=png" - "--enable-decoder=png" - "--enable-encoder=bmp" - "--enable-decoder=bmp" - "--enable-encoder=tiff" - "--enable-decoder=tiff" + ;; Encoders/decoders for images. + "--enable-encoder=gif" + "--enable-decoder=gif" + "--enable-encoder=jpegls" + "--enable-decoder=jpegls" + "--enable-encoder=ljpeg" + "--enable-decoder=jpeg2000" + "--enable-encoder=png" + "--enable-decoder=png" + "--enable-encoder=bmp" + "--enable-decoder=bmp" + "--enable-encoder=tiff" + "--enable-decoder=tiff" - ;; Filters. - "--enable-filter=scale" - "--enable-filter=overlay" - "--enable-filter=amix" - "--enable-filter=amerge" - "--enable-filter=aresample" - "--enable-filter=format" - "--enable-filter=aformat" - "--enable-filter=fps" - "--enable-filter=transpose" - "--enable-filter=pad" + ;; Filters. + "--enable-filter=scale" + "--enable-filter=overlay" + "--enable-filter=amix" + "--enable-filter=amerge" + "--enable-filter=aresample" + "--enable-filter=format" + "--enable-filter=aformat" + "--enable-filter=fps" + "--enable-filter=transpose" + "--enable-filter=pad" - ;; Decoders for ringtones and audio streaming. - "--enable-decoder=pcm_s16be" - "--enable-decoder=pcm_s16be_planar" - "--enable-decoder=pcm_s16le_planar" - "--enable-decoder=pcm_s24be" - "--enable-decoder=pcm_s24le_planar" - "--enable-decoder=pcm_s32be" - "--enable-decoder=pcm_s32le_planar" - "--enable-decoder=pcm_s64be" - "--enable-decoder=pcm_s8" - "--enable-decoder=pcm_s8_planar" - "--enable-decoder=pcm_u16be" + ;; Decoders for ringtones and audio streaming. + "--enable-decoder=pcm_s16be" + "--enable-decoder=pcm_s16be_planar" + "--enable-decoder=pcm_s16le_planar" + "--enable-decoder=pcm_s24be" + "--enable-decoder=pcm_s24le_planar" + "--enable-decoder=pcm_s32be" + "--enable-decoder=pcm_s32le_planar" + "--enable-decoder=pcm_s64be" + "--enable-decoder=pcm_s8" + "--enable-decoder=pcm_s8_planar" + "--enable-decoder=pcm_u16be" - ;; More filters. - "--enable-filter=afir" - "--enable-filter=split" - "--enable-filter=drawbox" - "--enable-filter=drawtext" - "--enable-filter=rotate" - "--enable-filter=loop" - "--enable-filter=setpts" - "--enable-filter=movie" - "--enable-filter=alphamerge" - "--enable-filter=boxblur" - "--enable-filter=lut" - "--enable-filter=negate" - "--enable-filter=colorkey" - "--enable-filter=transpose" + ;; More filters. + "--enable-filter=afir" + "--enable-filter=split" + "--enable-filter=drawbox" + "--enable-filter=drawtext" + "--enable-filter=rotate" + "--enable-filter=loop" + "--enable-filter=setpts" + "--enable-filter=movie" + "--enable-filter=alphamerge" + "--enable-filter=boxblur" + "--enable-filter=lut" + "--enable-filter=negate" + "--enable-filter=colorkey" + "--enable-filter=transpose" - "--enable-libfreetype" + "--enable-libfreetype" - #$@(if (string-contains (%current-system) "linux") - ;; Leave out the '--enable-cuvid' ... '--enable-encoder=hevc_nvenc' - ;; flags, as there's no support for ffnvcodec in Guix; - ;; it would not work with Mesa anyway. - '("--enable-pic" - "--extra-cxxflags=-fPIC" - "--extra-cflags=-fPIC" - "--target-os=linux" - "--enable-indev=v4l2" - "--enable-indev=xcbgrab" - "--enable-vdpau" - "--enable-hwaccel=h264_vdpau" - "--enable-hwaccel=mpeg4_vdpau" - "--enable-vaapi" - "--enable-hwaccel=h264_vaapi" - "--enable-hwaccel=mpeg4_vaapi" - "--enable-hwaccel=h263_vaapi" - "--enable-hwaccel=vp8_vaapi" - "--enable-hwaccel=mjpeg_vaapi" - "--enable-hwaccel=hevc_vaapi" - "--enable-encoder=h264_vaapi" - "--enable-encoder=vp8_vaapi" - "--enable-encoder=mjpeg_vaapi" - "--enable-encoder=hevc_vaapi") - '()))))) - (inputs (modify-inputs (package-inputs ffmpeg) - (append pipewire))))) + #$@(if (string-contains (%current-system) "linux") + ;; Leave out the '--enable-cuvid' ... '--enable-encoder=hevc_nvenc' + ;; flags, as there's no support for ffnvcodec in Guix; + ;; it would not work with Mesa anyway. + '("--enable-pic" + "--extra-cxxflags=-fPIC" + "--extra-cflags=-fPIC" + "--target-os=linux" + "--enable-indev=v4l2" + "--enable-indev=xcbgrab" + "--enable-vdpau" + "--enable-hwaccel=h264_vdpau" + "--enable-hwaccel=mpeg4_vdpau" + "--enable-vaapi" + "--enable-hwaccel=h264_vaapi" + "--enable-hwaccel=mpeg4_vaapi" + "--enable-hwaccel=h263_vaapi" + "--enable-hwaccel=vp8_vaapi" + "--enable-hwaccel=mjpeg_vaapi" + "--enable-hwaccel=hevc_vaapi" + "--enable-encoder=h264_vaapi" + "--enable-encoder=vp8_vaapi" + "--enable-encoder=mjpeg_vaapi" + "--enable-encoder=hevc_vaapi") + '()))))) + (inputs (modify-inputs (package-inputs ffmpeg) + (append pipewire)))))) (define-public ffmpegthumbnailer (package @@ -2696,14 +2711,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (substitute* "player/lua/ytdl_hook.lua" (("\"yt-dlp\",") (string-append - "\"" (search-input-file inputs "bin/yt-dlp") "\","))))) - (add-before 'configure 'build-reproducibly - (lambda _ - ;; Somewhere in the build system library dependencies are enumerated - ;; and passed as linker flags, but the order in which they are added - ;; varies. See . - ;; Set PYTHONHASHSEED as a workaround for deterministic results. - (setenv "PYTHONHASHSEED" "1")))) + "\"" (search-input-file inputs "bin/yt-dlp") "\",")))))) #:configure-flags #~(list "-Dlibmpv=true" "-Dcdda=enabled" diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index a06082d9503..dc0a1bcc331 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1516,7 +1516,8 @@ using simplestreams index files as the publishing mechanism version ".tar.xz")) (sha256 (base32 - "1dn6pzv0gzkxrjvi60cdzdmyxqlcsvinbrbds91xm4v7wbn5g1dd")))) + "1dn6pzv0gzkxrjvi60cdzdmyxqlcsvinbrbds91xm4v7wbn5g1dd")) + (patches (search-patches "libosinfo-libxml2-fix.patch")))) (build-system meson-build-system) (arguments (list @@ -1775,7 +1776,7 @@ to integrate other virtualization mechanisms if needed.") `(,glib "bin") vala)) (propagated-inputs ;; ‘Required:’ by the installed .pc files. - (list glib libvirt libxml2-next gobject-introspection)) + (list glib libvirt libxml2 gobject-introspection)) (home-page "https://libvirt.org") (synopsis "GLib wrapper around libvirt") (description "libvirt-glib wraps the libvirt library to provide a @@ -1901,8 +1902,8 @@ virtualization library.") libosinfo libvirt libvirt-glib + libxml2 python-minimal - python-libxml2 python-libvirt python-pycairo python-pygobject diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index f961feab3de..6d07462f4d3 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -771,7 +771,7 @@ the user specifically asks to proxy, so the @dfn{VPN} interface no longer "etc/vpnc/vpnc-script"))))) (native-inputs (list gettext-minimal pkg-config)) (inputs (list lz4 vpnc-scripts)) - (propagated-inputs (list libxml2-next gnutls zlib)) + (propagated-inputs (list libxml2 gnutls zlib)) (synopsis "Client for Cisco VPN") (description "OpenConnect is a client for Cisco's AnyConnect SSL VPN, which is diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index 53e6e9d4b1d..5ab1feb4658 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -9,6 +9,8 @@ ;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2024 James Smith ;;; Copyright © 2025 John Kehayias +;;; Copyright © 2025 Maxim Cournoyer +;;; Copyright © 2025 Cayetano Santos ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,6 +46,7 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) + #:use-module (gnu packages libffi) #:use-module (gnu packages llvm) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -53,7 +56,7 @@ (define-public spirv-headers (package (name "spirv-headers") - (version "1.4.309.0") + (version "1.4.321.0") (source (origin (method git-fetch) @@ -62,7 +65,7 @@ (commit (string-append "vulkan-sdk-" version)))) (sha256 (base32 - "15l35w60sbw1i3a48057hvpvldf0lrlfmkz73bp456g2jn5vln23")) + "11nsfr6z11dx6ccyi9anz2iycxr9i06zl8dk4pdllf3dvk5wq61d")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -85,7 +88,7 @@ and for the GLSL.std.450 extended instruction set. (define-public spirv-tools (package (name "spirv-tools") - (version "1.4.309.0") + (version "1.4.321.0") (source (origin (method git-fetch) @@ -93,19 +96,21 @@ and for the GLSL.std.450 extended instruction set. (url "https://github.com/KhronosGroup/SPIRV-Tools") (commit (string-append "vulkan-sdk-" version)))) (sha256 - (base32 "1ykrsd3fl8sx9sq8pc551swacqnl0xwv3p0l1ppdpw2h2mvz8syr")) + (base32 "015xymrzch87f3xkzx9rvlglqp39zx4vphjb2dkl5w6qcpz5s1y8")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments - `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON" - ;; Some packages like mpv fail to link - ;; when the static libraries are built. - "-DSPIRV_TOOLS_BUILD_STATIC=OFF" - (string-append - "-DSPIRV-Headers_SOURCE_DIR=" - (assoc-ref %build-inputs "spirv-headers"))))) + (list + #:configure-flags + #~(list "-DBUILD_SHARED_LIBS=ON" + ;; Some packages like mpv fail to link + ;; when the static libraries are built. + "-DSPIRV_TOOLS_BUILD_STATIC=OFF" + (string-append + "-DSPIRV-Headers_SOURCE_DIR=" + (assoc-ref %build-inputs "spirv-headers"))))) (inputs (list spirv-headers)) - (native-inputs (list pkg-config python)) + (native-inputs (list pkg-config python-minimal)) (home-page "https://github.com/KhronosGroup/SPIRV-Tools") (synopsis "API and commands for processing SPIR-V modules") (description @@ -117,7 +122,7 @@ parser,disassembler, validator, and optimizer for SPIR-V.") (define-public spirv-cross (package (name "spirv-cross") - (version "1.4.309.0") + (version "1.4.321.0") (source (origin (method git-fetch) @@ -125,34 +130,35 @@ parser,disassembler, validator, and optimizer for SPIR-V.") (url "https://github.com/KhronosGroup/SPIRV-Cross") (commit (string-append "vulkan-sdk-" version)))) (sha256 - (base32 "1sckwqz67mh48zypgr1r9x101mcq1dlkh8sxi341ynrxzjk8rm3j")) + (base32 "13fci6z74bxm8pbb3plchx31r04yzb4g11dbzcw3337dsgdllqma")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments - `(;; Disable tests for now due to upstream issue hit when running - ;; update-reference-shaders phase: - ;; . - #:tests? #f - #:configure-flags - (list "-DSPIRV_CROSS_SHARED=YES") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-tests-to-find-deps - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "CMakeLists.txt" - (("\\$\\{CMAKE_(.*)_DIR\\}/external/glslang(.*)/bin") - (string-append (assoc-ref inputs "glslang") "/bin"))) - (substitute* "CMakeLists.txt" - (("\\$\\{CMAKE_(.*)_DIR\\}/external/spirv-tools(.*)/bin") - (string-append (assoc-ref inputs "spirv-tools") "/bin"))))) - (add-before 'check 'update-reference-shaders - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (with-directory-excursion "../source" - (invoke "./update_test_shaders.sh")))))))) + (list + ;; Disable tests for now due to upstream issue hit when running + ;; update-reference-shaders phase: + ;; . + #:tests? #f + #:configure-flags + #~(list "-DSPIRV_CROSS_SHARED=YES") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-tests-to-find-deps + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("\\$\\{CMAKE_(.*)_DIR\\}/external/glslang(.*)/bin") + (string-append (assoc-ref inputs "glslang") "/bin"))) + (substitute* "CMakeLists.txt" + (("\\$\\{CMAKE_(.*)_DIR\\}/external/spirv-tools(.*)/bin") + (string-append (assoc-ref inputs "spirv-tools") "/bin"))))) + (add-before 'check 'update-reference-shaders + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "../source" + (invoke "./update_test_shaders.sh")))))))) (inputs (list glslang spirv-headers spirv-tools)) - (native-inputs (list python)) + (native-inputs (list python-minimal)) (home-page "https://github.com/KhronosGroup/SPIRV-Cross") (synopsis "Parser for and converter of SPIR-V to other shader languages") (description @@ -164,7 +170,7 @@ SPIR-V, aiming to emit GLSL or MSL that looks like human-written code.") (define-public spirv-llvm-translator (package (name "spirv-llvm-translator") - (version "18.1.0") + (version "18.1.10") (source (origin (method git-fetch) @@ -173,7 +179,7 @@ SPIR-V, aiming to emit GLSL or MSL that looks like human-written code.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0yfz02mlnf4ffn67g2ms0w8f7jgdsn438w2dbxd5mvcf5dk2x27b")))) + (base32 "11gmb1kw6j90hwcf6wxjz4pki653lyd8v8kphk7jq67gvw8dkiwy")))) (build-system cmake-build-system) (arguments ;; The test suite is known to fail on several architectures: @@ -201,7 +207,14 @@ SPIR-V, aiming to emit GLSL or MSL that looks like human-written code.") (apply (assoc-ref gnu:%standard-phases 'check) #:test-target "test" args)))))) (inputs (list llvm-18)) - (native-inputs (list clang-18 llvm-18 python-lit spirv-headers)) + (native-inputs + (list + clang-18 + libffi + llvm-18 + pkg-config + python-lit + spirv-headers)) (home-page "https://github.com/KhronosGroup/SPIRV-LLVM-Translator") (synopsis "Bi-directional translation between SPIR-V and LLVM IR") (description @@ -212,7 +225,7 @@ translation between LLVM IR and SPIR-V.") (define-public glslang (package (name "glslang") - (version "1.4.309.0") + (version "1.4.321.0") (source (origin (method git-fetch) @@ -221,36 +234,39 @@ translation between LLVM IR and SPIR-V.") (commit (string-append "vulkan-sdk-" version)))) (sha256 (base32 - "0kzzjh2dxzkznp75jk9sl4fjjgdy5s6xr8vha9av6cvi3jxm2i8y")) + "1b0zsrv12b34q0wp9g85x11kpd5kjvx4lbn7xv8b4szfpwdkxxxh")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments - `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON" - "-DALLOW_EXTERNAL_SPIRV_TOOLS=ON" - ,@(if (target-riscv64?) - `("-DCMAKE_EXE_LINKER_FLAGS=-latomic") - '())) - #:phases (modify-phases %standard-phases - ,@(if (target-ppc32?) - `((add-after 'unpack 'skip-failing-test - (lambda _ - ;; TODO: Figure out why this test fails. - (substitute* "Test/runtests" - ((".*remap\\.invalid" all) - (string-append "# " all)))))) - '()) - (replace 'check - (lambda* (#:key tests? parallel-tests? #:allow-other-keys) - (when tests? - (invoke "ctest" - "-j" (if parallel-tests? - (number->string (parallel-job-count)) - "1") - "--rerun-failed" - "--output-on-failure"))))))) + (list + #:configure-flags + #~(list "-DBUILD_SHARED_LIBS=ON" + "-DALLOW_EXTERNAL_SPIRV_TOOLS=ON" + #$@(if (target-riscv64?) + `("-DCMAKE_EXE_LINKER_FLAGS=-latomic") + '())) + #:phases + #~(modify-phases %standard-phases + #$@(if (target-ppc32?) + `((add-after 'unpack 'skip-failing-test + (lambda _ + ;; TODO: Figure out why this test fails. + (substitute* "Test/runtests" + ((".*remap\\.invalid" all) + (string-append "# " all)))))) + '()) + (replace 'check + (lambda* (#:key tests? parallel-tests? #:allow-other-keys) + (when tests? + (invoke "ctest" + "-j" (if parallel-tests? + (number->string (parallel-job-count)) + "1") + "--rerun-failed" + "--output-on-failure"))))))) (inputs (list spirv-tools)) (native-inputs - (list pkg-config python)) + (list pkg-config python-minimal)) (home-page "https://github.com/KhronosGroup/glslang") (synopsis "OpenGL and OpenGL ES shader front end and validator") (description @@ -317,7 +333,7 @@ Enhanced Subpixel Morphological Anti-Aliasing (define-public vulkan-headers/no-loader (package (name "vulkan-headers") - (version "1.4.309.0") + (version "1.4.321.0") (source (origin (method git-fetch) @@ -327,7 +343,7 @@ Enhanced Subpixel Morphological Anti-Aliasing (file-name (git-file-name name version)) (sha256 (base32 - "0ncj4gqb5zmkgmd205frrq8rxxdqlissqpj2fq3wxkdbdyx7pwid")))) + "1kamn5hw5lpw4yxyri4mlrryzhn33bnnrqby0yxla45z5f5f6fb3")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; No tests. @@ -361,7 +377,7 @@ Enhanced Subpixel Morphological Anti-Aliasing (define-public vulkan-loader (package (name "vulkan-loader") - (version "1.4.309.0") + (version "1.4.321.0") (source (origin (method git-fetch) @@ -371,7 +387,7 @@ Enhanced Subpixel Morphological Anti-Aliasing (file-name (git-file-name name version)) (sha256 (base32 - "1y6wqc8adzg7ndmbr95nzhcxf93qsfndfdnsym5pkbjfx454151d")))) + "0fbpypznznvwkqgf2zw85xdpbiq92j95xyldhnjk94lia6bs4klb")))) (build-system cmake-build-system) (arguments (list @@ -387,31 +403,33 @@ Enhanced Subpixel Morphological Anti-Aliasing %build-inputs "include/vulkan")))) #$@(if (%current-target-system) #~("-DBUILD_TESTS=OFF" "-DUSE_GAS=OFF" - (string-append "-DPKG_CONFIG_EXECUTABLE=" - (search-input-file - %build-inputs - (string-append "bin/" #$(pkg-config-for-target))))) + (string-append + "-DPKG_CONFIG_EXECUTABLE=" + (search-input-file + %build-inputs + (string-append "bin/" #$(pkg-config-for-target))))) #~("-DBUILD_TESTS=ON"))) - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'fix-pkg-config-file - (lambda* (#:key inputs #:allow-other-keys) - (let ((vulkan-headers (dirname (search-input-directory - inputs "include/vulkan")))) - ;; Ensure the pkg-config file refers to vulkan-headers. - (substitute* "loader/vulkan.pc.in" - (("^includedir=.*") - (string-append "includedir=" vulkan-headers "\n")))))) - (add-after 'unpack 'use-system-googletest - (lambda _ - (substitute* "tests/CMakeLists.txt" - (((string-append "message\\(FATAL_ERROR \"Could not " - "find googletest directory. See BUILD.md\"\\)")) - "find_package(GTest REQUIRED)")) - ;; Use the namespaced variable. - (substitute* "tests/framework/CMakeLists.txt" - (("PUBLIC gtest ") - "PUBLIC GTest::gtest "))))))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-pkg-config-file + (lambda* (#:key inputs #:allow-other-keys) + (let ((vulkan-headers (dirname (search-input-directory + inputs "include/vulkan")))) + ;; Ensure the pkg-config file refers to vulkan-headers. + (substitute* "loader/vulkan.pc.in" + (("^includedir=.*") + (string-append "includedir=" vulkan-headers "\n")))))) + (add-after 'unpack 'use-system-googletest + (lambda _ + (substitute* "tests/CMakeLists.txt" + (((string-append + "message\\(FATAL_ERROR \"Could not " + "find googletest directory. See BUILD.md\"\\)")) + "find_package(GTest REQUIRED)")) + ;; Use the namespaced variable. + (substitute* "tests/framework/CMakeLists.txt" + (("PUBLIC gtest ") + "PUBLIC GTest::gtest "))))))) (native-inputs (list googletest libxrandr @@ -440,50 +458,56 @@ and the ICD.") license:bsd-3)))) (define-public vulkan-tools - (package - (name "vulkan-tools") - (version "1.4.309.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/KhronosGroup/Vulkan-Tools") - (commit (string-append "vulkan-sdk-" version)))) - (file-name (git-file-name name version)) - (modules '((guix build utils))) - (snippet #~(substitute* "tests/icd/mock_icd_tests.cpp" - ;; Disable driver info test since it relies on git branch info - (("ASSERT_EQ\\(std::string\\(driver_properties\\.driverInfo\\)") - "// ASSERT_EQ(std::string(driver_properties.driverInfo)"))) - (sha256 - (base32 - "0ywvvkra29y2cvw8i9laf4skn6cl7phrwshcc7z9dljb3il87cym")))) - (build-system cmake-build-system) - (inputs - (list glslang libxrandr vulkan-loader wayland wayland-protocols)) - (native-inputs - (list googletest pkg-config python vulkan-volk vulkan-headers)) - (arguments - `(#:configure-flags (list "-DBUILD_TESTS=ON") - #:phases (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "./tests/vulkan_tools_tests"))))))) - (home-page - "https://github.com/KhronosGroup/Vulkan-Tools") - (synopsis "Tools and utilities for Vulkan") - (description - "Vulkan-Tools provides tools and utilities that can assist development by + ;; Required to fix an issue. See: + ;; https://github.com/KhronosGroup/Vulkan-Tools/issues/1130 + (let ((commit "105d6c1fede00c3a9055e5a531ebf3d99bac406e") + (revision "1")) + (package + (name "vulkan-tools") + (version (git-version "1.4.321.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/Vulkan-Tools") + (commit commit))) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + #~(substitute* "tests/icd/mock_icd_tests.cpp" + ;; Disable driver info test since it relies on git branch info + (("ASSERT_EQ\\(std::string\\(driver_properties\\.driverInfo\\)") + "// ASSERT_EQ(std::string(driver_properties.driverInfo)"))) + (sha256 + (base32 + "1dphpf4v0kip2b0vhhwb136gjjmgxc64gg26sg3wpg6nnwakpznc")))) + (build-system cmake-build-system) + (inputs + (list glslang libxrandr vulkan-loader wayland wayland-protocols)) + (native-inputs + (list googletest pkg-config python vulkan-volk vulkan-headers)) + (arguments + (list + #:configure-flags #~(list "-DBUILD_TESTS=ON") + #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "./tests/vulkan_tools_tests"))))))) + (home-page + "https://github.com/KhronosGroup/Vulkan-Tools") + (synopsis "Tools and utilities for Vulkan") + (description + "Vulkan-Tools provides tools and utilities that can assist development by enabling developers to verify their applications correct use of the Vulkan API.") - (license (list license:asl2.0)))) ;LICENSE.txt + (license (list license:asl2.0))))) ;LICENSE.txt (define-public shaderc (package (name "shaderc") ;; shaderc doesn't follow the versioning scheme of vulkan sdk - (version "2025.1") + (version "2025.3") (source (origin (method git-fetch) @@ -493,44 +517,44 @@ API.") (file-name (git-file-name name version)) (sha256 (base32 - "0hbsvyyy5fzgal83z8kx4a3x9d2fnd2fcs53l3s9n0pyybip3i5j")))) + "0w1mj5b3n6kp0brqindb7fppvllzlywkdk1zglkbj3bw8k0795mb")))) (build-system cmake-build-system) (arguments - `(;; FIXME: Skip most of the tests, because enabling system gtest breaks - ;; the build: . - #:configure-flags - (list "-DSHADERC_SKIP_TESTS=ON" - ;; The two flags are copied from: - ;; https://sdk.lunarg.com/sdk/download/1.3.280.0/linux/config.json - "-DSHADERC_ENABLE_SHARED_CRT=ON" - "-DSHADERC_SKIP_COPYRIGHT_CHECK=ON" - "-DPYTHON_EXECUTABLE=python3" - ;; Note: despite the name, this just specifies the headers. - (string-append "-Dglslang_SOURCE_DIR=" - (assoc-ref %build-inputs "glslang") "/include/glslang")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'do-not-look-for-bundled-sources - (lambda _ - (substitute* "CMakeLists.txt" - (("add_subdirectory\\(third_party\\)") - "")) - - (substitute* "glslc/test/CMakeLists.txt" - (("\\$") - (which "spirv-dis"))) - - ;; Do not attempt to use git to encode version information. - (substitute* "glslc/CMakeLists.txt" - (("add_dependencies\\(glslc_exe build-version\\)") - "")) - (call-with-output-file "glslc/src/build-version.inc" - (lambda (port) - (format port "\"~a\"\n\"~a\"\n\"~a\"~%" - ,version - ,(package-version spirv-tools) - ,(package-version glslang)))) - #t))))) + (list + #:tests? #f ; We don't build the tests, see below. + ;; FIXME: Skip most of the tests, because enabling system gtest breaks + ;; the build: . + #:configure-flags + #~(list "-DSHADERC_SKIP_TESTS=ON" + ;; The two flags are copied from: + ;; https://sdk.lunarg.com/sdk/download/1.3.280.0/linux/config.json + "-DSHADERC_ENABLE_SHARED_CRT=ON" + "-DSHADERC_SKIP_COPYRIGHT_CHECK=ON" + "-DPYTHON_EXECUTABLE=python3" + ;; Note: despite the name, this just specifies the headers. + (string-append "-Dglslang_SOURCE_DIR=" + #$(this-package-input "glslang") + "/include/glslang")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'do-not-look-for-bundled-sources + (lambda _ + (substitute* "CMakeLists.txt" + (("add_subdirectory\\(third_party\\)") + "")) + (substitute* "glslc/test/CMakeLists.txt" + (("\\$") + (which "spirv-dis"))) + ;; Do not attempt to use git to encode version information. + (substitute* "glslc/CMakeLists.txt" + (("add_dependencies\\(glslc_exe build-version\\)") + "")) + (call-with-output-file "glslc/src/build-version.inc" + (lambda (port) + (format port "\"~a\"\n\"~a\"\n\"~a\"~%" + #$version + #$(package-version spirv-tools) + #$(package-version glslang))))))))) (inputs (list glslang spirv-headers spirv-tools)) (native-inputs @@ -544,56 +568,57 @@ shader compilation.") (define-public vkd3d (let ((commit "56cd4a94d541707959ce7677af6d1a34739e5579")) ; Release 1.2. (package - (name "vkd3d") - (version "1.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://source.winehq.org/git/vkd3d.git") - (commit commit))) - (sha256 - (base32 - "1n4a622drgnprvz5hjxzyzcsg2lp5rlf1sajki2vzf5gsx6fdpk8")) - (file-name (string-append name "-" version "-checkout")))) - (build-system gnu-build-system) - (arguments - `(#:configure-flags '("--with-spirv-tools") - #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-for-new-vulkan - (lambda _ - ;; Mimic upstream commit 8e7bf8a5c3e0047 for - ;; compatibility with newer vulkan-headers. - (substitute* "libs/vkd3d/vkd3d_private.h" - (("VK_PIPELINE_BIND_POINT_RANGE_SIZE") - "2u")) - #t))))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("gettext" ,gettext-minimal) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config))) - (inputs - (list libx11 - libxcb - spirv-headers - spirv-tools - vulkan-headers - vulkan-loader - wine-minimal ; Needed for 'widl'. - xcb-util - xcb-util-keysyms - xcb-util-wm)) - (home-page "https://source.winehq.org/git/vkd3d.git/") - (synopsis "Direct3D 12 to Vulkan translation library") - (description "vkd3d is a library for translating Direct3D 12 to Vulkan.") - (license license:lgpl2.1)))) + (name "vkd3d") + (version "1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://source.winehq.org/git/vkd3d.git") + (commit commit))) + (sha256 + (base32 + "1n4a622drgnprvz5hjxzyzcsg2lp5rlf1sajki2vzf5gsx6fdpk8")) + (file-name (string-append name "-" version "-checkout")))) + (build-system gnu-build-system) + (arguments + (list + #:configure-flags #~(list "--with-spirv-tools") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-for-new-vulkan + (lambda _ + ;; Mimic upstream commit 8e7bf8a5c3e0047 for + ;; compatibility with newer vulkan-headers. + (substitute* "libs/vkd3d/vkd3d_private.h" + (("VK_PIPELINE_BIND_POINT_RANGE_SIZE") + "2u"))))))) + (native-inputs + (list autoconf + automake + gettext-minimal + libtool + pkg-config)) + (inputs + (list libx11 + libxcb + spirv-headers + spirv-tools + vulkan-headers + vulkan-loader + wine-minimal ; Needed for 'widl'. + xcb-util + xcb-util-keysyms + xcb-util-wm)) + (home-page "https://source.winehq.org/git/vkd3d.git/") + (synopsis "Direct3D 12 to Vulkan translation library") + (description "vkd3d is a library for translating Direct3D 12 to Vulkan.") + (license license:lgpl2.1)))) (define-public vulkan-validationlayers (package (name "vulkan-validationlayers") - (version "1.4.309.0") + (version "1.4.321.0") (source (origin (method git-fetch) (uri (git-reference @@ -608,7 +633,7 @@ shader compilation.") ""))) (sha256 (base32 - "1dvgbgfxcp3ypy06j5m561j1gag0hk40zqd477cdv1kizv6i7nsk")))) + "1lmkcgz80386304s6kr4fi825r5004305fhvfc7gmsqdih0bqcv9")))) (build-system cmake-build-system) (inputs (list glslang libxrandr @@ -619,39 +644,43 @@ shader compilation.") vulkan-loader vulkan-utility-libraries wayland)) - (native-inputs (list googletest pkg-config python spirv-headers vulkan-headers)) + (native-inputs + (list googletest pkg-config python spirv-headers vulkan-headers)) (arguments (list #:tests? #f ; tests crash on some hardware (various upstream issues) #:configure-flags #~(list "-DBUILD_TESTS=ON") - #:phases #~(modify-phases %standard-phases - (add-after 'install 'set-layer-path-in-manifest - (lambda _ - (let ((manifest (string-append #$output - "/share/vulkan/explicit_layer.d" - "/VkLayer_khronos_validation.json"))) - (substitute* manifest - (("\"libVkLayer_khronos_validation.so\"") - (string-append "\"" #$output - "/lib/libVkLayer_khronos_validation.so\"")))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (setenv "VK_LAYER_PATH" - (string-append (getcwd) "/layers")) - (setenv "LD_LIBRARY_PATH" - (string-append #$(this-package-input - "vulkan-loader") "/lib")) - (setenv "MESA_SHADER_CACHE_DIR" - (string-append (getcwd) "/shader-cache")) - (setenv "XDG_RUNTIME_DIR" (getcwd)) - (invoke "./tests/vk_layer_validation_tests"))))))) + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'set-layer-path-in-manifest + (lambda _ + (let ((manifest + (string-append #$output + "/share/vulkan/explicit_layer.d" + "/VkLayer_khronos_validation.json"))) + (substitute* manifest + (("\"libVkLayer_khronos_validation.so\"") + (string-append + "\"" #$output + "/lib/libVkLayer_khronos_validation.so\"")))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "VK_LAYER_PATH" + (string-append (getcwd) "/layers")) + (setenv "LD_LIBRARY_PATH" + (string-append #$(this-package-input + "vulkan-loader") "/lib")) + (setenv "MESA_SHADER_CACHE_DIR" + (string-append (getcwd) "/shader-cache")) + (setenv "XDG_RUNTIME_DIR" (getcwd)) + (invoke "./tests/vk_layer_validation_tests"))))))) (home-page "https://github.com/KhronosGroup/Vulkan-ValidationLayers") (synopsis "Khronos official validation layers for Vulkan") (description - "Vulkan-ValidationLayers provides the Khronos official validation layers that -can assist development by enabling developers to verify their applications correctly -use the Vulkan API.") + "Vulkan-ValidationLayers provides the Khronos official validation layers +that can assist development by enabling developers to verify their +applications correctly use the Vulkan API.") (license license:asl2.0))) (define-public vulkan-volk @@ -696,7 +725,7 @@ skipping loader dispatch overhead.") (define-public vulkan-memory-allocator (package (name "vulkan-memory-allocator") - (version "3.2.1") + (version "3.3.0") (source (origin (method git-fetch) @@ -707,11 +736,9 @@ skipping loader dispatch overhead.") (file-name (git-file-name name version)) (sha256 (base32 - "0y8ccx080bqrgv71ggixxpl57vc5znq55rnvl4v4srfkjxhz6yiy")))) + "1qadyd9nir9ip176fsxvl91w60mnyvk07d5ihjlpqvl7rdbjmwac")))) (build-system cmake-build-system) - (arguments - ;; no test - `(#:tests? #f)) + (arguments (list #:tests? #f)) ;no tests (inputs (list vulkan-loader vulkan-headers)) (synopsis "Vulkan memory allocation library") (description @@ -725,7 +752,7 @@ storage.") (define-public vulkan-utility-libraries (package (name "vulkan-utility-libraries") - (version "1.4.309.0") + (version "1.4.321.0") (source (origin (method git-fetch) @@ -733,7 +760,7 @@ storage.") (url "https://github.com/KhronosGroup/Vulkan-Utility-Libraries") (commit (string-append "vulkan-sdk-" version)))) (sha256 - (base32 "1ihk95gjszk9yn3r6xvda83qp7f463m86srj6cq43z01sk2naxkr")) + (base32 "1xj860z596p2wgdfc5yr15q0hasz8p4ci6x0j1wim7jklp92g89i")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ea3f277ca74..167651f601e 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -77,6 +77,7 @@ ;;; Copyright © 2025 Josep Bigorra ;;; Copyright © 2025 Ashish SHUKLA ;;; Copyright © 2025 Philippe Swartvagher +;;; Copyright © 2025 pinoaffe ;;; ;;; This file is part of GNU Guix. ;;; @@ -138,6 +139,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages databases) + #:use-module (gnu packages digest) #:use-module (gnu packages django) #:use-module (gnu packages docbook) #:use-module (gnu packages datastructures) @@ -188,6 +190,7 @@ #:use-module (gnu packages man) #:use-module (gnu packages markup) #:use-module (gnu packages ncurses) + #:use-module (gnu packages nettle) #:use-module (gnu packages networking) #:use-module (gnu packages node) #:use-module (gnu packages nss) @@ -215,6 +218,8 @@ #:use-module (gnu packages serialization) #:use-module (gnu packages skribilo) #:use-module (gnu packages sphinx) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages tcl) #:use-module (gnu packages telephony) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) @@ -6742,6 +6747,66 @@ and similar services.") (home-page "http://surfraw.org/") (license license:public-domain)))) +(define-public bookmarkfs + (package + (name "bookmarkfs") + (version "0.1.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/cismonx/bookmarkfs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ad7h3ffwj7dg7c788znc8b0wr6v5xx83sans8xa6f93x9c56frm")))) + (build-system gnu-build-system) + (arguments (list + #:tests? #f ; tests seem to not work in sandbox + #:configure-flags #~(list + "--enable-bookmarkfs-util" + "--enable-bookmarkfs-mount" + "--enable-bookmarkfs-fsck" + "--enable-bookmarkfs-mkfs" + "--enable-bookmarkctl" + "--enable-backend-firefox" + "--enable-backend-chromium" + "--enable-fsck-handler-tcl") + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'patch-flush + (lambda _ + (substitute* "src/fs_ops.c" + (("fi->noflush = 1;") "fi->flush = 0;")))) + (add-before 'configure 'patch-configure + (lambda _ + (substitute* "configure" + (("AX_PTHREAD") ""))))))) + (inputs (list fuse + libseccomp + nettle + jansson + readline + tcl + uriparser + zlib + xxhash + sqlite)) + (native-inputs (list autoconf-2.72 + autoconf-archive + automake + libtool + pkg-config)) + (home-page "https://www.nongnu.org/bookmarkfs/") + (synopsis "FUSE filesystem based interface to the bookmark data of web browsers") + (description "BookmarkFS is a FUSE-based pseudo-filesystem which provides an +interface to the bookmark data of web browsers. + +Currently, the following browsers (and their derivatives) are supported: +- @code{firefox} +- @code{chromium}.") + (license license:gpl3+))) + (define-public darkhttpd (package (name "darkhttpd") diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index 8e36fea6de9..eec6bea4ed6 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2021 Michael Rohleder +;;; Copyright © 2025 John Kehayias ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,17 +47,14 @@ (define-public wget (package - (replacement wget/fixed) (name "wget") - (version "1.21.4") + (version "1.25.0") (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/wget/wget-" - version ".tar.lz")) - (sha256 - (base32 - "1nabhxx3rg28h2scba2mlawzjyx3dw07j2kjn76cpvahbyd630rn")))) + (method url-fetch) + (uri (string-append "mirror://gnu/wget/wget-" version ".tar.lz")) + (sha256 + (base32 "07waw3s51zmjqzqq717xyyd353qc1ajcd38lh7y8i85hav3mq8hr")))) (build-system gnu-build-system) (inputs (list gnutls libidn2 libpsl)) @@ -76,17 +74,6 @@ wild cards, supports proxies and cookies, and it can convert absolute links in downloaded documents to relative links.") (license license:gpl3+))) ; some files are under GPLv2+ -(define-public wget/fixed - (package - (inherit wget) - (version "1.25.0") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/wget/wget-" version ".tar.lz")) - (sha256 - (base32 "07waw3s51zmjqzqq717xyyd353qc1ajcd38lh7y8i85hav3mq8hr")))))) - (define-public wgetpaste (package (name "wgetpaste") diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index df1796f7808..e9f9311db7d 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -185,7 +185,7 @@ integrate Windows applications into your desktop.") libgphoto2 openldap samba - sane-backends + sane libpcap libusb libice diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 7b91e2b33a0..5130bf99a3e 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -428,7 +428,7 @@ loginctl commands (lock/unlock/before-sleep) and inhibit.") hyprland-qtutils hyprlang hyprutils - libinput-minimal-next + libinput-minimal libxcursor libxkbcommon mesa diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 88d06c98f8c..82ed070d402 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -53,7 +53,7 @@ ;;; Copyright © 2021 ikasero ;;; Copyright © 2021 Felix Gruber ;;; Copyright © 2021, 2025 jgart -;;; Copyright © 2022, 2024 John Kehayias +;;; Copyright © 2022, 2024, 2025 John Kehayias ;;; Copyright © 2022 Jai Vetrivelan ;;; Copyright © 2022 Derek Chuank ;;; Copyright © 2022, 2023 Wamm K. D. @@ -633,14 +633,16 @@ avoiding password prompts when X11 forwarding has already been setup.") (define-public libxkbcommon (package (name "libxkbcommon") - (version "1.6.0") + (version "1.11.0") (source (origin - (method url-fetch) - (uri (string-append "https://xkbcommon.org/download/libxkbcommon-" - version ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/xkbcommon/libxkbcommon") + (commit (string-append "xkbcommon-" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0awwz5pg9x5bj0d7dpg4a7bd4gl6k55mlpxwb12534fkrpn19p0f")))) + "1swa6rf63c0wi0qq5r661g63yk2iwa9l66148078xkrwcf05sp91")))) (outputs '("out" "doc")) (build-system meson-build-system) (inputs @@ -652,12 +654,19 @@ avoiding password prompts when X11 forwarding has already been setup.") xkeyboard-config)) (native-inputs (append - (list bison doxygen pkg-config python - ;; wayland-scanner is required at build time. - wayland) - (if (%current-target-system) - (list pkg-config-for-build) - '()))) + (list bison + doxygen + pkg-config + python + ;; wayland-scanner is required at build time. + wayland + ;; Xvfb for tests. + xorg-server-for-tests + ;; xkbcomp for tests. + xkbcomp) + (if (%current-target-system) + (list pkg-config-for-build) + '()))) (arguments (list #:configure-flags @@ -666,7 +675,8 @@ avoiding password prompts when X11 forwarding has already been setup.") %build-inputs "share/X11/xkb")) (string-append "-Dx-locale-root=" (search-input-directory - %build-inputs "share/X11/locale"))) + %build-inputs "share/X11/locale")) + "-Denable-docs=true") #:phases #~(modify-phases %standard-phases (add-after 'install 'move-doc @@ -695,41 +705,6 @@ X11 (yet).") "See 'COPYING' in the distribution.")) (properties '((cpe-name . "xkbcommon"))))) -(define-public libxkbcommon-1.5 - (package - (inherit libxkbcommon) - (version "1.5.0") - (source (origin - (inherit (package-source libxkbcommon)) - (method url-fetch) - (uri (string-append "https://xkbcommon.org/download/libxkbcommon-" - version ".tar.xz")) - (sha256 - (base32 - "05z08rpa464x8myjxddhix7jp9jcmakd7xrybx4hz8dwpg2123sn")))))) - -(define-public libxkbcommon-1.8 - (package - (inherit libxkbcommon) - (version "1.8.1") - (source (origin - (inherit (package-source libxkbcommon)) - (method git-fetch) - (uri (git-reference - (url "https://github.com/xkbcommon/libxkbcommon") - (commit (string-append "xkbcommon-" version)))) - (file-name (git-file-name (package-name libxkbcommon) version)) - (sha256 - (base32 - "0fz6mf99lyp7x6g6v33210hhpykbg32fjmckyvxfpd805cza0xrj")))) - (arguments - (substitute-keyword-arguments (package-arguments libxkbcommon) - ((#:configure-flags flags #~(list)) - #~(cons "-Denable-docs=true" #$flags)))) - (native-inputs (modify-inputs (package-native-inputs libxkbcommon) - (append xorg-server ;; Xvfb for tests - xkbcomp))))) ;; xkbcomp for tests - (define-public libfakekey (package (name "libfakekey") @@ -902,31 +877,29 @@ typing tool (@code{wtype}, @code{xdotool}, etc.), or via standard output.") (define-public pixman (package (name "pixman") - (version "0.42.2") + (version "0.46.4") (source (origin (method url-fetch) (uri (string-append "https://www.cairographics.org/releases/pixman-" version ".tar.gz")) (sha256 - (base32 "0pk298iqxqr64vk3z6nhjwr6vjg1971zfrjkqy5r9zd2mppq057a")) + (base32 "072rd8sd454rzybmxx90fdzvabzvx0pr57y745qfwnxxqgml976h")) (patches (search-patches "pixman-CVE-2016-5296.patch")))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:configure-flags - (list "--disable-static" - "--enable-timers" - "--enable-gnuplot" - ,@(if (target-arm32?) - `("--disable-arm-simd") - '())))) - (native-inputs (list pkg-config)) - (inputs (list libpng zlib)) + (list + #:configure-flags + #~(list "-Dtimers=true" + "-Dgnuplot=true" + #$@(if (target-arm32?) + '("-Darm-simd=false") + '())))) (synopsis "Low-level pixel manipulation library") (description "Pixman is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterisation.") - (home-page "http://www.pixman.org/") + (home-page "https://www.pixman.org/") (license license:expat))) (define-public libdrm diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index b7482bfbe97..2b38ed9d03f 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -37,6 +37,7 @@ ;;; Copyright © 2024 Nicolas Graves ;;; Copyright © 2024 gemmaro ;;; Copyright © 2025 Antoine Côté +;;; Copyright © 2025 John Kehayias ;;; ;;; This file is part of GNU Guix. ;;; @@ -188,19 +189,19 @@ binary extension of XML for the purpose of storing and manipulating data in a hierarchical form with variable field lengths.") (license license:lgpl2.1))) -;; Note: Remember to check python-libxml2 when updating this package. (define-public libxml2 (package (name "libxml2") - (version "2.9.14") + (version "2.14.6") (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/libxml2/" - (version-major+minor version)"/libxml2-" - version ".tar.xz")) - (sha256 - (base32 - "1vnzk33wfms348lgz9pvkq9li7jm44pvm73lbr3w1khwgljlmmv0")))) + (method url-fetch) + (uri (string-append "mirror://gnome/sources/libxml2/" + (version-major+minor version)"/libxml2-" + version ".tar.xz")) + (sha256 + (base32 + "0fi0jysncjpvhvp29qcx3bydndapwphgkx7ial5kzf7ymyh5ir3w")) + (patches (search-patches "python-libxml2-utf8.patch")))) (build-system gnu-build-system) (outputs '("out" "static" "doc")) (arguments @@ -218,6 +219,13 @@ hierarchical form with variable field lengths.") (string-append "/bin/" file)) ".")) '("config.guess" "config.sub"))))) #~()) + (add-before 'configure 'configure-python + (lambda _ + (substitute* "python/setup.py.in" + ;; The build system ignores C_INCLUDE_PATH & co, so + ;; provide the absolute directory name. + (("/opt/include") + (string-append #$output "/include/libxml2"))))) (add-after 'install 'use-other-outputs (lambda _ (let ((doc (string-append #$output:doc "/share/")) @@ -245,7 +253,7 @@ hierarchical form with variable field lengths.") (native-inputs (append (if (target-loongarch64?) (list config) '()) - (list perl))) + (list perl pkg-config python-minimal))) (native-search-paths (list $SGML_CATALOG_FILES $XML_CATALOG_FILES)) (search-paths native-search-paths) @@ -254,57 +262,23 @@ hierarchical form with variable field lengths.") project (but it is usable outside of the Gnome platform).") (license license:x11))) -(define-public libxml2-next - (package - (inherit libxml2) - (name "libxml2") - (version "2.14.5") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/libxml2/" - (version-major+minor version)"/libxml2-" - version ".tar.xz")) - (sha256 - (base32 - "0jylv2kkyzih710blg24al7b43iaqg6xsfn52qy865knagrhdl03")))) - (native-inputs (modify-inputs (package-native-inputs libxml2) - (append pkg-config - python-minimal))))) - -(define-public libxml2-next/fixed - (package - (inherit libxml2) - (properties '((hidden? . #t))) - (name "libxml2") - (version "2.14.5") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/libxml2/" - (version-major+minor version)"/libxml2-" - version ".tar.xz")) - (sha256 - (base32 - "0jylv2kkyzih710blg24al7b43iaqg6xsfn52qy865knagrhdl03")))) - (arguments - (substitute-keyword-arguments (package-arguments libxml2-next) - ((#:phases phases #~%standard-phases) - #~(modify-phases #$phases - (add-after 'install 'symlink-hardcoded-lib-for-grafts - (lambda _ - (let ((lib (string-append #$output "/lib/libxml2.so"))) - ;; XXX: When grafting, we need to reproduce the file paths to - ;; the libraries too. - (symlink (string-append lib ".16") - (string-append lib ".2"))))))))) - (native-inputs (modify-inputs (package-native-inputs libxml2) - (append pkg-config - python-minimal))))) - -(define-public libxml2-next-for-grafting - (package - (inherit libxml2) - (replacement libxml2-next/fixed) - (properties '((hidden? . #t))))) +;; This is an old version (the most recent that works) of libxml2 solely for +;; building librsvg-2.40. +;; XXX: Remove once Rust (and thus newer librsvg) is supported on all +;; platforms. +(define-public libxml2-2.11 + (hidden-package + (package + (inherit libxml2) + (version "2.11.9") + (source (origin + (inherit (package-source libxml2)) + (uri (string-append "mirror://gnome/sources/libxml2/" + (version-major+minor version)"/libxml2-" + version ".tar.xz")) + (sha256 + (base32 + "17w0a622466k2hi5nln276la6rzfr9xaip3lqj71hmyvxyhmf0bq"))))))) (define-public libxml2-xpath0 (package/inherit libxml2 @@ -320,34 +294,7 @@ provides an @code{--xpath0} option to @command{xmllint} that enables it to output XPath results with a null delimiter."))) (define-public python-libxml2 - (package/inherit libxml2 - (name "python-libxml2") - (source (origin - (inherit (package-source libxml2)) - (patches - (append (search-patches "python-libxml2-utf8.patch") - (origin-patches (package-source libxml2)))))) - (build-system pyproject-build-system) - (outputs '("out")) - (arguments - (list - ;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'. - #:tests? #f - #:phases - #~(modify-phases %standard-phases - (add-before 'build 'configure - (lambda* (#:key inputs #:allow-other-keys) - (chdir "python") - (let ((libxml2-headers (search-input-directory - inputs "include/libxml2"))) - (substitute* "setup.py" - ;; The build system ignores C_INCLUDE_PATH & co, so - ;; provide the absolute directory name. - (("/opt/include") - (dirname libxml2-headers))))))))) - (native-inputs (list python-setuptools)) - (inputs (list libxml2)) - (synopsis "Python bindings for the libxml2 library"))) + (deprecated-package "python-libxml2" libxml2)) (define-public libxlsxwriter (package @@ -394,7 +341,7 @@ formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.") (define-public libxslt (package (name "libxslt") - (version "1.1.37") + (version "1.1.43") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources" @@ -402,8 +349,7 @@ formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.") "/libxslt-" version ".tar.xz")) (sha256 (base32 - "1d1s2bk0m6d7bzml9w90ycl0jlpcy4v07595cwaddk17h3f2fjrs")) - (patches (search-patches "libxslt-generated-ids.patch")))) + "0fhqy01x99iia8306czakxza4spzyn88w4bin4sw5bx57hw6ngas")))) (build-system gnu-build-system) (arguments (list #:phases @@ -1256,7 +1202,7 @@ XSL-T processor. It also performs any necessary post-processing.") "1shk40mpaqaf05skgyxa7qxgcarjd6i1fadn2sk0b8lakfv96bnq")))) (build-system gnu-build-system) (propagated-inputs ; according to xmlsec1.pc - (list libxml2-next libxslt)) + (list libxml2 libxslt)) (inputs (list gnutls libgcrypt libltdl)) (native-inputs @@ -1937,13 +1883,13 @@ because lxml.etree already has its own implementation of XPath 1.0.") (define-public python-lxml (package (name "python-lxml") - (version "5.2.2") + (version "6.0.1") (source (origin (method url-fetch) (uri (pypi-uri "lxml" version)) (sha256 - (base32 "11yvrzlswlh81z6lpmds2is2jd3wkigpwj6mcfcaggl0h64w8bdv")))) + (base32 "14064h0pxdsx36nhyjzrw0v16ygz977qf6l0ydnh5p97pwp8hfib")))) (build-system pyproject-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index c3c3a70339d..30a7b5e9d1a 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5759,7 +5759,7 @@ Wayland.") (define-public libx11 (package (name "libx11") - (version "1.8.10") + (version "1.8.12") (source (origin (method url-fetch) @@ -5767,7 +5767,7 @@ Wayland.") version ".tar.xz")) (sha256 (base32 - "0lywvwsz92j7isglvw2227g3na4ghyspvsvblpf43ns7jfnksfrb")))) + "16lspc3bw2pg3jal7zyq6mxmxmmaax0fz6lgh1n4skqjn2dny0ps")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;8 MiB of man pages + XML diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 76533b1a762..1fff153a400 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -80,8 +80,10 @@ #:use-module (gnu packages nfs) #:use-module (gnu packages enlightenment) #:use-module (guix deprecation) + #:use-module (guix i18n) #:use-module (guix records) #:use-module (guix packages) + #:use-module (guix search-paths) #:use-module (guix store) #:use-module (guix ui) #:use-module (guix utils) @@ -147,6 +149,11 @@ accountsservice-service ; deprecated cups-pk-helper-service-type + + sane-configuration + sane-configuration? + sane-configuration-backends + sane-configuration-sane sane-service-type gnome-desktop-configuration @@ -1681,6 +1688,38 @@ accountsservice web site} for more information." ;; The '60-libsane.rules' udev rules refers to the "scanner" group. (list (user-group (name "scanner") (system? #t)))) +(define (non-empty-list-of-packages? val) + (and (not (null? val)) (list-of-packages? val))) + +(define-configuration/no-serialization sane-configuration + (sane + (package sane) + "The package that provides the SANE library.") + (backends + (non-empty-list-of-packages (list sane-backends)) + "A list of packages containing SANE backends.")) + +(define (sane-search-paths config) + (match-record config (sane backends) + (let ((backend-union (directory-union "sane-backends" backends))) + (map (match-lambda + (($ variable (files)) + (cons variable (file-append backend-union "/" files)))) + (package-native-search-paths sane))))) + +(define* (lift-sane-configuration config #:key warn?) + (if (sane-configuration? config) + config + (begin + (when warn? + (warning (G_ "'sane' service now expects a 'sane-configuration' record~%")) + + (when (eq? config sane-backends) + (warning (G_ "'sane-backends' does not include 'hplip' backend anymore. Add it +explicitly when needed.~%")))) + + (sane-configuration (backends (list config)))))) + (define sane-service-type (service-type (name 'sane) @@ -1688,9 +1727,15 @@ accountsservice web site} for more information." "This service provides access to scanners @i{via} @uref{http://www.sane-project.org, SANE} by installing the necessary udev rules.") - (default-value sane-backends-minimal) + (default-value (sane-configuration)) (extensions - (list (service-extension udev-service-type list) + (list (service-extension udev-service-type + (lambda (c) + (sane-configuration-backends + (lift-sane-configuration c #:warn? #t)))) + (service-extension session-environment-service-type + (lambda (c) + (sane-search-paths (lift-sane-configuration c)))) (service-extension account-service-type (const %sane-accounts)))))) @@ -2445,7 +2490,7 @@ applications needing access to be root.") ;; Add udev rules for MTP devices so that non-root users can access ;; them. (simple-service 'mtp udev-service-type (list libmtp)) - ;; Add udev rules for scanners. + ;; Add udev rules and default backends for scanners. (service sane-service-type) ;; Add polkit rules, so that non-root users in the wheel group can ;; perform administrative tasks (similar to "sudo"). diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm index f6de26adac1..4bfa4dcf0cb 100644 --- a/guix/build-system/mix.scm +++ b/guix/build-system/mix.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2023 Pierre-Henry Fröhring +;;; Copyright © 2025 Giacomo Leidi ;;; ;;; This file is part of GNU Guix. ;;; @@ -73,6 +74,7 @@ See: https://github.com/hexpm/specifications/blob/main/endpoints.md" #:key source (tests? #t) + (test-flags ''()) (mix-path #f) ;See MIX_PATH. (mix-exs "mix.exs") ;See MIX_EXS. (build-per-environment #t) ;See :build_per_environment. @@ -107,6 +109,7 @@ See: https://github.com/hexpm/specifications/blob/main/endpoints.md" #:source #+source #:system #$system #:tests? #$tests? + #:test-flags #$test-flags #:mix-path #$mix-path #:mix-exs #$mix-exs #:mix-environments '#$mix-environments diff --git a/guix/build/meson-build-system.scm b/guix/build/meson-build-system.scm index d11a5d8e18e..d8be1f3faa2 100644 --- a/guix/build/meson-build-system.scm +++ b/guix/build/meson-build-system.scm @@ -64,6 +64,7 @@ includedir "/include")) '()) ,(string-append "--buildtype=" build-type) + "--wrap-mode=nofallback" ,(string-append "-Dc_link_args=-Wl,-rpath=" (assoc-ref outputs "out") "/lib") ,(string-append "-Dcpp_link_args=-Wl,-rpath=" @@ -75,12 +76,12 @@ (chdir build-dir) (apply invoke "meson" "setup" args))) -(define* (build #:key parallel-build? - #:allow-other-keys) +(define* (build #:key parallel-build? #:allow-other-keys) "Build a given meson package." - (invoke "ninja" "-j" (if parallel-build? - (number->string (parallel-job-count)) - "1"))) + (invoke "ninja" "--verbose" + "-j" (if parallel-build? + (number->string (parallel-job-count)) + "1"))) (define* (check #:key tests? test-options parallel-tests? #:allow-other-keys) diff --git a/guix/build/mix-build-system.scm b/guix/build/mix-build-system.scm index 6b7541cf56c..c521657704e 100644 --- a/guix/build/mix-build-system.scm +++ b/guix/build/mix-build-system.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2023 Pierre-Henry Fröhring ;;; Copyright © 2024 Igor Goryachev -;;; Copyright © 2024 Giacomo Leidi +;;; Copyright © 2024, 2025 Giacomo Leidi ;;; ;;; This file is part of GNU Guix. ;;; @@ -119,13 +119,14 @@ See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables" "--no-prune-code-paths")) mix-environments)) -(define* (check #:key (tests? #t) #:allow-other-keys) +(define* (check #:key (tests? #t) (test-flags '()) #:allow-other-keys) "Test the Mix project." (if tests? (begin (setenv "MIX_ENV" "test") - (invoke "mix" "do" "compile" "--no-deps-check" "--no-prune-code-paths" "+" - "test" "--no-deps-check")) + (apply invoke "mix" "do" "compile" "--no-deps-check" + "--no-prune-code-paths" "+" "test" + "--no-deps-check" test-flags)) (format #t "tests? = ~a~%" tests?))) (define* (remove-mix-dirs . _) diff --git a/guix/git.scm b/guix/git.scm index 547585b27d3..fca7e84fbb7 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2021 Marius Bakke ;;; Copyright © 2022 Maxime Devos ;;; Copyright © 2023 Tobias Geerinckx-Rice -;;; Copyright © 2023 Simon Tournier +;;; Copyright © 2023, 2025 Simon Tournier ;;; ;;; This file is part of GNU Guix. ;;; @@ -575,10 +575,16 @@ current settings unchanged." (string-append "origin/" branch)))) (_ ref))) - (define symref-list - (match ref - (('symref . symref) (list symref)) - (_ '()))) + (define symref? + (match-lambda + (('symref . _) #t) + (_ #f))) + + (define ref->refspecs + (match-lambda + (('symref . symref) + (list (string-append "+" symref ":" symref))) + (_ '()))) (with-libgit2 (set-git-timeouts connection-timeout read-timeout) @@ -595,7 +601,7 @@ current settings unchanged." ;; When using symrefs, fetch remote again even if it has been cloned just ;; before as the requested reference are not fetched when cloning. - (when (and cache-exists? + (when (and (or cache-exists? (symref? ref)) (not (reference-available? repository ref))) (remote-fetch (remote-lookup repository "origin") #:fetch-options (make-default-fetch-options @@ -603,9 +609,7 @@ current settings unchanged." verify-certificate?) ;; Build refspecs from symbolic references so they are ;; created locally and updated if necessary. - #:refspecs (map (lambda (ref) - (string-append "+" ref ":" ref)) - symref-list))) + #:refspecs (ref->refspecs ref))) (when recursive? (update-submodules repository #:log-port log-port #:fetch-options diff --git a/po/packages/POTFILES.in b/po/packages/POTFILES.in index 96e027dcf2f..0dfbbd6e61b 100644 --- a/po/packages/POTFILES.in +++ b/po/packages/POTFILES.in @@ -146,7 +146,6 @@ gnu/packages/erlang-xyz.scm gnu/packages/erlang.scm gnu/packages/esolangs.scm gnu/packages/fabric-management.scm -gnu/packages/fcitx.scm gnu/packages/fcitx5.scm gnu/packages/fediverse.scm gnu/packages/figlet.scm