diff --git a/gnu/local.mk b/gnu/local.mk index 1162673a8dd..72f1cfa00e4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2468,7 +2468,6 @@ dist_patch_DATA = \ %D%/packages/patches/xfig-Use-pkg-config-to-set-fontconfig-CFLAGS-and-LIBS.patch \ %D%/packages/patches/xfce4-settings-defaults.patch \ %D%/packages/patches/xgboost-use-system-dmlc-core.patch \ - %D%/packages/patches/xinit-startx-mcookie-path.patch \ %D%/packages/patches/xiphos-glib.patch \ %D%/packages/patches/xmonad-dynamic-linking.patch \ %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \ diff --git a/gnu/packages/easyrpg.scm b/gnu/packages/easyrpg.scm index 43e2438df5f..751080c33f3 100644 --- a/gnu/packages/easyrpg.scm +++ b/gnu/packages/easyrpg.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Sou Bunnbu +;;; Copyright © 2018, 2025 宋文武 ;;; Copyright © 2019–2021 Tobias Geerinckx-Rice ;;; Copyright © 2020 Efraim Flashner ;;; Copyright © 2024 gemmaro @@ -30,6 +30,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) + #:use-module (gnu packages linux) #:use-module (gnu packages mp3) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pretty-print) @@ -42,7 +43,7 @@ (define-public liblcf (package (name "liblcf") - (version "0.8") + (version "0.8.1") (source (origin (method url-fetch) (uri (string-append @@ -50,34 +51,26 @@ "/liblcf-" version ".tar.gz")) (sha256 (base32 - "0kskflh2izc8q5p5x0rfxw8xa3591xfkmqf74rj72ff34xri4nj1")))) + "1b68yhs14b4ql1wfbm0jzklyqyi3b2wm3pm9zhx0ij2a98c8cnli")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) (propagated-inputs ;; Required by 'liblcf.pc'. - (list expat icu4c)) + (list expat icu4c libinih)) (home-page "https://easyrpg.org/") (synopsis "Library to handle RPG Maker 2000 and 2003 game data") (description "@code{liblcf} is a library to handle RPG Maker 2000 and 2003 game data. It can read and write LCF and XML files.") - ;; It includes a copy of Boost Preprocessor Cat and Stringize (boost-1.0): - ;; src/boost/preprocessor/config.hpp - ;; src/boost/preprocessor/cat.hpp - ;; src/boost/preprocessor/stringize.hpp - ;; and a copy of inih (bsd-3): - ;; src/ini.h - ;; src/ini.cpp - ;; src/inireader.h - ;; src/inireader.cpp - ;; TODO: Unbundle them. + ;; It includes a copy of span-lite (boost-1.0): + ;; src/lcf/third_party/span.h (license license:expat))) (define-public easyrpg-player (package (name "easyrpg-player") - (version "0.8") + (version "0.8.1.1") (source (origin (method url-fetch) (uri (string-append @@ -85,7 +78,7 @@ It can read and write LCF and XML files.") "/easyrpg-player-" version ".tar.gz")) (sha256 (base32 - "1brx2iix9d5i2lyjjcs03pq1xgl1gyh0yas8avazahgd9sn47696")))) + "0aa60568cvhxf93065wn2r6js7xh81vhsl2nw3bhs5g3l1smq28z")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -107,7 +100,6 @@ It can read and write LCF and XML files.") mpg123 opusfile pixman - sdl2-mixer sdl2 speexdsp wildmidi @@ -121,7 +113,6 @@ data.") ;; It bundles FMMidi YM2608 FM synthesizer emulator (bsd-3): ;; src/midisynth.h ;; src/midisynth.cpp - ;; and PicoJSON JSON parser/serializer (bsd-2): - ;; src/picojson.h - ;; TODO: Unbundle them. + ;; and WAV audio loader and writer (public-domain): + ;; src/external/dr_wav.h (license license:gpl3+))) diff --git a/gnu/packages/emacs-build.scm b/gnu/packages/emacs-build.scm index f92eb05c8e4..6ae2355202c 100644 --- a/gnu/packages/emacs-build.scm +++ b/gnu/packages/emacs-build.scm @@ -524,64 +524,62 @@ Lisp.") (license license:expat))) (define-public makel - (let ((commit "2c831098c28a1f581b016532fa1f6e1c596b8ed1") - (revision "0")) - (package - (name "makel") - (version (git-version "0.8.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/DamienCassou/makel") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0lmfl27rqh1530j8g4z2k6y6mc25n54bjkqriqdkw3703kliyvry")))) - (build-system copy-build-system) - (arguments - (list - ;; Some tests are currently broken, see - ;; https://github.com/DamienCassou/makel/issues/6 - #:tests? #f - #:modules - '((guix build copy-build-system) - (guix build utils) - (srfi srfi-1) - (srfi srfi-26) - (ice-9 ftw)) - #:install-plan ''(("makel.mk" "include/") - ("README.org" "share/docs/")) - #:phases - #~(modify-phases %standard-phases - (add-before 'install 'inject-deps - (lambda _ - (substitute* "makel.mk" - (("^MAKEL_LOAD_PATH=(.*)$" all rest) - (string-append - "MAKEL_LOAD_PATH=-L " - (string-join - (filter-map - (lambda (dir) - (let ((path (scandir dir))) - (and (eq? (length path) 3) ; removes emacs - (string-append dir "/" (last path))))) - (string-split (getenv "EMACSLOADPATH") #\:)) - " -L ") - " " rest))))) - (add-before 'install 'check - (lambda* (#:key tests? #:allow-other-keys) - (if tests? - (with-directory-excursion "test" - (invoke "bash" "run-tests.sh")) - (format #f "Test suite not run.~%"))))))) - (native-inputs (list bash-minimal emacs-minimal)) - (inputs (list emacs-buttercup emacs-package-lint)) - (home-page "https://github.com/DamienCassou/makel") - (synopsis "Makefile to help checking Emacs packages") - (description "This package provides a makefile to help checking Emacs -packages.") - (license license:gpl3+)))) + (package + (name "makel") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DamienCassou/makel") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "143bdy4c81jbmp5sk1arnlmpc4dsw85n601x9rii2dgyn186l8si")))) + (build-system copy-build-system) + (arguments + (list + #:modules + #~((guix build copy-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26) + (ice-9 ftw)) + #:install-plan + #~'(("makel.mk" "include/") + ("README.org" "share/docs/")) + #:phases + #~(modify-phases %standard-phases + (add-before 'install 'inject-deps + (lambda _ + (substitute* "makel.mk" + (("^MAKEL_LOAD_PATH=(.*)$" all rest) + (string-append + "MAKEL_LOAD_PATH=-L " + (string-join + (filter-map + (lambda (dir) + (let ((path (scandir dir))) + (and (eq? (length path) 3) ; removes emacs + (string-append dir "/" (last path))))) + (string-split (getenv "EMACSLOADPATH") #\:)) + " -L ") + " " rest))))) + (add-before 'install 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (with-directory-excursion "test" + (invoke "bash" "run-tests.sh")) + (format #f "Test suite not run.~%"))))))) + (native-inputs + (list bash-minimal emacs-minimal)) + (inputs + (list emacs-buttercup emacs-package-lint)) + (home-page "https://github.com/DamienCassou/makel") + (synopsis "Makefile to help checking Emacs packages") + (description + "This package provides a Makefile to help checking Emacs packages.") + (license license:gpl3+))) ;; This is an alternative version patches for internal Guix tests. ;; The user-facing version is in emacs-xyz.scm diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 5343b8147f2..08dbae8c4f2 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -34442,7 +34442,7 @@ from Emacs.") (define-public emacs-libmpdel (package (name "emacs-libmpdel") - (version "2.0.0") + (version "2.1.0") (source (origin (method git-fetch) (uri (git-reference @@ -34451,10 +34451,20 @@ from Emacs.") (file-name (git-file-name name version)) (sha256 (base32 - "03bavca89cf7dsjmg7hb48qnvca41ndiij33iw5yjjhbq1zyj8r4")))) + "1indy1y31g68i3a4j6nbx3idybn5b11bjvlx9vkibraf622s2bls")))) (build-system emacs-build-system) + (arguments + (list + ;; XXX: "check" includes "lint-package-lint", which raises errors. + #:test-command #~(list "make" "test") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'inject-makel + (lambda* (#:key inputs #:allow-other-keys) + (symlink (search-input-file inputs "/include/makel.mk") + "makel.mk")))))) (native-inputs - (list emacs-ert-runner)) + (list emacs-ert-runner makel)) (home-page "https://github.com/mpdel/libmpdel") (synopsis "Emacs library to communicate with Music Player Daemon (MPD)") (description @@ -34466,7 +34476,7 @@ music.") (define-public emacs-mpdel (package (name "emacs-mpdel") - (version "2.1.0") + (version "2.1.1") (source (origin (method git-fetch) @@ -34476,19 +34486,19 @@ music.") (file-name (git-file-name name version)) (sha256 (base32 - "00ajjb9iawva3g7i1y6bz4d4ny3cv5rby6vgkwiy2xkprzxi8900")))) + "1i7ymg0ls984vjmzjz0sbg280i47c6j79vr725x94xdpj6ci35qr")))) (build-system emacs-build-system) (arguments (list - ;; XXX: ‘check’ includes ‘lint-package-lint’, which raises errors. - #:test-command #~(list "make" "test" "lint-checkdoc") + ;; XXX: "check" includes "lint-package-lint", which raises errors. + #:test-command #~(list "make" "test") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'inject-makel (lambda* (#:key inputs #:allow-other-keys) (symlink (search-input-file inputs "/include/makel.mk") "makel.mk")))))) - (inputs (list makel)) + (native-inputs (list makel)) (propagated-inputs (list emacs-libmpdel emacs-navigel)) (home-page "https://gitea.petton.fr/mpdel/mpdel") diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8f9e18561b0..dda73b78176 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -180,7 +180,6 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages nettle) #:use-module (gnu packages networking) - #:use-module (gnu packages ninja) #:use-module (gnu packages nss) #:use-module (gnu packages ocr) #:use-module (gnu packages openldap) @@ -11624,7 +11623,7 @@ text views, and buttons to choose the language.") (define-public gnome-planner (package (name "gnome-planner") - (version "0.14.6") + (version "0.14.92") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/planner/" @@ -11632,30 +11631,34 @@ text views, and buttons to choose the language.") version ".tar.xz")) (sha256 (base32 - "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k")))) - (build-system glib-or-gtk-build-system) + "0cyqs1ly6cp96pjw0yjk1r0dshp0c3869wgknxpp97dnbppsg8px")))) + (build-system meson-build-system) (arguments - ;; Disable the Python bindings because the Planner program functions - ;; without them, and (as of 2017-06-13) we have not packaged all of - ;; packages that are necessary for building the Python bindings. - `(#:configure-flags - (list "--disable-python" - ,@(if (string=? "aarch64-linux" (%current-system)) - '("--build=aarch64-unknown-linux-gnu") - '())))) + (list + #:glib-or-gtk? #t + #:configure-flags + ;; Otherwise, the RUNPATH will lack the final 'planner' path component + ;; (see: ). + #~(list (string-append "-Dc_link_args=-Wl,-rpath=" + #$output "/lib/planner")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'skip-gtk-update-icon-cache + (lambda _ + (substitute* "meson_post_install.sh" + (("gtk-update-icon-cache") (which "true")))))))) (inputs - (list libgnomecanvas - libgnomeui - libglade - gnome-vfs - gconf - libxml2 - libxslt + (list gconf + glib gtk+ - glib)) + libxml2 + libxslt)) (native-inputs - (list intltool scrollkeeper pkg-config)) - (home-page "https://wiki.gnome.org/Apps/Planner") + (list `(,glib "bin") ;for glib-genmarshal, etc. + desktop-file-utils ;for update-desktop-database + gettext-minimal + pkg-config)) + (home-page "https://gitlab.gnome.org/World/planner") (synopsis "Project management software for the GNOME desktop") (description "GNOME Planner is a project management tool based on the Work Breakdown diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index c7eb4fbb984..ab4fe857108 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -193,7 +193,7 @@ authentication and support for SSL3 and TLS.") (define-public gnunet (package (name "gnunet") - (version "0.25.0") + (version "0.25.1") (source (origin (method url-fetch) @@ -201,7 +201,7 @@ authentication and support for SSL3 and TLS.") ".tar.gz")) (sha256 (base32 - "1zrn5j12c2vfp3vfx3kirknsvzb4r832hbgh5a2lcnb0x0p6dsid")))) + "0p4gcv67rh9832vgi5k31pgpq6hmv6198dfmbyfizyaprlb6qcr1")))) (build-system meson-build-system) (inputs (list bluez diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index b31390807c2..d1ada9ec375 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -462,7 +462,7 @@ objects!") qt))))))))) (inputs (list expat - ffmpeg-for-friction ;version 4.2 is recommended; does not work with version 7+. + ffmpeg-6 fontconfig freetype gperftools-for-friction @@ -826,7 +826,20 @@ and export to various formats including the format used by Magicavoxel.") (substitute* "test/CMakeLists.txt" ;; Leave the test binary where ctest will look for it. (("TARGET_USE_COMMON_OUTPUT_DIRECTORY\\(unit\\)") - ""))))))) + "")) + + ;; Some tests fail on aarch64: + ;; . + (when #$(target-aarch64?) + (substitute* "test/unit/AssimpAPITest_aiMatrix3x3.cpp" + (("aiMatrix3FromToTest") + "DISABLED_aiMatrix3FromToTest")) + (substitute* "test/unit/AssimpAPITest_aiMatrix4x4.cpp" + (("aiMatrix4FromToTest") + "DISABLED_aiMatrix4FromToTest")) + (substitute* "test/unit/AssimpAPITest_aiQuaternion.cpp" + (("aiQuaternionFromNormalizedQuaternionTest") + "DISABLED_aiQuaternionFromNormalizedQuaternionTest")))))))) (build-system cmake-build-system) (inputs (list zlib)) diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index 43a1fdca228..def3a90d549 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -623,6 +623,29 @@ with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX, and mIRC chat codes.") (license license:bsd-3))) +(define-public lhs2tex + (package + (name "lhs2tex") + (version "1.25") + (source + (origin + (method url-fetch) + (uri (hackage-uri "lhs2tex" version)) + (sha256 + (base32 "0cf66z6mgadgqd1xs5b6gw8l9rkwgbfsc5czwdiapn7ichi26qyj")))) + (build-system haskell-build-system) + (properties '((upstream-name . "lhs2tex"))) + (inputs (list ghc-regex-compat)) + (home-page "https://github.com/kosmikus/lhs2tex") + (synopsis "Preprocessor for typesetting Haskell sources with LaTeX") + (description + "This tool is primarily intended for people who want to write articles or +books using LaTeX that contain some Haskell code. It works on literate Haskell +documents where the non-Haskell parts form essentially a valid LaTeX document, +then processes the Haskell code in the document and replaces it with formatted +LaTeX output.") + (license license:gpl2+))) + (define-public kmonad ;; Project is active, but no new releases exist. Pick current master ;; HEAD as of 2024-08-18. diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 520ceeb0d8f..0e50ec7a444 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -92,6 +92,7 @@ #:use-module (gnu packages lua) #:use-module (gnu packages maths) #:use-module (gnu packages mpi) + #:use-module (gnu packages nss) #:use-module (gnu packages opencl) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) @@ -1865,6 +1866,7 @@ and Scan Tailor Enhanced versions as well as including many more bug fixes.") (native-inputs (list googletest lua + nss-certs-for-test ;for 'pip install' python-numpy ;for tests python-pip python-setuptools diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 1d828a541ff..426dbb88c26 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -32,6 +32,7 @@ ;;; Copyright © 2025 Ashish SHUKLA ;;; Copyright © 2025 Mathieu Laparie ;;; Copyright © 2025 Joaquín Aguirrezabalaga +;;; Copyright © 2025 pinoaffe ;;; ;;; This file is part of GNU Guix. ;;; @@ -69,6 +70,7 @@ #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages cmake) @@ -77,6 +79,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages djvu) + #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) @@ -90,9 +93,13 @@ #:use-module (gnu packages golang-xyz) #:use-module (gnu packages gtk) #:use-module (gnu packages graphics) + #:use-module (gnu packages graphviz) #:use-module (gnu packages image) #:use-module (gnu packages image-processing) #:use-module (gnu packages imagemagick) + #:use-module (gnu packages kde) + #:use-module (gnu packages kde-frameworks) + #:use-module (gnu packages kde-pim) #:use-module (gnu packages linux) #:use-module (gnu packages maths) #:use-module (gnu packages ncurses) @@ -110,6 +117,8 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) + #:use-module (gnu packages ruby) + #:use-module (gnu packages scanner) #:use-module (gnu packages suckless) #:use-module (gnu packages stb) #:use-module (gnu packages terminals) @@ -1150,6 +1159,128 @@ synchronization of multiple instances.") "xzgv is a fast image viewer that provides extensive keyboard support.") (license license:gpl2+))) +(define-public digikam + (package + (name "digikam") + (version "8.7.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/digikam/" + version "/digiKam-" version ".tar.xz")) + (sha256 + (base32 "0bx0kpzgq47pj3msrnd7gxr8n2qbak0cjird6bw4r4s31b15xqvr")))) + (build-system qt-build-system) + (home-page "https://www.digikam.org/download/git/") + (arguments (list + #:tests? #f + #:build-type "Release" + #:configure-flags #~(list "-DENABLE_MEDIAPLAYER=ON" ; for video playback + "-DENABLE_QWEBENGINE=ON" ; for web content + "-DENABLE_KFILEMETADATASUPPORT=ON" + "-DENABLE_AKONADICONTACTSUPPORT=ON" + "-DBUILD_WITH_QT6=ON" + "-DENABLE_APPSTYLES=ON") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'copy-test-data + (lambda* (#:key inputs #:allow-other-keys) + (copy-recursively (assoc-ref inputs "digikam-test-data") + "test-data"))) + (add-after 'install 'wrap-binary + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/digikam") + `("PATH" ":" prefix + (,(dirname + (search-input-file inputs "/bin/exiftool")))))))))) + (native-search-paths + (list (search-path-specification + (variable "DK_PLUGIN_PATH") + (separator ";") + (files '("lib/qt6/plugins/digikam"))))) + (inputs (list + akonadi-contacts + bash-minimal + boost + ecm + eigen + exiv2-static ; digikam only wants to statically link against exiv2 + ffmpeg + glib + ijg-libjpeg + imagemagick + jasper + kcalendarcore + kconfig + kcoreaddons + kfilemetadata + ki18n + kiconthemes + kio + knotifications + knotifyconfig + kservice + kwindowsystem + kxmlgui + lcms + lensfun + libgphoto2 + libheif + libjpeg-turbo + libjxl + libksane + libpng + libtiff + libxml2 + libxslt + marble-qt + mesa + opencv + perl-image-exiftool + python-wrapper + qtimageformats + qtmultimedia + qtnetworkauth + qtscxml + qtsvg + qtwebengine + ruby + sane-backends + solid + sonnet + threadweaver + x265)) + (native-inputs (list + (origin + (method git-fetch) + (uri (git-reference + (url "https://invent.kde.org/graphics/digikam-test-data/") + (commit "83efefdfc7fffa35e5e260d3b5a4aec01ebbdb40"))) + (file-name "digikam-test-data") + (sha256 + (base32 + "0mf7rzwhy5yyj47xh4vs0i841m8885yy9qganli04d8skikl0s6z"))) + appstream + bison + doxygen + extra-cmake-modules + flex + graphviz ; for inheritance graphs in documentation + perl + pkg-config)) + (synopsis "Photo management, organizing and editing suite") + (description "digiKam is an advanced open-source digital photo management +application. It provides a comprehensive set of tools for importing, +managing, editing, and sharing photos and RAW files. + +You can use digiKam's import capabilities to easily transfer photos, RAW +files, and videos directly from your camera and external storage devices (SD +cards, USB disks, etc.). The application allows you to configure import +settings and rules that process and organize imported items on-the-fly.") + (license (list license:bsd-3 ; cmake scripts + license:cc0 ; test data + license:gpl2+)))) ; code + (define-public hydrus-network (package (name "hydrus-network") diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 2b1a84eb05a..f813e6f2326 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2016-2025 Efraim Flashner ;;; Copyright © 2016–2022 Tobias Geerinckx-Rice ;;; Copyright © 2016 Eric Bavier -;;; Copyright © 2016, 2017, 2020, 2021, 2022 Arun Isaac +;;; Copyright © 2016, 2017, 2020, 2021, 2022, 2025 Arun Isaac ;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2017 Nikita ;;; Copyright © 2017,2019,2020 Hartmut Goebel @@ -95,6 +95,7 @@ #:use-module (gnu packages popt) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-check) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages ragel) @@ -1677,6 +1678,15 @@ and XMP metadata of images in various formats.") ;; . (license license:gpl2+))) +(define-public exiv2-static + (package + (inherit exiv2) + (arguments + (substitute-keyword-arguments (package-arguments exiv2) + ((#:phases phases) + #~(modify-phases #$phases + (delete 'delete-static-libraries))))))) + (define-public devil (package (name "devil") @@ -2940,7 +2950,7 @@ Wacom-style graphics tablets.") (define-public phockup (package (name "phockup") - (version "1.9.2") + (version "1.13.0") (source (origin (method git-fetch) @@ -2949,7 +2959,7 @@ Wacom-style graphics tablets.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0j4mnsy12bhsmd80vgqknv004xbqd165y8gpalw87gp8i8xv172r")))) + (base32 "1kwz2qy8mx0j25g3gyda08qaz5rgwm6vycsrqhgkd5cqqz76bbmc")))) (build-system copy-build-system) (arguments `(#:install-plan '(("src" "share/phockup/") @@ -2963,13 +2973,14 @@ Wacom-style graphics tablets.") (("'exiftool") (string-append "'" (search-input-file inputs "bin/exiftool")))))) (add-before 'install 'check - (lambda _ - ;; Test without PATH to make sure ‘exiftool’ is properly found. - (let ((path (getenv "PATH")) - (pytest (which "pytest"))) - (setenv "PATH" "") - (invoke pytest) - (setenv "PATH" path)))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; Test without PATH to make sure ‘exiftool’ is properly found. + (let ((path (getenv "PATH")) + (pytest (which "pytest"))) + (setenv "PATH" "") + (invoke pytest) + (setenv "PATH" path))))) (add-after 'install 'install-bin (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -2986,7 +2997,7 @@ Wacom-style graphics tablets.") (inputs (list bash-minimal perl-image-exiftool python python-tqdm)) (native-inputs - (list python-pytest python-pytest-mock)) + (list python-pytest python-pytest-mock python-pytest-socket)) (home-page "https://github.com/ivandokov/phockup") (synopsis "Organize photos and videos in folders") (description "Phockup is a media sorting tool that uses creation date and diff --git a/gnu/packages/kde-office.scm b/gnu/packages/kde-office.scm index 59ef0a8ace4..50fb6bca41e 100644 --- a/gnu/packages/kde-office.scm +++ b/gnu/packages/kde-office.scm @@ -42,11 +42,13 @@ #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages networking) + #:use-module (gnu packages ocr) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) #:use-module (gnu packages serialization) + #:use-module (gnu packages speech) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages wm) @@ -152,16 +154,102 @@ Advanced plugins: @end itemize") (license (list license:lgpl2.0+ license:gpl2+)))) +(define-public crow-translate + (package + (name "crow-translate") + (version "4.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/crow-translate/" version + "/crow-translate-" version ".tar.gz")) + (sha256 + (base32 "0lrpxdgicbg0wj2cf0lif99pz5kiqck53qkm5385vymzn1w8wjz2")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete bundled breeze-icons, espeak-ng and qhotkey. + (for-each delete-file-recursively + '("data/icons/3rdparty/breeze-icons" + "src/3rdparty/espeak-ng" + "src/3rdparty/qhotkey")) + ;; Use system libraries instead. + (substitute* "CMakeLists.txt" + ((".*icon-theme\\.qrc.*$") "") + (("WITH_PIPER_TTS") "WITH_BUNDLED_ESPEAK_NG") + (("(.*WITH_BUNDLED_ESPEAK_NG.* )ON" all start) + (string-append start "OFF")) + (("Enable Piper neural TTS provider.*\"") + "Build bundled espeak-ng (requires onnxruntime)\"") + (("Piper TTS support disabled.*\"") + "Piper TTS support enabled with system espeak-ng\"") + (("add_subdirectory.*qhotkey.*") + (string-append "\nfind_package(PkgConfig)\n" + "pkg_check_modules(eSpeak_NG REQUIRED espeak-ng)" + "\nfind_package(QHotkey REQUIRED)\n")) + (("QHotkey::QHotkey") "qhotkey") + (("( *)Qt6::TextToSpeech" all indent) + (string-append all "\n" indent "espeak-ng"))) + ;; Link Qt6::Widgets. + (substitute* "CMakeLists.txt" + (("Qt6::TextToSpeech" all) (string-append all "\n Qt6::Widgets"))) + ;; Include QGuiApplication in main.cpp. + (substitute* "src/main.cpp" + (("#include " all) + (string-append all "\n#include "))))))) + (build-system qt-build-system) + (arguments + (list #:qtbase qtbase + #:tests? #f ; no tests + #:configure-flags + #~(list (string-append "-DCMAKE_CXX_FLAGS=-isystem " + #$(this-package-input "qtbase") + "/include/qt6/QtWidgets")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unbundle-singleapplication + (lambda _ + (delete-file-recursively "src/3rdparty/singleapplication") + (substitute* "CMakeLists.txt" + (("add_subdirectory.*singleapplication.*$") "") + (("SingleApplication::SingleApplication") + (string-append #$(this-package-input + "single-application") + "/lib/libSingleApplication.a")))))))) + (inputs + (list breeze-icons + espeak-ng + kwayland + qhotkey + qtbase + qtsvg + qtmultimedia + qtscxml + qtspeech + single-application + tesseract-ocr)) + (native-inputs + (list pkg-config + extra-cmake-modules + qttools)) + (home-page "https://invent.kde.org/office/crow-translate") + (synopsis "Application for translating text") + (description + "Crow Translate is an application written in C++/Qt for translating +and speaking text which relies on Mozhi to interface with various +translation engines.") + (license license:gpl3+))) + (define-public ghostwriter (package (name "ghostwriter") - (version "25.04.0") + (version "25.08.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/ghostwriter-" version ".tar.xz")) (sha256 - (base32 "0vx6zd6js4anz2cmvljbp0dyq1gj58j28a1vx0fa7m01m8kxbsl6")))) + (base32 "0hlc039pkrn0l3k4vzvlvwnbzv46vnkacpaasn2lj5rfs3spxcmj")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase @@ -193,7 +281,7 @@ cmark processors if they are installed.") (define-public tellico (package (name "tellico") - (version "4.1.1") + (version "4.1.3") (source (origin (method git-fetch) (uri (git-reference @@ -201,7 +289,7 @@ cmark processors if they are installed.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0jx512rgrbc8n8p2gnk543l3k53gf30a0zjixp8ly2z70w6qp2br")) + (base32 "0930jh6b9cl3jvhmfv00l6566vsnpwkf6shz5w0hn67j0vpvhk7s")) (modules '((guix build utils))) (snippet ;; Fix including QtPrintSupport. diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 20641d8cf36..c9148479d6c 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -93,7 +93,6 @@ #:use-module (gnu packages maths) #:use-module (gnu packages ncurses) #:use-module (gnu packages mp3) - #:use-module (gnu packages ocr) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) @@ -142,38 +141,6 @@ This package contains GUI widgets for baloo.") (license license:lgpl2.0+))) -(define-public crow-translate - (package - (name "crow-translate") - (version "3.1.0") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://kde/stable/crow-translate/" version - "/crow-translate-v" version ".tar.gz")) - (sha256 - (base32 "18f7i5sxrvqp6h7zj77sdxyy9rlbw0rv3w7akf1j14072ala9bwc")))) - (build-system qt-build-system) - (arguments '(#:tests? #f)) ; there are no tests. - (inputs - (list qtbase-5 - qtx11extras - qtsvg-5 - qtmultimedia-5 - tesseract-ocr - kwayland-5)) - (native-inputs - (list pkg-config - extra-cmake-modules - qttools-5)) - (home-page "https://invent.kde.org/office/crow-translate") - (synopsis "Application for translating text") - (description - "Crow Translate is an application written in C++/Qt for translating -and speaking text which relies on Mozhi to interface with various -translation engines.") - (license license:gpl3+))) - (define-public futuresql (package (name "futuresql") diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 77b1eeaf6be..f1987b276e7 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -1053,7 +1053,7 @@ WebRTC codec. It includes features from WebRTC, such as, iSAC and AECM.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "05s8czh84qc63pmgwvwb39w07zy47145dl85397pnymsx8wv7r7q")))) + (base32 "0zp5vmhgp18812j2pbys7g3v0slkc70q9qp7k26bk7iddg1yy9x2")))) (build-system cmake-build-system) (arguments (list diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 64f92318362..69068c51397 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -538,7 +538,6 @@ assorted menu related utility programs.") intltool libxslt yelp-tools - scrollkeeper gettext-minimal docbook-xml gobject-introspection)) @@ -1412,7 +1411,6 @@ can be used as backgrounds in the MATE Desktop environment.") libice libsm pkg-config - scrollkeeper xorgproto yelp-tools)) (inputs @@ -1591,7 +1589,6 @@ can be used as backgrounds in the MATE Desktop environment.") packagekit pango python - scrollkeeper startup-notification)) (home-page "https://mate-desktop.org/") (synopsis "Text Editor for MATE") diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 9b0c4f1857d..abae481dab9 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -18,7 +18,7 @@ ;;; Copyright © 2020 Martin Becze ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2021 Ivan Gankevich -;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer +;;; Copyright © 2021, 2022, 2023, 2025 Maxim Cournoyer ;;; Copyright © 2021 John Kehayias ;;; Copyright © 2022, 2023 Zhu Zihao ;;; Copyright © 2023 jgart @@ -1043,7 +1043,7 @@ features of Stow with some extensions.") (build-system cmake-build-system) (arguments (list - #:tests? #f ; TEST need fhs envirnment. + #:tests? #f ;tests require FHS environment #:configure-flags #~(list ;; TODO: Add rpm-sequoia @@ -1073,7 +1073,16 @@ features of Stow with some extensions.") site))) (substitute* "plugins/CMakeLists.txt" (("\\$[{]dbus-1_DATADIR[}]") - (string-append #$output "/share")))))))) + (string-append #$output "/share"))))) + (add-after 'install 'install-macros-file + (lambda _ + (define macros (string-append #$output "/etc/rpm/macros")) + (mkdir-p (dirname macros)) + (call-with-output-file macros + (lambda (p) + (format p "\ +%_var /var +%_localstatedir /var~%")))))))) (native-inputs (list pkg-config python diff --git a/gnu/packages/patches/libvirt-add-install-prefix.patch b/gnu/packages/patches/libvirt-add-install-prefix.patch index 041f39e0979..30e35567ad8 100644 --- a/gnu/packages/patches/libvirt-add-install-prefix.patch +++ b/gnu/packages/patches/libvirt-add-install-prefix.patch @@ -1,6 +1,6 @@ Patch from NixOS: - https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/libvirt/0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch + https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/li/libvirt/0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch From 58c07f1d59ef683faf8b747e40bd75401306acf4 Mon Sep 17 00:00:00 2001 From: Euan Kemp @@ -406,10 +406,10 @@ index 3b859ea7b4..ccddb3e805 100644 ] endif diff --git a/src/security/apparmor/meson.build b/src/security/apparmor/meson.build -index b9257c816d..98701755d8 100644 +index 09d9fac02c..ee0c74ceec 100644 --- a/src/security/apparmor/meson.build +++ b/src/security/apparmor/meson.build -@@ -57,7 +57,7 @@ foreach name : apparmor_gen_profiles +@@ -20,16 +20,16 @@ foreach name : apparmor_gen_profiles output: name, configuration: apparmor_gen_profiles_conf, install: true, @@ -417,39 +417,25 @@ index b9257c816d..98701755d8 100644 + install_dir: install_prefix + apparmor_dir, ) endforeach - -@@ -68,13 +68,13 @@ foreach name : apparmor_gen_abstractions - command: apparmor_gen_cmd, - capture: true, - install: true, -- install_dir: apparmor_dir / 'abstractions', -+ install_dir: install_prefix + apparmor_dir / 'abstractions', - ) - endforeach - + + install_data( + [ 'libvirt-qemu', 'libvirt-lxc' ], +- install_dir: apparmor_dir / 'abstractions', ++ install_dir: install_prefix + apparmor_dir / 'abstractions', + ) + install_data( [ 'TEMPLATE.qemu', 'TEMPLATE.lxc' ], - install_dir: apparmor_dir / 'libvirt', + install_dir: install_prefix + apparmor_dir / 'libvirt', ) - - if not conf.has('WITH_APPARMOR_3') -@@ -83,7 +83,7 @@ if not conf.has('WITH_APPARMOR_3') - # files in order to limit the amount of filesystem clutter. - install_data( - 'usr.lib.libvirt.virt-aa-helper.local', -- install_dir: apparmor_dir / 'local', -+ install_dir: install_prefix + apparmor_dir / 'local', - rename: 'usr.lib.libvirt.virt-aa-helper', - ) - endif diff --git a/src/storage/meson.build b/src/storage/meson.build index 404d6a6941..fb4e67a0a8 100644 --- a/src/storage/meson.build +++ b/src/storage/meson.build @@ -126,9 +126,9 @@ if conf.has('WITH_STORAGE') } - + virt_install_dirs += [ - confdir / 'storage', - confdir / 'storage' / 'autostart', @@ -459,20 +445,27 @@ index 404d6a6941..fb4e67a0a8 100644 + install_prefix + runstatedir / 'libvirt' / 'storage', ] endif - + diff --git a/tools/meson.build b/tools/meson.build -index 1bb84be0be..e04a4e986d 100644 +index a099148d3c..d0d6510f17 100644 --- a/tools/meson.build +++ b/tools/meson.build -@@ -121,7 +121,7 @@ if conf.has('WITH_LOGIN_SHELL') +@@ -123,12 +123,12 @@ if conf.has('WITH_LOGIN_SHELL') install_rpath: libvirt_rpath, ) - + - install_data('virt-login-shell.conf', install_dir: sysconfdir / 'libvirt') + install_data('virt-login-shell.conf', install_dir: install_prefix + sysconfdir / 'libvirt') + + # Install the sysuser config for the setgid binary + install_data( + 'libvirt-login-shell.sysusers.conf', +- install_dir: sysusersdir, ++ install_dir: install_prefix + sysusersdir, + rename: [ 'libvirt-login-shell.conf' ], + ) endif - - if host_machine.system() == 'windows' + diff --git a/tools/ssh-proxy/meson.build b/tools/ssh-proxy/meson.build index e9f312fa25..95d5d8fe0b 100644 --- a/tools/ssh-proxy/meson.build diff --git a/gnu/packages/patches/xinit-startx-mcookie-path.patch b/gnu/packages/patches/xinit-startx-mcookie-path.patch deleted file mode 100644 index 050603433b8..00000000000 --- a/gnu/packages/patches/xinit-startx-mcookie-path.patch +++ /dev/null @@ -1,23 +0,0 @@ -This patch fixes two bugs in upstream mcookie detection: 1) If mcookie is not -detected, we still need to set HAS_COOKIE_HANDLER and MK_COOKIE, and 2) the -value for MK_COOKIE must be a string in order to disallow further preprocessor -expansions. - -In particular for 2, if we fail to surround the path in quotes, our path -contains the token "linux", which gcc further expands, creating an invalid -path. - ---- a/configure.ac 2025-03-08 16:48:34.476791744 +0900 -+++ b/configure.ac 2025-03-08 16:48:30.208791623 +0900 -@@ -157,8 +157,10 @@ - fi - fi - if test "x$MCOOKIE" != x ; then -- STARTX_COOKIE_FLAGS='-DHAS_COOKIE_MAKER -DMK_COOKIE="$(MCOOKIE)"' -+ STARTX_COOKIE_FLAGS='-DHAS_COOKIE_MAKER -DMK_COOKIE="'"'"'$(MCOOKIE)'"'"'"' - AC_MSG_NOTICE([startx will depend on "$MCOOKIE" to generate xauth cookies]) -+else -+ STARTX_COOKIE_FLAGS='-DHAS_COOKIE_MAKER -DMK_COOKIE=' - fi - AC_SUBST(STARTX_COOKIE_FLAGS) - diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index a34e13416ec..d7456e5e5aa 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2019 Oleg Pykhalov -;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020, 2025 Maxim Cournoyer ;;; Copyright © 2021, 2023 Efraim Flashner ;;; Copyright © 2023 Timo Wilken ;;; @@ -27,6 +27,7 @@ #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages aspell) + #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages compression) @@ -55,6 +56,7 @@ #:use-module (gnu packages xorg) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix build-system gnu) #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:)) @@ -62,302 +64,316 @@ (define-public php (package (name "php") - (version "8.3.12") + (version "8.3.26") (home-page "https://www.php.net/") - (source (origin - (method url-fetch) - (uri (string-append home-page "distributions/" - "php-" version ".tar.xz")) - (sha256 - (base32 - "0cfi9g97lnmh3b3cn4a33dyzhgwyxicawkbz372whvz26f3f4x7p")) - (modules '((guix build utils))) - (snippet - '(with-directory-excursion "ext" - (for-each delete-file-recursively - ;; Some of the bundled libraries have no proper upstream. - ;; Ideally we'd extract these out as separate packages: - ;;"mbstring/libmbfl" - ;;"date/lib" - ;;"bcmath/libbcmath" - ;;"fileinfo/libmagic" ; a patched version of libmagic - '("gd/libgd" - "pcre/pcre2lib")))))) + (source + (origin + (method url-fetch) + (uri (string-append home-page "distributions/" "php-" version ".tar.xz")) + (sha256 + (base32 "1lnbcc3b9k1j4c85a7sabvwp3iyl9xfg41qdc6a0qh1cl3pjwlig")) + (modules '((guix build utils))) + (snippet + '(with-directory-excursion "ext" + (for-each delete-file-recursively + ;; Some of the bundled libraries have no proper upstream. + ;; Ideally we'd extract these out as separate packages: + ;; "mbstring/libmbfl" + ;; "date/lib" + ;; "bcmath/libbcmath" + ;; "fileinfo/libmagic" ; a patched version of libmagic + '("gd/libgd" "pcre/pcre2lib")))))) (build-system gnu-build-system) (arguments - `(#:configure-flags - (let-syntax ((with (syntax-rules () - ((_ option input) - (string-append option "=" - (assoc-ref %build-inputs input)))))) - (list (with "--with-bz2" "bzip2") - (with "--with-curl" "curl") - (with "--with-gdbm" "gdbm") - (with "--with-gettext" "libc") ; libintl.h - (with "--with-gmp" "gmp") - (with "--with-ldap" "openldap") - (with "--with-ldap-sasl" "cyrus-sasl") - (with "--with-pdo-pgsql" "postgresql") - (with "--with-pdo-sqlite" "sqlite") - (with "--with-pgsql" "postgresql") - ;; PHP’s Pspell extension, while retaining its current name, - ;; now uses the Aspell library. - (with "--with-pspell" "aspell") - (with "--with-readline" "readline") - (with "--with-sodium" "libsodium") - (with "--with-sqlite3" "sqlite") - (with "--with-tidy" "tidy") - (with "--with-xsl" "libxslt") - (with "--with-zlib-dir" "zlib") - ;; We could add "--with-snmp", but it requires netsnmp that - ;; we don't have a package for. It is used to build the snmp - ;; extension of php. - "--with-external-pcre" - "--with-external-gd" - "--with-iconv" - "--with-openssl" - "--with-mysqli" ; Required for, e.g. wordpress - "--with-pdo-mysql" - "--with-zip" - "--with-zlib" - "--enable-bcmath" ; Required for, e.g. Zabbix frontend - "--enable-calendar" - "--enable-dba=shared" - "--enable-exif" - "--enable-flatfile" - "--enable-fpm" - "--enable-ftp" - "--enable-gd" - "--enable-inifile" - "--enable-intl" - "--enable-mbstring" - "--enable-pcntl" - "--enable-sockets" - "--enable-sysvsem" ; Required for, e.g. Nextcloud - "--enable-embed" ; Required for embed SAPI - "--enable-zts" - "--disable-zend-signals" - "--enable-zend-max-execution-timers")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'do-not-record-build-flags - (lambda _ - ;; Prevent configure flags from being stored and causing - ;; unnecessary runtime dependencies. - (substitute* "scripts/php-config.in" - (("@CONFIGURE_OPTIONS@") "") - (("@PHP_LDFLAGS@") "")) - ;; This file has ISO-8859-1 encoding. - (with-fluids ((%default-port-encoding "ISO-8859-1")) - (substitute* "main/build-defs.h.in" - (("@CONFIGURE_COMMAND@") "(omitted)"))))) - (add-before 'build 'patch-/bin/sh - (lambda _ - (substitute* '("run-tests.php" "ext/standard/proc_open.c") - (("/bin/sh") (which "sh"))))) - (add-before 'check 'prepare-tests - (lambda _ - ;; Some of these files have ISO-8859-1 encoding, whereas others - ;; use ASCII, so we can't use a "catch-all" find-files here. - (with-fluids ((%default-port-encoding "ISO-8859-1")) - (substitute* '("ext/mbstring/tests/mb_send_mail02.phpt" - "ext/mbstring/tests/mb_send_mail04.phpt" - "ext/mbstring/tests/mb_send_mail05.phpt" - "ext/mbstring/tests/mb_send_mail06.phpt") - (("/bin/cat") (which "cat")))) - (substitute* '("ext/mbstring/tests/mb_send_mail01.phpt" - "ext/mbstring/tests/mb_send_mail03.phpt" - "ext/mbstring/tests/bug52681.phpt" - "ext/standard/tests/general_functions/bug34794.phpt" - "ext/standard/tests/general_functions/bug44667.phpt" - "ext/standard/tests/general_functions/proc_open.phpt") - (("/bin/cat") (which "cat"))) + (list + #:configure-flags + #~(let-syntax ((with (syntax-rules () + ((_ option input) + (string-append + option "=" + (assoc-ref %build-inputs input)))))) + (list (with "--with-bz2" "bzip2") + (with "--with-curl" "curl") + (with "--with-gdbm" "gdbm") + (with "--with-gettext" "libc") ;libintl.h + (with "--with-gmp" "gmp") + (with "--with-ldap" "openldap") + (with "--with-ldap-sasl" "cyrus-sasl") + (with "--with-pdo-pgsql" "postgresql") + (with "--with-pdo-sqlite" "sqlite") + (with "--with-pgsql" "postgresql") + ;; PHP’s Pspell extension, while retaining its current name, + ;; now uses the Aspell library. + (with "--with-pspell" "aspell") + (with "--with-readline" "readline") + (with "--with-sodium" "libsodium") + (with "--with-sqlite3" "sqlite") + (with "--with-tidy" "tidy-html") + (with "--with-xsl" "libxslt") + (with "--with-zlib-dir" "zlib") + ;; We could add "--with-snmp", but it requires netsnmp that + ;; we don't have a package for. It is used to build the snmp + ;; extension of php. + "--with-external-pcre" + "--with-external-gd" + "--with-iconv" + "--with-openssl" + "--with-mysqli" ;Required for, e.g. wordpress + "--with-pdo-mysql" + "--with-zip" + "--with-zlib" + "--enable-bcmath" ;Required for, e.g. Zabbix frontend + "--enable-calendar" + "--enable-dba=shared" + "--enable-exif" + "--enable-flatfile" + "--enable-fpm" + "--enable-ftp" + "--enable-gd" + "--enable-inifile" + "--enable-intl" + "--enable-mbstring" + "--enable-pcntl" + "--enable-sockets" + "--enable-sysvsem" ;Required for, e.g. Nextcloud + "--enable-embed" ;Required for embed SAPI + "--enable-zts" + "--disable-zend-signals" + "--enable-zend-max-execution-timers")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'do-not-record-build-flags + (lambda _ + ;; Prevent configure flags from being stored and causing + ;; unnecessary runtime dependencies. + (substitute* "scripts/php-config.in" + (("@CONFIGURE_OPTIONS@") + "") + (("@PHP_LDFLAGS@") + "")) + ;; This file has ISO-8859-1 encoding. + (with-fluids ((%default-port-encoding "ISO-8859-1")) + (substitute* "main/build-defs.h.in" + (("@CONFIGURE_COMMAND@") + "(omitted)"))))) + (add-before 'build 'patch-/bin/sh + (lambda _ + (substitute* '("run-tests.php" + "ext/standard/proc_open.c") + (("/bin/sh") + (which "sh"))))) + (add-before 'check 'prepare-tests + (lambda* (#:key parallel-tests? #:allow-other-keys) + ;; Some of these files have ISO-8859-1 encoding, whereas others + ;; use ASCII, so we can't use a "catch-all" find-files here. + (with-fluids ((%default-port-encoding "ISO-8859-1")) + (substitute* '("ext/mbstring/tests/mb_send_mail02.phpt" + "ext/mbstring/tests/mb_send_mail04.phpt" + "ext/mbstring/tests/mb_send_mail05.phpt" + "ext/mbstring/tests/mb_send_mail06.phpt") + (("/bin/cat") + (which "cat")))) + (substitute* '("ext/mbstring/tests/mb_send_mail01.phpt" + "ext/mbstring/tests/mb_send_mail03.phpt" + "ext/mbstring/tests/bug52681.phpt" + "ext/standard/tests/general_functions/bug34794.phpt" + "ext/standard/tests/general_functions/bug44667.phpt" + "ext/standard/tests/general_functions/proc_open.phpt") + (("/bin/cat") + (which "cat"))) - ;; The encoding of this file is not recognized, so we simply drop it. - (delete-file "ext/mbstring/tests/mb_send_mail07.phpt") + ;; The encoding of this file is not recognized, so we simply drop it. + (delete-file "ext/mbstring/tests/mb_send_mail07.phpt") - (substitute* "ext/standard/tests/streams/bug60602.phpt" - (("'ls'") (string-append "'" (which "ls") "'"))) + (substitute* "ext/standard/tests/streams/bug60602.phpt" + (("'ls'") + (string-append "'" + (which "ls") "'"))) - ;; Drop tests known to fail on different architectures: - (for-each delete-file - ,(cond - ((target-arm32?) - `(list "ext/calendar/tests/unixtojd_error1.phpt" - "ext/opcache/tests/preload_006.phpt" - "ext/opcache/tests/preload_011.phpt" - ;; arm can be a lot slower, so a time-related test fails - "ext/fileinfo/tests/cve-2014-3538-nojit.phpt" - "ext/pcntl/tests/pcntl_unshare_01.phpt" - "ext/pcre/tests/bug76514.phpt" - "ext/pcre/tests/preg_match_error3.phpt" - "ext/pcre/tests/cache_limit.phpt" - "ext/sockets/tests/socket_getopt.phpt" - "ext/sockets/tests/socket_sendrecvmsg_error.phpt" - "ext/standard/tests/general_functions/var_export-locale.phpt" - "ext/standard/tests/general_functions/var_export_basic1.phpt" - "ext/intl/tests/timezone_getErrorCodeMessage_basic.phpt" - "ext/intl/tests/timezone_getOffset_error.phpt" - "sapi/cli/tests/cli_process_title_unix.phpt" - "Zend/tests/concat_003.phpt")) - ((target-x86-32?) - `(list "ext/dba/tests/dba_gdbm.phpt")) - ((target-ppc32?) - `(list "sapi/phpdbg/tests/watch_001.phpt" - "sapi/phpdbg/tests/watch_003.phpt" - "sapi/phpdbg/tests/watch_004.phpt")) - ((target-ppc64le?) - `(list - ;; phpdbg watchpoints don't work. - ;; Bug tracked upstream at: - ;; https://bugs.php.net/bug.php?id=81408 - "sapi/phpdbg/tests/watch_001.phpt" - "sapi/phpdbg/tests/watch_003.phpt" - "sapi/phpdbg/tests/watch_004.phpt" - "sapi/phpdbg/tests/watch_005.phpt" - "sapi/phpdbg/tests/watch_006.phpt")) - (else `'()))) + ;; Drop tests known to fail on different architectures: + (for-each + delete-file + #$(cond + ((target-arm32?) + '(list + "ext/calendar/tests/unixtojd_error1.phpt" + "ext/opcache/tests/preload_006.phpt" + "ext/opcache/tests/preload_011.phpt" + ;; arm can be a lot slower, so a time-related test fails + "ext/fileinfo/tests/cve-2014-3538-nojit.phpt" + "ext/pcntl/tests/pcntl_unshare_01.phpt" + "ext/pcre/tests/bug76514.phpt" + "ext/pcre/tests/preg_match_error3.phpt" + "ext/pcre/tests/cache_limit.phpt" + "ext/sockets/tests/socket_getopt.phpt" + "ext/sockets/tests/socket_sendrecvmsg_error.phpt" + "ext/standard/tests/general_functions/var_export-locale.phpt" + "ext/standard/tests/general_functions/var_export_basic1.phpt" + "ext/intl/tests/timezone_getErrorCodeMessage_basic.phpt" + "ext/intl/tests/timezone_getOffset_error.phpt" + "sapi/cli/tests/cli_process_title_unix.phpt" + "Zend/tests/concat_003.phpt")) + ((target-x86-32?) + '(list "ext/dba/tests/dba_gdbm.phpt")) + ((target-ppc32?) + '(list "sapi/phpdbg/tests/watch_001.phpt" + "sapi/phpdbg/tests/watch_003.phpt" + "sapi/phpdbg/tests/watch_004.phpt")) + ((target-ppc64le?) + '(list + ;; phpdbg watchpoints don't work. + ;; Bug tracked upstream at: + ;; https://bugs.php.net/bug.php?id=81408 + "sapi/phpdbg/tests/watch_001.phpt" + "sapi/phpdbg/tests/watch_003.phpt" + "sapi/phpdbg/tests/watch_004.phpt" + "sapi/phpdbg/tests/watch_005.phpt" + "sapi/phpdbg/tests/watch_006.phpt")) + (else ''()))) - ;; Drop tests that are known to fail. - (for-each delete-file - '("ext/posix/tests/posix_getgrgid.phpt" ; Requires /etc/group. - "ext/posix/tests/posix_getgrnam_basic.phpt" ; Requires /etc/group. - "ext/sockets/tests/bug63000.phpt" ; Fails to detect OS. - ;; These need exotic locales. - "ext/standard/tests/strings/setlocale_basic1.phpt" - "ext/standard/tests/strings/setlocale_basic2.phpt" - "ext/standard/tests/strings/setlocale_basic3.phpt" - "ext/standard/tests/strings/setlocale_variation1.phpt" - ;; This bug should have been fixed in gd 2.2.2. - ;; Is it a regression? - "ext/gd/tests/bug65148.phpt" - ;; This bug should have been fixed in the gd 2.2 - ;; series. Perhaps a regression introduced by gd - ;; 2.3.0? - "ext/gd/tests/bug66590.phpt" - ;; This bug should have been fixed in the php-5.5 - ;; series. Perhaps a regression introduced by gd - ;; 2.3.0? - "ext/gd/tests/bug70102.phpt" - ;; This bug should have been fixed in the php-5.6 - ;; series. Perhaps a regression introduced by gd - ;; 2.3.0? - "ext/gd/tests/bug73869.phpt" - ;; Some WebP related tests fail. - "ext/gd/tests/webp_basic.phpt" - "ext/gd/tests/imagecreatefromstring_webp.phpt" - ;; TODO: Enable these when libgd is built with xpm support. - "ext/gd/tests/xpm2gd.phpt" - "ext/gd/tests/xpm2jpg.phpt" - "ext/gd/tests/xpm2png.phpt" - ;; AVIF support disabled - "ext/gd/tests/avif_decode_encode.phpt" - ;; Typo in expected outputs - "ext/gd/tests/bug72339.phpt" - ;; AVIF support disabled - "ext/gd/tests/imagecreatefromstring_avif.phpt" + ;; Drop tests that are known to fail. + (for-each + delete-file + '("ext/posix/tests/posix_getgrgid.phpt" ;Requires /etc/group. + "ext/posix/tests/posix_getgrnam_basic.phpt" ;Requires /etc/group. + "ext/sockets/tests/bug63000.phpt" ;Fails to detect OS. + ;; These need exotic locales. + "ext/standard/tests/strings/setlocale_basic1.phpt" + "ext/standard/tests/strings/setlocale_basic2.phpt" + "ext/standard/tests/strings/setlocale_basic3.phpt" + "ext/standard/tests/strings/setlocale_variation1.phpt" - ;; These tests fail due to issues in upstream gd - ;; 2.3.3 around BICUBIC interpolation. See - ;; https://github.com/libgd/libgd/issues/847 - "ext/gd/tests/bug79676.phpt" - "ext/gd/tests/imageinterpolation_basic.phpt" - "ext/gd/tests/imagescale_preserve_ratio.phpt" + ;; This test fails for unknown reason (see: + ;; ). + "ext/gd/tests/gh16559.phpt" - ;; XXX: These test failures appear legitimate, needs investigation. - ;; open_basedir() restriction failure. - "ext/curl/tests/curl_setopt_ssl.phpt" + ;; Some WebP related tests fail. + "ext/gd/tests/webp_basic.phpt" + "ext/gd/tests/imagecreatefromstring_webp.phpt" + ;; TODO: Enable these when libgd is built with xpm support. + "ext/gd/tests/xpm2gd.phpt" + "ext/gd/tests/xpm2jpg.phpt" + "ext/gd/tests/xpm2png.phpt" + ;; AVIF support disabled + "ext/gd/tests/avif_decode_encode.phpt" + ;; Typo in expected outputs + "ext/gd/tests/bug72339.phpt" + ;; AVIF support disabled + "ext/gd/tests/imagecreatefromstring_avif.phpt" - ;; Fail because there is no "root" in the build container's - ;; /etc/passwd - "sapi/fpm/tests/bug68591-conf-test-group.phpt" - "sapi/fpm/tests/bug68591-conf-test-listen-group.phpt" - "sapi/fpm/tests/bug68591-conf-test-listen-owner.phpt" + ;; These tests fail due to issues in upstream gd + ;; 2.3.3 around BICUBIC interpolation. See + ;; https://github.com/libgd/libgd/issues/847 + "ext/gd/tests/bug79676.phpt" + "ext/gd/tests/imageinterpolation_basic.phpt" + "ext/gd/tests/imagescale_preserve_ratio.phpt" - ;; The test expects an Array, but instead get the contents(?). - "ext/gd/tests/bug43073.phpt" - ;; imagettftext() returns wrong coordinates. - "ext/gd/tests/bug48732-mb.phpt" - "ext/gd/tests/bug48732.phpt" - ;; Similarly for imageftbbox(). - "ext/gd/tests/bug48801-mb.phpt" - "ext/gd/tests/bug48801.phpt" - ;; Different expected output from imagecolorallocate(). - "ext/gd/tests/bug53504.phpt" - ;; Wrong image size after scaling an image. - "ext/gd/tests/bug73272.phpt" - ;; PCRE with/without JIT gives different result - "ext/pcre/tests/gh11374.phpt" - "ext/pcre/tests/gh11956.phpt" - ;; reported bug only seems to affect windows - "ext/standard/tests/directory/bug74589_utf8.phpt" - ;; this test seems to be unreliable/flaky - "sapi/cli/tests/php_cli_server_pdeathsig.phpt" - ;; This test fails on most architectures. - "sapi/cli/tests/upload_2G.phpt")) + ;; XXX: These test failures appear legitimate, needs investigation. + ;; open_basedir() restriction failure. + "ext/curl/tests/curl_setopt_ssl.phpt" - ;; Accomodate two extra openssl errors flanking the expected one: - ;; random number generator:RAND_{load,write}_file:Cannot open file - ;; This is due to an invalid $HOME, but changing it in the test - ;; still prints the first one & changing it globally is overkill. - (substitute* "ext/openssl/tests/bug80747.phpt" - ((".*error:%s:key size too small.*" match) - (string-append "%s\n" match "%s\n"))) + ;; Fail because there is no "root" in the build container's + ;; /etc/passwd + "sapi/fpm/tests/bug68591-conf-test-group.phpt" + "sapi/fpm/tests/bug68591-conf-test-listen-group.phpt" + "sapi/fpm/tests/bug68591-conf-test-listen-owner.phpt" - ;; Skip tests requiring network access. - (setenv "SKIP_ONLINE_TESTS" "1") - ;; Without this variable, 'make test' passes regardless of failures. - (setenv "REPORT_EXIT_STATUS" "1") - ;; Skip tests requiring I/O facilities that are unavailable in the - ;; build environment - (setenv "SKIP_IO_CAPTURE_TESTS" "1")))) - #:test-target "test")) + ;; The test expects an Array, but instead get the contents(?). + "ext/gd/tests/bug43073.phpt" + ;; imagettftext() returns wrong coordinates. + "ext/gd/tests/bug48732-mb.phpt" + "ext/gd/tests/bug48732.phpt" + ;; Similarly for imageftbbox(). + "ext/gd/tests/bug48801-mb.phpt" + "ext/gd/tests/bug48801.phpt" + ;; Different expected output from imagecolorallocate(). + "ext/gd/tests/bug53504.phpt" + ;; This test sometimes exit with Termsig=11 (see: + ;; ). + "ext/gd/tests/bug65148.phpt" + ;; Wrong image size after scaling an image. + "ext/gd/tests/bug73272.phpt" + ;; PCRE with/without JIT gives different result + "ext/pcre/tests/gh11374.phpt" + "ext/pcre/tests/gh11956.phpt" + ;; reported bug only seems to affect windows + "ext/standard/tests/directory/bug74589_utf8.phpt" + ;; This test is flaky, appears racy when the test suite runs + ;; in parallel (see: + ;; ). + "ext/standard/tests/file/bug46347.phpt" + ;; this test seems to be unreliable/flaky + "sapi/cli/tests/php_cli_server_pdeathsig.phpt" + ;; This test fails on most architectures. + "sapi/cli/tests/upload_2G.phpt")) + + ;; Accomodate two extra openssl errors flanking the expected one: + ;; random number generator:RAND_{load,write}_file:Cannot open file + ;; This is due to an invalid $HOME, but changing it in the test + ;; still prints the first one & changing it globally is overkill. + (substitute* "ext/openssl/tests/bug80747.phpt" + ((".*error:%s:key size too small.*" match) + (string-append "%s\n" match "%s\n"))) + + ;; Skip tests requiring network access. + (setenv "SKIP_ONLINE_TESTS" "1") + ;; Without this variable, 'make test' passes regardless of failures. + (setenv "REPORT_EXIT_STATUS" "1") + ;; Skip tests requiring I/O facilities that are unavailable in the + ;; build environment + (setenv "SKIP_IO_CAPTURE_TESTS" "1") + ;; Run tests in parallel. + (setenv "TEST_PHP_ARGS" + (format #f "-j~a" (if parallel-tests? + (parallel-job-count) + 1)))))) + #:test-target "test")) (inputs - `(("aspell" ,aspell) - ("bzip2" ,bzip2) - ("curl" ,curl) - ("cyrus-sasl" ,cyrus-sasl) - ("freetype" ,freetype) - ("fontconfig" ,fontconfig) - ("libjpeg-turbo" ,libjpeg-turbo) - ("libpng" ,libpng) - ("gd" ,gd) - ("gdbm" ,gdbm) - ("gmp" ,gmp) - ("gnutls" ,gnutls) - ("icu4c" ,icu4c) - ("libgcrypt" ,libgcrypt) - ("libpng" ,libpng) - ("libsodium" ,libsodium) - ("libxml2" ,libxml2) - ("libxslt" ,libxslt) - ("libx11" ,libx11) - ("libzip" ,libzip) - ("oniguruma" ,oniguruma) - ("openldap" ,openldap) - ("openssl" ,openssl) - ("pcre" ,pcre2) - ("postgresql" ,postgresql) - ("readline" ,readline) - ("sqlite" ,sqlite) - ("tidy" ,tidy-html) - ("zlib" ,zlib))) + (list aspell + bzip2 + curl + cyrus-sasl + fontconfig + freetype + gd + gdbm + gmp + gnutls + icu4c + libgcrypt + libjpeg-turbo + libpng + libpng + libsodium + libx11 + libxml2 + libxslt + libzip + oniguruma + openldap + openssl + pcre2 + postgresql + readline + sqlite + tidy-html + zlib)) (native-inputs - `(("pkg-config" ,pkg-config) - ("bison" ,bison) - ("gettext" ,gettext-minimal) - ("procps" ,procps))) ; for tests + (list autoconf ;to save the test report + bison + gettext-minimal + pkg-config + procps)) ;for tests (synopsis "PHP programming language") (description "PHP (PHP Hypertext Processor) is a server-side (CGI) scripting language designed primarily for web development but is also used as a general-purpose programming language. PHP code may be embedded into HTML code, or it can be used in combination with various web template -systems, web content management systems and web frameworks." ) - (license (list - (license:non-copyleft "file://LICENSE") ; The PHP license. - (license:non-copyleft "file://Zend/LICENSE") ; The Zend license. - license:lgpl2.1 ; ext/mbstring/libmbfl - license:lgpl2.1+ ; ext/bcmath/libbcmath - license:bsd-2 ; ext/fileinfo/libmagic - license:expat)))) ; ext/date/lib +systems, web content management systems and web frameworks.") + (license (list (license:non-copyleft "file://LICENSE") ;The PHP license. + (license:non-copyleft "file://Zend/LICENSE") ;The Zend license. + license:lgpl2.1 ;ext/mbstring/libmbfl + license:lgpl2.1+ ;ext/bcmath/libbcmath + license:bsd-2 ;ext/fileinfo/libmagic + license:expat)))) ; ext/date/lib diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 0178711b984..e13c73e3cb3 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -5940,6 +5940,35 @@ simple editor for binary data, just like @code{QPlainTextEdit} is for text data.") (license license:lgpl2.1))) +(define-public qhotkey + (package + (name "qhotkey") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Skycoder42/QHotkey") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0glzh4l532xk4v9mphsdf96v1557pyvg5al3ha0vr3244bfh9hcf")))) + (build-system cmake-build-system) + (arguments + (list #:tests? #f ;no tests + #:configure-flags + #~(list "-DQT_DEFAULT_MAJOR_VERSION=6" + "-DBUILD_SHARED_LIBS=ON" + "-DQHOTKEY_EXAMPLES=ON"))) + (inputs (list libx11 qtbase)) + (home-page "https://github.com/Skycoder42/QHotkey") + (synopsis "Global shortcut key for Qt desktop applications") + (description + "This package provides @code{QHotKey} class that can be used to create +hotkeys/global shortcuts, aka shortcuts that work everywhere, independent of +the application state.") + (license license:bsd-3))) + (define-public qthttpserver (package (name "qthttpserver") diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index 0e6af1e8c5d..d9ef21a1439 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -267,7 +267,7 @@ a custom raw video format with a simple container.") (string-append apps "/dwm.desktop") #:name "dwm" #:generic-name #$synopsis - #:exec (string-append #$output "/bin/dwm %U") + #:exec (string-append #$output "/bin/dwm") #:comment `(("en" ,#$synopsis) (#f ,#$synopsis))))))))) diff --git a/gnu/packages/task-runners.scm b/gnu/packages/task-runners.scm index 5a71d41314f..ee14343a715 100644 --- a/gnu/packages/task-runners.scm +++ b/gnu/packages/task-runners.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2021 Ivan Gankevich ;;; Copyright © 2024-2025 Sharlatan Hellseher ;;; Copyright © 2025 Nicolas Graves +;;; Copyright © 2025 Junker ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,8 @@ #:use-module (gnu packages compression) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages mail) + #:use-module (gnu packages scheme) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix download) @@ -33,6 +36,31 @@ #:use-module (guix packages) #:use-module (guix utils)) +(define-public faber + (package + (name "faber") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Junker/faber") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17xjg92vwg7n06lx4xbsnd7wvsgqcw8h10ha5365rsfs49bd3cyf")))) + (inputs (list gauche)) + (build-system copy-build-system) + (arguments + '(#:install-plan '(("faber" "bin/")))) + (synopsis "Task runner with power of Scheme") + (description "Faber is a CLI task runner designed to leverage the power and +flexibility of Gauche Scheme. +Unlike other build systems that rely on custom formats, Faber uses Gauche +Scheme, allowing you to write build scripts using familiar Scheme syntax.") + (home-page "https://github.com/Junker/faber") + (license license:expat))) + (define-public run (package (name "run") diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index cfc0253dbf6..e6a07769cdd 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1986,33 +1986,6 @@ audio/video codec library.") " -Wno-error=int-conversion "))))))))) (inputs '())))) -(define-public ffmpeg-for-friction - (package - (inherit ffmpeg-4) - (version "4.2.10") - (source (origin - (method url-fetch) - (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" - version ".tar.xz")) - (sha256 - (base32 - "01jc8ygbazk37wbb7qj24zi9sbfrxrvzhyk527bbas19gxpdrk64")))) - (arguments - (substitute-keyword-arguments (package-arguments ffmpeg-4) - ((#:modules modules %default-gnu-modules) - `((srfi srfi-1) ,@modules)) - ((#:configure-flags flags ''()) - #~(fold delete #$flags - '("--enable-avresample" - "--enable-libaom" - "--enable-libdav1d" - "--enable-librav1e" - "--enable-libsrt" - "--enable-libsvtav1" - "--enable-vulkan"))))) - (inputs (modify-inputs (package-inputs ffmpeg-4) - (delete "dav1d" "libaom" "rav1e" "srt"))))) - ;;; Custom ffmpeg package used by Jami, which incorporates custom patches. (define-public ffmpeg-jami (let ((ffmpeg ffmpeg-6)) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index dc0a1bcc331..6c2835c607b 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1630,14 +1630,14 @@ It started as a side project of LXC but can be used by any run-time.") (define-public libvirt (package (name "libvirt") - (version "11.0.0") + (version "11.5.0") (source (origin (method url-fetch) (uri (string-append "https://libvirt.org/sources/libvirt-" version ".tar.xz")) (sha256 - (base32 "0vl0lgzw3x4fkghhw7nfxk8fxj3bbn9f17y0hg7miba283zpd881")) + (base32 "08r4sxchhh639a8h346795971zz615j86v9z9vxf5q9q0pbbjqrb")) (patches (search-patches "libvirt-add-install-prefix.patch" "libvirt-respect-modules-path.patch")))) (build-system meson-build-system) @@ -1794,14 +1794,14 @@ three libraries: (define-public python-libvirt (package (name "python-libvirt") - (version "11.0.0") + (version "11.5.0") (source (origin (method url-fetch) (uri (string-append "https://libvirt.org/sources/python/libvirt-python-" version ".tar.gz")) (sha256 - (base32 "1y26104zgylz0v9d6xc0bm6m13is94shn9dlhjycaf347jjjbs6f")))) + (base32 "08xcnzmahmb72rv9cw8dxwnjmrdgmm5j4bbxpwsnhll9qsgdiak9")))) (build-system pyproject-build-system) (inputs (list libvirt)) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 30a7b5e9d1a..caceaf8dcf4 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -44,6 +44,7 @@ ;;; Copyright © 2025 Artyom V. Poptsov ;;; Copyright © 2025 宋文武 ;;; Copyright © 2025 B. Wilson +;;; Copyright © 2025 Simen Endsjø ;;; ;;; This file is part of GNU Guix. ;;; @@ -6202,16 +6203,13 @@ The XCB util-wm module provides the following libraries: (define-public xinit (package (name "xinit") - (version "1.4.3") + (version "1.4.4") (source (origin (method url-fetch) (uri (string-append "mirror://xorg/individual/app/xinit-" version ".tar.xz")) (sha256 - (base32 - "0npx32mi035xkz26gp7raps5xsq4v7rgayy1q794h4d3lqhryh46")) - (patches - (search-patches "xinit-startx-mcookie-path.patch")))) + (base32 "1ygymifhg500sx1ybk8x4d1zn4g4ywvlnyvqwcf9hzsc2rx7r920")))) (build-system gnu-build-system) (inputs (list libx11 util-linux xorgproto)) (native-inputs (list pkg-config)) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 646c8620409..c15adc23baa 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -64,6 +64,7 @@ #:use-module (gnu packages usb-modeswitch) #:use-module (gnu packages messaging) #:use-module (gnu packages networking) + #:use-module (gnu packages nss) #:use-module (gnu packages ntp) #:use-module (gnu packages gnome) #:use-module (gnu packages ipfs) @@ -1307,7 +1308,13 @@ HiddenServicePort ~a ~a~%" (writable? #t)) (file-system-mapping (source torrc) - (target source))) + (target source)) + + ;; Transport plugins like the lyrebird + ;; webtunnel need X.509 certificates. + (file-system-mapping + (source (file-append nss-certs "/etc/ssl/certs")) + (target "/etc/ssl/certs"))) (map (lambda (plugin) (file-system-mapping (source (tor-plugin-program plugin)) diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 17c2e6f6bfd..febfda57785 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -349,7 +349,7 @@ FILE-SYSTEMS." ("btrfs" => '("btrfs")) ("iso9660" => '("isofs")) ("jfs" => '("jfs")) - ("f2fs" => '("f2fs" "crc32_generic")) + ("f2fs" => '("f2fs" "crc32_cryptoapi")) ("xfs" => '("xfs")) (else '()))) diff --git a/tests/builders.scm b/tests/builders.scm index 619caa5f313..0ed295a93f4 100644 --- a/tests/builders.scm +++ b/tests/builders.scm @@ -140,6 +140,7 @@ (lambda (dir) (with-directory-excursion dir (unpack #:source file) + (sync) (call-with-input-file name get-string-all)))))))) compressors) diff --git a/tests/pack.scm b/tests/pack.scm index ce94d9bc581..d0a1b72eb94 100644 --- a/tests/pack.scm +++ b/tests/pack.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017-2021, 2023, 2024 Ludovic Courtès ;;; Copyright © 2018 Ricardo Wurmus -;;; Copyright © 2021, 2023 Maxim Cournoyer +;;; Copyright © 2021, 2023, 2025 Maxim Cournoyer ;;; Copyright © 2023 Oleg Pykhalov ;;; Copyright © 2024 Noé Lopez ;;; @@ -61,17 +61,6 @@ (define %ar-bootstrap %bootstrap-binutils) -;;; This is a variant of the RPM package configured so that its database can -;;; be created on a writable location readily available inside the build -;;; container ("/tmp"). -(define rpm-for-tests - (package - (inherit rpm) - (arguments (substitute-keyword-arguments (package-arguments rpm) - ((#:configure-flags flags '()) - #~(cons "--localstatedir=/tmp" - (delete "--localstatedir=/var" #$flags))))))) - (test-begin "pack") @@ -517,14 +506,15 @@ (use-modules (guix build utils)) (define fakeroot #+(file-append fakeroot "/bin/fakeroot")) - (define rpm #+(file-append rpm-for-tests "/bin/rpm")) - (mkdir-p "/tmp/lib/rpm") + (define rpm #+(file-append rpm "/bin/rpm")) + (define dbpath (string-append (getcwd) "/var/lib/rpm")) + (mkdir-p dbpath) ;; Install the RPM package. This causes RPM to validate the ;; signatures, header as well as the file digests, which ;; makes it a rather thorough test. (mkdir "test-prefix") - (invoke fakeroot rpm "--install" + (invoke fakeroot rpm "--dbpath" dbpath "--install" (string-append "--prefix=" (getcwd) "/test-prefix") #$rpm-pack) @@ -532,7 +522,8 @@ (invoke "./test-prefix/bin/guile" "--version") ;; Uninstall the RPM package. - (invoke fakeroot rpm "--erase" "guile-bootstrap") + (invoke fakeroot rpm "--dbpath" dbpath + "--erase" "guile-bootstrap") ;; Required so the above is run. (mkdir #$output))))))