diff options
Diffstat (limited to 'gnu')
193 files changed, 8384 insertions, 3021 deletions
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 9ceb2fda4e..41e1c9e282 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016, 2017 David Craven <david@craven.ch> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> -;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019–2021, 2024 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 David C. Trudgian <dave@trudgian.net> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com> @@ -450,6 +450,116 @@ fix only those considered safe to repair automatically." ;;; +;;; exFAT file systems. +;;; + +;; <https://learn.microsoft.com/en-us/windows/win32/fileio/exfat-specification>. + +(define-syntax %exfat-endianness + (identifier-syntax (endianness little))) + +(define (exfat-superblock? sblock) + "Return #t when SBLOCK, a bytevector of at least length 512, is an exFAT +superblock, called main boot sector in the exFAT specification." + (and (bytevector=? (string->utf8 "EXFAT ") + (sub-bytevector sblock 3 8)) ;FileSystemName + (bytevector=? (make-bytevector 53 0) + (sub-bytevector sblock 11 53)) ;MustBeZero + (bytevector=? #vu8(#x55 #xaa) + (sub-bytevector sblock 510 2)))) ;BootSignature + +(define (exfat-bytes-per-sector-shift sblock) + (bytevector-u8-ref sblock 108)) + +(define (exfat-sectors-per-cluster-shift sblock) + (bytevector-u8-ref sblock 109)) + +(define (exfat-root-directory-offset sblock) + (let ((cluster-heap-offset (bytevector-u32-ref sblock 88 + %exfat-endianness)) + (root-directory-cluster (bytevector-u32-ref sblock 96 + %exfat-endianness))) + (define (cluster->sector cluster) + (let ((first-data-cluster 2)) + (+ cluster-heap-offset (ash (- cluster first-data-cluster) + (exfat-sectors-per-cluster-shift sblock))))) + (ash (cluster->sector root-directory-cluster) + (exfat-bytes-per-sector-shift sblock)))) + +(define (exfat-cluster-size sblock) + (ash 1 (+ (exfat-bytes-per-sector-shift sblock) + (exfat-sectors-per-cluster-shift sblock)))) + +;; exFAT stores the volume name in a directory entry with no fixed location. We +;; search an arbitrary number of entries before giving up: 128 for devices <256M +;; (4K clusters), 1024 for those <32G (32K clusters), or 4096 for others (128K). +;; It's silly but mostly matches what util-linux's libblkid does with its higher +;; arbitrary number of 10,000 tries. To match that, we'd not only have to look +;; up subsequent clusters in the FAT, but redesign this entire module not to +;; assume that all file systems have a `superblock' that both fits neatly into +;; RAM, and just happens to politely contain all the metadata we'll ever need. +(define (read-exfat-superblock+root-directory-cluster device sblock) + "Return as a bytevector the raw contents of DEVICE's exFAT `superblock' from +main boot sector up to the RootDirectoryCluster expected to contain the volume +label." + (let* ((span (+ (exfat-root-directory-offset sblock) + (exfat-cluster-size sblock)))) + (read-superblock device 0 span (const #t)))) + +(define (read-exfat-superblock device) + "Return the raw contents of DEVICE's exFAT superblock as a bytevector, or #f +if DEVICE does not contain an exFAT file system." + (and=> (read-superblock device 0 512 exfat-superblock?) + (cut read-exfat-superblock+root-directory-cluster device <>))) + +(define (exfat-superblock-volume-name sblock) + "Return as a string the volume name belonging to an exFAT file system +beginning with bytevector SBLOCK, which includes directory entries. +Return #f if no volume name was found within our arbitrary limit." + ;; Defined in section 7.3 of the exFAT specification. + (let ((root-directory (exfat-root-directory-offset sblock)) + (cluster-size (exfat-cluster-size sblock)) + (entry-size 32)) ;bytes + (let loop ((cluster-offset 0)) + (if (< cluster-offset cluster-size) + (let ((offset (+ root-directory cluster-offset))) + (match (bytevector-u8-ref sblock offset) + ((or #x00 ;end of directory + #x03) ;type 3 & not in use + #f) + (#x83 ;type 3 & in use + (let* ((length (min 11 (bytevector-u8-ref sblock (+ 1 offset)))) + (label (sub-bytevector sblock (+ 2 offset) (* 2 length)))) + (utf16->string label %exfat-endianness))) + (_ (loop (+ entry-size offset))))) + #f)))) + +(define (exfat-superblock-uuid sblock) + "Return the Volume Serial Number of exFAT superblock SBLOCK as a bytevector. +This 4-byte identifier is guaranteed to exist, unlike the optional 16-byte +Volume GUID from section 7.5 of the exFAT specification." + (sub-bytevector sblock 100 4)) + +(define (check-exfat-file-system device force? repair) + "Return the health of an unmounted exFAT file system on DEVICE. If FORCE? +is true, check the file system even if it's marked as clean. If REPAIR is +false, do not write to the file system to fix errors. If it's #t, fix all +errors. Otherwise, fix only those considered safe to repair automatically." + (match (status:exit-val + (apply system*/tty "fsck.exfat" "-sv" + `(,@(if force? '("-b") '()) + ,@(match repair + (#f '("-n")) + (#t '("-y")) + (_ '("-p"))) + ,device))) + (0 'pass) + (1 'errors-corrected) + (2 'reboot-required) + (_ 'fatal-error))) + + +;;; ;;; FAT32 file systems. ;;; @@ -937,6 +1047,8 @@ partition field reader that returned a value." bcachefs-superblock-volume-name) (partition-field-reader read-btrfs-superblock btrfs-superblock-volume-name) + (partition-field-reader read-exfat-superblock + exfat-superblock-volume-name) (partition-field-reader read-fat32-superblock fat32-superblock-volume-name) (partition-field-reader read-fat16-superblock @@ -959,6 +1071,8 @@ partition field reader that returned a value." bcachefs-superblock-external-uuid) (partition-field-reader read-btrfs-superblock btrfs-superblock-uuid) + (partition-field-reader read-exfat-superblock + exfat-superblock-uuid) (partition-field-reader read-fat32-superblock fat32-superblock-uuid) (partition-field-reader read-fat16-superblock @@ -1079,6 +1193,7 @@ an exception in such cases but perform the nearest sane action." ((string-prefix? "ext" type) check-ext2-file-system) ((string-prefix? "bcachefs" type) check-bcachefs-file-system) ((string-prefix? "btrfs" type) check-btrfs-file-system) + ((string-suffix? "exfat" type) check-exfat-file-system) ((string-suffix? "fat" type) check-fat-file-system) ((string-prefix? "jfs" type) check-jfs-file-system) ((string-prefix? "f2fs" type) check-f2fs-file-system) diff --git a/gnu/home/services.scm b/gnu/home/services.scm index b69cd91203..39c9033ad6 100644 --- a/gnu/home/services.scm +++ b/gnu/home/services.scm @@ -445,7 +445,7 @@ activation."))) (warning (G_ "XDG_RUNTIME_DIR doesn't exists, on-first-login script won't execute anything. You can check if xdg runtime directory exists, XDG_RUNTIME_DIR variable is set to appropriate value and manually execute the -script by running '$HOME/.guix-home/on-first-login'")))))))) +script by running '$HOME/.guix-home/on-first-login'~%")))))))) (define (on-first-login-script-entry on-first-login) "Return, as a monadic value, an entry for the on-first-login script diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm index a3ca21b319..dfe4030a4e 100644 --- a/gnu/home/services/shepherd.scm +++ b/gnu/home/services/shepherd.scm @@ -91,9 +91,8 @@ as shepherd package." (load file)))) '#$files)) - #$@(if daemonize? - `((action 'root 'daemonize)) - '()) + #$(and daemonize? + #~(perform-service-action root-service 'daemonize)) (format #t "Starting services...~%") (let ((services-to-start diff --git a/gnu/home/services/xdg.scm b/gnu/home/services/xdg.scm index 958772696b..872db6902a 100644 --- a/gnu/home/services/xdg.scm +++ b/gnu/home/services/xdg.scm @@ -476,7 +476,7 @@ that the application cannot open the specified MIME type.") (define (home-xdg-mime-applications-xdg-files config) `(("mimeapps.list" ,(mixed-text-file - "xdg-mime-appplications" + "xdg-mime-applications" (serialize-configuration config home-xdg-mime-applications-configuration-fields))))) diff --git a/gnu/installer.scm b/gnu/installer.scm index 3792fc7e35..5cd99e4013 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -146,6 +146,10 @@ been performed at build time." (let* ((supported-locales #~(supported-locales->locales #+(glibc-supported-locales))) + + ;; Note: Use the latest version of 'iso-codes', including + ;; Guix-specific changes, so that all languages known to glibc and + ;; returned by 'glibc-supported-locales'. (iso-codes #~(string-append #$iso-codes "/share/iso-codes/json/")) (iso639-3 #~(string-append #$iso-codes "iso_639-3.json")) (iso639-5 #~(string-append #$iso-codes "iso_639-5.json")) diff --git a/gnu/local.mk b/gnu/local.mk index ed630041ff..49660d4b3e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -235,6 +235,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/debug.scm \ %D%/packages/dejagnu.scm \ %D%/packages/dezyne.scm \ + %D%/packages/decker.scm \ %D%/packages/dhall.scm \ %D%/packages/dico.scm \ %D%/packages/dictionaries.scm \ @@ -1045,6 +1046,7 @@ dist_patch_DATA = \ %D%/packages/patches/cdrkit-libre-cross-compile.patch \ %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \ %D%/packages/patches/ceph-disable-cpu-optimizations.patch \ + %D%/packages/patches/ceph-fix-for-newer-boost.patch \ %D%/packages/patches/cf-tool-add-languages.patch \ %D%/packages/patches/chmlib-inttypes.patch \ %D%/packages/patches/cl-asdf-config-directories.patch \ @@ -1071,8 +1073,11 @@ dist_patch_DATA = \ %D%/packages/patches/clang-17.0-link-dsymutil-latomic.patch \ %D%/packages/patches/clang-18.0-libc-search-path.patch \ %D%/packages/patches/clang-cling-13-libc-search-path.patch \ + %D%/packages/patches/clang-cling-13-remove-crypt-interceptors.patch \ + %D%/packages/patches/clang-cling-runtime-13-glibc-2.36-compat.patch \ %D%/packages/patches/clang-runtime-asan-build-fixes.patch \ %D%/packages/patches/clang-runtime-esan-build-fixes.patch \ + %D%/packages/patches/clang-runtime-12-remove-crypt-interceptors.patch \ %D%/packages/patches/clang-runtime-13-glibc-2.36-compat.patch \ %D%/packages/patches/clang-runtime-14-glibc-2.36-compat.patch \ %D%/packages/patches/clang-runtime-9-glibc-2.36-compat.patch \ @@ -1109,6 +1114,7 @@ dist_patch_DATA = \ %D%/packages/patches/crda-optional-gcrypt.patch \ %D%/packages/patches/clucene-contribs-lib.patch \ %D%/packages/patches/cube-nocheck.patch \ + %D%/packages/patches/cups-minimal-Address-PPD-injection-issues.patch \ %D%/packages/patches/curl-use-ssl-cert-env.patch \ %D%/packages/patches/curlftpfs-fix-error-closing-file.patch \ %D%/packages/patches/curlftpfs-fix-file-names.patch \ @@ -1160,7 +1166,6 @@ dist_patch_DATA = \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ %D%/packages/patches/dwarves-threading-reproducibility.patch \ %D%/packages/patches/dynaconf-unvendor-deps.patch \ - %D%/packages/patches/dyninst-fix-glibc-compatibility.patch \ %D%/packages/patches/efivar-211.patch \ %D%/packages/patches/eigen-fix-strict-aliasing-bug.patch \ %D%/packages/patches/einstein-build.patch \ @@ -1205,6 +1210,9 @@ dist_patch_DATA = \ %D%/packages/patches/esmtp-add-lesmtp.patch \ %D%/packages/patches/eudev-rules-directory.patch \ %D%/packages/patches/exercism-disable-self-update.patch \ + %D%/packages/patches/expat-CVE-2024-45490.patch \ + %D%/packages/patches/expat-CVE-2024-45491.patch \ + %D%/packages/patches/expat-CVE-2024-45492.patch \ %D%/packages/patches/extempore-unbundle-external-dependencies.patch \ %D%/packages/patches/extundelete-e2fsprogs-1.44.patch \ %D%/packages/patches/fail2ban-0.11.2_CVE-2021-32749.patch \ @@ -1283,6 +1291,7 @@ dist_patch_DATA = \ %D%/packages/patches/fulcrum-1.9.1-unbundled-libraries.patch \ %D%/packages/patches/fuse-glibc-2.34.patch \ %D%/packages/patches/fuse-overlapping-headers.patch \ + %D%/packages/patches/fuzzel-fix-gcc-error.patch \ %D%/packages/patches/fuzzylite-relative-path-in-tests.patch \ %D%/packages/patches/fuzzylite-use-catch2.patch \ %D%/packages/patches/fuzzylite-soften-float-equality.patch \ @@ -1363,6 +1372,7 @@ dist_patch_DATA = \ %D%/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch \ %D%/packages/patches/gemmi-fix-pegtl-usage.patch \ %D%/packages/patches/gemmi-fix-sajson-types.patch \ + %D%/packages/patches/gemrb-add-path-suffixes-for-vlc-headers.patch \ %D%/packages/patches/genimage-mke2fs-test.patch \ %D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/gettext-libunicode-update.patch \ @@ -1682,6 +1692,7 @@ dist_patch_DATA = \ %D%/packages/patches/libphonenumber-reproducible-build.patch \ %D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \ %D%/packages/patches/libquicktime-ffmpeg.patch \ + %D%/packages/patches/librewolf-add-paths-to-rdd-allowlist.patch \ %D%/packages/patches/libsepol-versioned-docbook.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtgvoip-disable-sse2.patch \ @@ -1740,6 +1751,7 @@ dist_patch_DATA = \ %D%/packages/patches/lua-5.4-liblua-so.patch \ %D%/packages/patches/lugaru-fix-sound.patch \ %D%/packages/patches/luit-posix.patch \ + %D%/packages/patches/lxc-no-static-bin.patch \ %D%/packages/patches/mactelnet-remove-init.patch \ %D%/packages/patches/mailutils-variable-lookup.patch \ %D%/packages/patches/make-impure-dirs.patch \ @@ -1979,7 +1991,6 @@ dist_patch_DATA = \ %D%/packages/patches/pulseview-glib-2.68.patch \ %D%/packages/patches/pybugz-encode-error.patch \ %D%/packages/patches/pybugz-stty.patch \ - %D%/packages/patches/pygpgme-disable-problematic-tests.patch \ %D%/packages/patches/pyqt-configure.patch \ %D%/packages/patches/pytest-fix-unstrable-exception-test.patch \ %D%/packages/patches/python-2-deterministic-build-info.patch \ @@ -2024,7 +2035,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-paste-remove-timing-test.patch \ %D%/packages/patches/python-pyan3-fix-absolute-path-bug.patch \ %D%/packages/patches/python-pyan3-fix-positional-arguments.patch \ - %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ %D%/packages/patches/python-pysmt-fix-pow-return-type.patch \ %D%/packages/patches/python-pysmt-fix-smtlib-serialization-test.patch \ %D%/packages/patches/python-pytorch-fix-codegen.patch \ @@ -2067,6 +2077,7 @@ dist_patch_DATA = \ %D%/packages/patches/qtwayland-cleanup-callbacks.patch \ %D%/packages/patches/ragel-char-signedness.patch \ %D%/packages/patches/randomjungle-disable-static-build.patch \ + %D%/packages/patches/rapidcheck-fix-libs.patch \ %D%/packages/patches/raptor2-heap-overflow.patch \ %D%/packages/patches/ratpoints-sturm_and_rp_private.patch \ %D%/packages/patches/ratpoison-shell.patch \ @@ -2128,6 +2139,7 @@ dist_patch_DATA = \ %D%/packages/patches/sbcl-clml-fix-types.patch \ %D%/packages/patches/sbcl-eazy-gnuplot-skip-path-check.patch \ %D%/packages/patches/sbcl-fast-generic-functions-fix-sbcl-2.4.patch \ + %D%/packages/patches/sbcl-lack-fix-tests.patch \ %D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \ %D%/packages/patches/sbcl-s-sysdeps-bt2.patch \ %D%/packages/patches/scalapack-gcc-10-compilation.patch \ @@ -2191,6 +2203,8 @@ dist_patch_DATA = \ %D%/packages/patches/texinfo-headings-single.patch \ %D%/packages/patches/texinfo-5-perl-compat.patch \ %D%/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch \ + %D%/packages/patches/telegram-desktop-unbundle-cppgir.patch \ + %D%/packages/patches/telegram-desktop-unbundle-gsl.patch \ %D%/packages/patches/telegram-purple-adjust-test.patch \ %D%/packages/patches/teuchos-remove-duplicate-using.patch \ %D%/packages/patches/texi2html-document-encoding.patch \ @@ -2282,9 +2296,11 @@ dist_patch_DATA = \ %D%/packages/patches/wacomtablet-add-missing-includes.patch \ %D%/packages/patches/wacomtablet-qt5.15.patch \ %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \ + %D%/packages/patches/waybar-0.11.0-fix-tray-icons.patch \ %D%/packages/patches/wcstools-extend-makefiles.patch \ %D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch \ %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \ + %D%/packages/patches/webrtc-audio-processing-big-endian.patch \ %D%/packages/patches/webrtc-audio-processing-byte-order-pointer-size.patch \ %D%/packages/patches/webrtc-audio-processing-x86-no-sse.patch \ %D%/packages/patches/webrtc-for-telegram-desktop-unbundle-libsrtp.patch \ @@ -2298,6 +2314,7 @@ dist_patch_DATA = \ %D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \ %D%/packages/patches/wpa-supplicant-dbus-group-policy.patch \ %D%/packages/patches/x265-arm-flags.patch \ + %D%/packages/patches/xdg-desktop-portal-disable-portal-tests.patch\ %D%/packages/patches/xdg-desktop-portal-wlr-harcoded-length.patch\ %D%/packages/patches/xen-docs-use-predictable-ordering.patch \ %D%/packages/patches/xen-remove-config.gz-timestamp.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 19a75e43a4..5c1b063d26 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -277,7 +277,7 @@ usual file attributes can be checked for inconsistencies.") (define-public progress (package (name "progress") - (version "0.16") + (version "0.17") (source (origin (method git-fetch) @@ -285,7 +285,7 @@ usual file attributes can be checked for inconsistencies.") (url "https://github.com/Xfennec/progress") (commit (string-append "v" version)))) (sha256 - (base32 "0gf10j9zd8spain94b5kigknwbdqajiy6fjsa5hhwsc1biz34hcj")) + (base32 "1cg1vdk2891sdcbn7yc9a6mzdxplm63qsk1kq0jr4j8ym28v09xf")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs @@ -293,18 +293,14 @@ usual file attributes can be checked for inconsistencies.") (inputs (list ncurses)) (arguments - `(#:tests? #f ; no test suite - #:make-flags - (let ((target ,(%current-target-system))) - (list ,(string-append "CC=" (cc-for-target)) - (string-append "PKG_CONFIG=" - (if target - (string-append target "-pkg-config") - "pkg-config")) - (string-append "PREFIX=" (assoc-ref %outputs "out")))) - #:phases - (modify-phases %standard-phases - (delete 'configure)))) ; no configure script + (list #:tests? #f ; no test suite + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PKG_CONFIG=" #$(pkg-config-for-target)) + (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure)))) ; no configure script (home-page "https://github.com/Xfennec/progress") (synopsis "Program to view the progress of the coreutils commands") (description "A program that looks for coreutils basic commands (cp, mv, @@ -767,7 +763,7 @@ console.") (define-public btop (package (name "btop") - (version "1.3.2") + (version "1.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -776,11 +772,12 @@ console.") (file-name (git-file-name name version)) (sha256 (base32 - "084n0nbv1029lvfv4na2k9fqyray7m77dff1537b8ffk08ib4d4j")))) + "0vgw6hwqh6zbzrvrn3i0xwi9ykm1qdvhqcyz3mjakd7w303lx603")))) (build-system gnu-build-system) (arguments (list #:tests? #f ;no test suite - #:make-flags #~(list (string-append "PREFIX=" #$output)) + #:make-flags #~(list (string-append "PREFIX=" #$output) + (string-append "CC=" #$(cc-for-target))) #:phases #~(modify-phases %standard-phases (delete 'configure)))) (home-page "https://github.com/aristocratos/btop") @@ -2041,7 +2038,7 @@ system administrator.") (define-public sudo (package (name "sudo") - (version "1.9.14p3") + (version "1.9.16") (source (origin (method url-fetch) (uri @@ -2051,7 +2048,7 @@ system administrator.") version ".tar.gz"))) (sha256 (base32 - "0qibg30d30gy85g83fj6gsg59g1sj3i9mkfl0k0851dwqjqii0x0")) + "0gd0pyycc3jnbgq5f8056fyc4a1ix257j2rxazy35dq6gxwlvn60")) (modules '((guix build utils))) (snippet '(begin @@ -2059,68 +2056,78 @@ system administrator.") (build-system gnu-build-system) (outputs (list "out")) (arguments - `(#:configure-flags - (list (string-append "--docdir=" (assoc-ref %outputs "out") - "/share/doc/" ,name "-" ,version) + (list #:configure-flags + #~(list (string-append "--docdir=" #$output + "/share/doc/" #$name "-" #$version) - "--with-logpath=/var/log/sudo.log" - "--with-rundir=/var/run/sudo" ; must be cleaned up at boot time - "--with-vardir=/var/db/sudo" - "--with-iologdir=/var/log/sudo-io" + "--with-logpath=/var/log/sudo.log" + "--with-rundir=/var/run/sudo" ; must be cleaned up at boot time + "--with-vardir=/var/db/sudo" + "--with-iologdir=/var/log/sudo-io" - ;; 'visudo.c' expects _PATH_MV to be defined, but glibc doesn't - ;; provide it. - (string-append "CPPFLAGS=-D_PATH_MV=\\\"" - (assoc-ref %build-inputs "coreutils") - "/bin/mv\\\"")) + ;; 'visudo.c' expects _PATH_MV to be defined, but glibc doesn't + ;; provide it. + (string-append "CPPFLAGS=-D_PATH_MV=\\\"" + (search-input-file %build-inputs "/bin/mv") + "\\\"") - ;; Avoid non-determinism; see <http://bugs.gnu.org/21918>. - #:parallel-build? #f + ;; When cross-compiling, assume we have a working 'snprintf' and + ;; 'vsnprintf' (which we do, when using glibc). The default + ;; choice fails with undefined references to 'sudo_snprintf' & + ;; co. when linking. + #$@(if (%current-target-system) + '("ac_cv_have_working_snprintf=yes" + "ac_cv_have_working_vsnprintf=yes") + '())) - #:phases - (modify-phases %standard-phases - (add-before 'configure 'pre-configure - (lambda _ - (substitute* "src/sudo_usage.h.in" - ;; Do not capture 'configure' arguments since we would - ;; unduly retain references, and also because the - ;; CPPFLAGS above would close the string literal - ;; prematurely. - (("@CONFIGURE_ARGS@") "\"\"")) - (substitute* (find-files "." "Makefile\\.in") - ;; Allow installation as non-root. - (("-o [[:graph:]]+ -g [[:graph:]]+") - "") - ;; Don't try to create /etc/sudoers. - (("^install: (.*)install-sudoers(.*)" _ before after) - (string-append "install: " before after "\n")) - ;; Don't try to create /run/sudo. - (("\\$\\(DESTDIR\\)\\$\\(rundir\\)") - "$(TMPDIR)/dummy") - ;; Install example sudo{,_logsrvd}.conf to the right place. - (("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)") - "$(DESTDIR)/$(docdir)/examples") - ;; Don't try to create /var/db/sudo. - (("\\$\\(DESTDIR\\)\\$\\(vardir\\)") - "$(TMPDIR)/dummy")) + ;; Avoid non-determinism; see <http://bugs.gnu.org/21918>. + #:parallel-build? #f - ;; ‘Checking existing [/etc/]sudoers file for syntax errors’ is - ;; not the task of the build system, and fails. - (substitute* "plugins/sudoers/Makefile.in" - (("^pre-install:" match) - (string-append match "\ndisabled-" match)))))) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda _ + (substitute* "src/sudo_usage.h.in" + ;; Do not capture 'configure' arguments since we would + ;; unduly retain references, and also because the + ;; CPPFLAGS above would close the string literal + ;; prematurely. + (("@CONFIGURE_ARGS@") + "\"\"")) + (substitute* (find-files "." "Makefile\\.in") + ;; Allow installation as non-root. + (("-o [[:graph:]]+ -g [[:graph:]]+") + "") + ;; Don't try to create /etc/sudoers. + (("^install: (.*)install-sudoers(.*)" _ before + after) + (string-append "install: " before after "\n")) + ;; Don't try to create /run/sudo. + (("\\$\\(DESTDIR\\)\\$\\(rundir\\)") + "$(TMPDIR)/dummy") + ;; Install example sudo{,_logsrvd}.conf to the right place. + (("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)") + "$(DESTDIR)/$(docdir)/examples") + ;; Don't try to create /var/db/sudo. + (("\\$\\(DESTDIR\\)\\$\\(vardir\\)") + "$(TMPDIR)/dummy")) - ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but - ;; the chroot's /etc/passwd doesn't have it. Turn off the tests. - #:tests? #f)) + ;; ‘Checking existing [/etc/]sudoers file for syntax errors’ is + ;; not the task of the build system, and fails. + (substitute* "plugins/sudoers/Makefile.in" + (("^pre-install:" match) + (string-append match "\ndisabled-" match)))))) + + ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but + ;; the chroot's /etc/passwd doesn't have it. Turn off the tests. + #:tests? #f)) (native-inputs (list groff)) (inputs - `(("coreutils" ,coreutils) - ,@(if (target-hurd?) - '() - `(("linux-pam" ,linux-pam))) - ("zlib" ,zlib))) + (append (list coreutils zlib) + (if (target-hurd?) + '() + (list linux-pam)))) (home-page "https://www.sudo.ws/") (synopsis "Run commands as root") (description @@ -2506,24 +2513,29 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).") (define-public acpica (package (name "acpica") - (version "20230628") - (source (origin - (method url-fetch) - (uri (string-append - "https://downloadmirror.intel.com/783536/acpica-unix2-" - version ".tar.gz")) - (sha256 - (base32 - "1fmkng72zb0yqp4hfl8a6pqmylixqbpjd43xmi6k3p74x5qiq0h6")))) + (version "20240827") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/acpica/acpica") + (commit (string-append "version-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dzrdhdgmmr6kqm95avvhr295kj8xi6iwm510lfwaylxzh34ln26")))) (build-system gnu-build-system) (native-inputs (list flex bison)) (arguments - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "CC=" ,(cc-for-target)) - "HOST=_LINUX" - "OPT_CFLAGS=-Wall -fno-strict-aliasing") - #:tests? #f ; no 'check' target - #:phases (modify-phases %standard-phases (delete 'configure)))) + (list + #:make-flags + #~(list (string-append "PREFIX=" #$output) + (string-append "CC=" #$(cc-for-target)) + "HOST=_LINUX" + "OPT_CFLAGS=-Wall -fno-strict-aliasing") + #:tests? #f ;no test suite + #:phases + #~(modify-phases %standard-phases + (delete 'configure)))) ;no configure script (home-page "https://acpica.org/") (synopsis "Tools for the development and debugging of ACPI tables") (description @@ -2536,18 +2548,18 @@ debugging ACPI tables. This package contains only the user-space tools needed for ACPI table development, not the kernel implementation of ACPI.") - (license license:gpl2))) ; dual GPLv2/ACPICA Licence + (license license:gpl2))) ;dual GPLv2/ACPICA Licence (define-public s-tui (package (name "s-tui") - (version "1.1.4") + (version "1.1.6") (source (origin (method url-fetch) (uri (pypi-uri "s-tui" version)) (sha256 - (base32 "1vf9gpfk9x6sqpz7n420ijkn3ykws8g9b77kmbmlrjsm76dnp1dj")))) + (base32 "0mvvqg0pr8k0cy0mbvi25yqm6zsf8mipdbq97xjqfvifryf6j9wx")))) (build-system python-build-system) (inputs (list python-psutil python-urwid)) @@ -2589,7 +2601,7 @@ system is under heavy load.") (define-public stress-ng (package (name "stress-ng") - (version "0.13.10") + (version "0.18.04") (source (origin (method git-fetch) @@ -2598,12 +2610,12 @@ system is under heavy load.") (commit (string-append "V" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1z9vjn2131iv3pwrh04z6r5ygi1qgad5bi3jhghcvc3v1b4k5ran")))) + (base32 "100w4qkrzpg7jjl4dw0c376xi811qnjmlbffiy43i945f9vl3dc7")))) (build-system gnu-build-system) (arguments ;; XXX The test suite seems to cause instability on the VisionFive 2 ;; build machines, maybe it's stressing them as intended but this is - ;; unhelpful + ;; unhelpful. (list #:tests? (not (target-riscv64?)) #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) @@ -2614,21 +2626,13 @@ system is under heavy load.") "/share/stress-ng/example-jobs") (string-append "BASHDIR=" #$output "/share/bash-completion/completions")) + ;; There is also a fast-test-all that very briefly runs every single + ;; stressor, but its utility is questionable compared to its cost. + ;; See this package's git history for details & which tests to skip. #:test-target "lite-test" #:phases #~(modify-phases %standard-phases - (delete 'configure) ; no configure script - (add-after 'check 'check-a-little-harder - ;; XXX Guix supports only one #:test-target. Run more tests. - (lambda* (#:key tests? #:allow-other-keys #:rest args) - (when tests? - (substitute* "debian/tests/fast-test-all" - (("EXCLUDE=\"" exclude=) - (string-append exclude= - ;; Fails if host kernel denies ptracing. - "ptrace "))) - (apply (assoc-ref %standard-phases 'check) - `(,@args #:test-target "fast-test-all")))))))) + (delete 'configure)))) ;no configure script (inputs (list keyutils kmod @@ -4308,14 +4312,14 @@ system distribution, akin to many similar tools.") (define-public nnn (package (name "nnn") - (version "4.9") + (version "5.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/jarun/nnn/releases/download/v" version "/nnn-v" version ".tar.gz")) (sha256 - (base32 "0d8apcichwbmsqgbs0kay3k63898x6xdxpb9hn1nvv5qwxxdq59b")))) + (base32 "084m08fcnpjd8gdfvvmgz558lmc29wj7dxg23m98fdmvhp3dd0ms")))) (build-system gnu-build-system) (inputs (list ncurses readline)) @@ -5733,7 +5737,7 @@ on a GUI toolkit.") (define-public libseat (package (name "libseat") - (version "0.7.0") + (version "0.8.0") (source (origin (method git-fetch) (uri (git-reference @@ -5742,7 +5746,7 @@ on a GUI toolkit.") (file-name (git-file-name name version)) (sha256 (base32 - "10f8387yy5as547xjjhl0cna6iywdgjmw0iq2nvcs8q6vlpnik4v")))) + "02wzrgp8di6hqmicnm2fim6jnvbn62wy248ikvdvrhiywrb7i931")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Dlibseat-logind=elogind" diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index f2c5634d33..2187cd062d 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -41,6 +41,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) + #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages fltk) @@ -52,6 +53,7 @@ #:use-module (gnu packages maths) #:use-module (gnu packages mpi) #:use-module (gnu packages multiprecision) + #:use-module (gnu packages networking) #:use-module (gnu packages ocaml) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -1216,7 +1218,7 @@ xtensor provides: (define-public gap (package (name "gap") - (version "4.12.2") + (version "4.13.1") (source (origin (method url-fetch) @@ -1226,104 +1228,38 @@ xtensor provides: version ".tar.gz")) (sha256 - (base32 "1a47slldnjq6mib69k3g8lqw6nyxdrwdd3gfjhj252mpbrs0h8v7")) + (base32 "1fmy3mzbw84f1cxrkjcw7wyssj48zhhwxa0a5l58x6gvlvdxp54p")) (modules '((guix build utils) (ice-9 ftw) (srfi srfi-1))) (snippet '(begin ;; Delete bundled external libraries. (for-each delete-file-recursively '("extern" "hpcgap/extern")) - ;; Delete a failing test. - ;; FIXME: This might be fixed in the next release, see - ;; https://github.com/gap-system/gap/issues/3292 - (delete-file "tst/testinstall/dir.tst") - ;; Delete all packages except for a fixed list, - ;; given by their names up to version numbers. + ;; Delete packages that are known not to build. + ;; TODO: Investigate. (with-directory-excursion "pkg" (for-each delete-file-recursively - (lset-difference - (lambda (all keep) (string-prefix? keep all)) - (scandir ".") - '("." ".." - ;; Necessary packages. - "gapdoc" - "primgrp" - "smallgrp" ; artistic2.0 - "transgrp" ; artistic2.0 for data, - ; gpl2 or gpl3 for code - ;; Optional packages. - "4ti2interface" - "alnuth" - "autodoc" - "automata" - "autpgrp" - "cap" - "crime" - "crisp" ; bsd-2 - "ctbllib" ; gpl3+ - "datastructures" - "examplesforhomalg" - "factint" - "fga" - "format" - "gauss" - "gaussforhomalg" - "generalizedmorphismsforcap" - "gradedmodules" - "gradedringforhomalg" - "groupoids" - "guarana" - "homalg" - "homalgtocas" - "idrel" - "images" ; mpl2.0 - "intpic" - "io" ; gpl3+ - "ioforhomalg" - "irredsol" ; bsd-2 - "laguna" - "liering" - "linearalgebraforcap" - "localizeringforhomalg" - "mapclass" - "matricesforhomalg" - "modulepresentationsforcap" - "modules" - "monoidalcategories" - "nconvex" - "nilmat" - "numericalsgps" - "openmath" - "orb" ; gpl3+ - "polenta" - "polycyclic" - "radiroot" - "recog" ; gpl3+ - "repsn" - "resclasses" - "ringsforhomalg" - "sco" - "simpcomp" - "sophus" - "tomlib" - "toolsforhomalg" - "unipot" - "utils")))))))) + '("caratinterface" ; ./configure: /bin/sh: bad interpreter: No such file or directory + "cddinterface" ; configure: error: could not use setoper.h + "normalizinterface" ; tries to download normaliz + "semigroups" ; bundled dependencies + "xgap" ; make: /bin/sh: No such file or directory + ))))))) (build-system gnu-build-system) (inputs - (list gmp readline zlib)) + (list gmp readline zlib + curl ; for the curlinterface package + zeromq ; for the zeromqinterface package + )) (arguments - `(#:modules ((ice-9 ftw) - (srfi srfi-26) - (guix build gnu-build-system) - (guix build utils)) + `(#:configure-flags + (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) #:phases (modify-phases %standard-phases (add-after 'build 'build-packages - ;; Compile all packages that have not been deleted by the - ;; code snippet above. (lambda _ (setenv "CONFIG_SHELL" (which "bash")) + (setenv "CC" "gcc") (with-directory-excursion "pkg" (invoke "../bin/BuildPackages.sh")))) (add-after 'build-packages 'build-doc @@ -1345,13 +1281,9 @@ emphasis on computational group theory. It provides a programming language, a library of thousands of functions implementing algebraic algorithms written in the GAP language as well as large data libraries of algebraic objects.") - ;; Some packages have different licenses (effectively forcing the - ;; combined work to be licensed as gpl3+); if this is the case, this - ;; is mentioned above next to their name. - ;; Some packages have no license mentioned explicitly; supposedly this - ;; means that the gpl2+ licence of GAP itself applies, but to be on the - ;; safe side, we drop them for now. - (license license:gpl2+))) + ;; gap itself is gpl2+, but some packages have different licenses. + ;; effectively forcing the combined work to be licensed as gpl3+. + (license license:gpl3+))) (define-public spectra (package diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 1a25681c1e..106f524a73 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -38,6 +38,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) + #:use-module (gnu packages certs) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) @@ -110,6 +111,7 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (ice-9 match) + #:use-module (ice-9 format) #:use-module (srfi srfi-1)) (define-public alfa @@ -293,7 +295,7 @@ moment, supported SPICE files are: (define-public calcmysky (package (name "calcmysky") - (version "0.3.2") + (version "0.3.3") (source (origin (method git-fetch) @@ -302,7 +304,7 @@ moment, supported SPICE files are: (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1kybjlddrm8x4x5y82qczi6z1d2riv6zcfjzrh7pzg2vwj89izh0")))) + (base32 "0njsapy3qlyg3y0p5a849xydzhnzk4p5s0s37zxw9k5nnaf4vinp")))) (build-system cmake-build-system) (arguments (list #:configure-flags @@ -540,7 +542,7 @@ accurately in real time at any rate desired.") (define-public cfitsio (package (name "cfitsio") - (version "4.4.1") + (version "4.5.0") (source (origin (method url-fetch) @@ -548,7 +550,7 @@ accurately in real time at any rate desired.") "https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/" "cfitsio-" version ".tar.gz")) (sha256 - (base32 "098x1l8ijwsjp2ivp3v7pamrmpgwj5xmgb4yppm9w3w044zxr8b6")))) + (base32 "02ff4xsc4r6vam4m4nmp426bpl7klbx6nn5ajgj6452w6v1lz1g4")))) (build-system gnu-build-system) (arguments (list @@ -573,14 +575,33 @@ accurately in real time at any rate desired.") (inputs (list bzip2 curl zlib)) (home-page "https://heasarc.gsfc.nasa.gov/fitsio/fitsio.html") (synopsis "Library for reading and writing FITS files") - (description "CFITSIO provides simple high-level routines for reading and -writing @dfn{FITS} (Flexible Image Transport System) files that insulate the -programmer from the internal complexities of the FITS format. CFITSIO also + (description + "CFITSIO provides simple high-level routines for reading and writing +@acronym{Flexible Image Transport System,FITS} files that insulate the +programmer from the internal complexities of the FITS format. CFITSIO also provides many advanced features for manipulating and filtering the information in FITS files.") + (properties + '((release-monitoring-url . + "https://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html"))) (license (license:non-copyleft "file://License.txt" "See License.txt in the distribution.")))) +;;; The version is required for gnuastro. It fails on check phase with a +;;; newer version. +(define-public cfitsio-4.4 + (package + (inherit cfitsio) + (version "4.4.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/" + "cfitsio-" version ".tar.gz")) + (sha256 + (base32 "098x1l8ijwsjp2ivp3v7pamrmpgwj5xmgb4yppm9w3w044zxr8b6")))))) + (define-public erfa (package (name "erfa") @@ -636,6 +657,636 @@ applications of EyE include adaptive filtering, feature detection and cosmetic corrections.") (license license:cecill))) +(define-public glnemo2 + (package + (name "glnemo2") + (version "1.21.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.lam.fr/jclamber/glnemo2") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jmmxszh8d2jmfghig36nhykff345mqnpssfa64d0r7l9cnfp3cn")))) + (build-system cmake-build-system) + (arguments + (list + #:tests? #f ; No test target + #:configure-flags #~(list "CPPFLAGS=-fcommon") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-libraries-paths + (lambda _ + (substitute* "CMakeLists.txt" + ;; There is some not straightforward logic on how to set + ;; the installation prefix for the project; inherit it + ;; from the build-system default flags. + (("CMAKE_INSTALL_PREFIX \"/usr\"") + "CMAKE_INSTALL_PREFIX") + (("/usr/include/CCfits") + (string-append + #$(this-package-input "ccfits") "/include/CCfits")) + (("/usr/include/tirpc") + (string-append + #$(this-package-input "libtirpc") "/include/tirpc")) + ;; It tries to detect library in two "predictable" paths, + ;; required during the link phase. + (("/usr/lib64/libtirpc.so") + (string-append + #$(this-package-input "libtirpc") "/lib/libtirpc.so")))))))) + (inputs + (list ccfits + cfitsio + glm + glu + hdf5 + libtirpc + qtbase-5 + zlib)) + (home-page "https://projets.lam.fr/projects/glnemo2/wiki/Wiki") + (synopsis "3D interactive visualization program for n-body like particles") + (description + "GLNEMO2 is an interactive 3D visualization program which displays +particles positions of the different components (gas, stars, disk, dark +matter halo, bulge) of an N-body snapshot. It is a tool for running +N-body simulations from isolated galaxies to cosmological simulations. +It has a graphical user interface (based on QT 5.X API), uses a fast +3D engine (OPenGL and GLSL), and is generic with the possibility to load +different kinds of input files.") + (license license:cecill))) + +(define-public gnuastro + (package + (name "gnuastro") + (version "0.22") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gnuastro/gnuastro-" + version ".tar.lz")) + (sha256 + (base32 + "15rljx1mx9dyvni17qpj7y9gv086cvmjf9f5j34m1pbiyn989fqz")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) + (inputs + (list cfitsio-4.4 + curl + gsl + libgit2 + libjpeg-turbo + libtiff + wcslib + zlib)) + (native-inputs + (list libtool lzip)) + (home-page "https://www.gnu.org/software/gnuastro/") + (synopsis "Astronomy utilities") + (description "The GNU Astronomy Utilities (Gnuastro) is a suite of +programs for the manipulation and analysis of astronomical data.") + (license license:gpl3+))) + +(define-public gpredict + ;; The latest tag, 2.3, has no major difference with 2.2.1 and is dated for + ;; 2018. Additionally, there is some activity on the master branch. + (package + (name "gpredict") + (version "2.2.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/csete/gpredict/releases" + "/download/v" version + "/gpredict-" version ".tar.bz2")) + (sha256 + (base32 "0hwf97kng1zy8rxyglw04x89p0bg07zq30hgghm20yxiw2xc8ng7")))) + (build-system gnu-build-system) + (arguments + (list + #:configure-flags #~(list "CFLAGS=-O2 -g -fcommon") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + ;; Remove reference to non-existent file. + (substitute* "po/POTFILES.in" + (("src/gtk-sat-tree\\.c") ""))))))) + (native-inputs + (list gettext-minimal intltool pkg-config)) + (inputs + (list curl glib goocanvas gtk+)) + (home-page "https://oz9aec.dk/gpredict/") + (synopsis "Satellite tracking and orbit prediction application") + (description + "Gpredict is a real-time satellite tracking and orbit prediction +application. It can track a large number of satellites and display their +position and other data in lists, tables, maps, and polar plots (radar view). +Gpredict can also predict the time of future passes for a satellite, and +provide you with detailed information about each pass. + +Some core features of Gpredict include: + +@itemize +@item Tracking of a large number of satellites only limited by the physical +memory and processing power of the computer +@item Display the tracking data in lists, maps, polar plots and any +combination of these +@item Have many modules open at the same either in a notebook or in their own +windows. The modules can also run in full-screen mode +@item You can use many ground stations +@item Predict upcoming passes +@item Gpredict can run in real-time, simulated real-time (fast forward and +backward), and manual time control +@item Detailed information both the real time and non-real time modes +@item Doppler tuning of radios via Hamlib rigctld +@item Antenna rotator control via Hamlib rotctld +@end itemize") + (license license:gpl2+))) + +(define* (healpix-source #:key version sha256-base32-hash) + ;; The sources of HEALPix containing 6 independent packages (Fortran90, + ;; IDL, C, C++, java and python) and distributed togather libsharp. + (origin + (method url-fetch) + (uri + (let* ((name "Healpix") + (version-list (string-split version #\.)) + (name+version (format #f "~a_~{~a.~a~a~}" name version-list))) + (string-append "mirror://sourceforge/healpix/" + name+version "/" name+version "_" "2022Jul28.tar.gz"))) + (sha256 + (base32 sha256-base32-hash )))) + +(define-public healpix + (package + (name "healpix") + (version "3.8.2") + (source + (healpix-source + #:version version + #:sha256-base32-hash "09x1lafq01gzk16yvmz2pdhrxnqfjp3b2p9hlgy0dbrdg82ryqj7")) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ; no tests + #:make-flags + #~(list "shared" + "AR=ar -rsv" + "OPT=-O2 -Wall" + "PIC=-fPIC" + (string-append "CC=" #$(cc-for-target)) + (string-append "CFITSIO_INCDIR=" + #$(this-package-input "cfitsio") "/include") + (string-append "CFITSIO_LIBDIR=" + #$(this-package-input "cfitsio") "/lib") + (string-append "INCDIR=" #$output "/include") + (string-append "LIBDIR=" #$output "/lib")) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) ; no configure + (add-after 'unpack 'chdir-c + (lambda _ + (chdir "src/C/subs"))) + (add-before 'install 'set-output-directories + (lambda _ + (mkdir-p (string-append #$output "/include")) + (mkdir-p (string-append #$output "/lib"))))))) + (native-inputs + (list pkg-config autoconf automake)) + (inputs + (list cfitsio)) + (home-page "https://healpix.jpl.nasa.gov/") + (synopsis "Representation of spherical data") + (description + "@acronym{HEALPix, Hierarchical Equal Area isoLatitude Pixelation} of a +sphere produces a subdivision of a spherical surface in which each pixel +covers the same surface area as every other pixel. This package provides the +dynamic library for the C language implementation of HEALPix.") + (license license:gpl2+))) + +(define-public healpix-cxx + (package + (inherit healpix) + (name "healpix-cxx") + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir-cxx + (lambda _ + (chdir "src/cxx"))) + (add-after 'chdir-cxx 'adjust-unit-tests + (lambda _ + (substitute* "configure.ac" + ;; Run unit tests using serial harness, taken from + ;; <https://salsa.debian.org/debian-astro-team/healpix-cxx/>. + (("foreign subdir-objects -Wall -Werror") + "foreign serial-tests subdir-objects -Wall -Werror")))) + (replace 'bootstrap + (lambda _ + (invoke "aclocal") + (invoke "automake" "--add-missing") + (invoke "autoconf")))))) + (inputs (modify-inputs (package-inputs healpix) + (prepend libsharp zlib))) + (description + (string-replace-substring (package-description healpix) + "C language" + "C++ language")))) + +(define-public imppg + (package + (name "imppg") + (version "0.6.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/GreatAttractor/imppg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0a6wb1a9adwd01dmy0r03xxp8iz9y7mvh30088ajilhj4lf90vxa")))) + (build-system cmake-build-system) + (arguments + (list ;; No test provided + #:tests? #f)) + (native-inputs + (list boost pkg-config)) + (inputs + (list cfitsio freeimage glew wxwidgets-3.0)) + (home-page "https://github.com/GreatAttractor/imppg") + (synopsis "Astronomical Image Post-Proccessor (ImPPG)") + (description + "ImPPG performs Lucy-Richardson deconvolution, unsharp masking, +brightness normalization and tone curve adjustment. It can also apply +previously specified processing settings to multiple images. All operations +are performed using 32-bit floating-point arithmetic. + +Supported input formats: FITS, BMP, JPEG, PNG, TIFF (most of bit depths and +compression methods), TGA and more. Images are processed in grayscale and can +be saved as: BMP 8-bit; PNG 8-bit; TIFF 8-bit, 16-bit, 32-bit +floating-point (no compression, LZW- or ZIP-compressed), FITS 8-bit, 16-bit, +32-bit floating-point.") + (license license:gpl3+))) + +(define-public indi-2.0 + (package + (name "indi") + (version "2.0.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/indilib/indi") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08wmw7mrxx1zc89yka3c52djmpvlb8zimq8yzs95gh3p7r5jfpq9")))) + (build-system cmake-build-system) + (arguments + (list + #:parallel-tests? #f ; Socket address collisions between tests + #:configure-flags + #~(list "-DINDI_BUILD_UNITTESTS=ON" + "-DINDI_BUILD_INTEGTESTS=ON" + "-DCMAKE_INSTALL_LIBDIR=lib" + (string-append "-DCMAKE_INSTALL_PREFIX=" #$output) + (string-append "-DUDEVRULES_INSTALL_DIR=" #$output "/lib/udev/rules.d")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-udev-rules + (lambda _ + (substitute* (list "drivers/auxiliary/99-indi_auxiliary.rules" + "drivers/video/80-dbk21-camera.rules") + (("/bin/sh") (which "sh")) + (("/sbin/modprobe") + (string-append #$(this-package-input "kmod") "/bin/modprobe"))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "integs" + (invoke "ctest" "-V" "--output-on-failure")) + (with-directory-excursion "test" + (invoke "ctest" "-V")))))))) + (native-inputs + (list googletest)) + (inputs + (list cfitsio + curl + fftw + gsl + kmod + libev + libjpeg-turbo + libnova + libtiff + libusb + zlib)) + (home-page "https://www.indilib.org") + (synopsis "Library for astronimical intrumentation control") + (description + "INDI (Instrument-Neutral Device Interface) is a distributed XML-based +control protocol designed to operate astronomical instrumentation. INDI is +small, flexible, easy to parse, scalable, and stateless. It supports common +DCS functions such as remote control, data acquisition, monitoring, and a lot +more.") + (license (list license:bsd-3 + license:gpl2+ + license:lgpl2.0+ + license:lgpl2.1+)))) + +(define-public indi-1.9 + (package + (inherit indi-2.0) + (version "1.9.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/indilib/indi") + (commit (string-append "v" version)))) + (file-name (git-file-name "indi" version)) + (sha256 + (base32 "1vfcas59nlw8v7n6qhxhcm4isf5wk0crip5rmsallq3bsv3zznfr")))))) + +(define-public indi + ;; Default version of INDI.. + indi-1.9) + +(define-public libnova + (package + (name "libnova") + (version "0.16") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.code.sf.net/p/libnova/libnova.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0icwylwkixihzni0kgl0j8dx3qhqvym6zv2hkw2dy6v9zvysrb1b")))) + (build-system gnu-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-git-version + (lambda _ + (substitute* "./git-version-gen" + (("/bin/sh") (which "sh")))))))) + (native-inputs + (list autoconf automake libtool)) + (home-page "https://libnova.sourceforge.net/") + (synopsis "Celestial mechanics, astrometry and astrodynamics library") + (description + "Libnova is a general purpose, double precision, Celestial Mechanics, +Astrometry and Astrodynamics library.") + (license (list license:lgpl2.0+ + license:gpl2+)))) ; examples/transforms.c & lntest/*.c + +(define-public libpasastro + (package + (name "libpasastro") + (version "1.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pchev/libpasastro") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1na3gyb3nzb5gdgccs1653j2gnz6w3v1mqzhyhkx3yqw8bs3q5x0")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ; no tests provided + #:make-flags + #~(list + ;; Keep OS detection for the case when Hurd would be suitable to try. + #$@(if (target-linux?) '("OS_TARGET=linux") '()) + ;; Enable buildtime CPU detection where supported, + ;; and set a suitable CPU target variable. + #$@(match (or (%current-target-system) + (%current-system)) + ("i686-linux" + '("CPU_TARGET=i386")) + ("x86_64-linux" + '("CPU_TARGET=x86_64")) + ;; There is no a case for RISCV in upstream, attempt to treat it + ;; as ARM. + ((or "armhf-linux" "aarch64-linux" "riscv64") + '("CPU_TARGET=armv7l")) + (_ '())) + (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/pchev/libpasastro") + (synopsis "Interface to astronomy library for use from Pascal program") + (description + "This package provides shared libraries to interface Pascal program with +standard astronomy libraries: + +@itemize +@item @code{libpasgetdss.so}: Interface with GetDSS to work with DSS images. +@item @code{libpasplan404.so}: Interface with Plan404 to compute planets position. +@item @code{libpaswcs.so}: Interface with libwcs to work with FITS WCS. +@item @code{libpasspice.so}: To work with NAIF/SPICE kernel. +@end itemize") + (license license:gpl2+))) + +(define-public libsep + (package + (name "libsep") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kbarbary/sep") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sag96am6r1ffh9860yq40js874362v3132ahlm6sq7padczkicf")))) + (build-system cmake-build-system) + (arguments + (list + #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)) + #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (chdir "../source") + (invoke "make" + (string-append "CC=" #$(cc-for-target)) + "test"))))))) + (native-inputs + (list python-wrapper)) + (home-page "https://github.com/kbarbary/sep") + (synopsis "Astronomical source extraction and photometry library") + (description + "SEP makes the core algorithms of +@url{https://www.astromatic.net/software/sextractor/, sextractor} available as +a library of stand-alone functions and classes. These operate directly on +in-memory arrays (no FITS files or configuration files). The code is derived +from the Source Extractor code base (written in C) and aims to produce results +compatible with Source Extractor whenever possible. SEP consists of a C +library with no dependencies outside the standard library, and a Python module +that wraps the C library in a Pythonic API. The Python wrapper operates on +NumPy arrays with NumPy as its only dependency.") + (license (list license:expat license:lgpl3+ license:bsd-3)))) + +(define-public libsharp + (package + (name "libsharp") + (version "3.8.2") + (source + (healpix-source + #:version version + #:sha256-base32-hash "09x1lafq01gzk16yvmz2pdhrxnqfjp3b2p9hlgy0dbrdg82ryqj7")) + (build-system gnu-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir-libsharp + (lambda _ + (chdir "src/common_libraries/libsharp")))))) + (home-page "https://healpix.sourceforge.io/") + (synopsis "Efficient spherical harmonic transforms at arbitrary spins") + (description + "This package provides a librari for spherical harmonic +transforms (SHTs), which evolved from the libpsht library, addressing several +of its shortcomings, such as adding MPI support for distributed memory systems +and SHTs of fields with arbitrary spin, but also supporting new developments +in CPU instruction sets like the Advanced Vector Extensions (AVX) or fused +multiply-accumulate (FMA) instructions. The library is implemented in +portable C99 and provides an interface that can be easily accessed from other +programming languages such as C++, Fortran, Python etc. Generally, libsharp's +performance is at least on par with that of its predecessor; however, +significant improvements were made to the algorithms for scalar SHTs, which +are roughly twice as fast when using the same CPU capabilities. + +Supporting paper is availalbe at https://arxiv.org/abs/1303.4945") + (license license:gpl2+))) + +(define-public libskry + (package + (name "libskry") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/GreatAttractor/libskry") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14kwng0j8wqzlb0gqg3ayq36l15dpz7kvxc56fa47j55b376bwh6")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list + (string-append + "LIBAV_INCLUDE_PATH=" (assoc-ref %build-inputs "ffmpeg") "/include")) + #:phases + (modify-phases %standard-phases + (delete 'configure) ;; no configure provided + (delete 'check) ;; no tests provided + (replace 'install + ;; The Makefile lacks an ‘install’ target. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (include (string-append out "/include"))) + (copy-recursively "bin" lib) + (copy-recursively "include" include)) + #t))))) + (inputs + (list ffmpeg-4)) + (home-page "https://github.com/GreatAttractor/libskry") + (synopsis "Astronimical lucky imaging library") + (description + "@code{libskry} implements the lucky imaging principle of astronomical +imaging: creating a high-quality still image out of a series of many +thousands) low quality ones") + (license license:gpl3+))) + +(define-public libxisf + (package + (name "libxisf") + (version "0.2.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitea.nouspiro.space/nou/libXISF") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bvf3x0xdipkg28c75j6jav3b2llbqvfa6lkwiacxxlzmj0226s2")))) + (build-system cmake-build-system) + (arguments + (list #:configure-flags #~(list "-DUSE_BUNDLED_LIBS=OFF"))) + (native-inputs + (list pkg-config)) + (inputs + (list lz4 pugixml zlib)) + (home-page "https://nouspiro.space/?page_id=306") + (synopsis "Astronomical library to load and write XISF file format") + (description + "LibXISF is C++ library that can read and write @acronym{XISF,Extensible +Image Serialization Format} files produced by @url{https://pixinsight.com/, +PixInsight}. It implements +@url{https://pixinsight.com/doc/docs/XISF-1.0-spec/XISF-1.0-spec.html, XISF +1.0 specification}.") + (license license:gpl3+))) + +(define-public missfits + (package + (name "missfits") + (version "2.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/astromatic/missfits") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12ndvrr3l5j7ph2i5f3qf0wqmv5ymsyjzxnnypqajsvliw72iprh")))) + (build-system gnu-build-system) + (arguments + (list + #:configure-flags + #~(list + ;; Address this link error: + ;; ld: ... multiple definition of ... first defined here + "CPPFLAGS=-fcommon"))) + (home-page "https://www.astromatic.net/software/missfits") + (synopsis "FITS files Maintenance program") + (description + "MissFITS is a program that performs basic maintenance and packaging tasks +on FITS files: + +@itemize +@item add/edit FITS header keywords +@item split/join @acronym{MEF, Multi-Extension-FITS} files +@item unpack/pack FITS data-cubes +@item create/check/update FITS checksums, using +@uref{http://www.adass.org/adass/proceedings/adass94/seamanr.html, +R. Seaman's protocol} +@end itemize\n") + (license license:gpl3+))) + (define-public psfex (package (name "psfex") @@ -693,7 +1344,8 @@ model-fitting photometry or morphological analyses.") (base32 "18aizbsmhwz99flz8n101mi0n0lk3m3qqzfvmxrmjwqvydfypjml")))) (build-system pyproject-build-system) (native-inputs - (list python-httpretty)) + (list nss-certs-for-test + python-httpretty)) (propagated-inputs (list python-mock python-requests @@ -1086,6 +1738,8 @@ Python.") (build-system pyproject-build-system) (arguments (list + ;; AssertionError: Not equal to tolerance rtol=1e-07, atol=0.0001 + #:test-flags #~(list "-k" "not test_fwhm") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'relax-requirements @@ -1279,6 +1933,65 @@ across many files.") (description "Multidimensional data visualization across files.") (license license:bsd-3))) +(define-public python-healpy + (package + (name "python-healpy") + ;; The latest version depends on custom fork of HEALPix with changes not + ;; ported to upstream yet, see + ;; <https://github.com/healpy/healpy/issues/949>. + (version "1.16.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "healpy" version)) + (sha256 + (base32 "1w99cgszh2mzcn5x8p0gdzn3r96vyfdnvbwm20a1l9fdiy16xcha")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + ;; Disable tests requiring network access. + #~(list "-k" (string-append "not test_astropy_download_file" + " and not test_pixelweights_local_datapath" + " and not test_rotate_map_polarization_alms")) + #:phases + #~(modify-phases %standard-phases + ;; XXX: It's not compatible with pytest-8, enable when newer version + ;; is available. + (add-after 'unpack 'disable-doctest + (lambda _ + (substitute* "pyproject.toml" + (("--doctest-plus") "")))) + (add-before 'check 'build-extensions + (lambda _ + (invoke "python" "setup.py" "build_ext" "--inplace")))))) + (native-inputs + (list nss-certs-for-test + pkg-config + python-cython-3 + python-pytest-8 + python-pytest-astropy-header + python-pytest-cython + ;python-pytest-doctestplus + python-setuptools-scm)) + (propagated-inputs + (list python-astropy + python-colorlog + python-matplotlib + python-numpy + python-scipy)) + (inputs + (list cfitsio + healpix-cxx + libsharp)) + (home-page "http://healpy.readthedocs.org/") + (synopsis "Healpix tools package for Python") + (description + "healpy is a Python package to handle pixelated data on the sphere. It +is based on the Hierarchical Equal Area isoLatitude Pixelization (HEALPix) +scheme and builds with the HEALPix C++ library.") + (license license:gpl2+))) + (define-public python-pvextractor (package (name "python-pvextractor") @@ -1608,159 +2321,6 @@ instruments.") "This package provides an image processing toolbox for Solar Physics.") (license license:bsd-2))) -(define-public wcslib - (package - (name "wcslib") - (version "8.2.2") - (source - (origin - (method url-fetch) - (uri (string-append "https://www.atnf.csiro.au/people/mcalabre/WCS/" - "wcslib-" version ".tar.bz2")) - (sha256 - (base32 "0cvqppjf7gk0f3rs9cc46h5fffv2l8ylrb234r9fbx0px0525632")) - (snippet - #~(begin (use-modules (guix build utils)) - (delete-file-recursively "C/flexed"))))) - (build-system gnu-build-system) - (arguments - (list - #:configure-flags - #~(list (string-append "--with-cfitsiolib=" - #$(this-package-input "cfitsio") "/lib") - (string-append "--with-cfitsioinc=" - #$(this-package-input "cfitsio") "/include")) - #:phases - #~(modify-phases %standard-phases - (delete 'install-license-files) ; installed by ‘make install’ - (add-before 'configure 'patch-/bin/sh - (lambda _ - (substitute* "makedefs.in" - (("/bin/sh") "sh"))))))) - ;; TODO: Fix build with gfortran and pack missing optional pgplot. - ;; (inputs (list gfortran pgplot)) - (inputs - (list cfitsio)) - (native-inputs - (list flex)) - (home-page "https://www.atnf.csiro.au/people/mcalabre/WCS") - (synopsis "Library which implements the FITS WCS standard") - (description "The FITS \"World Coordinate System\" (@dfn{WCS}) standard -defines keywords and usage that provide for the description of astronomical -coordinate systems in a @dfn{FITS} (Flexible Image Transport System) image -header.") - (license license:lgpl3+))) - -;;; The version is required for julia-wcs-jll and julia-wcs. They do not -;;; support version higher than 7.x. -(define-public wcslib-7.12 - (package - (inherit wcslib) - (version "7.12") - (source - (origin - (method url-fetch) - (uri (string-append "https://www.atnf.csiro.au/people/mcalabre/WCS/" - "wcslib-" version ".tar.bz2")) - (sha256 - (base32 "1m3bx6gh5w3c7vvsqcki0x20mg8lilg13m0i8nh7za89w58dxy4w")) - (snippet - #~(begin (use-modules (guix build utils)) - (delete-file-recursively "C/flexed"))))) - (properties '((hidden? . #t))))) - -(define-public glnemo2 - (package - (name "glnemo2") - (version "1.21.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.lam.fr/jclamber/glnemo2") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1jmmxszh8d2jmfghig36nhykff345mqnpssfa64d0r7l9cnfp3cn")))) - (build-system cmake-build-system) - (arguments - (list - #:tests? #f ; No test target - #:configure-flags #~(list "CPPFLAGS=-fcommon") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-libraries-paths - (lambda _ - (substitute* "CMakeLists.txt" - ;; There is some not straightforward logic on how to set - ;; the installation prefix for the project; inherit it - ;; from the build-system default flags. - (("CMAKE_INSTALL_PREFIX \"/usr\"") - "CMAKE_INSTALL_PREFIX") - (("/usr/include/CCfits") - (string-append - #$(this-package-input "ccfits") "/include/CCfits")) - (("/usr/include/tirpc") - (string-append - #$(this-package-input "libtirpc") "/include/tirpc")) - ;; It tries to detect library in two "predictable" paths, - ;; required during the link phase. - (("/usr/lib64/libtirpc.so") - (string-append - #$(this-package-input "libtirpc") "/lib/libtirpc.so")))))))) - (inputs - (list ccfits - cfitsio - glm - glu - hdf5 - libtirpc - qtbase-5 - zlib)) - (home-page "https://projets.lam.fr/projects/glnemo2/wiki/Wiki") - (synopsis "3D interactive visualization program for n-body like particles") - (description - "GLNEMO2 is an interactive 3D visualization program which displays -particles positions of the different components (gas, stars, disk, dark -matter halo, bulge) of an N-body snapshot. It is a tool for running -N-body simulations from isolated galaxies to cosmological simulations. -It has a graphical user interface (based on QT 5.X API), uses a fast -3D engine (OPenGL and GLSL), and is generic with the possibility to load -different kinds of input files.") - (license license:cecill))) - -(define-public gnuastro - (package - (name "gnuastro") - (version "0.22") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gnuastro/gnuastro-" - version ".tar.lz")) - (sha256 - (base32 - "15rljx1mx9dyvni17qpj7y9gv086cvmjf9f5j34m1pbiyn989fqz")))) - (build-system gnu-build-system) - (arguments - '(#:configure-flags '("--disable-static"))) - (inputs - (list cfitsio - curl - gsl - libgit2 - libjpeg-turbo - libtiff - wcslib - zlib)) - (native-inputs - (list libtool lzip)) - (home-page "https://www.gnu.org/software/gnuastro/") - (synopsis "Astronomy utilities") - (description "The GNU Astronomy Utilities (Gnuastro) is a suite of -programs for the manipulation and analysis of astronomical data.") - (license license:gpl3+))) - (define-public phd2 (package (name "phd2") @@ -1876,7 +2436,7 @@ crowded star fields.") (define-public siril (package (name "siril") - (version "1.2.3") + (version "1.2.4") (source (origin (method git-fetch) @@ -1884,7 +2444,7 @@ crowded star fields.") (url "https://gitlab.com/free-astro/siril") (commit version))) (sha256 - (base32 "0gkd8w2bpwq4ibl3vawx008yrm5k6zlj77lp98fflffcf7cj8hr5")) + (base32 "1nh5zk7isf7a0akkxq56n0lw8i18f7w3r27pa16fpcivmbv6xcx2")) (file-name (git-file-name name version)))) (build-system meson-build-system) (arguments @@ -2150,13 +2710,13 @@ objects.") (define-public python-astropy (package (name "python-astropy") - (version "6.1.2") + (version "6.1.3") (source (origin (method url-fetch) (uri (pypi-uri "astropy" version)) (sha256 - (base32 "0fhx9zjsqp7z8z8phafpbwpb46idrbsamkfg42l8j0z94i73s452")) + (base32 "0w09fn7zy2nr5pvvqwmi3s3cm3y5pzxpn7wldz7bbxn1xp6k9j4s")) (modules '((guix build utils))) (snippet '(begin @@ -2174,15 +2734,13 @@ objects.") (list #:test-flags #~(list "--pyargs" "astropy" - "-n" "auto" + "--numprocesses" "auto" "-k" (string-append ;; Skip tests that need remote data. "not remote_data" ;; ValueError: The truth value of an array with more than ;; one element is ambiguous. Use a.any() or a.all() - " and not test_table_comp[t16-t26]" - ;; E Unreliable test timings! <...> - " and not test_datetime_timedelta_roundtrip")) + " and not test_table_comp[t16-t26]")) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'preparations @@ -2215,7 +2773,8 @@ objects.") (with-directory-excursion "/tmp" (apply invoke "pytest" "-v" test-flags)))))))) (native-inputs - (list pkg-config + (list nss-certs-for-test + pkg-config python-colorlog python-coverage python-cython-3 @@ -2298,13 +2857,13 @@ astronomy and astrophysics.") ;; In case of changing the source method git-fetch, consider to check the ;; tag as it's not following the PyPI version, see ;; <https://github.com/astropy/astropy-iers-data/issues/17>. - (version "0.2024.8.12.0.32.58") + (version "0.2024.9.16.0.32.21") (source (origin (method url-fetch) (uri (pypi-uri "astropy_iers_data" version)) (sha256 - (base32 "1xw4s6vyl29miccbs3ylyichj1rcmzmya3lmh27f173n7k2zb5g0")))) + (base32 "0i63yxw4xfgv1dwaq89xd34xlsnx0n5njcm4adln2gk2ia3gxxig")))) (build-system pyproject-build-system) (arguments (list @@ -2459,7 +3018,8 @@ constraints (i.e., altitude, airmass, moon separation/illumination, etc.) python-pyvo python-requests)) (native-inputs - (list python-astropy-healpix + (list nss-certs-for-test + python-astropy-healpix python-matplotlib ;; python-mocpy : Not packed yet, optional python-pytest-astropy @@ -2660,6 +3220,39 @@ attempting to maintain ISTP compliance @end itemize") (license license:expat))) +(define-public python-ci-watson + (package + (name "python-ci-watson") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ci_watson" version)) + (sha256 + (base32 "1qb5iyb053k1711ic93rcm0z344dc6h8vg8fpkbqpg5z6q0v2b0y")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-pypojrect-toml + (lambda _ + (substitute* "setup.cfg" + ;; ImportError: Error importing plugin " no:legacypath": No + ;; module named ' no:legacypath' + (("-p no:legacypath") ""))))))) + (propagated-inputs + (list python-crds + python-pytest + python-requests)) + (native-inputs + (list python-pytest-astropy-header)) + (home-page "https://github.com/spacetelescope/ci_watson") + (synopsis "Helper functions for STScI software") + (description + "This package contains a helper functionality to test ROMAN and JWST.") + (license license:bsd-3))) + (define-public python-cmyt (package (name "python-cmyt") @@ -2688,13 +3281,13 @@ monochromatic sequential colormaps like @code{blue}, @code{green}, and (define-public python-crds (package (name "python-crds") - (version "11.18.1") + (version "11.18.4") (source (origin (method url-fetch) (uri (pypi-uri "crds" version)) (sha256 - (base32 "0k0q76mc9a18lrjqah8yb7v97dmhlwhsxyqr9r5rk0w4iqi6j7pp")))) + (base32 "1z6apmss8wym3lpp2mifqxz0i5vvi39g0i2agvw0lchcyzw3jvig")))) (build-system pyproject-build-system) (arguments (list @@ -2783,7 +3376,7 @@ used with local NetDRMS sites.") (define-public python-drizzle (package (name "python-drizzle") - (version "1.15.2") + (version "1.15.3") (source (origin (method git-fetch) ;PyPi doesn't have the test data sets @@ -2792,7 +3385,7 @@ used with local NetDRMS sites.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1fp6gcvp6nz4a2mmy9vjn5wwywldhkg8bjjgb4ldn0vpv9k4nv8q")))) + (base32 "0zxhzvd01jgl4r6ivlxkccaf2shzb0c0ir7l06096iv9n6lff3wx")))) (build-system pyproject-build-system) (arguments (list @@ -3055,9 +3648,16 @@ Carlo.") (build-system pyproject-build-system) (arguments (list - ;; Break cycle: python-ndcube -> python-specutils -> python-ndcube, see - ;; <https://github.com/sunpy/ndcube/issues/733>. - #:test-flags #~(list "-k" "not test_rebin_specutils") + #:test-flags + #~(list "-k" (string-append + ;; Break cycle: python-ndcube -> python-specutils -> + ;; python-ndcube, see + ;; <https://github.com/sunpy/ndcube/issues/733>. + "not test_rebin_specutils" + ;; Introduced with astropy 6.1.3, see + ;; <https://github.com/sunpy/ndcube/issues/758>. + " and not test_2d[celestial_2d_ape14_wcs]" + " and not test_2d[celestial_2d_fitswcs]")) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'break-cycle @@ -3406,7 +4006,7 @@ setup(ext_modules=get_extensions())"))))) (define-public python-regularizepsf (package (name "python-regularizepsf") - (version "0.3.4") + (version "0.4.0") (source (origin (method git-fetch) ; no tests data in the PyPI tarball @@ -3415,7 +4015,7 @@ setup(ext_modules=get_extensions())"))))) (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "078nklks6hjq0hgv6wpbh2x1m2yh6kmzyfgdzd9q82lxpjy1vq0i")))) + (base32 "0b16lscrzd1lribwis19y6dh6qrgddhcinlc2lbwkzzqqkjdnyzi")))) (build-system pyproject-build-system) (arguments (list @@ -3438,7 +4038,7 @@ setup(ext_modules=get_extensions())"))))) python-numpy python-scikit-image python-scipy - python-sep)) + python-sep-pjw)) (native-inputs (list python-cython python-pytest @@ -3557,27 +4157,20 @@ orbits described in TLE files.") (define-public python-sunpy (package (name "python-sunpy") - (version "6.0.1") + (version "6.0.2") (source (origin (method url-fetch) (uri (pypi-uri "sunpy" version)) (sha256 - (base32 "1yp7x26fzxs66bfvzaim8ns5q6514l66mbz5gabhlxb9pp8i6i85")))) + (base32 "0mzmq2ncqgq61c1maxwynrmzcyiafnlil5mx4vhy2cvdyacm8yc9")))) (build-system pyproject-build-system) (arguments (list #:test-flags - #~(list - "--numprocesses" "auto" - "-k" (string-append - ;; XXX: Failed: DID NOT RAISE <class 'ModuleNotFoundError'> - ;; It struggles to find python-opencsv package info with - ;; 'importlib.metadata' - "not test_main_nonexisting_module" - " and not test_main_stdlib_module") - ;; Requries SpicePy not packed in Guix yet. - "--ignore=sunpy/coordinates/tests/test_spice.py") + #~(list "--numprocesses" "auto" + ;; Requries SpicePy not packed in Guix yet. + "--ignore=sunpy/coordinates/tests/test_spice.py") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'relax-requirements @@ -4038,13 +4631,13 @@ processing functions: @code{xyxymatch}, @code{geomap}.") (define-public python-stcal (package (name "python-stcal") - (version "1.8.0") + (version "1.9.0") (source (origin (method url-fetch) (uri (pypi-uri "stcal" version)) (sha256 - (base32 "0vcq1462wdfi96qqsd5bidx38bbpnpcm18j6s761jz8ymi6vifap")))) + (base32 "1n843r19zyjm14iadfbi71ixpk0jrbhaj7h3szy1yhnhrfsrkwar")))) (build-system pyproject-build-system) (arguments (list @@ -4102,18 +4695,18 @@ processing functions: @code{xyxymatch}, @code{geomap}.") (define-public python-stdatamodels (package (name "python-stdatamodels") - (version "2.0.0") + (version "2.1.0") (source (origin (method url-fetch) (uri (pypi-uri "stdatamodels" version)) (sha256 - (base32 "0a47xf1zv71kv166z6rd9v75bw0jjmg70180af4yi4v4y7gnxvmm")))) + (base32 "0bgb0n1nqwnvd6bh0f1cnbk3j2yygch88l9834hmsns4rg1ak6j9")))) (build-system pyproject-build-system) (arguments (list #:test-flags - #~(list "-n" "auto" + #~(list "--numprocesses" "auto" ;; Disable tests requiring access to CRDS servers to download ;; ~500MiB of data. "-k" "not test_crds_selectors_vs_datamodel") @@ -4219,298 +4812,6 @@ PYSYNPHOT, utilizing Astropy covering instrument specific portions of the old packages for HST.") (license license:bsd-3))) -(define-public libnova - (package - (name "libnova") - (version "0.16") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.code.sf.net/p/libnova/libnova.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0icwylwkixihzni0kgl0j8dx3qhqvym6zv2hkw2dy6v9zvysrb1b")))) - (build-system gnu-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-git-version - (lambda _ - (substitute* "./git-version-gen" - (("/bin/sh") (which "sh")))))))) - (native-inputs - (list autoconf automake libtool)) - (synopsis "Celestial mechanics, astrometry and astrodynamics library") - (description "Libnova is a general purpose, double precision, Celestial -Mechanics, Astrometry and Astrodynamics library.") - (home-page "https://libnova.sourceforge.net/") - (license (list license:lgpl2.0+ - license:gpl2+)))) ; examples/transforms.c & lntest/*.c - -(define-public libsep - (package - (name "libsep") - (version "1.2.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kbarbary/sep") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0sag96am6r1ffh9860yq40js874362v3132ahlm6sq7padczkicf")))) - (build-system cmake-build-system) - (arguments - (list - #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) - (string-append "PREFIX=" #$output)) - #:phases #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (chdir "../source") - (invoke "make" - (string-append "CC=" #$(cc-for-target)) - "test"))))))) - (native-inputs - (list python-wrapper)) - (home-page "https://github.com/kbarbary/sep") - (synopsis "Astronomical source extraction and photometry library") - (description - "SEP makes the core algorithms of -@url{https://www.astromatic.net/software/sextractor/, sextractor} available as a -library of stand-alone functions and classes. These operate directly on -in-memory arrays (no FITS files or configuration files). The code is derived -from the Source Extractor code base (written in C) and aims to produce results -compatible with Source Extractor whenever possible. SEP consists of a C library -with no dependencies outside the standard library, and a Python module that -wraps the C library in a Pythonic API. The Python wrapper operates on NumPy -arrays with NumPy as its only dependency.") - (license (list license:expat license:lgpl3+ license:bsd-3)))) - -(define-public libskry - (package - (name "libskry") - (version "0.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/GreatAttractor/libskry") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "14kwng0j8wqzlb0gqg3ayq36l15dpz7kvxc56fa47j55b376bwh6")))) - (build-system gnu-build-system) - (arguments - `(#:make-flags - (list - (string-append - "LIBAV_INCLUDE_PATH=" (assoc-ref %build-inputs "ffmpeg") "/include")) - #:phases - (modify-phases %standard-phases - (delete 'configure) ;; no configure provided - (delete 'check) ;; no tests provided - (replace 'install - ;; The Makefile lacks an ‘install’ target. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib")) - (include (string-append out "/include"))) - (copy-recursively "bin" lib) - (copy-recursively "include" include)) - #t))))) - (inputs - (list ffmpeg-4)) - (home-page "https://github.com/GreatAttractor/libskry") - (synopsis "Astronimical lucky imaging library") - (description - "@code{libskry} implements the lucky imaging principle of astronomical -imaging: creating a high-quality still image out of a series of many thousands) -low quality ones") - (license license:gpl3+))) - -(define-public libpasastro - (package - (name "libpasastro") - (version "1.4.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pchev/libpasastro") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1na3gyb3nzb5gdgccs1653j2gnz6w3v1mqzhyhkx3yqw8bs3q5x0")))) - (build-system gnu-build-system) - (arguments - (list - #:tests? #f ; no tests provided - #:make-flags - #~(list - ;; Keep OS detection for the case when Hurd would be suitable to try. - #$@(if (target-linux?) '("OS_TARGET=linux") '()) - ;; Enable buildtime CPU detection where supported, - ;; and set a suitable CPU target variable. - #$@(match (or (%current-target-system) - (%current-system)) - ("i686-linux" - '("CPU_TARGET=i386")) - ("x86_64-linux" - '("CPU_TARGET=x86_64")) - ;; There is no a case for RISCV in upstream, attempt to treat it - ;; as ARM. - ((or "armhf-linux" "aarch64-linux" "riscv64") - '("CPU_TARGET=armv7l")) - (_ '())) - (string-append "PREFIX=" #$output)) - #:phases - #~(modify-phases %standard-phases - (delete 'configure)))) - (home-page "https://github.com/pchev/libpasastro") - (synopsis "Interface to astronomy library for use from Pascal program") - (description - "This package provides shared libraries to interface Pascal program with -standard astronomy libraries: - -@itemize -@item @code{libpasgetdss.so}: Interface with GetDSS to work with DSS images. -@item @code{libpasplan404.so}: Interface with Plan404 to compute planets position. -@item @code{libpaswcs.so}: Interface with libwcs to work with FITS WCS. -@item @code{libpasspice.so}: To work with NAIF/SPICE kernel. -@end itemize") - (license license:gpl2+))) - -(define-public libxisf - (package - (name "libxisf") - (version "0.2.12") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitea.nouspiro.space/nou/libXISF") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1bvf3x0xdipkg28c75j6jav3b2llbqvfa6lkwiacxxlzmj0226s2")))) - (build-system cmake-build-system) - (arguments - (list #:configure-flags #~(list "-DUSE_BUNDLED_LIBS=OFF"))) - (native-inputs - (list pkg-config)) - (inputs - (list lz4 pugixml zlib)) - (home-page "https://nouspiro.space/?page_id=306") - (synopsis "Astronomical library to load and write XISF file format") - (description - "LibXISF is C++ library that can read and write @acronym{XISF,Extensible -Image Serialization Format} files produced by @url{https://pixinsight.com/, -PixInsight}. It implements -@url{https://pixinsight.com/doc/docs/XISF-1.0-spec/XISF-1.0-spec.html, XISF -1.0 specification}.") - (license license:gpl3+))) - -(define-public missfits - (package - (name "missfits") - (version "2.8.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/astromatic/missfits") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "12ndvrr3l5j7ph2i5f3qf0wqmv5ymsyjzxnnypqajsvliw72iprh")))) - (build-system gnu-build-system) - (arguments - (list - #:configure-flags - #~(list - ;; Address this link error: - ;; ld: ... multiple definition of ... first defined here - "CPPFLAGS=-fcommon"))) - (home-page "https://www.astromatic.net/software/missfits") - (synopsis "FITS files Maintenance program") - (description - "MissFITS is a program that performs basic maintenance and packaging tasks -on FITS files: - -@itemize -@item add/edit FITS header keywords -@item split/join @acronym{MEF, Multi-Extension-FITS} files -@item unpack/pack FITS data-cubes -@item create/check/update FITS checksums, using -@uref{http://www.adass.org/adass/proceedings/adass94/seamanr.html, -R. Seaman's protocol} -@end itemize\n") - (license license:gpl3+))) - -(define-public gpredict - ;; The latest tag, 2.3, has no major difference with 2.2.1 and is dated for - ;; 2018. Additionally, there is some activity on the master branch. - (package - (name "gpredict") - (version "2.2.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/csete/gpredict/releases" - "/download/v" version - "/gpredict-" version ".tar.bz2")) - (sha256 - (base32 "0hwf97kng1zy8rxyglw04x89p0bg07zq30hgghm20yxiw2xc8ng7")))) - (build-system gnu-build-system) - (arguments - (list - #:configure-flags #~(list "CFLAGS=-O2 -g -fcommon") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'fix-tests - (lambda _ - ;; Remove reference to non-existent file. - (substitute* "po/POTFILES.in" - (("src/gtk-sat-tree\\.c") ""))))))) - (native-inputs - (list gettext-minimal intltool pkg-config)) - (inputs - (list curl glib goocanvas gtk+)) - (home-page "https://oz9aec.dk/gpredict/") - (synopsis "Satellite tracking and orbit prediction application") - (description - "Gpredict is a real-time satellite tracking and orbit prediction -application. It can track a large number of satellites and display their -position and other data in lists, tables, maps, and polar plots (radar view). -Gpredict can also predict the time of future passes for a satellite, and -provide you with detailed information about each pass. - -Some core features of Gpredict include: - -@itemize -@item Tracking of a large number of satellites only limited by the physical -memory and processing power of the computer -@item Display the tracking data in lists, maps, polar plots and any -combination of these -@item Have many modules open at the same either in a notebook or in their own -windows. The modules can also run in full-screen mode -@item You can use many ground stations -@item Predict upcoming passes -@item Gpredict can run in real-time, simulated real-time (fast forward and -backward), and manual time control -@item Detailed information both the real time and non-real time modes -@item Doppler tuning of radios via Hamlib rigctld -@item Antenna rotator control via Hamlib rotctld -@end itemize") - (license license:gpl2+))) - (define-public scamp (package (name "scamp") @@ -4626,126 +4927,6 @@ convenient access to metadata from a regular web browser It can be used to calculate the trajectory of satellites.") (license license:asl2.0)))) -(define-public imppg - (package - (name "imppg") - (version "0.6.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/GreatAttractor/imppg") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0a6wb1a9adwd01dmy0r03xxp8iz9y7mvh30088ajilhj4lf90vxa")))) - (build-system cmake-build-system) - (arguments - (list ;; No test provided - #:tests? #f)) - (native-inputs - (list boost pkg-config)) - (inputs - (list cfitsio freeimage glew wxwidgets-3.0)) - (home-page "https://github.com/GreatAttractor/imppg") - (synopsis "Astronomical Image Post-Proccessor (ImPPG)") - (description - "ImPPG performs Lucy-Richardson deconvolution, unsharp masking, -brightness normalization and tone curve adjustment. It can also apply -previously specified processing settings to multiple images. All operations -are performed using 32-bit floating-point arithmetic. - -Supported input formats: FITS, BMP, JPEG, PNG, TIFF (most of bit depths and -compression methods), TGA and more. Images are processed in grayscale and can -be saved as: BMP 8-bit; PNG 8-bit; TIFF 8-bit, 16-bit, 32-bit -floating-point (no compression, LZW- or ZIP-compressed), FITS 8-bit, 16-bit, -32-bit floating-point.") - (license license:gpl3+))) - -(define-public indi-2.0 - (package - (name "indi") - (version "2.0.9") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/indilib/indi") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "08wmw7mrxx1zc89yka3c52djmpvlb8zimq8yzs95gh3p7r5jfpq9")))) - (build-system cmake-build-system) - (arguments - (list - #:parallel-tests? #f ; Socket address collisions between tests - #:configure-flags - #~(list "-DINDI_BUILD_UNITTESTS=ON" - "-DINDI_BUILD_INTEGTESTS=ON" - "-DCMAKE_INSTALL_LIBDIR=lib" - (string-append "-DCMAKE_INSTALL_PREFIX=" #$output) - (string-append "-DUDEVRULES_INSTALL_DIR=" #$output "/lib/udev/rules.d")) - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-udev-rules - (lambda _ - (substitute* (list "drivers/auxiliary/99-indi_auxiliary.rules" - "drivers/video/80-dbk21-camera.rules") - (("/bin/sh") (which "sh")) - (("/sbin/modprobe") - (string-append #$(this-package-input "kmod") "/bin/modprobe"))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (with-directory-excursion "integs" - (invoke "ctest" "-V" "--output-on-failure")) - (with-directory-excursion "test" - (invoke "ctest" "-V")))))))) - (native-inputs - (list googletest)) - (inputs - (list cfitsio - curl - fftw - gsl - kmod - libev - libjpeg-turbo - libnova - libtiff - libusb - zlib)) - (home-page "https://www.indilib.org") - (synopsis "Library for astronimical intrumentation control") - (description - "INDI (Instrument-Neutral Device Interface) is a distributed XML-based -control protocol designed to operate astronomical instrumentation. INDI is -small, flexible, easy to parse, scalable, and stateless. It supports common -DCS functions such as remote control, data acquisition, monitoring, and a lot -more.") - (license (list license:bsd-3 - license:gpl2+ - license:lgpl2.0+ - license:lgpl2.1+)))) - -(define-public indi-1.9 - (package - (inherit indi-2.0) - (version "1.9.9") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/indilib/indi") - (commit (string-append "v" version)))) - (file-name (git-file-name "indi" version)) - (sha256 - (base32 "1vfcas59nlw8v7n6qhxhcm4isf5wk0crip5rmsallq3bsv3zznfr")))))) - -(define-public indi - ;; Default version of INDI.. - indi-1.9) - (define-public python-jplephem (package (name "python-jplephem") @@ -4780,13 +4961,13 @@ milliarcsecond).") (define-public python-jwst (package (name "python-jwst") - (version "1.15.1") + (version "1.16.0") (source (origin (method url-fetch) (uri (pypi-uri "jwst" version)) (sha256 (base32 - "1nl5fixakqvjhg9q5biivwaqpi6lzx9w4fq0n6imwccag2gv1va3")) + "06krkpfhwpc825bsdl0rffd9qlqw1rl928fwxa7cywds5dahpiyn")) (modules '((guix build utils))) (snippet '(begin @@ -5073,18 +5254,18 @@ Features: (define-public python-pysiaf (package (name "python-pysiaf") - (version "0.22.0") + (version "0.23.3") (source (origin (method url-fetch) (uri (pypi-uri "pysiaf" version)) (sha256 - (base32 "08wb98k9k4f04455da5ns9rif8pl9r3ih537w1yj393hkjjiyzfz")))) + (base32 "16qbg5n2bw2wr3i8a040i7z7az3w0pn508y6xggy05viwdli6br8")))) (build-system pyproject-build-system) (arguments (list #:test-flags - #~(list "-n" "auto" + #~(list "--numprocesses" "auto" ;; Disable 2 failing tests, see ;; <https://github.com/spacetelescope/pysiaf/issues/338> "-k" (string-append "not test_write_jwst_siaf_xlsx" @@ -5094,12 +5275,13 @@ Features: python-lxml python-matplotlib python-numpy - python-numpydoc python-openpyxl python-requests python-scipy)) (native-inputs - (list python-pytest python-pytest-xdist)) + (list python-pytest + python-pytest-xdist + python-setuptools-scm)) (home-page "https://pysiaf.readthedocs.io/") (synopsis "Handling SIAF for space telescopes") (description @@ -5162,23 +5344,17 @@ spectra, and data.") (define-public python-sbpy (package (name "python-sbpy") - (version "0.4.0") + (version "0.5.0") (source (origin (method url-fetch) (uri (pypi-uri "sbpy" version)) (sha256 - (base32 "18f3056fgzpvjj43m845wl9znl4dqxs8f8qv3gpay7kik4l8a1fc")))) + (base32 "1xqi29rrh7v05zmvyl8gffrkrw5rlcxig1w6xw1v8f7ikydb5plv")))) (build-system pyproject-build-system) (arguments (list - #:test-flags - ;; See <https://github.com/NASA-Planetary-Science/sbpy/issues/397>. - #~(list "--ignore=sbpy/spectroscopy/tests/test_specgrad.py" - ;; See <https://github.com/NASA-Planetary-Science/sbpy/issues/398> - "-k" (string-append "not test_from_fluxd" - " and not test_bandpass" - " and not test_spectral_density_vega_bp")) + #:test-flags #~(list "--numprocesses" "auto") #:phases #~(modify-phases %standard-phases (add-before 'check 'set-home-env @@ -5193,6 +5369,7 @@ spectra, and data.") python-ginga python-numpy python-photutils + ;python-pyoorb ;not packed yet in Guix python-pyyaml python-scipy python-synphot)) @@ -5238,6 +5415,38 @@ well as ephemerides services (list python-numpy)) (synopsis "Python library for Source Extraction and Photometry"))) +(define-public python-sep-pjw + (package + (name "python-sep-pjw") + (version "1.3.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sep_pjw" version)) + (sha256 + (base32 "15jf16zycs1gz6jfkhmj7b8wdcpp8d5ikz15pmfkwq32a8mfdv8m")))) + (build-system pyproject-build-system) + (arguments + (list #:test-flags #~(list "test.py") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "pyproject.toml" + ;; numpy>=1.23.5 + (("1.23.5") "1.23.2"))))))) + (native-inputs + (list python-cython + python-pytest)) + (propagated-inputs + (list python-numpy)) + (home-page "https://github.com/PJ-Watson/sep-pjw") + (synopsis "Alternative fork of SEP library") + (description + "This package provides an alternative maintained fork of SEP python +libary with bug fixtures.") + (license (list license:expat license:lgpl3+ license:bsd-3)))) + (define-public python-suntime (package (name "python-suntime") @@ -5796,7 +6005,9 @@ pipelines.") (with-directory-excursion "ci" (apply invoke "python" test-flags)))))))) (native-inputs - (list python-assay python-pandas)) + (list nss-certs-for-test + python-assay + python-pandas)) (propagated-inputs (list python-certifi python-jplephem @@ -5875,6 +6086,67 @@ between image and reference catalogs. Currently only aligning images with @url{https://aeolus.services, Aeolus}") (license license:expat))) +(define-public python-webbpsf + (package + (name "python-webbpsf") + (version "1.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "webbpsf" version)) + (sha256 + (base32 "1084vbk2q3kybxgvh8f2zbsi2w2z8zapsfjkgd6km4yhwqv1wl4a")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "--numprocesses" "auto" + "-k" (string-append + ;; Test requiring network access + "not test_monthly_trending_plot_auto_opdtable" + " and not test_monthly_trending_plot_opdtable_param" + " and not test_delta_wfe_around_time")) + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'set-env + (lambda _ + (setenv "HOME" "/tmp") + (setenv "WEBBPSF_PATH" + (string-append #$(this-package-input "webbpsf-data") + "/share/webbpsf-data"))))))) + (propagated-inputs + (list python-astropy + python-astroquery + python-matplotlib + python-numpy + python-photutils + python-poppy + python-pysiaf + python-scipy + python-synphot)) + (native-inputs + (list nss-certs-for-test + python-pytest + python-pytest-astropy + python-pytest-xdist + python-setuptools-scm)) + (inputs + (list + ;; Requried for installation, see + ;; <https://webbpsf.readthedocs.io/en/stable/installation.html>, no + ;; licence provided. "To run WebbPSF, you must download these files and + ;; tell WebbPSF where to find them using the WEBBPSF_PATH environment + ;; variable." + webbpsf-data)) + (home-page "https://webbpsf.readthedocs.io/") + (synopsis "James Webb Space Telescope PSF simulation tool") + (description + "WebbPSF produces simulated PSFs for the James Webb Space Telescope, +NASA's flagship infrared space telescope. WebbPSF can simulate images for any +of the four science instruments plus the fine guidance sensor, including both +direct imaging, coronagraphic, and spectroscopic modes.") + (license license:bsd-3))) + (define-public python-wiimatch (package (name "python-wiimatch") @@ -6226,6 +6498,67 @@ an API for performing input and output operations on different kinds of n-body file formats (nemo, Gadget binaries 1 and 2, Gadget hdf5, Ramses).") (license license:cecill)))) +(define-public wcslib + (package + (name "wcslib") + (version "8.2.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.atnf.csiro.au/people/mcalabre/WCS/" + "wcslib-" version ".tar.bz2")) + (sha256 + (base32 "0cvqppjf7gk0f3rs9cc46h5fffv2l8ylrb234r9fbx0px0525632")) + (snippet + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "C/flexed"))))) + (build-system gnu-build-system) + (arguments + (list + #:configure-flags + #~(list (string-append "--with-cfitsiolib=" + #$(this-package-input "cfitsio") "/lib") + (string-append "--with-cfitsioinc=" + #$(this-package-input "cfitsio") "/include")) + #:phases + #~(modify-phases %standard-phases + (delete 'install-license-files) ; installed by ‘make install’ + (add-before 'configure 'patch-/bin/sh + (lambda _ + (substitute* "makedefs.in" + (("/bin/sh") "sh"))))))) + ;; TODO: Fix build with gfortran and pack missing optional pgplot. + ;; (inputs (list gfortran pgplot)) + (inputs + (list cfitsio)) + (native-inputs + (list flex)) + (home-page "https://www.atnf.csiro.au/people/mcalabre/WCS") + (synopsis "Library which implements the FITS WCS standard") + (description "The FITS \"World Coordinate System\" (@dfn{WCS}) standard +defines keywords and usage that provide for the description of astronomical +coordinate systems in a @dfn{FITS} (Flexible Image Transport System) image +header.") + (license license:lgpl3+))) + +;;; The version is required for julia-wcs-jll and julia-wcs. They do not +;;; support version higher than 7.x. +(define-public wcslib-7.12 + (package + (inherit wcslib) + (version "7.12") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.atnf.csiro.au/people/mcalabre/WCS/" + "wcslib-" version ".tar.bz2")) + (sha256 + (base32 "1m3bx6gh5w3c7vvsqcki0x20mg8lilg13m0i8nh7za89w58dxy4w")) + (snippet + #~(begin (use-modules (guix build utils)) + (delete-file-recursively "C/flexed"))))) + (properties '((hidden? . #t))))) + (define-public wcstools (package (name "wcstools") @@ -6259,6 +6592,29 @@ the image to position on the sky. Auxillary programs search star catalogs and manipulate images.") (license license:gpl2+))) +(define-public webbpsf-data + (package + (name "webbpsf-data") + (version "1.4.0") + (source + (origin + (method url-fetch) + ;; 70.1MiB archive + (uri "https://stsci.box.com/shared/static/qxpiaxsjwo15ml6m4pkhtk36c9jgj70k.gz") + (file-name (string-append "webbpsf-data-" version ".tar.gz")) + (sha256 + (base32 "0b3qxp6mrm2dwsdnqnprf4yrp0zbncknildqmf28wgginwa5sch8")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan #~'(("." "share/webbpsf-data")))) + (home-page "https://webbpsf.readthedocs.io/en/stable/installation.html") + (synopsis "JWST pupil shape, instrument throughputs, and aperture positions data files") + (description + "This package contains FIT and CSV files requried for WebbPSF +installation and distributed separatly from it.") + (license license:bsd-3))) + (define-public weightwatcher (package (name "weightwatcher") diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 640e256f8b..b58588c5c9 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -590,14 +590,14 @@ implementation of Adaptive Multi Rate Narrowband and Wideband (define-public alsa-modular-synth (package (name "alsa-modular-synth") - (version "2.2.0") + (version "2.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/alsamodular/alsamodular" "/" version "/ams-" version ".tar.bz2")) (sha256 (base32 - "056dn6b9c5nsw2jdww7z1kxrjqqfvxjzxhsd5x9gi4wkwyiv21nz")))) + "0l8lwa4wfw98fgidzwkmg0zzq60djrpfg6znzrpfxhr9x23149ps")))) (build-system gnu-build-system) (inputs (list alsa-lib diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index b5ebafb254..0973c5ddca 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Feng Shu <tumashu@163.com> ;;; Copyright © 2023 Timo Wilken <guix@twilken.net> +;;; Copyright © 2024 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +46,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system go) + #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix build-system qt) #:use-module (guix download) @@ -1359,22 +1361,30 @@ borgmatic is powered by borg.") (define-public vorta (package (name "vorta") - (version "0.8.7") + (version "0.9.1") + ;; The test folder is not included in the PyPI archive. (source (origin - (method url-fetch) - (uri (pypi-uri "vorta" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/borgbase/vorta") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0yv2z2djbl7aq3fa9m3ihzv9i99a5ahsxz7dlzwvvf4a7pmhc6b2")))) - (build-system python-build-system) + "0lhqikwrydnys24yic6xaqidwacdibx48cl0066xv9xnsjanfsf0")))) + (build-system pyproject-build-system) (arguments (list + #:test-flags + #~(list "-k" "not test_excludes" + "--ignore=tests/integration" + "--ignore=tests/unit") #:imported-modules `((guix build qt-utils) (guix build cmake-build-system) (guix build qt-build-system) - ,@%python-build-system-modules) + ,@%pyproject-build-system-modules) #:modules '((guix build utils) - (guix build python-build-system) + (guix build pyproject-build-system) ((guix build qt-build-system) #:prefix qt:)) #:phases #~(modify-phases %standard-phases @@ -1384,15 +1394,16 @@ borgmatic is powered by borg.") (("which\\('borg'\\)") (string-append "which('" #$(this-package-input "borg") "/bin/borg')"))))) - ;; XXX This phase tries to write to $HOME - (add-before 'sanity-check 'set-HOME + ;; XXX The test suite tries to write to $HOME. + (add-before 'check 'set-HOME (lambda _ (setenv "HOME" "/tmp"))) ;; Otherwise, the user interface's icons will be missing. (add-after 'wrap 'qt-wrap (assoc-ref qt:%standard-phases 'qt-wrap))))) (native-inputs - (list python-pytest-mock + (list python-platformdirs + python-pytest-mock python-pytest-qt python-pytest-runner python-setuptools-git)) @@ -1404,11 +1415,11 @@ borgmatic is powered by borg.") python-paramiko python-peewee python-psutil - python-pyqt + python-pyqt-6 python-secretstorage ;; This is included so that the qt-wrap phase picks it up. - qtsvg-5)) - (home-page "https://github.com/borgbase/vorta") + qtsvg)) + (home-page "https://vorta.borgbase.com") (synopsis "Graphical backup client based on BorgBackup") (description "Vorta is a graphical backup client based on the Borg backup tool. It supports the use of remote backup repositories. It can perform diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 9ecec0a484..93641a78d5 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -258,7 +258,8 @@ without modification.") ((#:phases phases) `(modify-phases ,phases ;; No loadable modules. - (delete 'move-development-files))))))) + (delete 'move-development-files))))) + (synopsis "The GNU Bourne-Again SHell, stripped down for non-interactive use"))) (define-public static-bash ;; Statically-linked Bash that contains nothing but the 'bash' binary and diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 4653360792..14fcd0119d 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2017, 2021, 2022, 2024 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> -;;; Copyright © 2018-2023 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> +;;; Copyright © 2018-2024 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> ;;; Copyright © 2019, 2020, 2021, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> @@ -5786,7 +5786,7 @@ documents.") python-prov python-pydot python-psutil - python-rdflib + python-rdflib-6 python-requests python-ruamel.yaml python-schema-salad @@ -13155,6 +13155,54 @@ paired replicates.") (propagated-inputs (list r-doparallel r-foreach r-iterators r-nloptr)) (license license:expat))) +(define-public r-pairwiseadonis + ;; There is no tag for version 0.4.1, nor is there a release archive. + (let ((commit "cb190f7668a0c82c0b0853927db239e7b9ec3e83") + (revision "1")) + (package + (name "r-pairwiseadonis") + ;; The versioning scheme of this package is inconsistent, with versions + ;; progressing from 0.21 to 0.3 and then to 0.4.1, which does not follow + ;; a standard numerical order or convention (e.g., semantic versioning). + (version (git-version "0.4.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pmartinezarbizu/pairwiseAdonis") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11hl6qqmr5vns476921802y0qmb46i1jf0rf7xfkyswlh6xkcl99")))) + (properties `((upstream-name . "pairwiseAdonis"))) + (build-system r-build-system) + (arguments + (list + #:phases + ;; Move into the subdirectory containing the R package files + '(modify-phases %standard-phases + (add-after 'unpack 'move-to-subdir + (lambda _ (chdir "pairwiseAdonis")))))) + (propagated-inputs + (list r-cluster + r-permute + r-vegan)) + (synopsis "Pairwise multilevel comparison using adonis") + (description + "This package implements two functions: +@itemize +@item @code{pairwise.adonis} is a wrapper function for multilevel pairwise +comparison using adonis2 from package vegan. The function returns adjusted +p-values using @code{p.adjust()}. It does not accept interaction between factors +neither strata. +@item @code{pairwise.adonis2} accepts a model formula like in adonis from vegan. +You can use interactions between factors and define strata to constrain +permutations. For pairwise comparison a list of unique pairwise combination of +factors is produced. +@end itemize") + (home-page "https://github.com/pmartinezarbizu/pairwiseAdonis") + (license license:gpl2+)))) + (define-public pardre (package (name "pardre") @@ -18465,7 +18513,8 @@ bgzipped text file that contains a pair of genomic coordinates per line.") (("dynamic = \\[\"version\"\\]") (string-append "version = \"" #$version "\"")))))))) (native-inputs - (list python-fsspec + (list (libc-utf8-locales-for-target) ;tests need "en_US.utf8" + python-fsspec python-mock python-numpy python-pytest diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index 2fdea80896..d090c52d8d 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -394,32 +394,36 @@ Boost.Thread.") (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))) (define-public boost-signals2 - (package - (name "boost-signals2") - (version (package-version boost)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/boostorg/signals2") - (commit (string-append "boost-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1prhj98jgvkj2m3ia5lcgxnl1a4h13cyzqd55skjn983rivi6090")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let ((source (assoc-ref %build-inputs "source"))) - (copy-recursively (string-append source "/include") - (string-append %output "/include")))))) - (home-page "https://github.com/boostorg/signals2") - (synopsis "Boost.Signals2 library") - (description "The Boost.Signals2 library is an implementation of a managed + ;; Don't use the ‘boost-x.y.z’ tags; they are not immutable upstream. + (let ((commit "2ecf1b53bc970dd2b5e5d0f36fe8adf5d2181638") + (revision "0")) + (package + (name "boost-signals2") + (version (git-version (package-version boost) revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/boostorg/signals2") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "101ayw7dz4gdvva2yzyrfad69w4xbvv3man83xwqjbkib3a92ca8")))) + (build-system trivial-build-system) + (arguments + (list + #:modules '((guix build utils)) + #:builder + #~(begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source"))) + (copy-recursively (string-append source "/include") + (string-append %output "/include")))))) + (home-page "https://github.com/boostorg/signals2") + (synopsis "Boost.Signals2 library") + (description "The Boost.Signals2 library is an implementation of a managed signals and slots system.") - (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt")))) + (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))) (define-public boost-mpi diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 353b2c2a16..fcc1088fd6 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -17,8 +17,9 @@ ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2022, 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; Copyright © 2021 Stefan <stefan-guix@vodafonemail.de> -;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Herman Rimm <herman@rimm.ee> +;;; Copyright © 2023 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. @@ -52,6 +53,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) + #:use-module (gnu packages guile) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages man) @@ -71,6 +73,7 @@ #:use-module (gnu packages serialization) #:use-module (gnu packages swig) #:use-module (gnu packages valgrind) + #:use-module (gnu packages version-control) #:use-module (gnu packages virtualization) #:use-module (gnu packages xorg) #:use-module (gnu packages python-web) @@ -982,17 +985,24 @@ commands part of the U-Boot project, such as Patman."))) (add-after 'unpack 'chdir (lambda _ (chdir "tools/patman"))) - (add-after 'chdir 'patch-pyproject.toml - ;; There is no 'run_patman' procedure in the __main__.py script, - ;; which breaks execution - ;; Patch submitted upstream (see: - ;; https://patchwork.ozlabs.org/project/uboot/\ - ;; patch/20230901050532.725-1-maxim.cournoyer@gmail.com/). - (lambda _ - (substitute* "pyproject.toml" - (("patman.__main__:run_patman") - "patman.__main__"))))))) - (inputs (list python-pygit2 python-requests python-u-boot-pylib)) + (add-after 'install 'wrap-script + (lambda* (#:key inputs #:allow-other-keys) + (wrap-script (string-append #$output "/bin/patman") + `("PATH" ":" prefix + (,(string-append #$(this-package-input "git") "/bin"))) + `("GIT_EXEC_PATH" ":" prefix + (,(dirname (search-input-file + inputs "libexec/git-core/git-commit")) + ,(dirname (search-input-file + inputs + "libexec/git-core/git-send-email")))))))))) + (inputs + (list git + `(,git "send-email") + guile-3.0/pinned ;for wrap-script + python-pygit2 + python-requests + python-u-boot-pylib)) (synopsis "Patch automation tool") (description "Patman is a patch automation script which: @itemize diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm index 8de3d4d747..8341997ee7 100644 --- a/gnu/packages/browser-extensions.scm +++ b/gnu/packages/browser-extensions.scm @@ -256,7 +256,7 @@ with the @uref{https://keepassxc.org, KeePassXC} password manager.") (define noscript (package (name "noscript") - (version "11.4.31") + (version "11.4.35") (source (origin (method url-fetch/zipbomb) (uri (string-append @@ -264,7 +264,7 @@ with the @uref{https://keepassxc.org, KeePassXC} password manager.") ".xpi")) (sha256 (base32 - "1iqhdm32mf3k4a2x66nqi17s8dm5g6x71sbq8fvqy6j76ish0b5j")))) + "1yqn60mvzgzi4h2dvv5cdzpag4bbb2y8jcbd3gxsaz7bw31f8j54")))) (build-system copy-build-system) (properties '((addon-id . "{73a6fe31-595d-460b-a920-fcc0f8843232}"))) (arguments diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 62234d3c9a..7c93676f0c 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -977,7 +977,7 @@ C programming language.") (package (name "aws-c-common") ;; Update only when updating aws-crt-cpp. - (version "0.6.20") + (version "0.9.27") (source (origin (method git-fetch) (uri (git-reference @@ -986,13 +986,15 @@ C programming language.") (file-name (git-file-name name version)) (sha256 (base32 - "089grcj58n4xs41kmnpaqpwsalcisjbqqb5yqahxxyfx2lf1j9c9")))) + "1wzlxvcwr4s31c4q8nyj66x3za9s01xzq47ap2jwvr61c93pxcam")))) (build-system cmake-build-system) (arguments - '(#:configure-flags + '(#:parallel-tests? #f + #:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) + (supported-systems '("armhf-linux" "aarch64-linux" + "i686-linux" "x86_64-linux")) (synopsis "Amazon Web Services core C library") - (supported-systems '("i686-linux" "x86_64-linux")) (description "This library provides common C99 primitives, configuration, data structures, and error handling for the @acronym{AWS,Amazon Web Services} SDK.") @@ -1003,7 +1005,7 @@ C programming language.") (package (name "aws-checksums") ;; Update only when updating aws-crt-cpp. - (version "0.1.12") + (version "0.1.18") (source (origin (method git-fetch) (uri (git-reference @@ -1012,7 +1014,7 @@ C programming language.") (file-name (git-file-name name version)) (sha256 (base32 - "054f2hkmkxhw83q7zsz349k82xk6bkrvlsab088pf7kn9wd4hy4k")))) + "1lwbs5b89z4z8pswlfhj4fn73flwmr060byy3apqfay8rxmia4hj")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -1032,7 +1034,7 @@ with fallback to efficient C99 software implementations.") (package (name "aws-c-event-stream") ;; Update only when updating aws-crt-cpp. - (version "0.2.7") + (version "0.4.3") (source (origin (method git-fetch) (uri (git-reference @@ -1041,7 +1043,7 @@ with fallback to efficient C99 software implementations.") (file-name (git-file-name name version)) (sha256 (base32 - "0xwwr7gdgfrphk6j7vk12rgimfim6m4qnj6hg8hgg16cplhvsfzh")))) + "0pm6ggm2yv5rqfijvi0zd7xf4a0zq0m21c36vhgda5mh5wbhzf64")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -1064,7 +1066,7 @@ communication.") (package (name "aws-c-io") ;; Update only when updating aws-crt-cpp. - (version "0.10.20") + (version "0.14.18") (source (origin (method git-fetch) (uri (git-reference @@ -1073,7 +1075,7 @@ communication.") (file-name (git-file-name name version)) (sha256 (base32 - "07l5rfbm1irkigfv51sfygs992af8rxicmay97frbx6z21khdjnr")))) + "09m3n81jibn8fhg7z6dkhj7dc7sds9n3mbr3n7jgg64zpf0lx9kl")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -1093,7 +1095,7 @@ event-driven, asynchronous network application protocols.") (package (name "aws-c-cal") ;; Update only when updating aws-crt-cpp. - (version "0.5.17") + (version "0.7.4") (source (origin (method git-fetch) (uri (git-reference @@ -1102,7 +1104,7 @@ event-driven, asynchronous network application protocols.") (file-name (git-file-name name version)) (sha256 (base32 - "0gd7xfzv509vcysifzfa8j2rykkc1prhiry7953snblkzm7airm5")))) + "01h3ypypn3lbqm9r252zkh26wg8g7acl1slddy4vd59nfwqlwp7m")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -1110,10 +1112,7 @@ event-driven, asynchronous network application protocols.") (string-append "-DCMAKE_PREFIX_PATH=" (assoc-ref %build-inputs "aws-c-common"))))) (propagated-inputs - (list aws-c-common)) - (inputs - `(("openssl" ,openssl) - ("openssl:static" ,openssl "static"))) + (list aws-c-common s2n)) (synopsis "Amazon Web Services Crypto Abstraction Layer") (description "This library provides a C99 wrapper for hash, HMAC, and ECC cryptographic primitives for the @acronym{AWS,Amazon Web Services} SDK.") @@ -1124,7 +1123,7 @@ cryptographic primitives for the @acronym{AWS,Amazon Web Services} SDK.") (package (name "aws-c-sdkutils") ;; Update only when updating aws-crt-cpp. - (version "0.1.2") + (version "0.1.19") (source (origin (method git-fetch) (uri (git-reference @@ -1133,7 +1132,7 @@ cryptographic primitives for the @acronym{AWS,Amazon Web Services} SDK.") (file-name (git-file-name name version)) (sha256 (base32 - "14wpl3dxwjbbzas44v6m6m3ll89rgz34x9gb140qz624gwzs9v0v")))) + "12xpnx0qxnjc2gnbpxq0kx6dfyi650zlrl2ykfhn3z9h6gj0lz8s")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -1171,7 +1170,7 @@ low level functionality for coroutines.") (package (name "aws-c-http") ;; Update only when updating aws-crt-cpp. - (version "0.6.13") + (version "0.8.8") (source (origin (method git-fetch) (uri (git-reference @@ -1180,7 +1179,7 @@ low level functionality for coroutines.") (file-name (git-file-name name version)) (sha256 (base32 - "125glc9b3906r95519zqfbzzz6wj5ib4im2n45yxrigwkkpffbq9")))) + "0kap7r9mj564k7ncl2p6kyqp88vxkj80r277xkd6fry8d3plviac")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -1201,7 +1200,7 @@ specifications.") (package (name "aws-c-compression") ;; Update only when updating aws-crt-cpp. - (version "0.2.14") + (version "0.2.19") (source (origin (method git-fetch) (uri (git-reference @@ -1210,7 +1209,7 @@ specifications.") (file-name (git-file-name name version)) (sha256 (base32 - "0fs3zhhzxsb9nfcjpvfbcq79hal7si2ia1c09scab9a8m264f4vd")))) + "17ka9fbv41njrkby8ac13djy65y54k85mxms3cjl6khsnvil5gb6")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -1230,7 +1229,7 @@ currently limited to Huffman encoding and decoding.") (package (name "aws-c-auth") ;; Update only when updating aws-crt-cpp. - (version "0.6.11") + (version "0.7.26") (source (origin (method git-fetch) (uri (git-reference @@ -1239,7 +1238,7 @@ currently limited to Huffman encoding and decoding.") (file-name (git-file-name name version)) (sha256 (base32 - "0frfnbifkrib9l68mj92a3g1x8xc8hpdlzbga2a801zgf2flx4fy")) + "0im29xh80dpm4hlwq02dyv6il9whbcxhgwp1gw5nj68c33dp4ryk")) (patches (search-patches "aws-c-auth-install-private-headers.patch")))) @@ -1263,7 +1262,7 @@ authentication.") (package (name "aws-c-s3") ;; Update only when updating aws-crt-cpp. - (version "0.1.38") + (version "0.6.4") (source (origin (method git-fetch) (uri (git-reference @@ -1272,7 +1271,7 @@ authentication.") (file-name (git-file-name name version)) (sha256 (base32 - "0n2y8hzb1bx3vnzlpb5hsav18dg33pwav0mpji6krz98y2l8msya")))) + "08kzdpjn48bzg4hvvr92yv6igvppja6xcrqr6hsliai6088nw4kl")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -1293,7 +1292,7 @@ Service (S3) protocol for object storage.") (package (name "aws-c-mqtt") ;; Update only when updating aws-crt-cpp. - (version "0.7.10") + (version "0.10.4") (source (origin (method git-fetch) (uri (git-reference @@ -1302,7 +1301,7 @@ Service (S3) protocol for object storage.") (file-name (git-file-name name version)) (sha256 (base32 - "0qmzx8b4wcsq9s99q2zrhx1s3jdmfy8zs16qys9bqv45gspi3ybr")))) + "1sa5bxnva9qwx00a49l1pppz0gnkxbwam4g6r3gw7w6265kjrswb")))) (build-system cmake-build-system) (arguments '(#:configure-flags diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 05c00df082..6717db867f 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -227,7 +227,7 @@ interface} named 'ikhal'.") (define-public remind (package (name "remind") - (version "3.3.7") + (version "5.0.5") (source (origin (method url-fetch) @@ -238,7 +238,9 @@ interface} named 'ikhal'.") ".") ".tar.gz")) (sha256 - (base32 "0gca7f5gc0zr111c28hxw4hycz1hr9z7s912bpzm92g1s4llxjc7")))) + (base32 "0yc0lfrl0zzc1bn5fkigararg44bdryis7vjnm8vzs21as9r0dbz")))) + (properties + `((output-synopsis "tcl" "graphical front-end to Remind calendar program"))) (build-system gnu-build-system) (outputs (list "out" "tcl")) ; more than doubles the closure by >110 MiB @@ -255,24 +257,24 @@ interface} named 'ikhal'.") (let ((from (string-append out "/" file)) (to (string-append tcl "/" file))) (mkdir-p (dirname to)) - (rename-file from to) - ;; For simplicity, wrap all scripts with the same variables - ;; even though, e.g., inetutils is not needed by cm2rem.tcl. - ;; XXX Using WRAP-SCRIPT currently breaks tkremind. - (wrap-program to - `("PATH" ":" prefix - ,(map (lambda (dir) - (string-append dir "/bin")) - (append (list out tcl) - (map (lambda (input) - (assoc-ref inputs input)) - (list "tcl" "tk" "inetutils"))))) - `("TCLLIBPATH" " " = - (,(getenv "TCLLIBPATH")))))) - (list "bin/cm2rem.tcl" - "bin/tkremind")))))))) + (rename-file from to))) + (list "bin/tkremind" + "share/man/man1/tkremind.1" + "share/pixmaps/tkremind.png" + "share/applications/tkremind.desktop")) + (wrap-program (string-append tcl "/bin/tkremind") + `("PATH" ":" prefix + ,(map (lambda (dir) + (string-append dir "/bin")) + (append (list out tcl) + (map (lambda (input) + (assoc-ref inputs input)) + (list "tcl" "tk" "inetutils"))))) + `("TCLLIBPATH" " " = + (,(getenv "TCLLIBPATH")))))))))) (inputs (list bash-minimal inetutils tcl tcllib tk)) + (native-inputs (list tzdata-for-tests)) ;required for some tests (home-page "https://dianne.skoll.ca/projects/remind/") (synopsis "Sophisticated calendar and alarm program") (description diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 248d1c4231..8d41996c71 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -1299,29 +1299,35 @@ but it works for any C/C++ project.") (define-public actionlint (package (name "actionlint") - (version "1.6.26") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rhysd/actionlint") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0j4ni2cryvqn3qim1r6q6sargh0wig6l4vjjwc40cgqvvkrdla04")))) + (version "1.7.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rhysd/actionlint") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rgsxv4clgfyl4gr8bjk81p4b87c6hr34flxzw6011h0vjc54n7x")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/rhysd/actionlint/cmd/actionlint" - #:unpack-path "github.com/rhysd/actionlint" - #:install-source? #f)) - (inputs (list go-github-com-fatih-color - go-github-com-mattn-go-colorable - go-github-com-mattn-go-runewidth - go-github-com-robfig-cron - go-golang-org-x-sync - go-golang-org-x-sync - go-gopkg-in-yaml-v3)) - (native-inputs (list go-github-com-google-go-cmp)) + (list + #:install-source? #f + #:build-flags + #~(list (string-append + "-ldflags=-X github.com/rhysd/actionlint.version=" #$version)) + #:import-path "github.com/rhysd/actionlint/cmd/actionlint" + #:unpack-path "github.com/rhysd/actionlint")) + ;; XXX: Install Man page, wrap with shellcheck and pyflakes. + (native-inputs + (list go-github-com-fatih-color + go-github-com-mattn-go-colorable + go-github-com-mattn-go-runewidth + go-github-com-robfig-cron + go-golang-org-x-sync + go-golang-org-x-sync + go-github-com-google-go-cmp + go-gopkg-in-yaml-v3)) (home-page "https://rhysd.github.io/actionlint/") (synopsis "Static checker for GitHub Actions workflow files") (description @@ -3624,6 +3630,42 @@ allowing you to declaratively define \"match\" rules.") (description "Theft is a library for property-based testing.") (license license:isc))) +(define-public toml-test + (package + ;; Upstream is informed to provide man/info for the project, see + ;; <https://github.com/toml-lang/toml-test/issues/163>. + (name "toml-test") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/toml-lang/toml-test") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "188xcsxgn20pjnddfn3mvx7wak030xdgkhxkhjiijfap37gbv6df")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:import-path "github.com/toml-lang/toml-test/cmd/toml-test" + #:unpack-path "github.com/toml-lang/toml-test")) + (native-inputs + (list go-zgo-at-zli + go-zgo-at-jfmt + go-github-com-burntsushi-toml)) + (home-page "https://github.com/toml-lang/toml-test") + (synopsis "Language agnostic test suite for TOML parsers") + (description + "@samp{toml-test} is a language-agnostic test suite to verify the +correctness of @url{https://toml.io,TOML} parsers and writers. Tests are +divided into two groups: @emph{invalid} and @emph{valid}. Decoders or +encoders that reject @emph{invalid} tests pass the tests, and decoders that +accept @emph{valid} tests and output precisely what is expected pass the +tests. The output format is JSON.") + (license license:expat))) + (define-public unittest-cpp (package (name "unittest-cpp") @@ -3756,6 +3798,7 @@ provides a simple way to achieve this.") (sha256 (base32 "1s2qva1amhs887jcdj12ppxk9kkfvy25xy7vzhkwb7rljr3gj713")) (modules '((guix build utils))) + (patches (search-patches "rapidcheck-fix-libs.patch")) (snippet #~(begin (make-file-writable "ext/CMakeLists.txt") diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index 66e57954eb..45d2b526d4 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -610,6 +610,11 @@ with reliability taking precedence over efficiency if necessary.") (else ;; bootstrapping #~(lambda* (#:key native-inputs inputs #:allow-other-keys) + ;; Make sure we're building for the correct machine type. + (setenv "MACH" + #$@(if (nix-system->native-chez-machine-type) + #~(#$(nix-system->native-chez-machine-type)) + #~(#$(nix-system->pbarch-machine-type)))) (invoke (search-input-file (or native-inputs inputs) "/opt/racket-vm/bin/racket") diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index 6b6aae67a6..09024cbc8e 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -61,8 +61,8 @@ #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR))) (define-public cuirass - (let ((commit "ab5c751737b694b4d1e5fbbd7bc1ec559e94a7ce") - (revision "7")) + (let ((commit "88f85da199bcfeddfdbe4f4ff8cd5900079afd66") + (revision "9")) (package (name "cuirass") (version (git-version "1.2.0" revision commit)) @@ -75,7 +75,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1cakc6q7gvd1qnfq47j6swqjrkgikwaq3ziwdrdvb0d23l2xzz29")))) + "1csbdmmqayyi65dqyjlp1xxs1apgw52xqi008qw16ip1h985s54m")))) (build-system gnu-build-system) (arguments (list #:modules `((guix build utils) diff --git a/gnu/packages/cinnamon.scm b/gnu/packages/cinnamon.scm index 0406837ad7..cd919686b3 100644 --- a/gnu/packages/cinnamon.scm +++ b/gnu/packages/cinnamon.scm @@ -169,7 +169,7 @@ as well as some desktop-wide documents.") (define-public nemo (package (name "nemo") - (version "5.6.5") + (version "6.0.2") (source (origin (method git-fetch) @@ -179,7 +179,7 @@ as well as some desktop-wide documents.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "15032jzi1x3dr292wbx6sdydybrs5n3lim2sq2i0lb9xa7cxxl0x")))) + (base32 "1416rcd0ii92r761lwz62rq0fzaliz6vzpf5nlcnpa109fkwa8mx")))) (build-system meson-build-system) (arguments (list diff --git a/gnu/packages/clifm.scm b/gnu/packages/clifm.scm index 2718217381..a89389d7d5 100644 --- a/gnu/packages/clifm.scm +++ b/gnu/packages/clifm.scm @@ -30,7 +30,7 @@ (define-public clifm (package (name "clifm") - (version "1.20") + (version "1.21") (source (origin (method git-fetch) @@ -39,7 +39,7 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1hmky0rdrdp5zs1pgayrcgrf0ylvl2xh135r2c0g8k4ibwv3392c")))) + (base32 "0r2w11v5nsz9d9wdi0zmymkwg0y9x4xg4dksd2qxlknwqnvivcy7")))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "CC=" diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm index d315fc9187..09674f541e 100644 --- a/gnu/packages/clojure.scm +++ b/gnu/packages/clojure.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com> ;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2024 Roman Scherer <roman@burningswell.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -318,6 +319,67 @@ defining and using monads and useful monadic functions.") (home-page "https://github.com/clojure/algo.monads") (license license:epl1.0))) +(define-public clojure-core-async + (package + (name "clojure-core-async") + (version "1.6.681") + (home-page "https://github.com/clojure/core.async") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1j9yz14hy2qs8g3flsqkn1sx9c0qlr5mmpy6ab1zml9yhbw5arzg")))) + (build-system clojure-build-system) + (arguments + '(#:source-dirs '("src/main/clojure") + #:test-dirs '("src/test/clojure") + #:doc-dirs '() + #:phases + (modify-phases %standard-phases + ;; Remove ClojureScript code, we are only supporting Clojure for now. + (add-after 'unpack 'delete-cljs + (lambda _ + (delete-file-recursively "src/main/clojure/cljs") + (delete-file-recursively "src/test/cljs")))))) + (propagated-inputs (list clojure-tools-analyzer-jvm)) + (synopsis "Facilities for async programming and communication in Clojure") + (description "The core.async library adds support for asynchronous +programming using channels to Clojure. It provides facilities for independent +threads of activity, communicating via queue-like channels inspired by Hoare’s +work on Communicating Sequential Processes (CSP).") + (license license:epl1.0))) + +(define-public clojure-core-cache + (package + (name "clojure-core-cache") + (version "1.1.234") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/clojure/core.cache") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jiq022kd5jdpmxz884rvg5317xmx7g3gnidkpcfsamchyfh5qxq")))) + (build-system clojure-build-system) + (arguments + '(#:source-dirs '("src/main/clojure") + #:test-dirs '("src/test/clojure") + #:doc-dirs '("docs"))) + (propagated-inputs (list clojure-data-priority-map)) + (synopsis "Clojure caching library") + (description + "Caching library for Clojure implementing various cache strategies such +as First-in-first-out, Least-recently-used, Least-used, Time-to-live, Naive +cache and Naive cache backed with soft references.") + (home-page "https://github.com/clojure/core.cache") + (license license:epl1.0))) + (define-public clojure-core-match (package (name "clojure-core-match") @@ -343,6 +405,33 @@ It supports Clojure 1.5.1 and later as well as ClojureScript.") (home-page "https://github.com/clojure/core.match") (license license:epl1.0))) +(define-public clojure-core-memoize + (package + (name "clojure-core-memoize") + (version "1.1.266") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/clojure/core.memoize") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0nys79zrvcnwgyxb91zlyl3nb4p6r6y4n5rbdvzqkvsxxazi9ji0")))) + (build-system clojure-build-system) + (arguments + '(#:source-dirs '("src/main/clojure") + #:test-dirs '("src/test/clojure") + #:doc-dirs '("docs"))) + (propagated-inputs (list clojure-core-cache)) + (synopsis "Memoization framework for Clojure") + (description + "A manipulable, pluggable, memoization framework for Clojure implementing +some common memoization caching strategies, such as First-in-first-out, +Least-recently-used, Least-used and Time-to-live.") + (home-page "https://github.com/clojure/core.memoize") + (license license:epl1.0))) + (define-public clojure-data-codec (package (name "clojure-data-codec") @@ -397,6 +486,61 @@ CSV data. @code{data.csv} follows the RFC4180 specification but is more relaxed.") (license license:epl1.0))) +(define-public clojure-data-json + (package + (name "clojure-data-json") + (version "2.5.0") + (home-page "https://github.com/clojure/data.json") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04k3fr9y1gp337h0d2zxam3aa3hl046r2g2qiizn7aq0rq6311p9")))) + (build-system clojure-build-system) + (arguments + '(#:source-dirs '("src/main/clojure") + #:test-dirs '("src/test/clojure") + #:doc-dirs '())) + (native-inputs (list clojure-test-check)) + (synopsis "Clojure library for reading and writing JSON data") + (description "@code{data.json} is a Clojure library for reading and +writing JSON data. @code{data.xml} is compliant with the JSON spec and has no +external dependencies") + (license license:epl1.0))) + +(define-public clojure-data-priority-map + (package + (name "clojure-data-priority-map") + (version "1.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/clojure/data.priority-map") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0aynzrdl0w08q89nd069lcx8s6msqmwrpqnya63jv1l2pn3w6ij4")))) + (build-system clojure-build-system) + (arguments + '(#:source-dirs '("src/main/clojure") + #:test-dirs '("src/test/clojure") + #:doc-dirs '())) + (synopsis "Priority map implementation in Clojure") + (description + "A priority map is very similar to a sorted map, but whereas a sorted map +produces a sequence of the entries sorted by key, a priority map produces the +entries sorted by value. In addition to supporting all the functions a sorted +map supports, a priority map can also be thought of as a queue of [item +priority] pairs. To support usage as a versatile priority queue, priority +maps also support conj/peek/pop operations.") + (home-page "https://github.com/clojure/data.priority-map") + (license license:epl1.0))) + (define-public clojure-data-xml (package (name "clojure-data-xml") @@ -525,6 +669,59 @@ about your function that should hold true for all inputs. This lets you write concise, powerful tests.") (license license:epl1.0))) +(define-public clojure-tools-analyzer + (package + (name "clojure-tools-analyzer") + (version "1.2.0") + (home-page "https://github.com/clojure/tools.analyzer") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05v4i8qs5d51lh113phib0brkysphxa2d71khm840586432knyaa")))) + (build-system clojure-build-system) + (arguments + '(#:source-dirs '("src/main/clojure") + #:test-dirs '("src/test/clojure") + #:doc-dirs '())) + (synopsis "Analyzer for Clojure code") + (description "Analyzer for Clojure code, written in Clojure, which +produces an abstract syntax tree in the EDN ( Extensible Data Notation) +format.") + (license license:epl1.0))) + +(define-public clojure-tools-analyzer-jvm + (package + (name "clojure-tools-analyzer-jvm") + (version "1.3.0") + (home-page "https://github.com/clojure/tools.analyzer.jvm") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13nxzdp15772hzl3jmi5014jkwldkm1qccfycwkk2pn64hycmnxl")))) + (build-system clojure-build-system) + (arguments + '(#:source-dirs '("src/main/clojure") + #:test-dirs '("src/test/clojure") + #:doc-dirs '("docs"))) + (propagated-inputs (list clojure-tools-analyzer + clojure-tools-reader + clojure-core-memoize + java-asm)) + (synopsis "Analyzer for Clojure code targeting the JVM") + (description "Analyzer for Clojure code, written on top of +tools.analyzer, providing additional JVM-specific passes.") + (license license:epl1.0))) + (define-public clojure-tools-macro (package (name "clojure-tools-macro") @@ -726,3 +923,103 @@ dependency graph expansion and the creation of classpaths.") indicated by git SHAs. This library provides this functionality and also keeps a cache of git directories and working trees that can be reused.") (license license:epl1.0))) + +(define-public clojure-tools-logging + (package + (name "clojure-tools-logging") + (version "1.3.0") + (home-page "https://github.com/clojure/tools.logging") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "106n4cxsxzs0hvpsfi1h14b09xm6klrvj1g5fbd5nw8fj3mpkdac")))) + (build-system clojure-build-system) + (arguments + '(#:doc-dirs '() + #:source-dirs '("src/main/clojure") + #:test-dirs '("src/test/clojure") + #:phases + (modify-phases %standard-phases + ;; These tests should throw a ClassCastException, but they don't + ;; under AOT. Adjust them :/ + (add-after 'unpack 'disable-failing-tests + (lambda _ + (substitute* (string-append "src/test/clojure/clojure/tools" + "/logging/test_readable.clj") + (((string-append "\\(thrown\\? ClassCastException \\(logf " + ":debug \\(Exception\\.\\)\\)\\)")) + "(nil? (logf :debug (Exception.)))")) + (substitute* "src/test/clojure/clojure/tools/test_logging.clj" + (((string-append "\\(thrown\\? ClassCastException \\(logf " + ":debug \\(Exception\\.\\)\\)\\)")) + "(nil? (logf :debug (Exception.)))"))))))) + (native-inputs + (list java-commons-logging-minimal + java-log4j-1.2-api + java-log4j-api + java-log4j-core + java-slf4j-api + java-slf4j-simple)) + (synopsis "Clojure logging library") + (description "Logging macros which delegate to a specific logging +implementation, selected at runtime when the clojure.tools.logging namespace +is first loaded.") + (license license:epl1.0))) + +(define-public clojure-tools-reader + (package + (name "clojure-tools-reader") + (version "1.5.0") + (home-page "https://github.com/clojure/tools.reader") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jf05q4ym8z16qaxidx47g2gjv04qcf1wvkca3wqyiaszpvym4zz")))) + (build-system clojure-build-system) + (arguments + '(#:doc-dirs '() + #:source-dirs '("src/main/clojure") + #:test-dirs '("src/test/clojure") + #:test-exclude '(clojure.tools.common-tests))) ; Loaded by other tests. + (synopsis "Clojure reader written in Clojure") + (description "The clojure.tools.reader library offers all functionality +provided by the Clojure Core reader and more. It adds metadata such as column +and line numbers not only to lists, but also to symbols, vectors and maps.") + (license license:epl1.0))) + +(define-public http-kit + (package + (name "http-kit") + (version "2.8.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/http-kit/http-kit") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1361bpb4sn3dbp215s7gf1bcrb45lgx3lk6lix7bndw9lahr5ank")))) + (build-system clojure-build-system) + (arguments + '(#:java-source-dirs '("src/java") + #:source-dirs '("src") + #:doc-dirs '() + #:tests? #f)) ;XXX: too many unpackaged dependencies + (synopsis + "High-performance, event-driven HTTP client and server for Clojure") + (description "This package provides a minimalist, event-driven, +high-performance Clojure HTTP client and server library with WebSocket and +asynchronous support.") + (home-page "https://github.com/http-kit/http-kit") + (license license:asl2.0))) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 0c780fe420..4466c4b91d 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -12,6 +12,8 @@ ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com> ;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2024 John Kehayias <john.kehayias@protonmail.com> +;;; Copyright © 2024 dan <i@dan.games> ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,6 +40,7 @@ #:use-module (guix deprecation) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system emacs) #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE)) #:use-module (gnu packages) @@ -409,6 +412,26 @@ and workspaces that can be used in the compiler environment of your choice.") texinfo))) (properties (alist-delete 'hidden? (package-properties cmake-minimal))))) +(define-public cmake-3.30 + (package + (inherit cmake) + (version "3.30.3") + (source (origin + (method url-fetch) + (uri (string-append "https://cmake.org/files/v" + (version-major+minor version) + "/cmake-" version ".tar.gz")) + (sha256 + (base32 + "1r48zym4dy4mvwzk704zh1vx9gb4a910f424ypvis28mcxdy2pbd")))) + (native-inputs + (modify-inputs (package-native-inputs cmake) + ;; Avoid circular dependency with (gnu packages debug). Note: cppdap + ;; is built with cmake, so when the default cmake is updated to this + ;; version this circular dependency will need to be worked around. + (prepend (module-ref (resolve-interface '(gnu packages debug)) + 'cppdap)))))) + (define-public cmake-minimal-cross (package (inherit cmake-minimal) @@ -478,3 +501,47 @@ C/C++ projects. It features: @item Support calling Qt Linguist Tools via CMake conveniently @end itemize") (license license:expat)))) + +(define-public tinycmmc + (package + (name "tinycmmc") + (version "0.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Grumbel/tinycmmc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0chv7h6vnd8zpa6b69krxwdgvp3n5fd37355wa1zwi14x4nyyay5")))) + (build-system cmake-build-system) + (arguments (list #:tests? #f)) ;no test suite + (home-page "https://github.com/Grumbel/tinycmmc") + (synopsis "Tiny CMake Module Collections") + (description "The tinycmmc package contains a small collection of reusable +CMake modules.") + (license license:zlib))) + +(define-public cpm-cmake + (package + (name "cpm-cmake") + (version "0.38.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cpm-cmake/CPM.cmake") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qbbhdq6cz2y7qfyy1k11i98d13s229r3phd5y3n5maq51ky8bgb")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan #~'(("cmake/CPM.cmake" "lib/cmake/CPM.cmake")))) + (home-page "https://github.com/cpm-cmake/CPM.cmake") + (synopsis "Package manager for CMake") + (description "CPM.cmake is a cross-platform CMake script that adds +dependency management capabilities to CMake.") + (license license:expat))) diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm index 929234c772..2a7d170aac 100644 --- a/gnu/packages/containers.scm +++ b/gnu/packages/containers.scm @@ -67,7 +67,7 @@ (define-public crun (package (name "crun") - (version "1.16.1") + (version "1.17") (source (origin (method url-fetch) @@ -77,7 +77,7 @@ "/crun-" version ".tar.gz")) (sha256 (base32 - "17i8vwj9zmr6dvi1w9i359vwr3rzwa9g03q83rz9w32ghzj8sm3h")))) + "0x78ljwz32bfss0v32rfmahivmqv0qdsydfjsb0a7c602jc60rmp")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-systemd") @@ -464,7 +464,7 @@ Its main purpose is to support the key usage by @code{docker-init}: (define-public podman (package (name "podman") - (version "5.2.1") + (version "5.2.3") (source (origin (method git-fetch) @@ -472,7 +472,7 @@ Its main purpose is to support the key usage by @code{docker-init}: (url "https://github.com/containers/podman") (commit (string-append "v" version)))) (sha256 - (base32 "1xa629vbh6mpish5cwr87pcv01hgzh92y7k7jdpm9wz7z445y1n7")) + (base32 "1yz2blyxyqk76glg152rqnw2xcqrhihv1bcb0yxvg1lh6y5d8nfq")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -606,7 +606,7 @@ being rootless and not requiring any daemon to be running.") (define-public buildah (package (name "buildah") - (version "1.37.1") + (version "1.37.3") (source (origin (method git-fetch) @@ -614,7 +614,7 @@ being rootless and not requiring any daemon to be running.") (url "https://github.com/containers/buildah") (commit (string-append "v" version)))) (sha256 - (base32 "1c15djlnqiawrahcyp7nl7bsnj0nz60ngncbwbab09f28szfk61g")) + (base32 "1xwlkybqb4wvxki4c8sgp185jakwf052676gvma9jyv9ggb9fvgx")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index 4857426613..31d1e8d51d 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org> ;;; Copyright © 2024 Foundation Devices, Inc. <hello@foundation.xyz> +;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,7 +57,7 @@ (define-public coq (package (name "coq") - (version "8.17.1") + (version "8.18.0") (source (origin (method git-fetch) @@ -66,7 +67,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0gg6hizq0i08lk741b579cbswhy6qvkh6inc3d3i5a2af98psq63")))) + "1qy71gdr4s2l6847b4nwns6akib2f7l725zb01m7zc26n6mrrh1m")))) (native-search-paths (list (search-path-specification (variable "COQPATH") @@ -91,8 +92,10 @@ (libdir (string-append out "/lib/ocaml/site-lib"))) (invoke "dune" "install" "--prefix" out "--libdir" libdir "coq" "coq-core" "coq-stdlib"))))))) + (propagated-inputs + (list ocaml-zarith)) (inputs - (list gmp ocaml-zarith)) + (list gmp)) (native-inputs (list ocaml-ounit2 which)) (properties '((upstream-name . "coq"))) ; also for inherited packages @@ -114,7 +117,7 @@ It is developed using Objective Caml and Camlp5.") `(#:tests? #f #:package "coqide-server")) (inputs - (list coq gmp ocaml-zarith)))) + (list coq gmp)))) (define-public coq-ide (package @@ -319,7 +322,7 @@ inside Coq.") bison flex)) (inputs - (list gmp mpfr ocaml-zarith boost)) + (list gmp mpfr boost)) (propagated-inputs (list coq-flocq)) (arguments @@ -443,31 +446,31 @@ theorems between the two libraries.") (define-public coq-bignums (package (name "coq-bignums") - (version "8.16.0") + (version "9.0.0+coq8.18") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/coq/bignums") - (commit (string-append "V" version)))) + (url "https://github.com/coq/bignums") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "07ndnm7pndmai3a2bkcmwjfjzfaqyq19c5an15hmhgmd0rdy4z8c")))) + "1vw1a498fhyrpm884rlm3r4lw4mg4l6b9xj8w4y875sacg88kdxw")))) (build-system gnu-build-system) (native-inputs (list ocaml coq)) (inputs - (list camlp5 ocaml-zarith)) + (list camlp5)) (arguments - `(#:tests? #f ; No test target. - #:make-flags - (list (string-append "COQLIBINSTALL=" (assoc-ref %outputs "out") - "/lib/coq/user-contrib") - (string-append "COQPLUGININSTALL=" (assoc-ref %outputs "out") - "/lib/ocaml/site-lib/")) - #:phases - (modify-phases %standard-phases - (delete 'configure)))) + (list #:tests? #f ; No test target. + #:make-flags + #~(list (string-append "COQLIBINSTALL=" #$output + "/lib/coq/user-contrib") + (string-append "COQPLUGININSTALL=" #$output + "/lib/ocaml/site-lib/")) + #:phases + #~(modify-phases %standard-phases + (delete 'configure)))) (home-page "https://github.com/coq/bignums") (synopsis "Coq library for arbitrary large numbers") (description "Bignums is a coq library of arbitrary large numbers. It @@ -495,8 +498,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.") `(("flocq" ,coq-flocq) ("bignums" ,coq-bignums) ("coquelicot" ,coq-coquelicot) - ("mathcomp" ,coq-mathcomp) - ("ocaml-zarith" ,ocaml-zarith))) + ("mathcomp" ,coq-mathcomp))) (arguments `(#:configure-flags (list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out") @@ -566,7 +568,7 @@ uses Ltac to synthesize the substitution operation.") (define-public coq-equations (package (name "coq-equations") - (version "1.3-8.17") + (version "1.3-8.18") (source (origin (method git-fetch) (uri (git-reference @@ -575,25 +577,23 @@ uses Ltac to synthesize the substitution operation.") (file-name (git-file-name name version)) (sha256 (base32 - "0g68h4c1ijpphixvl9wkd7sibds38v4236dpvvh194j5ii42vnn8")))) + "1akxf2vafwyz6fi1djlc3g8mwxrjv0a99x4b08jwrbwxypv4xiph")))) (build-system gnu-build-system) (native-inputs (list ocaml coq camlp5)) - (inputs - (list ocaml-zarith)) (arguments - `(#:test-target "test-suite" - #:make-flags (list (string-append "COQLIBINSTALL=" - (assoc-ref %outputs "out") - "/lib/coq/user-contrib") - (string-append "COQPLUGININSTALL=" - (assoc-ref %outputs "out") - "/lib/ocaml/site-lib/")) - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (invoke "sh" "./configure.sh")))))) + (list #:test-target "test-suite" + #:make-flags #~(list (string-append "COQLIBINSTALL=" + #$output + "/lib/coq/user-contrib") + (string-append "COQPLUGININSTALL=" + #$output + "/lib/ocaml/site-lib/")) + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (invoke "sh" "./configure.sh")))))) (home-page "https://mattam82.github.io/Coq-Equations/") (synopsis "Function definition plugin for Coq") (description "Equations provides a notation for writing programs diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 579dde6953..b4a02a2060 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -1319,7 +1319,7 @@ programs.") (define-public kokkos (package (name "kokkos") - (version "4.3.01") + (version "4.4.00") (source (origin (method git-fetch) @@ -1328,7 +1328,7 @@ programs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "069j9wijw8vwp2844sdrp0wpq59wihykbhbacwadac01l467m3y7")) + (base32 "1k8xd1m5lvk28i677yj780029gsb56m48wyh8d7rp9yqd4bcchbh")) (modules '((guix build utils))) (snippet ;; Remove bundled googletest. @@ -1529,7 +1529,15 @@ Google's C++ code base.") (lambda* (#:key inputs #:allow-other-keys) ;; absl_time_test requires this environment variable. (setenv "TZDIR" (string-append #$(package-source base) - "/absl/time/internal/cctz/testdata/zoneinfo"))))))))))) + "/absl/time/internal/cctz/testdata/zoneinfo")))) + #$@(if (target-riscv64?) + #~((replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") + (invoke "ctest" "-E" + "absl_symbolize_test|absl_log_format_test"))))) + #~())))))))) (define (abseil-cpp-for-c++-standard base version) (hidden-package @@ -1645,7 +1653,7 @@ standard GNU style syntax for options.") (define-public folly (package (name "folly") - (version "2023.11.06.00") + (version "2024.09.09.00") (source (origin (method git-fetch) (uri (git-reference @@ -1654,18 +1662,20 @@ standard GNU style syntax for options.") (file-name (git-file-name name version)) (sha256 (base32 - "0z0jhkma2qacc2kc27qsiwqwqkv07i9mwpc4vwcbawyzdajq6hd0")))) + "17fdigkaxivbrww5yhz9fh25d8pirqjp126zbv4kg4qsprywfww5")))) (build-system cmake-build-system) (arguments - '(;; Tests must be explicitly enabled - ;;#:configure-flags '("-DBUILD_TESTS=ON"))) - ;; Leave tests disabled; see https://github.com/facebook/folly/issues/1456 - #:tests? #f)) + (list + ;; Tests must be explicitly enabled + ;;#:configure-flags #~(list "-DBUILD_TESTS=ON") + ;; Leave tests disabled; see https://github.com/facebook/folly/issues/2246 + #:tests? #f)) (propagated-inputs (list boost gflags glog liburing)) (inputs (list bzip2 double-conversion + fast-float fmt libaio libevent @@ -1727,7 +1737,7 @@ to be useful for building network-based applications.") ;; Update only when updating aws-sdk-cpp, and when updating also update ;; versions of library dependencies linked from from ;; https://github.com/awslabs/aws-crt-cpp/tree/{aws-crt-cpp commit}/crt - (version "0.17.27") + (version "0.28.2") (source (origin (method git-fetch) (uri (git-reference @@ -1736,7 +1746,7 @@ to be useful for building network-based applications.") (file-name (git-file-name name version)) (sha256 (base32 - "14g8pn7yii1klby7phcw08qnld1qv11vwmbdz8cs3mlpqahxrh4i")))) + "1jnj5q6jcw1nh74yzdbi99x338lc3v2wjlgvjnzclla4p66pi712")))) (build-system cmake-build-system) (arguments '(#:configure-flags @@ -1765,7 +1775,7 @@ aws-c-http, aws-c-io, aws-c-mqtt, aws-checksums, and s2n.") (name "aws-sdk-cpp") ; When updating also check for a tagged update to aws-crt-cpp from ; https://github.com/aws/aws-sdk-cpp/tree/main/crt - (version "1.9.306") + (version "1.11.402") (source (origin (method git-fetch) (uri (git-reference @@ -1774,7 +1784,7 @@ aws-c-http, aws-c-io, aws-c-mqtt, aws-checksums, and s2n.") (file-name (git-file-name name version)) (sha256 (base32 - "0k3f4xq4vvlwrwgpp0vka4pwzbnkylvrkbbkjksx6wq6g1a2gc2g")))) + "016jzz01c8mf5v732rk8gglmvpa8lf5c5r7jndvbp6gn6nlvnplx")))) (build-system cmake-build-system) (arguments '(;; Tests are run during the build phase. @@ -1952,7 +1962,7 @@ queues header library based on circular buffer with @code{std::atomic}.") (define-public magic-enum (package (name "magic-enum") - (version "0.9.5") + (version "0.9.6") (home-page "https://github.com/Neargye/magic_enum") (source (origin (method git-fetch) @@ -1962,7 +1972,7 @@ queues header library based on circular buffer with @code{std::atomic}.") (file-name (git-file-name name version)) (sha256 (base32 - "14ys5sn2v1mai8bclvi81cp65g6jblqpdsi94639hphca5v8gka3")))) + "15lxn4sjwygxyq4am3jbwl0m7lb0fw8w39fghgm7a8klcwavv4yn")))) (build-system cmake-build-system) (synopsis "C++17 header only library for compile time reflection of enums") (description "Magic Enum offers static reflection of enums, with @@ -2395,7 +2405,7 @@ which can evaluate Jsonnet files and expressions."))) (define-public simdjson (package (name "simdjson") - (version "3.1.0") + (version "3.10.1") (source (origin (method git-fetch) (uri (git-reference @@ -2404,7 +2414,7 @@ which can evaluate Jsonnet files and expressions."))) (file-name (git-file-name name version)) (sha256 (base32 - "0q784bm8xbz3p782dw02cdds6m71wk3acy94vva8krc9g88142ws")))) + "1qv7lvls7x9aw6mlnwfgchbajsxh6qygp09wpkb2w6mjdbidmi0h")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; tests require downloading dependencies @@ -2629,23 +2639,22 @@ CRC32C algorithm, which is specified in RFC 3720, section 12.1.") (license license:bsd-3))) (define fast-float-test-files - (let ((commit "97a0b2e638feb479387554cf253e346500541e7e")) + (let ((name "fast-float-test-files") + (version "1.0.0")) (origin (method git-fetch) (uri (git-reference - (url (string-append "https://github.com/fastfloat" - "/supplemental_test_files.git")) - (commit "97a0b2e638feb479387554cf253e346500541e7e"))) - (file-name (string-append "fast-float-test-files-" - (string-take commit 8))) + (url "https://github.com/fastfloat/supplemental_test_files") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0dxbiyzyh7i847i89ablfzypfc3ckhm7f74w98jsh73v1mppmxlf"))))) + "0z0z7qy3pxv6bhg2apvs8gp3mnixbxk92a9f7vby01p26zq1lnwl"))))) (define-public fast-float (package (name "fast-float") - (version "6.0.0") + (version "6.1.6") (source (origin (method git-fetch) (uri (git-reference @@ -2654,7 +2663,7 @@ CRC32C algorithm, which is specified in RFC 3720, section 12.1.") (file-name (git-file-name name version)) (sha256 (base32 - "1xf4gbllha760cr0ri53zsja46dypj45lj070ijb5f78xavfd8f8")))) + "1y6mj2rw0dr89ddhk33gj1l76dfk4ai00kx9i22i6rjr0qylqhih")))) (build-system cmake-build-system) (arguments (list @@ -2677,7 +2686,7 @@ CRC32C algorithm, which is specified in RFC 3720, section 12.1.") (description "@code{fast_float} is a header-only C++ library for parsing floating point numbers from strings. It implements the C++ from_chars functions for the float and double types.") - (license (list license:asl2.0 license:expat)))) ; dual licensed + (license (list license:asl2.0 license:boost1.0 license:expat)))) ; triple licensed (define-public pocketfft-cpp (let ((commit "daa8bb18327bc5c7d22c69428c25cf5dc64167d3") @@ -3049,8 +3058,12 @@ queues, resource pools, strings, etc. (native-inputs (list googletest benchmark)) (arguments (list #:configure-flags - #~(list "-DFTXUI_BUILD_TESTS:BOOL=ON" - "-DFTXUI_BUILD_TESTS_FUZZER:BOOL=OFF"))) + #~(list (string-append "-DFTXUI_BUILD_TESTS:BOOL=" + #$(if (%current-target-system) + "OFF" + "ON")) + "-DFTXUI_BUILD_TESTS_FUZZER:BOOL=OFF" + "-DBUILD_SHARED_LIBS=ON"))) (home-page "https://github.com/ArthurSonzogni/FTXUI") (synopsis "C++ Functional Terminal User Interface") (description @@ -3280,3 +3293,60 @@ ordered erase operations.") the std::optional for C++11/14/17, with support for monadic operations added in C++23.") (license license:cc0))) + +(define-public cpp-ada-url-parser + (package + (name "cpp-ada-url-parser") + (version "2.9.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ada-url/ada") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xvvjlia627ajl966gdxzy2b1j0jiimx7zx8ypmffwx0k6x72qam")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + #~(list "-DCPM_LOCAL_PACKAGES_ONLY=ON") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-deps + (lambda _ + (substitute* "CMakeLists.txt" + (("cmake/CPM.cmake") + (string-append #$(this-package-native-input + "cpm-cmake") + "/lib/cmake/CPM.cmake")) + ;; We force CPM to find system packages rather than using git + ;; to download them. + (("Git_FOUND") "TRUE") + (("(simdjson@)[0-9.]*" _ simdjson) + (string-append simdjson + #$(package-version (this-package-native-input + "simdjson"))))) + (substitute* "tools/cli/CMakeLists.txt" + (("(VERSION\\s)[0-9.]*" _ a) + (string-append a + #$(package-version (this-package-native-input + "cxxopts"))))))) + (add-after 'patch-deps 'python-zipfile-disable-strict-timestamps + (lambda _ + (substitute* "singleheader/amalgamate.py" + (("zipfile.ZIP_DEFLATED") + "zipfile.ZIP_DEFLATED, strict_timestamps=False"))))))) + (native-inputs (list cpm-cmake + cxxopts + fmt-10 + googletest + python + simdjson)) + (home-page "https://github.com/ada-url/ada") + (synopsis "URL parser") + (description + "Ada is a fast and spec-compliant URL parser written in C++. +Specification for URL parser can be found from the WHATWG website.") + (license license:gpl3+))) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 8bc2239389..51736377b4 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -10972,6 +10972,55 @@ for sequence alignment, masking of sequence alignments, and estimation of phylogenies and ancestral character states.") (license license:gpl3))) +(define-public r-dtwclust + (package + (name "r-dtwclust") + (version "6.0.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "dtwclust" version)) + (sha256 + (base32 "0by01x4qpf1pin5l61wmm600bmsnlnns9knwb0qmjlj72pmwfkqh")))) + (properties `((upstream-name . "dtwclust"))) + (build-system r-build-system) + (propagated-inputs + (list r-clue + r-cluster + r-dplyr + r-dtw + r-flexclust + r-foreach + r-ggplot2 + r-ggrepel + r-matrix + r-proxy + r-rcpp + r-rcpparmadillo + r-rcppparallel + r-rcppthread + r-reshape2 + r-rlang + r-rspectra + r-shiny + r-shinyjs)) + (native-inputs (list r-knitr)) + (home-page "https://github.com/asardaes/dtwclust") + (synopsis + "Clustering time series with dynamic time warping distance optimization") + (description + "This package implements time series clustering along with optimized +techniques related to the dynamic time warping distance and its corresponding +lower bounds. The implementations of partitional, hierarchical, fuzzy, k-Shape +and TADPole clustering are available. Functionality can be easily extended with +custom distance measures and centroid definitions. Implementations of @acronym{ +DTW, dynamic time warping} barycenter averaging, a distance based on global +alignment kernels, and the soft-DTW distance and centroid routines are also +provided. All included distance functions have custom loops optimized for the +calculation of cross-distance matrices, including parallelization support. +Several cluster validity indices are included.") + (license license:gpl3))) + (define-public r-dtw (package (name "r-dtw") diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 0cdb071ea0..c08ccd29fd 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -66141,7 +66141,7 @@ rustc compiler.") (define-public rust-rustix-0.38 (package (name "rust-rustix") - (version "0.38.31") + (version "0.38.31") ;XXX drop rust-rustix-for-bcachefs-tools when updating (source (origin (method url-fetch) @@ -66195,6 +66195,20 @@ rustc compiler.") ;; Apache 2.0, Apache 2.0 with LLVM exception, or Expat. (license (list license:asl2.0 license:expat)))) +(define-public rust-rustix-for-bcachefs-tools + ;; The package above is too old; too many dependents to update it directly. + (package + (inherit rust-rustix-0.38) + (name (package-name rust-rustix-0.38)) + (version "0.38.34") + (source + (origin + (inherit (package-source rust-rustix-0.38)) + (uri (crate-uri "rustix" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "03vkqa2ism7q56rkifyy8mns0wwqrk70f4i4fd53r97p8b05xp3h")))))) + (define-public rust-rustix-0.37 (package (inherit rust-rustix-0.38) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index e8f972c34a..e8ca5efc86 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -263,6 +263,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.") (package (name "cups-minimal") (version "2.4.9") + (replacement cups-minimal/fixed) (source (origin (method git-fetch) @@ -352,6 +353,15 @@ applications''. These must be installed separately.") ;; CUPS is Apache 2.0 with exceptions, see the NOTICE file. (license license:asl2.0))) +(define cups-minimal/fixed + (package + (inherit cups-minimal) + (source + (origin + (inherit (package-source cups-minimal)) + (patches + (search-patches "cups-minimal-Address-PPD-injection-issues.patch")))))) + (define-public cups (package/inherit cups-minimal (name "cups") diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 106d6372ee..784e633626 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1748,14 +1748,14 @@ types are supported, as is encryption.") (define-public emacs-rec-mode (package (name "emacs-rec-mode") - (version "1.9.3") + (version "1.9.4") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "rec-mode-" version ".tar")) (sha256 (base32 - "15m0h84fcrcxpx67mc9any4ap2dcqysfjm1d2a7sx4clx8h3mgk0")) + "0pi483g5qgz6gvyi13a4ldfbkaad3xkad08aqfcnmsdylvc9zzma")) (snippet #~(begin (delete-file "rec-mode.info"))))) (build-system emacs-build-system) (arguments diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index bbbcf92421..d7e8edabb2 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2018, 2020-2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> -;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +;;; Copyright © 2023, 2024 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,10 +25,12 @@ #:use-module (guix git-download) #:use-module (guix gexp) #:use-module (guix packages) + #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix build-system trivial) + #:use-module (gnu packages adns) #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) @@ -40,12 +42,14 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages gnupg) #:use-module (gnu packages guile) + #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages man) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages wget) #:use-module (srfi srfi-1) @@ -529,6 +533,54 @@ in installation scripts of Debian packages. The programs included are "The SMAIL General Public License, see debian/copyright for more information."))))) +(define-public apt-cacher-ng + (package + (name "apt-cacher-ng") + (version "3.7.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://salsa.debian.org/blade/apt-cacher-ng.git") + (commit "upstream/3.7.5"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wxqdmmm2gm27zng7v7lwai4zf6ppj26890r7z2ns237xx33jdp6")))) + (build-system cmake-build-system) + (inputs (list bzip2 ;optional + c-ares + libevent + openssl ;optional + xz ;optional + zlib)) + (native-inputs (list pkg-config)) + (arguments + (list + #:tests? #f ;Tests are "for development only". + #:phases #~(modify-phases %standard-phases + ;; We want to provide good defaults. Here apt-cacher-ng is built + ;; without libwrap support so we disable that by default. + (add-before 'configure 'patch-config + (lambda _ + (substitute* "conf/acng.conf.in" + (("# UseWrap: 0") + "UseWrap: 0"))))))) + (home-page "https://www.unix-ag.uni-kl.de/~bloch/acng/") + (synopsis "Caching proxy for packages of various software distributions or +repositories") + (description + "This package mainly meant for caching packages of Debian or Debian +based distributions (like Trisquel) through HTTP. It also has partial support +for HTTPS and other distributions / repositories (OpenSUSE, Arch Linux, +Sourceforge mirror network, Cygwin mirrors) as this requires more +configuration and comes with some limitations. Packages can be imported +manually either by copying files from another apt-cacher-ng instance or by +importing them from CD, DVD, jigdo, etc. While apt-cacher-ng can work offline, +it requires some online access before that to build valid index files. It also +supports partial mirroring. It can be configured through configuration files +and/or a web interface and/or a command line tool.") + (license license:gpl3+))) + (define-public apt-mirror (let ((commit "e664486a5d8947c2579e16dd793d762ea3de4202") (revision "1")) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index cc8e05746a..b8ddafaba6 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -518,7 +518,7 @@ server and embedded PowerPC, and S390 guests.") (package (inherit american-fuzzy-lop) (name "aflplusplus") - (version "4.09c") + (version "4.21c") (source (origin (method git-fetch) (uri (git-reference @@ -527,7 +527,7 @@ server and embedded PowerPC, and S390 guests.") (file-name (git-file-name name version)) (sha256 (base32 - "12bplpd8cifla6m9l130fd22ggzkhd1w5s1aifw1idpy3njhj129")))) + "0f6gd8r1fyc4lgdkldx4mg1b72h1xdvpdrb2c44r3y4f2i3hzb0c")))) (arguments (substitute-keyword-arguments (package-arguments american-fuzzy-lop) ((#:make-flags _ ''()) diff --git a/gnu/packages/decker.scm b/gnu/packages/decker.scm new file mode 100644 index 0000000000..fdea8ad272 --- /dev/null +++ b/gnu/packages/decker.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Jorge Acereda <jacereda@gmail.com> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + + +(define-module (gnu packages decker) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages sdl) + #:use-module (gnu packages vim) + #:use-module (guix build-system gnu) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix git-download) + #:use-module (guix packages)) + +(define-public decker + (package + (name "decker") + (version "1.49") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JohnEarnest/Decker") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hwi62g5wg7zxj98j3civz42za133jq3mz8c0mapqnkn0xnb0qa8")))) + (build-system gnu-build-system) + (arguments + (list + #:test-target "test" + #:make-flags #~(list (string-append "PREFIX=" #$output) + (string-append "COMPILER=" #$(cc-for-target))) + #:phases #~(modify-phases %standard-phases + (delete 'configure) ;no configure script + (replace 'build + (lambda* (#:key parallel-build? #:allow-other-keys) + (let ((job-count (if parallel-build? + (parallel-job-count) + 1))) + (invoke "make" "lilt" "decker" + "-j" (number->string job-count)))))))) + (native-inputs (list xxd)) + (inputs (list (sdl-union (list sdl2-image sdl2)))) + (home-page "http://beyondloom.com/decker/") + (synopsis "Multimedia sketchpad") + (description + "Decker is a multimedia platform for creating and sharing interactive +documents, with sound, images, hypertext, and scripted behavior.") + (license license:expat))) diff --git a/gnu/packages/dhall.scm b/gnu/packages/dhall.scm index e84ee7647f..3dde146e19 100644 --- a/gnu/packages/dhall.scm +++ b/gnu/packages/dhall.scm @@ -1,3 +1,4 @@ +;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 John Soo <jsoo1@asu.edu> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; diff --git a/gnu/packages/distributed.scm b/gnu/packages/distributed.scm index 7b37359f29..b07acfd863 100644 --- a/gnu/packages/distributed.scm +++ b/gnu/packages/distributed.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2023 Eric Bavier <bavier@posteo.net> +;;; Copyright © 2024 Vitalii Koshura <lestat.de.lionkur@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,7 +47,7 @@ (define-public boinc-client (package (name "boinc-client") - (version "7.22.2") + (version "8.0.2") (source (origin (method git-fetch) (uri (git-reference @@ -57,7 +58,7 @@ (file-name (git-file-name "boinc" version)) (sha256 (base32 - "06qlfrn9bxcdgs9b4j7l4mwikrkvfizccprip18rlzl3i34jys7l")))) + "1kmjxjyl32flp3k2996fvaizg5v9bxd7fin3x3ih2hbp4dvc8k3v")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index ffc8eda6bb..b2eda558df 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -144,7 +144,7 @@ protocol.") (define-public ldns (package (name "ldns") - (version "1.8.3") + (version "1.8.4") (source (origin (method url-fetch) @@ -152,12 +152,11 @@ protocol.") (string-append "https://www.nlnetlabs.nl/downloads/" "ldns/ldns-" version ".tar.gz")) (sha256 - (base32 "0q3q1svyxpj2g5wdkfy1ndb14m9fzffwyskflpihfabb0g8jvxy3")) + (base32 "0is25vgf4qncvhwf0jy79gk8m6a5fxm4d5byfv6z3bxsjisr12w3")) (patches - (search-patches - ;; To create make-flag variables, - ;; for splitting installation of drill and examples. - "ldns-drill-examples.patch")))) + ;; This patch adds the Guix-specific {drill,examples}{bin,man}dir make + ;; flags used below. + (search-patches "ldns-drill-examples.patch")))) (build-system gnu-build-system) (outputs '("out" "drill" "examples" "pyldns")) (arguments @@ -1280,7 +1279,7 @@ nameservers other than libc.") (define-public smartdns (package (name "smartdns") - (version "45") + (version "46") (source (origin (method git-fetch) (uri (git-reference @@ -1292,7 +1291,7 @@ nameservers other than libc.") ((".*SYSTEMDSYSTEMUNITDIR.*") ""))) (sha256 (base32 - "1f0j6d8vz1x2f4nr2w3q7azkjh8hlkj81v61a8sw1kq5160qhlb9")))) + "0kllf623x5g7zh81nm41y3k67vsnm7a0dcdhdm0l6q4wyvr4z4zc")))) (build-system gnu-build-system) (arguments (list #:test-target "test" diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index 2e1d219352..47cdc9668b 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -456,6 +456,7 @@ inspired by Dash.") (uri (git-reference (url "https://github.com/morgan3d/markdeep") (commit (string-append "v0" version)))) + (file-name (git-file-name name version)) (sha256 (base32 "05bvw3993xh1260ckclwk4jw38hvgiff0b2940ryhbhz0p1k41l8")))) (build-system copy-build-system) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 895ede25dd..459e160830 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -41,7 +41,7 @@ (define-public elixir (package (name "elixir") - (version "1.17.2") + (version "1.17.3") (source (origin (method git-fetch) @@ -50,7 +50,7 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "063pfz6ljy22b4nyvk8pi8ggqb6nmzqcca08vnl3h9xgh1zzddpj")) + (base32 "171l6g304044yk6i0827hgl64vp122ygn1wa1xqdjhw08b5kl2pd")) (patches (search-patches "elixir-path-length.patch")))) (build-system gnu-build-system) (arguments @@ -127,6 +127,14 @@ (lambda* (#:key inputs #:allow-other-keys) ;; Some tests require access to a home directory. (setenv "HOME" "/tmp"))) + ;; Temporarily skip several tests related to logger to pass + ;; under Erlang 27.1. For more info see: + ;; https://elixirforum.com/t/elixir-v1-17-3-released/66156/2 + (add-before 'check 'disable-some-logger-tests-for-erlang-27.1+ + (lambda _ + (substitute* "lib/logger/test/logger/translator_test.exs" + (("test \"translates Supervisor progress") + "@tag :skip\n test \"translates Supervisor progress")))) (delete 'configure) (add-after 'install 'wrap-programs (lambda* (#:key inputs outputs #:allow-other-keys) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 92e0275519..4e9ecbea48 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -31,7 +31,7 @@ ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org> -;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2017-2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com> ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2018, 2019, 2020, 2021 Pierre Neidhardt <mail@ambrevar.xyz> @@ -500,7 +500,7 @@ input via a small child-frame spawned at the position of the cursor.") (define-public emacs-geiser (package (name "emacs-geiser") - (version "0.31") + (version "0.31.1") (source (origin (method git-fetch) @@ -509,7 +509,7 @@ input via a small child-frame spawned at the position of the cursor.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1lxvgj50c3lbyib4lcv4f5xjhgnngnklc8sszrx5yy9snsrd1sn5")))) + (base32 "194k1bj4ncl9w68s0dkm9ya853hxbm9lxwsckqsmaj57jz7hw46f")))) (build-system emacs-build-system) (arguments '(#:phases @@ -586,21 +586,32 @@ API key.") (define-public emacs-chatgpt-shell (package (name "emacs-chatgpt-shell") - (version "1.3.1") + (version "1.6.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/xenodium/chatgpt-shell") - (commit "1de7bfa6a34f20cca813006282d9a8f2ef291f95"))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1rabpp70qlmc47lmp2v7ckvfjhy6wkk881fxpbv2dchzhn77qk5r")))) + "1cpfjy47h4xnrk1g7hgxyxc5dwz30xy89ch37ab38nvaqv5ajlqd")))) (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + ;; This phase prevents build phase failure. + (add-before 'build 'generate-empty-config-file + (lambda _ + (setenv "HOME" (getcwd)) + (mkdir-p ".emacs.d") + (call-with-output-file ".emacs.d/.chatgpt-shell.el" + (lambda (port) + (display "nil" port)))))))) (home-page "https://github.com/xenodium/chatgpt-shell") - (synopsis "ChatGPT and DALL-E Emacs shells + Org Babel") + (synopsis "ChatGPT and DALL-E Emacs shells and Org Babel libraries") (description - "chatgpt-shell is a comint-based ChatGPT shell for Emacs.") + "Chatgpt Shell is a Comint-based ChatGPT shell for Emacs.") (license license:gpl3+))) (define-public emacs-geiser-guile @@ -1244,8 +1255,8 @@ when typing parentheses directly or commenting out code line by line.") (define-public emacs-puni ;; No tagged release upstream - (let ((commit "28836e98d5566172b1a94d7b38290d07b49201b2") - (revision "1")) + (let ((commit "72e091ef30e0c9299dbcd0bc4669ab9bb8fb6e47") + (revision "2")) (package (name "emacs-puni") (version (git-version "0" revision commit)) @@ -1257,7 +1268,7 @@ when typing parentheses directly or commenting out code line by line.") (file-name (git-file-name name version)) (sha256 (base32 - "1z35nzsqcp8q9nnka0d5gpiidl07qfqmd2giwnd3b3v7h3v1kwpz")))) + "1ns2r6nwakdnzjiq84qqzn85wwahc0k738awx9kxn9p0q2prpx5j")))) (build-system emacs-build-system) (propagated-inputs (list emacs-with-editor)) (home-page "https://github.com/AmaiKinono/puni") @@ -1467,6 +1478,7 @@ its mode line.") (uri (git-reference (url "https://github.com/fritzgrabo/project-tab-groups.git") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 "1zg9kxyjz942ib9lii0in67hwqil2xlz78vjm1qqypw3zaivhh7p")))) (build-system emacs-build-system) @@ -1532,7 +1544,7 @@ configuration files, such as @file{.gitattributes}, @file{.gitignore}, and (define-public emacs-with-editor (package (name "emacs-with-editor") - (version "3.4.1") + (version "3.4.2") (source (origin (method git-fetch) @@ -1541,7 +1553,7 @@ configuration files, such as @file{.gitattributes}, @file{.gitignore}, and (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1hnc0jbjdpjr7xzh8gmhxkcbpw6mbla9vg8vy6py6mdk7ap1zqj8")))) + (base32 "1k86z7zjvs5mbxirxvn190ya7fj1vdzps5cm0659hh32373c1l7s")))) (build-system emacs-build-system) (arguments (list @@ -1686,7 +1698,7 @@ syntax for short lambda.") (define-public emacs-llm (package (name "emacs-llm") - (version "0.17.1") + (version "0.17.4") (source (origin (method git-fetch) (uri (git-reference @@ -1695,7 +1707,7 @@ syntax for short lambda.") (file-name (git-file-name name version)) (sha256 (base32 - "1c71p7a7lsq2xwg2jh021cfdgdp5q11sqb844flbf7pn2vdk6p07")))) + "0vq7209wi20jw28m4v0fsca2i9k6vqn844fqkpyc8c95ranm0c1l")))) (build-system emacs-build-system) (propagated-inputs (list emacs-plz)) (home-page "https://github.com/ahyatt/llm") @@ -1709,7 +1721,7 @@ before interacting with non-free LLMs.") (define-public emacs-magit (package (name "emacs-magit") - (version "4.0.0") + (version "4.1.0") (source (origin (method git-fetch) @@ -1718,7 +1730,7 @@ before interacting with non-free LLMs.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0xfwli031hk2c0f6gj6f5f7bd9awyq70dl2a1z8k2a1j9msg1s6k")))) + (base32 "09spm0r62y2n5kws3gl400wcci7q0a2gfq9lyx1z58gr6zj0b868")))) (build-system emacs-build-system) (arguments (list @@ -2454,7 +2466,7 @@ organizing remote Go repository clones.") (define-public emacs-ghub (package (name "emacs-ghub") - (version "4.0.0") + (version "4.1.0") (source (origin (method git-fetch) @@ -2463,7 +2475,7 @@ organizing remote Go repository clones.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1dnl4idvc96jv73gdsrp377m1782i5n0cq0y4s0mp4i1vqd5drj2")))) + (base32 "1xfa4hpnn8rrb51wn8fxf15hfxawwld3m7h8qhsii1g78di16abh")))) (build-system emacs-build-system) (arguments (list @@ -2987,6 +2999,7 @@ compile}.") (uri (git-reference (url "https://github.com/flymake/emacs-flymake-perlcritic") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 "1n2682ly8pw8sjj7bix4qjjxc5x396m6sxbv0k6vs93z4i1gy2qm")))) (build-system emacs-build-system) @@ -3422,6 +3435,7 @@ terminals.") (uri (git-reference (url "https://github.com/ybiquitous/rbs-mode") (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 "1ibn8246q0yqdnf3qdww9rvzac9gla7gzjj0n5j5x08brgj5ll2h")))) (build-system emacs-build-system) @@ -4639,7 +4653,7 @@ while paused.") (package (name "emacs-async") (home-page "https://github.com/jwiegley/emacs-async") - (version "1.9.8") + (version "1.9.9") (source (origin (method git-fetch) (uri (git-reference @@ -4648,7 +4662,7 @@ while paused.") (file-name (git-file-name name version)) (sha256 (base32 - "191bjmwg5bgih1322n4q4i2jxx7aa3cb9lx0ymkwc3r2bdhkn0lp")))) + "0krg7n8l3yv1fnixnx6j5imdh10jpfabm6ym9s1s610hp47gpfaz")))) (build-system emacs-build-system) (arguments `(#:tests? #t @@ -5121,7 +5135,7 @@ be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.") (define-public emacs-cape (package (name "emacs-cape") - (version "1.6") + (version "1.7") (source (origin (method git-fetch) @@ -5130,7 +5144,7 @@ be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0bkkb4fpga7r0rmyj8i621xmn5s0l7w49xyj1byy8z4rgl73zlhb")))) + (base32 "0dr7x258n9px15cr90bd2877dc8hzy726g0h6vix284w675c2nvi")))) (build-system emacs-build-system) (arguments (list @@ -5373,7 +5387,7 @@ the Font Lock keywords.") (define-public emacs-fontaine (package (name "emacs-fontaine") - (version "2.0.0") + (version "2.1.0") (source (origin (method git-fetch) (uri (git-reference @@ -5382,7 +5396,7 @@ the Font Lock keywords.") (file-name (git-file-name name version)) (sha256 (base32 - "1fm6lw1jyy5vv314y2qhzcav9fmpgf333xrlwfdyi86z6z6f2fyy")))) + "0v762qcwy6sf0zyn8mmvm9dvwrz7hhpq9d80fsfpm1gzw59c4xy8")))) (build-system emacs-build-system) (home-page "https://github.com/protesilaos/fontaine") (synopsis "Set Emacs font configurations using presets") @@ -6905,32 +6919,30 @@ representation.") (license license:gpl2+)))) (define-public emacs-git-gutter - (let ((commit "ec28e85d237065cb3c28db4b66d129da6d309f9c") - (revision "0")) - (package - (name "emacs-git-gutter") - (version (git-version "0.92" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/syohex/emacs-git-gutter") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1fx3jp65ibcsv8akd8g4k701cs8yq0sg1bd2qszzfh6lvc4pblmi")))) - (build-system emacs-build-system) - (home-page "https://github.com/syohex/emacs-git-gutter") - (synopsis "See and manage hunks of text in a version control system") - (description - "This package is an Emacs minor mode for displaying and interacting with + (package + (name "emacs-git-gutter") + (version "0.93") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/syohex/emacs-git-gutter") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qjp1gind95py0zfc3a32j7g6bmdh0pszpyiazqqzxm3rz82m7rn")))) + (build-system emacs-build-system) + (home-page "https://github.com/syohex/emacs-git-gutter") + (synopsis "See and manage hunks of text in a version control system") + (description + "This package is an Emacs minor mode for displaying and interacting with hunks of text managed in a version control system. Added modified and deleted areas can be indicated with symbols on the edge of the buffer, and commands can be used to move between and perform actions on these hunks. Git, Mercurial, Subversion and Bazaar are supported, and many parts of the display and behaviour is easily customisable.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-git-gutter-fringe (let ((commit "648cb5b57faec55711803cdc9434e55a733c3eba") @@ -7181,7 +7193,7 @@ intended to be.") (define-public emacs-ef-themes (package (name "emacs-ef-themes") - (version "1.7.0") + (version "1.8.0") (source (origin (method git-fetch) @@ -7191,7 +7203,7 @@ intended to be.") (file-name (git-file-name name version)) (sha256 (base32 - "0m7l3f4mn8xi4hv38fkm21xhs0idpb9idkj1ci0jnmcl5x6ggzxn")))) + "1991g2vkji9vxcc8akd65s33sq3a5qzih4cq2pdfnpjf6b0inrjs")))) (build-system emacs-build-system) (home-page "https://git.sr.ht/~protesilaos/ef-themes") (synopsis "Colorful and legible themes") @@ -7545,6 +7557,26 @@ detecting specific uses of Ruby, e.g. when using rails, and using a appropriate console.") (license license:gpl3+))) +(define-public emacs-chruby-el + (let ((version "1.0") + (commit "42bc6d521f832eca8e2ba210f30d03ad5529788f") + (revision "0")) + (package + (name "emacs-chruby-el") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/plexus/chruby.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 (base32 "06pvjw40qk017py9km26vjrh90acycnkr5r04nxf664qqkjlg2mc")))) + (build-system emacs-build-system) + (home-page "https://github.com/plexus/chruby.el") + (synopsis "Emacs support for the Chruby version switcher for Ruby") + (description "This packages lets you switch Ruby versions using chruby.") + (license license:gpl3+)))) + ;; Package has no release. Version is extracted from "Version:" keyword in ;; main file. (define-public emacs-zeno-theme @@ -9326,18 +9358,18 @@ user.") (define-public emacs-subed (package (name "emacs-subed") - (version "1.2.14") + (version "1.2.15") (source (origin (method url-fetch) (uri (string-append "https://elpa.nongnu.org/nongnu/subed-" version ".tar")) (sha256 (base32 - "0kzb054radxq9hqviadmbr4cln39yp7yz4inq4ip52rd3qdm8vy4")))) + "08b1ln5idclxr8jdq7san05lf3sm3iqg56v7h0yjdsxfjaqbw00a")))) (arguments (list #:tests? #t - #:test-command #~(list "make" "test-only"))) + #:test-command #~(list "buttercup" "-L" "."))) (native-inputs (list emacs-buttercup)) (inputs (list ffmpeg)) (build-system emacs-build-system) @@ -9732,6 +9764,7 @@ correct movement and editing than you would otherwise have.") (uri (git-reference (url "https://github.com/emacs-compat/compat") (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 "0rw4j8caiyah7k6pml8bwxd9zs6q7mlqq3lvrm013vimw2js3d12")))) @@ -12507,7 +12540,7 @@ interface.") (define-public emacs-orderless (package (name "emacs-orderless") - (version "1.1") + (version "1.2") (source (origin (method git-fetch) @@ -12515,7 +12548,7 @@ interface.") (url "https://github.com/oantolin/orderless") (commit version))) (sha256 - (base32 "1gc3ysa1yhi6pz8bafbdpj0avdhms0rfd1r3k5mrhnm8mgh6zq8q")) + (base32 "0yqnbcrf8ai1fivd13d8w619qwjd51rf4pqyakqp2kf02z7m4kpb")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (arguments @@ -12527,8 +12560,8 @@ interface.") (invoke "makeinfo" "orderless.texi") (install-file "orderless.info" (string-append #$output "/share/info"))))))) - (native-inputs - (list texinfo)) + (native-inputs (list texinfo)) + (propagated-inputs (list emacs-compat)) (home-page "https://github.com/oantolin/orderless") (synopsis "Emacs completion style that matches multiple regexps in any order") (description "This package provides an orderless completion style that @@ -12600,14 +12633,14 @@ completion using Consult.") (define-public emacs-consult-denote (package (name "emacs-consult-denote") - (version "0.1.1") + (version "0.2.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/consult-denote-" version ".tar")) (sha256 - (base32 "0yhf9fifas87rs4wdapszbpx1xqyq44izjq7vzpyvdlh5a5fhhx1")))) + (base32 "15hih62a6lyfgw3ha86hppc9wp468gslrdcnx8kcz0dlkvp0k1kx")))) (build-system emacs-build-system) (propagated-inputs (list emacs-consult emacs-denote)) (home-page "https://github.com/protesilaos/consult-denote") @@ -12738,39 +12771,44 @@ call.") (license license:gpl3+))) (define-public emacs-eglot-tempel - (let ((commit "e08b203d6a7c495d4b91ed4537506b5f1ea8a84f") - (revision "0")) - (package - (name "emacs-eglot-tempel") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fejfighter/eglot-tempel") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0f4m0bb1f91x9jqfc0ny95a3pfh1mzzjzdjpa6f548hynq8j34ib")))) - (build-system emacs-build-system) - (arguments - (list - #:tests? #true - #:test-command #~(list "emacs" "-Q" "-batch" - "-l" "eglot-tempel-tests.el" - "-f" "ert-run-tests-batch-and-exit"))) - (native-inputs (list emacs-ert-runner)) - (propagated-inputs (list emacs-eglot emacs-tempel)) - (home-page "https://github.com/fejfighter/eglot-tempel") - (synopsis "Bridge for Tempel templates with Eglot") - (description "This package is an adapter to use the Tempel templating + (package + (name "emacs-eglot-tempel") + (version "0.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fejfighter/eglot-tempel") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nbx0k6ly207j9lv686mqa554rhqpfxm6smgfqrdyrrfj6674zr8")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command #~(list "emacs" "-Q" "-batch" + "-l" "eglot-tempel-tests.el" + "-f" "ert-run-tests-batch-and-exit") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'skip-failing-test + (lambda _ + (substitute* "eglot-tempel-tests.el" + (("\\(ert-deftest test-named .*" all) + (string-append all " (skip-unless nil)")))))))) + (native-inputs (list emacs-ert-runner)) + (propagated-inputs (list emacs-eglot emacs-peg emacs-tempel)) + (home-page "https://github.com/fejfighter/eglot-tempel") + (synopsis "Bridge for Tempel templates with Eglot") + (description "This package is an adapter to use the Tempel templating library with Eglot instead of Yasnippet.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-eglot-jl (package (name "emacs-eglot-jl") - (version "2.3.0") + (version "2.4.0") (source (origin (method git-fetch) @@ -12781,7 +12819,7 @@ library with Eglot instead of Yasnippet.") (file-name (git-file-name name version)) (sha256 (base32 - "144q4fj3am165vf1vx2ljlsmpn8vvvs1b95qi3rxlwqskkx0lig3")))) + "1xy6lssg5x8m2d5802in2b5nl5wrcxz4pilw85kk0mc8640kg2ma")))) (build-system emacs-build-system) (arguments (list #:include #~(cons "\\.(jl|toml)$" %default-include))) (propagated-inputs (list emacs-eglot)) @@ -12988,7 +13026,7 @@ regardless of @code{highlight-symbol-idle-delay}. (define-public emacs-symbol-overlay (package (name "emacs-symbol-overlay") - (version "4.2") + (version "4.3") (source (origin (method git-fetch) @@ -12997,7 +13035,7 @@ regardless of @code{highlight-symbol-idle-delay}. (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2")))) + (base32 "0xqzn4j27xny3gmjan9phcl60zipp49p79nv57i7mpz8y0qahc59")))) (build-system emacs-build-system) (home-page "https://github.com/wolray/symbol-overlay") (synopsis "Highlight symbols and perform various search operations on them") @@ -13411,6 +13449,7 @@ line program.") (uri (git-reference (url "https://github.com/ruby/elisp-ruby-electric") (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 "1p0l0fsn0jcgb4raimyc4d1wpfksrfhn0rkwdazadvm6s8baydf7")))) (build-system emacs-build-system) @@ -13547,7 +13586,7 @@ hydras with one column per group of heads."))) (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar")) (sha256 - (base32 "1zjksh0jvxyqhzgwmh9i26gaip6c04q400xckh730r2gjs287pjj")))) + (base32 "1h9gfkkcw9nfw85m0mh08qfmi2y0jkvdk54qx0iy5p04ysmhs6k1")))) (build-system emacs-build-system) (propagated-inputs (list)) @@ -14388,6 +14427,7 @@ builtin JavaScript mode.") (uri (git-reference (url "https://github.com/emacsorphanage/qt-pro-mode") (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 "07054hzl7gd0wfibcqvij2wx9zji330gsryn53qad9gyalvlavpa")))) (build-system emacs-build-system) @@ -16142,7 +16182,7 @@ ack, ag, helm and pt.") (define-public emacs-helm (package (name "emacs-helm") - (version "3.9.9") + (version "4.0") (source (origin (method git-fetch) @@ -16151,7 +16191,7 @@ ack, ag, helm and pt.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "14wpfsxs9k0d6184d0laz1w11z9x2rmdii4kx4vfkd1qg0jglg7v")))) + (base32 "0il5npxw8wrpbwd8nyf9q9yxxd5plh3zl45m04w0wj4lpz9sqz7w")))) (build-system emacs-build-system) (propagated-inputs (list emacs-async emacs-popup)) @@ -17532,7 +17572,7 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "9.7.10") + (version "9.7.11") (source (origin (method git-fetch) @@ -17541,7 +17581,7 @@ passive voice.") (commit (string-append "release_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0wa9ah2mj6692zyycyhk3nks0q0qmwbz5765sr0a0cr7fbg2cgvq")))) + (base32 "0m8pw0ps40cziqpsj7l7h3hi3ab4631kavyvik59x8gwhbzcwapm")))) (build-system emacs-build-system) (arguments (list @@ -17622,13 +17662,16 @@ passive voice.") (description "Org is an Emacs mode for keeping notes, maintaining TODO lists, and project planning with a fast and effective lightweight markup language. It also is an authoring system with unique support for literate -programming and reproducible research.") +programming and reproducible research. If you work with the LaTeX output +capabilities of Org-mode, you may want to install the +@code{emacs-org-texlive-collection} meta-package, which propagates the TexLive +components required by the produced @file{.tex} file.") (license license:gpl3+))) (define-public emacs-org-contrib (package (name "emacs-org-contrib") - (version "0.5") + (version "0.6") (source (origin (method git-fetch) @@ -17637,7 +17680,7 @@ programming and reproducible research.") (commit (string-append "release_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1iwzxaxn4nc78xn8g13xk081fbqmkxw1hsjvlkpms43xzwpdig5a")))) + (base32 "08m3aa8vsrlkacbvindjwqzviv5r8i9a0vzsrl8rx01xq5b0zd42")))) (build-system emacs-build-system) (arguments `(#:phases @@ -17655,6 +17698,30 @@ receive little if no maintenance and there is no guaranty that they are compatible with the Org stable version.") (license license:gpl3+))) +(define-public emacs-org-texlive-collection + (package + (name "emacs-org-texlive-collection") + (source #f) + (version (package-version emacs-org)) + (build-system trivial-build-system) + (arguments (list #:builder #~(mkdir #$output))) + (native-inputs '()) + (inputs '()) + (propagated-inputs + (list texlive-capt-of + ;; The latexrecommended collection provides fontspec, amsmath, + ;; hyperref, graphicx, tools, etc. + texlive-collection-latexrecommended + texlive-soul + texlive-standalone + texlive-ulem + texlive-wrapfig)) + (home-page (package-home-page emacs-org)) + (synopsis "Basic TeX Live packages for Org mode LaTeX export") + (description "This meta-package propagates the TeX Live packages minimally +required by the LaTeX output produced by Org mode.") + (license (license:fsf-free "https://www.tug.org/texlive/copying.html")))) + (define-public emacs-org-contacts ;; XXX: Upstream does not tag version bumps. Commit below matches latest ;; version bump. @@ -18155,7 +18222,7 @@ you to deal with multiple log levels.") (define-public emacs-denote (package (name "emacs-denote") - (version "3.0.8") + (version "3.1.0") (source (origin (method git-fetch) @@ -18164,7 +18231,7 @@ you to deal with multiple log levels.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1lmnb20pw7fh6mpw5jg11m8z550w0xci63pi92mfgwn0p10wn7h9")))) + (base32 "0g9ciqgkipm6ag5nvyvaz0wc51hpk0wh2wwiqaybdfhzja8bbqx6")))) (build-system emacs-build-system) (native-inputs (list texinfo)) (home-page "https://protesilaos.com/emacs/denote/") @@ -18347,7 +18414,7 @@ are common in Chromium-derived projects.") (define-public emacs-gnosis (package (name "emacs-gnosis") - (version "0.4.1") + (version "0.4.3") (source (origin (method git-fetch) @@ -18356,7 +18423,7 @@ are common in Chromium-derived projects.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0c8gal7lfibaryb5w85zcmzpmvifdjp959v5bcjxjl37cdws0cnd")))) + (base32 "0kp4vwzldcyf7c8dqjrfrqgwkfysiy8n8zc4c1j1p72p0m4rxwv8")))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat emacs-emacsql)) (home-page "https://thanosapollo.org/projects/gnosis") @@ -18544,6 +18611,7 @@ Additionally it can display the number of unread emails in the mode line.") (uri (git-reference (url "https://github.com/Alexander-Miller/mu4e-column-faces.git") (commit "1bbb646ea07deb1bd2daa4c6eb36e0f65aac40b0"))) + (file-name (git-file-name name version)) (sha256 (base32 "12cb37lj8j1fd5kp3gbnzgknb57j5l8xgrnhb60ysff66m1mbrr7")))) (build-system emacs-build-system) @@ -18981,7 +19049,7 @@ on Dired and image-mode.") (define-public emacs-diredfl (package (name "emacs-diredfl") - (version "0.4") + (version "0.5") (source (origin (method git-fetch) @@ -18991,7 +19059,7 @@ on Dired and image-mode.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z")))) + (base32 "125a49ibbaicp6kxv0ja9mz9paryqgz30xhl0pk3kvnm8z40hlr6")))) (build-system emacs-build-system) (home-page "https://github.com/purcell/diredfl/") (synopsis "Extra Emacs font lock rules for a more colourful Dired") @@ -19512,7 +19580,7 @@ to the home page or read the comments in the source file, (define-public emacs-htmlize (package (name "emacs-htmlize") - (version "1.56") + (version "1.58") (source (origin (method git-fetch) @@ -19521,7 +19589,7 @@ to the home page or read the comments in the source file, (commit (string-append "release/" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "14m8si49br62lgx7asdyp9jysq0v6midrfk32sxy521ydqmqr3c1")))) + (base32 "0xkp4sscrz6mpk96vhc59xp94ynfdyalq8npr1g8f6s32xavsga4")))) (build-system emacs-build-system) (home-page "https://github.com/hniksic/emacs-htmlize") (synopsis "Convert buffer text and decorations to HTML") @@ -19766,7 +19834,7 @@ in Emacs.") (define-public emacs-php-mode (package (name "emacs-php-mode") - (version "1.25.1") + (version "1.26.1") (home-page "https://github.com/emacs-php/php-mode") (source (origin @@ -19776,7 +19844,7 @@ in Emacs.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1pxv4c63dma1il6w8vl2485yddp0ngm3gvfdqwjjszanfdxa4fg1")))) + (base32 "12skkn3i5qvlfnifgyp3sm4yjikphckj98y73vhxn73zzbn2lw6m")))) (build-system emacs-build-system) (arguments (list @@ -20010,15 +20078,16 @@ methods from a given list.") (define-public emacs-mini-echo (package (name "emacs-mini-echo") - (version "0.11.1") + (version "0.13.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/liuyinz/mini-echo.el") (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1n00jpr6hyv1hwx36whpim6kzrybk236fhzj6dgnm6icarfmfzfa")))) + (base32 "0f9jwiy6syl8y0g0q11g9m6x1v4fmn8gahg0l3y2ygkz9kdwkpd3")))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash emacs-hide-mode-line)) (home-page "https://github.com/liuyinz/mini-echo.el") @@ -20055,14 +20124,14 @@ the center of the screen and not at the bottom.") (define-public emacs-posframe (package (name "emacs-posframe") - (version "1.4.3") + (version "1.4.4") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "posframe-" version ".tar")) (sha256 - (base32 "1kw37dhyd6qxj0h2qpzi539jrgc0pj90psf2k58z4jc9199bgsax")))) + (base32 "18cvfr2jxwsnsdg9f8wr0g64rkk6q1cc4gchrw76lnnknanidpk7")))) (build-system emacs-build-system) ;; emacs-minimal does not include the function font-info. (arguments @@ -20512,7 +20581,7 @@ a point. The plugin provides visual feedback for marked regions.") (define-public emacs-key-chord (package (name "emacs-key-chord") - (version "0.7") + (version "0.7.1") (source (origin (method git-fetch) @@ -20522,7 +20591,7 @@ a point. The plugin provides visual feedback for marked regions.") (file-name (git-file-name name version)) (sha256 (base32 - "0r3zvq1z79csgcq0mgifdakx0z0li3haxk4wxvijwxllfb9kn22g")))) + "1ikg1kfyb8rgms5yvvg4117kmzw2jlq8h1wyq2l93my99c5qwm2g")))) (build-system emacs-build-system) (home-page "https://www.emacswiki.org/emacs/key-chord.el") (synopsis "Map pairs of simultaneously pressed keys to Emacs commands") @@ -22150,7 +22219,7 @@ groups.") (define-public emacs-taxy-magit-section (package (name "emacs-taxy-magit-section") - (version "0.14") + (version "0.14.1") (source (origin (method url-fetch) (uri (string-append @@ -22158,7 +22227,7 @@ groups.") ".tar")) (sha256 (base32 - "13xwhqlvzfkm5gpprv683r8jri6wy54bhbzg3wiw3m020hqw6ygi")))) + "03dldc28qpilra4ifpv4p51zp20bl8z87mikv8nwaqz05dm3mmly")))) (build-system emacs-build-system) (propagated-inputs (list emacs-magit emacs-taxy)) (home-page "https://github.com/alphapapa/taxy.el") @@ -22318,14 +22387,14 @@ write applications that use WebSockets, and is not useful by itself.") (define-public emacs-oauth2 (package (name "emacs-oauth2") - (version "0.16") + (version "0.17") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "oauth2-" version ".tar")) (sha256 - (base32 "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316")))) + (base32 "0ah0h3k6hiqm977414kyg96r6rrvnwvik3hz3ra3r0mxx7lksqha")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/oauth2.html") (synopsis "OAuth 2.0 authorization protocol implementation") @@ -23678,7 +23747,7 @@ match and total match information in the mode-line in various search modes.") (define-public emacs-pg (package (name "emacs-pg") - (version "0.39") + (version "0.42") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/emarsden/pg-el") @@ -23686,7 +23755,7 @@ match and total match information in the mode-line in various search modes.") (file-name (git-file-name name version)) (sha256 (base32 - "1b5dg04pd5s5pq71yc3isl312y1fw88pjvnk8bgjc1f06xhjlrj4")))) + "1afyjzrb1q207as2vc9j3cjvr6f3d3zgajzisl3x3mv0kb0bk3jy")))) (build-system emacs-build-system) (propagated-inputs (list emacs-peg)) (home-page "https://github.com/emarsden/pg-el") @@ -23699,6 +23768,27 @@ equivalent Emacs Lisp type. This is a low level API, and won't be useful to end users.") (license license:gpl2+))) +(define-public emacs-pgmacs + (package + (name "emacs-pgmacs") + (version "0.42") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emarsden/pgmacs.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pf8y64hka1fl47dphmh4xgxiwfsd0g4q2fazq5yc48zwr9nsf02")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-pg)) + (synopsis "emacs PostgreSQL client") + (description "This package provides a PostgreSQL client in emacs.") + (home-page "https://github.com/emarsden/pgmacs") + (license license:gpl3+))) + (define-public emacs-finalize (package (name "emacs-finalize") @@ -23725,7 +23815,7 @@ object has been freed.") (define-public emacs-emacsql (package (name "emacs-emacsql") - (version "4.0.1") + (version "4.0.3") (source (origin (method git-fetch) @@ -23734,7 +23824,7 @@ object has been freed.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1d7628rmb5wwvafrn3m3f8z3mb696wklwlcds71j8l5x782wh8hf")))) + (base32 "15nmp5dl2a1iyc99wlaywclnqsi2p34vgrp2x62671ccxnvzg8ii")))) (build-system emacs-build-system) (arguments (list @@ -23837,7 +23927,7 @@ match your personal coding style.") (define-public emacs-epkg (package (name "emacs-epkg") - (version "4.0.0") + (version "4.0.1") (source (origin (method git-fetch) @@ -23846,7 +23936,7 @@ match your personal coding style.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0w06bpwbwsl3diypywfzrwp6l0kr3h34xja34xssym2bmdl11z8p")))) + (base32 "1sja71lzr1k1kh1332n03zy2gyjjywc3rip9ylmd85s9kg6im9hj")))) (build-system emacs-build-system) (arguments `(#:phases @@ -24204,19 +24294,19 @@ work Nicolas Rougier.") (define-public emacs-org-make-toc (package (name "emacs-org-make-toc") - (version "0.5") + (version "0.6") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/alphapapa/org-make-toc") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr")))) + "0b3ixh8cqp9id1q1h2l6pl05n7vzk7ffp3ms5kxg8bvbn1l3c77l")))) (build-system emacs-build-system) (propagated-inputs - (list emacs-org emacs-dash emacs-s)) + (list emacs-compat emacs-dash emacs-org emacs-s)) (home-page "https://github.com/alphapapa/org-make-toc") (synopsis "Maintain a table of contents for an Org file") (description "This package facilitates the creation and maintenance of @@ -24438,7 +24528,7 @@ interactive commands and functions, such as @code{completing-read}.") (define-public emacs-org-ql (package (name "emacs-org-ql") - (version "0.8.7") + (version "0.8.9") (source (origin (method git-fetch) (uri (git-reference @@ -24446,7 +24536,7 @@ interactive commands and functions, such as @code{completing-read}.") (commit (string-append "v" version)))) (sha256 (base32 - "0smk5affzlf0i4m10kx8mcffpysd61pjm4zidz2qdv5vsg3j9z50")) + "1mw07y82r3b9brphx2j8gj95rbs4632fgq0b79824zqpwm8m291j")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (arguments @@ -24595,7 +24685,7 @@ files to be expanded upon opening them.") (define-public emacs-ebib (package (name "emacs-ebib") - (version "2.42.2") + (version "2.43") (source (origin (method git-fetch) @@ -24604,7 +24694,7 @@ files to be expanded upon opening them.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1ib9jicj3hfwqz909fw4mzspbdg61g1kbi142r6qg99kaim5py2k")))) + (base32 "080n9k0r9w4hdcg5g89blyyr0c6q2jhwqn42fvizn6z8xkkn5cbp")))) (build-system emacs-build-system) (propagated-inputs (list emacs-biblio emacs-compat emacs-ivy emacs-parsebib)) @@ -26155,7 +26245,7 @@ powerful Org contents.") (define-public emacs-org-re-reveal (package (name "emacs-org-re-reveal") - (version "3.32.0") + (version "3.33.0") (source (origin (method git-fetch) @@ -26164,7 +26254,7 @@ powerful Org contents.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "02na8jxnncq98gkh3cqsikwjmang26yd9jm8irhd9rjnb2y2yyjn")))) + (base32 "09d0hy5nb485d3dd71a9dmjpbwvhj7zx1wwkl9hggc2gzj4f0snp")))) (build-system emacs-build-system) (propagated-inputs (list emacs-htmlize emacs-org)) @@ -26394,7 +26484,7 @@ and doesn't require memorisation of commands. (define-public emacs-logview (package (name "emacs-logview") - (version "0.17.4") + (version "0.18") (source (origin (method git-fetch) @@ -26403,7 +26493,7 @@ and doesn't require memorisation of commands. (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1jd2179wm44f1gxh8qsrnv6nldaz4xzgp4kpamjd53n928s16q10")))) + (base32 "0pfva621bgz7hgcdp6jp9fzvafxxjz1y9npjgkz7byydvy64j2vv")))) (propagated-inputs (list emacs-datetime emacs-extmap)) (build-system emacs-build-system) @@ -30354,7 +30444,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)") (define-public emacs-buttercup (package (name "emacs-buttercup") - (version "1.35") + (version "1.36") (source (origin (method git-fetch) @@ -30364,7 +30454,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)") (file-name (git-file-name name version)) (sha256 (base32 - "0s5c7ia7b873dr6rqljkb1z4bf84zb3p3wjvcvpjhdcnf67m5x10")))) + "1xa8nlvjhwq0ryz8n3f7i671zm5qfbvr7qs75m7d52rmv60zkajc")))) (build-system emacs-build-system) (arguments (list @@ -30974,7 +31064,7 @@ instances (play/pause, volume control, media selection, etc.) remotely.") (define-public emacs-navigel (package (name "emacs-navigel") - (version "0.7.0") + (version "1.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -30983,7 +31073,7 @@ instances (play/pause, volume control, media selection, etc.) remotely.") (file-name (git-file-name name version)) (sha256 (base32 - "0v9f7wb6yghds3hjj8x5di6gfa8n5kjwhav7la1ca2zwgs2c1a9p")))) + "0fszhjf6bj8frvlnim86sfv6sab3qyignxqh8x6i4bqgwnb6svkf")))) (build-system emacs-build-system) (arguments (list @@ -31611,6 +31701,26 @@ constant expressions.") (description "This package provides an Emacs interface for Docker.") (license license:gpl3+))) +(define-public emacs-kubed + (package + (name "emacs-kubed") + (version "0.4.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/eshelyaron/kubed.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0m389r7qmiynrxm19v68k2fmn1g4qd3f7xibqccsfsayj1xzxgqp")))) + (build-system emacs-build-system) + (synopsis "Kubernetes control") + (description "This packages provides a Kubernetes control interface +within emacs.") + (home-page "https://eshelyaron.com/man/kubed/") + (license license:gpl3+))) + (define-public emacs-dockerfile-mode (package (name "emacs-dockerfile-mode") @@ -32345,7 +32455,7 @@ as Emacs Lisp.") (define-public emacs-transient (package (name "emacs-transient") - (version "0.7.4") + (version "0.7.5") (source (origin (method git-fetch) (uri (git-reference @@ -32354,7 +32464,7 @@ as Emacs Lisp.") (file-name (git-file-name name version)) (sha256 (base32 - "0ad0qkcvc9w6ry8f4b6xrdy52vlxm8nrp67k2p97w6prhyfxbp7p")))) + "0h3sv74pbb5n1a83yqgaw50ah99z7jfv7znf1ipq9yzcll9fby71")))) (build-system emacs-build-system) (arguments `(#:tests? #f ;no test suite @@ -32384,7 +32494,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".") (define-public emacs-forge (package (name "emacs-forge") - (version "0.4.1") + (version "0.4.3") (source (origin (method git-fetch) @@ -32393,7 +32503,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1kn3n1a6gdsd0l2v831sh43cly4p8s1snn494gdd23cw4jkk3qsv")))) + (base32 "1hygvyjpbbgv779rypy65qwq55gddbc5wz2j19h05pbr4yhf51jk")))) (build-system emacs-build-system) (arguments `(#:tests? #f ;no tests @@ -32977,39 +33087,38 @@ keypresses mapped in firefox to the action described in the function name.") (license (list license:gpl3+))))) (define-public emacs-exwm-firefox - (let ((commit "ba4044cf57f99656bbe1974278336b6abcb15497")) ;version bump - (package - (name "emacs-exwm-firefox") - (version "1.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://codeberg.org/emacs-weirdware/exwm-firefox.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1x9hc94a5wygyw714q98jbk4kjvys2ra94qdc2cbgkm6iq982rvq")))) - (build-system emacs-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ (chdir "lisp")))) - #:tests? #true - #:test-command #~(list "emacs" "-Q" "--batch" - "-l" "../test/exwm-firefox--tests.el" - "-l" "exwm-firefox.el" - "-f" "ert-run-tests-batch-and-exit"))) - (inputs (list emacs-exwm emacs-exwm-firefox-core emacs-s)) - (home-page "https://codeberg.org/emacs-weirdware/exwm-firefox") - (synopsis "Enhanced support for Firefox under EXWM") - (description - "This package adds enhanced support for Firefox (and forks + (package + (name "emacs-exwm-firefox") + (version "1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/emacs-weirdware/exwm-firefox.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jrnsnygi9kwq17dfjpjksmijx39w7ccsk4gzk5l2cg7ncydsja2")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "lisp")))) + #:tests? #true + #:test-command #~(list "emacs" "-Q" "--batch" + "-l" "../test/exwm-firefox--tests.el" + "-l" "exwm-firefox.el" + "-f" "ert-run-tests-batch-and-exit"))) + (inputs (list emacs-exwm emacs-exwm-firefox-core emacs-s)) + (home-page "https://codeberg.org/emacs-weirdware/exwm-firefox") + (synopsis "Enhanced support for Firefox under EXWM") + (description + "This package adds enhanced support for Firefox (and forks based on Firefox) under EXWM. Keybindings intentionally mirror other Emacs navigation controls.") - (license (list license:gpl3+))))) + (license (list license:gpl3+)))) (define-public emacs-exwm-ss (let ((commit "b11d3df7a50c39b4e1b92ef8a6685cf80b53912c") @@ -33584,7 +33693,7 @@ all of your projects, then override or add variables on a per-project basis.") (define-public emacs-casual-avy (package (name "emacs-casual-avy") - (version "1.4.1") + (version "1.4.2") (source (origin (method git-fetch) @@ -33593,7 +33702,7 @@ all of your projects, then override or add variables on a per-project basis.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "120dnixi8if8v4s4xr0lilpbkikk93v5icf16fydsd143q8x81gg")))) + (base32 "1fdwkk1dck94lkfj78n1vmpfcd3jnv7nnwdqjws3bjj783r42nsj")))) (build-system emacs-build-system) (arguments (list @@ -33611,7 +33720,7 @@ all of your projects, then override or add variables on a per-project basis.") (define-public emacs-casual-calc (package (name "emacs-casual-calc") - (version "1.11.2") + (version "1.11.3") (source (origin (method git-fetch) @@ -33620,7 +33729,7 @@ all of your projects, then override or add variables on a per-project basis.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0arc034pxqgc0ic4x880fmdj9mr8cj4npd32aah90mlh1ys81zfa")))) + (base32 "0640hq1nc5n7y6jzkbf0qn8lmprzhzllzkna9zbiqkia4jxcp9ws")))) (build-system emacs-build-system) (arguments (list @@ -33638,7 +33747,7 @@ all of your projects, then override or add variables on a per-project basis.") (define-public emacs-casual-dired (package (name "emacs-casual-dired") - (version "1.8.0") + (version "1.8.1") (source (origin (method git-fetch) @@ -33647,7 +33756,7 @@ all of your projects, then override or add variables on a per-project basis.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "024dyyk05r9kpvjizcr3lqn5kz4kwv8vkp66h2q2bf0k03vaj40c")))) + (base32 "0dhhd72snhsmmhh5g9314fprdlrkrzlxha0vsnmrgyc2kqsnv6md")))) (build-system emacs-build-system) (arguments (list @@ -33665,7 +33774,7 @@ all of your projects, then override or add variables on a per-project basis.") (define-public emacs-casual-info (package (name "emacs-casual-info") - (version "1.3.1") + (version "1.3.2") (source (origin (method git-fetch) @@ -33674,7 +33783,7 @@ all of your projects, then override or add variables on a per-project basis.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1s23pzmx2l5cs8n43yimf0fizxi0g7km9nxmv98gazkqb6shbqpz")))) + (base32 "1sdcz39pw92nzdf6vgxg8phfs5saf07rvikjqqv0rf1zk6ss83ns")))) (build-system emacs-build-system) (arguments (list @@ -33692,7 +33801,7 @@ all of your projects, then override or add variables on a per-project basis.") (define-public emacs-casual-lib (package (name "emacs-casual-lib") - (version "1.1.2") + (version "1.1.3") (source (origin (method git-fetch) (uri (git-reference @@ -33701,7 +33810,7 @@ all of your projects, then override or add variables on a per-project basis.") (file-name (git-file-name name version)) (sha256 (base32 - "1y45iqswhib9bfwbqfmlvxmfdn0wcvyfy696skn2cr7sn2q0n8a3")))) + "1qzwzvrp94f2sw861q2jgjnil18m85nm0mryy92rdvijni2l0dj9")))) (build-system emacs-build-system) (arguments (list #:tests? #t @@ -34019,14 +34128,14 @@ well as an option for visually flashing evaluated s-expressions.") (define-public emacs-tramp (package (name "emacs-tramp") - (version "2.7.1.1") + (version "2.7.1.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "tramp-" version ".tar")) (sha256 - (base32 "1b14gwgfwx9n01mvbpi8q8lr9n4ik8lm580b8dvcaz456pm7bxb8")))) + (base32 "1kvamv0shj9ra3pnfkigbv05p62aw70di4gq4f24xhgpg2x04rp0")))) (build-system emacs-build-system) (arguments (list @@ -34574,14 +34683,14 @@ deletion of the frame.") (define-public emacs-xclip (package (name "emacs-xclip") - (version "1.11") + (version "1.11.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "xclip-" version ".tar")) (sha256 - (base32 "0hgblj8ng7vfsdb7g1mm9m2qhzfprycdd77836l59prpak5kp55q")))) + (base32 "0raqlpskjrkxv7a0q5ikq8dqf2h21g0vcxdw03vqcah2v43zxflx")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/xclip.html") (synopsis "Copy and paste GUI clipboard from Emacs in text terminal") @@ -35562,7 +35671,7 @@ Emacs that integrate with major modes like Org-mode.") (define-public emacs-modus-themes (package (name "emacs-modus-themes") - (version "4.4.0") + (version "4.5.0") (source (origin (method git-fetch) @@ -35571,7 +35680,7 @@ Emacs that integrate with major modes like Org-mode.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1vy6wyq8hv8fih4m8m1k9n7fdp913nmv0k5g8vppnjivmnrwfswy")))) + (base32 "04nr06w7zvvkk0m368pkp4pdlv6m91qnxizrvns2530prddb4c7i")))) (native-inputs (list texinfo)) (build-system emacs-build-system) (arguments @@ -37397,7 +37506,7 @@ launching other commands/applications from within Emacs, similar to the (define-public emacs-no-littering (package (name "emacs-no-littering") - (version "1.7.1") + (version "1.7.2") (source (origin (method git-fetch) @@ -37406,7 +37515,7 @@ launching other commands/applications from within Emacs, similar to the (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1ldsyzdnc79byg07j2fckh6m48iq8ffp19y6chhhi2dci35zard7")))) + (base32 "0crgl3jakhfhf8bm4wd82s1jyp8w00pa2irzjh778228fvzmhi5p")))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat)) @@ -38058,6 +38167,55 @@ as a plug-and-play solution for anyone already using Org mode for their personal wiki.") (license license:gpl3+)))) +(define-public emacs-org-node + (package + (name "emacs-org-node") + (version "1.1.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/meedstrom/org-node.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0l6xk760sjj384fv06ihiv5shq08ly17ap1vla7d307d7nag9c1n")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-dash + emacs-llama + emacs-org + emacs-persist + emacs-transient)) + (home-page "https://github.com/meedstrom/org-node") + (synopsis "Non-hierarchical note-taking with Org-mode, faster than +org-roam") + (description "This package provides a notetaking system like Roam, +using org mode; faster than org-roam.") + (license license:gpl3+))) + +(define-public emacs-org-super-links + (package + (name "emacs-org-super-links") + (version "0.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/toshism/org-super-links.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "025hlb8nqhn63y51ddjsclvyj9ys0bh4r0lycyc2jwpy9v79n10q")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-org)) + (synopsis "Create links with auto backlinks") + (description "This package provides functions that automatically create +backlinks when inserting a link.") + (home-page "https://github.com/toshism/org-super-links") + (license license:gpl3+))) + (define-public emacs-org-roam-bibtex (package (name "emacs-org-roam-bibtex") @@ -39908,20 +40066,18 @@ Validator service and displays the results in a buffer in Compilation mode.") (license license:gpl3+)))) (define-public emacs-volatile-highlights - ;; XXX: Upstream does not tag releases. Commit below matches version bump. - (let ((commit "9a20091f0ce7fc0a6b3e641a6a46d5f3ac4d8392")) - (package + (package (name "emacs-volatile-highlights") - (version "1.15") + (version "1.16") (source (origin - (method git-fetch) - (uri (git-reference - (url "http://github.com/k-talo/volatile-highlights.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1dsa6769lphyyv7yg92vkkpk395w52q4m7hdn8xy7s6lh5c6a955")))) + (method git-fetch) + (uri (git-reference + (url "http://github.com/k-talo/volatile-highlights.el") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0rlqwj6whxbvzgkf78d8arjva49aphj4bd2wkpv8djykcmi8nf6m")))) (build-system emacs-build-system) (home-page "http://github.com/k-talo/volatile-highlights.el") (synopsis "Emacs minor mode for visual feedback on some operations") @@ -39929,7 +40085,7 @@ Validator service and displays the results in a buffer in Compilation mode.") some operations by highlighting portions relating to the operations. All of highlights made by this library will be removed when any new operation is executed.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-global-tags (let ((commit "06db25d91cc8bfb5e24e02adc04de1226c7e742d") @@ -40743,8 +40899,8 @@ latest Emacs.") (define-public emacs-flim-lb ;; No release since Nov 28, 2007. - (let ((commit "abdd2315006eb31476249223569808adb1c0f7b2") - (revision "142")) + (let ((commit "23bb29d70a13cada2eaab425ef80071564586a6d") + (revision "143")) (package (name "emacs-flim-lb") (version (git-version "1.14.9" revision commit)) @@ -40756,7 +40912,7 @@ latest Emacs.") (file-name (git-file-name name version)) (sha256 (base32 - "1s21y0djlyiwmc1kz3dx19mdiq472ib07gdrw353imw5vmx3mp7d")))) + "14ihl59sj829hycbw182byk4npmrsmhcgl98j5v7i81vmxdfrcm9")))) (build-system emacs-build-system) (propagated-inputs (list emacs-apel-lb emacs-oauth2)) (home-page "https://www.emacswiki.org/emacs/WanderLust") @@ -40770,8 +40926,8 @@ Emacs.") (define-public emacs-semi-epg ;; No release since Dec 24, 2003. - (let ((commit "9063a4485b148a767ea924f0e7cc78d3524ba256") - (revision "248")) + (let ((commit "85a52b899ac89be504d9e38d8d406bba98f4b0b3") + (revision "250")) (package (name "emacs-semi-epg") (version (git-version "1.14.6" revision commit)) @@ -40783,7 +40939,7 @@ Emacs.") (file-name (git-file-name name version)) (sha256 (base32 - "18km8jdxjcqnh378xxd7ivvvcxzrif8zpq9zgki9i7f0q8lsx677")))) + "13sfwv889i99l5zv10ibzm221wvwbp3m45nf4nsr0dhvln90zrjj")))) (build-system emacs-build-system) (propagated-inputs (list emacs-flim-lb)) (inputs (list emacs-bbdb-vcard)) @@ -40797,8 +40953,8 @@ EasyPG and latest Emacs.") (define-public emacs-wanderlust ;; No release since Jan 15, 2010. - (let ((commit "9fd2c65e8d690625f35035a71e73f51f740dbe04") - (revision "818")) + (let ((commit "8a0ea2146ee919a5344bb25f198d45016bc716d9") + (revision "829")) (package (name "emacs-wanderlust") (version (git-version "2.15.9" revision commit)) @@ -40819,7 +40975,7 @@ EasyPG and latest Emacs.") (("package-user-dir") "NONE")))) (sha256 (base32 - "034zrl54ql3ddaj5vl62bjzf2a5hvrq5gd9kynmyp0skgk8i6dr2")))) + "1w57d6zcqxm6q7rsc6kz84idcpz15rr67jzmfbc2mfiprfvrip1j")))) (build-system emacs-build-system) (arguments (list #:phases diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 26f47dbf9d..db35c2532c 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -3845,7 +3845,7 @@ perform various useful functions such as: `(("boost" ,boost) ("cgal" ,cgal) ("eigen" ,eigen) - ("embree" ,embree) + ("embree" ,embree-3) ("glfw" ,glfw-3.4) ("gmp" ,gmp) ("mesa" ,mesa) diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 175bbdf8a5..e950d12dab 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -49,7 +49,7 @@ (define-public erlang (package (name "erlang") - (version "27.0.1") + (version "27.1.1") (source (origin (method git-fetch) ;; The tarball from http://erlang.org/download contains many @@ -61,25 +61,20 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1gzlvbbc1zm87910pnhi94mcpag1zxylhy7m2g4vhlmclyir7gd1")) + "1rm85y75202p6qkbqglqgfyvw0fnpdfx3h5i0k6pwqm62wh5g23r")) (patches (search-patches "erlang-man-path.patch")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) - ;; Erlang's documentation is distributed in a separate tarball. ("erlang-manpages" - ;; Manpages tarball is not released for 27.0.1, so we take it from the - ;; previous version. Details: - ;; https://erlangforums.com/t/patch-package-otp-27-0-1-released/3824/4 - ,(let ((version "27.0")) - (origin - (method url-fetch) - (uri (string-append "https://github.com/erlang/otp/releases/download" - "/OTP-" version "/otp_doc_man_" version ".tar.gz")) - (sha256 - (base32 - "0f3w2152090860aci4a38d1bd19c5sslbwadwxc7sjza487fm8lm"))))))) + ,(origin + (method url-fetch) + (uri (string-append "https://github.com/erlang/otp/releases/download" + "/OTP-" version "/otp_doc_man_" version ".tar.gz")) + (sha256 + (base32 + "1sc6akmy8bsmmrw2mzaq4ai2gxmbr1cywvyz4a826m4v0z6qr0hp")))))) (inputs (list ncurses openssl wxwidgets)) (propagated-inputs @@ -642,7 +637,7 @@ Erlang.") (define-public rebar3 (package (name "rebar3") - (version "3.23.0") + (version "3.24.0") (source (origin (method git-fetch) @@ -651,7 +646,7 @@ Erlang.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0jinjx3mk5j1kczxmblixbvhf24q0yfwih2ggs11x5ykmrqpbckl")))) + (base32 "1l73csyzxwinhrcsyb8hg2003v35yz6pv98inl3wg1j5587f071s")))) (build-system gnu-build-system) ;; TODO: remove vendored modules, install man-page, install lib(?) (arguments @@ -677,29 +672,14 @@ Erlang.") "eunit_formatters" "getopt" "hex_core" "erlware_commons" "parse_trans" "relx" "ssl_verify_fun" "providers")))) (delete 'configure) - ;; By default rebar3 produces escripts with embedded ZIP archives - ;; with files with current timestamps which is not suitable for - ;; reproducible builds. We fix it by setting predefined timestamps. + ;; Due to changes in Erlang 27.1 related to handling ZIP-archives + ;; we still need to patch rebar to make it generate reproducible + ;; escripts. (add-before 'build 'make-escriptize-reproducible (lambda _ - (let ((escriptize "apps/rebar/src/rebar_prv_escriptize.erl")) - (substitute* escriptize - (("\\[dir_entries\\(filename:dirname\\(Filename1\\)\\),") - (string-append "FilePath = filename:join(Dir, Filename)," - "{ok, FileInfo0} = file:read_file_info(FilePath)," - "DateTime = {{1970, 1, 1}, {0, 0, 1}}," - "FileInfo = FileInfo0#file_info{mtime = DateTime}," - "[dir_entries(filename:dirname(Filename1)),"))) - (substitute* escriptize - (((string-append - "\\{Filename1, file_contents\\(filename:join\\(Dir, " - "Filename\\)\\)\\}\\].")) - "{Filename1, file_contents(FilePath), FileInfo}].")) - (substitute* escriptize - (((string-append "\\[\\{FName,FBin\\} \\|\\| \\{FName,FBin\\} <- " - "Files, FBin =/= <<>>\\]\\.")) - (string-append "[{FName,FBin,FInfo} || {FName,FBin,FInfo} <- " - "Files, FBin =/= <<>>].")))))) + (substitute* "apps/rebar/src/rebar_prv_escriptize.erl" + (("mtime = DateTime") + "atime = DateTime,ctime = DateTime,mtime = DateTime")))) (replace 'build (lambda _ (setenv "HOME" (getcwd)) diff --git a/gnu/packages/fcitx.scm b/gnu/packages/fcitx.scm index b21b269926..11bf73610c 100644 --- a/gnu/packages/fcitx.scm +++ b/gnu/packages/fcitx.scm @@ -206,7 +206,7 @@ by the different predictive algorithms.") gtk+-2 gtk+ icu4c - iso-codes + iso-codes/pinned json-c libxkbfile libxml2 @@ -245,7 +245,7 @@ built-in.") ("gettext" ,gettext-minimal) ("gtk2" ,gtk+-2) ("gtk3" ,gtk+) - ("iso-codes" ,iso-codes))) + ("iso-codes" ,iso-codes/pinned))) (home-page "https://fcitx-im.org/wiki/Configtool") (synopsis "Graphic Fcitx configuration tool") (description diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm index 4ad7fa98ca..c4c2b565db 100644 --- a/gnu/packages/fcitx5.scm +++ b/gnu/packages/fcitx5.scm @@ -111,7 +111,7 @@ client.") ("gdk-pixbuf" ,gdk-pixbuf) ("gettext" ,gettext-minimal) ("glib" ,glib) - ("iso-codes" ,iso-codes) + ("iso-codes" ,iso-codes/pinned) ("json-c" ,json-c) ("libevent" ,libevent) ("libuuid" ,util-linux "lib") @@ -469,7 +469,7 @@ including input methods previous bundled inside Fcitx 4: xkeyboard-config libxkbfile gettext-minimal - iso-codes)) + iso-codes/pinned)) (native-inputs (list extra-cmake-modules pkg-config)) (home-page "https://github.com/fcitx/fcitx5-configtool") diff --git a/gnu/packages/fediverse.scm b/gnu/packages/fediverse.scm index 6c35f633d8..0a2fd0b001 100644 --- a/gnu/packages/fediverse.scm +++ b/gnu/packages/fediverse.scm @@ -31,6 +31,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages bash) #:use-module (gnu packages check) #:use-module (gnu packages curl) #:use-module (gnu packages databases) @@ -99,7 +100,7 @@ Features include: (define-public tuba (package (name "tuba") - (version "0.6.3") + (version "0.8.4") (source (origin (method git-fetch) @@ -108,7 +109,7 @@ Features include: (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1s1iq9bwv6wp4dyvrdjdbmj9sqj9zxa0c78swcw7nhmm3fksh3vz")))) + (base32 "1s36z85s14fp9gicvifvwm2wg13rpb02aqsaz25rx3wg4m0bs83f")))) (build-system meson-build-system) (arguments (list @@ -134,7 +135,8 @@ Features include: gsettings-desktop-schemas ; for the org.gnome.system.proxy schema pkg-config)) (inputs - (list gst-plugins-bad + (list bash-minimal ; for wrap-program + gst-plugins-bad gst-plugins-base gst-plugins-good gstreamer diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 7863b13447..059bdf67a9 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018, 2020–2022, 2024 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2017, 2018, 2021, 2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name> @@ -34,8 +34,10 @@ #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) + #:use-module (guix platform) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) @@ -58,6 +60,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) + #:use-module (gnu packages crates-io) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) @@ -85,6 +88,7 @@ #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) #:use-module (gnu packages maths) #:use-module (gnu packages man) #:use-module (gnu packages m4) @@ -589,10 +593,43 @@ from a mounted file system.") (home-page "http://www.gphoto.org/proj/gphotofs/") (license license:gpl2+))) -(define-public bcachefs-tools +(define bcachefs-tools-rust-target + (platform-rust-target (lookup-platform-by-target-or-system + (or (%current-target-system) + (%current-system))))) + +(define bcachefs-tools-target/release + (string-append "target/" bcachefs-tools-rust-target "/release")) + +(define bcachefs-tools-cargo-args + ;; Distinct from -MAKE-FLAGS for use with ‘cargo test’ in 'check. + #~(list "--release" + (string-append "--target=" #$bcachefs-tools-rust-target))) + +;; XXX We want to share common make flags across different packages & phases, +;; but the cargo-build-system doesn't allow #:make-flags. +(define bcachefs-tools-make-flags + ;; These result of these flags should be as minimal as possible. + ;; Enable any optional features in the bcachefs-tools package instead. + #~(list (string-append "CARGO_BUILD_ARGS=" + (string-join #$bcachefs-tools-cargo-args " ")) + (string-append "CC=" #$(cc-for-target)) + (string-append "PKG_CONFIG=" #$(pkg-config-for-target)))) + +(define bcachefs-tools-make-install-flags + #~(cons* (string-append "PREFIX=" #$output) + "INITRAMFS_DIR=$(PREFIX)/share/initramfs-tools" + "PKGCONFIG_UDEVRULESDIR=$(PREFIX)/lib/udev/rules.d" + #$bcachefs-tools-make-flags)) + +(define bcachefs-tools-minimal + ;; This ‘minimal’ package is not *that* minimal, and not different enough to + ;; export. It's used as-is only when cross-compiling, as an input to the + ;; public bcachefs-tools package that inherits from it to generate the shell + ;; completions by running a native bcachefs binary at build time. (package - (name "bcachefs-tools") - (version "1.4.1") + (name "bcachefs-tools-minimal") + (version "1.11.0") (source (origin (method git-fetch) @@ -601,91 +638,82 @@ from a mounted file system.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0axwbckqrw1v3v50nzhpkvpyjbjwy3rq5bv23db84x3xia497apq")))) - (build-system gnu-build-system) + (base32 "0m6z8z1cv78ay9yspypgr0kv70ck4wpln5n44f6n57i7sihqhrrg")))) + (build-system cargo-build-system) (arguments - (list #:make-flags - #~(list (string-append "VERSION=" #$version) ; ‘v…-nogit’ otherwise - (string-append "PREFIX=" #$output) - "INITRAMFS_DIR=$(PREFIX)/share/initramfs-tools" - "PKGCONFIG_UDEVRULESDIR=$(PREFIX)/lib/udev/rules.d" - (string-append "CC=" #$(cc-for-target)) - (string-append "PKG_CONFIG=" #$(pkg-config-for-target)) - ;; ‘This will be less of an option in the future, as more - ;; code gets rewritten in Rust.’ - "NO_RUST=better") - #:phases - #~(modify-phases %standard-phases - (delete 'configure) ; no configure script - (replace 'check - ;; The test suite is moribund upstream (‘never been useful’), - ;; but let's keep running it as a sanity check until then. - (lambda* (#:key tests? make-flags #:allow-other-keys) - (when tests? - ;; We must manually build the test_helper first. - (apply invoke "make" "tests" make-flags) - (invoke (string-append - #$(this-package-native-input "python-pytest") - "/bin/pytest") "-k" - ;; These fail (‘invalid argument’) on kernels - ;; with a previous bcachefs version. - (string-append "not test_format and " - "not test_fsck and " - "not test_list and " - "not test_list_inodes and " - "not test_list_dirent"))))) - (add-after 'install 'promote-mount.bcachefs.sh - ;; The (optional) ‘mount.bcachefs’ requires rust:cargo. - ;; This shell alternative does the job well enough for now. - (lambda* (#:key inputs #:allow-other-keys) - (define (whence file) - (dirname (search-input-file inputs file))) - (let ((mount (string-append #$output - "/sbin/mount.bcachefs"))) - (delete-file mount) ; symlink to ‘bcachefs’ - (copy-file "mount.bcachefs.sh" mount) - ;; WRAP-SCRIPT causes bogus ‘Insufficient arguments’ errors. - (wrap-program mount - `("PATH" ":" prefix - ,(list (getcwd) - (whence "bin/tail") - (whence "bin/awk") - (whence "bin/mount")))))))))) + (list + #:install-source? #f + ;; The Makefile CCs *every* C file anywhere beneath the build directory, + ;; even in Rust crates, creating ludicrous and totally bogus dependencies + ;; such as the Android SDK. Put our crates elsewhere. + #:vendor-dir "../guix-vendor" + #:cargo-inputs + `(("rust-aho-corasick" ,rust-aho-corasick-1) + ("rust-anstream" ,rust-anstream-0.6) + ("rust-anstyle" ,rust-anstyle-1) + ("rust-anstyle-parse" ,rust-anstyle-parse-0.2) + ("rust-anyhow" ,rust-anyhow-1) + ("rust-autocfg" ,rust-autocfg-1) + ("rust-bitfield" ,rust-bitfield-0.14) + ("rust-clap" ,rust-clap-4) + ("rust-clap-complete" ,rust-clap-complete-4) + ("rust-either" ,rust-either-1) + ("rust-errno" ,rust-errno-0.2) + ("rust-env-logger" ,rust-env-logger-0.10) + ("rust-libc" ,rust-libc-0.2) + ("rust-log" ,rust-log-0.4) + ("rust-memoffset" ,rust-memoffset-0.8) + ("rust-owo-colors" ,rust-owo-colors-4) + ("rust-rustix" ,rust-rustix-for-bcachefs-tools) + ("rust-strum" ,rust-strum-0.26) + ("rust-strum-macros" ,rust-strum-macros-0.26) + ("rust-udev" ,rust-udev-0.7) + ("rust-uuid" ,rust-uuid-1) + ("rust-zeroize" ,rust-zeroize-1)) + #:phases + #~(modify-phases %standard-phases + (replace 'build + (lambda* (#:key parallel-build? #:allow-other-keys) + (apply invoke "make" + "-j" (if parallel-build? + (number->string (parallel-job-count)) + "1") + (string-append "VERSION=" #$version) + #$bcachefs-tools-make-flags))) + (add-before 'install 'patch-install + ;; ‘make install’ hard-codes target/release/bcachefs, which is + ;; incorrect when passing --target, as required to cross-compile or + ;; even just link statically. We always pass it, so always patch. + (lambda _ + (substitute* "Makefile" + (("target/release") + #$bcachefs-tools-target/release)))) + (replace 'install + (lambda _ + (apply invoke "make" "install" + #$bcachefs-tools-make-install-flags)))))) (native-inputs - (cons* pkg-config - ;; For generating documentation with rst2man. - python - python-docutils - ;; For tests. - python-pytest - (if (member (%current-system) (package-supported-systems valgrind)) - (list valgrind) - '()))) + (list pkg-config)) (inputs - (list bash-minimal + (list clang eudev keyutils libaio libscrypt libsodium liburcu - `(,util-linux "lib") + `(,util-linux "lib") ;libblkid lz4 zlib - `(,zstd "lib") - - ;; Only for mount.bcachefs.sh. - bash-minimal - coreutils-minimal - gawk - util-linux)) + `(,zstd "lib"))) (home-page "https://bcachefs.org/") (synopsis "Tools to create and manage bcachefs file systems") (description - "The bcachefs-tools are command-line utilities for creating, checking, -and otherwise managing bcachefs file systems. + "This package provides the @command{bcachefs} command-line tool with many +subcommands for creating, checking, and otherwise managing bcachefs file +systems. Traditional aliases like @command{mkfs.bcachefs} are also included. -Bcachefs is a @acronym{CoW, copy-on-write} file system supporting native +@dfn{Bcachefs} is a @acronym{CoW, copy-on-write} file system supporting native encryption, compression, snapshots, and (meta)data checksums. It can use multiple block devices for replication and/or performance, similar to RAID. @@ -694,57 +722,133 @@ caching system, and lets you assign different roles to each device based on its performance and other characteristics.") (license license:gpl2+))) -(define-public bcachefs-tools/static +(define-public bcachefs-tools + ;; The final public package with shell completion even when cross-compiling, + ;; as well as optional features such as FUSE (‘bcachefs fusemount’). + (package + (inherit bcachefs-tools-minimal) + (name "bcachefs-tools") + (arguments + (substitute-keyword-arguments + (package-arguments bcachefs-tools-minimal) + ((#:modules modules '()) + `(,@modules + (guix build cargo-build-system) + (guix build utils) + (srfi srfi-26))) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-before 'build 'enable-fuse + (lambda _ + ;; This must be an environment variable, not a make flag! + (setenv "BCACHEFS_FUSE" "1"))) + (add-after 'install 'install-completions + (lambda* (#:key native-inputs #:allow-other-keys) + (define bcachefs + (or (false-if-exception (search-input-file native-inputs + "sbin/bcachefs")) + (string-append #$bcachefs-tools-target/release + "/bcachefs"))) + + (define (output-completions shell file) + (let ((output (string-append #$output "/" file))) + (mkdir-p (dirname output)) + (with-output-to-file output + (lambda _ + (invoke bcachefs "completions" shell))))) + + (for-each (cut apply output-completions <>) + '(("bash" + "share/bash-completion/completions/bcachefs") + ("fish" + "share/fish/vendor_completions.d/bcachefs.fish") + ("zsh" + "share/zsh/site-functions/_bcachefs"))))))))) + (native-inputs + (append (package-native-inputs bcachefs-tools-minimal) + (if (%current-target-system) + (list bcachefs-tools-minimal) + (list)))) + (inputs + (modify-inputs (package-inputs bcachefs-tools-minimal) + (append fuse))))) + +(define-public bcachefs-tools-minimal/static + ;; The static variant is public for consistency with the other file system + ;; tools packages, but ours is based on the private minimal package. We + ;; don't need/want a bcachefs with FUSE support in the initrd, and nobody + ;; is likely to complain about the lack of a non-minimal bcachefs-static… (package - (inherit bcachefs-tools) - (name "bcachefs-tools-static") + (inherit bcachefs-tools-minimal) + (name "bcachefs-tools-minimal-static") (arguments - (substitute-keyword-arguments (package-arguments bcachefs-tools) - ((#:make-flags make-flags) - #~(append #$make-flags - (list "LDFLAGS=-static"))))) - (inputs (modify-inputs (package-inputs bcachefs-tools) + (substitute-keyword-arguments (package-arguments bcachefs-tools-minimal) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-after 'configure 'set-rust-flags + (lambda _ + (setenv "RUSTFLAGS" (string-join + '("-C" "link-arg=-z" + "-C" "link-arg=muldefs" + "-C" "target-feature=+crt-static" + "-C" "relocation-model=static") + " ")))) + (replace 'build + (lambda* (#:key parallel-build? #:allow-other-keys) + (apply invoke "make" + "-j" (if parallel-build? + (number->string (parallel-job-count)) + "1") + (string-append "VERSION=" + #$(package-version this-package)) + #$bcachefs-tools-make-flags))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (apply invoke "cargo" "test" #$bcachefs-tools-cargo-args)))) + (replace 'install + (lambda _ + (apply invoke "make" "install" + (string-append "PREFIX=" #$output) + #$bcachefs-tools-make-install-flags))))))) + (inputs (modify-inputs (package-inputs bcachefs-tools-minimal) (prepend `(,eudev "static") `(,keyutils "static") `(,libscrypt "static") `(,lz4 "static") `(,util-linux "static") `(,zlib "static") - `(,zstd "static")))))) + `(,zstd "static")))) + (synopsis "Statically-linked, minimal variant of bcachefs-tools"))) (define-public bcachefs/static (package (name "bcachefs-static") - (version (package-version bcachefs-tools)) + (version (package-version bcachefs-tools-minimal/static)) (source #f) (build-system trivial-build-system) (arguments (list #:modules '((guix build utils)) #:builder #~(begin - (use-modules (guix build utils) - (ice-9 ftw) - (srfi srfi-26)) - (mkdir-p #$output) - (with-directory-excursion #$output - (install-file (string-append #$(this-package-input - "bcachefs-tools-static") - "/sbin/bcachefs") - "sbin") - (remove-store-references "sbin/bcachefs") - (invoke "sbin/bcachefs" "version"))))) ; test suite + (use-modules (guix build utils)) + (let ((target (string-append #$output "/sbin/bcachefs"))) + (install-file (search-input-file %build-inputs "sbin/bcachefs") + (dirname target)) + (remove-store-references target))))) (inputs - (list bcachefs-tools/static)) - (home-page (package-home-page bcachefs-tools)) + (list bcachefs-tools-minimal/static)) + (home-page (package-home-page bcachefs-tools-minimal/static)) (synopsis "Statically-linked bcachefs command from bcachefs-tools") - (description "This package provides the statically-linked @command{bcachefs} -from the bcachefs-tools package. It is meant to be used in initrds.") - (license (package-license bcachefs-tools)))) + (description + "This package provides the statically-linked @command{bcachefs} from a +minimal bcachefs-tools package. It is meant to be used in initrds.") + (license (package-license bcachefs-tools-minimal/static)))) (define-public exfatprogs (package (name "exfatprogs") - (version "1.2.1") + (version "1.2.5") (source (origin (method git-fetch) @@ -753,11 +857,25 @@ from the bcachefs-tools package. It is meant to be used in initrds.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1g5aqhjz0l58kvmis1j5b5qkn58hjs582f36ygiqkgxvp4njkny4")))) + (base32 "0plj52kjvhy94hdk0bq8bc7ql6yh44x76kryxhn46vwbxayv790j")))) (build-system gnu-build-system) (arguments - `(#:configure-flags - (list "--disable-static"))) + (list + #:configure-flags + #~(list "--disable-static") + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "FSCK1" "../fsck/fsck.exfat") + ;; Upstream CI uses a second FSCK provided by its host operating + ;; system to verify the results of the newly-built one. That + ;; makes no sense in Guix, but we can detect crashes, unexpected + ;; inconsistencies, and other badness by testing with only one. + (setenv "FSCK2" (getenv "FSCK1")) + (with-directory-excursion "tests" + (invoke "./test_fsck.sh")))))))) (native-inputs (list autoconf automake libtool pkg-config)) (home-page "https://github.com/exfatprogs/exfatprogs") @@ -900,14 +1018,14 @@ from the jfsutils package. It is meant to be used in initrds.") (define-public nilfs-utils (package (name "nilfs-utils") - (version "2.2.9") + (version "2.2.11") (source (origin (method url-fetch) (uri (string-append "https://nilfs.sourceforge.io/download" "/nilfs-utils-" version ".tar.bz2")) (sha256 - (base32 "15vsayvzr8nc29n939sz9ddq46vpn53rp8h8qv484h88qac3kxjx")))) + (base32 "1k9l5kzhdph3jh04kxz4dn5yb210205iycbnpklrpi6jy1zqj0l6")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 7911cb3203..fe6c1822fa 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com> -;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> +;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -508,7 +508,7 @@ provide OpenFirmware functionality on top of an already running system.") (define* (make-opensbi-package platform name #:optional (arch "riscv64")) (package (name name) - (version "1.3.1") + (version "1.5.1") (source (origin (method git-fetch) @@ -517,7 +517,7 @@ provide OpenFirmware functionality on top of an already running system.") (commit (string-append "v" version)))) (file-name (git-file-name "opensbi" version)) (sha256 - (base32 "01pr7fyg3gcb5pj6d48w2an3m4mfjs9b398x31drqxwqcaz0zn94")))) + (base32 "0mfjb9jzrmc6chsr16bjrfann67qjxiigz8q42ndf9lrp6nyigd9")))) (build-system gnu-build-system) (native-inputs (append diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 98c20ee90a..1ba691dac9 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -2362,7 +2362,7 @@ ExtraLight, Light, Book, Medium, Semibold, Bold & ExtraBold") (define-public font-culmus (package (name "font-culmus") - (version "0.133") + (version "0.140") (source (origin (method url-fetch) @@ -2371,7 +2371,7 @@ ExtraLight, Light, Book, Medium, Semibold, Bold & ExtraBold") version ".tar.gz")) (sha256 (base32 - "02akysgsqhi15cck54xcacm16q5raf4l7shgb8fnj7xr3c1pbfyp")))) + "0fn79vndpa45gqr4mjmxzwy910x4ls1s6wbnycyf44bhpz4b4z5s")))) (build-system font-build-system) (arguments `(#:license-file-regexp "^GNU-GPL|LICENSE" @@ -2379,22 +2379,10 @@ ExtraLight, Light, Book, Medium, Semibold, Bold & ExtraBold") (modify-phases %standard-phases (add-before 'install 'build (lambda _ - (let ((compile - (lambda (name ext) - (invoke - "fontforge" "-lang=ff" - "-c" (string-append "Open('" name "');" - "Generate('" - (basename name "sfd") ext - "')"))))) - ;; This part based on the fonts shipped in the non-source package. - (for-each (lambda (name) - (compile name "ttf")) - (find-files "." "^[^Nachlieli].*\\.sfd$")) - (for-each (lambda (name) - (compile name "otf")) - (find-files "." "^Nachlieli.*\\.sfd$")) - #t)))))) + (for-each (lambda (font) + (invoke "./GenerateOTF.py" font) + (invoke "./GenerateTTF.py" font)) + (find-files "." "\\.sfd$"))))))) (native-inputs (list fontforge)) (home-page "https://culmus.sourceforge.io/") diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 00fb9c33ee..df448de973 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -62,6 +62,7 @@ #:use-module (gnu packages java) #:use-module (gnu packages linux) #:use-module (gnu packages man) + #:use-module (gnu packages mc) #:use-module (gnu packages ninja) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -1798,13 +1799,13 @@ API-compatible with defcon.") (define-public python-defcon-bootstrap (package (name "python-defcon-bootstrap") - (version "0.10.2") + (version "0.10.3") (source (origin (method url-fetch) (uri (pypi-uri "defcon" version ".zip")) (sha256 - (base32 "0i1a306b8c42dpbplwxj6ili2aac5lwq2ir6r1jswicysvk9dqxf")))) + (base32 "036clkwjfv5mmvy6s67s0pbni73n9hdw32z20gm4w5jzqzbjdpjn")))) (build-system python-build-system) (propagated-inputs (list python-fontpens-bootstrap python-fonttools)) (native-inputs @@ -2056,6 +2057,29 @@ shaping (using HarfBuzz), and proper script itemization. As a result, Raqm can support most writing systems covered by Unicode.") (license license:expat))) + +(define-public fontopia + (package + (name "fontopia") + (version "2.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/fontopia/fontopia-" + version ".tar.gz")) + (sha256 + (base32 "0wv7bd7gdm1ma4xgq9av73ic3xhpwyszj6g6c6311xjk26xm9ahd")))) + (build-system gnu-build-system) + (inputs + (list gnudos)) + (home-page "https://www.gnu.org/software/fontopia/") + (synopsis "Text-based, console font editor") + (description + "GNU fontopia is an easy-to-use, text-based, console font editor. You can +edit the fonts that your GNU/Linux kernel is using to display your text on text- +based (vs graphical) terminals.") + (license license:gpl3+))) + + (define-public lcdf-typetools (package (name "lcdf-typetools") diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index cb1d625d24..6760cddb3e 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -27,7 +27,7 @@ ;;; Copyright © 2021 Robby Zambito <contact@robbyzambito.me> ;;; Copyright © 2021, 2022, 2023 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com> -;;; Copyright © 2021, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2021-2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de> ;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> @@ -39,6 +39,7 @@ ;;; Copyright © 2024 aurtzy <aurtzy@gmail.com> ;;; Copyright © 2024 Dariqq <dariqq@posteo.net> ;;; Copyright © 2024 Wilko Meyer <w@wmeyer.eu> +;;; Copyright © 2024 dan <i@dan.games> ;;; ;;; This file is part of GNU Guix. ;;; @@ -136,6 +137,7 @@ #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) #:use-module (gnu packages video) + #:use-module (gnu packages virtualization) #:use-module (gnu packages w3m) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) @@ -354,6 +356,30 @@ tests.") (home-page "https://gitlab.gnome.org/pwithnall/libglib-testing") (license license:lgpl2.1+))) +(define-public libliftoff + (package + (name "libliftoff") + (version "0.5.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/emersion/libliftoff") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "163g8ndsbma7acy2k9mrnvlpb7yi4431hgkx1gygkafgwpq1ii1x")))) + (build-system meson-build-system) + (native-inputs (list pkg-config)) + (inputs (list libdrm)) + (home-page "https://gitlab.freedesktop.org/emersion/libliftoff") + (synopsis "Lightweight KMS plane library for compositors") + (description "Libliftoff eases the use of +@acronym{KMS, Kernel Mode Setting} planes from userspace. Users create +\"virtual planes\" called layers, set KMS properties on them, and libliftoff +will pick hardware planes for these layers if possible.") + (license license:expat))) + (define-public malcontent (package (name "malcontent") @@ -1151,7 +1177,7 @@ manager for the current system.") (define-public power-profiles-daemon (package (name "power-profiles-daemon") - (version "0.21") + (version "0.23") (source (origin (method git-fetch) @@ -1161,7 +1187,7 @@ manager for the current system.") (file-name (git-file-name name version)) (sha256 (base32 - "0dn3ygv49q7mzs52ch3yphxf4hbry698r1ajj52f6jgw7mpwr5p4")))) + "08xz38r2fv6bpmv5vyjfvizwkbflg6m504fh3qd1jpw6xxv1lzwi")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments @@ -3047,6 +3073,37 @@ The portal interfaces include APIs for file access, opening URIs, printing and others.") (license license:lgpl2.1+))) +(define-public xdg-desktop-portal-next + (package + (inherit xdg-desktop-portal) + (version "1.18.4") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/flatpak/xdg-desktop-portal/releases/download/" + version "/xdg-desktop-portal-" version ".tar.xz")) + (sha256 + (base32 + "0r8y8qmzcfj7b7brqcxr9lg8pavfds815ffvj0kqc378fhgaln5q")) + ;; Disable portal tests since they try to use fuse. + (patches (search-patches "xdg-desktop-portal-disable-portal-tests.patch")))) + (build-system meson-build-system) + (arguments + (substitute-keyword-arguments (package-arguments xdg-desktop-portal) + ((#:configure-flags _ ''()) + #~(list "-Dsystemd=disabled")))) + (native-inputs + (list pkg-config + `(,glib "bin") + gettext-minimal + python + python-dbusmock + python-pytest + python-pytest-xdist)) + (inputs (modify-inputs (package-inputs xdg-desktop-portal) + (prepend bubblewrap))))) + (define-public xdg-desktop-portal-gtk (package (name "xdg-desktop-portal-gtk") @@ -3244,7 +3301,7 @@ notifies the user using any notification daemon implementing (define-public waypipe (package (name "waypipe") - (version "0.9.0") + (version "0.9.1") (source (origin (method git-fetch) @@ -3253,12 +3310,17 @@ notifies the user using any notification daemon implementing (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0pf1q8kyqyqa7gxar99i35q9np0k4vsf7xlrg12gyzc5k36lhknf")))) + (base32 "0pj7l3ix0pp0sfqxfa2hxql0f30vz6hh01fq5kzhs831b632i3z0")))) (build-system meson-build-system) (native-inputs (list pkg-config scdoc ;; For tests python)) + (inputs (list lz4 libva mesa libdrm ffmpeg)) + (arguments + (list #:configure-flags + #~(list "-Dwith_lz4=enabled" "-Dwith_vaapi=enabled" + "-Dwith_dmabuf=enabled" "-Dwith_video=enabled"))) (home-page "https://gitlab.freedesktop.org/mstoeckl/waypipe") (synopsis "Proxy for Wayland protocol applications") (description diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index bdb163435a..9f2334d0dc 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -222,8 +222,11 @@ output. (source (origin (method url-fetch) - (uri (string-append "https://download.filezilla-project.org/client/" - "FileZilla_" version "_src.tar.bz2")) + (uri (list (string-append "https://qbilinux.org/pub/source/" + "FileZilla_" version "_src.tar.bz2") + (string-append "https://downloads.sourceforge.net/project/" + "portableapps/Source/FileZilla/" + "FileZilla_" version "_src.tar.bz2"))) (sha256 (base32 "04lcffmvl1356iyc14pikq3z6jikj6qn0v0zd57lgsm0biihjrx7")))) (build-system gnu-build-system) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 9138d6dbf9..0bae7cfe11 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1928,7 +1928,7 @@ games.") (define-public godot-lts (package (name "godot") - (version "3.5.3") + (version "3.6") (source (origin (method git-fetch) (uri (git-reference @@ -1937,7 +1937,7 @@ games.") (file-name (git-file-name name version)) (sha256 (base32 - "0zibc6am9axbbm8l57jf2d324a2m44pf6ncp2i4h1b219jjq89l6")) + "1vdpd05i901p69ciagdaiwdw21j65a7s9r96gdzay321a0xihr71")) (modules '((guix build utils) (ice-9 ftw) (srfi srfi-1))) @@ -3092,7 +3092,7 @@ game engine. id Tech 2 is the engine originally behind Quake 2.") (define-public dhewm3 (package (name "dhewm3") - (version "1.5.3") + (version "1.5.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/dhewm/dhewm3") @@ -3100,10 +3100,15 @@ game engine. id Tech 2 is the engine originally behind Quake 2.") (file-name (git-file-name name version)) (sha256 (base32 - "1zbwhrngmgb0969izmxididyx892qk7591aa9mbigakw6dvmlm84")))) + "16cvf78a7q00bkf74waj6gss09y4iqn3zl9srsfg6i7336gjm2wn")))) (build-system cmake-build-system) (arguments (list #:tests? #f ; No tests. + #:configure-flags + ;; Needed to fix 32bit builds. + #~(if (not #$(target-64bit?)) + (list "-DCMAKE_CXX_FLAGS=-D_FILE_OFFSET_BITS=64") + '()) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'change-to-build-dir diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 30057a4f4a..0de8b8adc5 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013 John Darrington <jmd@gnu.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu> -;;; Copyright © 2014-2023 Eric Bavier <bavier@posteo.net> +;;; Copyright © 2014-2024 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net> ;;; Copyright © 2014, 2015, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org> @@ -24,7 +24,7 @@ ;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com> ;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info> ;;; Copyright © 2017, 2018, 2020 Arun Isaac <arunisaac@systemreboot.net> -;;; Copyright © 2017–2023 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017–2024 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2019 nee <nee-git@hidamari.blue> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com> @@ -83,6 +83,8 @@ ;;; Copyright © 2024 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2024 Sébastien Lerique <sl@eauchat.org> ;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org> +;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -169,6 +171,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages javascript) + #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages less) #:use-module (gnu packages lesstif) #:use-module (gnu packages libcanberra) @@ -484,18 +487,71 @@ mouse and joystick control, and original music.") Doom clone shooter game.") (license license:cc0)))) +(define-public antimicrox + (package + (name "antimicrox") + (version "3.4.1") + (home-page "https://github.com/AntiMicroX/antimicrox") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04yb5nppn751asbihr90sqk5imamc937886lc24cihhgp0sila8y")))) + (build-system cmake-build-system) + (arguments + (list + #:tests? #f ;Tests are unmaintained + #:configure-flags #~(list "-DCHECK_FOR_UPDATES=NO" "-DWITH_TESTS=NO" + #$(string-append "-DANTIMICROX_PKG_VERSION=" + version)) + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-installation-target + (lambda _ + (substitute* "CMakeLists.txt" + (("/usr(/lib/udev/rules.d)" _ lib) + (string-append #$output lib)))))))) + (native-inputs (list extra-cmake-modules gettext-minimal itstool qttools)) + (inputs (list libxtst libx11 qtbase sdl2)) + (synopsis "Control your system with a gamepad") + (description + "AntiMicroX is a graphical program used to map gamepad keys to keyboard, mouse, +scripts, and macros under both X.org and Wayland. With it you can control +your system using a gamepad or play games that don't natively support +gamepads. It can also be used for generating SDL2 configurations. + +For unprivileged access to input events, this package provides udev rules for +use with @code{udev-service-type}.") + (license license:gpl3+))) + (define-public armagetronad (package (name "armagetronad") - (version "0.2.9.1.1") + (version "0.2.9.2.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/armagetronad/stable/" version "/armagetronad-" version ".tbz")) (sha256 (base32 - "0cpxvzbssyf45fmanp1d6l992wln8zkjx4z2flgx27fg1rqdw5zn")))) + "0a6rlp2lj5bp7pg1yf8brjyb3mw7nqp3amj19wvz3xni21bbc31k")))) (build-system gnu-build-system) + (arguments + (list #:configure-flags + #~(list "--disable-games" ;don't nest everything in ‘games/’ + "--disable-uninstall") ;pointless (and broken) in Guix + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'omit-broken-symlinks + ;; v0.2.9.2.0 added relative_path() which I think broke + ;; install_link(). It now creates a broken armagetronad-master + ;; symlink that causes the 'validate-runpath phase to fail. + (lambda _ + (substitute* "batch/sysinstall.in" + (("^install_link .*BINDIR.*") ""))))))) (native-inputs (list pkg-config)) (inputs (list libxml2 (sdl-union (list sdl sdl-image sdl-mixer)) @@ -3343,7 +3399,7 @@ properly.") (define-public abbaye (package (name "abbaye") - (version "2.0.1") + (version "2.0.2") (source (origin (method git-fetch) @@ -3352,38 +3408,31 @@ properly.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1pwqf7r9bqb2p3xrw9i7y8pgr1401fy3mnnqpb1qkhmdl3gqi9hb")) - (modules '((guix build utils))) - (snippet - ;; Unbundle fonts. - '(begin - (delete-file-recursively "fonts") - #t)))) + (base32 "16zxmz7z6jfawh68q8k9s1iwbl2f9jr3qaiqlkwpz8vmpqw2s47x")))) (build-system gnu-build-system) (arguments - '(#:make-flags '("CC=gcc") - #:phases (modify-phases %standard-phases - (add-after 'set-paths 'set-sdl-paths - (lambda* (#:key inputs #:allow-other-keys) - (setenv "CPATH" - (string-append - (search-input-directory inputs "include/SDL2") - ":" (or (getenv "CPATH") ""))))) - (add-after 'patch-source-shebangs 'patch-makefile - (lambda* (#:key outputs #:allow-other-keys) - ;; Replace /usr with package output directory. - (substitute* "Makefile" - (("/usr") (assoc-ref outputs "out"))))) - (add-before 'install 'make-install-dirs - (lambda* (#:key outputs #:allow-other-keys) - (let ((prefix (assoc-ref outputs "out"))) - ;; Create directories that the makefile assumes exist. - (mkdir-p (string-append prefix "/bin")) - (mkdir-p (string-append prefix "/share/applications")) - (mkdir-p (string-append prefix "/share/pixmaps"))))) - ;; No configure script. - (delete 'configure)) - #:tests? #f)) ;; No check target. + (list + #:make-flags #~(list "CC=gcc") + #:phases + #~(modify-phases %standard-phases + (add-after 'set-paths 'set-sdl-paths + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CPATH" + (string-append + (search-input-directory inputs "include/SDL2") + ":" (or (getenv "CPATH") ""))))) + (add-after 'patch-source-shebangs 'patch-Makefile-prefix + (lambda _ + (substitute* "Makefile" + (("/usr") #$output)))) + (add-before 'install 'create-directories + (lambda _ + ;; Create directories that the makefile assumes exist. + (mkdir-p (string-append #$output "/bin")) + (mkdir-p (string-append #$output "/share/applications")) + (mkdir-p (string-append #$output "/share/pixmaps")))) + (delete 'configure)) ;no configure script + #:tests? #f)) ;no test suite (native-inputs (list pkg-config)) (inputs (list (sdl-union (list sdl2 sdl2-image sdl2-mixer)))) (home-page "https://github.com/nevat/abbayedesmorts-gpl") @@ -3961,29 +4010,6 @@ for common mesh file formats, and collision detection.") (home-page "https://irrlicht.sourceforge.io/") (license license:zlib))) -(define-public irrlicht-for-minetest - (package - (inherit irrlicht) - (name "irrlicht-for-minetest") - (version "1.9.0mt13") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/minetest/irrlicht") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "11pxg0yh50ym1hvh8va5jbbcjz5dsshj3xxvm3qhkgg96vpism06")))) - (build-system cmake-build-system) - (arguments - ;; No check target. - (list #:tests? #f)) - (inputs - (modify-inputs (package-inputs irrlicht) - (prepend libxi))))) - (define-public mars ;; The latest release on SourceForge relies on an unreleased version of SFML ;; with a different API, so we take the latest version from the official @@ -9859,6 +9885,30 @@ certainly not least as a fun, realistic, and challenging desktop flight simulator.") (license license:gpl2+))) +(define-public evtest-qt + (package + (name "evtest-qt") + (version "0.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Grumbel/evtest-qt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1wfzkgq81764qzxgk0y5vvpxcrb3icvrr4dd4mj8njrqgbwmn0mw")))) + (build-system cmake-build-system) + (arguments (list #:tests? #f)) ;no test suite + (native-inputs (list tinycmmc)) + (inputs (list qtbase-5)) + (home-page "https://github.com/Grumbel/evtest-qt") + (synopsis "Evdev Joystick Tester") + (description "@command{evtest-qt} is a simple joystick tester for devices +using the @code{evdev} generic input event interface. It provides a list of +attached joysticks and displays which buttons and axis are pressed.") + (license license:gpl3+))) + (define-public jstest-gtk ;; There is no recent tagged release; use the latest commit. (let ((commit "60fe6ebdbc6719945be3f04988667dea569085be") @@ -11421,6 +11471,45 @@ do so you need to explore the island, find food, build a shelter and try to get attention, so you get found.") (license license:cc-by4.0)))) +(define-public sdl-jstest + (package + (name "sdl-jstest") + (version "0.2.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Grumbel/sdl-jstest") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "11qp4gkbb11n3wx74128fj56radgsvkj7nxhbh55rd3xad1hckh3")))) + (build-system cmake-build-system) + (arguments + (list + ;; The test suite uses appstream-utils to validate the appdata.xml file, + ;; fails with "url-not-found". + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'copy-gamecontroller-db + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (copy-file + (search-input-file (or native-inputs inputs) + "share/sdl2/gamecontrollerdb.txt") + "external/sdl_gamecontrollerdb/gamecontrollerdb.txt")))))) + (native-inputs + (list pkg-config sdl2-gamecontrollerdb tinycmmc)) + (inputs (list ncurses sdl sdl2)) + (home-page "https://github.com/Grumbel/sdl-jstest") + (synopsis "SDL Joystick Tester") + (description "The @command{sdl-jstest} and @command{sdl2-jstest} commands +can list the available joystick controllers as found by the SDL or SDL2 +libraries, respectively. It can show the available axes, buttons, hats and +balls of a chosen controller, and can display the controller actions in real +time in a visual fashion.") + (license license:gpl3+))) + (define-public sdlpop (package (name "sdlpop") @@ -11513,7 +11602,7 @@ play; it will look for them at @file{~/.local/share/fheroes2} folder.") (define-public vcmi (package (name "vcmi") - (version "1.5.1") + (version "1.5.7") (source (origin (method git-fetch) (uri (git-reference @@ -11522,7 +11611,7 @@ play; it will look for them at @file{~/.local/share/fheroes2} folder.") (file-name (git-file-name name version)) (sha256 (base32 - "1s3a23p9k081ccbkhvifx2rhg6rv82fkrsbjh6allmmsa1lhq6fd")) + "0jgxhq6rz43ild16lmpcf6xbzdhilxpbvknlxy92sxfazyarcg07")) (patches (search-patches "vcmi-disable-privacy-breach.patch")))) (build-system cmake-build-system) (arguments @@ -11540,9 +11629,8 @@ play; it will look for them at @file{~/.local/share/fheroes2} folder.") minizip pkg-config python - ;; XXX: Build currently fails with qtbase-6 and qttools-6 - qtbase-5 - qttools-5 + qtbase + qttools sdl2 sdl2-mixer sdl2-image @@ -11561,7 +11649,7 @@ play; it will look for them at @file{~/.local/share/vcmi} folder.") (define-public apricots (package (name "apricots") - (version "0.2.7") + (version "0.2.8") (source (origin (method git-fetch) @@ -11569,13 +11657,16 @@ play; it will look for them at @file{~/.local/share/vcmi} folder.") (url "https://github.com/moggers87/apricots") (commit (string-append "v" version)))) (sha256 - (base32 "0vis217hhnb9fbs9sf8mmcm71qp44kr3xqmffc1gdiixvi90c781")) + (base32 "01mqdybmn5rp8ifx619bx0pki9ryj5cvv2iwpsnn8ngggd6smh9x")) (file-name (git-file-name name version)))) (build-system gnu-build-system) - (native-inputs (list autoconf ; autom4te used in ./bootstrap - automake ; aclocal used in ./bootstrap - cppcheck)) - (inputs (list freealut openal sdl2)) + (arguments + ;; The test suite doesn't test the built game, but merely runs cppcheck & + ;; clang-format. Useful for the maintainers; not for distributions. + (list #:tests? #f)) + (native-inputs (list autoconf ;autom4te used in ./bootstrap + automake)) ;aclocal used in ./bootstrap + (inputs (list alure openal sdl2)) (home-page "https://github.com/moggers87/apricots") (synopsis "Arcade airplane game") (description "@code{apricots} is a game where you fly a little plane @@ -11819,6 +11910,45 @@ on the pitch of the voice and the rhythm of singing.") virtual reality devices.") (license license:expat)))) +(define-public gemrb + (package + (name "gemrb") + (version "0.9.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gemrb/gemrb") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wfmq4z2in18k4znshd7h1i496zlskbci49yp5d54mfxvyp534m5")) + ;; Remove the patch in the next version, as commit d339c0d fixes this + (patches (search-patches + "gemrb-add-path-suffixes-for-vlc-headers.patch")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags `("-DUSE_TESTS=ON" "-DOPENGL_BACKEND=OpenGL"))) + (native-inputs (list python-3.10 glibc-locales googletest)) + (inputs (list freetype + libiconv + libpng + libvorbis + openal + sdl2 + sdl2-mixer + vlc + zlib)) + (home-page "https://gemrb.org/") + (synopsis + "Portable open-source implementation of Bioware's Infinity Engine") + (description + "GemRB (Game Engine Made with preRendered Background) is a portable + open-source reimplementation of the Infinity Engine that underpinned + Baldur's Gate, Icewind Dale and Planescape: Torment. It sports a + cleaner design, greater extensibility and several innovations.") + (license (list license:gpl2)))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 2f90024295..c6c7730ad1 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu> ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2024 Nguyễn Gia Phong <mcsinyx@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -644,6 +645,10 @@ Go. It also includes runtime support libraries for these languages.") (append %gcc-12-x86_64-micro-architectures '("graniterapids"))) ;Intel +(define %gcc-14-x86_64-micro-architectures + (append %gcc-13-x86_64-micro-architectures + '("znver5"))) ;AMD + (define-public gcc-7 (package (inherit gcc-6) @@ -683,6 +688,7 @@ It also includes runtime support libraries for these languages.") (base32 "0l7d4m9jx124xsk6xardchgy2k5j5l2b15q322k31f0va4d8826k")) (patches (search-patches "gcc-8-strmov-store-file-names.patch" + "gcc-7-libsanitizer-fsconfig-command.patch" "gcc-5.0-libvtv-runpath.patch" "gcc-8-sort-libtool-find-output.patch")) (modules '((guix build utils))) @@ -837,7 +843,15 @@ It also includes runtime support libraries for these languages.") (add-before 'configure 'pre-x86-configure (lambda _ (substitute* "gcc/config/i386/t-linux64" - (("\\.\\./lib64") "../lib")))))))))) + (("\\.\\./lib64") "../lib")))))))) + (properties + `((compiler-cpu-architectures + ("aarch64" ,@%gcc-13-aarch64-micro-architectures) + ("armhf" ,@%gcc-13-armhf-micro-architectures) + ("i686" ,@%gcc-13-x86_64-micro-architectures) + ("powerpc64le" ,@%gcc-10-ppc64le-micro-architectures) + ("x86_64" ,@%gcc-14-x86_64-micro-architectures)) + ,@(package-properties gcc-11))))) ;; Note: When changing the default gcc version, update @@ -1063,6 +1077,7 @@ using compilers other than GCC." (name "libiberty") (arguments `(#:out-of-source? #t + #:make-flags '("CFLAGS=-O2 -g -fPIC") #:phases (modify-phases %standard-phases (add-before 'configure 'chdir @@ -1074,6 +1089,7 @@ using compilers other than GCC." (lib (string-append out "/lib/")) (include (string-append out "/include/"))) (install-file "libiberty.a" lib) + (install-file "../include/demangle.h" include) (install-file "../include/libiberty.h" include))))))) (inputs '()) (outputs '("out")) @@ -1225,8 +1241,9 @@ misnomer."))) (define-public libgccjit-12 (make-libgccjit gcc-12)) (define-public libgccjit-14 (make-libgccjit gcc-14)) -;; Use the 'gcc' variable from above to track the same version. -(define-public libgccjit (make-libgccjit gcc)) +;; This must match the 'gcc' variable, but it must also be 'eq?' to one of the +;; libgccjit-* packages above. +(define-public libgccjit libgccjit-11) (define (make-gccgo gcc) "Return a gccgo package based on GCC." diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm index 13f3dd67b0..b90adffb67 100644 --- a/gnu/packages/genimage.scm +++ b/gnu/packages/genimage.scm @@ -41,27 +41,26 @@ #:use-module (gnu packages virtualization)) (define-public genimage - (let ((commit "ec44ae086c705e6f0439e742c5a2e9b8f3d6ca82") - (revision "1")) + (let ((commit "00009af6e29cfd46909bc8b4180147dda9f82ba8") + (revision "0")) (package (name "genimage") - (version (git-version "15" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pengutronix/genimage") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0amj2vjff58yna6kq959i2gqmbjywqr8j5kr5pjqsvbqam3vgg0r")) - (patches - (search-patches "genimage-mke2fs-test.patch")))) + (version (git-version "18" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pengutronix/genimage") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mijyq79cb0yj4jm9ln9smpddq1f6r8cnsa568qca0krcv0p3zag")))) (build-system gnu-build-system) (arguments `(#:modules ((ice-9 match) - ,@%default-gnu-modules) + ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases (add-after 'unpack 'guixify @@ -70,8 +69,8 @@ ((input directory regexp) (substitute* "config.c" (((format #f "\\.def = \"(~a)\"" regexp) _ command) - (format #f ".def = \"~a/~a/~a\"" - (assoc-ref inputs input) directory command))))) + (string-append ".def = \"" (assoc-ref inputs input) + "/" directory "/" command "\""))))) '(("cpio" "bin" "cpio") ("coreutils" "bin" "dd") ("e2fsprogs" "sbin" "debugfs|e2fsck|mke2fs|tune2fs") @@ -81,26 +80,36 @@ ;; mkcramfs is obsolete. ("dosfstools" "sbin" "mkdosfs") ("mtd-utils" "sbin" "mkfs.(jffs2|ubifs)|ubinize") + ("f2fs-tools" "sbin" "(mkfs|sload).f2fs") ("squashfs-tools" "bin" "mksquashfs") ("qemu" "bin" "qemu-img") + ;; rauc and fiptool are unsupported. ("tar" "bin" "tar") ("u-boot-tools" "bin" "mkimage"))) (substitute* "util.c" (("\"/bin/sh\"") (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\""))))) + (add-before 'check 'disable-failing-tests + (lambda _ + ;; We don't have /etc/passwd so uid 0 is not known as "root". + ;; Thus patch it out. + (substitute* '("test/flash.test") + (("test_expect_success \"flash\"") + "test_expect_fail \"flash\"")) + (substitute* '("test/hdimage.test") + (("test_expect_success fdisk,sfdisk \"hdimage\"") + "test_expect_fail fdisk,sfdisk \"hdimage\"") + (("test_expect_success hexdump \"hdimage no-partition\"") + "test_expect_fail hexdump \"hdimage no-partition\"")))) (add-before 'check 'fix-failing-tests (lambda _ ;; We don't have /etc/passwd so uid 0 is not known as "root". ;; Thus patch it out. - (substitute* '("test/ext2test.0.dump" - "test/ext2test.1.dump" - "test/ext3test.0.dump" - "test/ext3test.1.dump" - "test/ext4test.0.dump" - "test/ext4test.1.dump" - "test/ext2test-percent.0.dump" - "test/ext2test-percent.1.dump" - "test/mke2fs.0.dump") + (substitute* '("test/ext2test.2.dump" + "test/ext3test.2.dump" + "test/ext4test.2.dump" + "test/ext2test-percent.2.dump" + "test/mke2fs.2.dump") (("root") "unknown")))) (add-before 'check 'setenv-check (lambda _ @@ -127,6 +136,7 @@ ("coreutils" ,coreutils) ; chmod, dd ("dosfstools" ,dosfstools) ("e2fsprogs" ,e2fsprogs) + ("f2fs-tools" ,f2fs-tools) ("genext2fs" ,genext2fs) ("libconfuse" ,libconfuse) ("mtd-utils" ,mtd-utils) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 3e611911ea..5d120b3c98 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -2121,15 +2121,15 @@ from multiple records.") (define-public java-jmapviewer (package (name "java-jmapviewer") - (version "2.13") + (version "2.20") (source (origin (method url-fetch) - (uri (string-append "https://svn.openstreetmap.org/applications/" - "viewer/jmapviewer/releases/" version - "/JMapViewer-" version "-Source.zip")) + (uri (string-append "https://josm.openstreetmap.de/osmsvn/" + "/applications/viewer/jmapviewer/releases/" + version "/JMapViewer-" version "-Source.zip")) (sha256 (base32 - "0sy6r5fkbb9bclw0is6gwnbzz627m7pjfnsqydxz58pbndakkhrv")))) + "02cvmmvvlqpbwn022w3m60xkq4gh4jh9lajs6yjgvjf2hnwxll31")))) (build-system ant-build-system) (native-inputs (list unzip)) @@ -2200,7 +2200,7 @@ to the OSM opening hours specification.") (define-public josm (package (name "josm") - (version "18907") + (version "19160") (source (origin (method svn-fetch) (uri (svn-reference @@ -2209,7 +2209,7 @@ to the OSM opening hours specification.") (recursive? #f))) (sha256 (base32 - "0vkczijw537f4y1b7hfxa45k3ww6nf2cf485b19dnbgh9ab6mnjl")) + "06m6rg9czs7mhkh0byd3c8n8y1gbzqqw2iy7qyn4084al4mdrw2z")) (file-name (string-append name "-" version "-checkout")) (modules '((guix build utils))) (snippet @@ -2280,6 +2280,9 @@ to the OSM opening hours specification.") (lambda _ (system* "javac" "scripts/BuildProjectionDefinitions.java" "-cp" "build/classes") + (mkdir-p "resources/data/projection") + (with-output-to-file "resources/data/projection/custom-epsg" + (lambda _ (display ""))) (mkdir-p "data/projection") (with-output-to-file "data/projection/custom-epsg" (lambda _ (display ""))) @@ -2342,6 +2345,9 @@ to the OSM opening hours specification.") (not (string-contains jar "-javacc-")))) (string-split (getenv "CLASSPATH") #\:)) ":") + " --add-exports=java.base/sun.security.action=ALL-UNNAMED" + " --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED" + " --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED" " org.openstreetmap.josm.gui.MainApplication")))) (chmod (string-append bin "/josm") #o755)) #t))))) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 849ca076dc..21be697d3b 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -21,6 +21,7 @@ ;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> +;;; Copyright © 2024 Arnaud Lechevallier <arnaud.lechevallier@free.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -985,6 +986,7 @@ OpenGL.") "libvulkan.so.1" "libwayland-cursor.so.0" "libwayland-egl.so.1" + "libwayland-client.so.0" "libxkbcommon.so.0" "libXxf86vm.so.1" "libXi.so.6" diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index d6275ea63e..a15a7ce58a 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -21,6 +21,7 @@ ;;; Copyright © 2023 Saku Laesvuori <saku@laesvuori.fi> ;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2024 Remco van 't Veer <remco@remworks.net> +;;; Copyright © 2024 dan <i@dan.games> ;;; ;;; This file is part of GNU Guix. ;;; @@ -72,6 +73,7 @@ #:use-module (gnu packages perl-check) #:use-module (gnu packages popt) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages sqlite) @@ -1592,3 +1594,49 @@ authors who want to manage concurrent code. Dex also provides Fibers which allow writing synchronous looking code in C that uses asynchronous and future-based APIs.") (license license:lgpl2.1+))) + +(define-public cppgir + (package + (name "cppgir") + (version "2.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.com/mnauw/cppgir") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cj4myqzb28hgb7zlxlba9y8n4ysxkvv2y9wy6f7ps58mr18h7bl")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + #~(list "-DINTERNAL_EXPECTED=OFF"))) + (inputs (list boost fmt expected-lite)) + (home-page "https://gitlab.com/mnauw/cppgir") + (synopsis "C++ bindings generator for GObject introspection") + (description "cppgir processes @file{.gir} files derived from GObject +introspection annotations into a set of C++ files defining suitable +namespaces, classes and other types that together form a C++ binding.") + (license license:expat))) + +;; telegram-desktop requires a more recent version of cppgir +(define-public cppgir-for-telegram-desktop + (let ((commit "9c4f5820d94d62ab451501f016bfea97156518f4") + (revision "0")) + (package + (inherit cppgir) + (name "cppgir-for-telegram-desktop") + (version (git-version "2.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.com/mnauw/cppgir") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fa9nf4yljfarihaqj5kd98yysrky7q316mh6l5b1rq39ga15k9b"))))))) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 7339000436..892302f391 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1825,7 +1825,7 @@ client devices can handle.") (inputs (list gcr-3 (if (supported-package? gtk) gtk gtk+) - iso-codes + iso-codes/pinned mobile-broadband-provider-info network-manager)) (synopsis "Network Manager's applet library") @@ -2318,7 +2318,7 @@ offline sources, providing a centralized place for managing your contacts.") (list gsettings-desktop-schemas gtk gtk+ - iso-codes + iso-codes/pinned libseccomp libx11 xkeyboard-config)) @@ -4905,7 +4905,7 @@ GLib and GObject, and integrates JSON with GLib data types.") ;; Required by libxklavier.pc. (list glib libxml2)) (inputs - (list iso-codes libxi libxkbfile xkbcomp xkeyboard-config)) + (list iso-codes/pinned libxi libxkbfile xkbcomp xkeyboard-config)) (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/") (synopsis "High-level API for X Keyboard Extension") (description @@ -7322,7 +7322,7 @@ almost all of them.") gst-plugins-base gst-plugins-good gstreamer - iso-codes + iso-codes/pinned json-glib libadwaita libarchive @@ -9178,7 +9178,7 @@ logo='~a'~%" icon)))))) gnome-session gnome-settings-daemon gtk+ - iso-codes + iso-codes/pinned libcanberra libgudev linux-pam @@ -9695,7 +9695,7 @@ easy, safe, and automatic.") (search-input-file inputs "bin/bash"))))) (add-after 'unpack 'disable-failing-tests (lambda _ - #$@(if (target-x86-32?) + #$@(if (not (target-64bit?)) ;; On 32-bit systems, the far away dates are incorrect, ;; and the floats are not parsed exactly. '((substitute* @@ -11502,7 +11502,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).") (setenv "ASPELL_DICT_DIR" (search-input-directory inputs "/lib/aspell"))))))) (inputs - (list iso-codes)) + (list iso-codes/pinned)) (native-inputs (list `(,glib "bin") gobject-introspection @@ -11842,7 +11842,7 @@ and uncluttered interface for the management of password databases.") gst-plugins-good gstreamer gtk+ - iso-codes + iso-codes/pinned libcanberra libdiscid libmusicbrainz @@ -12784,7 +12784,7 @@ non-privileged user.") gspell gsound gtk+ - iso-codes + iso-codes/pinned json-glib libcanberra libgee @@ -13024,7 +13024,7 @@ It uses pandoc as back-end for parsing Markdown.") (define-public libratbag (package (name "libratbag") - (version "0.16") + (version "0.18") (source (origin (method git-fetch) @@ -13033,7 +13033,7 @@ It uses pandoc as back-end for parsing Markdown.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0jjf6xc3a37icp5dvbxla3ai9is2ns31m0llbfq1bmb6dk8cd4n0")))) + (base32 "09rmzbvh3q996r5vcdiirr56xzzwi5njay26hp50nyk1bq68l1bl")))) (build-system meson-build-system) (arguments `(#:configure-flags @@ -13097,14 +13097,14 @@ your operating-system definition: (define-public piper (package (name "piper") - (version "0.7") + (version "0.8") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/libratbag/piper") (commit version))) (sha256 - (base32 "0jsvfy0ihdcgnqljfgs41lys1nlz18qvsa0a8ndx3pyr41f8w8wf")) + (base32 "1zkxrgvrg4bdqcj540lgdw35sj41n9cx8zrfhfd3f0y9m0piz7wg")) (file-name (git-file-name name version)))) (build-system meson-build-system) (arguments @@ -13118,7 +13118,8 @@ your operating-system definition: (add-after 'unpack 'dont-update-gtk-icon-cache (lambda _ (substitute* "meson.build" - (("meson.add_install_script\\('meson_install.sh')") "")))) + (("gtk_update_icon_cache: true") + "gtk_update_icon_cache: false")))) (add-after 'unpack 'do-not-require-flake8 (lambda _ (substitute* "meson.build" @@ -13134,6 +13135,7 @@ your operating-system definition: ,(python:site-packages inputs outputs))))))))) (native-inputs (list appstream + desktop-file-utils ;for update-desktop-database gettext-minimal `(,glib "bin") gobject-introspection @@ -13246,7 +13248,7 @@ provided there is a DBus service present: gst-plugins-good gstreamer gtk+ - iso-codes + iso-codes/pinned pocketsphinx pulseaudio sphinxbase)) @@ -13643,7 +13645,7 @@ developed with the aim of being used with the Librem 5 phone.") (build-system meson-build-system) (native-inputs (list intltool - iso-codes + iso-codes/pinned `(,glib "bin") gnome-common gettext-minimal diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index e7c5026ea7..71a49b75d6 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -66,14 +66,14 @@ ;; directory. (package (name "gnucash") - (version "5.8") + (version "5.9") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/" version "/gnucash-" version ".tar.bz2")) (sha256 - (base32 "14r5nmml40icxbjfz4giis6kiplvjna17j1fd6c4b78bf3xj7j52")))) + (base32 "1l1g4acangbf4r27vsvavds0yqqa8smy4s676by68r639wvfbqjv")))) (outputs '("out" "doc" "debug" "python")) (build-system cmake-build-system) (arguments @@ -220,7 +220,7 @@ installed as well as Yelp, the Gnome help browser.") "mirror://sourceforge/gnucash/gnucash%20%28stable%29/" version "/gnucash-docs-" version revision ".tar.gz")) (sha256 - (base32 "0gssmbwwiafp4g9v5waz5935bkgyzbna76ryz5lhc294b3n49wxq")))) + (base32 "1jclya8p005dfwhkx4yqbcml631y4xngl8v08kg33d0ws4mkmi4v")))) (build-system cmake-build-system) ;; These are native-inputs because they are only required for building the ;; documentation. diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 092476ea54..2e97c2244a 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2015, 2016, 2020 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015-2021, 2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> @@ -87,6 +87,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system pyproject) #:use-module (ice-9 match) #:use-module (guix build-system meson) #:use-module (srfi srfi-1)) @@ -634,32 +635,20 @@ distributed separately.") (define-public python-pygpgme (package (name "python-pygpgme") - (version "0.3") + (version "0.4") (source (origin (method url-fetch) (uri (pypi-uri "pygpgme" version)) (sha256 (base32 - "1q82p3gs6lwq8j8dxk4pvrwk3jpww1zqcjrzznl9clh10z28gn2z")) - ;; Unfortunately, we have to disable some tests due to some gpg-agent - ;; goofiness... see: - ;; https://bugs.launchpad.net/pygpgme/+bug/999949 - (patches (search-patches "pygpgme-disable-problematic-tests.patch" - "python-pygpgme-fix-pinentry-tests.patch")))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'build 'make-build - (lambda _ (invoke "make" "build"))) - (replace 'check - (lambda _ (invoke "make" "check")))))) - (build-system python-build-system) + "1px1c5nqsls3fxg0zkyd9sgc5rxpdagvsadnp8fd5bmgrrjka5ws")))) + (build-system pyproject-build-system) (native-inputs - (list gnupg-1)) + (list gnupg)) (inputs (list gpgme)) - (home-page "https://launchpad.net/pygpgme") + (home-page "https://github.com/jhenstridge/pygpgme") (synopsis "Python module for working with OpenPGP messages") (description "PyGPGME is a Python module that lets you sign, verify, encrypt and diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index d7b9aa72e9..fa175ae033 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -533,9 +533,9 @@ variable defined below. It requires guile-json to be installed." ;; XXXX: Workaround 'snippet' limitations. (define computed-origin-method (@@ (guix packages) computed-origin-method)) -(define %icecat-base-version "115.15.0") +(define %icecat-base-version "115.16.0") (define %icecat-version (string-append %icecat-base-version "-guix1")) -(define %icecat-build-id "20240903000000") ;must be of the form YYYYMMDDhhmmss +(define %icecat-build-id "20241001000000") ;must be of the form YYYYMMDDhhmmss ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' @@ -555,12 +555,12 @@ variable defined below. It requires guile-json to be installed." "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "10dfzvkwb4mwz42j93zyxgjp5aryzsfja4f62hb8fqfrl0mdkzpg")))) + "07w0mbj65nwni692x157fjzzdqnf5lrvlghax7ja5njwsl8nczyn")))) ;; The upstream-icecat-base-version may be older than the ;; %icecat-base-version. - (upstream-icecat-base-version "115.15.0") - (gnuzilla-commit "53ca891e1aac86153b65a12af97eef9752503313") + (upstream-icecat-base-version "115.16.0") + (gnuzilla-commit "08202dd51b8c05e17238549e7922b1e02f4a0d1a") (gnuzilla-source (origin (method git-fetch) @@ -572,7 +572,7 @@ variable defined below. It requires guile-json to be installed." (string-take gnuzilla-commit 8))) (sha256 (base32 - "19bsci50bhg5wi9yndxwbi4f04gsmgkq2hrccqv01cjf1ajniw6k")))) + "0g12inrdp5n73sl3mcdys30j52n8hcqf2rxjv68yr5jbpykb86h5")))) ;; 'search-patch' returns either a valid file name or #f, so wrap it ;; in 'assume-valid-file-name' to avoid 'local-file' warnings. @@ -1684,13 +1684,11 @@ their corresponding VERSION, SOURCE and LOCALES variables." 'thunderbird '#$project)))) (format #t "processing locale `~a'...~%" l) - (if (eq? 'icecat '#$project) - ;; XXX: For some reasons, for IceCat, there are some - ;; parsing errors that cause the build system to - ;; return an unclean exit code; use system* to ignore - ;; errors. - (system* "./mach" "build" (string-append "langpack-" l)) - (invoke "./mach" "build" (string-append "langpack-" l))) + ;; XXX: For some reasons, on version 115, there are some + ;; parsing errors that cause the build system to + ;; return an unclean exit code; use system* to ignore + ;; errors. + (system* "./mach" "build" (string-append "langpack-" l)) (mkdir-p ext-dir) (let ((xpi (find-file "obj" (string-append "\\." l "\\.langpack\\.xpi$")))) diff --git a/gnu/packages/golang-compression.scm b/gnu/packages/golang-compression.scm index be7af6f894..d26d775a42 100644 --- a/gnu/packages/golang-compression.scm +++ b/gnu/packages/golang-compression.scm @@ -388,7 +388,7 @@ LZ4 data blocks. The implementation is based on the reference C (define-public go-github-com-ulikunitz-xz (package (name "go-github-com-ulikunitz-xz") - (version "0.5.11") + (version "0.5.12") (source (origin (method git-fetch) @@ -397,7 +397,7 @@ LZ4 data blocks. The implementation is based on the reference C (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1hbs3x7s7d5ch6ipaqi265w0fwpijs0j19xdbhbjjsyr4khxbqd0")))) + (base32 "09n4zawzycab4mmk20sv0490xrx9ighv25g5hj578vsjgzz842n1")))) (build-system go-build-system) (arguments (list diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm index 0d68e4b216..2ba3a530ad 100644 --- a/gnu/packages/golang-crypto.scm +++ b/gnu/packages/golang-crypto.scm @@ -23,6 +23,7 @@ ;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email> ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> ;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info> +;;; Copyright © 2024 Superfly Johnson <superfly.johnson@yahoo.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1032,6 +1033,31 @@ MurmurHash} revision (aka MurmurHash3)."))) Stealing encryption and decryption methods.") (license license:asl2.0))) +(define-public go-github-com-jzelinskie-whirlpool + (package + (name "go-github-com-jzelinskie-whirlpool") + (version "0.0.0-20201016144138-0675e54bb004") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jzelinskie/whirlpool") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0w74h9dz8pkwal3aqymymsq2zgl7d16dw1kxa7dfkad167g3s1mz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jzelinskie/whirlpool")) + (home-page "https://github.com/jzelinskie/whirlpool") + (synopsis "Cryptographic hashing library") + (description + "Package whirlpool implements the ISO/IEC 10118-3:2004 whirlpool +cryptographic hash as specified in +@url{http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html}.") + (license license:bsd-3))) + (define-public go-github-com-libp2p-go-libp2p-crypto (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b") (revision "0")) diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 2ff362fd8c..cf652a0248 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -2528,6 +2528,34 @@ Microsoft AD PAC authorization data.") geared towards parsing MIME encoded emails.") (license license:expat))) +(define-public go-github-com-jlaffaye-ftp + (package + (name "go-github-com-jlaffaye-ftp") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jlaffaye/ftp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0z9d1dxhx351158a22a08qbnfql7a1cajg6v3zm82m2rnp17ahir")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/jlaffaye/ftp")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-hashicorp-go-multierror)) + (home-page "https://github.com/jlaffaye/ftp") + (synopsis "FTP client package for Go") + (description + "Package ftp implements a @acronym{File Transfer Protocol,FTP} client as +described in @url{https://www.rfc-editor.org/rfc/rfc959,RFC 959}.") + (license license:isc))) + (define-public go-github-com-jmespath-go-jmespath (package (name "go-github-com-jmespath-go-jmespath") @@ -3414,7 +3442,7 @@ options.") (define-public go-github-com-multiformats-go-multiaddr (package (name "go-github-com-multiformats-go-multiaddr") - (version "0.12.3") + (version "0.13.0") (source (origin (method git-fetch) @@ -3423,7 +3451,7 @@ options.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1rn02yn7494r7ayn585bbsddprbn8wdccxs4n2k5dmll4dyd39mp")))) + (base32 "0029zjhndbisfsc2msd2h18pcw23rqvf40drkcf7nxic3y2vaff7")))) (build-system go-build-system) (arguments (list diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm index c2059b7906..942c5f5138 100644 --- a/gnu/packages/golang-xyz.scm +++ b/gnu/packages/golang-xyz.scm @@ -45,6 +45,7 @@ ;;; Copyright © 2024 Luis Higino <luishenriquegh2701@gmail.com> ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> ;;; Copyright © 2024 Spencer Peters <spencerpeters@protonmail.com> +;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -4251,6 +4252,40 @@ allocator. This is primarily useful for long lived buffers that usually sit emp length-delimited slices. It's helpful for building wire protocols.") (license license:expat))) +(define-public go-github-com-liyue201-gostl + (package + (name "go-github-com-liyue201-gostl") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/liyue201/gostl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dxzh791agir21dp1jmfa1bvqc23byz93fx3jlm94brlgm9zdkd3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/liyue201/gostl" + #:phases + #~(modify-phases %standard-phases + (delete 'build) + (replace 'check + (lambda* (#:key tests? import-path #:allow-other-keys) + (when tests? + (with-directory-excursion (string-append "src/" import-path) + (invoke "go" "test" "-v" "./...")))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/liyue201/gostl") + (synopsis "Data structure and algorithm library for Go") + (description + "@code{gostl} is a data structure and algorithm library for Go, designed +to provide functions similar to C++ STL.") + (license license:expat))) + (define-public go-github-com-logrusorgru-aurora (package (name "go-github-com-logrusorgru-aurora") @@ -6309,6 +6344,30 @@ slices, JSON and other data.") storage system.") (license license:bsd-2))) +(define-public go-github-com-tannerryan-ring + (package + (name "go-github-com-tannerryan-ring") + (version "1.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tannerryan/ring") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07q5qcg2wv696nnw3rrgc49mqijapdwp3xsscaxb5867bz79s841")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/tannerryan/ring")) + (home-page "https://github.com/tannerryan/ring") + (synopsis "High performance bloom filter") + (description + "@code{ring} provides a high performance and thread safe Go implementation of a +@url{https://en.wikipedia.org/wiki/Bloom_filter, bloom filter}.") + (license license:bsd-2))) + (define-public go-github-com-teambition-rrule-go (package (name "go-github-com-teambition-rrule-go") @@ -7288,6 +7347,159 @@ also provides V-style logging controlled by the @code{-v} and defined in @url{https://editorconfig.org/,https://editorconfig.org/}.") (license license:bsd-3))) +(define-public go-zgo-at-jfmt + (package + (name "go-zgo-at-jfmt") + (version "0.0.0-20240531161922-a97493b8db3c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/arp242/jfmt") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vm38kp46m1drxx16prbjwrc575vv7819ci16p96i0mksnnlfxj3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "zgo.at/jfmt" + #:phases + #~(modify-phases %standard-phases + ;; Remove test data which failing during tests, see + ;; <https://github.com/arp242/jfmt/issues/1>. + (add-after 'unpack 'disable-failing-tests + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (for-each + (lambda (file) (delete-file file)) + '("testdata/escape.json" + "testdata/toml-test-key-escapes.json" + "testdata/toml-test-string-quoted-unicode.json")))))))) + (propagated-inputs + (list go-zgo-at-termtext + go-zgo-at-zli + go-zgo-at-zstd)) + (home-page "https://github.com/arp242/jfmt") + (synopsis "JSON formatter written in Go") + (description + "@samp{jfmt} is a JSON formatter which tries to produce opinionated +output with more lines squashed into single one where possible (e.g. list, +brackets, ordering).") + (license license:expat))) + +(define-public go-zgo-at-runewidth + (package + (name "go-zgo-at-runewidth") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/arp242/runewidth") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17wbzwak831z04kj4xdvh2q78k3in3kay009n0yj8nlwn1p126ph")))) + (build-system go-build-system) + (arguments + (list + #:import-path "zgo.at/runewidth")) + (home-page "https://github.com/arp242/runewidth") + (synopsis "Get fixed width of the character or string") + (description + "@samp{runewidth} provides functions to get fixed width of the character +or string. It is a fork of https://github.com/mattn/go-runewidth, updated to +the newest Unicode and having various helper functions removed, so all that +remains is just the @code{runewidth.RuneWidth()} function.") + (license license:expat))) + +(define-public go-zgo-at-termtext + (package + (name "go-zgo-at-termtext") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/arp242/termtext") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0czhvcx6crmwfl6555l9hgl6gq21ykwr4bg2dqksc71qmv6b27hh")))) + (build-system go-build-system) + (arguments + (list + #:import-path "zgo.at/termtext")) + (propagated-inputs + (list go-github-com-rivo-uniseg + go-zgo-at-runewidth)) + (home-page "https://github.com/arp242/termtext") + (synopsis "Deal with monospace text as interpreted by terminals") + (description + "Package @samp{termtext} deals with monospace text as interpreted by +terminals.") + (license license:expat))) + +(define-public go-zgo-at-zli + (package + (name "go-zgo-at-zli") + (version "0.0.0-20240922172047-d7bc84b1106f") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/arp242/zli") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "110kwhydj6bzwqk7amkm9xgr3apx2bq6frlqb5yxds8cj5y25jks")))) + (build-system go-build-system) + (arguments + (list + #:import-path "zgo.at/zli")) + (home-page "https://github.com/arp242/zli") + (synopsis "Go library for writing command line interface programs") + (description + "@samp{zli} is a Go library for writing command line interface +programs. It includes flag parsing, color escape codes, various +helpful utility functions, and makes testing fairly easy.") + (license license:expat))) + +(define-public go-zgo-at-zstd + (package + (name "go-zgo-at-zstd") + (version "0.0.0-20240922235538-9a93b98b4725") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/arp242/zstd") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06nqiv1pkqnnqa3v6rlf0qfxgfd63vi4vv36acq54dxswxhcasaz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "zgo.at/zstd" + #:phases + #~(modify-phases %standard-phases + ;; XXX: Replace when go-build-system supports nested path. + (replace 'check + (lambda* (#:key import-path tests? #:allow-other-keys) + (when tests? + (with-directory-excursion (string-append "src/" import-path) + (invoke "go" "test" "-v" + "-skip" "TestExists" + "./...")))))))) + (home-page "https://github.com/arp242/zstd") + (synopsis "Extensions to Go's standard library") + (description + "Package @samp{zstd} is a collection of extensions to Go's standard +library.") + (license license:expat))) + ;;; ;;; Executables: ;;; @@ -7352,6 +7564,16 @@ tool.")) Trace/Debug/Info/Warn/Error methods on @code{hclog.Logger} are used correctly."))) +(define-public go-jfmt + (package/inherit go-zgo-at-jfmt + (name "go-jfmt") + (arguments (list #:install-source? #f + #:import-path "zgo.at/jfmt/cmd/jfmt" + #:unpack-path "zgo.at/jfmt")) + (description + (string-append (package-description go-zgo-at-jfmt) + " This package provides a command line interface (CLI) tool.")))) + (define-public go-msgio (package (inherit go-github-com-libp2p-go-msgio) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9f04b8e423..ccb94aadf7 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -46,6 +46,7 @@ ;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> ;;; Copyright © 2024 Greg Hogan <code@greghogan.com> ;;; Copyright © 2024 Brennan Vincent <brennan@umanwizard.com> +;;; Copyright © 2024 André Batista <nandre@riseup.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2197,7 +2198,7 @@ Go.") (define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird (package (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird") - (version "0.1.0") + (version "0.3.0") (source (origin (method git-fetch) (uri (git-reference @@ -2206,7 +2207,7 @@ Go.") (file-name (git-file-name name version)) (sha256 (base32 - "0rifg5kgqp4c3b44j48fjmx00m00ai7fa4gaqrgphiqs1fc5586s")))) + "1bmljd81vc8b4kzmpgmx1n1vvjn5y1s2w01hjxwplmnchv9dndkl")))) (build-system go-build-system) (arguments `(#:unpack-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird" @@ -2232,6 +2233,7 @@ Go.") go-github-com-refraction-networking-utls go-gitlab-com-yawning-edwards25519-extra go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib + go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-webtunnel go-golang-org-x-crypto go-golang-org-x-net go-golang-org-x-text)) @@ -2241,6 +2243,31 @@ Go.") incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol.") (license (list license:bsd-2 license:bsd-3)))) +(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-webtunnel + (let ((commit "e64b1b3562f3ab50d06141ecd513a21ec74fe8c6") + (revision "0")) + (package + (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-webtunnel") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nvd0qp1mdy7w32arnkhghxm5k2g6gy33cxlarxc6vdm4yh6v5nv")))) + (build-system go-build-system) + (arguments + `(#:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel")) + (home-page "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel") + (synopsis "Go WebTunnel Pluggable Transport") + (description "WebTunnel is a Go Pluggable Transport that attempts to imitate +web browsing activities based on HTTP Upgrade (HTTPT).") + (license license:bsd-2)))) + (define-public go-github-com-sevlyar-go-daemon (package (name "go-github-com-sevlyar-go-daemon") diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index a1333ab758..cc9054b307 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016-2023 Flashner <efraim@flashner.co.il> +;;; Copyright © 2016-2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> @@ -168,7 +168,7 @@ between two other data points.") (define-public gama (package (name "gama") - (version "2.30") + (version "2.31") (source (origin (method url-fetch) @@ -176,7 +176,7 @@ between two other data points.") version ".tar.gz")) (sha256 (base32 - "0yph6q7a0dy2r2vsrkjg26q8v988pcvnaay5lk6q7k06plpr2x1m")) + "0aq8zf4hibrvwhna31cj995y2p967sd1v55iqzqarkswr8r55iyg")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index 5c985eaf5b..02033c25b3 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -53,10 +53,12 @@ #:use-module (gnu packages datastructures) #:use-module (gnu packages docbook) #:use-module (gnu packages flex) + #:use-module (gnu packages fontutils) #:use-module (gnu packages gd) #:use-module (gnu packages graphics) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) + #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages machine-learning) #:use-module (gnu packages maths) @@ -813,7 +815,7 @@ of graphs.") (native-inputs (list pkg-config)) (inputs - (list gd)) + (list fontconfig freetype gd libjpeg-turbo libpng zlib)) (home-page "https://www.mcternan.me.uk/mscgen/") (synopsis "Message Sequence Chart Generator") (description "Mscgen is a small program that parses Message Sequence Chart diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index e68587658a..f5e0ca7352 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -475,6 +475,21 @@ Embree is meant to increase performance of photo-realistic rendering applications.") (license license:asl2.0))) +(define-public embree-3 + (package + (inherit embree) + (name "embree") + (version "3.3.15") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/embree/embree") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kcvz7g6j56anv9zjyd3gidxl46vipw0gg82lns12m45cd43iwxm")))))) + (define-public openvdb (package (name "openvdb") @@ -649,7 +664,7 @@ and export to various formats including the format used by Magicavoxel.") (define-public assimp (package (name "assimp") - (version "5.2.5") + (version "5.4.3") (source (origin (method git-fetch) (uri (git-reference @@ -658,7 +673,7 @@ and export to various formats including the format used by Magicavoxel.") (file-name (git-file-name name version)) (sha256 (base32 - "0j0pd279n6xyy95x782ha8j75kbx0ck7vs5wv3krhbyfim9bw64l")))) + "097fxq0frb2nl6bp8wz7kjx6vq4i4117wwq9fnxzkiij9xwv3cq9")))) (build-system cmake-build-system) (inputs (list zlib)) @@ -948,7 +963,8 @@ exception-handling library.") (("elliptical-arc-test") "") (("self-intersections-test") "")))))) ;; See https://gitlab.com/inkscape/lib2geom/-/issues/63 - ((target-aarch64?) + ((or (target-aarch64?) + (target-riscv64?)) #~((add-after 'unpack 'fix-aarch64-faulty-test (lambda _ (substitute* "tests/CMakeLists.txt" @@ -2207,136 +2223,138 @@ Version: ~a Libs: -L${libdir} -lskia Cflags: -I${includedir}~%" #$output #$version))))) (replace 'check - (lambda* (#:key inputs native-inputs #:allow-other-keys) - (let ((icu #$(this-package-native-input "icu4c-for-skia"))) - ;; Unbundle SPIRV-Tools dependency. - (substitute* "BUILD.gn" - (("deps \\+= \\[ \"//third_party/externals/spirv-tools:spvtools_val\" \\]") - "libs += [ \"SPIRV-Tools\" ]")) - (substitute* "src/sksl/SkSLCompiler.cpp" - (("\"spirv-tools/libspirv.hpp\"") - "<libspirv.hpp>")) - ;; Configure ICU dependency. - (substitute* "third_party/icu/BUILD.gn" - (("data_dir = \"\\.\\./externals/icu/\"") - (string-append "data_dir = \"" icu "/share/data/\"")) - (("script = \"\\.\\./externals/icu/scripts/") - (string-append "script = \"" icu "/share/scripts/")) - (("\\.\\./externals/icu/common/icudtl\\.dat") - (string-append icu "/share/data/icudtl.dat")) - (("sources = icu_sources") - "") - (("sources \\+= \\[ \"\\$data_assembly\" \\]") - "sources = [ \"$data_assembly\" ]")) - ;; Enable system libraries without is_official_build=true. - ;; This is necessary because is_official_build prevents from - ;; building dm. - (for-each - (lambda (libname) - (let ((snake (string-join (string-split libname #\-) "_"))) - (substitute* - (string-append "third_party/" libname "/BUILD.gn") - (((string-append "skia_use_system_" - snake - " = is_official_build.*")) - (string-append "skia_use_system_" snake " = true"))))) - '("zlib" "libjpeg-turbo" "harfbuzz" "libpng" "libwebp")) - ;; Configure with gn. - (invoke "gn" "gen" "out/Debug" - (string-append - "--args=" - "cc=\"gcc\" " ;defaults to 'cc' - "skia_compile_sksl_tests=false " ; disable some tests - "skia_use_perfetto=false " ; disable performance tests - "skia_use_wuffs=false " ; missing performance tool - "skia_use_system_expat=true " ; use system expat library - "skia_use_system_zlib=true " ; use system zlib library - ;; Specify where to locate the includes. - "extra_cflags=[" - (string-join - (map - (lambda (lib) - (string-append - "\"-I" - (search-input-directory - inputs - (string-append "include/" lib)) "\"")) - '("harfbuzz" - "freetype2" - "spirv-tools" - "spirv" - "unicode")) - ",") - "] " - ;; Otherwise the validate-runpath phase fails. - "extra_ldflags=[" - "\"-Wl,-rpath=" #$output "/lib\"" - "] " - ;; Disabled, otherwise the build system attempts to - ;; download the SDK at build time. - "skia_use_dng_sdk=false " - "skia_use_runtime_icu=true ")) - ;; Build dm testing tool. - (symlink - (string-append #$(this-package-native-input "gn") "/bin/gn") - "./bin/gn") - (invoke "ninja" "-C" "out/Debug" "dm") - ;; The test suite requires an X server. - (let ((xvfb (search-input-file (or native-inputs inputs) - "bin/Xvfb")) - (display ":1")) - (setenv "DISPLAY" display) - (system (string-append xvfb " " display " &"))) - ;; Run tests. - (invoke "out/Debug/dm" "-v" - "-w" "dm_output" - "--codecWritePath" "dm_output" - "--simpleCodec" - "--skip" - ;; The underscores are part of the dm syntax for - ;; skipping tests. - ;; These tests fail with segmentation fault. - "_" "_" "_" "Codec_trunc" - "_" "_" "_" "AnimCodecPlayer" - "_" "_" "_" "Codec_partialAnim" - "_" "_" "_" "Codec_InvalidImages" - "_" "_" "_" "Codec_GifInterlacedTruncated" - ;; This test started failing possibly after mesa - ;; being updated to 23.2.1 and possibly only on some - ;; hardware. - "_" "_" "_" "SkRuntimeBlender_GPU" - "_" "_" "_" "SkText_UnicodeText_Flags" - "_" "_" "_" "SkParagraph_FontStyle" - "_" "_" "_" "flight_animated_image" - ;; These tests fail because of Codec/Sk failure. - "_" "_" "_" "AndroidCodec_computeSampleSize" - "_" "_" "_" "AnimatedImage_invalidCrop" - "_" "_" "_" "AnimatedImage_scaled" - "_" "_" "_" "AnimatedImage_copyOnWrite" - "_" "_" "_" "AnimatedImage" - "_" "_" "_" "BRD_types" - "_" "_" "_" "Codec_frames" - "_" "_" "_" "Codec_partial" - "_" "_" "_" "Codec_partialWuffs" - "_" "_" "_" "Codec_requiredFrame" - "_" "_" "_" "Codec_rewind" - "_" "_" "_" "Codec_incomplete" - "_" "_" "_" "Codec_InvalidAnimated" - "_" "_" "_" "Codec_ossfuzz6274" - "_" "_" "_" "Codec_gif_out_of_palette" - "_" "_" "_" "Codec_xOffsetTooBig" - "_" "_" "_" "Codec_gif" - "_" "_" "_" "Codec_skipFullParse" - "_" "_" "_" "AndroidCodec_animated_gif" - ;; These fail for unknown reasons. - "_" "_" "_" "Gif" - "_" "_" "_" "Wuffs_seek_and_decode" - "_" "_" "_" "Skottie_Shaper_ExplicitFontMgr" - "8888" "skp" "_" "_" - "8888" "lottie" "_" "_" - "gl" "skp" "_" "_" - "gl" "lottie" "_" "_" - "_" "_" "_" "ES2BlendWithNoTexture"))))))) + (lambda* (#:key tests? inputs native-inputs #:allow-other-keys) + (if tests? + (let ((icu #$(this-package-native-input "icu4c-for-skia"))) + ;; Unbundle SPIRV-Tools dependency. + (substitute* "BUILD.gn" + (("deps \\+= \\[ \"//third_party/externals/spirv-tools:spvtools_val\" \\]") + "libs += [ \"SPIRV-Tools\" ]")) + (substitute* "src/sksl/SkSLCompiler.cpp" + (("\"spirv-tools/libspirv.hpp\"") + "<libspirv.hpp>")) + ;; Configure ICU dependency. + (substitute* "third_party/icu/BUILD.gn" + (("data_dir = \"\\.\\./externals/icu/\"") + (string-append "data_dir = \"" icu "/share/data/\"")) + (("script = \"\\.\\./externals/icu/scripts/") + (string-append "script = \"" icu "/share/scripts/")) + (("\\.\\./externals/icu/common/icudtl\\.dat") + (string-append icu "/share/data/icudtl.dat")) + (("sources = icu_sources") + "") + (("sources \\+= \\[ \"\\$data_assembly\" \\]") + "sources = [ \"$data_assembly\" ]")) + ;; Enable system libraries without is_official_build=true. + ;; This is necessary because is_official_build prevents from + ;; building dm. + (for-each + (lambda (libname) + (let ((snake (string-join (string-split libname #\-) "_"))) + (substitute* + (string-append "third_party/" libname "/BUILD.gn") + (((string-append "skia_use_system_" + snake + " = is_official_build.*")) + (string-append "skia_use_system_" snake " = true"))))) + '("zlib" "libjpeg-turbo" "harfbuzz" "libpng" "libwebp")) + ;; Configure with gn. + (invoke "gn" "gen" "out/Debug" + (string-append + "--args=" + "cc=\"gcc\" " ;defaults to 'cc' + "skia_compile_sksl_tests=false " ; disable some tests + "skia_use_perfetto=false " ; disable performance tests + "skia_use_wuffs=false " ; missing performance tool + "skia_use_system_expat=true " ; use system expat library + "skia_use_system_zlib=true " ; use system zlib library + ;; Specify where to locate the includes. + "extra_cflags=[" + (string-join + (map + (lambda (lib) + (string-append + "\"-I" + (search-input-directory + inputs + (string-append "include/" lib)) "\"")) + '("harfbuzz" + "freetype2" + "spirv-tools" + "spirv" + "unicode")) + ",") + "] " + ;; Otherwise the validate-runpath phase fails. + "extra_ldflags=[" + "\"-Wl,-rpath=" #$output "/lib\"" + "] " + ;; Disabled, otherwise the build system attempts to + ;; download the SDK at build time. + "skia_use_dng_sdk=false " + "skia_use_runtime_icu=true ")) + ;; Build dm testing tool. + (symlink + (string-append #$(this-package-native-input "gn") "/bin/gn") + "./bin/gn") + (invoke "ninja" "-C" "out/Debug" "dm") + ;; The test suite requires an X server. + (let ((xvfb (search-input-file (or native-inputs inputs) + "bin/Xvfb")) + (display ":1")) + (setenv "DISPLAY" display) + (system (string-append xvfb " " display " &"))) + ;; Run tests. + (invoke "out/Debug/dm" "-v" + "-w" "dm_output" + "--codecWritePath" "dm_output" + "--simpleCodec" + "--skip" + ;; The underscores are part of the dm syntax for + ;; skipping tests. + ;; These tests fail with segmentation fault. + "_" "_" "_" "Codec_trunc" + "_" "_" "_" "AnimCodecPlayer" + "_" "_" "_" "Codec_partialAnim" + "_" "_" "_" "Codec_InvalidImages" + "_" "_" "_" "Codec_GifInterlacedTruncated" + ;; This test started failing possibly after mesa + ;; being updated to 23.2.1 and possibly only on some + ;; hardware. + "_" "_" "_" "SkRuntimeBlender_GPU" + "_" "_" "_" "SkText_UnicodeText_Flags" + "_" "_" "_" "SkParagraph_FontStyle" + "_" "_" "_" "flight_animated_image" + ;; These tests fail because of Codec/Sk failure. + "_" "_" "_" "AndroidCodec_computeSampleSize" + "_" "_" "_" "AnimatedImage_invalidCrop" + "_" "_" "_" "AnimatedImage_scaled" + "_" "_" "_" "AnimatedImage_copyOnWrite" + "_" "_" "_" "AnimatedImage" + "_" "_" "_" "BRD_types" + "_" "_" "_" "Codec_frames" + "_" "_" "_" "Codec_partial" + "_" "_" "_" "Codec_partialWuffs" + "_" "_" "_" "Codec_requiredFrame" + "_" "_" "_" "Codec_rewind" + "_" "_" "_" "Codec_incomplete" + "_" "_" "_" "Codec_InvalidAnimated" + "_" "_" "_" "Codec_ossfuzz6274" + "_" "_" "_" "Codec_gif_out_of_palette" + "_" "_" "_" "Codec_xOffsetTooBig" + "_" "_" "_" "Codec_gif" + "_" "_" "_" "Codec_skipFullParse" + "_" "_" "_" "AndroidCodec_animated_gif" + ;; These fail for unknown reasons. + "_" "_" "_" "Gif" + "_" "_" "_" "Wuffs_seek_and_decode" + "_" "_" "_" "Skottie_Shaper_ExplicitFontMgr" + "8888" "skp" "_" "_" + "8888" "lottie" "_" "_" + "gl" "skp" "_" "_" + "gl" "lottie" "_" "_" + "_" "_" "_" "ES2BlendWithNoTexture")) + (format #t "test suite not run~%"))))))) (native-inputs (list gn libjpeg-turbo ninja pkg-config python-wrapper spirv-tools spirv-headers icu4c-for-skia glu xorg-server-for-tests)) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 66978fc2bc..13c8734e68 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -562,7 +562,7 @@ This package provides the core library and elements.") (list alsa-lib cdparanoia graphene - iso-codes + iso-codes/pinned libjpeg-turbo libogg libpng @@ -601,6 +601,9 @@ This package provides the core library and elements.") ((target-x86-32?) #~((substitute* "tests/check/meson.build" ((".*'libs/libsabi\\.c'.*") "")))) + ((target-arm32?) + #~((substitute* "tests/check/meson.build" + ((".*'orc_adder.*") "")))) ((target-riscv64?) #~((substitute* "tests/check/meson.build" ((".*'libs/gstglcolorconvert\\.c'.*") "") diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 3d4766713d..2742427008 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -731,7 +731,10 @@ highlighting and other features typical of a source code editor.") (outputs '("out" "debug")) (arguments `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas - #:configure-flags '("-Dinstalled_tests=false" "-Dgtk_doc=true") + #:configure-flags '("-Dinstalled_tests=false" + ,@(if (%current-target-system) + '() + '("-Dgtk_doc=true"))) #:phases (modify-phases %standard-phases (add-before 'configure 'disable-failing-tests @@ -1066,7 +1069,7 @@ application suites.") cups graphene harfbuzz - iso-codes + iso-codes/pinned json-glib-minimal libxml2 rest)) @@ -1358,7 +1361,7 @@ application suites.") gst-plugins-bad ;provides gstreamer-player gst-plugins-base ;provides gstreamer-gl harfbuzz - iso-codes + iso-codes/pinned json-glib libcloudproviders ;for cloud-providers support libgudev ;for gstreamer-gl @@ -2971,7 +2974,7 @@ excellent pavucontrol.") (define-public gromit-mpx (package (name "gromit-mpx") - (version "1.4.2") + (version "1.7.0") (source (origin (method git-fetch) (uri (git-reference @@ -2980,11 +2983,11 @@ excellent pavucontrol.") (file-name (git-file-name name version)) (sha256 (base32 - "0p3jivard85cvand9c5ksy1qwp8zcaczfd55b4xppg4xliqfcafs")))) + "12ginc9rpn66g1n0w5lxxfzyq4zlpvrpp8a87pvr8zkgcrbkhz4c")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; No tests. - (native-inputs (list pkg-config)) - (inputs (list gtk+ libappindicator)) + (native-inputs (list pkg-config gettext-minimal)) + (inputs (list gtk+ libappindicator lz4)) (home-page "https://github.com/bk138/gromit-mpx") (synopsis "On-screen annotation tool") (description diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 792b1c6fa8..27a30e6622 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -50,6 +50,7 @@ ;;; Copyright © 2024 Ilya Chernyshov <ichernyshovvv@gmail.com> ;;; Copyright © 2024 Artyom Bologov <mail@aartaka.me> ;;; Copyright © 2024 Felix Lechner <felix.lechner@lease-up.com> +;;; Copyright © 2024 Alec Barreto <mrh57@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1027,6 +1028,30 @@ that augment Guile's support for handling files and their names.") (name "guile2.2-filesystem") (inputs (list guile-2.2)))) +(define-public guile-swayer + (package + (name "guile-swayer") + (version "0.3.0") + (home-page "https://github.com/ebeem/guile-swayer") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ebeem/guile-swayer") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (snippet '(delete-file "manifest.scm")) + (sha256 + (base32 "16npa337rp0s9rg4fc749b1nq6kfxj77pdd1qfh9xdrb1n0w7awi")))) + (native-inputs (list guile-3.0)) + (build-system guile-build-system) + (synopsis "Extensible Guile bindings for SwayWM") + (description + "This package provides extensible Guile bindings for the Sway window +manager. It can be used to query Sway, assign keybindings and listen to +events in Guile.") + (license license:expat))) + (define-public guile-syntax-highlight (package (name "guile-syntax-highlight") @@ -6340,7 +6365,7 @@ This module implements this interface by use of Guile's dynamic FFI.") (define-public guile-goblins (package (name "guile-goblins") - (version "0.13.0") + (version "0.14.0") (source (origin (method url-fetch) @@ -6349,7 +6374,7 @@ This module implements this interface by use of Guile's dynamic FFI.") version ".tar.gz")) (sha256 (base32 - "1s1aahak0m2hygnwi09vb399w7idh2hmbbn0fi7mdky0scxb5ybr")))) + "1gqyx8mq54dcs8waxjidk6xk43b2dfnw3hrbs22z6pnd9rdaj7wd")))) (build-system gnu-build-system) (arguments (list #:make-flags diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index d8530f8705..2922b14a42 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -1366,7 +1366,7 @@ Simply put, it is a USB device whitelisting tool.") (define-public screentest (package (name "screentest") - (version "2.1") + (version "3.0") (source (origin (method git-fetch) @@ -1375,19 +1375,13 @@ Simply put, it is a USB device whitelisting tool.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0gv3xj9sbk1wsyijfw9xjnvy8pg7j4arjnma2r2kfi18qy32wd30")))) - (build-system gnu-build-system) - (inputs - (list glib gtk+-2)) - (native-inputs - (list autoconf - intltool - libtool - `(,glib "bin") - automake - pkg-config)) + (base32 "00422jbl8l10iw82m9m8sikaa9fwlnj7mgzvmnnazyq383aa1dkm")))) + (build-system meson-build-system) + (inputs (list glib gtk+)) + (native-inputs (list gettext-minimal pkg-config)) (synopsis "Simple screen testing tool") - (description "This is a program for testing the quality of CRT/LCD + (description + "This is a program for testing the quality of CRT/LCD screens. It displays various patterns and allows you to estimate the quality of your CRT/LCD monitor.") (home-page "https://github.com/TobiX/screentest") diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index 338d3ad78a..843681f311 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2019, 2020 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2015 John Soo <jsoo1@asu.edu> -;;; Copyright © 2019, 2020, 2022, 2023 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2019, 2020, 2022-2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org> ;;; Copyright © 2020 Brian Leung <bkleung89@gmail.com> @@ -297,7 +297,7 @@ to @code{cabal repl}).") (define-public git-annex (package (name "git-annex") - (version "10.20240808") + (version "10.20240831") (source (origin ;; hackage release doesn't include everything needed for extra bits. @@ -307,7 +307,7 @@ to @code{cabal repl}).") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "06pk4gzj6snspid5a01s1vqh305ca02is3ap86w41icrngnly4n4")))) + (base32 "1g6paxjpdjmzr623p7cf6chh42g5azwlzlnxgljhyhdmz6bxj5fr")))) (build-system haskell-build-system) (properties '((upstream-name . "git-annex"))) (arguments @@ -374,7 +374,7 @@ to @code{cabal repl}).") (add-after 'install 'install-more (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (bash (string-append out "/etc/bash_completions.d")) + (bash (string-append out "/etc/bash_completion.d")) (fish (string-append out "/share/fish/vendor_completions.d")) (zsh (string-append out "/share/zsh/site-functions"))) (setenv "PREFIX" out) @@ -399,6 +399,8 @@ to @code{cabal repl}).") (symlink (string-append bin "/git-annex") (string-append bin "/git-annex-shell")) (symlink (string-append bin "/git-annex") + (string-append bin "/git-remote-annex")) + (symlink (string-append bin "/git-annex") (string-append bin "/git-remote-tor-annex")))))))) (inputs (list curl @@ -698,6 +700,7 @@ Wayland, and Linux console environments alike.") (uri (git-reference (url "https://github.com/matterhorn-chat/matterhorn") (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 "08ng5axranilvfl9j3v0mjgpg76kzacrqj4c8x6pblpc3yxx02i5")))) (build-system haskell-build-system) diff --git a/gnu/packages/hunspell.scm b/gnu/packages/hunspell.scm index e228a844bf..8c076de3c4 100644 --- a/gnu/packages/hunspell.scm +++ b/gnu/packages/hunspell.scm @@ -273,28 +273,26 @@ spell-checking library.") (version "0.1") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.thanosapollo.org/hunspell-dict-el") - (commit commit))) - (sha256 + (method git-fetch) + (uri (git-reference + (url "https://git.thanosapollo.org/hunspell-dict-el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 (base32 "0z9nyfy50c0bjvvm42xwd3npjpp07a9slm3gfgvxanyqm7djrmb1")))) (build-system gnu-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'build) - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (share (string-append out "/share/hunspell/"))) - (install-file "el_GR.aff" share) - (install-file "el_GR.dic" share) - #t)))) - #:tests? #f)) - (native-inputs - (list hunspell ispell perl)) + `(#:phases (modify-phases %standard-phases + (delete 'build) + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/hunspell/"))) + (install-file "el_GR.aff" share) + (install-file "el_GR.dic" share) #t)))) + #:tests? #f)) + (native-inputs (list hunspell ispell perl)) (synopsis "Hunspell Greek/Hellenic dictionary") (description "This package provides a dictionary for the Hunspell spell-checking library.") diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm index 07f5b90f67..2f4211c385 100644 --- a/gnu/packages/ibus.scm +++ b/gnu/packages/ibus.scm @@ -195,7 +195,7 @@ dconf glib gtk+ - iso-codes + iso-codes/pinned json-glib libnotify libx11 diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 91890452d4..7f17c71aef 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net> ;;; Copyright © 2014, 2017 John Darrington <jmd@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2020 Leo Famulari <leo@famulari.name> -;;; Copyright © 2016-2023 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016-2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016, 2017, 2020, 2021, 2022 Arun Isaac <arunisaac@systemreboot.net> @@ -510,7 +510,7 @@ Features: (uri (string-append "https://www.ijg.org/files/jpegsrc.v" version ".tar.gz")) (sha256 (base32 - "0clwys9lcqlxqgcw8s1gwfm5ix2zjlqpklmd3mbvqmj5ibj51jwr")))) + "0spshb0126m70xpgkqwxic8rw1z6ywlrv2kfx3h37ibczfnac0r3")))) (build-system gnu-build-system) (synopsis "Library for handling JPEG files") (description @@ -2830,7 +2830,8 @@ Graphics (PNGs), intended as an easy-to-use replacement for @code{libpng}.") #:configure-flags #~(list "--buildtype=plain" "-Dtests=enabled" "-Dlibcurl=disabled" - "-Dgdk-pixbuf2=enabled"))) + "-Dgdk-pixbuf2=enabled" + "-Dbashcompletiondir=etc/bash_completion.d"))) (native-inputs (list pkg-config)) (inputs (list libjpeg-turbo libpng python)) ;; pkg-config's "Requires.private" need gdk-pixbuf. TODO: Remove it when diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index 524277fc2b..13e1652f87 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -204,7 +204,8 @@ endif()~%~%" (("add_pdfinput_test\\(font-(spacing|style) 1 draw-all" all) (string-append "#" all)))))) '()) - #$@(if (target-x86-32?) + #$@(if (or (target-x86-32?) + (target-arm32?)) '((add-after 'unpack 'fix-32bit-size_t-format (lambda _ ;; Fix an error due to format type mismatch with 32-bit size_t. diff --git a/gnu/packages/instrumentation.scm b/gnu/packages/instrumentation.scm index f8bc2702bc..86436130c9 100644 --- a/gnu/packages/instrumentation.scm +++ b/gnu/packages/instrumentation.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2021, 2022 Olivier Dion <olivier.dion@polymtl.ca> ;;; Copyright © 2023 Andy Tai <atai@atai.org> ;;; Copyright © 2023 Marius Bakke <marius@gnu.org> +;;; Copyright © 2024 Nguyễn Gia Phong <mcsinyx@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,7 @@ #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages gawk) + #:use-module (gnu packages gcc) #:use-module (gnu packages glib) #:use-module (gnu packages guile) #:use-module (gnu packages haskell-xyz) @@ -202,9 +204,7 @@ standard library headers.") (define-public dyninst (package (name "dyninst") - ;; Newer versions are not promoted on main home page. - ;; Upgrade to 12.0.1 if anyone require a newer version. - (version "10.2.1") + (version "13.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -212,9 +212,8 @@ standard library headers.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1m04pg824rqx647wvk9xl33ri8i6mm0vmrz9924li25dxbr4zqd5")) - (patches - (search-patches "dyninst-fix-glibc-compatibility.patch")))) + (base32 + "0vkd9z6zwvn13ynfys2fg5yanv7n9pl7x5z8m1lcnmnb0kwgi035")))) (build-system cmake-build-system) (arguments @@ -223,25 +222,22 @@ standard library headers.") ;; source. #:configure-flags (list "-DSTERILE_BUILD=ON") - ;; NOTE: dyninst needs to search for shared libraries that are linked - ;; against the instrumented binary in order to rebuild the entire - ;; program. For this purpose, one can use LD_LIBRARY_PATH or - ;; DYNISNT_REWRITER_PATHS environment variables to add paths for dyinst - ;; to search. However, dyninst also tries to be smart by executing - ;; ldconfig, which is not portable. If ldconfig is not available on - ;; the system, dyinst wrongly assumes that the shared libraries can not - ;; be found, even though it can. This bad logic is still there with - ;; newer versions of dyinst. Thus, this substitution makes the bad - ;; code path unreachable. #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-bad-logic + (add-after 'unpack 'adjust-supported-platform-name (lambda _ - (substitute* "dyninstAPI/src/linux.C" - (("if\\(\\!fgets\\(buffer, 512, ldconfig\\)\\)") - "fgets(buffer, 512, ldconfig); if (false)"))))))) + ;; That file checks for "i386" but + ;; 'cmake_host_system_information' returns "i686" when targeting + ;; i686-linux. Adjust accordingly. + (substitute* "cmake/DyninstPlatform.cmake" + (("\"i386\"") "\"i686\""))))))) (propagated-inputs - (list elfutils boost tbb-2020)) + (list elfutils libiberty boost tbb)) + + ;; Supported systems according to 'cmake/DyninstPlatform.cmake'. + (supported-systems '("x86_64-linux" "i686-linux" + "aarch64-linux" "powerpc64le-linux")) + (home-page "https://dyninst.org/") (synopsis "Dynamic instrumentation") (description "Dyninst is a collection of libraries for instrumenting, diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index e03203e70e..800654eda7 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -852,7 +852,7 @@ their levels to be controlled individually.") (define-public go-github-com-libp2p-go-libp2p (package (name "go-github-com-libp2p-go-libp2p") - (version "0.34.1") + (version "0.36.3") (source (origin (method git-fetch) @@ -861,7 +861,7 @@ their levels to be controlled individually.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0423h149ziyka9cai1sdsl1bnycphs3h4xa3b3rc6108gfrzzil2")))) + (base32 "1bpjqrb2zdp86va7ms36lpci1l6lgkx85rc3q13fmzks38mqqw8s")))) (build-system go-build-system) (arguments (list @@ -975,7 +975,7 @@ types.") (define-public kubo (package (name "kubo") - (version "0.29.0") + (version "0.30.0") (source (origin (method url-fetch/tarbomb) @@ -983,7 +983,7 @@ types.") "https://dist.ipfs.io/kubo/v" version "/kubo-source.tar.gz")) (sha256 - (base32 "121zm4k0wz2iqrl65c7bdg5d2bvz3hvj4pavk5178dyd1p49bl5r")) + (base32 "0kwbwbrlvgcb8lcg85gpab6czyrnq7r9139i5gp827231zfbcqzq")) (file-name (string-append name "-" version "-source")) (modules '((guix build utils))) (snippet '(for-each delete-file-recursively @@ -1142,6 +1142,7 @@ types.") go-github-com-fsnotify-fsnotify go-github-com-google-uuid go-github-com-hashicorp-go-multierror + go-github-com-hashicorp-go-version ;;go-github-com-ipfs-boxo go-github-com-ipfs-go-block-format go-github-com-ipfs-go-cid diff --git a/gnu/packages/iso-codes.scm b/gnu/packages/iso-codes.scm index d2bace6a3c..fd04d13a9f 100644 --- a/gnu/packages/iso-codes.scm +++ b/gnu/packages/iso-codes.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2022 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,9 +26,13 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system python) + #:use-module (guix build-system pyproject) + #:use-module (gnu packages check) #:use-module (gnu packages gettext) #:use-module (gnu packages perl) - #:use-module (gnu packages python)) + #:use-module (gnu packages python) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-science)) (define-public iso-codes/official ;; This package variant is intended for ‘external’ use, such as users running @@ -68,7 +73,7 @@ changes in the ISO standard and will not work with outdated information.") (license license:gpl2+))) ; some bits use the lgpl2 -(define-public iso-codes +(define-public iso-codes/pinned ;; This package should be used universally within Guix, e.g., as an input to ;; other Guix packages or in the Guix System installer's country selector. (hidden-package @@ -87,6 +92,59 @@ information.") (("(Taiwan), [^\"]*" _ name) name)))))) (synopsis "Various ISO standards as used by GNU@tie{}Guix")))) +(define-public iso-codes + (package + (inherit iso-codes/pinned) + (version "4.17.0") + (source (origin + (inherit (package-source iso-codes/pinned)) + (uri (git-reference + (url (package-home-page iso-codes/pinned)) + (commit (string-append "v" version)))) + (file-name (git-file-name (package-name iso-codes/pinned) version)) + (sha256 + (base32 + "0a77b9aid68vakhsa3l3lx2jav5q9fp7vn50mwmzkr2lkr2l4k41")))))) + +(define-public python-country-converter + (package + (name "python-country-converter") + (version "1.2") + (source + (origin + (method git-fetch) ;no test data in PyPI archive + (uri (git-reference + (url "https://github.com/IndEcol/country_converter") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0i1nlbahfwgx1f5q4ib32539xmc694834s0flzp0wlki0hwzd4rd")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-setuptools)) + (propagated-inputs + (list python-pandas)) + (home-page "https://github.com/IndEcol/country_converter") + (synopsis "Auto conversion from different country name standards") + (description + "The country converter (coco) automates the conversion from different +standards and version of country names. Internally, coco is based on a table +specifying the different ISO and UN standards per country together with the +official name and a regular expression which aim to match all English versions +of a specific country name. In addition, coco includes classification based +on UN-, EU-, OECD-membership, UN regions specifications, continents and +various MRIO and IAM databases. + +Supported classification schemas: APEC, BASIC, BRIC, CC41, CIS, Cecilia 2050 +classification, DACcode, EEA membership, EU membership, EXIOBASE 1 +classification, EXIOBASE 2 classification, EXIOBASE 3 classification, Eora, +FAOcode, G20, G7, GBDcode, GWcode, IEA, IMAGE, IOC ISO 3166-1 alpha-2, ISO +3166-1 alpha-3, ISO 3166-1 numeric, MESSAGE 11-region classification, OECD +membership, REMIND, Schengen region, UN membership, UN numeric code, UN +region, WIOD classification, ccTLD.") + (license license:gpl3))) + (define-public python-iso639 (package (name "python-iso639") diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 6f42b1ef67..9c5d448609 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -81,6 +81,65 @@ (define %jami-nightly-version "20240524.0") (define %jami-daemon-commit "fd2f2815448ce4072dcbc3995950788573d63f3b") +(define webrtc-audio-processing/jami + ;; libjami still requires an 0.x version of this package. Remove it when + ;; libjami moves on, and don't forget to delete the patch. + (package + (name "webrtc-audio-processing") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri + (string-append "http://freedesktop.org/software/pulseaudio/" + "webrtc-audio-processing/webrtc-audio-processing-" + version ".tar.xz")) + (sha256 + (base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0")))) + (build-system gnu-build-system) + (arguments + (if (or (target-riscv64?) + (target-powerpc?)) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + (let ((patch-file + #$(local-file + (search-patch + "webrtc-audio-processing-big-endian.patch")))) + (invoke "patch" "--force" "-p1" "-i" patch-file) + (substitute* "webrtc/typedefs.h" + (("defined\\(__aarch64__\\)" all) + (string-append + ;; powerpc-linux + "(defined(__PPC__) && __SIZEOF_SIZE_T__ == 4)\n" + "#define WEBRTC_ARCH_32_BITS\n" + "#define WEBRTC_ARCH_BIG_ENDIAN\n" + ;; powerpc64-linux + "#elif (defined(__PPC64__) && defined(_BIG_ENDIAN))\n" + "#define WEBRTC_ARCH_64_BITS\n" + "#define WEBRTC_ARCH_BIG_ENDIAN\n" + ;; aarch64-linux + "#elif " all + ;; riscv64-linux + " || (defined(__riscv) && __riscv_xlen == 64)" + ;; powerpc64le-linux + " || (defined(__PPC64__) && defined(_LITTLE_ENDIAN))")))))))) + '())) + (native-inputs + (if (or (target-riscv64?) + (target-powerpc?)) + (list + (local-file (search-patch "webrtc-audio-processing-big-endian.patch")) + patch) + '())) + (home-page (package-home-page webrtc-audio-processing)) + (synopsis (package-synopsis webrtc-audio-processing)) + (description (package-description webrtc-audio-processing)) + (license (package-license webrtc-audio-processing)))) + (define-public libjami (package (name "libjami") @@ -158,7 +217,7 @@ sdbus-c++ speex speexdsp - webrtc-audio-processing + webrtc-audio-processing/jami yaml-cpp)) (native-inputs (list autoconf diff --git a/gnu/packages/java-bootstrap.scm b/gnu/packages/java-bootstrap.scm index 481d8cd075..645cbfa442 100644 --- a/gnu/packages/java-bootstrap.scm +++ b/gnu/packages/java-bootstrap.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017, 2022 Marius Bakke <marius@gnu.org> -;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018, 2020, 2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2019 Andrius Štikonas <andrius@stikonas.eu> @@ -492,10 +492,9 @@ the standard javac executable."))) (for-each (lambda (tool) (with-output-to-file (string-append bin tool) (lambda _ - #$@(if (string-prefix? "armhf" (or (%current-system) - (%current-target-system))) + #$@(if (target-arm32?) `((format #t "#!~a/bin/sh -~a/bin/jamvm -Xnocompact -classpath ~a/share/classpath/tools.zip \ +~a/bin/jamvm -classpath ~a/share/classpath/tools.zip \ gnu.classpath.tools.~a.~a $@" bash jamvm classpath tool (if (string=? "native2ascii" tool) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 1743d27226..f0231471d8 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2021, 2022 Simon Tournier <zimon.toutoune@gmail.com> -;;; Copyright © 2021-2023 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2021-2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> @@ -506,6 +506,28 @@ not performance, so this package should be used for precision experiments only, not performance experiments.") (license license:expat))) +(define-public julia-bijections + (package + (name "julia-bijections") + (version "0.1.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/scheinerman/Bijections.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1f58cvjvrjh6xzi6zzbakdicdhpkyzwdp15fg2y12vslgmab2k9h")))) + (build-system julia-build-system) + (home-page "https://github.com/scheinerman/Bijections.jl") + (synopsis "Bijection data type for Julia") + (description + "This package defines the @code{Bijection} data type. +A @code{Bijection} data structure behaves similar to a @code{Dict}, +however it prevents assigning the same value to two different keys.") + (license license:expat))) + (define-public julia-bioalignments (package (name "julia-bioalignments") @@ -1877,7 +1899,7 @@ be passed to in-place differentiation methods instead of an output buffer.") (define-public julia-diffrules (package (name "julia-diffrules") - (version "1.12.2") + (version "1.15.1") (source (origin (method git-fetch) @@ -1886,7 +1908,7 @@ be passed to in-place differentiation methods instead of an output buffer.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0l983kzy01y7qqw42pi0ihpvx3yzfnwrhcmk38avw7y513qlm7vf")))) + (base32 "0gbsi9bl3nk9v0wd0d1prwwxpg57632nwdcj6n6qyv21y2vqzajq")))) (build-system julia-build-system) (propagated-inputs (list julia-irrationalconstants @@ -2519,6 +2541,19 @@ update step.") (sha256 (base32 "16k1r02w5qivvr99n5a9impbnnzygpj705irf5ypy208np91xyyd")))) (build-system julia-build-system) + (arguments + (list + #:phases + (if (target-aarch64?) + #~(modify-phases %standard-phases + (add-after 'unpack 'skip-some-tests + (lambda _ + (substitute* "test/lapack.jl" + (("@testset.*stedc.*" all) + (string-append all "return\n")) + (("@testset.*stemr.*" all) + (string-append all "return\n")))))) + #~%standard-phases))) (native-inputs (list julia-quaternions)) (home-page "https://github.com/JuliaLinearAlgebra/GenericLinearAlgebra.jl") @@ -5598,6 +5633,34 @@ bytes in a chunk of memory. Think of it like a much faster version of (supported-systems '("x86_64-linux")) (license license:expat))) +(define-public julia-scientifictypesbase + (package + (name "julia-scientifictypesbase") + (version "3.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaAI/ScientificTypesBase.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gkkyvighbwplbv3mcxdrall19zjsb9cwp0w2mr26sl6xbjxr8xc")))) + (build-system julia-build-system) + (native-inputs (list julia-tables)) + (home-page "https://github.com/JuliaAI/ScientificTypesBase.jl") + (synopsis + "Base interface for dispatching on the 'scientific' type of data") + (description + "This package provides a Julia interface defining a collection +of types (without instances) for implementing conventions about the scientific +interpretation of data. This package makes a distinction between the machine +type and the scientific type of a Julia object. A machine type refers to the +Julia type being used to represent the object, for instance @code{Float64}. The +scientific type refers to how the object should be interpreted, for instance +@code{Continuous} or @code{Multiclass{3}}.") + (license license:expat))) + (define-public julia-scratch (package (name "julia-scratch") @@ -5969,6 +6032,29 @@ statically sized arrays in Julia, using the abstract type linear algebra operations.") (license license:expat))) +(define-public julia-staticarrayscore + (package + (name "julia-staticarrayscore") + (version "1.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaArrays/StaticArraysCore.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dvi9c4abjzvdn6lyr6adpc8qf4432rg3p5z96a3rc3nlsvfns9y")))) + (build-system julia-build-system) + (home-page "https://github.com/JuliaArrays/StaticArraysCore.jl") + (synopsis "Common types and functions for static arrays") + (description + "This package provides definitions for most of the +primary types and functions in @code{StaticArrays.jl}. This enables +downstream packages to implement new methods on these types without +depending on the entirety of @code{StaticArrays.jl}.") + (license license:expat))) + (define-public julia-statsapi (package (name "julia-statsapi") diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 88f79615f0..974fd1c4dd 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -1129,7 +1129,7 @@ other special events for a geographical region.") (native-inputs (list extra-cmake-modules python-minimal tzdata-for-tests)) (inputs - (list qtbase qtdeclarative iso-codes)) + (list qtbase qtdeclarative iso-codes/pinned)) (arguments (list #:phases @@ -1173,7 +1173,7 @@ translation scripting.") (native-inputs (list extra-cmake-modules)) (inputs - (list qtbase-5 qtdeclarative-5 qtscript iso-codes)))) + (list qtbase-5 qtdeclarative-5 qtscript iso-codes/pinned)))) (define-public kidletime (package @@ -2359,7 +2359,7 @@ integrated it into your application's other widgets.") (build-system qt-build-system) (native-inputs (list extra-cmake-modules ;; for test - iso-codes)) + iso-codes/pinned)) (inputs (list qtdeclarative)) (propagated-inputs (list ;; As required by KF6ContactsConfig.cmake. diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm index 56213bed08..d36cfde21b 100644 --- a/gnu/packages/kde-plasma.scm +++ b/gnu/packages/kde-plasma.scm @@ -2051,7 +2051,7 @@ the KDE Plasma 6 desktop.") libxkbfile libxcursor libxkbcommon)) - (propagated-inputs (list iso-codes kirigami kcmutils plasma-workspace)) + (propagated-inputs (list iso-codes/pinned kirigami kcmutils plasma-workspace)) (arguments (list #:qtbase qtbase #:phases @@ -2726,7 +2726,7 @@ sensors, process information and other system resources.") dbus fontconfig icu4c - iso-codes + iso-codes/pinned plasma-activities plasma-activities-stats karchive diff --git a/gnu/packages/librewolf.scm b/gnu/packages/librewolf.scm index 21f73f799d..6fd0aa51f1 100644 --- a/gnu/packages/librewolf.scm +++ b/gnu/packages/librewolf.scm @@ -40,7 +40,6 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. - (define-module (gnu packages librewolf) #:use-module ((srfi srfi-1) #:hide (zip)) #:use-module (guix build-system gnu) @@ -116,10 +115,13 @@ (define computed-origin-method (@@ (guix packages) computed-origin-method)) -(define librewolf-source - (let* ((ff-src (firefox-source-origin "129.0.1" "0wy0fn0pavlhlkdybr59hhbn5ng0zn56mxa7gsknf8f2whiyipwx")) - (version "129.0.1-1") - (lw-src (librewolf-source-origin version "0pvv3v23q31hdjvqi1f3cqfyjrb8dbrrbfwxj2wacak1g0mzbxf4"))) +(define* (make-librewolf-source #:key version firefox-hash librewolf-hash) + (let* ((ff-src (firefox-source-origin + (car (string-split version #\-)) + firefox-hash)) + (lw-src (librewolf-source-origin + version + librewolf-hash))) (origin (method computed-origin-method) @@ -164,11 +166,6 @@ (("^ff_source_tarball:=.*") (string-append "ff_source_tarball:=" #+ff-src))) - ;; Remove encoding_rs patch, it doesn't build with Rust 1.75. - (substitute* '("assets/patches.txt") - (("patches/encoding_rs.patch\\\n$") - "")) - ;; Stage locales. (begin (format #t "Staging locales...~%") @@ -215,13 +212,20 @@ ;; Update this id with every update to its release date. ;; It's used for cache validation and therefore can lead to strange bugs. ;; ex: date '+%Y%m%d%H%M%S' -(define %librewolf-build-id "20240817075827") +(define %librewolf-build-id "20240922110507") (define-public librewolf (package (name "librewolf") - (version "129.0.1-1") - (source librewolf-source) + (version "130.0.1-1") + (source + (origin + (inherit (make-librewolf-source + #:version version + #:firefox-hash "0w4z3fq5zhm63a0wmhvmqrj263bvy962dir25q3z0x5hx6hjawh2" + #:librewolf-hash "0f80pihn375bdjhjmmg2v1w96wpn76zb60ycy39wafwh1dnzybrd")) + (patches + (search-patches "librewolf-add-paths-to-rdd-allowlist.patch")))) (build-system gnu-build-system) (arguments (list @@ -318,6 +322,22 @@ (substitute* "dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp" (("libavcodec\\.so") libavcodec))))) + (add-after 'unpack 'neuter-genai + (lambda* _ + ;; Don't compile the code in. + (substitute* "browser/components/moz.build" + (("\"genai\",") "")) + ;; Lock the preferences so they can't be enabled. + (substitute* "lw/librewolf.cfg" + (("defaultPref\\(\"browser\\.ml\\.") + "lockPref(\"browser.ml.")) + ;; Correct a preference typo + ;; see https://codeberg.org/librewolf/issues/issues/1919#issuecomment-2325954 + ;; Remove this in the next update. + (substitute* "lw/librewolf.cfg" + (("browser\\.ml\\.enabled") + "browser.ml.enable")) + )) (add-after 'patch-source-shebangs 'patch-cargo-checksums (lambda _ (use-modules (guix build cargo-utils)) @@ -575,26 +595,12 @@ ;; For U2F and WebAuthn "eudev"))) - ;; VA-API is run in the RDD (Remote Data Decoder) sandbox - ;; and must be explicitly given access to files it needs. - ;; Rather than adding the whole store (as Nix had - ;; upstream do, see - ;; <https://github.com/NixOS/nixpkgs/pull/165964> and - ;; linked upstream patches), we can just follow the - ;; runpaths of the needed libraries to add everything to - ;; LD_LIBRARY_PATH. These will then be accessible in the - ;; RDD sandbox. - (rdd-whitelist (map (cut string-append <> "/") - (delete-duplicates (append-map - runpaths-of-input - '("mesa" - "ffmpeg"))))) (gtk-share (string-append (assoc-ref inputs "gtk+") "/share"))) (wrap-program (car (find-files lib "^librewolf$")) `("LD_LIBRARY_PATH" prefix - (,@libs ,@rdd-whitelist)) + ,libs) `("XDG_DATA_DIRS" prefix (,gtk-share)) `("MOZ_LEGACY_PROFILES" = diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b77f08350b..60bf4d7b5b 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -513,7 +513,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The current "stable" kernels. That is, the most recently released major ;; versions that are still supported upstream. -(define-public linux-libre-6.10-version "6.10.7") +(define-public linux-libre-6.10-version "6.10.11") (define-public linux-libre-6.10-gnu-revision "gnu") (define deblob-scripts-6.10 (linux-libre-deblob-scripts @@ -523,7 +523,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1zmgsgzrcsjzjzhgb12drc0f42ag8xak6z7zzx324f0wrf4i67zf"))) (define-public linux-libre-6.10-pristine-source (let ((version linux-libre-6.10-version) - (hash (base32 "1adkbn6dqbpzlr3x87a18mhnygphmvx3ffscwa67090qy1zmc3ch"))) + (hash (base32 "15ihkbsj0idwzbvhynjm3kcnkk0alf3xipip8ngib1f1z13a0kgv"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.10))) @@ -532,7 +532,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; Here are the support timelines: ;; <https://www.kernel.org/category/releases.html> -(define-public linux-libre-6.6-version "6.6.48") +(define-public linux-libre-6.6-version "6.6.52") (define-public linux-libre-6.6-gnu-revision "gnu") (define deblob-scripts-6.6 (linux-libre-deblob-scripts @@ -542,12 +542,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0kpkmdmrw9bnypdd0z489smh8bbwgg1ii301g1ynqfdkzd2ca1iq"))) (define-public linux-libre-6.6-pristine-source (let ((version linux-libre-6.6-version) - (hash (base32 "0a90fx0r25nkcr5b16dn1j7vwyndnshaxn6ziyviccds59xxy5kb"))) + (hash (base32 "1f5l6y7abscm01dr740fzvq8r756ar854n0i299smm4rhcsap48m"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.6))) -(define-public linux-libre-6.1-version "6.1.107") +(define-public linux-libre-6.1-version "6.1.111") (define-public linux-libre-6.1-gnu-revision "gnu") (define deblob-scripts-6.1 (linux-libre-deblob-scripts @@ -557,12 +557,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "11jbnj0d3262grf9vkn0668kvfxifxw98ccvn81wkaykll01k5nx"))) (define-public linux-libre-6.1-pristine-source (let ((version linux-libre-6.1-version) - (hash (base32 "1s5h51r41l0d3k1h9i4mya7nz53jd6i200s06w5gl49hsz8jjcpl"))) + (hash (base32 "1c7d49kppv8xgqlsrfm1286mnvz8vcnbqqh6zgfca2s13px9hwn4"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.1))) -(define-public linux-libre-5.15-version "5.15.165") +(define-public linux-libre-5.15-version "5.15.167") (define-public linux-libre-5.15-gnu-revision "gnu") (define deblob-scripts-5.15 (linux-libre-deblob-scripts @@ -572,12 +572,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1l8dhfby3qx8vs8fq6yybixzrghbh03wflzwly4rq08wabcr87z8"))) (define-public linux-libre-5.15-pristine-source (let ((version linux-libre-5.15-version) - (hash (base32 "1zn627gid0dik3r5k61r9ff4sz7md1jnbwiixpyllqzb5kld6vd3"))) + (hash (base32 "0c6s6l5sz9ibws7bymb393ww0z9i3amsk1yx0bahipz3xhc1yxdi"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.15))) -(define-public linux-libre-5.10-version "5.10.224") +(define-public linux-libre-5.10-version "5.10.226") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts @@ -587,12 +587,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1isiih0laz4wbivsg0pcvlgrflq3lv10fakv9lvg2b4s0yd9ybdn"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "06nivms93yjbddv3gl88m7bdrr0676nm3p12iqvsdfr4fg39kc0r"))) + (hash (base32 "19hwwl5sbya65mch7fwmji2cli9b8796zjqbmkybjrarg1j9m8gn"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.282") +(define-public linux-libre-5.4-version "5.4.284") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts @@ -602,12 +602,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0x0xg0fcykpd117x3q0gim8jilhx922ashhckjvafxv2gk2zzjhj"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "1q3xvl4c5dlql6jh0g8kn01aljgl946gmq4ljjzvffykfq4pg0jm"))) + (hash (base32 "0axkwfhvq3w2072xjqww476qa3rjglxyqmf72mlp9b5ymswil8kp"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.320") +(define-public linux-libre-4.19-version "4.19.322") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts @@ -617,7 +617,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0fgkp3v7qgqpn7l1987xcwwlrmwsbscqnxfv06p8nkavrhymrv3c"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "18a723djyq3y2jhjazwgiwqslh1yz954wb82cg7bf083n091lrwx"))) + (hash (base32 "0qj106lj554y1kdqj8kwyf7pk9bvrrpgz6s8zyh7d61mk7wws9sf"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) @@ -851,7 +851,7 @@ ARCH and optionally VARIANT, or #f if there is no such configuration." ("CONFIG_BPF_SYSCALL" . #t)) '()) ,@(if (version>=? version "5.13") - '(("BPF_UNPRIV_DEFAULT_OFF" . #t)) + '(("CONFIG_BPF_UNPRIV_DEFAULT_OFF" . #t)) '()) ("CONFIG_NET_CLS_BPF" . m) ;classify packets based on BPF filters ("CONFIG_NET_ACT_BPF" . m) ;to execute BPF code on packets @@ -1371,6 +1371,66 @@ Linux kernel. It has been modified to remove all non-free binary blobs.") ("CONFIG_RTC_DRV_RK808" . #t)) (default-extra-linux-options linux-libre-5.4-version)))) +(define-public linux-libre-arm64-honeycomb + ;; Kernel for use on the HoneyComb LX2 boards: + ;; <https://shop.solid-run.com/product/SRCFTXE000IV13/>. + (make-linux-libre* linux-libre-5.15-version + linux-libre-5.15-gnu-revision + linux-libre-5.15-source + '("aarch64-linux") + #:extra-version "arm64-honeycomb" + #:extra-options + ;; See + ;; https://github.com/SolidRun/lx2160a_build/blob/master/configs/linux/lx2k_additions.config + (append + `(("CONFIG_GPIO_SYSFS" . #true) + ("CONFIG_GPIO_MPC8XXX" . #true) + ("CONFIG_NET_PKTGEN" . #true) + ("CONFIG_USB_SERIAL" . #true) + ("CONFIG_USB_SERIAL_CONSOLE" . #true) + ("CONFIG_USB_SERIAL_GENERIC" . #true) + ("CONFIG_USB_SERIAL_SIMPLE" . #true) + ("CONFIG_USB_SERIAL_FTDI_SIO" . #true) + ("CONFIG_USB_ACM" . #true) + ("CONFIG_USB_NET_DRIVERS" . #true) + ("CONFIG_USB_USBNET" . #true) + ("CONFIG_USB_NET_CDCETHER" . #true) + ("CONFIG_USB_NET_CDC_NCM" . #true) + ("CONFIG_USB_NET_NET1080" . #true) + ("CONFIG_USB_NET_CDC_SUBSET_ENABLE" . #true) + ("CONFIG_USB_NET_CDC_SUBSET" . #true) + ("CONFIG_USB_ARMLINUX" . #true) + ("CONFIG_BLK_DEV_NVME" . #true) + ("CONFIG_NVMEM_BCM_OCOTP" . #true) + ("CONFIG_DRM_AMDGPU" . #true) + ("CONFIG_DRM_AMDGPU_SI" . #true) + ("CONFIG_DRM_AMDGPU_CIK" . #true) + ("CONFIG_DRM_AMDGPU_USERPTR" . #true) + ("CONFIG_DRM_AMD_DC" . #true) + ("CONFIG_CHASH" . #true) + ("CONFIG_PMBUS" . #true) + ("CONFIG_SENSORS_PMBUS" . #true) + ("CONFIG_REGULATOR" . #true) + ("CONFIG_REGULATOR_FIXED_VOLTAGE" . #true) + ("CONFIG_REGULATOR_PWM" . #true) + ("CONFIG_SENSORS_AMC6821" . #true) + ("CONFIG_SENSORS_LM90" . #true) + ("CONFIG_SENSORS_LTC2978" . #true) + ("CONFIG_SENSORS_LTC2978_REGULATOR" . #true) + ("CONFIG_TMPFS" . #true) + ("CONFIG_TMPFS_POSIX_ACL" . #true) + ("CONFIG_TMPFS_XATTR" . #true) + ;;("CONFIG_BLK_DEV_RAM_SIZE" . 524288) + ("CONFIG_POWER_RESET_GPIO" . #true) + ("CONFIG_CRYPTO_USER_API_HASH" . #true) + ("CONFIG_CRYPTO_USER_API_SKCIPHER" . #true) + ("CONFIG_CRYPTO_USER_API_RNG" . #true) + ("CONFIG_CRYPTO_USER_API_AEAD" . #true) + + ;; For connecting to ci.guix.gnu.org over VPN. + ("CONFIG_WIREGUARD" . m)) + (default-extra-linux-options linux-libre-5.15-version)))) + (define-public linux-libre-riscv64-generic (make-linux-libre* linux-libre-version linux-libre-gnu-revision @@ -2138,7 +2198,7 @@ It provides the commands @code{powercap-info} and @code{powercap-set}.") (define-public powerstat (package (name "powerstat") - (version "0.02.28") + (version "0.04.03") (source (origin (method git-fetch) @@ -2147,7 +2207,7 @@ It provides the commands @code{powercap-info} and @code{powercap-set}.") (commit (string-append "V" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1wydjxmb6qf7rqarpl8rblg4biq3r2kfcx7p3pzvsr0w1xwdiisd")))) + (base32 "1a1fnw4rb8fx4wrcl0yc6dbjj49k6vagnq7diyw4fs4i5nin7mv3")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -8916,8 +8976,10 @@ comparing system environments.") (if-supported psm2)))) (arguments (list #:configure-flags - #~(list "--enable-efa" - "--enable-verbs"))) + #~(append (if #$(target-64bit?) + (list "--enable-efa") + '()) + (list "--enable-verbs")))) (home-page "https://ofiwg.github.io/libfabric/") (synopsis "Open Fabric Interfaces") (description diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 02eb3514ee..64fe6d3181 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -37,7 +37,7 @@ ;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2022 Trevor Richards <trev@trevdev.ca> ;;; Copyright © 2022, 2023 Artyom Bologov <mail@aartaka.me> -;;; Copyright © 2023 Roman Scherer <roman@burningswell.com> +;;; Copyright © 2023, 2024 Roman Scherer <roman@burningswell.com> ;;; Copyright © 2023 ykonai <mail@ykonai.net> ;;; Copyright © 2023 Gabriel Hondet <gabriel.hondet@cominety.net> ;;; Copyright © 2023 Raven Hallsby <karl@hallsby.com> @@ -81,6 +81,7 @@ #:use-module (guix build-system trivial) #:use-module (guix build-system emacs) #:use-module (gnu packages audio) + #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages c) #:use-module (gnu packages compression) @@ -1163,6 +1164,43 @@ computer known.") (define-public cl-antik (sbcl-package->cl-source-package sbcl-antik)) +(define-public sbcl-anypool + (let ((commit "5389ec945882e87f2fc1d3e852c91aaf176556e5") + (revision "1")) + (package + (name "sbcl-anypool") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fukamachi/anypool") + (commit commit))) + (file-name (git-file-name "cl-anypool" version)) + (sha256 + (base32 "1ffssc5fzh7gj0z94xxfb3mk5cwja65lrhxyfgib15a6yxqf1kk1")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-rove)) + (inputs + (list sbcl-bordeaux-threads + sbcl-cl-speedy-queue)) + (arguments + '(#:asd-systems '("anypool" + "anypool/middleware"))) + (home-page "https://github.com/fukamachi/anypool") + (synopsis "General-purpose connection pooling library") + (description + "This package provides a general-purpose connection pooling library for +Common Lisp.") + (license license:bsd-2)))) + +(define-public cl-anypool + (sbcl-package->cl-source-package sbcl-anypool)) + +(define-public ecl-anypool + (sbcl-package->ecl-package sbcl-anypool)) + (define-public sbcl-april (let ((commit "bdd74f168ec82f28fe4ab692f2c0af39441a5701") (revision "3")) @@ -1929,6 +1967,40 @@ impossible to merge back upstream.") (define-public ecl-binpack (sbcl-package->ecl-package sbcl-binpack)) +(define-public sbcl-birch + (let ((commit "30cd24260675c6c4e276daaf28be8d02ac15dd8f") + (revision "0")) + (package + (name "sbcl-birch") + (version (git-version "1.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jorams/birch") + (commit commit))) + (file-name (git-file-name "cl-birch" version)) + (sha256 + (base32 "1b24xng92ra7420s3zy44pybk4h7xg4kjwdk35arl46badgi28r1")))) + (build-system asdf-build-system/sbcl) + (inputs (list sbcl-alexandria + sbcl-cl+ssl + sbcl-flexi-streams + sbcl-split-sequence + sbcl-usocket)) + (native-inputs (list sbcl-prove)) + (home-page "https://github.com/jorams/birch") + (synopsis "Common Lisp IRC client library") + (description "Birch is a simple Common Lisp IRC client library. It +makes use of CLOS for event handling.") + (license (list license:expat))))) + +(define-public cl-birch + (sbcl-package->cl-source-package sbcl-birch)) + +(define-public ecl-birch + (sbcl-package->ecl-package sbcl-birch)) + (define-public sbcl-bit-smasher ;; No release. (let ((commit "c2dcb3b5ec0e485484be681fe17c4e81e58790d9")) @@ -2452,6 +2524,37 @@ can contain any kind of values.") (define-public ecl-bst (sbcl-package->ecl-package sbcl-bst)) +(define-public sbcl-bt-semaphore + (let ((commit "46b4bf315590f510d2d4ec5ca8908efbe68007e9") + (revision "0")) + (package + (name "sbcl-bt-semaphore") + (version (git-version "0.6.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/r-moeritz/bt-semaphore") + (commit commit))) + (sha256 + (base32 "0rl7yp36225z975hg069pywwlpchwn4086cgxwsi2db5mhghpr7l")) + (file-name (git-file-name "cl-bt-semaphore" version)))) + (build-system asdf-build-system/sbcl) + (inputs (list sbcl-bordeaux-threads)) + (native-inputs (list sbcl-clunit)) + (synopsis "Semaphore implementation for @code{bordeaux-threads}") + (description + "@code{bt-semaphore} is a semaphore implementation for use with +@code{bordeaux-threads}.") + (home-page "https://github.com/r-moeritz/bt-semaphore") + (license license:expat)))) + +(define-public cl-bt-semaphore + (sbcl-package->cl-source-package sbcl-bt-semaphore)) + +(define-public ecl-bt-semaphore + (sbcl-package->ecl-package sbcl-bt-semaphore)) + (define-public sbcl-bubble-operator-upwards (let ((commit "846275a318b960de81b62caecb1e31930f70aef6") (revision "0")) @@ -3561,7 +3664,17 @@ and a core image.") (sbcl-package->cl-source-package sbcl-ciel)) (define-public ecl-ciel - (sbcl-package->ecl-package sbcl-ciel)) + ;; Remove the "image" output and the build phase "build-image" + ;; (which fails because ECL has no support for images). + (let ((pkg (sbcl-package->ecl-package sbcl-ciel))) + (package + (inherit pkg) + (outputs '("out")) + (arguments + (substitute-keyword-arguments (package-arguments pkg) + ((#:phases phases) + `(modify-phases ,phases + (delete 'build-image)))))))) (define-public sbcl-ciel-repl (let ((commit "0b26d64dcd91a3a2aa962842629a853261dd30fe") @@ -4038,6 +4151,76 @@ to cl-async.") (define-public ecl-cl-async-future (sbcl-package->ecl-package sbcl-cl-async-future)) +(define libasyncprocess + (let ((commit "8067007e283745b94a36a51320b41b65ac296e24") + (revision "1")) + (package + (name "libasyncprocess") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lem-project/async-process") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0691z0vs5c65m24p1yi12iy27j59layzvzyy1yl19704x05442qh")) + (modules '((guix build utils))) + (snippet + ;; Delete precompiled artifacts. + `(begin + (for-each delete-file-recursively + (list "static" + "static_old0001-819cbf6")))))) + (build-system gnu-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'bootstrap + (lambda _ + (invoke "libtoolize") + (invoke "aclocal") + (invoke "autoheader") + (invoke "automake" "-a") + (invoke "autoconf")))))) + (native-inputs (list autoconf automake libtool)) + (home-page "https://github.com/lem-project/async-process") + (synopsis "C library component for @code{cl-async-process}") + (description + "This package provides the C library component for @code{cl-async-process}.") + (license license:expat)))) + +(define-public sbcl-async-process + (package + (inherit libasyncprocess) + (name "sbcl-async-process") + (build-system asdf-build-system/sbcl) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/async-process.lisp" + (("libasyncprocess\\.so") + (search-input-file inputs + "/lib/async-process/libasyncprocess.so")))))))) + (inputs + (modify-inputs (package-inputs libasyncprocess) + (prepend libasyncprocess sbcl-cffi))) + (home-page "https://github.com/lem-project/async-process") + (synopsis "Asynchronous process execution for Common Lisp") + (description "This library provides an asynchronous process +execution mechanism for Common Lisp."))) + +(define-public cl-async-process + (sbcl-package->cl-source-package sbcl-async-process)) + +(define-public ecl-async-process + (sbcl-package->ecl-package sbcl-async-process)) + (define-public sbcl-cl-autowrap (let ((revision "2") (commit "a5d71ebd7c21b87f449db1e16ab815750d7c0ea4")) @@ -4075,6 +4258,50 @@ to cl-async.") (define-public ecl-cl-autowrap (sbcl-package->ecl-package sbcl-cl-autowrap)) +(define-public sbcl-cl-base16 + (let ((commit "ae4b7f416c0c91f6323e901be912c0f7378fe3da") + (revision "0")) + (package + (name "sbcl-cl-base16") + (version (git-version "0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tpine/cl-base16") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m7ndmk4xhizn3q3ywjvw8sg4pfgp6lrd0wac5d1bf7wbw6afh5q")))) + (build-system asdf-build-system/sbcl) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-git-executable + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "builder.lisp" + (("\"git") + (string-append "\"" (search-input-file inputs + "/bin/git"))))))))) + (inputs + (list git + sbcl-cl-yaml + sbcl-cl-mustache + sbcl-cl-slug + sbcl-trivial-shell)) + (synopsis "Common Lisp base 16 implementation") + (description + "This package provides an implementation of a base 16 builder for Common Lisp.") + (home-page "https://github.com/tpine/cl-base16") + (license license:gpl3+)))) + +(define-public cl-base16 + (sbcl-package->cl-source-package sbcl-cl-base16)) + +(define-public ecl-cl-base16 + (sbcl-package->ecl-package sbcl-cl-base16)) + (define-public sbcl-cl-base32 (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85") (revision "1")) @@ -4189,6 +4416,35 @@ encoding table that uses only URI-compatible characters.") (define-public ecl-cl-base64 (sbcl-package->ecl-package sbcl-cl-base64)) +(define-public sbcl-cl-bnf + (let ((commit "ce009e3d60697bc376116e988f29ec0cbb1e9c84") + (revision "0")) + (package + (name "sbcl-cl-bnf") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/diasbruno/cl-bnf") + (commit commit))) + (file-name (git-file-name "cl-bnf" version)) + (sha256 + (base32 "0aa7hnkj71f37lxzlhsppwcmk3yv42hclq08c4jrdnv8jmdb8r0l")))) + (build-system asdf-build-system/sbcl) + (inputs (list sbcl-flexi-streams sbcl-utf8-input-stream)) + (home-page "https://github.com/diasbruno/cl-bnf") + (synopsis "BNF parser in Common Lisp") + (description "This package provides a @acronym{BNF, Backus–Naur form} +parser in Common Lisp.") + (license (list license:expat))))) + +(define-public cl-bnf + (sbcl-package->cl-source-package sbcl-cl-bnf)) + +(define-public ecl-cl-bnf + (sbcl-package->ecl-package sbcl-cl-bnf)) + (define-public sbcl-cl-cairo2 (let ((commit "41ae45aac86553c46f4bb460f80e1fb620930f5b") (revision "1")) @@ -5201,6 +5457,37 @@ environment access API.") (define-public ecl-cl-environments (sbcl-package->ecl-package sbcl-cl-environments)) +(define-public sbcl-cl-ewkb + (let ((commit "e2c7976cdc2074d63038ecd7179025ccb8d8f0b7") + (revision "0")) + (package + (name "sbcl-cl-ewkb") + (version (git-version "0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/filonenko-mikhail/cl-ewkb") + (commit commit))) + (file-name (git-file-name "cl-ewkb" version)) + (sha256 + (base32 "1n1zm4i11638vh1a4m71690p4lpikkk0rp42j2yfvs5d9wi67cr1")))) + (build-system asdf-build-system/sbcl) + (inputs (list sbcl-ieee-floats sbcl-flexi-streams)) + (home-page "https://github.com/filonenko-mikhail/cl-ewkb") + (synopsis "Common Lisp PostGIS EWKB library") + (description "This package is a geospatial library, based on cl-wkb, +that implements the OGC Well-Known Binary geographic geometry data model with +PostGIS 3d, 4d extensions, and provides WKB and EWKB encoding and decoding +functionality.") + (license (list license:expat))))) + +(define-public cl-ewkb + (sbcl-package->cl-source-package sbcl-cl-ewkb)) + +(define-public ecl-cl-ewkb + (sbcl-package->ecl-package sbcl-cl-ewkb)) + (define-public sbcl-cl-fad ;; No release since 2019 (let ((commit "3f4d32d3aa1093966046d001411a852eb8f4b535") @@ -6381,6 +6668,47 @@ Lisp.") (define-public ecl-cl-i18n (sbcl-package->ecl-package sbcl-cl-i18n)) +(define-public sbcl-cl-iconv + (let ((commit "54900c3f00e19da15a9c65451bddde839d0a7f75") + (revision "0")) + (package + (name "sbcl-cl-iconv") + (version (git-version "0.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/quek/cl-iconv") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lpw95c02inifhdh9kkab9q92i5w9zd788dww1wly2p0a6kyx9wg")))) + (build-system asdf-build-system/sbcl) + ;; The project is called cl-iconv but the system is declared as iconv. + (arguments + '(#:asd-systems '("iconv") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "iconv.lisp" + (("libiconv.so") + (search-input-file inputs "/lib/libiconv.so")))))))) + (native-inputs (list sbcl-ptester)) + (inputs (list libiconv sbcl-cffi)) + (home-page "https://github.com/quek/cl-iconv") + (synopsis "iconv library for Common Lisp") + (description + "This package provides CFFI bindings to convert between different +character encodings using iconv.") + (license license:bsd-3)))) + +(define-public cl-iconv + (sbcl-package->cl-source-package sbcl-cl-iconv)) + +(define-public ecl-cl-iconv + (sbcl-package->ecl-package sbcl-cl-iconv)) + (define-public sbcl-cl-indentify (let ((commit "eb770f434defa4cd41d84bca822428dfd0dbac53")) (package @@ -8896,6 +9224,37 @@ to serve as a building block for such an interface.") (define-public ecl-cl-rmath (sbcl-package->ecl-package sbcl-cl-rmath)) +(define-public sbcl-cl-setlocale + (let ((commit "f660d07dac72bc3e99caae1c6c8a789991e2694c") + (revision "0")) + (package + (name "sbcl-cl-setlocale") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shamazmazum/cl-setlocale") + (commit commit))) + (file-name (git-file-name "cl-setlocale" version)) + (sha256 + (base32 "0g1b89yj6n42ayf2074krk3h9yvglqxn54a6i3sxgpsqww2ll2a1")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-fiveam)) + (inputs (list sbcl-cffi)) + (home-page "https://github.com/shamazmazum/cl-setlocale") + (synopsis "Common Lisp wrapper around setlocale") + (description + "This library provides a tiny Common Lisp wrapper around setlocale(3) +and can be used in conjunction with other FFI wrappers like cl-charms.") + (license license:bsd-2)))) + +(define-public cl-setlocale + (sbcl-package->cl-source-package sbcl-cl-setlocale)) + +(define-public ecl-cl-setlocale + (sbcl-package->ecl-package sbcl-cl-setlocale)) + (define-public sbcl-cl-slice (let ((commit "c531683f287216aebbb0affbe090611fa1b5d697") (revision "1")) @@ -9243,7 +9602,7 @@ ability to store all Common Lisp data types into streams.") (define-public sbcl-cl-str (package (name "sbcl-cl-str") - (version "0.19") + (version "0.21") (home-page "https://github.com/vindarel/cl-str") (source (origin (method git-fetch) @@ -9251,7 +9610,7 @@ ability to store all Common Lisp data types into streams.") (url home-page) (commit version))) (sha256 - (base32 "1jyza2jhn7w6fl4w87pv0m87z5ia48m6dqw12k0mdh7l3mgjq839")) + (base32 "0r9niyvkj7jyc93rxys6pgqazzpl1ybfryjn8jig721xhjxrsblm")) (file-name (git-file-name name version)))) (build-system asdf-build-system/sbcl) (inputs @@ -10339,11 +10698,11 @@ similar to the standard hash-table interface.") (sbcl-package->ecl-package sbcl-clache)) (define-public sbcl-clack - (let ((commit "6fd0279424f7ba5fd4f92d69a1970846b0b11222") - (revision "2")) + (let ((commit "4916ebb243d42d1b52f8030db146215033b1b71e") + (revision "1")) (package (name "sbcl-clack") - (version (git-version "2.0.0" revision commit)) + (version (git-version "2.1.0" revision commit)) (source (origin (method git-fetch) @@ -10352,29 +10711,30 @@ similar to the standard hash-table interface.") (commit commit))) (file-name (git-file-name "cl-clack" version)) (sha256 - (base32 "0sfmvqmsg9z13x0v77448rpdqgyprdq739nsbrjw9a28hv9jmkg9")))) + (base32 "0kgymwvv1ghzvl4jryl3fxf0kf44i6z19izcf1rf0k4cidx093a7")))) (build-system asdf-build-system/sbcl) (arguments + ;; Only the handler for hunchentoot is included. The other + ;; two Web servers supported by clack, toot and wookie, + ;; have not yet been packaged for Guix. '(#:asd-systems '("clack" - "clack-handler-fcgi" - "clack-socket" - "clack-handler-hunchentoot"))) + "clack-handler-hunchentoot" + "clack-socket"))) (inputs (list sbcl-alexandria sbcl-bordeaux-threads - sbcl-cl-fastcgi sbcl-flexi-streams sbcl-hunchentoot sbcl-lack - sbcl-quri sbcl-split-sequence + sbcl-slime-swank sbcl-usocket)) (home-page "https://github.com/fukamachi/clack") (synopsis "Web Application Environment for Common Lisp") (description "Clack is a web application environment for Common Lisp inspired by Python's WSGI and Ruby's Rack.") - (license license:llgpl)))) + (license license:expat)))) (define-public cl-clack (sbcl-package->cl-source-package sbcl-clack)) @@ -14690,6 +15050,40 @@ which standard exactly.") (define-public ecl-fare-csv (sbcl-package->ecl-package sbcl-fare-csv)) +(define-public sbcl-fare-memoization + (let ((commit "8b43ac6bcc0057d1a92052e39b6d34c05c2eb7e4") + (revision "0")) + (package + (name "sbcl-fare-memoization") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.common-lisp.net/frideau/fare-memoization") + (commit commit))) + (sha256 + (base32 "1blmrb4c9gsxj87scz74z1s8w9d1w2r48fyxj0y1sw3vr6bsbb8f")) + (file-name (git-file-name name commit)))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-hu.dwim.stefil)) + (inputs + (list sbcl-named-readtables)) + (home-page "https://gitlab.common-lisp.net/frideau/fare-memoization") + (synopsis "Memoization library for Common Lisp") + (description + "This library builds on the venerable idea of dynamically memoizing functions. +A memoized function remembers results from previous computations and returns cached +results when called again with the same arguments rather than repeating the computation.") + (license license:expat)))) + +(define-public cl-fare-memoization + (sbcl-package->cl-source-package sbcl-fare-memoization)) + +(define-public ecl-fare-memoization + (sbcl-package->ecl-package sbcl-fare-memoization)) + (define-public sbcl-fare-mop (let ((commit "538aa94590a0354f382eddd9238934763434af30") (revision "1")) @@ -17345,6 +17739,46 @@ bound to whatever value was in the same place in the URL (as a string).") (define-public ecl-hunchenissr-routes (sbcl-package->ecl-package sbcl-hunchenissr-routes)) +(define-public sbcl-hunchensocket + (let ((commit "faf2c08452f18763e541bc7f121760669ac0f41a") + (revision "0")) + (package + (name "sbcl-hunchensocket") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/joaotavora/hunchensocket/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1vhd009lwl62l1czmhsalblxmyz4x9v3nspjflpajwm1db5rnd7h")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-fiasco)) + (inputs + (list + sbcl-hunchentoot + sbcl-alexandria + sbcl-cl-base64 + sbcl-sha1 + sbcl-flexi-streams + sbcl-chunga + sbcl-trivial-utf-8 + sbcl-trivial-backtrace + sbcl-cl-fad)) + (home-page "https://github.com/joaotavora/hunchensocket") + (synopsis "RFC6455 compliant WebSockets for Common Lisp") + (description + "This library provides a WebSockets extension for the Huchentoot web server.") + (license license:expat)))) + +(define-public cl-hunchensocket + (sbcl-package->cl-source-package sbcl-hunchensocket)) + +(define-public ecl-hunchensocket + (sbcl-package->ecl-package sbcl-hunchensocket)) + (define-public sbcl-hunchentoot ;; NOTE: (Sharlatan-20220520T213309+0100): The latest commit fixed tests, ;; switch to the version tag when release is ready. @@ -17700,6 +18134,38 @@ transcribing mathematical formulas into Lisp.") (define-public ecl-inheriting-readers (sbcl-package->ecl-package sbcl-inheriting-readers)) +(define-public sbcl-inquisitor + (let ((commit "423fa9bdd4a68a6ae517b18406d81491409ccae8") + (revision "0")) + (package + (name "sbcl-inquisitor") + (version (git-version "0.5" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/t-sin/inquisitor/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08rkmqnwlq6v84wcz9yp31j5lxrsy33kv3dh7n3ccsg4kc54slzw")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-prove sbcl-babel)) + (inputs (list sbcl-flexi-streams sbcl-alexandria sbcl-anaphora)) + (home-page "https://github.com/t-sin/inquisitor") + (synopsis + "Encoding/end-of-line detection and external-format abstraction for Common Lisp") + (description + "Inquisitor is a cross-implementation library provding +encoding/end-of-line detection and external-format abstraction for Common Lisp.") + (license license:expat)))) + +(define-public cl-inquisitor + (sbcl-package->cl-source-package sbcl-inquisitor)) + +(define-public ecl-inquisitor + (sbcl-package->ecl-package sbcl-inquisitor)) + (define-public sbcl-interface (let ((commit "6d8bd74214053debcbc0b174d65ea73c271c1563") (revision "0")) @@ -18202,6 +18668,48 @@ building block for higher level libraries.") (define-public ecl-json-streams (sbcl-package->ecl-package sbcl-json-streams)) +(define-public sbcl-jsonrpc + (let ((commit "a43dd933838bb9596a2bf40e821af0bafd3d5356") + (revision "1")) + (package + (name "sbcl-jsonrpc") + (version (git-version "0.3.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cxxxr/jsonrpc") + (commit commit))) + (file-name (git-file-name "jsonrpc" version)) + (sha256 + (base32 "1wsc6bv8xpzad0lgrlldzrpb9r4aksnw7ss2ifwa7ykbzfxcr8gi")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-rove)) + (inputs (list sbcl-clack + sbcl-http-body + sbcl-lack + sbcl-yason + sbcl-bordeaux-threads + sbcl-event-emitter + sbcl-alexandria + sbcl-dissect + sbcl-trivial-timeout + sbcl-chanl + sbcl-vom + sbcl-usocket + sbcl-websocket-driver)) + (home-page "https://github.com/cxxxr/jsonrpc") + (synopsis "JSON-RPC 2.0 server/client for Common Lisp") + (description + "This package provides a JSON-RPC 2.0 server/client for Common Lisp.") + (license license:bsd-2)))) + +(define-public cl-jsonrpc + (sbcl-package->cl-source-package sbcl-jsonrpc)) + +(define-public ecl-jsonrpc + (sbcl-package->ecl-package sbcl-jsonrpc)) + (define-public sbcl-jsown (let ((commit "744c4407bef58dfa876d9da0b5c0205d869e7977")) (package @@ -18478,41 +18986,61 @@ extensions developed by technical users.") ;; (sbcl-package->ecl-package sbcl-kons-9)) (define-public sbcl-lack - (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b") + (let ((commit "35d3a8e03cab9204eec88c7dfe4d5366fc2ea922") (revision "1")) (package (name "sbcl-lack") - (version (git-version "0.1.0" revision commit)) + (version (git-version "0.3.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/fukamachi/lack") (commit commit))) - (file-name (git-file-name "lack" version)) + (file-name (git-file-name "cl-lack" version)) (sha256 - (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) + (base32 "1yrhhzn8ywdjxwpaxzlnsm2lslhy45r89brn8gh5n08mdyjlp4l2")) + (patches (search-patches "sbcl-lack-fix-tests.patch")))) (build-system asdf-build-system/sbcl) (native-inputs - (list sbcl-prove)) + (list sbcl-cl-cookie + sbcl-dexador + sbcl-hunchentoot + sbcl-prove)) (inputs - `(("circular-streams" ,sbcl-circular-streams) - ("http-body" ,sbcl-http-body) - ("ironclad" ,sbcl-ironclad) - ("local-time" ,sbcl-local-time) - ("quri" ,sbcl-quri) - ("trivial-mimes" ,sbcl-trivial-mimes))) + (list sbcl-alexandria + sbcl-anypool + sbcl-bordeaux-threads + sbcl-circular-streams + sbcl-cl-base64 + sbcl-cl-isaac + sbcl-cl-redis + sbcl-dbi + sbcl-http-body + sbcl-ironclad + sbcl-local-time + sbcl-quri + sbcl-trivial-mimes + sbcl-trivial-rfc-1123)) (arguments '(#:asd-systems '("lack" + "lack-app-directory" + "lack-app-file" + "lack-component" + "lack-middleware-accesslog" + "lack-middleware-auth-basic" + "lack-middleware-backtrace" + "lack-middleware-csrf" + "lack-middleware-dbpool" + "lack-middleware-mount" + "lack-middleware-session" + "lack-middleware-static" "lack-request" "lack-response" - "lack-component" + "lack-session-store-dbi" + "lack-session-store-redis" "lack-util" - "lack-util-writer-stream" - "lack-middleware-backtrace" - "lack-middleware-static") - ;; XXX: Component :CLACK not found - #:tests? #f)) + "lack-util-writer-stream"))) (home-page "https://github.com/fukamachi/lack") (synopsis "Lack, the core of Clack") (description @@ -18520,7 +19048,7 @@ extensions developed by technical users.") constructed of modular components. It was originally a part of Clack, however it's going to be rewritten as an individual project since Clack v2 with performance and simplicity in mind.") - (license license:llgpl)))) + (license license:expat)))) (define-public cl-lack (sbcl-package->cl-source-package sbcl-lack)) @@ -18740,6 +19268,39 @@ needed. The low-level command API is fully mapped however.") (define-public ecl-legit (sbcl-package->ecl-package sbcl-legit)) +(define-public sbcl-lem-mailbox + (let ((commit "12d629541da440fadf771b0225a051ae65fa342a") + (revision "0")) + (package + (name "sbcl-lem-mailbox") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lem-project/lem-mailbox") + (commit commit))) + (sha256 + (base32 "1qh9yq9ks0paplmbx0vj4nynx86igkv9kli396plpg9vc14qdgl5")) + (file-name (git-file-name "cl-lem-mailbox" version)))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-rove)) + (inputs + (list sbcl-bordeaux-threads + sbcl-bt-semaphore + sbcl-queues)) + (synopsis "ANSI CL adaptation of the SBCL mailbox utility") + (description + "This package provides an ANSI CL adaptation of the SBCL mailbox utilty.") + (home-page "https://github.com/lem-project/lem-mailbox") + (license license:expat)))) + +(define-public cl-lem-mailbox + (sbcl-package->cl-source-package sbcl-lem-mailbox)) + +(define-public ecl-lem-mailbox + (sbcl-package->ecl-package sbcl-lem-mailbox)) + (define-public sbcl-let-over-lambda (let ((commit "481b2e3ab4646186451dfdd2062113203287d520") (revision "1")) @@ -18974,6 +19535,41 @@ BTCPay, Paypal, and Stripe.") (define-public ecl-lisp-pay (sbcl-package->ecl-package sbcl-lisp-pay)) +(define-public sbcl-lisp-preprocessor + (let ((commit "cbed5952f3d98c84448c52d12255df9580451383") + (revision "0")) + (package + (name "sbcl-lisp-preprocessor") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cxxxr/lisp-preprocessor/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0v0qhawcvgbxk06nfwyvcqwmqvzn2svq80l2rb12myr0znschhpi")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-rove)) + (inputs + (list + sbcl-alexandria + sbcl-trivial-gray-streams + sbcl-split-sequence + sbcl-trivia + sbcl-cl-ppcre)) + (home-page "https://github.com/cxxxr/lisp-preprocessor") + (synopsis "Common Lisp embedded template engine") + (description "This package provices an embedded template engine for Common Lisp.") + (license license:expat)))) + +(define-public cl-lisp-preprocessor + (sbcl-package->cl-source-package sbcl-lisp-preprocessor)) + +(define-public ecl-lisp-preprocessor + (sbcl-package->ecl-package sbcl-lisp-preprocessor)) + (define-public sbcl-lisp-stat (let ((commit "357a0d2b5f68a5ff925776235c2b7455e12b78ba") (revision "0")) @@ -23722,32 +24318,32 @@ are provided.") (define-public sbcl-postmodern (package (name "sbcl-postmodern") - (version "1.32.9") + (version "1.33.12") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/marijnh/Postmodern") (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (file-name (git-file-name "cl-postmodern" version)) (sha256 - (base32 "137jci4hn4vlxf48y39k0di27kc89kvxy3brmn3vl9xq56sy6mhz")))) + (base32 "14js3pz0jbvf11liqbrxhndb98vasib4bzkv7im87mysxzk8glqz")))) (build-system asdf-build-system/sbcl) (native-inputs - (list sbcl-fiveam)) + (list sbcl-fiveam sbcl-trivial-octet-streams)) (inputs - `(("alexandria" ,sbcl-alexandria) - ("bordeaux-threads" ,sbcl-bordeaux-threads) - ("cl-base64" ,sbcl-cl-base64) - ("cl-unicode" ,sbcl-cl-unicode) - ("closer-mop" ,sbcl-closer-mop) - ("global-vars" ,sbcl-global-vars) - ("ironclad" ,sbcl-ironclad) - ("local-time" ,sbcl-local-time) - ("md5" ,sbcl-md5) - ("split-sequence" ,sbcl-split-sequence) - ("uax-15" ,sbcl-uax-15) - ("usocket" ,sbcl-usocket))) + (list sbcl-alexandria + sbcl-bordeaux-threads + sbcl-cl-base64 + sbcl-cl-unicode + sbcl-closer-mop + sbcl-global-vars + sbcl-ironclad + sbcl-local-time + sbcl-md5 + sbcl-split-sequence + sbcl-uax-15 + sbcl-usocket)) (arguments ;; TODO: (Sharlatan-20210114T171037+0000) tests still failing but on other ;; step, some functionality in `local-time' prevents passing tests. @@ -23805,23 +24401,7 @@ things together into a convenient programming interface") (sbcl-package->cl-source-package sbcl-postmodern)) (define-public ecl-postmodern - (package - (inherit (sbcl-package->ecl-package sbcl-postmodern)) - (arguments - `(#:tests? #f - #:asd-systems '("cl-postgres" - "s-sql" - "postmodern" - "simple-date" - "simple-date/postgres-glue") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-build - (lambda _ - (substitute* "cl-postgres.asd" - ((":or :sbcl :allegro :ccl :clisp" all) - (string-append all " :ecl"))) - #t))))))) + (sbcl-package->ecl-package sbcl-postmodern)) (define-public sbcl-pp-toml (let ((commit "54f7d08c939d18b24363342c98c19b6812d7afb9") @@ -23905,6 +24485,36 @@ corresponding OS system functions are called.") (define-public cl-ppath (sbcl-package->cl-source-package sbcl-ppath)) +(define-public sbcl-print-licenses + (let ((commit "3949663318fb736f4ee660e3aa810875187d531c") + (revision "0")) + (package + (name "sbcl-print-licenses") + (build-system asdf-build-system/sbcl) + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vindarel/print-licenses") + (commit commit))) + (file-name (git-file-name "cl-print-licenses" version)) + (sha256 + (base32 "14i6r6mf16dlj1g4xk0alg2912y3wy0qbfpyvvgsgxkkar63cmi5")))) + (inputs (list sbcl-alexandria sbcl-iterate)) + (home-page "https://github.com/vindarel/print-licenses/") + (synopsis "Print licenses used by a Common Lisp project") + (description + "This library can be used to print the licenses used by a Common Lisp +project and its dependencies.") + (license license:expat)))) + +(define-public ecl-print-licenses + (sbcl-package->ecl-package sbcl-print-licenses)) + +(define-public cl-print-licenses + (sbcl-package->cl-source-package sbcl-print-licenses)) + (define-public sbcl-printv (let ((commit "e717a7fe076dae861a96117b2f9af29db8d2294d") (revision "2")) @@ -25320,6 +25930,36 @@ Rucksack with some enhancements.") (define-public ecl-rutils (sbcl-package->ecl-package sbcl-rutils)) +(define-public sbcl-s-base64 + (let ((commit "ed473e220133ca0e8b5b96618ea2972dec9de6cd") + (revision "0")) + (package + (name "sbcl-s-base64") + (version (git-version "2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/svenvc/s-base64") + (commit commit))) + (file-name (git-file-name "cl-s-base64" version)) + (sha256 + (base32 "0zrr8zhnkdy97c5g54605nhjlf7fly79ylr1yf6wwyssia04cagg")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/svenvc/s-base64") + (synopsis "Common Lisp package to encode and decode base64") + (description + "This package provides a Common Lisp implementation of Base64 encoding +and decoding. Base64 encoding is a technique to encode binary data in a +portable, safe printable, 7-bit ASCII format.") + (license license:llgpl)))) + +(define-public cl-s-base64 + (sbcl-package->cl-source-package sbcl-s-base64)) + +(define-public ecl-s-base64 + (sbcl-package->ecl-package sbcl-s-base64)) + (define-public sbcl-s-sysdeps ;; No release since 2013. (let ((commit "7f8de283b7fbd8b038fdf08493063a736db36ce7") @@ -29401,8 +30041,8 @@ spawning threads and being informed when one any of them crash and die.") (sbcl-package->ecl-package sbcl-trivial-monitored-thread)) (define-public sbcl-trivial-octet-streams - (let ((commit "bc5d398b18549fd42e9c2a365df28ad865f1b85d") - (revision "0")) + (let ((commit "71b00632c569618863376dd0cb985f6868b523b0") + (revision "1")) (package (name "sbcl-trivial-octet-streams") (version (git-version "0.1" revision commit)) @@ -29414,7 +30054,7 @@ spawning threads and being informed when one any of them crash and die.") (commit commit))) (file-name (git-file-name "cl-trivial-octet-streams" version)) (sha256 - (base32 "0ysnsarlzynb7jf4b63b6kkxjancxc66jwmn0sb3vxyh87siiv6n")))) + (base32 "0zj7aijn10hflr87774hwi5k1jzq6j5bgh2hm70ixxhcmaq7lqk5")))) (build-system asdf-build-system/sbcl) (home-page "https://github.com/sharplispers/trivial-octet-streams") (synopsis "In-memory octet streams for Common Lisp") @@ -29783,6 +30423,45 @@ concept of a source-form to report where the error or warning is located.") ;; can be loaded on ECL. (sbcl-package->ecl-package sbcl-trivial-with-current-source-form)) +(define-public sbcl-trivial-ws + (let ((commit "ebf1ec0ea26bdac4007e98e89f3a621dbfb4390a") + (revision "0")) + (package + (name "sbcl-trivial-ws") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ceramic/trivial-ws/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qmsf0dhmyhjgqjzdgj2yb1nkrijwp4p1j411613i45xjc2zd6m7")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-prove + sbcl-find-port)) + (inputs + (list sbcl-hunchensocket + sbcl-websocket-driver + sbcl-cl-async)) + (home-page "https://github.com/ceramic/trivial-ws") + (synopsis "Common Lisp library for using WebSockets") + (description + "This package implements a simple interface for using WebSockets via Common Lisp.") + (license license:expat)))) + +(define-public cl-trivial-ws + (sbcl-package->cl-source-package sbcl-trivial-ws)) + +(define-public ecl-trivial-ws + (package + (inherit (sbcl-package->ecl-package sbcl-trivial-ws)) + (arguments + ;; https://github.com/ceramic/trivial-ws/issues/7 + (list #:tests? #f)))) + (define-public sbcl-trivialib-type-unify (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99") (revision "1")) @@ -30062,25 +30741,23 @@ user.") (define-public sbcl-uax-15 (package (name "sbcl-uax-15") - (version "0.1.1") + (version "0.1.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sabracrolleton/uax-15") (commit (string-append "v" version)))) - (file-name (git-file-name "uax-15" version)) + (file-name (git-file-name "cl-uax-15" version)) (sha256 - (base32 "0p2ckw7mzxhwa9vbwj2q2dzayz9dl94d9yqd2ynp0pc5v8i0n2fr")))) + (base32 "0kkr3sw3hqsb8ciyn8dzb1cfz260fk1y39vydc98gsfrn6nqh3vw")))) (build-system asdf-build-system/sbcl) (arguments - `(#:asd-systems - '("uax-15"))) + `(#:asd-systems '("uax-15"))) (native-inputs - (list sbcl-fiveam)) + (list sbcl-parachute)) (inputs - `(("cl-ppcre" ,sbcl-cl-ppcre) - ("split-sequence" ,sbcl-split-sequence))) + (list sbcl-cl-ppcre sbcl-split-sequence)) (home-page "https://github.com/sabracrolleton/uax-15") (synopsis "Common Lisp implementation of unicode normalization functions") (description @@ -30315,6 +30992,36 @@ the abstraction and portability layer as thin as possible.") (define-public ecl-usocket (sbcl-package->ecl-package sbcl-usocket)) +(define-public sbcl-utf8-input-stream + (let ((commit "d33b57a4d439c2f0877e5513be45eb6940d92c68") + (revision "0")) + (package + (name "sbcl-utf8-input-stream") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/veer66/utf8-input-stream") + (commit commit))) + (file-name (git-file-name "cl-utf8-input-stream" version)) + (sha256 + (base32 "06fk8fsz9nngdfjymg93h1l5m4yhfg4w8as68zlaj698xf9ry3i5")))) + (build-system asdf-build-system/sbcl) + (inputs (list sbcl-babel sbcl-trivial-gray-streams)) + (home-page "https://github.com/veer66/utf8-input-stream") + (synopsis "UTF-8 string input stream over a binary stream for Common +Lisp") + (description "This package provides a UTF-8 string input stream over a +binary stream for Common Lisp.") + (license license:expat)))) + +(define-public cl-utf8-input-stream + (sbcl-package->cl-source-package sbcl-utf8-input-stream)) + +(define-public ecl-utf8-input-stream + (sbcl-package->ecl-package sbcl-utf8-input-stream)) + (define-public sbcl-utils-kt (let ((commit "4adfe2889036ab5ffdd3cc2182ca2cc692bf11ff")) (package @@ -30724,8 +31431,8 @@ has a small codebase that's easy to understand and use.") (sbcl-package->ecl-package sbcl-vom)) (define-public sbcl-websocket-driver - (let ((commit "df94496ecb525d086eeada4f5875975515b7212e") - (revision "0")) + (let ((commit "17ba5535fb1c4fe43e7e8ac786e8b61a174fcba3") + (revision "1")) (package (name "sbcl-websocket-driver") (version (git-version "0.2.0" revision commit)) @@ -30738,7 +31445,7 @@ has a small codebase that's easy to understand and use.") (commit commit))) (file-name (git-file-name "cl-websocket-driver" version)) (sha256 - (base32 "0y852sqdnxfma6kw833by4wkgbgbv4ppzawjk8pk3y1pmh6is83y")))) + (base32 "1lj6xarr62199ladkml7qpgi86w94j4djrp54v9ch0zakni3rhj2")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-babel diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 5d4399f145..6c16d8ab71 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -885,7 +885,7 @@ interface to the Tk widget system.") (define-public janet (package (name "janet") - (version "1.35.2") + (version "1.36.0") (source (origin (method git-fetch) @@ -894,7 +894,7 @@ interface to the Tk widget system.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0kgya9zv8xq6mbrkpllm29zfxkr626ip83ivqkgqfcs5a33b39wa")))) + (base32 "1jy4ib6jjxngn6vcy45y5dl24q0lrgl4j6rsx8y4gaih2i4sq1ll")))) (build-system gnu-build-system) (arguments (list #:make-flags diff --git a/gnu/packages/llvm-meta.scm b/gnu/packages/llvm-meta.scm index 03059a19ad..5cf8fcd1be 100644 --- a/gnu/packages/llvm-meta.scm +++ b/gnu/packages/llvm-meta.scm @@ -30,10 +30,29 @@ ;; ;; and then filtering against clang/test/Misc/target-invalid-cpu-note.c ("powerpc64le" - ,@(if (version>=? version "11.0") - '("power8" "power9" "power10" "powerpc64le"))) + ,@(cond + ((version>=? version "19.0") + '("power8" "power9" "power10" "power11" "powerpc64le")) + ((version>=? version "11.0") + '("power8" "power9" "power10" "powerpc64le")) + (else '()))) ("x86_64" ,@(cond + ((version>=? version "19.0") + '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm" + "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere" + "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell" + "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx" + "cascadelake" "cooperlake" "cannonlake" "icelake-client" + "rocketlake" "icelake-server" "tigerlake" "sapphirerapids" + "alderlake" "raptorlake" "arrowlake" "arrowlake-s" "lunarlake" + "gracemont" "pantherlake" "meteorlake" "sierraforest" "grandridge" + "graniterapids" "graniterapids-d" "emeraldrapids" + "clearwaterforest" "knl" "knm" "k8" "athlon64" "athlon-fx" + "opteron" "k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" + "barcelona" "btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" + "znver1" "znver2" "znver3" "znver4" "znver5" "x86-64" "x86-64-v2" + "x86-64-v3" "x86-64-v4")) ((version>=? version "18.0") '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm" "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere" diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index fd2e815fe0..6c1d5bc372 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -899,7 +899,7 @@ Library.") (clang-runtime-from-llvm llvm-12 "1950rg294izdwkaasi7yjrmadc9mzdd5paf0q63jjcq2m3rdbj5l" - '("clang-runtime-13-glibc-2.36-compat.patch"))) + '("clang-runtime-13-glibc-2.36-compat.patch" "clang-runtime-12-remove-crypt-interceptors.patch"))) (define-public clang-12 (clang-from-llvm llvm-12 clang-runtime-12 @@ -2301,7 +2301,10 @@ LLVM bitcode files.") (sha256 (base32 "1zh6yp8px9hla7v9i67a6anbph140f8ixxbsz65aj7fizksjs1h3")) - (patches (search-patches "clang-cling-13-libc-search-path.patch"))))))) + (patches (search-patches + "clang-cling-13-libc-search-path.patch" + "clang-cling-runtime-13-glibc-2.36-compat.patch" + "clang-cling-13-remove-crypt-interceptors.patch"))))))) (define clang-cling-runtime (let ((base clang-runtime-13)) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index c4e6cf7e19..e4316831d0 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -633,9 +633,20 @@ to run without any changes.") (arguments (list #:configure-flags #~(list (string-append "--with-ssl=" - #$(this-package-input "openssl"))))) + #$(this-package-input "openssl"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'wrap-fetchmailconf + (lambda _ + (wrap-program (string-append #$output "/bin/fetchmailconf") + `("GUIX_PYTHONPATH" ":" + prefix (,(getenv "GUIX_PYTHONPATH"))))))))) (inputs - (list openssl)) + (list openssl + ;; Needed for fetchmailconf + bash-minimal + python-future + python-wrapper)) (home-page "https://www.fetchmail.info/") (synopsis "Remote-mail retrieval and forwarding utility") (description @@ -5051,7 +5062,7 @@ remote SMTP server.") (define-public aerc (package (name "aerc") - (version "0.18.1") + (version "0.18.2") (source (origin (method git-fetch) (uri (git-reference @@ -5060,7 +5071,7 @@ remote SMTP server.") (file-name (git-file-name name version)) (sha256 (base32 - "1gj8m8xvqaf0lsnk4h1n9d0qhwi8d3mm0w9zhw16v888n7rll9fb")))) + "0y34cv2vcwhr0vbd1ax2hv9rmv79dp9i02y2xqyr23krfb5bp197")))) (build-system go-build-system) (arguments (list #:import-path "git.sr.ht/~rjarry/aerc" @@ -5086,12 +5097,11 @@ remote SMTP server.") (string-append "\"" (search-input-file inputs "bin/sh") "\""))) - (when (assoc-ref inputs "zoxide") - (substitute* "commands/z.go" - (("\"zoxide\"") - (string-append - "\"" (search-input-file inputs "bin/zoxide") - "\"")))) + (let ((zoxide (search-input-file inputs "bin/zoxide"))) + (when zoxide + (substitute* "commands/z.go" + (("\"zoxide\"") + (string-append "\"" zoxide "\""))))) (substitute* (list "lib/crypto/gpg/gpg.go" "lib/crypto/gpg/gpg_test.go" "lib/crypto/gpg/gpgbin/keys.go" diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index 91796efd0f..edc536bff4 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -760,6 +760,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." "language/elisp" "oop" "scripts" + "sxml" "texinfo" "web")))) (name "guile-static-initrd"))) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index f83d26b26b..ca987cca7c 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -244,7 +244,7 @@ themes for both gtk+-2 and gtk+-3.") yelp-tools gtk-doc/stable)) (inputs - (list gtk+ libxrandr iso-codes startup-notification)) + (list gtk+ libxrandr iso-codes/pinned startup-notification)) (propagated-inputs (list dconf)) ; mate-desktop-2.0.pc (home-page "https://mate-desktop.org/") @@ -1432,7 +1432,7 @@ can be used as backgrounds in the MATE Desktop environment.") gtk+ gtksourceview-4 gdk-pixbuf - iso-codes + iso-codes/pinned libcanberra libx11 libsm diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index a0cc0788ca..03fa4d2fae 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2015–2024 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2015-2023 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015-2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2018, 2020, 2021 Kei Kebreau <kkebreau@posteo.net> @@ -318,9 +318,9 @@ programmatic functions.") (uri (git-reference (url "https://github.com/chuffed/chuffed") (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 - "164brmwn71p9gb2441kh7b1gzmy2sg7bjv5z00wjs9nw41qc908g")))) + (base32 "164brmwn71p9gb2441kh7b1gzmy2sg7bjv5z00wjs9nw41qc908g")))) (build-system cmake-build-system) (arguments (list #:tests? #f ;no 'test' target @@ -812,7 +812,7 @@ numbers.") (define-public sleef (package (name "sleef") - (version "3.5.1") + (version "3.6.1") (source (origin (method git-fetch) @@ -821,17 +821,15 @@ numbers.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1jybqrl2dvjxzg30xrhh847s375n2jr1pix644wi6hb5wh5mx3f7")))) + (base32 "14y1zf621zp0333vs29pc7pcc31gsrrs3q49b6qmd1kz6c7a7fp2")))) (build-system cmake-build-system) (arguments (list + #:build-type "Release" #:configure-flags - #~(list "-DCMAKE_BUILD_TYPE=Release" - (string-append "-DCMAKE_INSTALL_LIBDIR=" #$output "/lib") - (string-append "-DCMAKE_INSTALL_PREFIX=" #$output)))) - ;; XXX: Removed mpfr because of https://github.com/shibatch/sleef/issues/458 + #~(list "-DSLEEF_BUILD_SHARED_LIBS=ON"))) (inputs - (list fftw gmp openssl-1.1)) + (list fftw gmp mpfr openssl)) (home-page "https://sleef.org/") (synopsis "SIMD library for evaluating elementary functions and DFT") (description @@ -981,7 +979,7 @@ and much more.") (define-public 4ti2 (package (name "4ti2") - (version "1.6.9") + (version "1.6.10") (source (origin (method url-fetch) @@ -991,7 +989,7 @@ and much more.") version) "/4ti2-" version ".tar.gz")) (sha256 - (base32 "0rj92x6p9m3la5gasjbj7sa569im527ffmka5y2sv1amgd3fflrh")))) + (base32 "0sx8n4acmqx086a5cfkdkqxnjrlr7nsihnzxwi1vcij2n6z93hgp")))) (build-system gnu-build-system) (native-inputs (list (@ (gnu packages base) which))) ; for the tests @@ -2365,8 +2363,9 @@ sharing of scientific data.") ((#:configure-flags flags) `(cons* "CC=mpicc" "CXX=mpicxx" "--enable-parallel-tests" - ;; Shared libraries not supported with parallel IO. - "--disable-shared" "--with-pic" + ;; NetCDF supports both parallel and shared library building + ;; See https://docs.unidata.ucar.edu/nug/current/getting_and_building_netcdf.html#build_parallel + "--enable-shared" "--with-pic" ,flags)) ((#:phases phases '%standard-phases) `(modify-phases ,phases @@ -5092,14 +5091,14 @@ full text searching.") (define-public armadillo (package (name "armadillo") - (version "12.4.1") + (version "12.4.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/arma/armadillo-" version ".tar.xz")) (sha256 (base32 - "15zkvjbdxiiazhvh0g6y0ig9pgc4rvwnzplmnkx9dffz4xfn69w1")))) + "150fcl2cca3ks91ahgr32jw0ww8lc8ng84mczfab7clvigqpdnpv")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no test target diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm index dc909ed7e1..07925328b5 100644 --- a/gnu/packages/mc.scm +++ b/gnu/packages/mc.scm @@ -120,3 +120,26 @@ RPM package files and other archives and managing files on other computers via FTP or FISH. It also includes a powerful text editor for opening text files.") (license gpl3+))) + + +(define-public gnudos + (package + (name "gnudos") + (version "2.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gnudos/gnudos-" version ".tar.gz")) + (sha256 + (base32 "06n4n6j7w6f54akmqqmsrbxv5rj6xairc6yskm33ag2ar7w8hz48")))) + (build-system gnu-build-system) + (propagated-inputs (list ncurses)) + (home-page "https://www.gnu.org/software/gnudos/") + (synopsis "MS-DOS-like file manager, editor, and other tools") + (description + "GnuDOS is a set of programs designed to help new users of the GNU +system in growing accustomed to the system, particularly users who might be +coming from a DOS background. It consists of a file manager, a text editor +and a form designer for the console as well as a core library for building +similar utilities.") + (license gpl3+))) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 831ccf6e72..2552596ef8 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -1,3 +1,4 @@ +;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016 David Thompson <dthompson2@worcester.edu> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> @@ -8,6 +9,7 @@ ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu> ;;; Copyright © 2020, 2021, 2022 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it @@ -29,7 +31,6 @@ #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages fontutils) - #:use-module (gnu packages games) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages image) @@ -53,105 +54,107 @@ (define-public minetest (package (name "minetest") - (version "5.8.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/minetest/minetest") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1sww17h8z77w38jk19nsqxn8xcj27msq0glbil7pyj4i0ffprjrr")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Delete bundled libraries. - (delete-file-recursively "lib") - #t)))) + (version "5.9.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest/minetest") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h4yn4k0wpjr1h24aiqcnc9xsxgxj4bq757pla2pa9zmh2xf45kk")) + (modules '((guix build utils))) + ;; Delete bundled libraries, keep lib/sha256 because there's no good + ;; upstream, see: + ;; https://github.com/openssl/openssl/blob/master/crypto/sha/sha512.c + ;; "SHA512 low level APIs are deprecated for public use, + ;; but still ok for internal use." Also asked MT devs on IRC for this. + (snippet + '(begin + (with-directory-excursion "lib" + (for-each (lambda (file) + (if (not (string=? file "sha256")) + (delete-file-recursively file))) + (find-files (string-append "lib") #:directories? #t))) + #t)))) (build-system cmake-build-system) (arguments (list #:configure-flags - #~(list "-DRUN_IN_PLACE=0" - "-DENABLE_FREETYPE=1" - "-DENABLE_GETTEXT=1" - "-DENABLE_SYSTEM_JSONCPP=TRUE" - (string-append "-DIRRLICHTMT_INCLUDE_DIR=" - (search-input-directory %build-inputs - "include/irrlichtmt")) + #~(list "-DENABLE_LTO=ON" + "-DENABLE_UPDATE_CHECKER=FALSE" (string-append "-DCURL_INCLUDE_DIR=" - (search-input-directory %build-inputs - "include/curl")) + (search-input-directory + %build-inputs "include/curl")) (string-append "-DZSTD_INCLUDE_DIR=" - (dirname - (search-input-file %build-inputs - "include/zstd.h"))) + (dirname (search-input-file + %build-inputs + "include/zstd.h"))) (string-append "-DZSTD_LIBRARY=" - (search-input-file %build-inputs - "lib/libzstd.so"))) - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-sources - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "src/filesys.cpp" - ;; Use store-path for "rm" instead of non-existing FHS path. - (("\"/bin/rm\"") - (format #f "~s" (search-input-file inputs "bin/rm")))) - (substitute* "src/CMakeLists.txt" - ;; Let minetest binary remain in build directory. - (("set\\(EXECUTABLE_OUTPUT_PATH .*\\)") "")) - (substitute* "src/unittest/test_servermodmanager.cpp" - ;; do no override MINETEST_SUBGAME_PATH - (("(un)?setenv\\(\"MINETEST_SUBGAME_PATH\".*\\);") - "(void)0;")) - (setenv "MINETEST_SUBGAME_PATH" ; for check - (string-append (getcwd) "/games")))) - (delete 'check) - (add-after 'install 'check - (lambda* (#:key tests? #:allow-other-keys) - ;; Thanks to our substitutions, the tests should also run - ;; when invoked on the target outside of `guix build'. - (when tests? - (setenv "HOME" "/tmp") - (invoke "src/minetest" "--run-unittests"))))))) + (search-input-file + %build-inputs "lib/libzstd.so"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-sources + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/filesys.cpp" + ;; Use store-path for "rm" instead of non-existing FHS path. + (("\"/bin/rm\"") + (format #f "~s" + (search-input-file inputs "bin/rm")))) + (substitute* "src/CMakeLists.txt" + ;; Let minetest binary remain in build directory. + (("set\\(EXECUTABLE_OUTPUT_PATH .*\\)") + "")) + (substitute* "src/unittest/test_servermodmanager.cpp" + ;; do no override MINETEST_GAME_PATH + (("(un)?setenv\\(\"MINETEST_GAME_PATH\".*\\);") + "(void)0;")) + (setenv "MINETEST_GAME_PATH" ;for check + (string-append (getcwd) "/games")))) + (delete 'check) + (add-after 'install 'check + (lambda* (#:key tests? #:allow-other-keys) + ;; Thanks to our substitutions, the tests should also run + ;; when invoked on the target outside of `guix build'. + (when tests? + (setenv "HOME" "/tmp") + (invoke "src/minetest" "--run-unittests"))))))) (native-search-paths (list (search-path-specification - (variable "MINETEST_SUBGAME_PATH") + (variable "MINETEST_GAME_PATH") (files '("share/minetest/games"))) (search-path-specification (variable "MINETEST_MOD_PATH") (files '("share/minetest/mods"))))) - (native-inputs - (list pkg-config)) - (inputs - (list coreutils - curl - freetype - gettext-minimal - gmp - irrlicht-for-minetest - jsoncpp - libjpeg-turbo - libpng - libogg - libvorbis - libxxf86vm - luajit - mesa - ncurses - openal - sqlite - `(,zstd "lib"))) - (propagated-inputs - (list minetest-data)) - (synopsis "Infinite-world block sandbox game") + (native-inputs (list pkg-config)) + (inputs (list coreutils + curl + freetype + gettext-minimal + gmp + jsoncpp + libjpeg-turbo + libpng + libogg + libvorbis + libxxf86vm + libxi + luajit + mesa + ncurses + openal + sqlite + `(,zstd "lib"))) + (synopsis "Voxel game engine") (description - "Minetest is a sandbox construction game. Players can create and destroy -various types of blocks in a three-dimensional open world. This allows -forming structures in every possible creation, on multiplayer servers or as a -single player. Mods and texture packs allow players to personalize the game -in different ways.") + "Minetest is a voxel game engine that supports modding and game creation +using its Lua modding API. It allows playing a wide range of voxel-based +games, installing mods and texture packs. This package only provides the base +platform, users need to install games themselves (for example, +@code{minetest-game}), either through Guix, the built-in interface or other +sources.") (home-page "https://www.minetest.net/") (license license:lgpl2.1+))) @@ -183,35 +186,40 @@ in different ways.") "openal"))) (synopsis "Infinite-world block sandbox game (server)") (description - "Minetest is a sandbox construction game. Players can create and destroy -various types of blocks in a three-dimensional open world. This allows -forming structures in every possible creation, on multiplayer servers or as a -single player. Mods and texture packs allow players to personalize the game -in different ways. This package provides @command{minetestserver} to run a -Minetest server."))) + "Server for Minetest game engine and gaming platform. Allows hosting +Minetest games with multiplayer support. This package provides +@command{minetestserver} to run a Minetest server."))) -(define minetest-data - (package - (name "minetest-data") - (version (package-version minetest)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/minetest/minetest_game") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1pq4rm15lzwcqv6npgyz6v89hi3zj8zybw25n9i0d27qj786xc4z")))) - (build-system copy-build-system) - (arguments - (list #:install-plan - #~'(("." "/share/minetest/games/minetest_game")))) - (synopsis "Main game data for the Minetest game engine") - (description - "Game data for the Minetest infinite-world block sandbox game.") - (home-page "https://www.minetest.net/") - (license license:lgpl2.1+))) +(define-public minetest-game + (let ((commit "88ecab34d98550c8eb77f49ac2866b480a6e707a") + (revision "0")) + (package + (name "minetest-game") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest/minetest_game") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pvr3m7kxrriabw20sy6rhx0givh5ic85dk5g88cbbsy83admsp0")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan #~'(("." "/share/minetest/games/minetest_game")))) + (synopsis "Ex-official game for Minetest game engine") + (description + "A game for the Minetest voxel game platform. It provides a very basic +Minecraft-like base for some mods. It is currently in maintenance mode +and gets no new features.") + (home-page "https://www.minetest.net/") + (license license:lgpl2.1+)))) + +;; This package is deprecated. "Minetest Game" is no longer the official game. +(define-public minetest-data + (deprecated-package "minetest-data" minetest-game)) (define-public (minetest-topic topic-id) "Return an URL (as a string) pointing to the forum topic with diff --git a/gnu/packages/mold.scm b/gnu/packages/mold.scm index 322214893c..fb669ec88e 100644 --- a/gnu/packages/mold.scm +++ b/gnu/packages/mold.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2023 Zhu Zihao <all_but_last@163.com> -;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2023, 2024 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,7 +35,7 @@ (define-public mold (package (name "mold") - (version "2.33.0") + (version "2.34.0") (source (origin (method git-fetch) @@ -44,7 +44,7 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0wsb0aiqia3jfc9k3h2d446y0mzmaq6rz9xkjf9125npdygm7kpb")) + (base32 "0n8ygaxsda9ybc1jc7ap7grbziah403wjm2hmmcxzahm52v6czs0")) (modules '((guix build utils))) (snippet #~(begin @@ -55,33 +55,42 @@ (build-system cmake-build-system) (arguments (list - #:configure-flags #~(list "-DMOLD_USE_SYSTEM_MIMALLOC=ON" + ;; Mold only uses mimalloc on 64-bit systems, even with the + ;; configure flag set, saying it is unstable on 32-bit systems. + #:configure-flags #~(list #$@(if (target-64bit?) + '("-DMOLD_USE_SYSTEM_MIMALLOC=ON") + '("-DMOLD_USE_MIMALLOC=OFF")) "-DMOLD_USE_SYSTEM_TBB=ON" "-DBUILD_TESTING=ON") #:phases #~(modify-phases %standard-phases (add-before 'configure 'force-system-xxhash (lambda _ - (substitute* "common/common.h" + (substitute* "lib/common.h" (("#include \"../third-party/xxhash/xxhash.h\"") "#include <xxhash.h>")))) (add-before 'configure 'fix-compiler-name-in-test (lambda _ - (substitute* "test/elf/common.inc" + (substitute* "test/common.inc" (("CC=\"\\$\\{TEST_CC:-cc\\}\"") "CC=gcc") (("CXX=\"\\$\\{TEST_CXX:-c\\+\\+\\}\"") "CXX=g++")))) (add-before 'configure 'skip-tbb-lto-test (lambda _ ;; This test needs tbb 2021.9.0 or newer - (delete-file "test/elf/lto-version-script.sh"))) + (delete-file "test/lto-version-script.sh"))) (add-before 'configure 'disable-rpath-test (lambda _ ;; This test fails because mold expect the RUNPATH as-is, ;; but compiler in Guix will insert the path of gcc-lib and ;; glibc into the output binary. - (delete-file "test/elf/rpath.sh")))))) - (inputs (list mimalloc tbb xxhash zlib `(,zstd "lib"))) + (delete-file "test/rpath.sh")))))) + (inputs + (append + (if (target-64bit?) + (list mimalloc) + '()) + (list tbb xxhash zlib `(,zstd "lib")))) (home-page "https://github.com/rui314/mold") (synopsis "Fast linker") (description diff --git a/gnu/packages/mtools.scm b/gnu/packages/mtools.scm index 92706083b4..5110d58269 100644 --- a/gnu/packages/mtools.scm +++ b/gnu/packages/mtools.scm @@ -29,14 +29,14 @@ (define-public mtools (package (name "mtools") - (version "4.0.44") + (version "4.0.45") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/mtools/mtools-" version ".tar.bz2")) (sha256 (base32 - "1f6x3srkssjcnrmd9hkladc8nzkwq9rqkiy15r5ksg2k4bq4vp1p")) + "066ncw51da1h6w80p6cl6flw8sznk933sf545xa0xzhfpnb8l00b")) (patches (search-patches "mtools-mformat-uninitialized.patch")))) (build-system gnu-build-system) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 7ec3a9b0d6..0800cb3d1b 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -147,6 +147,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages haskell) + #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages image-viewers) @@ -661,7 +662,7 @@ you create custom user interfaces for your MIDI hardware.") (define-public qmmp (package (name "qmmp") - (version "2.1.8") + (version "2.1.9") (source (origin (method url-fetch) @@ -669,7 +670,7 @@ you create custom user interfaces for your MIDI hardware.") (version-major+minor version) "/" "qmmp-" version ".tar.bz2")) (sha256 - (base32 "1vk9bbw8lfypn2a5vh8pdxrz5pa1iqja4p9gxjw2kax9qx1n2sl4")))) + (base32 "0drskhf1lgnzmm6b51fvy25m551lbjikg7jw5dnll7ajicvpm7xm")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase @@ -2531,7 +2532,7 @@ perform creative live mixes with digital music files.") (define-public synthv1 (package (name "synthv1") - (version "0.9.32") + (version "1.1.0") (source (origin (method url-fetch) (uri @@ -2539,7 +2540,7 @@ perform creative live mixes with digital music files.") "/synthv1-" version ".tar.gz")) (sha256 (base32 - "1i76d4w2anccyp70vylxxrmqgf1i3znl98ag82wz8lxb5sh34i4x")))) + "0szl3p9wgy7cdjb757yrkskr4sqs1gvqq2zk1cm7hvadc8r0pbp3")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; there are no tests @@ -2563,7 +2564,7 @@ oscillators and stereo effects.") (define-public drumkv1 (package (name "drumkv1") - (version "0.9.32") + (version "1.1.0") (source (origin (method url-fetch) (uri @@ -2571,7 +2572,7 @@ oscillators and stereo effects.") "/drumkv1-" version ".tar.gz")) (sha256 (base32 - "15csm09wjgzdkvy2wqq1jzq7b1m8zzchl5s8fb4ir5rg395jkxai")))) + "0z1j4218x69nzri0nbcp3sadlwk0ixs5m9fdi4w7zpwy528bgxiz")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; there are no tests @@ -2596,7 +2597,7 @@ effects.") (define-public samplv1 (package (name "samplv1") - (version "0.9.32") + (version "1.1.0") (source (origin (method url-fetch) (uri @@ -2604,7 +2605,7 @@ effects.") "/samplv1-" version ".tar.gz")) (sha256 (base32 - "17w5m5sk8fcnnph1njz9sz031kk0aid8mhs64myc2jvpvwm5snlb")))) + "1lfa9q8mkjz6m34w7fvqkd8p62f42wrrcniyv4k4d9f1a4582frd")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; there are no tests @@ -2629,7 +2630,7 @@ effects.") (define-public padthv1 (package (name "padthv1") - (version "0.9.32") + (version "1.1.0") (source (origin (method url-fetch) (uri @@ -2637,7 +2638,7 @@ effects.") "/padthv1-" version ".tar.gz")) (sha256 (base32 - "0qpdyczgqblf3sxjkvxn2g8qyx1hm0pmiqhncncrijbaalazsp7m")))) + "17jx61bfg9k24mz266icxqbax3x0qvvywxlby16ky6fjp2dqy7x8")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; there are no tests @@ -2663,7 +2664,7 @@ special variant of additive synthesis.") (define-public amsynth (package (name "amsynth") - (version "1.12.4") + (version "1.13.4") (source (origin (method url-fetch) @@ -2671,7 +2672,7 @@ special variant of additive synthesis.") "download/release-" version "/amsynth-" version ".tar.gz")) (sha256 - (base32 "1fabxx4nv5rsi4kjqachzh2r6zb40lszbv09gcz41ql8qslrw842")))) + (base32 "1yryhwx05v1kzj44kxamgvwc65r65d7vlk4nbkaa6kjy7yy9lrwm")))) (build-system gnu-build-system) (arguments (list #:phases @@ -2699,7 +2700,12 @@ special variant of additive synthesis.") ;; 'org.gnome.desktop.interface' is not installed (list gsettings-desktop-schemas)) (native-inputs - (list intltool pkg-config)) + (append (list intltool + pkg-config) + ;; For generating the documentation. + (if (supported-package? pandoc) + (list pandoc) + '()))) (home-page "https://amsynth.github.io") (synopsis "Analog modeling synthesizer") (description @@ -2947,7 +2953,8 @@ is subjective.") "TuxGuitar-gm-utils" "TuxGuitar-alsa" "TuxGuitar-midi" - "TuxGuitar-midi-ui"))))) + "TuxGuitar-midi-ui" + "TuxGuitar-compat"))))) (add-after 'build 'build-jni (lambda _ (setenv "CC" "gcc") @@ -3685,14 +3692,14 @@ from the command line.") (define-public qtractor (package (name "qtractor") - (version "0.9.35") + (version "1.1.0") (source (origin (method url-fetch) (uri (string-append "https://downloads.sourceforge.net/qtractor/" "qtractor-" version ".tar.gz")) (sha256 (base32 - "1v3w8x9dfqldfa8gjxxszzclnhqlgyanpr7b4dhva68qyxmp4m7v")))) + "09kvv4anjpv3pk0ajn8685d24ya6h771sm6yh4kgviykzvl3vjyd")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no "check" target @@ -3983,7 +3990,7 @@ event-based scripts for scrobbling, notifications, etc.") (define-public picard (package (name "picard") - (version "2.11") + (version "2.12.2") (source (origin (method url-fetch) (uri (string-append @@ -3991,7 +3998,7 @@ event-based scripts for scrobbling, notifications, etc.") "picard/picard-" version ".tar.gz")) (sha256 (base32 - "0ppq2n9jf8c8r8p9dkpcyipd2psr9hg0zbd5hcdsicili25336j4")))) + "01244105zy1f1g22ivhx9pjd1acqbkycfr9r44h70jyml5abc7z5")))) (build-system python-build-system) (arguments (list @@ -4017,6 +4024,7 @@ event-based scripts for scrobbling, notifications, etc.") (list gettext-minimal python-dateutil)) (inputs (list chromaprint + python-charset-normalizer-3 python-discid python-pyqt python-mutagen diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 28cea9428d..3be037ecd7 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -59,7 +59,7 @@ ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu> ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream> -;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> +;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz> ;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev> @@ -1805,14 +1805,14 @@ of the same name.") (define-public wireshark (package (name "wireshark") - (version "4.2.5") + (version "4.4.0") (source (origin (method url-fetch) (uri (string-append "https://www.wireshark.org/download/src/wireshark-" version ".tar.xz")) (sha256 - (base32 "07r6n7xjckx5scp3d6s61hc54v5p5k4kaqik8jn3m9x9hymr7rsm")))) + (base32 "0s8jqxcvq7ibfsq8v4scl8dq7y5hqgpivq4iw9y2x6jj136cvmga")))) (build-system qt-build-system) (arguments (list @@ -4851,7 +4851,7 @@ on hub/switched networks. It is based on @acronym{ARP} packets, it will send (define-public phantomsocks (package (name "phantomsocks") - (version "0.0.0-20240125140126-2576269ca69a") + (version "0.0.0-20240729085950-7928f8eff406") (source (origin (method git-fetch) (uri (git-reference @@ -4860,7 +4860,7 @@ on hub/switched networks. It is based on @acronym{ARP} packets, it will send (file-name (git-file-name name version)) (sha256 (base32 - "1kbcr6580a9pi0a3wssnfr3mnxqq2k9w1fg4khikn82lqaljab2f")))) + "1bx3ln650yrywrqpz78xphs141zfsg2h5cr8j9411ilifzr8r4ib")))) (build-system go-build-system) (arguments (list #:install-source? #f @@ -4932,7 +4932,7 @@ implementations.") (define-public vnstat (package (name "vnstat") - (version "2.10") + (version "2.12") (source (origin (method url-fetch) @@ -4940,7 +4940,7 @@ implementations.") version ".tar.gz")) (sha256 (base32 - "09bx8mz9jdq94i0mpmjbc7dis0klvjx85lml5mp3d36dwm21gim9")))) + "0li8dm081ym6jm7fhag2ccp8cqfs5sqhiwiimdzz9ihzzh96nf5p")))) (build-system gnu-build-system) (inputs (list sqlite gd)) (native-inputs (list pkg-config check)) diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index b49a19372b..cf6f50e3ce 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -1136,6 +1136,7 @@ both @file{stderr} and to a timestamped file.") (uri (git-reference (url "https://github.com/serialport/node-serialport") (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 "0x7zm59a5ff5yygjyw15xs3r5m3rb8av1yfrh4snn44mrwq87yg8")))) (inputs diff --git a/gnu/packages/notcurses.scm b/gnu/packages/notcurses.scm index 20b2cbb225..d704595de8 100644 --- a/gnu/packages/notcurses.scm +++ b/gnu/packages/notcurses.scm @@ -1,3 +1,4 @@ +;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2021 Blake Shaw <blake@nonconstructivism.com> ;;; Copyright © 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il> diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm index 6c60e9fbae..b058df0175 100644 --- a/gnu/packages/nss.scm +++ b/gnu/packages/nss.scm @@ -333,7 +333,7 @@ security standards.") (package (inherit nss) (name "nss-rapid") - (version "3.103") + (version "3.104") (source (origin (inherit (package-source nss)) (uri (let ((version-with-underscores @@ -344,7 +344,7 @@ security standards.") "nss-" version ".tar.gz"))) (sha256 (base32 - "0qp9rs226rr6gh51b42cdbydr4mj80cli3bfqhh7bp3jyxbvcjkv")))) + "13mca2y92sm05kxb40qvlkq8l93ghmrhh0s3iawpc7idc8ik4xp2")))) (arguments (substitute-keyword-arguments (package-arguments nss) ((#:phases phases) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 5d049ada44..6f917389e5 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -178,8 +178,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.4.0") - (commit "9a2ddcc8f5a6f64b475eeb13a3f1034aa6a4a49a") - (revision 24)) + (commit "e85f52e826b0701c3dcf9acf9d81e5ae57aec8f9") + (revision 25)) (package (name "guix") @@ -195,7 +195,7 @@ (commit commit))) (sha256 (base32 - "0823vl88gbgqadc20in9qvxnrd7zhnq047bfvw4gvdsmgxpcpvpx")) + "1sx8xyddky0bby8n4gp88pzdmd3a0xsrxsdnnv5q6bh2s8921s86")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -614,19 +614,6 @@ the Nix package manager.") ((#:phases phases '%standard-phases) `(modify-phases ,phases (delete 'set-font-path) - (add-after 'unpack 'change-default-guix - (lambda _ - ;; We need to tell 'guix-daemon' which 'guix' command to use. - ;; Here we use a questionable hack where we hard-code root's - ;; current guix, which could be wrong (XXX). Note that scripts - ;; like 'guix perform-download' do not run as root so we assume - ;; that they have access to /var/guix/profiles/per-user/root. - (substitute* "nix/libstore/globals.cc" - (("guixProgram = (.*)nixBinDir + \"/guix\"" _ before) - (string-append "guixProgram = " before - "/var/guix/profiles/per-user/root\ -/current-guix/bin/guix"))) - #t)) (replace 'build (lambda _ (invoke "make" "nix/libstore/schema.sql.hh") @@ -1008,8 +995,8 @@ transactions from C or Python.") (license license:gpl2+))) (define-public bffe - (let ((commit "0fc06c7dad2904989fc8c48f5a20c46a60254e9b") - (revision "7")) + (let ((commit "06bed4724d131c085b23c7a806170bf16d58c25f") + (revision "8")) (package (name "bffe") (version (git-version "0" revision commit)) @@ -1020,7 +1007,7 @@ transactions from C or Python.") (commit commit))) (sha256 (base32 - "0wkszdlsxw335wwh3qi2g7hfyrrnmmqx0kr02yqb8vasmn3vm8jz")) + "0gwvcgsxmwnm90v3phq17m6x4iikz98cp6s82s3d6iw346l257w9")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (native-inputs diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index d5a55a8641..ecaceef81e 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -52,6 +52,7 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages freeipmi) + #:use-module (gnu packages gcc) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages maths) @@ -70,14 +71,14 @@ (define-public parallel (package (name "parallel") - (version "20240822") + (version "20240922") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/parallel/parallel-" version ".tar.bz2")) (sha256 - (base32 "179hr24gs3gpz7c5mnnncg0dixym70hvsk705cbhp61ifrdxkfyp")) + (base32 "1i6b3agvmvfnkvxy1s15yficfpyxgk6k7wwqw0ly3idpx0ahf8b3")) (snippet '(begin (use-modules (guix build utils)) @@ -646,7 +647,29 @@ single-instruction multiple-data (SIMD) intrinsics.") (arguments (list #:configure-flags #~(list (string-append "--with-hwloc=" - (ungexp (this-package-input "hwloc") "lib"))))) + (ungexp (this-package-input "hwloc") "lib"))) + + ;; Don't keep a reference to GCC. + #:disallowed-references (and (not (%current-target-system)) + (list (canonical-package gcc))) + + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'strip-pmix-cc-absolute + (lambda _ + ;; The 'pmix_info' program prints the 'configure' command + ;; line, compiler absolute file name, etc., which causes it + ;; to keep references to many build-time packages. Scrub + ;; these. + (substitute* "configure" + (("PMIX_CC_ABSOLUTE=\"(.*)\"" _ cc) + (string-append "PMIX_CC_ABSOLUTE=\"$(basename \"" + cc "\")\"\n"))))) + (add-after 'configure 'strip-pmix-config-header + (lambda _ + (substitute* "src/include/pmix_config.h" + (("#define PMIX_CONFIGURE_CLI .*") + "#define PMIX_CONFIGURE_CLI \"[scrubbed]\"\n"))))))) (inputs (list libevent `(,hwloc "lib"))) (native-inputs (list perl python)) (synopsis "PMIx library") @@ -655,6 +678,8 @@ single-instruction multiple-data (SIMD) intrinsics.") libraries and programming models with portable and well-defined access to commonly needed services in distributed and parallel computing systems.") (home-page "https://pmix.org/") + ;; configure: WARNING: PMIx does not support 32 bit builds. + (supported-systems %64bit-supported-systems) ;; The provided license is kind of BSD-style but specific. (license (license:fsf-free "https://github.com/openpmix/openpmix?tab=License-1-ov-file#License-1-ov-file")))) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index dc2ee27e29..dcd155835a 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -785,6 +785,7 @@ through the pass command.") (map (cut search-input-file inputs <>) (list "bin/age" "bin/age-keygen" + "bin/cat" "bin/getopt" "bin/git" "bin/pkill" @@ -794,11 +795,14 @@ through the pass command.") #:install-plan '(("src/passage" "/bin/") ("src/completion/pass.bash-completion" - "/share/bash-completion/completions/") + "/etc/bash-completion.d/passage") + ("src/completion/pass.fish-completion" + "/share/fish/vendor_completions.d/passage") ("src/completion/pass.zsh-completion" - "/share/zsh/site-functions/")))) + "/share/zsh/site-functions/_passage")))) (inputs - (list age age-keygen bash-minimal git procps qrencode sed tree util-linux)) + (list age age-keygen coreutils-minimal git-minimal + procps qrencode sed tree util-linux)) (home-page "https://github.com/FiloSottile/passage") (synopsis "Encrypted password manager") (description "This package provides an encrypted password manager, forked diff --git a/gnu/packages/patches/ceph-fix-for-newer-boost.patch b/gnu/packages/patches/ceph-fix-for-newer-boost.patch new file mode 100644 index 0000000000..faf1c6b69d --- /dev/null +++ b/gnu/packages/patches/ceph-fix-for-newer-boost.patch @@ -0,0 +1,50 @@ +Adjust to newer Boost interface. + +--- a/src/rgw/rgw_asio_client.cc 1970-01-01 01:00:01.000000000 +0100 ++++ b/src/rgw/rgw_asio_client.cc 2024-09-11 08:33:21.723548804 +0200 +@@ -39,11 +39,11 @@ + const auto& value = header->value(); + + if (field == beast::http::field::content_length) { +- env.set("CONTENT_LENGTH", value.to_string()); ++ env.set("CONTENT_LENGTH", std::string(value)); + continue; + } + if (field == beast::http::field::content_type) { +- env.set("CONTENT_TYPE", value.to_string()); ++ env.set("CONTENT_TYPE", std::string(value)); + continue; + } + +@@ -62,26 +62,26 @@ + } + *dest = '\0'; + +- env.set(buf, value.to_string()); ++ env.set(buf, std::string(value)); + } + + int major = request.version() / 10; + int minor = request.version() % 10; + env.set("HTTP_VERSION", std::to_string(major) + '.' + std::to_string(minor)); + +- env.set("REQUEST_METHOD", request.method_string().to_string()); ++ env.set("REQUEST_METHOD", std::string(request.method_string())); + + // split uri from query + auto uri = request.target(); + auto pos = uri.find('?'); + if (pos != uri.npos) { + auto query = uri.substr(pos + 1); +- env.set("QUERY_STRING", query.to_string()); ++ env.set("QUERY_STRING", std::string(query)); + uri = uri.substr(0, pos); + } +- env.set("SCRIPT_URI", uri.to_string()); ++ env.set("SCRIPT_URI", std::string(uri)); + +- env.set("REQUEST_URI", request.target().to_string()); ++ env.set("REQUEST_URI", std::string(request.target())); + + char port_buf[16]; + snprintf(port_buf, sizeof(port_buf), "%d", local_endpoint.port()); diff --git a/gnu/packages/patches/clang-cling-13-remove-crypt-interceptors.patch b/gnu/packages/patches/clang-cling-13-remove-crypt-interceptors.patch new file mode 100644 index 0000000000..23de47bb18 --- /dev/null +++ b/gnu/packages/patches/clang-cling-13-remove-crypt-interceptors.patch @@ -0,0 +1,214 @@ +From d7bead833631486e337e541e692d9b4a1ca14edd Mon Sep 17 00:00:00 2001 +From: Fangrui Song <i@maskray.me> +Date: Fri, 28 Apr 2023 09:59:17 -0700 +Subject: [PATCH] [sanitizer] Remove crypt and crypt_r interceptors + +From Florian Weimer's D144073 + +> On GNU/Linux (glibc), the crypt and crypt_r functions are not part of the main shared object (libc.so.6), but libcrypt (with multiple possible sonames). The sanitizer libraries do not depend on libcrypt, so it can happen that during sanitizer library initialization, no real implementation will be found because the crypt, crypt_r functions are not present in the process image (yet). If its interceptors are called nevertheless, this results in a call through a null pointer when the sanitizer library attempts to forward the call to the real implementation. +> +> Many distributions have already switched to libxcrypt, a library that is separate from glibc and that can be build with sanitizers directly (avoiding the need for interceptors). This patch disables building the interceptor for glibc targets. + +Let's remove crypt and crypt_r interceptors (D68431) to fix issues with +newer glibc. + +For older glibc, msan will not know that an uninstrumented crypt_r call +initializes `data`, so there is a risk for false positives. However, with some +codebase survey, I think crypt_r uses are very few and the call sites typically +have a `memset(&data, 0, sizeof(data));` anyway. + +Fix https://github.com/google/sanitizers/issues/1365 +Related: https://bugzilla.redhat.com/show_bug.cgi?id=2169432 + +Reviewed By: #sanitizers, fweimer, thesamesam, vitalybuka + +Differential Revision: https://reviews.llvm.org/D149403 +--- + .../sanitizer_common_interceptors.inc | 37 ------------------- + .../sanitizer_platform_interceptors.h | 2 - + .../sanitizer_platform_limits_posix.cpp | 8 ---- + .../sanitizer_platform_limits_posix.h | 1 - + .../TestCases/Linux/crypt_r.cpp | 36 ------------------ + .../TestCases/Posix/crypt.cpp | 32 ---------------- + 6 files changed, 116 deletions(-) + delete mode 100644 compiler-rt/test/sanitizer_common/TestCases/Linux/crypt_r.cpp + delete mode 100644 compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp + +diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc +index b30c91f06cfeb0..490a8b12d8b17d 100644 +--- a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc +@@ -10086,41 +10086,6 @@ INTERCEPTOR(SSIZE_T, getrandom, void *buf, SIZE_T buflen, unsigned int flags) { + #define INIT_GETRANDOM + #endif + +-#if SANITIZER_INTERCEPT_CRYPT +-INTERCEPTOR(char *, crypt, char *key, char *salt) { +- void *ctx; +- COMMON_INTERCEPTOR_ENTER(ctx, crypt, key, salt); +- COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1); +- COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1); +- char *res = REAL(crypt)(key, salt); +- if (res != nullptr) +- COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1); +- return res; +-} +-#define INIT_CRYPT COMMON_INTERCEPT_FUNCTION(crypt); +-#else +-#define INIT_CRYPT +-#endif +- +-#if SANITIZER_INTERCEPT_CRYPT_R +-INTERCEPTOR(char *, crypt_r, char *key, char *salt, void *data) { +- void *ctx; +- COMMON_INTERCEPTOR_ENTER(ctx, crypt_r, key, salt, data); +- COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1); +- COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1); +- char *res = REAL(crypt_r)(key, salt, data); +- if (res != nullptr) { +- COMMON_INTERCEPTOR_WRITE_RANGE(ctx, data, +- __sanitizer::struct_crypt_data_sz); +- COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1); +- } +- return res; +-} +-#define INIT_CRYPT_R COMMON_INTERCEPT_FUNCTION(crypt_r); +-#else +-#define INIT_CRYPT_R +-#endif +- + #if SANITIZER_INTERCEPT_GETENTROPY + INTERCEPTOR(int, getentropy, void *buf, SIZE_T buflen) { + void *ctx; +@@ -10698,8 +10663,6 @@ static void InitializeCommonInterceptors() { + INIT_GETUSERSHELL; + INIT_SL_INIT; + INIT_GETRANDOM; +- INIT_CRYPT; +- INIT_CRYPT_R; + INIT_GETENTROPY; + INIT_QSORT; + INIT_QSORT_R; +diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h +index eb39fabfd59839..c82ab5c2105621 100644 +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h +@@ -569,8 +569,6 @@ + #define SANITIZER_INTERCEPT_FDEVNAME SI_FREEBSD + #define SANITIZER_INTERCEPT_GETUSERSHELL (SI_POSIX && !SI_ANDROID) + #define SANITIZER_INTERCEPT_SL_INIT (SI_FREEBSD || SI_NETBSD) +-#define SANITIZER_INTERCEPT_CRYPT (SI_POSIX && !SI_ANDROID) +-#define SANITIZER_INTERCEPT_CRYPT_R (SI_LINUX && !SI_ANDROID) + + #define SANITIZER_INTERCEPT_GETRANDOM \ + ((SI_LINUX && __GLIBC_PREREQ(2, 25)) || SI_FREEBSD) +diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp +index a04eed7aa5a6e..6d61d276d77e3 100644 +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -142,5 +142,4 @@ + #include <linux/serial.h> + #include <sys/msg.h> + #include <sys/ipc.h> +-#include <crypt.h> + #endif // SANITIZER_ANDROID +@@ -243,7 +244,6 @@ + unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT; + unsigned struct_rlimit64_sz = sizeof(struct rlimit64); + unsigned struct_statvfs64_sz = sizeof(struct statvfs64); +- unsigned struct_crypt_data_sz = sizeof(struct crypt_data); + #endif // SANITIZER_LINUX && !SANITIZER_ANDROID + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h +index e6f298c26e1fb6..58244c9944a03a 100644 +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -309,7 +309,6 @@ extern unsigned struct_msqid_ds_sz; + extern unsigned struct_mq_attr_sz; + extern unsigned struct_timex_sz; + extern unsigned struct_statvfs_sz; +-extern unsigned struct_crypt_data_sz; + #endif // SANITIZER_LINUX && !SANITIZER_ANDROID + + struct __sanitizer_iovec { +diff --git a/test/sanitizer_common/TestCases/Linux/crypt_r.cpp b/test/sanitizer_common/TestCases/Linux/crypt_r.cpp +deleted file mode 100644 +index 69bfb46aa5f171..00000000000000 +--- a/compiler-rt/test/sanitizer_common/TestCases/Linux/crypt_r.cpp ++++ /dev/null +@@ -1,36 +0,0 @@ +-// RUN: %clangxx -O0 -g %s -lcrypt -o %t && %run %t +- +-// crypt.h is missing from Android. +-// UNSUPPORTED: android +- +-#include <assert.h> +-#include <unistd.h> +-#include <cstring> +-#include <crypt.h> +- +-int main(int argc, char **argv) { +- { +- crypt_data cd; +- cd.initialized = 0; +- char *p = crypt_r("abcdef", "xz", &cd); +- volatile size_t z = strlen(p); +- } +- { +- crypt_data cd; +- cd.initialized = 0; +- char *p = crypt_r("abcdef", "$1$", &cd); +- volatile size_t z = strlen(p); +- } +- { +- crypt_data cd; +- cd.initialized = 0; +- char *p = crypt_r("abcdef", "$5$", &cd); +- volatile size_t z = strlen(p); +- } +- { +- crypt_data cd; +- cd.initialized = 0; +- char *p = crypt_r("abcdef", "$6$", &cd); +- volatile size_t z = strlen(p); +- } +-} +diff --git a/test/sanitizer_common/TestCases/Posix/crypt.cpp b/test/sanitizer_common/TestCases/Posix/crypt.cpp +deleted file mode 100644 +index 3a8faaa1ae7682..00000000000000 +--- a/compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp ++++ /dev/null +@@ -1,32 +0,0 @@ +-// RUN: %clangxx -O0 -g %s -o %t -lcrypt && %run %t +- +-// crypt() is missing from Android and -lcrypt from darwin. +-// UNSUPPORTED: android, darwin +- +-#include <assert.h> +-#include <unistd.h> +-#include <cstring> +-#if __has_include(<crypt.h>) +-#include <crypt.h> +-#endif +- +-int +-main (int argc, char** argv) +-{ +- { +- char *p = crypt("abcdef", "xz"); +- volatile size_t z = strlen(p); +- } +- { +- char *p = crypt("abcdef", "$1$"); +- volatile size_t z = strlen(p); +- } +- { +- char *p = crypt("abcdef", "$5$"); +- volatile size_t z = strlen(p); +- } +- { +- char *p = crypt("abcdef", "$6$"); +- volatile size_t z = strlen(p); +- } +-} diff --git a/gnu/packages/patches/clang-cling-runtime-13-glibc-2.36-compat.patch b/gnu/packages/patches/clang-cling-runtime-13-glibc-2.36-compat.patch new file mode 100644 index 0000000000..79b36f1383 --- /dev/null +++ b/gnu/packages/patches/clang-cling-runtime-13-glibc-2.36-compat.patch @@ -0,0 +1,50 @@ +This commit is from upstream and is included in the llvm-15 release + +commit b379129c4beb3f26223288627a1291739f33af02 +Author: Fangrui Song <i@maskray.me> +Date: Mon Jul 11 11:38:28 2022 -0700 + + [sanitizer] Remove #include <linux/fs.h> to resolve fsconfig_command/mount_attr conflict with glibc 2.36 + + It is generally not a good idea to mix usage of glibc headers and Linux UAPI + headers (https://sourceware.org/glibc/wiki/Synchronizing_Headers). In glibc + since 7eae6a91e9b1670330c9f15730082c91c0b1d570 (milestone: 2.36), sys/mount.h + defines `fsconfig_command` which conflicts with linux/mount.h: + + .../usr/include/linux/mount.h:95:6: error: redeclaration of ‘enum fsconfig_command’ + + Remove #include <linux/fs.h> which pulls in linux/mount.h. Expand its 4 macros manually. + + Fix https://github.com/llvm/llvm-project/issues/56421 + + Reviewed By: #sanitizers, vitalybuka, zatrazz + + Differential Revision: https://reviews.llvm.org/D129471 + +diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp +index 4bd425435d56..81740bf4ab39 100644 +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -73,7 +73,6 @@ + #include <sys/vt.h> + #include <linux/cdrom.h> + #include <linux/fd.h> +-#include <linux/fs.h> + #include <linux/hdreg.h> + #include <linux/input.h> + #include <linux/ioctl.h> +@@ -876,10 +875,10 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT; + unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT; + #endif +- unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS; +- unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION; +- unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS; +- unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION; ++ unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long); ++ unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long); ++ unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long); ++ unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long); + unsigned IOCTL_GIO_CMAP = GIO_CMAP; + unsigned IOCTL_GIO_FONT = GIO_FONT; + unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP; diff --git a/gnu/packages/patches/clang-runtime-12-remove-crypt-interceptors.patch b/gnu/packages/patches/clang-runtime-12-remove-crypt-interceptors.patch new file mode 100644 index 0000000000..79c7d0166a --- /dev/null +++ b/gnu/packages/patches/clang-runtime-12-remove-crypt-interceptors.patch @@ -0,0 +1,129 @@ +From 9b116160a1482c5c0c199f9c21d78a527d11d9ea Mon Sep 17 00:00:00 2001 +From: Fangrui Song <i@maskray.me> +Date: Fri, 28 Apr 2023 09:59:17 -0700 +Subject: [PATCH] Remove crypt and crypt_r interceptors + +From Florian Weimer's D144073 + +> On GNU/Linux (glibc), the crypt and crypt_r functions are not part of the main shared object (libc.so.6), but libcrypt (with multiple possible sonames). The sanitizer libraries do not depend on libcrypt, so it can happen that during sanitizer library initialization, no real implementation will be found because the crypt, crypt_r functions are not present in the process image (yet). If its interceptors are called nevertheless, this results in a call through a null pointer when the sanitizer library attempts to forward the call to the real implementation. +> +> Many distributions have already switched to libxcrypt, a library that is separate from glibc and that can be build with sanitizers directly (avoiding the need for interceptors). This patch disables building the interceptor for glibc targets. + +Let's remove crypt and crypt_r interceptors (D68431) to fix issues with +newer glibc. + +For older glibc, msan will not know that an uninstrumented crypt_r call +initializes `data`, so there is a risk for false positives. However, with some +codebase survey, I think crypt_r uses are very few and the call sites typically +have a `memset(&data, 0, sizeof(data));` anyway. + +Fix https://github.com/google/sanitizers/issues/1365 +Related: https://bugzilla.redhat.com/show_bug.cgi?id=2169432 + +Reviewed By: #sanitizers, fweimer, thesamesam, vitalybuka + +Differential Revision: https://reviews.llvm.org/D149403 +--- + .../sanitizer_common_interceptors.inc | 37 ------------------- + .../sanitizer_platform_interceptors.h | 2 - + .../sanitizer_platform_limits_posix.cpp | 8 ---- + .../sanitizer_platform_limits_posix.h | 1 - + 4 files changed, 48 deletions(-) + +diff -ru orig/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_common_interceptors.inc compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_common_interceptors.inc +--- orig/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_common_interceptors.inc 1970-01-01 01:00:01.000000000 +0100 ++++ compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_common_interceptors.inc 2024-09-25 23:40:25.783411083 +0200 +@@ -9814,41 +9814,6 @@ + #define INIT_GETRANDOM + #endif + +-#if SANITIZER_INTERCEPT_CRYPT +-INTERCEPTOR(char *, crypt, char *key, char *salt) { +- void *ctx; +- COMMON_INTERCEPTOR_ENTER(ctx, crypt, key, salt); +- COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1); +- COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1); +- char *res = REAL(crypt)(key, salt); +- if (res != nullptr) +- COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1); +- return res; +-} +-#define INIT_CRYPT COMMON_INTERCEPT_FUNCTION(crypt); +-#else +-#define INIT_CRYPT +-#endif +- +-#if SANITIZER_INTERCEPT_CRYPT_R +-INTERCEPTOR(char *, crypt_r, char *key, char *salt, void *data) { +- void *ctx; +- COMMON_INTERCEPTOR_ENTER(ctx, crypt_r, key, salt, data); +- COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1); +- COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1); +- char *res = REAL(crypt_r)(key, salt, data); +- if (res != nullptr) { +- COMMON_INTERCEPTOR_WRITE_RANGE(ctx, data, +- __sanitizer::struct_crypt_data_sz); +- COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1); +- } +- return res; +-} +-#define INIT_CRYPT_R COMMON_INTERCEPT_FUNCTION(crypt_r); +-#else +-#define INIT_CRYPT_R +-#endif +- + #if SANITIZER_INTERCEPT_GETENTROPY + INTERCEPTOR(int, getentropy, void *buf, SIZE_T buflen) { + void *ctx; +@@ -10337,8 +10302,6 @@ + INIT_GETUSERSHELL; + INIT_SL_INIT; + INIT_GETRANDOM; +- INIT_CRYPT; +- INIT_CRYPT_R; + INIT_GETENTROPY; + INIT_QSORT; + INIT_QSORT_R; +diff -ru orig/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_interceptors.h compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_interceptors.h +--- orig/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_interceptors.h 1970-01-01 01:00:01.000000000 +0100 ++++ compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_interceptors.h 2024-09-25 23:40:25.783411083 +0200 +@@ -566,8 +566,6 @@ + #define SANITIZER_INTERCEPT_FDEVNAME SI_FREEBSD + #define SANITIZER_INTERCEPT_GETUSERSHELL (SI_POSIX && !SI_ANDROID) + #define SANITIZER_INTERCEPT_SL_INIT (SI_FREEBSD || SI_NETBSD) +-#define SANITIZER_INTERCEPT_CRYPT (SI_POSIX && !SI_ANDROID) +-#define SANITIZER_INTERCEPT_CRYPT_R (SI_LINUX && !SI_ANDROID) + + #define SANITIZER_INTERCEPT_GETRANDOM \ + ((SI_LINUX && __GLIBC_PREREQ(2, 25)) || SI_FREEBSD) +diff -ru orig/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp +--- orig/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp 1970-01-01 01:00:01.000000000 +0100 ++++ compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp 2024-09-25 23:41:26.354728710 +0200 +@@ -151,7 +151,6 @@ + #include <linux/serial.h> + #include <sys/msg.h> + #include <sys/ipc.h> +-#include <crypt.h> + #endif // SANITIZER_ANDROID + + #include <link.h> +@@ -249,7 +248,6 @@ + unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT; + unsigned struct_rlimit64_sz = sizeof(struct rlimit64); + unsigned struct_statvfs64_sz = sizeof(struct statvfs64); +- unsigned struct_crypt_data_sz = sizeof(struct crypt_data); + #endif // SANITIZER_LINUX && !SANITIZER_ANDROID + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +diff -ru orig/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.h compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.h +--- orig/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.h 1970-01-01 01:00:01.000000000 +0100 ++++ compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.h 2024-09-25 23:40:30.999352318 +0200 +@@ -295,7 +295,6 @@ + extern unsigned struct_mq_attr_sz; + extern unsigned struct_timex_sz; + extern unsigned struct_statvfs_sz; +-extern unsigned struct_crypt_data_sz; + #endif // SANITIZER_LINUX && !SANITIZER_ANDROID + + struct __sanitizer_iovec { + diff --git a/gnu/packages/patches/cups-minimal-Address-PPD-injection-issues.patch b/gnu/packages/patches/cups-minimal-Address-PPD-injection-issues.patch new file mode 100644 index 0000000000..b6cf94c085 --- /dev/null +++ b/gnu/packages/patches/cups-minimal-Address-PPD-injection-issues.patch @@ -0,0 +1,529 @@ +From 373924d728b61cf6dec9c8a1a1edeb4b9f342529 Mon Sep 17 00:00:00 2001 +From: Tobias Geerinckx-Rice <me@tobias.gr> +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: \"<</MediaPosition %d>>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: \"<</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/durden-shadow-arcan.patch b/gnu/packages/patches/durden-shadow-arcan.patch index b666a6d7e3..784d4088ff 100644 --- a/gnu/packages/patches/durden-shadow-arcan.patch +++ b/gnu/packages/patches/durden-shadow-arcan.patch @@ -1,7 +1,7 @@ From 157524b7cb76c5044a27f4a9e373ee04a9da3c71 Mon Sep 17 00:00:00 2001 From: Ahmad Draidi <a.r.draidi@redscript.org> Date: Tue, 9 Apr 2024 18:26:52 +0400 -Subject: [PATCH] Use arcan from setuid-programs if available +Subject: [PATCH] Use arcan from privileged-programs if available --- distr/durden | 10 ++++++++-- @@ -14,8 +14,8 @@ index ab431ce..8672556 100755 @@ -1,5 +1,11 @@ #!/bin/sh -+if [ -n "$(command -v /run/setuid-programs/arcan 2>/dev/null)" ]; then -+ ARCAN_CMD="/run/setuid-programs/arcan" ++if [ -n "$(command -v /run/privileged/bin/arcan 2>/dev/null)" ]; then ++ ARCAN_CMD="/run/privileged/bin/arcan" +else + ARCAN_CMD="@ARCAN_STORE_PATH@" +fi diff --git a/gnu/packages/patches/dyninst-fix-glibc-compatibility.patch b/gnu/packages/patches/dyninst-fix-glibc-compatibility.patch deleted file mode 100644 index cd018da6cc..0000000000 --- a/gnu/packages/patches/dyninst-fix-glibc-compatibility.patch +++ /dev/null @@ -1,33 +0,0 @@ -From f233c46ac7b415104d04e4bb74bd7a0fcf24a333 Mon Sep 17 00:00:00 2001 -From: Olivier Dion <odion@efficios.com> -Date: Thu, 15 Jun 2023 12:02:08 -0400 -Subject: [PATCH] Fix compatibility with glibc 2.35 - -Something has change with the visibility of the _r_debug structure in -glibc 2.35. See this issue -<https://github.com/dyninst/dyninst/issues/1282>. - -This patch is essentially the upstream fix -<https://github.com/dyninst/dyninst/commit/273803a4c643ed3506f9a69c6ec71d5ab337489c> -backported. - -Signed-off-by: Olivier Dion <odion@efficios.com> ---- - dyninstAPI_RT/src/RTlinux.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/dyninstAPI_RT/src/RTlinux.c b/dyninstAPI_RT/src/RTlinux.c -index fc231d0a4..2f17ff677 100644 ---- a/dyninstAPI_RT/src/RTlinux.c -+++ b/dyninstAPI_RT/src/RTlinux.c -@@ -406,7 +406,6 @@ void dyninstTrapHandler(int sig, siginfo_t *sg, ucontext_t *context) - #if defined(cap_binary_rewriter) - - extern struct r_debug _r_debug; --DLLEXPORT struct r_debug _r_debug __attribute__ ((weak)); - - /* Verify that the r_debug variable is visible */ - void r_debugCheck() { assert(_r_debug.r_map); } --- -2.40.1 - diff --git a/gnu/packages/patches/erlang-man-path.patch b/gnu/packages/patches/erlang-man-path.patch index 68fc9f45b4..e5beb4af1e 100644 --- a/gnu/packages/patches/erlang-man-path.patch +++ b/gnu/packages/patches/erlang-man-path.patch @@ -9,10 +9,10 @@ as other man pages.) --- a/erts/etc/common/erlexec.c +++ b/erts/etc/common/erlexec.c -@@ -709,8 +709,10 @@ - error("-man not supported on Windows"); - #else - argv[i] = "man"; +@@ -728,8 +728,10 @@ int main(int argc, char **argv) + break; + } + } - erts_snprintf(tmpStr, sizeof(tmpStr), "%s/man", rootdir); - set_env("MANPATH", tmpStr); + /* diff --git a/gnu/packages/patches/expat-CVE-2024-45490.patch b/gnu/packages/patches/expat-CVE-2024-45490.patch new file mode 100644 index 0000000000..f876e78651 --- /dev/null +++ b/gnu/packages/patches/expat-CVE-2024-45490.patch @@ -0,0 +1,34 @@ +https://github.com/libexpat/libexpat/commit/5c1a31642e243f4870c0bd1f2afc7597976521bf.patch +Fixed in 2.6.3. +Takes only 1 of the 3 patches from +https://github.com/libexpat/libexpat/pull/890 to take the fix and not the +tests because that part doesn't apply cleanly. + +From 5c1a31642e243f4870c0bd1f2afc7597976521bf Mon Sep 17 00:00:00 2001 +From: Sebastian Pipping <sebastian@pipping.org> +Date: Mon, 19 Aug 2024 22:26:07 +0200 +Subject: [PATCH] lib: Reject negative len for XML_ParseBuffer + +Reported by TaiYou + +--- + expat/lib/xmlparse.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/lib/xmlparse.c b/lib/xmlparse.c +index 91682c188..ba1038119 100644 +--- a/lib/xmlparse.c ++++ b/lib/xmlparse.c +@@ -2038,6 +2038,12 @@ XML_ParseBuffer(XML_Parser parser, int len, int isFinal) { + + if (parser == NULL) + return XML_STATUS_ERROR; ++ ++ if (len < 0) { ++ parser->m_errorCode = XML_ERROR_INVALID_ARGUMENT; ++ return XML_STATUS_ERROR; ++ } ++ + switch (parser->m_parsingStatus.parsing) { + case XML_SUSPENDED: + parser->m_errorCode = XML_ERROR_SUSPENDED; diff --git a/gnu/packages/patches/expat-CVE-2024-45491.patch b/gnu/packages/patches/expat-CVE-2024-45491.patch new file mode 100644 index 0000000000..8ff10559bf --- /dev/null +++ b/gnu/packages/patches/expat-CVE-2024-45491.patch @@ -0,0 +1,34 @@ +https://github.com/libexpat/libexpat/commit/8e439a9947e9dc80a395c0c7456545d8d9d9e421.patch +Fixed in 2.6.3. + +From 8e439a9947e9dc80a395c0c7456545d8d9d9e421 Mon Sep 17 00:00:00 2001 +From: Sebastian Pipping <sebastian@pipping.org> +Date: Mon, 19 Aug 2024 22:34:13 +0200 +Subject: [PATCH] lib: Detect integer overflow in dtdCopy + +Reported by TaiYou +--- + expat/lib/xmlparse.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/lib/xmlparse.c b/lib/xmlparse.c +index 91682c188..e2327bdcf 100644 +--- a/lib/xmlparse.c ++++ b/lib/xmlparse.c +@@ -7016,6 +7016,16 @@ dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, + if (! newE) + return 0; + if (oldE->nDefaultAtts) { ++ /* Detect and prevent integer overflow. ++ * The preprocessor guard addresses the "always false" warning ++ * from -Wtype-limits on platforms where ++ * sizeof(int) < sizeof(size_t), e.g. on x86_64. */ ++#if UINT_MAX >= SIZE_MAX ++ if ((size_t)oldE->nDefaultAtts ++ > ((size_t)(-1) / sizeof(DEFAULT_ATTRIBUTE))) { ++ return 0; ++ } ++#endif + newE->defaultAtts + = ms->malloc_fcn(oldE->nDefaultAtts * sizeof(DEFAULT_ATTRIBUTE)); + if (! newE->defaultAtts) { diff --git a/gnu/packages/patches/expat-CVE-2024-45492.patch b/gnu/packages/patches/expat-CVE-2024-45492.patch new file mode 100644 index 0000000000..852a9b3f59 --- /dev/null +++ b/gnu/packages/patches/expat-CVE-2024-45492.patch @@ -0,0 +1,33 @@ +https://github.com/libexpat/libexpat/commit/9bf0f2c16ee86f644dd1432507edff94c08dc232.patch +Fixed in 2.6.3. + +From 9bf0f2c16ee86f644dd1432507edff94c08dc232 Mon Sep 17 00:00:00 2001 +From: Sebastian Pipping <sebastian@pipping.org> +Date: Mon, 19 Aug 2024 22:37:16 +0200 +Subject: [PATCH] lib: Detect integer overflow in function nextScaffoldPart + +Reported by TaiYou +--- + expat/lib/xmlparse.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/lib/xmlparse.c b/lib/xmlparse.c +index 91682c188..f737575ea 100644 +--- a/lib/xmlparse.c ++++ b/lib/xmlparse.c +@@ -7558,6 +7558,15 @@ nextScaffoldPart(XML_Parser parser) { + int next; + + if (! dtd->scaffIndex) { ++ /* Detect and prevent integer overflow. ++ * The preprocessor guard addresses the "always false" warning ++ * from -Wtype-limits on platforms where ++ * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ ++#if UINT_MAX >= SIZE_MAX ++ if (parser->m_groupSize > ((size_t)(-1) / sizeof(int))) { ++ return -1; ++ } ++#endif + dtd->scaffIndex = (int *)MALLOC(parser, parser->m_groupSize * sizeof(int)); + if (! dtd->scaffIndex) + return -1; diff --git a/gnu/packages/patches/fuzzel-fix-gcc-error.patch b/gnu/packages/patches/fuzzel-fix-gcc-error.patch new file mode 100644 index 0000000000..4b5071e0e2 --- /dev/null +++ b/gnu/packages/patches/fuzzel-fix-gcc-error.patch @@ -0,0 +1,42 @@ +From 05b16745a1d26c4e098c39a49c56e9c312771bd2 Mon Sep 17 00:00:00 2001 +From: Ashish SHUKLA <ashish.is@lostca.se> +Date: Mon, 23 Sep 2024 12:43:37 +0200 +Subject: [PATCH] Fix release build with GCC 11.x +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +meson in release build mode (with GCC) triggers following compiler error: + + In file included from ../source/clipboard.c:14: + ../source/clipboard.c: In function ‘select_mime_type_for_offer’: + ../source/log.h:58:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=] + 58 | log_msg(LOG_CLASS_DEBUG, LOG_MODULE, __FILE__, __LINE__, fmt, ## __VA_ARGS__) + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ../source/clipboard.c:81:5: note: in expansion of macro ‘LOG_DBG’ + 81 | LOG_DBG("mime-type: %s -> %s (offered type was %s)", + | ^~~~~~~ + ../source/clipboard.c:81:31: note: format string is defined here + 81 | LOG_DBG("mime-type: %s -> %s (offered type was %s)", + | ^~ + +Fixes #420 +--- + clipboard.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/clipboard.c b/clipboard.c +index a4fa2d2..c692503 100644 +--- a/clipboard.c ++++ b/clipboard.c +@@ -79,7 +79,9 @@ select_mime_type_for_offer(const char *_mime_type, + } + + LOG_DBG("mime-type: %s -> %s (offered type was %s)", +- mime_type_map[*type], mime_type_map[mime_type], _mime_type); ++ mime_type_map[*type], ++ (mime_type_map[mime_type] == NULL ? "(null)" : mime_type_map[mime_type]), ++ _mime_type); + + /* Mime-type transition; if the new mime-type is "better" than + * previously offered types, use the new type */ diff --git a/gnu/packages/patches/gemrb-add-path-suffixes-for-vlc-headers.patch b/gnu/packages/patches/gemrb-add-path-suffixes-for-vlc-headers.patch new file mode 100644 index 0000000000..4e678f7fd4 --- /dev/null +++ b/gnu/packages/patches/gemrb-add-path-suffixes-for-vlc-headers.patch @@ -0,0 +1,15 @@ +Add PATH_SUFFIXES to look inside the sub-directory `vlc` - the original statement +only check for `vlc.h` inside the directory `include`, `bin`, etc. +In Guix, however, `vlc.h` lies inside `/gnu/store/<hash>-vlc-x.y.z/include/vlc/vlc.h` + +--- a/cmake/modules/FindLIBVLC.cmake ++++ b/cmake/modules/FindLIBVLC.cmake +@@ -29,7 +29,7 @@ FIND_PATH(LIBVLC_INCLUDE_DIR vlc/vlc.h + c:/msys/local/include + NO_DEFAULT_PATH + ) +-FIND_PATH(LIBVLC_INCLUDE_DIR vlc.h) ++FIND_PATH(LIBVLC_INCLUDE_DIR vlc.h PATH_SUFFIXES vlc) + + #Put here path to custom location + #example: /home/user/vlc/lib etc.. diff --git a/gnu/packages/patches/ldns-drill-examples.patch b/gnu/packages/patches/ldns-drill-examples.patch index f85e14cebe..0bbfae2160 100644 --- a/gnu/packages/patches/ldns-drill-examples.patch +++ b/gnu/packages/patches/ldns-drill-examples.patch @@ -1,85 +1,83 @@ -From 68916cd7ffb49ece9126d13ef984595595a156c4 Mon Sep 17 00:00:00 2001 -From: Raghav Gururajan <raghavgururajan@disroot.org> -Date: Wed, 29 Jul 2020 12:32:48 -0400 -Subject: [PATCH] [PATCH]: Split installation of drill and examples. +From: Tobias Geerinckx-Rice <me@tobias.gr> +Date: Sun, 15 Sep 2024 00:00:00 +0000 +Subject: [PATCH]: Split installation of drill and examples. --- +Allow installing drill and examples into separate directory hierarchies. +Based on the original by Raghav Gururajan <raghavgururajan@disroot.org> + Makefile.in | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) -diff --git a/Makefile.in b/Makefile.in -index 442067de..9d2d5f4d 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -14,6 +14,10 @@ libdir = @libdir@ +diff -Naur a/Makefile.in b/Makefile.in +--- a/Makefile.in 2024-07-20 05:07:42.000000000 +0000 ++++ b/Makefile.in 2024-09-15 00:00:00.000000000 +0000 +@@ -14,6 +14,10 @@ includedir = @includedir@ sysconfdir = @sysconfdir@ doxygen = @doxygen@ -+drillbindir = @drillbindir@ -+drillmandir = @drillmandir@ -+examplesbindir = @examplesbindir@ -+examplesmandir = @examplesmandir@ ++drillbindir = @drillbindir@ ++drillmandir = @drillmandir@ ++examplesbindir = @examplesbindir@ ++examplesmandir = @examplesmandir@ pywrapdir = $(srcdir)/contrib/python pyldnsxwrapdir = $(srcdir)/contrib/ldnsx p5_dns_ldns_dir = $(srcdir)/contrib/DNS-LDNS -@@ -154,16 +158,16 @@ drill/drill.1: $(srcdir)/drill/drill.1.in +@@ -177,16 +181,16 @@ $(edit) $(srcdir)/drill/drill.1.in > drill/drill.1 install-drill: drill/drill drill/drill.1 - $(INSTALL) -m 755 -d $(DESTDIR)$(bindir) - $(INSTALL) -m 755 -d $(DESTDIR)$(mandir) - $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 -- $(LIBTOOL) --mode=install cp drill/drill $(DESTDIR)$(bindir) +- $(LIBTOOL) --mode=install cp drill/drill$(EXEEXT) $(DESTDIR)$(bindir) - $(INSTALL) -m 644 drill/drill.1 $(DESTDIR)$(mandir)/man1/drill.1 -+ $(INSTALL) -m 755 -d $(drillbindir) -+ $(INSTALL) -m 755 -d $(drillmandir) -+ $(INSTALL) -m 755 -d $(drillmandir)/man1 -+ $(LIBTOOL) --mode=install cp drill/drill $(drillbindir) -+ $(INSTALL) -m 644 drill/drill.1 $(drillmandir)/man1/drill.1 ++ $(INSTALL) -m 755 -d $(DESTDIR)$(drillbindir) ++ $(INSTALL) -m 755 -d $(DESTDIR)$(drillmandir) ++ $(INSTALL) -m 755 -d $(DESTDIR)$(drillmandir)/man1 ++ $(LIBTOOL) --mode=install cp drill/drill$(EXEEXT) $(DESTDIR)$(drillbindir) ++ $(INSTALL) -m 644 drill/drill.1 $(DESTDIR)$(drillmandir)/man1/drill.1 uninstall-drill: -- rm -f $(DESTDIR)$(bindir)/drill $(DESTDIR)$(mandir)/man1/drill.1 +- rm -f $(DESTDIR)$(bindir)/drill$(EXEEXT) $(DESTDIR)$(mandir)/man1/drill.1 - test ! -d $(DESTDIR)$(mandir) || rmdir -p $(DESTDIR)$(mandir)/man1 || :; - test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ; -+ rm -f $(drillbindir)/drill $(drillmandir)/man1/drill.1 -+ test ! -d $(drillmandir) || rmdir -p $(drillmandir)/man1 || :; -+ test ! -d $(drillbindir) || rmdir -p $(drillbindir) || : ; ++ rm -f $(DESTDIR)$(drillbindir)/drill$(EXEEXT) $(DESTDIR)$(drillmandir)/man1/drill.1 ++ test ! -d $(DESTDIR)$(drillmandir) || rmdir -p $(DESTDIR)$(drillmandir)/man1 || :; ++ test ! -d $(DESTDIR)$(drillbindir) || rmdir -p $(DESTDIR)$(drillbindir) || : ; clean-drill: - $(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill drill/drill.1 -@@ -202,23 +206,23 @@ examples/ldns-verify-zone.1: $(srcdir)/examples/ldns-verify-zone.1.in + $(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill$(EXEEXT) drill/drill.1 +@@ -228,23 +232,23 @@ $(edit) $(srcdir)/examples/ldns-verify-zone.1.in > examples/ldns-verify-zone.1 install-examples: $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1 - $(INSTALL) -m 755 -d $(DESTDIR)$(bindir) - $(INSTALL) -m 755 -d $(DESTDIR)$(mandir) - $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 -+ $(INSTALL) -m 755 -d $(examplesbindir) -+ $(INSTALL) -m 755 -d $(examplesmandir) -+ $(INSTALL) -m 755 -d $(examplesmandir)/man1 ++ $(INSTALL) -m 755 -d $(DESTDIR)$(examplesbindir) ++ $(INSTALL) -m 755 -d $(DESTDIR)$(examplesmandir) ++ $(INSTALL) -m 755 -d $(DESTDIR)$(examplesmandir)/man1 for p in $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) ; do \ -- $(LIBTOOL) --mode=install cp $$p $(DESTDIR)$(bindir) ; \ -+ $(LIBTOOL) --mode=install cp $$p $(examplesbindir) ; \ +- $(LIBTOOL) --mode=install cp $$p$(EXEEXT) $(DESTDIR)$(bindir) ; \ ++ $(LIBTOOL) --mode=install cp $$p$(EXEEXT) $(DESTDIR)$(examplesbindir) ; \ if test -f $$p.1 ; \ - then $(INSTALL) -m 644 $$p.1 $(DESTDIR)$(mandir)/man1 ; \ - else $(INSTALL) -m 644 $(srcdir)/$$p.1 $(DESTDIR)$(mandir)/man1 ; \ -+ then $(INSTALL) -m 644 $$p.1 $(examplesmandir)/man1 ; \ -+ else $(INSTALL) -m 644 $(srcdir)/$$p.1 $(examplesmandir)/man1 ; \ ++ then $(INSTALL) -m 644 $$p.1 $(DESTDIR)$(examplesmandir)/man1 ; \ ++ else $(INSTALL) -m 644 $(srcdir)/$$p.1 $(DESTDIR)$(examplesmandir)/man1 ; \ fi ; \ done uninstall-examples: for p in $(EX_PROGS_BASENM) ; do \ -- rm -f $(DESTDIR)$(bindir)/$$p $(DESTDIR)$(mandir)/man1/$$p.1 ;\ -+ rm -f $(examplesbindir)/$$p $(examplesmandir)/man1/$$p.1 ;\ +- rm -f $(DESTDIR)$(bindir)/$$p$(EXEEXT) $(DESTDIR)$(mandir)/man1/$$p.1 ;\ ++ rm -f $(DESTDIR)$(examplesbindir)/$$p$(EXEEXT) $(DESTDIR)$(examplesmandir)/man1/$$p.1 ;\ done - test ! -d $(DESTDIR)$(mandir) || rmdir -p $(DESTDIR)$(mandir)/man1 || :; - test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ; -+ test ! -d $(examplesmandir) || rmdir -p $(examplesmandir)/man1 || :; -+ test ! -d $(examplesbindir) || rmdir -p $(examplesbindir) || : ; ++ test ! -d $(DESTDIR)$(examplesmandir) || rmdir -p $(DESTDIR)$(examplesmandir)/man1 || :; ++ test ! -d $(DESTDIR)$(examplesbindir) || rmdir -p $(DESTDIR)$(examplesbindir) || : ; clean-examples: - $(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS) --- -2.27.0 - + for p in $(EX_PROGS_BASENM) ; do \ diff --git a/gnu/packages/patches/librewolf-add-paths-to-rdd-allowlist.patch b/gnu/packages/patches/librewolf-add-paths-to-rdd-allowlist.patch new file mode 100644 index 0000000000..1bee0bddf5 --- /dev/null +++ b/gnu/packages/patches/librewolf-add-paths-to-rdd-allowlist.patch @@ -0,0 +1,11 @@ +--- a/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp ++++ b/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp +@@ -920,6 +920,8 @@ + policy->AddDir(rdonly, "/usr/lib64"); + policy->AddDir(rdonly, "/run/opengl-driver/lib"); + policy->AddDir(rdonly, "/nix/store"); ++ policy->AddDir(rdonly, "/gnu/store"); ++ policy->AddDir(rdonly, "/run/current-system/profile/lib"); + + // Bug 1647957: memory reporting. + AddMemoryReporting(policy.get(), aPid); diff --git a/gnu/packages/patches/lxc-no-static-bin.patch b/gnu/packages/patches/lxc-no-static-bin.patch new file mode 100644 index 0000000000..bad1771f09 --- /dev/null +++ b/gnu/packages/patches/lxc-no-static-bin.patch @@ -0,0 +1,58 @@ +init.lxc.static is only used as a fallback and breaks ‘strip-runpath’, +so let's not build it. + +Index: lxc-6.0.1/src/lxc/cmd/meson.build +=================================================================== +--- lxc-6.0.1.orig/src/lxc/cmd/meson.build ++++ lxc-6.0.1/src/lxc/cmd/meson.build +@@ -62,19 +62,6 @@ cmd_lxc_update_config = configure_file( + output: 'lxc-update-config') + install_data(join_paths(project_build_root, 'src/lxc/cmd/lxc-update-config'), install_dir: bindir) + +-if sanitize == 'none' and libcap_static_linkable +- cmd_programs += executable( +- 'init.lxc.static', +- cmd_lxc_init_sources, +- include_directories: liblxc_includes, +- link_with: [liblxc_static], +- link_args: ['-static'], +- c_args: ['-DNO_LXC_CONF'], +- dependencies: [libcap_static] + liblxc_dependency_headers, +- install_dir: sbindir, +- install: true) +-endif +- + cmd_programs += executable( + 'init.lxc', + cmd_lxc_init_sources, +Index: lxc-6.0.1/meson.build +=================================================================== +--- lxc-6.0.1.orig/meson.build ++++ lxc-6.0.1/meson.build +@@ -426,26 +426,11 @@ if want_capabilities + pkgconfig_libs += libcap + liblxc_dependencies += libcap + +- libcap_static = dependency('libcap', required: false, static: true) +- if not libcap_static.found() +- # Compat with Ubuntu 14.04 which ships libcap w/o .pc file +- libcap_static = cc.find_library('cap', required: false, static: true) +- endif +- + code = ''' + int main(int argc, char *argv[]) { return 0; }; + ''' +- if libcap_static.found() +- libcap_static_linkable = cc.links(code, args: '-static', dependencies: libcap_static) +- else +- libcap_static_linkable = false +- endif +- srcconf.set10('HAVE_STATIC_LIBCAP', libcap_static_linkable) + else +- libcap_static = [] +- libcap_static_linkable = false + srcconf.set10('HAVE_LIBCAP', false) +- srcconf.set10('HAVE_STATIC_LIBCAP', false) + endif + + libutil = cc.find_library('util', required: false) diff --git a/gnu/packages/patches/pygpgme-disable-problematic-tests.patch b/gnu/packages/patches/pygpgme-disable-problematic-tests.patch deleted file mode 100644 index 2129d2f973..0000000000 --- a/gnu/packages/patches/pygpgme-disable-problematic-tests.patch +++ /dev/null @@ -1,37 +0,0 @@ -These tests require a gpg agent to run, and are difficult to get to work right -in Guix's environment. For more details, see: - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713074 - https://bugs.launchpad.net/pygpgme/+bug/999949 - ---- pygpgme-0.3/tests/test_encrypt_decrypt.py 2012-02-28 19:10:28.000000000 -0800 -+++ pygpgme-0.3/tests/test_encrypt_decrypt.py 2016-02-05 10:21:58.966685384 -0800 -@@ -125,7 +125,7 @@ - ctx.decrypt(ciphertext, plaintext) - self.assertEqual(plaintext.getvalue(), b'Hello World\n') - -- def test_encrypt_symmetric(self): -+ def skip_test_encrypt_symmetric(self): - plaintext = BytesIO(b'Hello World\n') - ciphertext = BytesIO() - def passphrase(uid_hint, passphrase_info, prev_was_bad, fd): - ---- pygpgme-0.3/tests/test_passphrase.py 2012-02-28 19:04:17.000000000 -0800 -+++ pygpgme-0.3/tests/test_passphrase.py 2016-02-05 10:21:47.990630956 -0800 -@@ -30,7 +30,7 @@ - - import_keys = ['passphrase.pub', 'passphrase.sec'] - -- def test_sign_without_passphrase_cb(self): -+ def skip_test_sign_without_passphrase_cb(self): - ctx = gpgme.Context() - key = ctx.get_key('EFB052B4230BBBC51914BCBB54DCBBC8DBFB9EB3') - ctx.signers = [key] -@@ -51,7 +51,7 @@ - self.prev_was_bad = prev_was_bad - os.write(fd, b'test\n') - -- def test_sign_with_passphrase_cb(self): -+ def skip_test_sign_with_passphrase_cb(self): - ctx = gpgme.Context() - key = ctx.get_key('EFB052B4230BBBC51914BCBB54DCBBC8DBFB9EB3') - ctx.signers = [key] diff --git a/gnu/packages/patches/python-pygpgme-fix-pinentry-tests.patch b/gnu/packages/patches/python-pygpgme-fix-pinentry-tests.patch deleted file mode 100644 index 1f7a4cadb7..0000000000 --- a/gnu/packages/patches/python-pygpgme-fix-pinentry-tests.patch +++ /dev/null @@ -1,69 +0,0 @@ -Fix test failure of test_XXX caused by upgrade of gpgme from 1.6.0 to -1.8.0: - -====================================================================== -FAIL: test_encrypt_to_signonly (tests.test_encrypt_decrypt.EncryptDecryptTestCase) ----------------------------------------------------------------------- -Traceback (most recent call last): - File "/tmp/guix-build-python2-pygpgme-0.3.drv-0/pygpgme-0.3/tests/test_encrypt_decrypt.py", line 185, in test_encrypt_to_signonly - self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_UNKNOWN) -AssertionError: 7 != 0 - ----------------------------------------------------------------------- - -Patch copied from the Debian package pygpgme-0.3-1.2: - -https://sources.debian.net/src/pygpgme/0.3-1.2/debian/patches/0005-Fix-test-failures-with-pinentry.patch/ - -From: "Dr. Tobias Quathamer" <toddy@debian.org> -Date: Thu, 24 Nov 2016 12:20:54 +0100 -Subject: Fix test failures with pinentry - ---- - tests/test_encrypt_decrypt.py | 5 +++-- - tests/test_passphrase.py | 2 ++ - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/tests/test_encrypt_decrypt.py b/tests/test_encrypt_decrypt.py -index 21ae83e..05707e1 100644 ---- a/tests/test_encrypt_decrypt.py -+++ b/tests/test_encrypt_decrypt.py -@@ -132,6 +132,7 @@ class EncryptDecryptTestCase(GpgHomeTestCase): - os.write(fd, b'Symmetric passphrase\n') - ctx = gpgme.Context() - ctx.armor = True -+ ctx.pinentry_mode = gpgme.PINENTRY_MODE_LOOPBACK - ctx.passphrase_cb = passphrase - ctx.encrypt(None, 0, plaintext, ciphertext) - self.assertTrue( -@@ -182,8 +183,8 @@ class EncryptDecryptTestCase(GpgHomeTestCase): - ctx.encrypt([recipient], gpgme.ENCRYPT_ALWAYS_TRUST, - plaintext, ciphertext) - except gpgme.GpgmeError as exc: -- self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_UNKNOWN) -- self.assertEqual(exc.args[1], gpgme.ERR_GENERAL) -+ self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_GPGME) -+ self.assertEqual(exc.args[1], gpgme.ERR_UNUSABLE_PUBKEY) - else: - self.fail('gpgme.GpgmeError not raised') - -diff --git a/tests/test_passphrase.py b/tests/test_passphrase.py -index 35b3c59..05e6811 100644 ---- a/tests/test_passphrase.py -+++ b/tests/test_passphrase.py -@@ -34,6 +34,7 @@ class PassphraseTestCase(GpgHomeTestCase): - ctx = gpgme.Context() - key = ctx.get_key('EFB052B4230BBBC51914BCBB54DCBBC8DBFB9EB3') - ctx.signers = [key] -+ ctx.pinentry_mode = gpgme.PINENTRY_MODE_LOOPBACK - plaintext = BytesIO(b'Hello World\n') - signature = BytesIO() - -@@ -55,6 +56,7 @@ class PassphraseTestCase(GpgHomeTestCase): - ctx = gpgme.Context() - key = ctx.get_key('EFB052B4230BBBC51914BCBB54DCBBC8DBFB9EB3') - ctx.signers = [key] -+ ctx.pinentry_mode = gpgme.PINENTRY_MODE_LOOPBACK - ctx.passphrase_cb = self.passphrase_cb - plaintext = BytesIO(b'Hello World\n') - signature = BytesIO() diff --git a/gnu/packages/patches/rapidcheck-fix-libs.patch b/gnu/packages/patches/rapidcheck-fix-libs.patch new file mode 100644 index 0000000000..5e5603116c --- /dev/null +++ b/gnu/packages/patches/rapidcheck-fix-libs.patch @@ -0,0 +1,27 @@ +From c4f558b0990571759fdaf976eb35ee1eb0d934a0 Mon Sep 17 00:00:00 2001 +From: Robert Hensing <robert@roberthensing.nl> +Date: Tue, 25 Jun 2024 20:57:41 +0200 +Subject: [PATCH] Add -lrapidcheck to pkg-config module + +This adds the library to rapidcheck.pc, so that it doesn't have +to be specified manually in projects that consume it. + +The other modules don't need it because they have rapidcheck in +their Requires field. +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d55fdc51..046df2fd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -128,7 +128,7 @@ set(PKG_CONFIG_DESCRIPTION_SUMMARY "C++ framework for property based testing ins + set(PKG_CONFIG_VERSION) + set(PKG_CONFIG_LIBDIR "\${prefix}/lib") + set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include") +-set(PKG_CONFIG_LIBS) ++set(PKG_CONFIG_LIBS "-L\${libdir} -lrapidcheck") + set(PKG_CONFIG_CFLAGS "-I\${includedir}") + + configure_file( diff --git a/gnu/packages/patches/sbcl-lack-fix-tests.patch b/gnu/packages/patches/sbcl-lack-fix-tests.patch new file mode 100644 index 0000000000..c9abfb3d6f --- /dev/null +++ b/gnu/packages/patches/sbcl-lack-fix-tests.patch @@ -0,0 +1,243 @@ +Remove tests that cannot be run. Some depend on clack, which in turn +depends on lack. Others refer to systems that don't exist +(names starting with "t-"). + +--- a/lack-component.asd ++++ b/lack-component.asd +@@ -2,7 +2,6 @@ + :version "0.2.0" + :author "Eitaro Fukamachi" + :license "MIT" +- :components ((:file "src/component")) +- :in-order-to ((test-op (test-op "t-lack-component")))) ++ :components ((:file "src/component"))) + + (register-system-packages "lack-component" '(:lack.component)) +diff --git a/lack-middleware-accesslog.asd b/lack-middleware-accesslog.asd +index c593988..21a4e70 100644 +--- a/lack-middleware-accesslog.asd ++++ b/lack-middleware-accesslog.asd +@@ -6,7 +6,6 @@ + "local-time") + :components ((:module "src" + :components +- ((:file "middleware/accesslog")))) +- :in-order-to ((test-op (test-op "t-lack-middleware-accesslog")))) ++ ((:file "middleware/accesslog"))))) + + (register-system-packages "lack-middleware-accesslog" '(:lack.middleware.accesslog)) +diff --git a/lack-middleware-auth-basic.asd b/lack-middleware-auth-basic.asd +index 9206d22..6862f33 100644 +--- a/lack-middleware-auth-basic.asd ++++ b/lack-middleware-auth-basic.asd +@@ -6,7 +6,6 @@ + "split-sequence") + :components ((:module "src" + :components +- ((:file "middleware/auth/basic")))) +- :in-order-to ((test-op (test-op "t-lack-middleware-auth-basic")))) ++ ((:file "middleware/auth/basic"))))) + + (register-system-packages "lack-middleware-auth-basic" '(:lack.middleware.auth.basic)) +diff --git a/lack-middleware-backtrace.asd b/lack-middleware-backtrace.asd +index 8df7f9f..cf73f81 100644 +--- a/lack-middleware-backtrace.asd ++++ b/lack-middleware-backtrace.asd +@@ -3,7 +3,6 @@ + :author "Eitaro Fukamachi" + :license "MIT" + :depends-on ("uiop") +- :components ((:file "src/middleware/backtrace")) +- :in-order-to ((test-op (test-op "t-lack-middleware-backtrace")))) ++ :components ((:file "src/middleware/backtrace"))) + + (register-system-packages "lack-middleware-backtrace" '(:lack.middleware.backtrace)) +diff --git a/lack-middleware-csrf.asd b/lack-middleware-csrf.asd +index 105d3bb..fcf46f7 100644 +--- a/lack-middleware-csrf.asd ++++ b/lack-middleware-csrf.asd +@@ -6,7 +6,6 @@ + "lack-util") + :components ((:module "src" + :components +- ((:file "middleware/csrf")))) +- :in-order-to ((test-op (test-op "t-lack-middleware-csrf")))) ++ ((:file "middleware/csrf"))))) + + (register-system-packages "lack-middleware-csrf" '(:lack.middleware.csrf)) +diff --git a/lack-middleware-session.asd b/lack-middleware-session.asd +index 92b1568..bed4c89 100644 +--- a/lack-middleware-session.asd ++++ b/lack-middleware-session.asd +@@ -19,7 +19,6 @@ + :pathname "session" + :components + ((:file "state") +- (:file "state/cookie")))))) +- :in-order-to ((test-op (test-op "t-lack-middleware-session")))) ++ (:file "state/cookie"))))))) + + (register-system-packages "lack-middleware-session" '(:lack.middleware.session)) +diff --git a/lack-middleware-static.asd b/lack-middleware-static.asd +index a0ce627..107a386 100644 +--- a/lack-middleware-static.asd ++++ b/lack-middleware-static.asd +@@ -7,7 +7,6 @@ + "alexandria") + :components ((:module "src" + :components +- ((:file "middleware/static")))) +- :in-order-to ((test-op (test-op "t-lack-middleware-static")))) ++ ((:file "middleware/static"))))) + + (register-system-packages "lack-middleware-static" '(:lack.middleware.static)) +diff --git a/lack-request.asd b/lack-request.asd +index 5efa05c..240b421 100644 +--- a/lack-request.asd ++++ b/lack-request.asd +@@ -9,7 +9,6 @@ + :components ((:module "src" + :components + ((:file "request" :depends-on ("media-type")) +- (:file "media-type")))) +- :in-order-to ((test-op (test-op "t-lack-request")))) ++ (:file "media-type"))))) + + (register-system-packages "lack-request" '(:lack.request)) +diff --git a/lack-session-store-dbi.asd b/lack-session-store-dbi.asd +index 00e7d1e..825a96c 100644 +--- a/lack-session-store-dbi.asd ++++ b/lack-session-store-dbi.asd +@@ -7,7 +7,6 @@ + "marshal" + "trivial-utf-8" + "cl-base64") +- :components ((:file "src/middleware/session/store/dbi")) +- :in-order-to ((test-op (test-op "t-lack-session-store-dbi")))) ++ :components ((:file "src/middleware/session/store/dbi"))) + + (register-system-packages "lack-session-store-dbi" '(:lack.session.store.dbi)) +diff --git a/lack-session-store-redis.asd b/lack-session-store-redis.asd +index 96b0504..57e4046 100644 +--- a/lack-session-store-redis.asd ++++ b/lack-session-store-redis.asd +@@ -7,7 +7,6 @@ + "marshal" + "cl-base64" + "trivial-utf-8") +- :components ((:file "src/middleware/session/store/redis")) +- :in-order-to ((test-op (test-op "t-lack-session-store-redis")))) ++ :components ((:file "src/middleware/session/store/redis"))) + + (register-system-packages "lack-session-store-redis" '(:lack.session.store.redis)) +diff --git a/lack-util.asd b/lack-util.asd +index 0391a1b..1318c04 100644 +--- a/lack-util.asd ++++ b/lack-util.asd +@@ -5,7 +5,6 @@ + :depends-on ((:feature (:or :windows :mswindows :win32 :cormanlisp) "ironclad") + (:feature (:not (:or :windows :mswindows :win32 :cormanlisp)) "cl-isaac") + "bordeaux-threads") +- :components ((:file "src/util")) +- :in-order-to ((test-op (test-op "t-lack-util")))) ++ :components ((:file "src/util"))) + + (register-system-packages "lack-util" '(:lack.util)) +diff --git a/lack.asd b/lack.asd +index e213c10..dde71cf 100644 +--- a/lack.asd ++++ b/lack.asd +@@ -43,8 +43,6 @@ + "lack/middleware/auth/basic" + "lack/session/store/redis" + "lack/session/store/dbi" +- "clack" +- "clack-test" + "hunchentoot" + "dexador" + "cl-cookie" +@@ -60,7 +58,6 @@ + :serial t + :components ((:file "builder") + (:file "util") +- (:file "request") + (:file "component") + (:file "media-type") + (:module "middleware" +diff --git a/tests/request.lisp b/tests/request.lisp +deleted file mode 100644 +index 3fd26e0..0000000 +--- a/tests/request.lisp ++++ /dev/null +@@ -1,71 +0,0 @@ +-(defpackage #:lack/tests/request +- (:use #:cl +- #:rove +- #:lack/request +- #:clack.test +- #:flexi-streams) +- (:import-from #:dexador) +- (:import-from #:alexandria +- #:alist-hash-table)) +-(in-package #:lack/tests/request) +- +-(defparameter *request* +- (make-request `(:content-type "application/x-www-form-urlencoded; charset=utf-8" +- :content-length 20 +- :uri-scheme :http +- :query-string "ediweitz=weitzedi&name=eitaro&q=C%2B%2B" +- :raw-body +- ,(flex:make-flexi-stream +- (flex:make-in-memory-input-stream +- #(110 97 109 101 61 230 183 177 231 148 186 232 139 177 229 164 170 233 131 142)) +- :external-format :utf-8) +- :headers ,(alexandria:alist-hash-table +- '(("referer" . "http://github.com/fukamachi/clack") +- ("user-agent" . "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US)") +- ("accept" . "text/html") +- ("cookie" . "hoge=1;fuga=semi;colon")) +- :test 'equal)))) +- +-(deftest lack-request +- (ok (typep *request* 'request)) +- +- (ok (request-env *request*) "request-env") +- +- (ok (equal (request-content-type *request*) "application/x-www-form-urlencoded; charset=utf-8") +- "request-content-type") +- +- (ok (equalp (request-query-parameters *request*) +- '(("ediweitz" . "weitzedi") ("name" . "eitaro") ("q" . "C++"))) +- "request-query-parameters") +- +- (ok (equalp (request-body-parameters *request*) +- `(("name" . ,(flex:octets-to-string +- #(230 183 177 231 148 186 232 139 177 229 164 170 233 131 142) +- :external-format :utf-8)))) +- "request-body-parameters") +- +- (ok (equalp (request-cookies *request*) +- '(("hoge" . "1") ("fuga" . "semi") ("colon"))) +- "request-cookies") +- +- (ok (request-accepts-p *request* "text/html")) +- +- (ng (request-accepts-p *request* "application/json")) +- +- (testing-app "make-request" +- (lambda (env) +- (make-request env) +- `(200 nil (,(third (assoc "file" (request-body-parameters (make-request env)) :test #'string=))))) +- (multiple-value-bind (body status) +- (dex:post (localhost) +- :content +- `(("file" . ,(asdf:system-relative-pathname :lack #P"data/jellyfish.jpg")))) +- (ok (eql status 200)) +- (ok (equal body "jellyfish.jpg"))) +- +- (multiple-value-bind (body status) +- (dex:post (localhost) +- :content +- `(("file" . ,(asdf:system-relative-pathname :lack #P"data/jellyfish.jpg")))) +- (ok (eql status 200)) +- (ok (equal body "jellyfish.jpg"))))) diff --git a/gnu/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch b/gnu/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch index a603bc9d72..1354a1e9cd 100644 --- a/gnu/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch +++ b/gnu/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch @@ -47,10 +47,9 @@ diff --git a/Telegram/SourceFiles/calls/calls_call.cpp b/Telegram/SourceFiles/ca index 5fe9ac677..bebf48e70 100644 --- a/Telegram/SourceFiles/calls/calls_call.cpp +++ b/Telegram/SourceFiles/calls/calls_call.cpp -@@ -39,8 +39,10 @@ class InstanceImpl; +@@ -39,7 +39,9 @@ class InstanceImpl; class InstanceV2Impl; class InstanceV2ReferenceImpl; - class InstanceV2_4_0_0Impl; +#ifndef TDESKTOP_DISABLE_LEGACY_TGVOIP class InstanceImplLegacy; void SetLegacyGlobalServerConfig(const std::string &serverConfig); @@ -58,10 +57,9 @@ index 5fe9ac677..bebf48e70 100644 } // namespace tgcalls namespace Calls { -@@ -56,7 +58,9 @@ const auto Register = tgcalls::Register<tgcalls::InstanceImpl>(); +@@ -56,6 +58,8 @@ const auto Register = tgcalls::Register<tgcalls::InstanceImpl>(); const auto RegisterV2 = tgcalls::Register<tgcalls::InstanceV2Impl>(); const auto RegV2Ref = tgcalls::Register<tgcalls::InstanceV2ReferenceImpl>(); - const auto RegisterV240 = tgcalls::Register<tgcalls::InstanceV2_4_0_0Impl>(); +#ifndef TDESKTOP_DISABLE_LEGACY_TGVOIP const auto RegisterLegacy = tgcalls::Register<tgcalls::InstanceImplLegacy>(); +#endif diff --git a/gnu/packages/patches/telegram-desktop-unbundle-cppgir.patch b/gnu/packages/patches/telegram-desktop-unbundle-cppgir.patch new file mode 100644 index 0000000000..a24dbe25bb --- /dev/null +++ b/gnu/packages/patches/telegram-desktop-unbundle-cppgir.patch @@ -0,0 +1,95 @@ +From a5c42e07ae223d440ff11347e0cf1fd58fd383df Mon Sep 17 00:00:00 2001 +From: Nicholas Guriev <nicholas@guriev.su> +Date: Sat, 26 Aug 2023 18:23:53 +0300 +Subject: [PATCH 1/2] Look for system-wide cppgir before fallback to the + bundled copy + +Closes: #282 +--- + external/glib/CMakeLists.txt | 4 +++- + external/glib/generate_cppgir.cmake | 7 ++++++- + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/external/glib/CMakeLists.txt b/external/glib/CMakeLists.txt +index 3c6fe4be..c862705f 100644 +--- a/external/glib/CMakeLists.txt ++++ b/external/glib/CMakeLists.txt +@@ -13,9 +13,11 @@ function(add_cppgir) # isolate scope + set(BUILD_EXAMPLES OFF) + add_subdirectory(cppgir EXCLUDE_FROM_ALL) + endfunction() +-add_cppgir() + + include(generate_cppgir.cmake) ++if (NOT CppGir_FOUND) ++ add_cppgir() ++endif() + generate_cppgir(external_glib Gio-2.0) + + find_package(PkgConfig REQUIRED) +diff --git a/external/glib/generate_cppgir.cmake b/external/glib/generate_cppgir.cmake +index c15d3f9e..9b0a5ac8 100644 +--- a/external/glib/generate_cppgir.cmake ++++ b/external/glib/generate_cppgir.cmake +@@ -4,6 +4,8 @@ + # For license and copyright information please follow this link: + # https://github.com/desktop-app/legal/blob/master/LEGAL + ++find_package(CppGir 2.0) ++ + function(generate_cppgir target_name gir) + set(cppgir_loc ${cmake_helpers_loc}/external/glib/cppgir) + +@@ -17,6 +19,9 @@ function(generate_cppgir target_name gir) + ${cppgir_loc}/data/cppgir.ignore + ${cppgir_loc}/data/cppgir_unix.ignore + ) ++ if (CppGir_FOUND) ++ set(ignore_files) # rely on default ignore list ++ endif() + + set(gir_path) + if (IS_ABSOLUTE "${gir}") +@@ -33,7 +38,7 @@ function(generate_cppgir target_name gir) + --class + --class-full + --expected +- --ignore ++ "$<$<BOOL:${ignore_files}>:--ignore>" + "$<JOIN:${ignore_files},:>" + --output + ${gen_dst} + +From eed39522952c15f448c54290454806dd011c4996 Mon Sep 17 00:00:00 2001 +From: Nicholas Guriev <nicholas@guriev.su> +Date: Sat, 26 Aug 2023 18:23:53 +0300 +Subject: [PATCH 2/2] Look for system-wide cppgir before fallback to the + bundled copy + +Closes: #282 +--- + external/glib/generate_cppgir.cmake | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/external/glib/generate_cppgir.cmake b/external/glib/generate_cppgir.cmake +index 9b0a5ac8..2ad82277 100644 +--- a/external/glib/generate_cppgir.cmake ++++ b/external/glib/generate_cppgir.cmake +@@ -15,11 +15,12 @@ function(generate_cppgir target_name gir) + + set(gen_timestamp ${gen_dst}/${target_name}_cppgir.timestamp) + +- set(ignore_files +- ${cppgir_loc}/data/cppgir.ignore +- ${cppgir_loc}/data/cppgir_unix.ignore +- ) +- if (CppGir_FOUND) ++ if (NOT CppGir_FOUND) ++ set(ignore_files ++ ${cppgir_loc}/data/cppgir.ignore ++ ${cppgir_loc}/data/cppgir_unix.ignore ++ ) ++ else() + set(ignore_files) # rely on default ignore list + endif() + diff --git a/gnu/packages/patches/telegram-desktop-unbundle-gsl.patch b/gnu/packages/patches/telegram-desktop-unbundle-gsl.patch new file mode 100644 index 0000000000..f89d326a5c --- /dev/null +++ b/gnu/packages/patches/telegram-desktop-unbundle-gsl.patch @@ -0,0 +1,31 @@ +From a3ac6df0441b4caca28b1df87febc420e18942ce Mon Sep 17 00:00:00 2001 +From: Zephyr Lykos <git@mochaa.ws> +Date: Mon, 23 Oct 2023 15:55:24 +0800 +Subject: [PATCH] Revert "Force usage of GSL fork because of a libstdc++ bug." + +This reverts commit 982546b169df3d479e6511425870327559b38a89. +<https://github.com/microsoft/GSL/commit/e64c97fc2cfc11992098bb38eda932de275e3f4d> +--- + external/gsl/CMakeLists.txt | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/external/gsl/CMakeLists.txt b/external/gsl/CMakeLists.txt +index 8eaf19c5..344f9488 100644 +--- a/external/gsl/CMakeLists.txt ++++ b/external/gsl/CMakeLists.txt +@@ -7,7 +7,6 @@ + add_library(external_gsl INTERFACE IMPORTED GLOBAL) + add_library(desktop-app::external_gsl ALIAS external_gsl) + +-#[[ + if (DESKTOP_APP_USE_PACKAGED) + if (DESKTOP_APP_USE_PACKAGED_LAZY) + find_package(Microsoft.GSL 4.0.0 QUIET) +@@ -20,7 +19,6 @@ if (DESKTOP_APP_USE_PACKAGED) + return() + endif() + endif() +-]] + + # https://gitlab.kitware.com/cmake/cmake/-/issues/25222 + if (NOT EXISTS ${third_party_loc}/GSL/include) diff --git a/gnu/packages/patches/waybar-0.11.0-fix-tray-icons.patch b/gnu/packages/patches/waybar-0.11.0-fix-tray-icons.patch new file mode 100644 index 0000000000..5c8c98a661 --- /dev/null +++ b/gnu/packages/patches/waybar-0.11.0-fix-tray-icons.patch @@ -0,0 +1,86 @@ +Taken from upstream's merged PR #3604 [1]. + +[1] https://github.com/Alexays/Waybar/pull/3604 + +From 0006e4713ae19776528038b3242ded05db884ba5 Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin <alebastr89@gmail.com> +Date: Sat, 14 Sep 2024 07:37:37 -0700 +Subject: [PATCH 2/2] fix(tray): revert ustring formatting changes + +This reverts commit a4d31ab10d1630cb9104c695d7b777ca12468904. +--- + src/modules/sni/item.cpp | 23 +++++++++-------------- + 1 file changed, 9 insertions(+), 14 deletions(-) + +diff --git a/src/modules/sni/item.cpp b/src/modules/sni/item.cpp +index 8afb39fb3..6c4ec8c06 100644 +--- a/src/modules/sni/item.cpp ++++ b/src/modules/sni/item.cpp +@@ -104,11 +104,9 @@ void Item::proxyReady(Glib::RefPtr<Gio::AsyncResult>& result) { + this->updateImage(); + + } catch (const Glib::Error& err) { +- spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, +- std::string(err.what())); ++ spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, err.what()); + } catch (const std::exception& err) { +- spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, +- std::string(err.what())); ++ spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, err.what()); + } + } + +@@ -126,15 +124,14 @@ ToolTip get_variant<ToolTip>(const Glib::VariantBase& value) { + result.text = get_variant<Glib::ustring>(container.get_child(2)); + auto description = get_variant<Glib::ustring>(container.get_child(3)); + if (!description.empty()) { +- result.text = fmt::format("<b>{}</b>\n{}", std::string(result.text), std::string(description)); ++ result.text = fmt::format("<b>{}</b>\n{}", result.text, description); + } + return result; + } + + void Item::setProperty(const Glib::ustring& name, Glib::VariantBase& value) { + try { +- spdlog::trace("Set tray item property: {}.{} = {}", id.empty() ? bus_name : id, +- std::string(name), get_variant<std::string>(value)); ++ spdlog::trace("Set tray item property: {}.{} = {}", id.empty() ? bus_name : id, name, value); + + if (name == "Category") { + category = get_variant<std::string>(value); +@@ -179,12 +176,10 @@ void Item::setProperty(const Glib::ustring& name, Glib::VariantBase& value) { + } + } catch (const Glib::Error& err) { + spdlog::warn("Failed to set tray item property: {}.{}, value = {}, err = {}", +- id.empty() ? bus_name : id, std::string(name), get_variant<std::string>(value), +- std::string(err.what())); ++ id.empty() ? bus_name : id, name, value, err.what()); + } catch (const std::exception& err) { + spdlog::warn("Failed to set tray item property: {}.{}, value = {}, err = {}", +- id.empty() ? bus_name : id, std::string(name), get_variant<std::string>(value), +- std::string(err.what())); ++ id.empty() ? bus_name : id, name, value, err.what()); + } + } + +@@ -226,9 +221,9 @@ void Item::processUpdatedProperties(Glib::RefPtr<Gio::AsyncResult>& _result) { + + this->updateImage(); + } catch (const Glib::Error& err) { +- spdlog::warn("Failed to update properties: {}", std::string(err.what())); ++ spdlog::warn("Failed to update properties: {}", err.what()); + } catch (const std::exception& err) { +- spdlog::warn("Failed to update properties: {}", std::string(err.what())); ++ spdlog::warn("Failed to update properties: {}", err.what()); + } + update_pending_.clear(); + } +@@ -250,7 +245,7 @@ static const std::map<std::string_view, std::set<std::string_view>> signal2props + + void Item::onSignal(const Glib::ustring& sender_name, const Glib::ustring& signal_name, + const Glib::VariantContainerBase& arguments) { +- spdlog::trace("Tray item '{}' got signal {}", id, std::string(signal_name)); ++ spdlog::trace("Tray item '{}' got signal {}", id, signal_name); + auto changed = signal2props.find(signal_name.raw()); + if (changed != signal2props.end()) { + if (update_pending_.empty()) { diff --git a/gnu/packages/patches/webrtc-audio-processing-big-endian.patch b/gnu/packages/patches/webrtc-audio-processing-big-endian.patch new file mode 100644 index 0000000000..78333fe7b7 --- /dev/null +++ b/gnu/packages/patches/webrtc-audio-processing-big-endian.patch @@ -0,0 +1,93 @@ +https://bugs.freedesktop.org/show_bug.cgi?id=95738 +https://bugs.freedesktop.org/attachment.cgi?id=124025 + +diff -up webrtc-audio-processing-0.2/webrtc/common_audio/wav_file.cc.than webrtc-audio-processing-0.2/webrtc/common_audio/wav_file.cc +--- webrtc-audio-processing-0.2/webrtc/common_audio/wav_file.cc.than 2016-05-24 08:28:45.749940095 -0400 ++++ webrtc-audio-processing-0.2/webrtc/common_audio/wav_file.cc 2016-05-24 08:50:30.361020010 -0400 +@@ -64,9 +64,6 @@ WavReader::~WavReader() { + } + + size_t WavReader::ReadSamples(size_t num_samples, int16_t* samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to big-endian when reading from WAV file" +-#endif + // There could be metadata after the audio; ensure we don't read it. + num_samples = std::min(rtc::checked_cast<uint32_t>(num_samples), + num_samples_remaining_); +@@ -76,6 +73,12 @@ size_t WavReader::ReadSamples(size_t num + RTC_CHECK(read == num_samples || feof(file_handle_)); + RTC_CHECK_LE(read, num_samples_remaining_); + num_samples_remaining_ -= rtc::checked_cast<uint32_t>(read); ++#ifndef WEBRTC_ARCH_LITTLE_ENDIAN ++ //convert to big-endian ++ for(size_t idx = 0; idx < num_samples; idx++) { ++ samples[idx] = (samples[idx]<<8) | (samples[idx]>>8); ++ } ++#endif + return read; + } + +@@ -120,10 +123,17 @@ WavWriter::~WavWriter() { + + void WavWriter::WriteSamples(const int16_t* samples, size_t num_samples) { + #ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to little-endian when writing to WAV file" +-#endif ++ int16_t * le_samples = new int16_t[num_samples]; ++ for(size_t idx = 0; idx < num_samples; idx++) { ++ le_samples[idx] = (samples[idx]<<8) | (samples[idx]>>8); ++ } ++ const size_t written = ++ fwrite(le_samples, sizeof(*le_samples), num_samples, file_handle_); ++ delete []le_samples; ++#else + const size_t written = + fwrite(samples, sizeof(*samples), num_samples, file_handle_); ++#endif + RTC_CHECK_EQ(num_samples, written); + num_samples_ += static_cast<uint32_t>(written); + RTC_CHECK(written <= std::numeric_limits<uint32_t>::max() || +diff -up webrtc-audio-processing-0.2/webrtc/common_audio/wav_header.cc.than webrtc-audio-processing-0.2/webrtc/common_audio/wav_header.cc +--- webrtc-audio-processing-0.2/webrtc/common_audio/wav_header.cc.than 2016-05-24 08:50:52.591379263 -0400 ++++ webrtc-audio-processing-0.2/webrtc/common_audio/wav_header.cc 2016-05-24 08:52:08.552606848 -0400 +@@ -129,7 +129,39 @@ static inline std::string ReadFourCC(uin + return std::string(reinterpret_cast<char*>(&x), 4); + } + #else +-#error "Write be-to-le conversion functions" ++static inline void WriteLE16(uint16_t* f, uint16_t x) { ++ *f = ((x << 8) & 0xff00) | ( ( x >> 8) & 0x00ff); ++} ++ ++static inline void WriteLE32(uint32_t* f, uint32_t x) { ++ *f = ( (x & 0x000000ff) << 24 ) ++ | ((x & 0x0000ff00) << 8) ++ | ((x & 0x00ff0000) >> 8) ++ | ((x & 0xff000000) >> 24 ); ++} ++ ++static inline void WriteFourCC(uint32_t* f, char a, char b, char c, char d) { ++ *f = (static_cast<uint32_t>(a) << 24 ) ++ | (static_cast<uint32_t>(b) << 16) ++ | (static_cast<uint32_t>(c) << 8) ++ | (static_cast<uint32_t>(d) ); ++} ++ ++static inline uint16_t ReadLE16(uint16_t x) { ++ return (( x & 0x00ff) << 8 )| ((x & 0xff00)>>8); ++} ++ ++static inline uint32_t ReadLE32(uint32_t x) { ++ return ( (x & 0x000000ff) << 24 ) ++ | ( (x & 0x0000ff00) << 8 ) ++ | ( (x & 0x00ff0000) >> 8) ++ | ( (x & 0xff000000) >> 24 ); ++} ++ ++static inline std::string ReadFourCC(uint32_t x) { ++ x = ReadLE32(x); ++ return std::string(reinterpret_cast<char*>(&x), 4); ++} + #endif + + static inline uint32_t RiffChunkSize(uint32_t bytes_in_payload) { diff --git a/gnu/packages/patches/webrtc-for-telegram-desktop-unbundle-libsrtp.patch b/gnu/packages/patches/webrtc-for-telegram-desktop-unbundle-libsrtp.patch index 486f0b1aa5..3317d0a9c1 100644 --- a/gnu/packages/patches/webrtc-for-telegram-desktop-unbundle-libsrtp.patch +++ b/gnu/packages/patches/webrtc-for-telegram-desktop-unbundle-libsrtp.patch @@ -17,10 +17,9 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt index af7d24c21..66bec8fdf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -2647,6 +2647,9 @@ if (TG_OWT_USE_PROTOBUF) - list(APPEND export_targets proto) - endif() - +@@ -2647,5 +2647,8 @@ if (APPLE) + libyuv + ) +if (LIBSRTP_FOUND) + target_compile_definitions(tg_owt PRIVATE HAVE_LIBSRTP) +endif() diff --git a/gnu/packages/patches/xdg-desktop-portal-disable-portal-tests.patch b/gnu/packages/patches/xdg-desktop-portal-disable-portal-tests.patch new file mode 100644 index 0000000000..5e13493613 --- /dev/null +++ b/gnu/packages/patches/xdg-desktop-portal-disable-portal-tests.patch @@ -0,0 +1,56 @@ +From b7750fa99c31c5f28ac2053fa154bef4038b5cc0 Mon Sep 17 00:00:00 2001 +From: dan <i@dan.games> +Date: Tue, 2 Jul 2024 19:37:38 +0800 +Subject: [PATCH] tests: remove portal tests. + +--- + tests/meson.build | 24 ------------------------ + 1 file changed, 24 deletions(-) + +diff --git a/tests/meson.build b/tests/meson.build +index a2dafee..bcd87be 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -181,18 +181,6 @@ portal_tests = [ + + test_env = env_tests + test_env.set('XDG_CURRENT_DESKTOP', 'test') +-foreach p : portal_tests +- test( +- 'test-portals-@0@'.format(p), +- test_portals, +- args: ['--verbose', '--keep-going', '--tap', '-p', '/portal/@0@'.format(p)], +- depends: [test_backends, test_portals], +- env: test_env, +- is_parallel: false, +- protocol: test_protocol, +- suite: 'portals', +- ) +-endforeach + + # Split the portal tests into one test per portal, this makes debugging a lot + # easier. +@@ -204,18 +192,6 @@ portal_limited = [ + + limited_env = env_tests + limited_env.set('XDG_CURRENT_DESKTOP', 'limited') +-foreach p : portal_limited +- test( +- 'limited-portals-@0@'.format(p), +- limited_portals, +- args: ['--verbose', '--keep-going', '--tap', '-p', '/limited/@0@'.format(p)], +- depends: [test_backends, limited_portals], +- env: limited_env, +- is_parallel: false, +- protocol: test_protocol, +- suite: 'portals', +- ) +-endforeach + + if enable_installed_tests + install_data( + +base-commit: 11c8a96b147aeae70e3f770313f93b367d53fedd +-- +2.41.0 + diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index e743d51286..72aae8b002 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -1420,7 +1420,7 @@ manage or manipulate PDFs.") (define-public pdfarranger (package (name "pdfarranger") - (version "1.10.1") + (version "1.11.0") (source (origin (method git-fetch) @@ -1429,7 +1429,7 @@ manage or manipulate PDFs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0bi3yyns05yamml5jcnqvdaf7i19jg636wb1fj2mwlial9ww7zwp")))) + (base32 "045a6j5mh2ixrx3awrpfqh6l3x61i4jrv8r73xz1mvw0bc97lxbc")))) (build-system python-build-system) (arguments (list diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index bded618a3f..31576dedf9 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2294,7 +2294,22 @@ versa.") (base32 "1nzxpn71mrpp85yxrxlraj52q2skvf9ja887ls11d57h6smg1vmz")))) (build-system perl-build-system) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'install 'wrap-perlcritic + (lambda _ + (wrap-program (string-append #$output "/bin/perlcritic") + `("PERL5LIB" ":" prefix + (,(getenv "PERL5LIB") ,(string-append #$output + "/lib/perl5/site_perl")))))) + (add-after 'wrap-perlcritic 'check-perlcritic + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke (string-append #$output "/bin/perlcritic") + "--version"))))))) (native-inputs (list perl-module-build perl-test-deep)) + (inputs (list bash-minimal)) (propagated-inputs (list perltidy perl-exception-class perl-io-string @@ -10256,8 +10271,8 @@ return value is the sub.") (build-system perl-build-system) (home-page "https://metacpan.org/release/Sub-Override") (synopsis "Perl extension to override a subroutine") - (description "A @code{Sub::Override}} module that makes it easy to override -+subroutines. Particularly useful for mocking in tests.") + (description "A @code{Sub::Override} module that makes it easy to override +subroutines. Particularly useful for mocking in tests.") (license (package-license perl)))) (define-public perl-sub-quote diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 96f5bbec50..ec32de2990 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -598,7 +598,7 @@ photographic equipment.") gsettings-desktop-schemas gtk+ imath - iso-codes ;optional, for language names in the preferences + iso-codes/pinned ;optional, for language names in the preferences json-glib lcms lensfun ;optional, for the lens distortion plugin diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index 6c95653fcd..8b080b73e2 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -62,7 +62,7 @@ (define-public php (package (name "php") - (version "8.3.10") + (version "8.3.12") (home-page "https://www.php.net/") (source (origin (method url-fetch) @@ -70,7 +70,7 @@ "php-" version ".tar.xz")) (sha256 (base32 - "13cpl7983wss2462cr75kzcs7349ix1c7jqj39iyf7wk02figwm0")) + "0cfi9g97lnmh3b3cn4a33dyzhgwyxicawkbz372whvz26f3f4x7p")) (modules '((guix build utils))) (snippet '(with-directory-excursion "ext" diff --git a/gnu/packages/presentation.scm b/gnu/packages/presentation.scm index cc02a7eac9..c5df41cf36 100644 --- a/gnu/packages/presentation.scm +++ b/gnu/packages/presentation.scm @@ -1,3 +1,4 @@ +;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index ca98694afa..621dc8bf9c 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -180,6 +180,7 @@ different programming languages.") (uri (git-reference (url "https://github.com/fmtlib/fmt") (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 "1v9k57zj34axagkxwkmg73gs9h15i6c8nv9hsgwjwmi82pinv8r0")))) (build-system cmake-build-system) diff --git a/gnu/packages/prolog.scm b/gnu/packages/prolog.scm index b48ddf0ce0..8150dd90e5 100644 --- a/gnu/packages/prolog.scm +++ b/gnu/packages/prolog.scm @@ -182,7 +182,7 @@ it.") (define-public trealla (package (name "trealla") - (version "2.55.35") + (version "2.56.3") (source (origin (method git-fetch) @@ -191,7 +191,7 @@ it.") (url "https://github.com/trealla-prolog/trealla") (commit (string-append "v" version)))) (sha256 - (base32 "16gpsh8szy9kjnzny3apm6qgqjdmlf912dpbjqdhvx7qbsqclmha")) + (base32 "1pa0d3nc2c9ly6hqdpcfb1wr33yzvaad3hf88xyksjzbidzi4s1x")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs @@ -212,6 +212,11 @@ it.") #~(modify-phases %standard-phases ;; Upstream does not use a configure script. (delete 'configure) + (add-before 'build 'patch-package-version + (lambda _ + (substitute* "Makefile" + (("\\$\\(shell git describe --abbrev=4 --dirty --always --tags\\)") + (string-append "v" #$version))))) (replace 'install ;; Upstream does not provide an install target. (lambda _ diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index 4888b42bc1..382a5453bb 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -1784,6 +1784,44 @@ plain (undecoratored) native coroutine tests.") "This package provides a shim Pytest plugin to enable a Celery marker.") (license license:bsd-3))) +(define-public python-pytest-cython + (package + (name "python-pytest-cython") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-cython" version)) + (sha256 + (base32 "0ma496dgmmrpgqd3zk6vin29dgajcplh63yqd8jh2a3ai954fr22")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "tests" + ;; FIXME: Failed: nomatch: '*sqr*PASSED* + "-k" (string-append + "not test_wrap_cpp_ext_module[importlib]" + " and not test_wrap_c_ext_module[importlib]" + " and not test_cython_ext_module[importlib]")) + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'build-extensions + (lambda _ + (with-directory-excursion "tests/example-project" + (invoke "python" "setup.py" "build_ext" "--inplace"))))))) + (native-inputs + (list python-nox + python-cython-3 + python-setuptools)) + (propagated-inputs + (list python-pytest-8)) + (home-page "https://github.com/lgpage/pytest-cython") + (synopsis "Cython extension modules testing plugin") + (description + "This package provides a plugin for testing Cython extension modules.") + (license license:expat))) + (define-public python-pytest-env (package (name "python-pytest-env") diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index fe146717ce..7c8d41cdc2 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com> ;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2024 Marco Baggio <marco.baggio@mdc-berlin.de> +;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -3475,6 +3476,45 @@ visualization and image processing involving N-dimensional raster data) into and from numpy arrays.") (license license:expat))) +(define-public python-pynsee + (package + (name "python-pynsee") + (version "0.1.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pynsee" version)) + (sha256 + (base32 "1w084ynwdd9f4wpcnakqc0nxcbj9gr8vppv4rd258i3dp1qq4sw5")))) + (build-system pyproject-build-system) + (arguments (list #:tests? #f)) ; XXX: Tests require network access. + (native-inputs + (list python-setuptools + python-wheel)) + (propagated-inputs + (list python-appdirs + python-openpyxl + python-pandas + python-platformdirs + python-pyarrow + python-requests + python-shapely + python-tqdm + python-unidecode + python-urllib3 + python-xlrd)) + (home-page "https://pynsee.readthedocs.io") + (synopsis + "Tools to Easily Search and Download French Data From INSEE and IGN APIs") + (description + "This package provides tools to easily search and download French data +from INSEE and IGN APIs. This data includes more than 150 000 macroeconomic +series, a dozen datasets of local french data, numerous sources available on +@url{insee.fr}, geographical limits of administrative areas taken from IGN as +well as key metadata and SIRENE database containing data on all French +compagnies.") + (license license:expat))) + (define-public python-libneuroml (package (name "python-libneuroml") diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 2a7dc8f8b3..f32f15b8b9 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -5865,7 +5865,7 @@ correct URLs for Python according to RFCs 3986 and 3987.") (home-page "https://github.com/twisted/treq") (synopsis "Requests-like API built on top of twisted.web's Agent") (description "This package provides an HTTP library inspired by -@code{requests}} but written on top of Twisted's @code{Agents}. It offers a +@code{requests} but written on top of Twisted's @code{Agents}. It offers a high level API for making HTTP requests when using Twisted.") (license license:expat))) @@ -7960,53 +7960,6 @@ Features: @end itemize") (license license:expat))) -(define-public python-msrest - (package - (name "python-msrest") - (version "0.6.21") - (source - (origin - (method url-fetch) - (uri (pypi-uri "msrest" version)) - (sha256 - (base32 "1n389m3hcsyjskzimq4j71nyw9pjkrp0n5wg1q2c4bfwpv3inrkj")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" - "-k" - ;; These attempt to connect to bing.com. - (string-append - "not test_basic_aiohttp" - " and not test_basic_async_requests" - " and not test_conf_async_requests" - " and not test_conf_async_trio_requests" - " and not test_basic_aiohttp" - " and not test_basic_async_requests" - " and not test_conf_async_requests" - " and not test_conf_async_trio_requests")))))))) - (propagated-inputs - (list python-aiohttp - python-certifi - python-isodate - python-requests - python-requests-oauthlib)) - (native-inputs - (list python-httpretty - python-pytest - python-pytest-aiohttp - python-pytest-asyncio - python-pytest-trio)) - (home-page "https://github.com/Azure/msrest-for-python") - (synopsis "AutoRest swagger generator Python client runtime") - (description "This package provides the runtime library @code{msrest} for -AutoRest-generated Python clients.") - (license license:expat))) - (define-public python-azure-nspkg (package (name "python-azure-nspkg") @@ -8069,59 +8022,45 @@ Python.") (define-public python-azure-core (package (name "python-azure-core") - (version "1.24.0") + (version "1.28.0") (source (origin (method url-fetch) (uri (pypi-uri "azure-core" version ".zip")) (sha256 - (base32 "1r8bpn3zz02mj00qbaks5qq49wqd3mznkm90bchd1mxa3w21nnrl")))) - (build-system python-build-system) + (base32 "1g9nv5pcjkskv37vsjgsm7am81y629flwkghnvd5dphzzikgrvp9")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key inputs outputs tests? #:allow-other-keys) - (when tests? - ;; This fails because devtools_testutils doesn't exist. - (delete-file "tests/test_connection_string_parsing.py") - ;; Needs network. - (for-each delete-file - '("tests/async_tests/test_streaming_async.py" - "tests/test_streaming.py")) - (add-installed-pythonpath inputs outputs) - (setenv "PYTHONPATH" - (string-append (getcwd) "/tests/testserver_tests/coretestserver:" - (getenv "GUIX_PYTHONPATH"))) - (invoke "pytest" - ;; Most of these need network access. - "-m" "not asyncio and not live_test_only" - "-k" - ;; These need network access. - (string-append - "not test_example_raw_response_hook" - " and not test_example_headers_policy" - " and not test_example_request_id_policy" - " and not test_example_user_agent_policy" - " and not test_example_requests" - " and not test_example_pipeline" - " and not test_example_pipeline_client" - " and not test_example_redirect_policy" - " and not test_example_no_redirects" - " and not test_example_retry_policy" - " and not test_example_no_retries" - " and not test_decompress_plain_no_header" - " and not test_compress_plain_no_header" - " and not test_decompress_compressed_no_header")))))))) + (list + #:test-flags + `(list ;; This fails because devtools_testutils doesn't exist. + "--ignore=tests/test_connection_string_parsing.py" + ;; These all need network access. + "--ignore=samples" + "--ignore=tests/async_tests/test_streaming_async.py" + "--ignore=tests/test_streaming.py" + "-m" "not asyncio and not live_test_only" + "-k" ,(string-append + "not test_decompress_plain_no_header" + " and not test_compress_plain_no_header" + " and not test_decompress_compressed_no_header" + " and not test_requests_socket_timeout")) + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'add-test-pythonpath + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "PYTHONPATH" + (string-append + (getcwd) "/tests/testserver_tests/coretestserver:" + (getenv "GUIX_PYTHONPATH"))))))))) (propagated-inputs (list python-aiohttp python-requests python-six - python-trio python-typing-extensions)) (native-inputs (list python-flask - python-msrest python-pytest python-pytest-aiohttp python-pytest-asyncio @@ -8136,17 +8075,19 @@ Python.") (define-public python-azure-storage-blob (package (name "python-azure-storage-blob") - (version "12.12.0") + (version "12.22.0") (source (origin (method url-fetch) - (uri (pypi-uri "azure-storage-blob" version ".zip")) + (uri (pypi-uri "azure-storage-blob" version)) (sha256 - (base32 "1xv23ph822qywjxs81say9xi5dzmvxcii6sww6d1hvd83iyz1npn")))) - (build-system python-build-system) + (base32 "0vkkngiybx5372j9vc9p4wn6hakpv99l0ipsf4kw7ccazss4p05k")))) + (build-system pyproject-build-system) (propagated-inputs - (list python-azure-core python-cryptography python-msrest)) - (native-inputs (list unzip)) + (list python-azure-core + python-cryptography + python-isodate + python-typing-extensions)) (home-page "https://github.com/Azure/azure-sdk-for-python/") (synopsis "Microsoft Azure Blob Storage client library for Python") (description "This package provides the Microsoft Azure Blob Storage @@ -8745,33 +8686,38 @@ regular expressions.") (define-public python-scrapy (package (name "python-scrapy") - (version "2.11.1") + (version "2.11.2") (source (origin (method url-fetch) - (uri (pypi-uri "Scrapy" version)) + (uri (pypi-uri "scrapy" version)) (sha256 - (base32 "1giyyzwcybmh0yf3aq44hhmf9m4k40rva418pxljpr93fjf06fkk")))) + (base32 "07a0nfzkz4vr1353456lavvw36l9s2ia7x91l7mzygzwhi9mdgfz")))) (build-system pyproject-build-system) (arguments (list #:test-flags - ;; Tests fail with DNS lookup or need a display. + ;; Tests requiring a display. #~(list "-k" (string-append "not " (string-join - (list "test_SCRAPY_CHECK_set" - "test_check_all_default_contracts" - "test_check_cb_kwargs_contract" - "test_check_returns_items_contract" - "test_check_returns_requests_contract" - "test_check_scrapes_contract" - "test_pformat" + (list "test_pformat" "test_pformat_old_windows" "test_pformat_windows") - " and not "))))) + " and not "))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "setup.py" + ;; "defusedxml>=0.7.1" + (("0.7.1") "0.6.0")))) + (add-before 'check 'prepare-test-environment + (lambda _ + (setenv "HOME" "/tmp")))))) (propagated-inputs (list python-botocore ; Optional: For S3FeedStorage class. python-cryptography python-cssselect + python-defusedxml python-itemadapter python-itemloaders python-lxml @@ -8787,10 +8733,11 @@ regular expressions.") python-w3lib python-zope-interface)) (native-inputs - (list python-pexpect + (list nss-certs-for-test + python-pexpect + python-pyftpdlib python-pytest python-pytest-xdist - python-pyftpdlib python-sybil python-testfixtures python-uvloop)) @@ -9537,3 +9484,27 @@ hardware on Grid'5000 or via OpenStack, to Vagrant, Chameleon, and more.") (description "Python module to query and edit data stored in a @url{https://netbox.dev,NetBox} instance.") (license license:asl2.0))) + +(define-public python-waybackpack + (package + (name "python-waybackpack") + (version "0.6.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "waybackpack" version)) + (sha256 + (base32 "16lcr2hv7gmp199fh3psrnv68j20pfxria8v6gchrpl1jqx9f923")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ; would require network (and SSL certificates) + (propagated-inputs (list python-requests)) + (native-inputs (list python-pytest)) + (home-page "https://github.com/jsvine/waybackpack") + (synopsis + "Command-line tool that lets you download the entire Wayback Machine +archive for a given URL.") + (description + "This package provides a library and a command-line tool that lets +you download the entire Wayback Machine archive for a given URL.") + (license license:expat))) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 9dd963e396..db9bd2198d 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -539,7 +539,7 @@ design}.") (string-join disabled-tests " and not ")))))))))) (native-inputs - (list git-minimal + (list git-minimal/pinned pre-commit python-autopep8 python-black @@ -17940,6 +17940,18 @@ taking a new approach. All IANA character set names for which the Python core library provides codecs are supported.") (license license:expat))) +(define-public python-charset-normalizer-3 + (package + (inherit python-charset-normalizer) + (name "python-charset-normalizer") + (version "3.3.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "charset-normalizer" version)) + (sha256 + (base32 "1m9g0f513ng4dp2vd3smi4g2nmhqkjqh3bzcza14li947frkq37k")))))) + (define-public python-docopt (package (name "python-docopt") @@ -24998,7 +25010,7 @@ manipulation, or @code{stdout}.") (("\\.serialize\\(format=\"nt\"\\)") ".serialize(format=\"nt\", encoding=\"utf-8\")"))))))) (propagated-inputs - (list python-dateutil python-lxml python-networkx python-rdflib)) + (list python-dateutil python-lxml python-networkx python-rdflib-6)) (native-inputs (list graphviz python-pydot)) (home-page "https://github.com/trungdong/prov") @@ -25690,16 +25702,17 @@ design and layout.") (define-public python-pkginfo (package (name "python-pkginfo") - (version "1.9.6") + (version "1.10.0") (source (origin (method url-fetch) (uri (pypi-uri "pkginfo" version)) (sha256 - (base32 "0inh57664sx2vlbd3913dsc9nz21ysb9vk591qpkg90qhxp8kmcg")))) + (base32 + "15v2mycr7m4ld5wp1sl9flqjjv8zdgc5rkgfz1wxn44d74skixsx")))) (build-system pyproject-build-system) (native-inputs - (list python-pytest)) + (list python-pytest python-wheel)) (home-page "https://code.launchpad.net/~tseaver/pkginfo/trunk") (synopsis "Query metadatdata from sdists, bdists, and installed packages") (description @@ -25713,25 +25726,37 @@ created by running @code{python setup.py develop}).") (define-public python-twine (package (name "python-twine") - (version "1.15.0") + (version "5.1.1") (source - (origin - (method url-fetch) - (uri (pypi-uri "twine" version)) - (sha256 - (base32 "11rpd653zcgzkq3sgwkzs3mpxl3r5rij59745ni84ikv8smjmlm3")))) - (build-system python-build-system) + (origin + (method url-fetch) + (uri (pypi-uri "twine" version)) + (sha256 + (base32 "1nr24gd5gm22b0jzb5qmw4swh8bshixmqm0kv4s38ay0758q584s")))) + (build-system pyproject-build-system) + (arguments + (list #:test-flags ;; Disable failing tests. + #~(list "-k" (string-append + "not test_pkginfo_returns_no_metadata" + " and not test_fails_rst_no_content")))) + (native-inputs + (list python-pretend + python-pytest + python-pytest-socket)) (propagated-inputs - (list python-tqdm - python-packaging + (list python-importlib-metadata + python-keyring python-pkginfo python-readme-renderer python-requests - python-requests-toolbelt)) + python-requests-toolbelt + python-rfc3986 + python-rich + python-urllib3)) (home-page "https://github.com/pypa/twine") (synopsis "Collection of utilities for interacting with PyPI") (description - "@code{twine} currently supports registering projects and uploading + "@code{twine} currently supports registering projects and uploading distributions. It authenticates the user over HTTPS, allows them to pre-sign their files and supports any packaging format (including wheels).") (license license:asl2.0))) @@ -27663,33 +27688,34 @@ Public Suffix List's private domains as well.") (define-public python-tldr (package (name "python-tldr") - (version "3.2.0") + (version "3.3.0") (source (origin - ;; There's no test in PyPI. - (method git-fetch) + (method git-fetch) ; there's no test in PyPI (uri (git-reference (url "https://github.com/tldr-pages/tldr-python-client") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0hkjsnz03p9pdfgk85wampha4pyr82bwmnj8hj6kigc784ddy2ag")))) - (build-system python-build-system) + (base32 "15mab6a7ph2rviy5f2ypid6qdbb583fvaf5zhd6q0nrggxx0kkcm")))) + (build-system pyproject-build-system) (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-after 'build 'build-doc - (lambda _ - (invoke "make" "-C" "docs"))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - ;; This test fails. It tries to open a network socket. - (invoke "pytest" "-vv" "-k" "not test_error_message"))))))) + (list + ;; This test fails. It tries to open a network socket. + #:test-flags #~(list "-k" "not test_error_message") + #:phases + #~(modify-phases %standard-phases + (add-after 'build 'build-doc + (lambda _ + (invoke "make" "-C" "docs")))))) (native-inputs - (list python-pytest python-pytest-runner python-sphinx-argparse)) - (inputs - (list python-argcomplete python-colorama python-termcolor python-shtab)) + (list python-pytest + python-pytest-runner + python-sphinx-argparse)) + (propagated-inputs + (list python-colorama + python-termcolor + python-shtab)) (home-page "https://github.com/tldr-pages/tldr-python-client") (synopsis "Python command-line client for tldr pages") (description "This package provides the @code{tldr} command allowing users @@ -32002,38 +32028,36 @@ positioning, and keyboard input.") (define-public python-readme-renderer (package (name "python-readme-renderer") - (version "34.0") + (version "41.0") (source (origin (method url-fetch) (uri (pypi-uri "readme_renderer" version)) (sha256 (base32 - "1c75h9znffc2lh4j56yg23l5ifj5l8fbdq3kfigi8vbh45zx3d6z")))) - (build-system python-build-system) + "1xvkf2i075rdqkwdrcrw4xglziqd7qs5lb2rbxr5snizi7ji2jsg")))) + (build-system pyproject-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'loosen-cmarkgfm-dependency - (lambda _ - ;; Permit newer versions of cmarkgfm. - (substitute* "setup.py" - (("cmarkgfm>=0\\.5\\.0,<0\\.7\\.0") - "cmarkgfm>=0.5.0")))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - ;; The GFM tests fail due to slight differences in the - ;; generated vs expected HTML due to using a more - ;; recent bleach version (see: - ;; https://github.com/pypa/readme_renderer/issues/234). - (invoke "pytest" "-vv" "-k" "not GFM"))))))) + (list + #:test-flags + '(list "-k" + (string-append + ;; These tests fail due to slight differences in the generated + ;; vs expected HTML, e.g. because of difference in whitespace or + ;; line breaks. (See also + ;; https://github.com/pypa/readme_renderer/issues/234). + "not test_md_fixtures[test_CommonMark_008.md]" + " and not test_rst_fixtures[test_rst_008.rst]" + " and not GFM")))) (propagated-inputs - (list python-bleach python-docutils python-pygments - + (list python-bleach + python-docutils + python-pygments ;; Optional dependencies. python-cmarkgfm)) ;required by postorius (native-inputs - (list python-mock python-pytest)) + (list python-pytest + python-wheel)) (home-page "https://github.com/pypa/readme_renderer") (synopsis "Render README files in Warehouse") (description @@ -33505,6 +33529,13 @@ and frame grabber interface.") (("^(CMAKE_DEFAULT_EXECUTABLE = ).*" _ head) (format #f "~a ~s~%" head (search-input-file inputs "bin/cmake")))))) + (add-before 'check 'pre-check + (lambda _ + ;; Some tests try to access the network before being skipped. + ;; Skip them by default. + (substitute* "tests/test_setup.py" + (("pytest\\.mark\\.skipif\\(not is_site_reachable.*") + "pytest.mark.isolated()\n")))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 89da3c55ae..687c20cd90 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -5232,13 +5232,15 @@ and import their menus over DBus.") (list #:qtbase qtbase #:configure-flags - #~(list "-DKDSingleApplication_QT6=true" "-DKDSingleApplication_TESTS=true"))) + #~(list "-DKDSingleApplication_QT6=ON" "-DKDSingleApplication_TESTS=ON"))) (inputs (list libxkbcommon vulkan-headers)) (home-page "https://github.com/KDAB/KDSingleApplication") (synopsis "Qt helper class for single-instance policy applications") (description "KD SingleApplication is a helper class for single-instance policy applications.") - (license (list license:bsd-3 license:expat)))) + (license + (list license:bsd-3 ; cmake/* + license:expat)))) ; everything else (define-public kdsoap (package diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 45da28b9ae..f25f755fd9 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -2809,7 +2809,7 @@ software-defined radio receivers.") (define-public wfview (package (name "wfview") - (version "1.62") + (version "1.64") (source (origin (method git-fetch) @@ -2818,7 +2818,7 @@ software-defined radio receivers.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0rrj6h5k8plq4m6fd2yxargfhqcwkxv6bdp4rmgh6bs4prl4wvwd")))) + (base32 "0gsijp2h72bdq0jiw8lcfdyp6rwjizngg7wjgkbdm4m05y7c5nj1")))) (build-system qt-build-system) (arguments (list @@ -2829,7 +2829,13 @@ software-defined radio receivers.") (lambda _ (substitute* "wfview.pro" (("\\.\\./wfview/") - "../")) + "../") + (("!win32:DEFINES \\+= HOST=.* UNAME=.*") + "!win32:DEFINES += HOST=\\\\\\\"guix\\\\\\\" UNAME=\\\\\\\"build\\\\\\\"") + (("\\$\\(shell git -C .* HEAD\\)") + "") + (("!win32:LIBS \\+= -L\\./ -lopus") + "!win32:LIBS += -L./ -lopus -lqcustomplot")) (substitute* '("wfmain.cpp") (("/usr/share") (string-append #$output "/share"))))) @@ -2840,10 +2846,9 @@ software-defined radio receivers.") (invoke "qmake" (string-append "PREFIX=" #$output) "../wfview.pro")))))) - ;; XXX: During the build it complains on missing git and hostname commands - ;; but it successfully finishes the build. (inputs (list eigen + eudev hidapi opus portaudio diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index f10b530861..9a02a71d81 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -330,6 +330,49 @@ ideal (e.g. in LV2 implementations or embedded applications).") (define-public python-rdflib (package (name "python-rdflib") + (version "7.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rdflib" version)) + (sha256 + (base32 + "1blmx4v003afr3l9qg84ymj0sldcbsr2dzdgq6w5k022d62yp5cr")))) + (build-system pyproject-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'adjust-tests + (lambda _ + (for-each delete-file + '(;; The tests in this file miss a test fixture. + ;; fixture 'no_cover' not found + "test/test_misc/test_plugins.py" + ;; These tests need internet access. + "test/jsonld/test_onedotone.py" + "test/test_examples.py" + "test/test_extras/test_infixowl/test_basic.py" + "test/test_extras/test_infixowl/test_context.py" + "test/test_sparql/test_service.py")))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv" "test/"))))))) + (native-inputs + (list python-pytest python-poetry-core)) + (propagated-inputs + (list python-html5lib python-isodate python-pyparsing)) + (home-page "https://github.com/RDFLib/rdflib") + (synopsis "Python RDF library") + (description + "RDFLib is a Python library for working with RDF, a simple yet +powerful language for representing information.") + (license (license:non-copyleft "file://LICENSE" + "See LICENSE in the distribution.")))) + +(define-public python-rdflib-6 + (package + (name "python-rdflib") (version "6.1.1") (source (origin diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index 88458238a3..e6cce4d372 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -140,8 +140,10 @@ ("rust-syslog" ,rust-syslog-6) ("rust-tokio" ,rust-tokio-1)))) (home-page "https://github.com/containers/aardvark-dns") - (synopsis "Container-focused DNS server") - (description "This package provides a container-focused DNS server.") + (synopsis "Container-focused DNS A/AAAA record server") + (description + "Aardvark-dns is an authoritative DNS server for A/AAAA container +records. It can forward other requests to configured resolvers.") (license license:asl2.0))) (define-public agate @@ -3010,19 +3012,35 @@ files.") (define-public swayhide (package (name "swayhide") - (version "0.2.0") + (version "0.2.1") (source (origin (method url-fetch) (uri (crate-uri "swayhide" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "0x172ffj0lfmbv5nix708l1mfsizxzy74gpxp5amvx0bbaq0p78s")))) + (base32 "0synzfd35494vlp2wnqmqbzgc0vg2ivn90hnxvk6qak0w65xhxcv")))) (build-system cargo-build-system) (arguments - `(#:cargo-inputs + `(#:install-source? #f + #:cargo-inputs (("rust-exitcode" ,rust-exitcode-1) - ("rust-swayipc" ,rust-swayipc-2)))) + ("rust-swayipc" ,rust-swayipc-2)) + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-completions + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bash (string-append out "/etc/bash_completion.d/")) + (fish (string-append out "/share/fish/vendor_completions.d/")) + (zsh (string-append out "/share/zsh/site-functions/"))) + (mkdir-p bash) + (mkdir-p zsh) + (copy-file "completions/swayhide.bash" + (string-append bash "swayhide")) + (copy-file "completions/swayhide.zsh" + (string-append zsh "_swayhide")) + (install-file "completions/swayhide.fish" fish))))))) (home-page "https://github.com/NomisIV/swayhide/") (synopsis "Swallow windows on swaywm") (description "swayhide hides the currently active terminal (by moving it diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 647f7e71d2..6f9d00e440 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -1098,38 +1098,40 @@ The core is 12 builtin special forms and 33 builtin functions.") (base32 "10zpbbikkcpdzk6c52wkckiyhn7nhnqjv2djdzyjr0n8qxxy4hrn")))) (build-system gnu-build-system) (inputs - (list libatomic-ops slib zlib)) + (list libatomic-ops mbedtls slib zlib)) (native-inputs (list texinfo openssl ; needed for tests pkg-config)) ; needed to find external libatomic-ops (arguments - `(#:configure-flags - (list (string-append "--with-slib=" - (assoc-ref %build-inputs "slib") - "/lib/slib")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-/bin/sh - ;; Needed only for tests. - (lambda _ - (substitute* '("test/www.scm" - "ext/tls/test.scm" - "lib/gauche/package/util.scm" - "libsrc/gauche/process.scm") - (("/bin/sh") (which "sh"))))) - (add-after 'build 'build-doc - (lambda _ - (with-directory-excursion "doc" - (invoke "make" "info")))) - (add-before 'check 'patch-network-tests - ;; Remove net checks. - (lambda _ - (delete-file "test/net.scm") - (invoke "touch" "test/net.scm"))) - (add-after 'install 'install-docs - (lambda _ - (with-directory-excursion "doc" - (invoke "make" "install"))))))) + (list #:tests? #f ; 9 ffitest failures, known issue (fixed in 0.9.16): + ;; https://github.com/shirok/Gauche/issues/1044 + #:configure-flags + #~(list (string-append "--with-slib=" #$(this-package-input "slib") + "/lib/slib") + "--with-tls=mbedtls") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh + ;; Needed only for tests. + (lambda _ + (substitute* '("test/www.scm" + "ext/tls/test.scm" + "lib/gauche/package/util.scm" + "libsrc/gauche/process.scm") + (("/bin/sh") (which "sh"))))) + (add-after 'build 'build-doc + (lambda _ + (with-directory-excursion "doc" + (invoke "make" "info")))) + (add-before 'check 'patch-network-tests + ;; Remove net checks. + (lambda _ + (delete-file "test/net.scm") + (invoke "touch" "test/net.scm"))) + (add-after 'install 'install-docs + (lambda _ + (with-directory-excursion "doc" + (invoke "make" "install"))))))) (synopsis "Scheme scripting engine") (description "Gauche is a R7RS Scheme scripting engine aiming at being a handy tool that helps programmers and system administrators to write small to diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index ec15f9d21f..b65cd2e894 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com> ;;; Copyright © 2024 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2024 Vinicius Monego <monego@posteo.net> +;;; Copyright © 2024 Luís Henriques <henrix@camandro.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -820,25 +821,32 @@ A @code{andglob} program is also provided along with s.") (define-public oksh (package (name "oksh") - (version "0.5.9") + (version "7.5") (source (origin (method url-fetch) - (uri (string-append "https://connochaetos.org/oksh/oksh-" - version ".tar.gz")) + (uri (string-append + "https://github.com/ibara/oksh/releases/download/oksh-" + version "/oksh-" version ".tar.gz")) (sha256 (base32 - "0ln9yf6pxngsviqszv8klnnvn8vcpplvj1njdn8xr2y8frkbw8r3")))) + "0pgdxvy8jgydsyzk7vcc93pm09bihqvrn3i35gz1ncg9z31rbf20")))) (build-system gnu-build-system) (arguments - `(; The test files are not part of the distributed tarball. - #:tests? #f)) - (home-page "https://connochaetos.org/oksh") - (synopsis "Port of OpenBSD Korn Shell") + `(#:tests? #f)) ; there are no tests available + (home-page "https://github.com/ibara/oksh") + (synopsis "Portable OpenBSD Korn Shell") (description - "Oksh is a port of the OpenBSD Korn Shell. -The OpenBSD Korn Shell is a cleaned up and enhanced ksh.") - (license license:gpl3+))) + "Oksh is a portable OpenBSD ksh. Not an official OpenBSD project. +Unlike other ports of OpenBSD ksh, this port is entirely self-contained +and aims to be maximally portable across operating systems and C compilers.") + (license (list license:public-domain + ;; asprintf.c, issetugid.c, reallocarray.c, sh.1, + ;; strlcat.c, strlcpy.c, strtonum.c + license:isc + ;; confstr.c, siglist.c, signame.c, sys-queue.h, unvis.c, + ;; vis.c, vis.h + license:bsd-3)))) (define-public loksh (package diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm index 64146813d1..88a1bbc2c2 100644 --- a/gnu/packages/smalltalk.scm +++ b/gnu/packages/smalltalk.scm @@ -25,6 +25,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (gnu packages) @@ -62,6 +63,7 @@ (build-system gnu-build-system) (native-inputs (list pkg-config + (libc-utf8-locales-for-target) ;; XXX: To be removed with the next release of Smalltalk. autoconf automake @@ -81,7 +83,10 @@ (inputs (list gmp libffi libltdl libsigsegv lightning)) (arguments - `(#:phases + `(;; FIXME: Tests fail on x86-64 in the build container, but they pass + ;; in a regular shell. + #:tests? ,(not (target-x86-64?)) + #:phases (modify-phases %standard-phases ;; XXX: To be removed with the next release of Smalltalk. ;; The overflow patch modifies configure.ac, therefore remove diff --git a/gnu/packages/solidity.scm b/gnu/packages/solidity.scm index c3111a22fd..9891f8fbe2 100644 --- a/gnu/packages/solidity.scm +++ b/gnu/packages/solidity.scm @@ -1,3 +1,4 @@ +;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il> diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 103a857317..b8de5a1d93 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -21,6 +21,7 @@ ;;; Copyright © 2023 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com> ;;; Copyright © 2024 Vinicius Monego <monego@posteo.net> +;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2108,7 +2109,7 @@ and Vega-Lite examples.") (define-public python-altair (package (name "python-altair") - (version "5.0.1") + (version "5.3.0") (source (origin (method git-fetch) ; no tests in PyPI (uri (git-reference @@ -2117,15 +2118,27 @@ and Vega-Lite examples.") (file-name (git-file-name name version)) (sha256 (base32 - "1r74v5n51br9pjhxdzrr62cdgnwkapci93aifnl8dqmfpizfpd7d")))) + "1lx3pkphi36pljns6jjxhyn9fbrana8f1y6gcg4yca48nvwlfssl")))) (build-system pyproject-build-system) (arguments - ;; First two open an external connection. - ;; Last introduces a circular dependency on altair-viewer. - (list #:test-flags #~(list "-k" (string-append - "not test_from_and_to_json_roundtrip" - " and not test_render_examples_to_chart" - " and not test_save_html")))) + (list #:test-flags + ;; XXX: This test file requires hard to package python-anywidgets. + #~(list "--ignore=tests/test_jupyter_chart.py" + "-k" (string-join + (list + ;; these tests open an external connection. + "not test_from_and_to_json_roundtrip" + "test_render_examples_to_chart" + ;; introduces a circular dependency on altair-viewer. + "not test_save_html" + ;; these tests require the vl-convert vega compiler + "test_vegalite_compiler" + "test_to_dict_with_format_vega" + "test_to_json_with_format_vega" + "test_to_url" + "test_renderer_with_none_embed_options" + "test_jupyter_renderer_mimetype") + " and not ")))) (propagated-inputs (list python-jinja2 python-jsonschema python-numpy diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm index ab7eb6102c..919b72736b 100644 --- a/gnu/packages/storage.scm +++ b/gnu/packages/storage.scm @@ -63,17 +63,18 @@ (define-public ceph (package (name "ceph") - (version "17.2.5") + (version "17.2.7") (source (origin (method url-fetch) (uri (string-append "https://download.ceph.com/tarballs/ceph-" version ".tar.gz")) (sha256 (base32 - "16mjj6cyrpdn49ig82mmrv984vqfdf24d6i4n9sghfli8z0nj8in")) + "1612424yrf39dz010ygz8k5x1vc8731549ckfj1r39dg00m62klp")) (patches (search-patches - "ceph-disable-cpu-optimizations.patch")) + "ceph-disable-cpu-optimizations.patch" + "ceph-fix-for-newer-boost.patch" )) (modules '((guix build utils))) (snippet '(for-each delete-file-recursively diff --git a/gnu/packages/sugar.scm b/gnu/packages/sugar.scm index c0a4d286f2..77008bc078 100644 --- a/gnu/packages/sugar.scm +++ b/gnu/packages/sugar.scm @@ -990,53 +990,49 @@ inertia (ahh, slow down!).") (license license:gpl3+)))) (define-public sugar-read-activity - (let ((commit "25f69e41a4fa69d93c73c0c9367b4777a014b1cd") - (revision "1")) - (package - (name "sugar-read-activity") - (version (git-version "123" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sugarlabs/read-activity") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "03piap3r6j58s38cza55bm16g5icrmnhl0s6kpy5hj46vaa5x4fh")))) - (build-system python-build-system) - (arguments - (list - #:test-target "check" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-launcher - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "activity/activity.info" - (("exec = sugar-activity3") - (string-append "exec = " - (search-input-file inputs "/bin/sugar-activity3")))))) - (replace 'install - (lambda _ - (setenv "HOME" "/tmp") - (invoke "python" "setup.py" "install" - (string-append "--prefix=" #$output))))))) - ;; All these libraries are accessed via gobject introspection. - (propagated-inputs - (list evince - gtk+ - sugar-toolkit-gtk3 - webkitgtk-for-gtk3)) - (inputs - (list gettext-minimal)) - (home-page "https://help.sugarlabs.org/read.html") - (synopsis "Read PDF and TXT files in the Sugar learning environment") - (description "The Read activity allows the laptop to act as a book + (package + (name "sugar-read-activity") + (version "124") + (source (origin + (method url-fetch) + (uri (string-append "https://download.sugarlabs.org/sources/sucrose/fructose/" + "Read/Read-" version ".tar.bz2")) + (sha256 + (base32 + "1hla80vclprqzahr8yfnin09spv4mab7il6a00ilz4anyahrzgzy")))) + (build-system python-build-system) + (arguments + (list + #:test-target "check" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-launcher + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "activity/activity.info" + (("exec = sugar-activity3") + (string-append "exec = " + (search-input-file inputs "/bin/sugar-activity3")))))) + (replace 'install + (lambda _ + (setenv "HOME" "/tmp") + (invoke "python" "setup.py" "install" + (string-append "--prefix=" #$output))))))) + ;; All these libraries are accessed via gobject introspection. + (propagated-inputs + (list evince + gtk+ + sugar-toolkit-gtk3 + webkitgtk-for-gtk3)) + (inputs + (list gettext-minimal)) + (home-page "https://help.sugarlabs.org/read.html") + (synopsis "Read PDF and TXT files in the Sugar learning environment") + (description "The Read activity allows the laptop to act as a book reader. It has a simple interface, and will view many kinds of text and image-based book-like materials. It will have particular strengths in handheld mode, with extremely low power consumption and simple navigation controls.") - (license license:gpl2+)))) + (license license:gpl2+))) (define-public sugar-river-crossing-activity (let ((commit "0abbeb455363672ed29d734e6e48f50ef78ec48b") diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm index 432d6f79a1..cfcd92fcbc 100644 --- a/gnu/packages/telegram.scm +++ b/gnu/packages/telegram.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2023 Lu Hui <luhux76@gmail.com> ;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico@riseup.net> ;;; Copyright © 2024 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2024 dan <i@dan.games> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ #:use-module (gnu packages assembly) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) + #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) @@ -44,7 +46,6 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages hunspell) #:use-module (gnu packages image) - #:use-module (gnu packages jemalloc) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages language) #:use-module (gnu packages libevent) @@ -82,11 +83,11 @@ #:use-module (guix build-system python) #:use-module (guix build-system qt)) -(define %telegram-version "4.8.1") +(define %telegram-version "5.5.5") (define libyuv-for-telegram-desktop - (let ((commit "77c2121f7e6b8e694d6e908bbbe9be24214097da") - (revision "2439")) + (let ((commit "04821d1e7d60845525e8db55c7bcd41ef5be9406") + (revision "2440")) (origin (method git-fetch) (uri (git-reference @@ -97,79 +98,84 @@ (git-version "0" revision commit))) (sha256 (base32 - "1b4k8yskr9ffl5k8s9i0af1gn1pavsfixla26vh8bij69rdr7f9c"))))) + "1fsvc0f8mckrdzys8lnlnbw6676mjamm6p3ghr2h9liqfa83s6wg"))))) (define cmake-helpers-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/cmake_helpers.git") - (commit "6ab5543b3dd1e40979d258e46d03376931b6c37b"))) + (commit "05a7db2e2d2a59ecf42483debca4944d09154b5b"))) (file-name (git-file-name "cmake-helpers-for-telegram-desktop" %telegram-version)) + (patches + ;; https://github.com/desktop-app/cmake_helpers/pull/320 + ;; https://github.com/desktop-app/cmake_helpers/pull/305 + (search-patches "telegram-desktop-unbundle-gsl.patch" + "telegram-desktop-unbundle-cppgir.patch")) (sha256 (base32 - "0y96mvzs113zh8bdw1h3i6l0pgwg93rigrday8kfdg4magz686k6")))) + "1gapyk5a8rsl8vigbz0l8h9858f2lkhkd2pjy72zivp0mrq8w0hr")))) (define codegen-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/codegen.git") - (commit "1a969faa0afb29d53af03e530775eccdfb8433f1"))) + (commit "0af136124083369073b8fdaf45f0816fd2b10bad"))) (file-name (git-file-name "codegen-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "1xmw8dfm51p5g20rlmzqnr72a14ngyxwq09an8clf1v5s6mmwvak")))) + "057bwn9smrgnyfb1vraf50ihbkhjc4d72msl7vnbqc4h5sg8dav9")))) (define lib-base-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/lib_base.git") - (commit "fd9adb30ee906ea02c125eaa58fcfae773fdc677"))) + (commit "547e7f2914d9b5548dd17e70a3a7bf5d6606afc3"))) (file-name (git-file-name "lib-base-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "1m760mcfvgzia53nrs6wvjn353jvzlzln7c9fkx2dhpkigiynz83")))) + "0sgm2prhd4fw89afh62k7i4i7mj60n170kqz50b0mad927zngxvn")))) (define lib-crl-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/lib_crl.git") - (commit "3d7e1e1f1321c3defd21c01882d674e485ecd8df"))) + (commit "c1d6b0273653095b10b4d0f4f7c30b614b690fd5"))) (file-name (git-file-name "lib-crl-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "06mzafnjpfr5ih297dh7bxm6bgpg0wy0gv2r2732n5szyrg9sdl6")))) + "1sxn3qccsfbx1289z0fdrb4cggs16a8r75ic6wi81c6lnkrdi3wl")))) (define lib-lottie-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/lib_lottie.git") - (commit "3e9c2f1026e4b5aa3202fca4cc67ece36c7cebb2"))) + (commit "1a700e5a0d7c3e2f617530354ff2a47c5c72bb4a"))) (file-name (git-file-name "lib-lottie-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "0l57ibfij9xm4ww4s9cc63q1x8xzpc6ablwaji1krrn3xxksqdd4")))) + "18w35sz6k3wcv07v0szx3avpfdl0rjby6yqm1fzmx7fqw2jn6wpl")))) (define lib-qr-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/lib_qr.git") - (commit "501f4c3502fd872ab4d777df8911bdac32de7c48"))) + (commit "6fdf60461444ba150e13ac36009c0ffce72c4c83"))) (file-name (git-file-name "lib-qr-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "0hmwqj7a9vcy8wq7pd1qprl68im3zl5f1wzcn2zzk2wvi0389k9f")))) + "1i5n3qvjkf4nv8k75cc0a71xyvpklc4nzg4k2zsfr2pxk0cy7hkw")))) (define lib-rpl-for-telegram-desktop (origin @@ -188,88 +194,88 @@ (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/lib_spellcheck.git") - (commit "ae89fefd239ecc47d4dab7ba29f9e230376a57d3"))) + (commit "e76981e133a1d29f3ceb557f53850a8d822f439a"))) (file-name (git-file-name "lib-spellcheck-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "147xbbcza5q4wcdipk5jplajzkc48971kg2s7qv5jlz33sxkw1lq")))) + "0dslsy3d6gmxaj6yv49zjgl2b2mh75j7fpnbynglr02h3m2fdj96")))) (define lib-storage-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/lib_storage.git") - (commit "839609369d04615475cb1518636de3619106a917"))) + (commit "ccdc72548a5065b5991b4e06e610d76bc4f6023e"))) (file-name (git-file-name "lib-storage-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "1l26h2fmqp9dcpr6pfvdd5sjb68j7yh0ms2lnr8na7jf5xqmkwwm")))) + "0b11ix95dzpkz335q0a6b5yg8qhj33s4fgj9ppl37pszcqq1j3wi")))) (define lib-tl-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/lib_tl.git") - (commit "36fb95c4de1339d2c8921ad6b2911858c3d0e0fa"))) + (commit "237cbeb9d1c637759f89a508c1d854caf16e1984"))) (file-name (git-file-name "lib-tl-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "03rngnssnqwr7ad05qn64mwgji5fb0r3fp5ybkf951p8phr1jvzk")))) + "1ji3gypy4yf9knsgylnyz5gc2kii7lls5ymj1rkf0daixdz931cm")))) (define lib-ui-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/lib_ui.git") - (commit "37531086ec21a8569deddedb11b402f8a3157b90"))) + (commit "c4e3a08e6fb90a6174c8b592d9eb747dd4d3f9c5"))) (file-name (git-file-name "lib-ui-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "0l4baalwdiwcwzn3wgrbyiaryi70lswillbpkzcjpavaa2pjg6b0")))) + "1lbfy4fbb52lklfwn6kxny3mwl653r4vc80k922kwjfgbcy9c25f")))) (define lib-webrtc-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/lib_webrtc.git") - (commit "b68a95ad4d1ae9a1827671100a7fd76cbe448c3f"))) + (commit "8751e27d50d2f26b5d20673e5ddba38e90953570"))) (file-name (git-file-name "lib-webrtc-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "1c8jwdnn26n13yp0rp0l71q6xlxa6wp3cspbm3pnghw964jwgp3z")))) + "0f05pqb83qckghzlhnwqbi9qfi9xw7qsv8jampl4qyaq9q0w9p20")))) (define lib-webview-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/desktop-app/lib_webview.git") - (commit "f632fc84cbc62ae8abbbd05f81d472757a337c11"))) + (commit "2de655f58dc327e40d5d9df71300a0d0fdb39c9f"))) (file-name (git-file-name "lib-webview-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "0idsfkxq7l9kgyrhifys5l4jkhvbyxkgkp0qdq9218h7g0ldw84i")))) + "12vrif0685vb068mj5sd7cknav1n66jysp18j21nlp0am9pw7ydj")))) (define tgcalls-for-telegram-desktop (origin (method git-fetch) (uri (git-reference (url "https://github.com/TelegramMessenger/tgcalls.git") - (commit "2e2797648aac2588e7fe479c2e8b4455ec65c5e6"))) + (commit "9bf4065ea00cbed5e63cec348457ed13143459d0"))) (file-name (git-file-name "tgcalls-for-telegram-desktop" %telegram-version)) (sha256 (base32 - "193m2gkvipijqbfd6a8mhg9nd63wlnshzgspk3pip57vk21l709z")))) + "1p563a11w8jrid96xf03dg6j39ciz28n5f4r6g28lxhiphbqzfym")))) (define-public webrtc-for-telegram-desktop - (let ((commit "0532942ac6176a66ef184fb728a4cbb02958fc0b") - (revision "389")) + (let ((commit "c425281150317753d7bc5182c6572abe20f9a784") + (revision "456")) (hidden-package (package (name "webrtc-for-telegram-desktop") @@ -285,7 +291,7 @@ (file-name (git-file-name name version)) (sha256 - (base32 "0fary99yl1ddk5zjpfy0pyb5brd268j41plcnvv9qjyf0wj9hf2k")) + (base32 "1fj48iq56awnrckncy1qc3zhdzifl725hbb6an7wg2v3zmagvrwn")) (patches (search-patches ;; https://github.com/desktop-app/tg_owt/pull/123 @@ -400,6 +406,18 @@ Telegram project, for its use in telegram desktop client.") (base32 "0ayrrhfdwrf4260h9fsirkhhfrcvc3qqnh6h9wj3ixij2lq0wwqb")))) +(define libprisma-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/libprisma") + (commit "23b0d70f9709da9b38561d5706891a134d18df76"))) + (file-name + (git-file-name "libprisma-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "0fg4x4ikj7f3706bmfvkwq4smxc98qr3cgpm25w48n4ys6wfgadg")))) + (define-public telegram-desktop (package (name "telegram-desktop") @@ -415,7 +433,7 @@ Telegram project, for its use in telegram desktop client.") (file-name (git-file-name name version)) (sha256 - (base32 "0g47ffamh1csp79yzkv28v3qjkhjacj0c7pjf53n1ks80j5hc2j0")) + (base32 "12fdybn085s3i3a8hwi0bmdns7jxvg0k662n04jgffirgsz8n54m")) (patches (search-patches ;; https://github.com/telegramdesktop/tdesktop/pull/24126 @@ -447,6 +465,10 @@ Telegram project, for its use in telegram desktop client.") (ice-9 match)) #:configure-flags #~(list + ;; Do not generate the debug symbols to reduce link time memory + ;; requirements from 25 GiB to 1.3 GiB. This also nearly halves + ;; the build time. + "-DCMAKE_BUILD_TYPE=Release" ;; Client applications must provide their own API-ID and API-HASH, ;; see also <https://core.telegram.org/api/obtaining_api_id>. ;; Here, we snarf the keys from the official Snaps, which are @@ -456,7 +478,10 @@ Telegram project, for its use in telegram desktop client.") "-DTDESKTOP_DISABLE_LEGACY_TGVOIP=ON" "-DDESKTOP_APP_DISABLE_CRASH_REPORTS=ON" "-DDESKTOP_APP_DISABLE_AUTOUPDATE=ON" - "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=ON") + "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=ON" + ;; Enabling jemalloc causes SIGSEGV. This probably happened + ;; after upgrading to glibc 2.39. + "-DDESKTOP_APP_DISABLE_JEMALLOC=ON") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'unpack-additional-sources @@ -481,21 +506,46 @@ Telegram project, for its use in telegram desktop client.") ("Telegram/lib_webrtc" #$lib-webrtc-for-telegram-desktop) ("Telegram/lib_webview" #$lib-webview-for-telegram-desktop) ("Telegram/ThirdParty/cld3" #$cld3-for-telegram-desktop) + ("Telegram/ThirdParty/libprisma" #$libprisma-for-telegram-desktop) ("Telegram/ThirdParty/tgcalls" #$tgcalls-for-telegram-desktop))))) + (add-after 'unpack-additional-sources 'patch-gir-ignore-paths + (lambda _ + (substitute* "cmake/external/glib/generate_cppgir.cmake" + (("\\$\\{cmake_helpers_loc\\}/external/glib/cppgir/data") + (string-append #$(this-package-input "cppgir") "/share/cppgir"))))) + (add-after 'unpack-additional-sources 'use-system-xdg-desktop-portal + (lambda _ + (substitute* (list "Telegram/CMakeLists.txt" + "Telegram/lib_base/CMakeLists.txt") + (("\\$\\{third_party_loc\\}/xdg-desktop-portal/data") + (string-append #$(this-package-native-input "xdg-desktop-portal") + "/share/dbus-1/interfaces"))))) + ;; Remove a problematic 'constexpr' keyword, otherwise + ;; compilation fails with GCC 11. + (add-after 'use-system-xdg-desktop-portal 'patch-libwebview + (lambda _ + (substitute* "Telegram/lib_webview/webview/webview_interface.h" + (("constexpr ") "")))) (add-after 'install 'glib-or-gtk-compile-schemas (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) (native-inputs - (list `(,glib "bin") + (list cpp-ada-url-parser + `(,glib "bin") + gobject-introspection `(,gtk+ "bin") pkg-config - python-wrapper)) + python-wrapper + xdg-desktop-portal-next)) (inputs (list abseil-cpp-cxxstd17 alsa-lib + boost c++-gsl + cppgir-for-telegram-desktop crc32c + expected-lite fcitx-qt5 fcitx5-qt ffmpeg @@ -504,7 +554,6 @@ Telegram project, for its use in telegram desktop client.") gtk+ hime hunspell - jemalloc kcoreaddons-5 kimageformats-5 libdispatch diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index eadf58fbf3..701686258d 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -1504,6 +1504,7 @@ terminal are replicated to the others. (uri (git-reference (url "https://github.com/tio/tio") (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 "050zm7nh9niag1amjql859cj3xc9gbidk3zz546h6fhhh3vykmfl")))) (build-system meson-build-system) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 324b8eeeee..40a98f8ac1 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -71819,7 +71819,7 @@ develop documents with LaTeX, in a single application.") (define-public texstudio (package (name "texstudio") - (version "4.7.2") + (version "4.8.2") (source (origin (method git-fetch) (uri (git-reference @@ -71828,7 +71828,7 @@ develop documents with LaTeX, in a single application.") (file-name (git-file-name name version)) (sha256 (base32 - "10w398airsq04vym27n37pw10425f19a7vbhicnwn5iinahdm3s3")))) + "1grkvwh174a2dx19w6wlkhq2adj6g2myy31f5hji7kxw4ks759xb")))) (build-system qt-build-system) (arguments `(#:tests? #f)) ;tests work only with debug build diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 3435ad5b18..1851440ffd 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -25,7 +25,7 @@ ;;; Copyright © 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe> ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com> -;;; Copyright © 2022 jgart <jgart@dismail.de> +;;; Copyright © 2022, 2024 jgart <jgart@dismail.de> ;;; Copyright © 2022 Andy Tai <atai@atai.org> ;;; Copyright © 2022 ( <paren@disroot.org> ;;; Copyright © 2023 Eidvilas Markevičius <markeviciuseidvilas@gmail.com> @@ -55,6 +55,7 @@ #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix utils) + #:use-module (guix build-system asdf) #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) @@ -92,6 +93,8 @@ #:use-module (gnu packages image) #:use-module (gnu packages lesstif) #:use-module (gnu packages libbsd) + #:use-module (gnu packages lisp-check) + #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages llvm) #:use-module (gnu packages lua) #:use-module (gnu packages ncurses) @@ -144,6 +147,116 @@ complex tasks to be performed in an automated way. GNU ed offers several extensions over the standard utility.") (license license:gpl3+))) +(define-public lem + (let ((commit "3f2f0adb6db2dbed57b5cccca34f47ab9d5a2314") + (revision "0")) + (package + (name "lem") + (version (git-version "2.2.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lem-project/lem/") + (commit commit))) + (sha256 + (base32 "00b4wn75ssywrhr4b7h4vk7hyd6dac2618339k56vg9vwni1bbxi")) + (file-name (git-file-name name version)) + (snippet + #~(begin + (use-modules (guix build utils)) + (delete-file-recursively "roswell") + ;; Delete precompiled shared object files. + (delete-file-recursively "extensions/terminal/lib"))))) + (build-system asdf-build-system/sbcl) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-shared-object-files + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((libvterm-lib (assoc-ref inputs "libvterm")) + (lib-dir (string-append libvterm-lib "/lib")) + (shared-lib-dir (string-append (assoc-ref outputs "out") + "/lib")) + (shared-lib (string-append shared-lib-dir + "/terminal.so"))) + + (substitute* "extensions/terminal/ffi.lisp" + (("terminal.so") shared-lib))))) + (add-after 'create-asdf-configuration 'build-program + (lambda* (#:key outputs #:allow-other-keys) + (build-program + (string-append (assoc-ref outputs "out") "/bin/lem") + outputs + #:dependencies '("lem-ncurses" "lem-sdl2") + #:entry-program '((lem:main) 0)))) + (add-after 'build 'build-terminal-library + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((libvterm-lib (assoc-ref inputs "libvterm")) + (lib-dir (string-append libvterm-lib "/lib")) + (shared-lib-dir (string-append (assoc-ref outputs "out") + "/lib")) + (shared-lib (string-append shared-lib-dir + "/terminal.so"))) + (mkdir-p shared-lib-dir) + (invoke "gcc" "extensions/terminal/terminal.c" + "-L" lib-dir "-lvterm" + "-Wl,-Bdynamic" + "-o" shared-lib + "-fPIC" "-shared"))))))) + (native-inputs + (list sbcl-cl-ansi-text + sbcl-rove + sbcl-trivial-package-local-nicknames)) + (inputs + (list + libvterm + sbcl-alexandria + sbcl-trivia + sbcl-trivial-gray-streams + sbcl-trivial-types + sbcl-cl-ppcre + sbcl-closer-mop + sbcl-iterate + sbcl-lem-mailbox + sbcl-inquisitor + sbcl-babel + sbcl-bordeaux-threads + sbcl-yason + sbcl-log4cl + sbcl-split-sequence + sbcl-cl-str + sbcl-dexador + sbcl-3bmd + sbcl-micros + sbcl-lisp-preprocessor + sbcl-trivial-ws + sbcl-trivial-open-browser + sbcl-sdl2 + sbcl-sdl2-ttf + sbcl-sdl2-image + sbcl-trivial-main-thread + sbcl-cffi + sbcl-cl-charms + sbcl-cl-setlocale + sbcl-log4cl + sbcl-jsonrpc + sbcl-usocket + sbcl-quri + sbcl-cl-change-case + sbcl-async-process + sbcl-cl-iconv + sbcl-esrap + sbcl-parse-number + sbcl-cl-package-locks + sbcl-slime-swank + sbcl-trivial-utf-8)) + (home-page "http://lem-project.github.io/") + (synopsis "Integrated IDE/editor for Common Lisp") + (description "Lem is a Common Lisp editor/IDE with high expansibility.") + (license license:expat)))) + (define-public vis (package (name "vis") diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 2b3fc55425..deebd893d6 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -1270,7 +1270,7 @@ formats (e.g. Bibtex, RIS, ...) using a common XML intermediate.") (define-public goawk (package (name "goawk") - (version "1.27.0") + (version "1.29.0") (source (origin (method git-fetch) @@ -1279,7 +1279,7 @@ formats (e.g. Bibtex, RIS, ...) using a common XML intermediate.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "003idgqj1g41y4sja9gzbds95fl3ba0l20wfgh7hp4kiivgls7r8")))) + (base32 "11ha3wzpwl02g921vz5dvhblim7jf5wxd0gi4vn9jppxah1d5kgl")))) (build-system go-build-system) (arguments (list diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 2f2a41f650..fcad5401d5 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -1147,7 +1147,7 @@ derived from Mozilla's collection.") (package (name "s2n") ;; Update only when updating aws-crt-cpp. - (version "1.3.10") + (version "1.5.1") (source (origin (method git-fetch) (uri (git-reference @@ -1156,17 +1156,13 @@ derived from Mozilla's collection.") (file-name (git-file-name name version)) (sha256 (base32 - "15fr6zwglw74x5qd090752kqn7n3cyi4gmz94ip45g3hflschxd3")))) + "0cw8f846zvjgdwaqadnhdb0cxksx4jd9x4nan9x02xz2w5hcqw04")))) (build-system cmake-build-system) (arguments '(#:configure-flags - '("-DBUILD_SHARED_LIBS=ON" - ;; Remove in next update; see https://github.com/aws/s2n-tls/pull/3108 - ;; Building with 'Werror' results in compilation error (even building - ;; with gcc) when replacing the aws-lc input with openssl. - "-DUNSAFE_TREAT_WARNINGS_AS_ERRORS=OFF"))) + '("-DBUILD_SHARED_LIBS=ON"))) (propagated-inputs (list aws-lc)) - (supported-systems '("x86_64-linux")) + (supported-systems '("aarch64-linux" "x86_64-linux")) (synopsis "SSL/TLS implementation in C99") (description "This library provides a C99 implementation of SSL/TLS. It is designed to @@ -1216,7 +1212,7 @@ ciphers such as ChaCha20, Curve25519, NTRU, and Blake2b.") (package (name "aws-lc") ;; Update only when updating aws-crt-cpp. - (version "1.0.2") + (version "1.34.2") (source (origin (method git-fetch) (uri (git-reference @@ -1225,25 +1221,12 @@ ciphers such as ChaCha20, Curve25519, NTRU, and Blake2b.") (file-name (git-file-name name version)) (sha256 (base32 - "16y4iy2rqrmb7b1c394wyq7a5vbjb41599524my6b6q1vk1pi307")))) + "075a5z3qck0wqb7k2im8k7vj7rqn7r7v1j0i18l6k2n5pi52wypa")))) (build-system cmake-build-system) (arguments '(#:test-target "run_minimal_tests" #:configure-flags - '("-DBUILD_SHARED_LIBS=ON") - #:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? test-target parallel-tests? #:allow-other-keys) - (when tests? - ;; SSLTest.HostMatching fails due to an expired certificate. - ;; Fake the time to be that of the release. - (invoke "faketime" "2022-05-23" - "make" test-target - "-j" (if parallel-tests? - (number->string (parallel-job-count)) - "1")))))))) - (native-inputs (list libfaketime)) + '("-DBUILD_SHARED_LIBS=ON" "-DDISABLE_GO=ON"))) (synopsis "General purpose cryptographic library") (description "AWS libcrypto (aws-lc) contains portable C implementations of algorithms needed for TLS and common applications, and includes optimized diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm index 96d95da0cb..7538170b60 100644 --- a/gnu/packages/tmux.scm +++ b/gnu/packages/tmux.scm @@ -9,6 +9,8 @@ ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com> ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org> +;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> +;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,31 +37,34 @@ #:use-module (guix build-system trivial) #:use-module (guix build-system python) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages linux) #:use-module (gnu packages libevent) #:use-module (gnu packages ncurses) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages sphinx)) (define-public tmux (package (name "tmux") - (version "3.4") + (version "3.5") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/tmux/tmux/releases/download/" - version "/tmux-" version ".tar.gz")) - (sha256 - (base32 - "1ahr7si3akr55hadyms3p36f1pbwavpkbfxpsq55ql5zl3gbh6jm")))) + (method git-fetch) + (uri (git-reference + (url "https://github.com/tmux/tmux") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1bdah5b8fbxwba3z7i46yx5vcvhwmn7yvdh3wn0in1ijnn7mj97h")))) (build-system gnu-build-system) (inputs (list libevent ncurses)) (native-inputs - (list bison)) + (list autoconf automake bison pkg-config)) (home-page "https://github.com/tmux/tmux/wiki") (synopsis "Terminal multiplexer") (description diff --git a/gnu/packages/tor-browsers.scm b/gnu/packages/tor-browsers.scm index ba6bbaa873..7f601737b1 100644 --- a/gnu/packages/tor-browsers.scm +++ b/gnu/packages/tor-browsers.scm @@ -21,7 +21,7 @@ ;;; Copyright © 2021 Baptiste Strazzul <bstrazzull@hotmail.fr> ;;; Copyright © 2022 SeerLite <seerlite@disroot.org> ;;; Copyright © 2024 Aleksandr Vityazev <avityazew@gmail.com> -;;; Copyright © 2020, 2021 André Batista <nandre@riseup.net> +;;; Copyright © 2020, 2021, 2024 André Batista <nandre@riseup.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,77 +90,48 @@ #:use-module (ice-9 regex) #:use-module (guix utils)) -(define (mozilla-locale locale changeset hash-string) - (origin - (method hg-fetch) - (uri (hg-reference - (url (string-append "https://hg.mozilla.org/l10n-central/" - locale)) - (changeset changeset))) - (file-name (string-append "mozilla-locale-" locale)) - (sha256 (base32 hash-string)))) - -(define-syntax-rule (mozilla-locales (hash-string changeset locale) ...) - #~(list (cons #$locale #$(mozilla-locale locale changeset hash-string)) - ...)) - -;; See tor-browser-build/rbm.conf for the list. -;; See browser/locales/l10n-changesets.json for the changeset. -;; See update-mozilla-locales in gnuzilla.scm to automate updating changeset. -(define %torbrowser-locales - (mozilla-locales - ;; sha256 changeset locale - ;;--------------------------------------------------------------------------- - ("1218mldjxybhgzdi0myzkwjr2fgnysl71pl847kr7wyn1j8wk3a5" "c25d00080479" "ar") - ("11c96jhfzd3h46qhblhvn2acsn895ykynarai8r5pf0655nfjs0j" "2de60e3d6d0c" "ca") - ("0yhycgb3s3kydbzy6f2q7f7g2lp975spr092prf9xp8ha62ghby7" "609edd15f9a9" "cs") - ("1kzx94n36c5vv954j7w65djvb37c178zazy25b35l71q2rvhmlhj" "2197a99c9a08" "da") - ("13h7hk11bbd0yq8gqdv7ndbizkgwlm3ybz225l3x2b5cnyjxyg14" "b7a533e5edc9" "de") - ("13ay27vdrqfv2ysyi7c2jmz50lps7rff9rmnws1z7jkj0a5chwrn" "20baf15379d8" "el") - ("0mdr5b6pqxjmg9c8064x3hpf53h6w9j8ghl32655sx9jh4v3ykza" "beff1baac7c5" "es-ES") - ("1pnyg09j6r15w8m62lwj89x6rz4br877z60p8s1hlrb9hj2s3vdx" "ebe0b60b0b36" "fa") - ("067r505626cvlrsalnndf2ykz3nnkiy0b8yaxzf1rracpzmp0hni" "d5ae6a933d71" "fi") - ("0026zzjv2bqc8sg06yvyd0mhny6mwwvhpvzjrhv2fi5v4wkxapdj" "496c2eb73b82" "fr") - ("1dxcp26y8siap4k54zsw7mqa7k0l4f1505rdf4hnnxrzf9a643g5" "2fcccb5b19b3" "ga-IE") - ("14v6xnlyj65hzaz2rmzxcl4skjgm48426jgr9mwkwiqis587lp4a" "c53cea027f8f" "he") - ("04fdw2gzb64fb51bvs0bwsidzlvkdahmcy76vdg3gfcxslnlpi3y" "5a76dd3b5d5c" "hu") - ("0bpyxpclfy74bcsjrs1ajh2am4zv6j6j9q4gc4vz8pgvzy9354zp" "6e6de17dcac4" "id") - ("131ph8n235kr6nj1pszk0m00nh6kl360r4qvx4hjm8s22mw0k8qd" "536265635dfe" "is") - ("03fbp4vgkwyimfmbm4n8blx1m16yhms2wm8j4wlx2h3cpxp5r71k" "91951e37e2b8" "it") - ("0ncm531d7ih7phcn9d83zwq0dfphvmzg3gmhqmrrkkbydi1g3pbb" "895dcf8bb524" "ja") - ("1x3110v730ak522zfm8j3r3v1x5lq3ig82kcgyxkc49xywajy0ni" "d0819a64fc40" "ka") - ("14rc9mr4ngxdzwpjagzhz47jazgp1a6vwb0vbwj31yxv9iwkrgzi" "6ef881aff44b" "ko") - ("1gl85z550amhbaxp39zdj6yyvashj9xd4ampfhm9jdpbf6n5j2l8" "afcbc29a15e5" "lt") - ("1hz5g3iprfkbd88ncppyksbhlws73lhs75nf62hangw8l73wdn69" "84f3d6c7e2da" "mk") - ("14aq37ngnav5m2kcb4wavxwhp28ad4jzdkzc7i64h0qvvxq5n3hf" "c9ec27a5db3d" "ms") - ("0h7dlnawm5mbcx4qdlz5c7n4axz2dpa677v13ljdgm2b5w76msmq" "5c1480ccc040" "my") - ("1b12azc1n8j1i2l20v66r74q79zqjvc5sf9pd8rmj3xd0fkxzdp2" "fc1896a0a24d" "nb-NO") - ("1fh4dhlb6hynlpb2997gssv9v8zk5b7qrw0sclggczb5pcpjk6wc" "7e6da4f01bdb" "nl") - ("1w8x3jjrd28f6g6ywwxldizpiipfkr63dzqd74kjpg24s2lqzp80" "e86a451a9cb5" "pl") - ("1v3v4n82sn7a4h2d9n653fmgc31mikacf59lvdj6gbwvzpjb5yfa" "94c3dbb67a5d" "pt-BR") - ("061a4z0lffgks3wlr6yh5z7x9arcn804mjwvffcmibs106vzamyq" "470b13b5805b" "ro") - ("1fxgh7nfxpg2zknvfff8igq9q1vm5n4q033v7lm2c0xn3dbl8m28" "402b2ecbf04d" "ru") - ("1i119g6dnhzxmpaz5r2jr9yzm1v24v2q6m3z6bfz2yihj0w7m133" "f637484e72b6" "sq") - ("1nllh3ax323sxwhj7xvwvbfnh4179332pcmpfyybw1vaid3nr39k" "bb2d5d96d69e" "sv-SE") - ("136m68fd0641k3qqmsw6zp016cvvd0sipsyv6rx2b9nli56agz57" "0e6c56bf2ac9" "th") - ("0q8p8bwq8an65yfdwzm4dhl6km68r83bv5i17kay2gak8msxxhsb" "91e611ae3f19" "tr") - ("1f2g7rnxpr2gjzngfsv19g11vk9zqpyrv01pz07mw2z3ffbkxf0j" "99d5ffa0b81e" "uk") - ("1rizwsfgr7vxm31bin3i7bwhcqa67wcylak3xa387dvgf1y9057i" "5fd44724e22d" "vi") - ("02ifa94jfii5f166rwdvv8si3bazm4bcf4qhi59c8f1hxbavb52h" "081aeb1aa308" "zh-CN") - ("0qx9sh56pqc2x5qrh386cp1fi1gidhcmxxpvqkg9nh2jbizahznr" "9015a180602e" "zh-TW"))) +;; See browser/locales/l10n-changesets.json for the commit. +(define firefox-locales + (let ((commit "d8d587117c7b9dcc6a4fbc38407ed2c831bb008f") + (revision "0")) + (package + (name "firefox-locales") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mozilla-l10n/firefox-l10n") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0a2ly29lli02jflqw78zjk7bp7h18fz935cc9csavi0cpdiixjv1")))) + (build-system copy-build-system) + (home-page "https://github.com/mozilla-l10n/firefox-l10n") + (synopsis "Firefox Locales") + (description "This package contains localized messages for all +Firefox locales.") + (license license:mpl2.0)))) ;; We copy the official build id, which is defined at ;; tor-browser-build/rbm.conf (browser_release_date). -(define %torbrowser-build-date "20240510190000") +(define %torbrowser-build-date "20240903073000") ;; To find the last version, look at https://www.torproject.org/download/. -(define %torbrowser-version "13.0.16") +(define %torbrowser-version "13.5.3") ;; To find the last Firefox version, browse ;; https://archive.torproject.org/tor-package-archive/torbrowser/<%torbrowser-version> ;; There should be only one archive that starts with ;; "src-firefox-tor-browser-". -(define %torbrowser-firefox-version "115.12.0esr-13.0-1-build1") +(define %torbrowser-firefox-version "115.15.0esr-13.5-1-build3") + +;; See tor-browser-build/rbm.conf for the list. +(define %torbrowser-locales (list "ar" "ca" "cs" "da" "de" "el" "es-ES" "fa" "fi" "fr" + "ga-IE" "he" "hu" "id" "is" "it" "ja" "ka" "ko" "lt" + "mk" "ms" "my" "nb-NO" "nl" "pl" "pt-BR" "ro" "ru" + "sq" "sv-SE" "th" "tr" "uk" "vi" "zh-CN" "zh-TW")) ;; See tor-browser-build/projects/translation/config. (define torbrowser-translation-base @@ -168,11 +139,11 @@ (method git-fetch) (uri (git-reference (url "https://gitlab.torproject.org/tpo/translation.git") - (commit "f28525699864f4e3d764c354130bd898ce5b20aa"))) + (commit "daed2afc487d1b20efc17feb153156524c6f714b"))) (file-name "translation-base-browser") (sha256 (base32 - "1vf6nl7fdmlmg2gskf3w1xlsgcm0pxi54z2daz5nwr6q9gyi0lkf")))) + "0psmmgw9dnjwdhjbqkd69q5q7sdwyjcwagh93ffrjk0v7ybc79dq")))) ;; See tor-browser-build/projects/translation/config. (define torbrowser-translation-specific @@ -180,11 +151,11 @@ (method git-fetch) (uri (git-reference (url "https://gitlab.torproject.org/tpo/translation.git") - (commit "b5d79336411e5a59c4861341ef9aa7353e0bcad9"))) + (commit "6374e3b09c0894b8452fa1ba0b99c807722fc805"))) (file-name "translation-tor-browser") (sha256 (base32 - "0ahz69pxhgik7ynmdkbnx7v5l2v392i6dswjz057g4hwnd7d34fb")))) + "1wd9iwcj2h70bp017pcdhgfiw2bs8zi68kljmpnk69pssd6cn8l3")))) (define torbrowser-assets ;; This is a prebuilt Torbrowser from which we take the assets we need. @@ -200,7 +171,7 @@ version "/tor-browser-linux-x86_64-" version ".tar.xz")) (sha256 (base32 - "1kffam66bsaahzx212hw9lb03jwfr24hivzg067iyzilsldpc9c1")))) + "0laz6yrm310iidddnas2w1s5wad183n9axjkgrf5cm5paj615343")))) (arguments (list #:install-plan @@ -215,6 +186,10 @@ Browser.") (license license:silofl1.1))) +;;; A LLD wrapper that can be used as a (near) drop-in replacement to GNU ld. +(define lld-as-ld-wrapper-16 + (make-lld-wrapper lld-16 #:lld-as-ld? #t)) + (define* (make-torbrowser #:key moz-app-name moz-app-remotingname @@ -238,10 +213,11 @@ Browser.") ".tar.xz")) (sha256 (base32 - "1b70zyjyai6kk4y1kkl8jvrs56gg7z31kkad6bmdpd8jw4n71grx")))) + "13b9ni6anv279drhbb5m95nnmgslrp6frsm0y4028nfqiprs7vj5")))) (build-system mozilla-build-system) (inputs (list go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird + firefox-locales tor-client alsa-lib bash-minimal ;for wrap-program @@ -293,8 +269,9 @@ Browser.") rust `(,rust "cargo") rust-cbindgen - llvm-15 - clang-15 + lld-as-ld-wrapper-16 ; for cargo rustc + llvm-16 + clang-16 perl node-lts python-wrapper @@ -541,7 +518,7 @@ Browser.") (setenv "MOZBUILD_STATE_PATH" (in-vicinity (getcwd) ".mozbuild")) (setenv "MOZ_CHROME_MULTILOCALE" - (string-join (map car #$locales))) + (string-join (list #$@locales))) ;; Make build reproducible. (setenv "MOZ_BUILD_DATE" #$build-date))) (add-before 'configure 'mozconfig @@ -555,14 +532,14 @@ Browser.") ;; See tor-browser-build/projects/firefox/build. (add-before 'configure 'copy-firefox-locales (lambda _ - (let ((l10ncentral ".mozbuild/l10n-central")) + (let ((l10ncentral ".mozbuild/l10n-central") + (ff-locales #$(this-package-input "firefox-locales"))) (mkdir-p l10ncentral) (for-each (lambda (lang) - (copy-recursively (cdr lang) - (in-vicinity l10ncentral - (car lang)))) - #$locales)))) + (copy-recursively (string-append ff-locales "/" lang) + (in-vicinity l10ncentral lang))) + (list #$@locales))))) (add-after 'copy-firefox-locales 'copy-basebrowser-locales (lambda _ (let ((l10ncentral ".mozbuild/l10n-central")) @@ -577,7 +554,7 @@ Browser.") #f (string-join '("mv" "translation-base-browser/~a/base-browser.ftl" - "~a/~a/browser/browser/")) + "~a/~a/toolkit/toolkit/global/")) lang l10ncentral lang)) (system (format @@ -586,7 +563,7 @@ Browser.") "translation-base-browser/~a/*" "~a/~a/browser/chrome/browser/")) lang l10ncentral lang))) - (map car #$locales))))) + (list #$@locales))))) (add-after 'copy-basebrowser-locales 'copy-torbrowser-locales (lambda _ (let ((l10ncentral ".mozbuild/l10n-central")) @@ -601,7 +578,7 @@ Browser.") #f (string-join '("mv" "translation-tor-browser/~a/tor-browser.ftl" - "~a/~a/browser/browser/")) + "~a/~a/toolkit/toolkit/global/")) lang l10ncentral lang)) (system (format @@ -623,7 +600,7 @@ Browser.") (format port " locale/~a/ (chrome/locale/~a/*)~%" lang lang) (close port))) - (map car #$locales))))) + (list #$@locales))))) (replace 'configure (lambda _ (invoke "./mach" "configure"))) @@ -632,14 +609,6 @@ Browser.") (substitute* "toolkit/locales/en-US/toolkit/about/aboutAddons.ftl" (("addons.mozilla.org") "gnuzilla.gnu.org")))) - (add-before 'build 'add-bridges ;see deploy.sh - (lambda _ - (let ((port (open-file - "browser/app/profile/000-tor-browser.js" "a"))) - (display - "#include ../../../tools/torbrowser/bridges.js" port) - (newline port) - (close port)))) (replace 'build (lambda* (#:key (make-flags '()) (parallel-build? #t) #:allow-other-keys) @@ -739,7 +708,7 @@ Browser.") (copy-recursively (in-vicinity #$assets "fontconfig") (in-vicinity lib "fontconfig")) (substitute* (in-vicinity lib "fontconfig/fonts.conf") - (("<dir>fonts</dir>") + (("<dir prefix=\"cwd\">fonts</dir>") (format #f "<dir>~a</dir>" (in-vicinity lib "fonts")))) (delete-file-recursively (in-vicinity lib "fonts")) (copy-recursively (in-vicinity #$assets "fonts") @@ -805,11 +774,7 @@ Browser.") "https://gnuzilla.gnu.org/mozzarella") (format #t "pref(~s, ~s);~%" "lightweightThemes.getMoreURL" - "https://gnuzilla.gnu.org/mozzarella") - ;; FIXME: https://github.com/NixOS/nixpkgs/issues/307095 - (format #t "pref(~s, ~a);~%" - "widget.use-xdg-desktop-portal.file-picker" - "1")))))) + "https://gnuzilla.gnu.org/mozzarella")))))) (add-after 'autoconfig 'autoconfig-tor (lambda* (#:key inputs #:allow-other-keys) (let ((lib (in-vicinity #$output "lib/torbrowser")) @@ -853,47 +818,23 @@ attacks on the privacy of Tor users.") ;; See tor-browser-build/rbm.conf for the list. -;; See browser/locales/l10n-changesets.json for the changeset. -;; See update-mozilla-locales in gnuzilla.scm to automate updating changeset. -(define %mullvadbrowser-locales - (mozilla-locales - ;; sha256 changeset locale - ;;--------------------------------------------------------------------------- - ("1218mldjxybhgzdi0myzkwjr2fgnysl71pl847kr7wyn1j8wk3a5" "c25d00080479" "ar") - ("1kzx94n36c5vv954j7w65djvb37c178zazy25b35l71q2rvhmlhj" "2197a99c9a08" "da") - ("13h7hk11bbd0yq8gqdv7ndbizkgwlm3ybz225l3x2b5cnyjxyg14" "b7a533e5edc9" "de") - ("0mdr5b6pqxjmg9c8064x3hpf53h6w9j8ghl32655sx9jh4v3ykza" "beff1baac7c5" "es-ES") - ("1pnyg09j6r15w8m62lwj89x6rz4br877z60p8s1hlrb9hj2s3vdx" "ebe0b60b0b36" "fa") - ("067r505626cvlrsalnndf2ykz3nnkiy0b8yaxzf1rracpzmp0hni" "d5ae6a933d71" "fi") - ("0026zzjv2bqc8sg06yvyd0mhny6mwwvhpvzjrhv2fi5v4wkxapdj" "496c2eb73b82" "fr") - ("03fbp4vgkwyimfmbm4n8blx1m16yhms2wm8j4wlx2h3cpxp5r71k" "91951e37e2b8" "it") - ("0ncm531d7ih7phcn9d83zwq0dfphvmzg3gmhqmrrkkbydi1g3pbb" "895dcf8bb524" "ja") - ("14rc9mr4ngxdzwpjagzhz47jazgp1a6vwb0vbwj31yxv9iwkrgzi" "6ef881aff44b" "ko") - ("0h7dlnawm5mbcx4qdlz5c7n4axz2dpa677v13ljdgm2b5w76msmq" "5c1480ccc040" "my") - ("1b12azc1n8j1i2l20v66r74q79zqjvc5sf9pd8rmj3xd0fkxzdp2" "fc1896a0a24d" "nb-NO") - ("1fh4dhlb6hynlpb2997gssv9v8zk5b7qrw0sclggczb5pcpjk6wc" "7e6da4f01bdb" "nl") - ("1w8x3jjrd28f6g6ywwxldizpiipfkr63dzqd74kjpg24s2lqzp80" "e86a451a9cb5" "pl") - ("1v3v4n82sn7a4h2d9n653fmgc31mikacf59lvdj6gbwvzpjb5yfa" "94c3dbb67a5d" "pt-BR") - ("1fxgh7nfxpg2zknvfff8igq9q1vm5n4q033v7lm2c0xn3dbl8m28" "402b2ecbf04d" "ru") - ("1nllh3ax323sxwhj7xvwvbfnh4179332pcmpfyybw1vaid3nr39k" "bb2d5d96d69e" "sv-SE") - ("136m68fd0641k3qqmsw6zp016cvvd0sipsyv6rx2b9nli56agz57" "0e6c56bf2ac9" "th") - ("0q8p8bwq8an65yfdwzm4dhl6km68r83bv5i17kay2gak8msxxhsb" "91e611ae3f19" "tr") - ("02ifa94jfii5f166rwdvv8si3bazm4bcf4qhi59c8f1hxbavb52h" "081aeb1aa308" "zh-CN") - ("0qx9sh56pqc2x5qrh386cp1fi1gidhcmxxpvqkg9nh2jbizahznr" "9015a180602e" "zh-TW"))) +(define %mullvadbrowser-locales (list "ar" "da" "de" "es-ES" "fa" "fi" "fr" "it" + "ja" "ko" "my" "nb-NO" "nl" "pl" "pt-BR" + "ru" "sv-SE" "th" "tr" "zh-CN" "zh-TW")) ;; We copy the official build id, which can be found there: ;; https://cdn.mullvad.net/browser/update_responses/update_1/release. -(define %mullvadbrowser-build-date "20240510190000") +(define %mullvadbrowser-build-date "20240903073000") ;; To find the last version, look at ;; https://mullvad.net/en/download/browser/linux. -(define %mullvadbrowser-version "13.0.16") +(define %mullvadbrowser-version "13.5.3") ;; To find the last Firefox version, browse ;; https://archive.torproject.org/tor-package-archive/mullvadbrowser/<%mullvadbrowser-version> ;; There should be only one archive that starts with ;; "src-firefox-mullvad-browser-". -(define %mullvadbrowser-firefox-version "115.12.0esr-13.0-1-build1") +(define %mullvadbrowser-firefox-version "115.15.0esr-13.5-1-build2") ;; See tor-browser-build/projects/translation/config. (define mullvadbrowser-translation-base @@ -901,11 +842,11 @@ attacks on the privacy of Tor users.") (method git-fetch) (uri (git-reference (url "https://gitlab.torproject.org/tpo/translation.git") - (commit "f28525699864f4e3d764c354130bd898ce5b20aa"))) + (commit "daed2afc487d1b20efc17feb153156524c6f714b"))) (file-name "translation-base-browser") (sha256 (base32 - "1vf6nl7fdmlmg2gskf3w1xlsgcm0pxi54z2daz5nwr6q9gyi0lkf")))) + "0psmmgw9dnjwdhjbqkd69q5q7sdwyjcwagh93ffrjk0v7ybc79dq")))) ;; See tor-browser-build/projects/translation/config. (define mullvadbrowser-translation-specific @@ -933,7 +874,7 @@ attacks on the privacy of Tor users.") version "/mullvad-browser-linux-x86_64-" version ".tar.xz")) (sha256 (base32 - "1bpchiz12zjyrzpgyk71naf1jdf3msjcjwggb1mziyawc6pyxj7v")))) + "17sqin4fnvq96plarv0iv8r801i19gh7v7szg2vrmcynay8qx4mc")))) (arguments (list #:install-plan @@ -976,7 +917,7 @@ Mullvad Browser.") %mullvadbrowser-firefox-version ".tar.xz")) (sha256 (base32 - "1xs4qwa3c6nfq6cj5q6asfrzki4brafg65g6hbn0fc9qqcmrhkv5")))) + "1c6jjw0x8bjz74q15a7vskrd0ji5ic19mzr9f2laivhznjy0r12c")))) (arguments (substitute-keyword-arguments (package-arguments mullvadbrowser-base) ((#:phases phases) @@ -998,7 +939,7 @@ Mullvad Browser.") (system (format #f "cp -Lr ~a/~a .mozbuild/l10n-central/" #$mullvadbrowser-translation-specific lang))) - (map car #$%mullvadbrowser-locales)))) + (list #$@%mullvadbrowser-locales)))) (add-before 'build 'fix-profiles ;; Otherwise the profile would change every time the install ;; location changes, that is: at every package update. These diff --git a/gnu/packages/uml.scm b/gnu/packages/uml.scm index f957b2a5ae..f80a94748c 100644 --- a/gnu/packages/uml.scm +++ b/gnu/packages/uml.scm @@ -39,6 +39,7 @@ (uri (git-reference (url "https://github.com/plantuml/plantuml/") (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 "0h6hk34x5qc8cyqlw90wnakji8w6n9bykpr3dygvfwg2kvw5rhlv")))) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 0c4cdedce8..de59c49b64 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -56,6 +56,8 @@ ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2024 Suhail Singh <suhail@bayesians.ca> ;;; Copyright © 2024 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2024 Javier Olaechea <pirata@gmail.com> +;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> ;;; ;;; This file is part of GNU Guix. ;;; @@ -102,6 +104,7 @@ #:use-module (gnu packages cook) #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-vcs) + #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages docbook) @@ -124,6 +127,8 @@ #:use-module (gnu packages guile-xyz) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) + #:use-module (gnu packages libbsd) + #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages mail) #:use-module (gnu packages man) @@ -963,6 +968,56 @@ the date of the most recent commit that modified them @end itemize") (license license:gpl3+))) +(define-public got + (package + (name "got") + (version "0.103") + (source (origin + (method url-fetch) + (uri + (string-append + "https://gameoftrees.org/releases/portable/got-portable-" + version ".tar.gz")) + (sha256 + (base32 + "0y18961xrj4rja850i31gadiaps2qnkfb4jlramlz9akyf9mwh1j")))) + (inputs + (list libevent + `(,util-linux "lib") + zlib + libressl + libmd + libbsd + ncurses)) + (native-inputs + (list pkg-config perl)) + (arguments + `(;; disable runpath validation, courtesy: libbsd's special + ;; treatment of libmd, as it embeds path to libmd.so + #:validate-runpath? #f + ;; default values of GOT_*_PATH_* point to /usr/bin + #:make-flags + '("CFLAGS+=-DGOT_DIAL_PATH_SSH=\\\"ssh\\\"" + "CFLAGS+=-DGOT_TAG_PATH_SSH_KEYGEN=\\\"ssh-keygen\\\"" + "CFLAGS+=-DGOT_TAG_PATH_SIGNIFY=\\\"signify\\\"") + #:phases ,#~(modify-phases %standard-phases + (add-after 'unpack 'patch-execv-to-execvp + (lambda _ + ;; got sources has paths hardcoded to /usr/bin + (substitute* "lib/dial.c" + (("execv\\(GOT_DIAL_") "execvp(GOT_DIAL_") + (("execv %s\", GOT_DIAL") "execvp %s\", GOT_DIAL")) + (substitute* "lib/sigs.c" + (("execv\\(GOT_TAG") "execvp(GOT_TAG") + (("execv %s\", GOT_TAG") "execvp %s\", GOT_TAG"))))))) + (build-system gnu-build-system) + (synopsis "Distributed version control system") + (description + "Game of Trees (Got) is a version control system which prioritizes ease of use +and simplicity over flexibility.") + (license license:isc) + (home-page "https://gameoftrees.org/"))) + (define-public xdiff (let ((revision "0") (commit "a137bc7ee6c76618ed1737c257548eaa10ac0089")) @@ -2239,7 +2294,7 @@ visualize your public Git repositories on a web interface.") " and not test_healthy_venv_creator" " and not test_r_hook and not test_r_inline")))))))) (native-inputs - `(("git" ,git-minimal) + `(("git" ,git-minimal/pinned) ("python-covdefaults" ,python-covdefaults) ("python-coverage" ,python-coverage) ("python-distlib" ,python-distlib) @@ -2995,7 +3050,7 @@ modification time.") (define-public fnc (package (name "fnc") - (version "0.16") + (version "0.18") (source (origin (method url-fetch) (uri @@ -3003,12 +3058,18 @@ modification time.") version ".tar.gz")) (sha256 (base32 - "1npnbdz5i4p61ri76vx6awggbc0q19y8b26l3sy4wxmaxkly7gwy")))) + "1067rr4nqngld1nqa8c7imp9n3w5fp7rpc7khh6l84q2w1klrya9")))) (build-system gnu-build-system) (arguments (list #:phases #~(modify-phases %standard-phases - (delete 'configure)) + (delete 'configure) + ;; fix cross-compiling. + (add-after 'unpack 'don-t-use-install-s + (lambda _ + (substitute* "fnc.bld.mk" + (("install -s") + "install"))))) #:tests? #f ; no tests #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) (string-append "PREFIX=" #$output)))) @@ -3364,13 +3425,15 @@ specific files and directories.") (package (name "src") (version "1.32") - (source (origin - (method url-fetch) - (uri (string-append - "http://www.catb.org/~esr/src/src-" version ".tar.gz")) - (sha256 - (base32 - "0r9i399kkagpwj08nwf1f7c6lr50xjzzgmzwyjjy6ppgcc53a809")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/esr/src.git/") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0kxbmpjr98kfacjidizxcghl541fwnf8yzfvwfq5f9zbv42p8l41")))) (build-system gnu-build-system) (arguments (list @@ -3386,14 +3449,17 @@ specific files and directories.") (wrap-program prog `("PATH" ":" prefix (,(dirname rcs))))))) (replace 'check - (lambda _ - (setenv "HOME" (getenv "TMPDIR")) - (invoke "git" "config" "--global" "user.name" "guix") - (invoke "git" "config" "--global" "user.email" "guix") - (invoke "./srctest")))))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "HOME" (getenv "TMPDIR")) + (invoke "git" "config" "--global" "user.name" "guix") + (invoke "git" "config" "--global" "user.email" "guix") + (invoke "./srctest"))))))) (native-inputs - ;; For testing. - (list git perl)) + (list asciidoc + ;; For testing. + git + perl)) (inputs (list bash-minimal cssc @@ -4187,20 +4253,20 @@ commit messages for style.") (define-public hut (package (name "hut") - (version "0.4.0") + (version "0.6.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://git.sr.ht/~emersion/hut") + (url "https://git.sr.ht/~xenrox/hut") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0klp7qlii07j8ka9g91m5xg3ybg6cq0p5lp1ibfihq2p4kwqj57m")))) + (base32 "14cia976i2jdzyzw4wk9fhkh6zqgmb09ryf31ys24smmfcdfxyf1")))) (build-system go-build-system) (arguments (list - #:import-path "git.sr.ht/~emersion/hut" + #:import-path "git.sr.ht/~xenrox/hut" #:phases #~(modify-phases %standard-phases (replace 'build @@ -4220,11 +4286,11 @@ commit messages for style.") (list go-git-sr-ht-emersion-go-scfg go-git-sr-ht-emersion-gqlclient go-github-com-dustin-go-humanize + go-github-com-google-shlex go-github-com-juju-ansiterm go-github-com-spf13-cobra - go-golang-org-x-oauth2 go-golang-org-x-term)) - (home-page "https://git.sr.ht/~emersion/hut") + (home-page "https://git.sr.ht/~xenrox/hut") (synopsis "CLI tool for sr.ht") (description "@command{hut} is a CLI tool for @uref{https://sr.ht/~sircmpwn/sourcehut/, sr.ht}. It helps you interact with diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index ae6d684ada..1d2ab5fbeb 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -69,6 +69,7 @@ ;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com> ;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> +;;; Copyright © 2024 aurtzy <aurtzy@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -224,7 +225,7 @@ (define-public ani-cli (package (name "ani-cli") - (version "4.8") + (version "4.9") (source (origin (method git-fetch) @@ -233,7 +234,7 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1xfcn51yyzjc7gr2xzhz2i1i500ad1877dmdadipfdlfcs4l4yxy")))) + (base32 "0ihiiwxgimf9q6hd4g9xxmxps8ngrwl4vwvd8mymmb7dcjjrwfzg")))) (build-system gnu-build-system) (arguments (list @@ -3346,6 +3347,32 @@ Both command-line and GTK2 interface are available.") (home-page "https://github.com/trizen/youtube-viewer") (license license:perl-license))) +(define-public ytcc + (package + (name "ytcc") + (version "2.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ytcc" version)) + (sha256 + (base32 "0laaj7m9mkn421hsljaqyhj2az641lg4y7ym6l8jl1xgs1vl9b4b")))) + (build-system pyproject-build-system) + (inputs (list python-click + python-wcwidth + python-websockets + python-urllib3-next + python-requests-next + python-pycryptodomex + python-mutagen + python-brotli + yt-dlp)) + (home-page "https://github.com/woefe/ytcc") + (synopsis "Command line tool to keep track of your favorite playlists") + (description "ytcc is a command line tool to keep track of your favorite +playlists.") + (license license:gpl3+))) + (define-public libbluray (package (name "libbluray") @@ -5468,8 +5495,8 @@ programmers to access a standard API to open and decompress media files.") (source (origin (method url-fetch) (uri (string-append - "http://ftp.aegisub.org/pub/archives/releases/source/" - name "-" version ".tar.xz")) + "https://github.com/Aegisub/Aegisub/releases/download/v" + version "/aegisub-" version ".tar.xz")) (sha256 (base32 "11b83qazc8h0iidyj1rprnnjdivj1lpphvpa08y53n42bfa36pn5")) @@ -6128,7 +6155,7 @@ video from a Wayland session.") python-pycairo ; Required or else clicking on a subtitle line fails. python-chardet ; Optional: Character encoding detection. gtkspell3 ; Optional: Inline spell-checking. - iso-codes ; Optional: Translations. + iso-codes/pinned ; Optional: Translations. gstreamer gst-libav gst-plugins-base @@ -6712,3 +6739,56 @@ for details on how to change this.") broadcasters including SVT Play, Sveriges Radio, TV4 Play, along with many others.") (license license:expat))) + +(define-public syncplay + (package + (name "syncplay") + (version "1.7.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Syncplay/syncplay") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08bgndszja4n2kql2qmzl6qrzawxvcwmywsc69lq0dzjnpdk96la")))) + (build-system python-build-system) + (arguments + (list + #:imported-modules `(,@%python-build-system-modules + (guix build qt-utils) + (guix build utils)) + #:modules '((guix build python-build-system) + (guix build qt-utils) + (guix build utils)) + #:phases #~(modify-phases %standard-phases + (delete 'check) + (replace 'install + (lambda _ + (invoke "make" "install" "DESTDIR=" + (string-append "PREFIX=" + #$output)))) + (add-after 'install 'wrap-qt + (lambda* (#:key inputs #:allow-other-keys) + (wrap-qt-program "syncplay" + #:output #$output + #:inputs inputs + #:qt-major-version "6")))))) + (native-inputs (list python-pyside-6)) + (inputs (list bash-minimal + python-certifi + python-idna + python-service-identity + python-twisted + qtwayland)) + (home-page "https://syncplay.pl") + (synopsis "Client/server to synchronize media playback on many computers") + (description + "Syncplay is a solution to synchronize video playback across multiple +instances of media players over the Internet. When one person pauses/unpauses +playback or skips to a position in the video, this is replicated across all +media players connected to the same server and in the same \"room\" (viewing +session). A built-in text chat for discussing the synced media is also +included for convenience.") + (license license:asl2.0))) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 786a85ab58..a7f07ec0f6 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -86,7 +86,7 @@ (define-public vim (package (name "vim") - (version "9.1.0146") + (version "9.1.0744") (source (origin (method git-fetch) (uri (git-reference @@ -95,7 +95,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "05lz8ai39p9ypk22n7qc7g21868m08pl12sn4028jshx5nxwy2zn")))) + "0izx8ckjbpavp3bpw7lzdga5mmpcdssvzhlnz18n4bfzpfhg5knr")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -157,7 +157,8 @@ (with-fluids ((%default-port-encoding #f)) (substitute* "src/testdir/test_writefile.vim" ((".*Test_write_with_xattr_support.*" line) - (string-append line "return\n")))))) + (string-append line "return\n")))) + (delete-file "runtime/syntax/testdir/input/sh_11.sh"))) (add-before 'install 'fix-installman.sh (lambda _ (substitute* "src/installman.sh" @@ -1036,7 +1037,7 @@ a nested nvim process.") (define-public vim-guix-vim (package (name "vim-guix-vim") - (version "0.4.0") + (version "0.4.1") (source (origin (method git-fetch) (uri (git-reference @@ -1045,7 +1046,7 @@ a nested nvim process.") (file-name (git-file-name name version)) (sha256 (base32 - "013yn2n2nsspk12bldkc9xn4z4kjx9rvracbllc8i1nngldckxd0")))) + "0ii2v94wdh8wn1qrgbn91cxzk3gi09awgxydf2bb6z7b302absh8")))) (build-system vim-build-system) (arguments (list #:plugin-name "guix")) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index b076d49985..59137eb2d4 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -36,6 +36,7 @@ ;;; Copyright © 2024 Raven Hallsby <karl@hallsby.com> ;;; Copyright © 2024 jgart <jgart@dismail.de> ;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> +;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,6 +57,7 @@ #:use-module (gnu packages) #:use-module (gnu packages acl) #:use-module (gnu packages admin) + #:use-module (gnu packages apparmor) #:use-module (gnu packages assembly) #:use-module (gnu packages attr) #:use-module (gnu packages autotools) @@ -356,7 +358,10 @@ ;; No 'PCI' bus found for device 'virtio-scsi-pci' (delete-file "tests/qemu-iotests/127") - (delete-file "tests/qemu-iotests/267")))) + (delete-file "tests/qemu-iotests/267") + + ;; This test takes too long. + (delete-file "tests/qemu-iotests/tests/iothreads-stream")))) '()) (add-after 'patch-source-shebangs 'patch-embedded-shebangs (lambda* (#:key native-inputs inputs #:allow-other-keys) @@ -1350,7 +1355,7 @@ all common programming languages. Vala bindings are also provided.") (define-public lxc (package (name "lxc") - (version "4.0.12") + (version "6.0.1") (source (origin (method url-fetch) (uri (string-append @@ -1358,30 +1363,23 @@ all common programming languages. Vala bindings are also provided.") version ".tar.gz")) (sha256 (base32 - "1vyk2j5w9gfyh23w3ar09cycyws16mxh3clbb33yhqzwcs1jy96v")))) - (build-system gnu-build-system) + "1q3p3zzm338pmc97z6ly8cjginkyljxqbk1c37l2xa46vfy8zcyc")) + (patches (search-patches "lxc-no-static-bin.patch")))) + (build-system meson-build-system) (native-inputs (list pkg-config docbook2x)) (inputs - (list gnutls libcap libseccomp libselinux)) + (list apparmor dbus gnutls libcap libseccomp libselinux)) (arguments (list #:configure-flags - #~(list (string-append "--docdir=" #$output "/share/doc/" + #~(list (string-append "-Ddoc-path=" #$output "/share/doc/" #$name "-" #$version) - "--sysconfdir=/etc" - "--localstatedir=/var") - #:phases - #~(modify-phases %standard-phases - (replace 'install - (lambda _ - (invoke "make" "install" - (string-append "bashcompdir=" #$output - "/etc/bash_completion.d") - ;; Don't install files into /var and /etc. - "LXCPATH=/tmp/var/lib/lxc" - "localstatedir=/tmp/var" - "sysconfdir=/tmp/etc" - "sysconfigdir=/tmp/etc/default")))))) + "-Ddistrosysconfdir=/etc" + "-Dinit-script=sysvinit" + "-Dinstall-state-dirs=false" + "-Dinstall-init-files=false" + "-Dspecfile=false" + "-Db_lto=false"))) (synopsis "Linux container tools") (home-page "https://linuxcontainers.org/") (description @@ -2372,7 +2370,7 @@ Open Container Initiative (OCI) image layout and its tagged images.") (wrap-program (string-append #$output "/bin/skopeo") `("PATH" suffix ;; We need at least newuidmap, newgidmap and mount. - ("/run/setuid-programs")))))))) + ("/run/privileged/bin")))))))) (home-page "https://github.com/containers/skopeo") (synopsis "Interact with container images and container image registries") (description diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm index b904f3ee32..4f780a55dd 100644 --- a/gnu/packages/vnc.scm +++ b/gnu/packages/vnc.scm @@ -1,4 +1,4 @@ -;; GNU Guix --- Functional package management for GNU +;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Todor Kondić <tk.code@protonmail.com> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com> diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index bc067260fd..0f7300ff51 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Jeff Mickey <j@codemac.net> ;;; Copyright © 2016, 2017, 2019, 2021, 2022, 2024 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2016–2022, 2024 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2018, 2020 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com> @@ -90,6 +90,8 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages qt) #:use-module (gnu packages samba) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages webkit) #:use-module (gnu packages xml)) @@ -995,14 +997,39 @@ private network between hosts on the internet.") (base32 "01hd7z7gxkc2bjxndnv5dw1x98qcakxli9k8w285iq2b7d786f7f")))) (build-system pyproject-build-system) (arguments - (list #:phases + (list #:modules + `((guix build pyproject-build-system) + (guix build utils) + (ice-9 match) + (srfi srfi-26)) + #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-FHS-file-names - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) (substitute* "sshuttle/client.py" - (("/usr/bin/env") (which "env"))) + (("(/usr)?(/bin/env)" _ _ command) + (search-input-file inputs command))) (substitute* "sshuttle/ssh.py" - (("/bin/sh") "sh"))))))) + (("/bin/sh" command) + (search-input-file inputs command))))) + (add-after 'install 'install-documentation + (lambda _ + (with-directory-excursion "docs" + (invoke "make" "info" "man") + (with-directory-excursion "_build" + (define (install-man-page file) + (match (string-split file #\.) + ((_ ... section) + (install-file file + (string-append #$output + "/share/man/man" + section))))) + + (for-each install-man-page + (find-files "man" "\\.[0-9]$")) + (for-each (cut install-file <> + (string-append #$output "/share/info")) + (find-files "texinfo" "\\.info$"))))))))) (native-inputs (list python-setuptools-scm ;; For tests only. @@ -1010,7 +1037,10 @@ private network between hosts on the internet.") python-mock python-poetry-core python-pytest-cov - python-pytest-runner)) + python-pytest-runner + ;; For documentation only. + python-sphinx + texinfo)) (home-page "https://github.com/sshuttle/sshuttle") (synopsis "VPN that transparently forwards connections over SSH") (description "sshuttle creates an encrypted virtual private network (VPN) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 7d7ac3498f..38cb8cc717 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -2224,7 +2224,7 @@ compository, supporting the following featuers: (define-public waybar (package (name "waybar") - (version "0.10.4") + (version "0.11.0") (source (origin (method git-fetch) @@ -2233,7 +2233,8 @@ compository, supporting the following featuers: (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0liiyz6212pmyhpsrb6773qf5b9b4kb76nggizygr9abfidbg5gw")))) + (base32 "1bw6d3bf8rm4mgrbcprxxljfxbyabbj2lwabk2z19r8lhfz38myy")) + (patches (search-patches "waybar-0.11.0-fix-tray-icons.patch")))) (build-system meson-build-system) (arguments (list #:configure-flags #~(list "--wrap-mode=nodownload"))) @@ -2411,7 +2412,7 @@ wlr-output-management-unstable-v1 protocol.") (define-public stumpwm (package (name "stumpwm") - (version "22.11") + (version "23.11") (source (origin (method git-fetch) @@ -2420,7 +2421,7 @@ wlr-output-management-unstable-v1 protocol.") (commit version))) (file-name (git-file-name "stumpwm" version)) (sha256 - (base32 "1wxgddmkgmpml44a3m6bd8y529b13jz14apxxipmij10wzpgay6d")))) + (base32 "0akrkxwmlk2596b0kl3q0nfi81ypfrpyyyf65vw7px5x17gsnq5i")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiasco @@ -2519,8 +2520,8 @@ productive, customizable lisp based systems.") (delete 'cleanup))))))) (define stumpwm-contrib - (let ((commit "4613a956add7a17986a3b26c341229466cd13f1d") - (revision "5")) + (let ((commit "042a9fcb053839f4b1527d2e6f4baf33e2d16434") + (revision "6")) (package (name "stumpwm-contrib") (version (git-version "0.0.1" revision commit)) ;no upstream release @@ -2532,7 +2533,7 @@ productive, customizable lisp based systems.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1g8h2vd5qsmaiz6ixlx9ykrv6a08izmkf0js18fvljvznpyhsznz")))) + (base32 "1fdlb7zqgn24qpvmq4d56zn4f455vc2jcln609by4g0py87rvm49")))) (build-system asdf-build-system/sbcl) (inputs (list stumpwm)) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index dfd4000cf5..21681119f1 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -332,7 +332,7 @@ used to further tweak the behaviour of the different profiles.") (define-public bemenu (package (name "bemenu") - (version "0.6.21") + (version "0.6.23") (source (origin (method git-fetch) @@ -341,7 +341,7 @@ used to further tweak the behaviour of the different profiles.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1a97h711nbwi01a3vv2944m8gyzi04hgfpiizrzinx79n4vp1zhk")))) + (base32 "0a4ihg1v1yyfwi4qq2zybhy39vw3nikd5qjrd5x3nxgjd0knmynj")))) (build-system gnu-build-system) (arguments (list @@ -1532,15 +1532,16 @@ Escape key when Left Control is pressed and released on its own.") (define-public libwacom (package (name "libwacom") - (version "2.12.2") + (version "2.13.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/linuxwacom/libwacom") (commit (string-append "libwacom-" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1z8p8k19j4snl90rh1j9m53m1wq4vamsdny3hq9azwmzwf3xf6bp")))) + "0i4svxcg606ph72pv9img3gaw3svi827d2c6bdphlxk7cz81x51q")))) (build-system meson-build-system) (arguments (list @@ -3423,7 +3424,7 @@ using @command{dmenu}.") (define-public fuzzel (package (name "fuzzel") - (version "1.10.2") + (version "1.11.0") (home-page "https://codeberg.org/dnkl/fuzzel") (source (origin (method git-fetch) @@ -3431,7 +3432,9 @@ using @command{dmenu}.") (file-name (git-file-name name version)) (sha256 (base32 - "024gnddvabf5dwkdffr6qnnia810w1jqn4ll9fvbcaimybgpvs13")))) + "1z4n1i9rdhfcmfsvb5bvsqy8x8fg51kfiakyqnp200n1nl0kd9ll")) + (patches + (search-patches "fuzzel-fix-gcc-error.patch")))) (build-system meson-build-system) (arguments (list #:build-type "release" diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 33b8d59051..48fdfc8fdc 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -512,7 +512,13 @@ matching them against regular expressions.") (native-inputs (list intltool pkg-config dbus-glib dbus)) (inputs - (list exo libnotify libxfce4ui pulseaudio xfce4-panel)) + (list exo + keybinder + libnotify + libxfce4ui + pavucontrol + pulseaudio + xfce4-panel)) (home-page "https://git.xfce.org/panel-plugins/xfce4-pulseaudio-plugin/") (synopsis "PulseAudio panel plugin for Xfce") (description @@ -1245,7 +1251,6 @@ for and start applications.") xfce4-battery-plugin xfce4-clipman-plugin xfce4-pulseaudio-plugin - xfce4-volumed-pulse xfce4-xkb-plugin)) (propagated-inputs ;; Default font that applications such as IceCat require. diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 62f181d216..7ca336b14a 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -272,7 +272,17 @@ It currently supports: "0w2v40kmvl741vmycv8h5s10n7arbs12n2b1p10z8j13saffcn3c")))) (build-system gnu-build-system) (arguments - `(#:parallel-tests? #f)) + `(#:parallel-tests? #f + ;; Unfortunately we need to make some changes to work around an + ;; assembly generation errors when building for armhf-linux. + #:phases + ,@(if (target-arm32?) + `((modify-phases %standard-phases + (add-before 'configure 'patch-configure + (lambda _ + (substitute* "configure" + (("-O3") "-O2")))))) + '(%standard-phases)))) ;; FIXME: configure also looks for xmms, input could be added once it exists (propagated-inputs (list libogg)) ; required by flac.pc (synopsis "Free lossless audio codec") diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 1d54a91130..6fa2183592 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015, 2016, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2015-2018, 2020-2022 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015-2018, 2020-2022, 2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> @@ -125,6 +125,7 @@ the entire document.") (package (name "expat") (version "2.5.0") + (replacement expat/fixed) (source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c)))) (origin (method url-fetch) @@ -160,6 +161,17 @@ stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags).") (license license:expat))) +(define-public expat/fixed + (hidden-package + (package + (inherit expat) + (replacement expat/fixed) + (source (origin + (inherit (package-source expat)) + (patches (search-patches "expat-CVE-2024-45490.patch" + "expat-CVE-2024-45491.patch" + "expat-CVE-2024-45492.patch"))))))) + (define-public libebml (package (name "libebml") diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index a7692a43c8..0de08a4ad1 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -221,17 +221,14 @@ directory tree.") (define-public bdftopcf (package (name "bdftopcf") - (version "1.1") + (version "1.1.1") (source - (origin - (method url-fetch) - (uri (string-append - "mirror://xorg/individual/app/bdftopcf-" - version - ".tar.bz2")) - (sha256 - (base32 - "18hiscgljrz10zjcws25bis32nyrg3hzgmiq6scrh7izqmgz0kab")))) + (origin + (method url-fetch) + (uri (string-append "mirror://xorg/individual/util/" + "bdftopcf-" version ".tar.xz")) + (sha256 + (base32 "026rzs92h9jsc7r0kvvyvwhm22q0805gp38rs14x6ghg7kam7j8i")))) (build-system gnu-build-system) (inputs (list libxfont2)) diff --git a/gnu/services.scm b/gnu/services.scm index f0bbbb27a5..8a4002e072 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -632,7 +632,7 @@ information is missing, return the empty list (for channels) and possibly #~(begin (use-modules (guix build utils)) - ;; Clean out /tmp and /var/run. + ;; Clean out /tmp, /var/run, and /run. ;; ;; XXX This needs to happen before service activations, so it ;; has to be here, but this also implicitly assumes that /tmp @@ -663,12 +663,16 @@ information is missing, return the empty list (for channels) and possibly (setlocale LC_CTYPE "en_US.utf8") (delete-file-recursively "/tmp") (delete-file-recursively "/var/run") + (delete-file-recursively "/run") - (mkdir "/tmp") + ;; Note: The second argument to 'mkdir' is and'ed with umask, + ;; hence the 'chmod' calls. + (mkdir "/tmp" #o1777) (chmod "/tmp" #o1777) - (mkdir "/var/run") + (mkdir "/var/run" #o755) (chmod "/var/run" #o755) - (delete-file-recursively "/run/udev/watch.old")))))) + (mkdir "/run" #o755) + (chmod "/var/run" #o755)))))) (define cleanup-service-type ;; Service that cleans things up in /tmp and similar. @@ -893,23 +897,26 @@ FILES must be a list of name/file-like object pairs." (define (privileged-program->activation-gexp programs) "Return an activation gexp for privileged-program from PROGRAMS." - (let ((programs (map (lambda (program) - ;; FIXME This is really ugly, I didn't managed to use - ;; "inherit" - (let ((program-name (privileged-program-program program)) - (setuid? (privileged-program-setuid? program)) - (setgid? (privileged-program-setgid? program)) - (user (privileged-program-user program)) - (group (privileged-program-group program)) - (capabilities (privileged-program-capabilities program))) - #~(privileged-program - (setuid? #$setuid?) - (setgid? #$setgid?) - (user #$user) - (group #$group) - (capabilities #$capabilities) - (program #$program-name)))) - programs))) + (let ((programs + (map (lambda (program) + ;; FIXME This is really ugly, I didn't manage to use "inherit". + (let ((program-name (privileged-program-program program)) + (setuid? (privileged-program-setuid? program)) + (setgid? (privileged-program-setgid? program)) + (user (privileged-program-user program)) + (group (privileged-program-group program)) + (capabilities (privileged-program-capabilities program))) + (unless (or setuid? setgid? capabilities) + (warning + (G_ "so-called privileged-program ~s lacks any privilege~%") + program-name)) + #~(privileged-program (setuid? #$setuid?) + (setgid? #$setgid?) + (user #$user) + (group #$group) + (capabilities #$capabilities) + (program #$program-name)))) + programs))) (with-imported-modules (source-module-closure '((gnu system privilege))) #~(begin diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm index 0b325fddb1..4882883878 100644 --- a/gnu/services/admin.scm +++ b/gnu/services/admin.scm @@ -420,6 +420,8 @@ which lets you search for packages that provide a given file.") (default "30 01 * * 0")) (channels unattended-upgrade-configuration-channels (default #~%default-channels)) + (reboot? unattended-upgrade-configuration-reboot? + (default #f)) (services-to-restart unattended-upgrade-configuration-services-to-restart (default '(mcron))) (system-expiration unattended-upgrade-system-expiration @@ -443,6 +445,9 @@ which lets you search for packages that provide a given file.") (define services (unattended-upgrade-configuration-services-to-restart config)) + (define reboot? + (unattended-upgrade-configuration-reboot? config)) + (define expiration (unattended-upgrade-system-expiration config)) @@ -512,7 +517,13 @@ which lets you search for packages that provide a given file.") ;; XXX: If 'mcron' has been restarted, perhaps this isn't ;; reached. - (format #t "~a upgrade complete~%" (timestamp)))))) + (format #t "~a upgrade complete~%" (timestamp)) + + ;; Stopping the root shepherd service triggers a reboot. + (when #$reboot? + (format #t "~a rebooting system~%" (timestamp)) + (force-output) ;ensure the entire log is written. + (stop-service 'root)))))) (define upgrade (program-file "unattended-upgrade" code)) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index feca7ecce9..819d063673 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -496,7 +496,10 @@ upon boot." (stop #~(lambda args (define (known? mount-point) (member mount-point - (cons* "/proc" "/sys" '#$known-mount-points))) + ;; Count file systems mounted by the initrd to as + ;; "known" and not user-mounted file systems. + (cons* "/" "/dev" "/proc" "/sys" + '#$known-mount-points))) ;; Make sure we don't keep the user's mount points busy. (chdir "/") diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 2004c48452..76e04bf221 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> +;;; Copyright © 2024 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,7 +23,7 @@ (define-module (gnu services dbus) #:use-module (gnu services) #:use-module (gnu services shepherd) - #:use-module (gnu system setuid) + #:use-module (gnu system privilege) #:use-module (gnu system shadow) #:use-module (gnu system pam) #:use-module ((gnu packages glib) #:select (dbus)) @@ -166,13 +167,14 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in (home-directory "/run/dbus") (shell (file-append shadow "/sbin/nologin"))))) -(define dbus-setuid-programs - ;; Return a list of <setuid-program> for the program that we need. +(define dbus-privileged-programs + ;; Return a list of <privileged-program> for the program that we need. (match-lambda (($ <dbus-configuration> dbus services) - (list (setuid-program + (list (privileged-program (program (file-append - dbus "/libexec/dbus-daemon-launch-helper"))))))) + dbus "/libexec/dbus-daemon-launch-helper")) + (setuid? #t)))))) (define (dbus-activation config) "Return an activation gexp for D-Bus using @var{config}." @@ -255,8 +257,8 @@ includes the @code{etc/dbus-1/system.d} directories of each package listed in dbus-etc-files) (service-extension account-service-type (const %dbus-accounts)) - (service-extension setuid-program-service-type - dbus-setuid-programs))) + (service-extension privileged-program-service-type + dbus-privileged-programs))) ;; Extensions consist of lists of packages (representing D-Bus ;; services) that we just concatenate. @@ -387,7 +389,7 @@ tuples, are all set as environment variables when the bus daemon launches it." (($ <polkit-configuration> polkit packages) `(("polkit-1" ,(polkit-directory (cons polkit packages))))))) -(define polkit-setuid-programs +(define polkit-privileged-programs (match-lambda (($ <polkit-configuration> polkit) (map file-like->setuid-program @@ -407,8 +409,8 @@ tuples, are all set as environment variables when the bus daemon launches it." polkit-configuration-polkit)) (service-extension etc-service-type polkit-etc-files) - (service-extension setuid-program-service-type - polkit-setuid-programs))) + (service-extension privileged-program-service-type + polkit-privileged-programs))) ;; Extensions are lists of packages that provide polkit rules ;; or actions under share/polkit-1/{actions,rules.d}. diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index b8dc4a4912..274aeeef9b 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -317,7 +317,7 @@ is a list, it recursively searches it until it locates the last item of TREE." (let ((upower-package (compose list upower-configuration-upower))) (service-type (name 'upower) (description - "Run @command{upowerd}}, a system-wide monitor for power + "Run @command{upowerd}, a system-wide monitor for power consumption and battery levels, with the given configuration settings. It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME.") @@ -1736,8 +1736,7 @@ need to create it beforehand.")))) (match-record enlightenment-desktop-configuration <enlightenment-desktop-configuration> (enlightenment) - (map (lambda (program) (privileged-program (program program) - (setuid? #t))) + (map file-like->setuid-program (list (file-append enlightenment "/lib/enlightenment/utils/enlightenment_sys") (file-append enlightenment @@ -2052,11 +2051,8 @@ applications needing access to be root.") ;; Allow desktop users to also mount NTFS and NFS file systems ;; without root. - (simple-service 'mount-setuid-helpers setuid-program-service-type - (map (lambda (program) - (privileged-program - (program program) - (setuid? #t))) + (simple-service 'mount-setuid-helpers privileged-program-service-type + (map file-like->setuid-program (list (file-append nfs-utils "/sbin/mount.nfs") (file-append ntfs-3g "/sbin/mount.ntfs-3g")))) diff --git a/gnu/services/docker.scm b/gnu/services/docker.scm index 1963f3c4bd..3af0f79270 100644 --- a/gnu/services/docker.scm +++ b/gnu/services/docker.scm @@ -31,7 +31,7 @@ #:use-module (gnu services shepherd) #:use-module (gnu system) #:use-module (gnu system image) - #:use-module (gnu system setuid) + #:use-module (gnu system privilege) #:use-module (gnu system shadow) #:use-module (gnu packages admin) ;shadow #:use-module (gnu packages docker) @@ -268,11 +268,11 @@ bundles in Docker containers.") '("container" "final" "overlay" "session")) (chmod %mount-directory #o755)))) -(define (singularity-setuid-programs singularity) - "Return the setuid-root programs that SINGULARITY needs." +(define (singularity-privileged-programs singularity) + "Return the privileged programs that SINGULARITY needs." (define helpers ;; The helpers, under a meaningful name. - (computed-file "singularity-setuid-helpers" + (computed-file "singularity-privileged-helpers" #~(begin (mkdir #$output) (for-each (lambda (program) @@ -296,8 +296,8 @@ bundles in Docker containers.") (description "Install the Singularity application bundle tool.") (extensions - (list (service-extension setuid-program-service-type - singularity-setuid-programs) + (list (service-extension privileged-program-service-type + singularity-privileged-programs) (service-extension activation-service-type (const %singularity-activation)))) (default-value singularity))) diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm index 0182c21ea7..6c58b3a292 100644 --- a/gnu/services/guix.scm +++ b/gnu/services/guix.scm @@ -66,6 +66,7 @@ guix-build-coordinator-agent-configuration-max-1min-load-average guix-build-coordinator-agent-configuration-derivation-substitute-urls guix-build-coordinator-agent-configuration-non-derivation-substitute-urls + guix-build-coordinator-agent-configuration-extra-options guix-build-coordinator-agent-password-auth guix-build-coordinator-agent-password-auth? @@ -194,10 +195,10 @@ (default #f)) (max-parallel-builds guix-build-coordinator-agent-configuration-max-parallel-builds - (default 1)) + (default #f)) (max-parallel-uploads guix-build-coordinator-agent-configuration-max-parallel-uploads - (default 1)) + (default #f)) (max-allocated-builds guix-build-coordinator-agent-configuration-max-allocated-builds (default #f)) @@ -209,7 +210,10 @@ (default #f)) (non-derivation-substitute-urls guix-build-coordinator-agent-configuration-non-derivation-substitute-urls - (default #f))) + (default #f)) + (extra-options + guix-build-coordinator-agent-configuration-extra-options + (default '()))) (define-record-type* <guix-build-coordinator-agent-password-auth> guix-build-coordinator-agent-password-auth @@ -410,6 +414,7 @@ max-parallel-builds max-parallel-uploads max-allocated-builds max-1min-load-average derivation-substitute-urls non-derivation-substitute-urls + extra-options systems) (list (shepherd-service @@ -443,8 +448,10 @@ #~(#$(string-append "--name=" agent-name) #$(string-append "--dynamic-auth-token-file=" token-file)))) - #$(simple-format #f "--max-parallel-builds=~A" - max-parallel-builds) + #$@(if max-parallel-builds + #~(#$(simple-format #f "--max-parallel-builds=~A" + max-parallel-builds)) + #~()) #$@(if max-parallel-uploads #~(#$(simple-format #f "--max-parallel-uploads=~A" max-parallel-uploads)) @@ -467,6 +474,7 @@ "--non-derivation-substitute-urls=" (string-join non-derivation-substitute-urls " "))) #~()) + #$@extra-options #$@(map (lambda (system) (string-append "--system=" system)) (or systems '()))) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index e7d8922d76..eff1c9354b 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -38,9 +38,9 @@ #:use-module (gnu services) #:use-module (gnu services configuration) #:use-module (gnu services shepherd) - #:use-module (gnu system pam) - #:use-module (gnu system setuid) #:use-module (gnu system keyboard) + #:use-module (gnu system pam) + #:use-module (gnu system privilege) #:use-module (gnu services base) #:use-module (gnu services dbus) #:use-module (gnu packages base) @@ -847,11 +847,13 @@ reboot_cmd " shepherd "/sbin/reboot\n" allow-empty-password?)) '()))) -(define (screen-locker-setuid-programs config) +(define (screen-locker-privileged-programs config) (match-record config <screen-locker-configuration> (name program using-setuid?) (if using-setuid? - (list (file-like->setuid-program program)) + (list (privileged-program + (program program) + (setuid? #t))) '()))) (define screen-locker-service-type @@ -859,8 +861,8 @@ reboot_cmd " shepherd "/sbin/reboot\n" (extensions (list (service-extension pam-root-service-type screen-locker-pam-services) - (service-extension setuid-program-service-type - screen-locker-setuid-programs))) + (service-extension privileged-program-service-type + screen-locker-privileged-programs))) (description "Allow the given program to be used as a screen locker for the graphical server by making it setuid-root, so it can authenticate users, diff --git a/gnu/system/images/wsl2.scm b/gnu/system/images/wsl2.scm index d9aaa1a271..b772d7b635 100644 --- a/gnu/system/images/wsl2.scm +++ b/gnu/system/images/wsl2.scm @@ -86,7 +86,7 @@ USER." (setenv "WSLPATH" (getenv "PATH")) ;; /run is mounted with the nosuid flag by WSL. This prevents - ;; running the /run/setuid-programs. Remount it without this flag + ;; /run/privileged/bin from working. Remount it without this flag ;; as a workaround. See: ;; https://github.com/microsoft/WSL/issues/8716. (mount #f "/run" #f diff --git a/gnu/system/privilege.scm b/gnu/system/privilege.scm index d89d5d5d1c..fe6e60ad7c 100644 --- a/gnu/system/privilege.scm +++ b/gnu/system/privilege.scm @@ -26,7 +26,9 @@ privileged-program-setgid? privileged-program-user privileged-program-group - privileged-program-capabilities)) + privileged-program-capabilities + + file-like->setuid-program)) ;;; Commentary: ;;; @@ -56,3 +58,9 @@ ;; POSIX capabilities in cap_from_text(3) form (defaults to #f: none). (capabilities privileged-program-capabilities ;string or #f (default #f))) + +(define (file-like->setuid-program program) + "Simple wrapper to facilitate MAPping over a list of file-like objects and +make them setuid, a pattern just common enough to justify a special helper." + (privileged-program (program program) + (setuid? #t))) diff --git a/gnu/system/setuid.scm b/gnu/system/setuid.scm index 4dd0cc8962..097797ce8d 100644 --- a/gnu/system/setuid.scm +++ b/gnu/system/setuid.scm @@ -21,15 +21,14 @@ #:use-module (gnu system privilege) #:use-module (ice-9 match) #:use-module (srfi srfi-1) + #:re-export (file-like->setuid-program) #:export (setuid-program setuid-program? setuid-program-program setuid-program-setuid? setuid-program-setgid? setuid-program-user - setuid-program-group - - file-like->setuid-program)) + setuid-program-group)) ;;; Commentary: ;;; @@ -56,6 +55,3 @@ (define setuid-program-setgid? privileged-program-setgid?) (define setuid-program-user privileged-program-user) (define setuid-program-group privileged-program-group) - -(define (file-like->setuid-program program) - (setuid-program (program program))) diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm index 8f967387ad..e6add06aba 100644 --- a/gnu/system/uuid.scm +++ b/gnu/system/uuid.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org> -;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019–2020, 2024 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -169,7 +169,7 @@ ISO9660 UUID representation." ;;; -;;; FAT32/FAT16. +;;; exFAT/FAT32/FAT16. ;;; (define-syntax %fat-endianness @@ -258,7 +258,7 @@ ISO9660 UUID representation." (vhashq ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'f2fs 'jfs 'xfs 'luks => string->dce-uuid) - ('fat32 'fat16 'fat => string->fat-uuid) + ('exfat 'fat32 'fat16 'fat => string->fat-uuid) ('ntfs => string->ntfs-uuid) ('iso9660 => string->iso9660-uuid))) @@ -267,7 +267,7 @@ ISO9660 UUID representation." ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'f2fs 'jfs 'xfs 'luks => dce-uuid->string) ('iso9660 => iso9660-uuid->string) - ('fat32 'fat16 'fat => fat-uuid->string) + ('exfat 'fat32 'fat16 'fat => fat-uuid->string) ('ntfs => ntfs-uuid->string))) (define* (string->uuid str #:optional (type 'dce)) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 715b9036f9..e1a676ecd4 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -296,6 +296,10 @@ info --version") (operating-system-user-accounts os)))) (stat:perms (marionette-eval `(stat ,root-home) marionette)))) + (test-equal "permissions on /tmp" + #o1777 + (stat:perms (marionette-eval '(lstat "/tmp") marionette))) + (test-equal "ownership and permissions of /var/empty" '(0 0 #o555) (let ((st (marionette-eval `(stat "/var/empty") marionette))) |