mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-07-08 06:04:04 +02:00
Compare commits
122 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cf76e5a1b9 | |||
| f3db2a83b4 | |||
| 9db32e6573 | |||
| 51288fcc9e | |||
| 38e8f129c4 | |||
| c62591bde7 | |||
| 1add19280c | |||
| ba86d5f655 | |||
| 762ded35ef | |||
| ff65b44e7d | |||
| bbd0e658e0 | |||
| cd8c4bd53d | |||
| 010a60bb90 | |||
| adb2f5d47c | |||
| 9a0bd7eb7a | |||
| 79a08015a8 | |||
| 2a0f5a26a9 | |||
| d6ed5db055 | |||
| c285fb5618 | |||
| fd059abc5c | |||
| 338cc52cf6 | |||
| 935c71d6f0 | |||
| 13b5d22946 | |||
| bb9cd7d41d | |||
| 25ca142fa2 | |||
| ae23962fa6 | |||
| 03b7362f5b | |||
| bf66ac60c5 | |||
| 1d9252aefd | |||
| 47bf936933 | |||
| 1e44d5afe3 | |||
| 886e396dee | |||
| 56d2cc82bd | |||
| 12a01c020a | |||
| bce6cffcb3 | |||
| ce8a71d961 | |||
| 0892e93615 | |||
| c402d99037 | |||
| ff9242e63e | |||
| c379adbf87 | |||
| acad9ba45f | |||
| 3a9fb73409 | |||
| 0e0b120588 | |||
| 489866cf11 | |||
| 17d29fa361 | |||
| 0b75deab99 | |||
| 96a8e11e9a | |||
| 33640e95b8 | |||
| 1464041366 | |||
| de9e4539c9 | |||
| 73f31664a5 | |||
| d69e6c80ec | |||
| ab701f0e25 | |||
| 94c15aade7 | |||
| ed09edf243 | |||
| 2cb88181d8 | |||
| b0b32be4f9 | |||
| 202a80eb11 | |||
| a1f71db3e5 | |||
| fe4fcb8818 | |||
| c977f46f47 | |||
| c31598426c | |||
| 8d62aab47a | |||
| 5a49ba3d1b | |||
| 0269bf6ad4 | |||
| 847ca0505f | |||
| f52d6d59d6 | |||
| d1abb90c37 | |||
| 6cc008d218 | |||
| b1a84c94bf | |||
| 32b07a35fe | |||
| aa00c3d7fb | |||
| 54a3afc52b | |||
| 185b816ed9 | |||
| 98062e0c27 | |||
| 1d855b34f6 | |||
| 3b05b9d7ac | |||
| 3e1befe1d8 | |||
| c8f53f4b2e | |||
| eea9711889 | |||
| c1e2c71598 | |||
| f2f6164edb | |||
| 2c161c4c52 | |||
| a986f9176e | |||
| b68966fde5 | |||
| 104d503e0c | |||
| e4f9aaba79 | |||
| 0861076552 | |||
| ba3368fcc7 | |||
| 39acd8021b | |||
| 48dda27f41 | |||
| f3145603c8 | |||
| 4393dbcfd5 | |||
| a11eeeaf63 | |||
| 49613fb544 | |||
| 3612d6f692 | |||
| 4939bcf4bb | |||
| 2dfd0bd450 | |||
| dde0466984 | |||
| f8a599ff88 | |||
| 0ebdc92afc | |||
| 23356f4011 | |||
| ed63b0a031 | |||
| 7714e0bfb5 | |||
| acc8f821c8 | |||
| e1c5af77b2 | |||
| 2756e884dd | |||
| c1fd1e40f6 | |||
| c1897da250 | |||
| 6c666986e8 | |||
| 43833afaa1 | |||
| 0ce84291ef | |||
| e270413295 | |||
| 58c844a1ec | |||
| 47919d9f99 | |||
| c0d0ba76e5 | |||
| 9d0bb1ef26 | |||
| 2b94e23e7c | |||
| a3373301a8 | |||
| 05424e9633 | |||
| 4f73e5570d | |||
| 589f02e0c5 |
+15
-1
@@ -4922,6 +4922,17 @@ information.
|
||||
In addition, @command{guix pull} supports all the common build options
|
||||
(@pxref{Common Build Options}).
|
||||
|
||||
Every time the user invokes a Guix command, Guix detects if the current
|
||||
installation has exceeded a certain duration (7 days by default) and
|
||||
alerts the user to update with @command{guix pull} if necessary.
|
||||
The duration can be configured with the following environment variable:
|
||||
|
||||
@defvr {Environment Variable} GUIX_DISTRO_AGE_WARNING
|
||||
This environment variable, if set, should be a string representing a
|
||||
duration. If the current Guix installation exceeds the duration, Guix
|
||||
will raise a warning for outdated installation.
|
||||
@end defvr
|
||||
|
||||
@node Invoking guix time-machine
|
||||
@section Invoking @command{guix time-machine}
|
||||
|
||||
@@ -20705,6 +20716,9 @@ The syslog configuration file to use.
|
||||
@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more
|
||||
information on the configuration file syntax.
|
||||
|
||||
@item @code{pid-file} (default: @code{"/var/run/syslog.pid"})
|
||||
The pid file for @command{syslogd}.
|
||||
|
||||
@item @code{extra-options} (default: @code{'()})
|
||||
List of extra command-line options for @command{syslog}.
|
||||
|
||||
@@ -49210,7 +49224,7 @@ Return the default GRUB theme used by the operating system if no
|
||||
record.
|
||||
|
||||
It comes with a fancy background image displaying the Guix
|
||||
logos.
|
||||
logo.
|
||||
@end deffn
|
||||
|
||||
For example, to override the default resolution, you may use something
|
||||
|
||||
+11
-11
@@ -30,7 +30,7 @@ COOKBOOK_LANGUAGES = de es fr it ko pt_BR ru sk sv ta zh_CN
|
||||
|
||||
# Arg1: A list of languages codes.
|
||||
# Arg2: The file name stem.
|
||||
lang_to_texinfo = $(foreach lang,$(1),%D%/$(2).$(lang).texi)
|
||||
lang_to_texinfo = $(foreach lang,$(1),$(srcdir)/%D%/$(2).$(lang).texi)
|
||||
|
||||
# Automake does not understand GNU Make non-standard extensions,
|
||||
# unfortunately, so we cannot use the above patsubst-based function here.
|
||||
@@ -104,7 +104,7 @@ MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI) $(TRANSLATED_INFO)
|
||||
# reference is not translated, which means it references a section that does not
|
||||
# exist.
|
||||
define xref_command
|
||||
$(top_srcdir)/pre-inst-env $(GUILE) --no-auto-compile \
|
||||
$(top_builddir)/pre-inst-env $(GUILE) --no-auto-compile \
|
||||
"$(top_srcdir)/build-aux/convert-xref.scm" \
|
||||
$@.tmp $<
|
||||
endef
|
||||
@@ -116,21 +116,21 @@ dummy_pot = $(shell mktemp --suffix=.pot)
|
||||
$(srcdir)/%D%/guix.%.texi: po/doc/guix-manual.%.po $(srcdir)/%D%/contributing.%.texi guix/build/po.go
|
||||
-$(AM_V_PO4A)$(PO4A) --no-update \
|
||||
--variable localized="$@.tmp" \
|
||||
--variable master="%D%/guix.texi" \
|
||||
--variable master="$(srcdir)/%D%/guix.texi" \
|
||||
--variable po="$<" \
|
||||
--variable pot=$(dummy_pot) \
|
||||
po/doc/po4a.cfg
|
||||
$(srcdir)/po/doc/po4a.cfg
|
||||
-sed -i "s|guix\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp"
|
||||
-$(AM_V_POXREF)LC_ALL=en_US.UTF-8 $(xref_command)
|
||||
-mv "$@.tmp" "$@"
|
||||
|
||||
$(srcdir)/%D%/guix-cookbook.%.texi: po/doc/guix-cookbook.%.po guix/build/po.go
|
||||
-$(AM_V_PO4A)$(PO4A) --no-update \
|
||||
--variable localized="$@.tmp" \
|
||||
--variable master="%D%/guix-cookbook.texi" \
|
||||
--variable po="$<" \
|
||||
-$(AM_V_PO4A)$(PO4A) --no-update \
|
||||
--variable localized="$@.tmp" \
|
||||
--variable master="$(srcdir)/%D%/guix-cookbook.texi" \
|
||||
--variable po="$<" \
|
||||
--variable pot=$(dummy_pot) \
|
||||
po/doc/po4a.cfg
|
||||
$(srcdir)/po/doc/po4a.cfg
|
||||
-sed -i "s|guix-cookbook\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp"
|
||||
-$(AM_V_POXREF)LC_ALL=en_US.UTF-8 $(xref_command)
|
||||
-mv "$@.tmp" "$@"
|
||||
@@ -138,10 +138,10 @@ $(srcdir)/%D%/guix-cookbook.%.texi: po/doc/guix-cookbook.%.po guix/build/po.go
|
||||
$(srcdir)/%D%/contributing.%.texi: po/doc/guix-manual.%.po guix/build/po.go
|
||||
-$(AM_V_PO4A)$(PO4A) --no-update \
|
||||
--variable localized="$@.tmp" \
|
||||
--variable master="%D%/contributing.texi" \
|
||||
--variable master="$(srcdir)/%D%/contributing.texi" \
|
||||
--variable po="$<" \
|
||||
--variable pot=$(dummy_pot) \
|
||||
po/doc/po4a.cfg
|
||||
$(srcdir)/po/doc/po4a.cfg
|
||||
-$(AM_V_POXREF)LC_ALL=en_US.UTF-8 $(xref_command)
|
||||
-mv "$@.tmp" "$@"
|
||||
|
||||
|
||||
+9
-5
@@ -1588,8 +1588,11 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/gtk2-theme-paths.patch \
|
||||
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
|
||||
%D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
|
||||
%D%/packages/patches/gtk3-treeview-test-fix.patch \
|
||||
%D%/packages/patches/gtk-doc-respect-xml-catalog.patch \
|
||||
%D%/packages/patches/gtk-doc-mkhtml-test-fix.patch \
|
||||
%D%/packages/patches/gtk-doc-mkhtml-test-fix.patch \
|
||||
%D%/packages/patches/gtk4-demo-reproducible.patch \
|
||||
%D%/packages/patches/gtk4-needs-udmabuf.patch \
|
||||
%D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \
|
||||
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
|
||||
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \
|
||||
@@ -1913,6 +1916,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \
|
||||
%D%/packages/patches/mono-msbuild-15.7.179-fix-build.patch \
|
||||
%D%/packages/patches/mono-msbuild-15.7.179-fix-resources.patch \
|
||||
%D%/packages/patches/mozjs-xp-win.patch \
|
||||
%D%/packages/patches/libmemcached-build-with-gcc7.patch \
|
||||
%D%/packages/patches/libmhash-hmac-fix-uaf.patch \
|
||||
%D%/packages/patches/libmodbus-disable-networking-test.patch \
|
||||
@@ -1925,6 +1929,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/mediasdk-gcc-14.patch \
|
||||
%D%/packages/patches/memtest86+-build-reproducibly.patch \
|
||||
%D%/packages/patches/mercurial-hg-extension-path.patch \
|
||||
%D%/packages/patches/meson-keep-rpath-vicinity.patch \
|
||||
%D%/packages/patches/meson-gir-fallback-path.patch \
|
||||
%D%/packages/patches/mhash-keygen-test-segfault.patch \
|
||||
%D%/packages/patches/mia-fix-boost-headers.patch \
|
||||
%D%/packages/patches/mia-gcc11.patch \
|
||||
@@ -2287,8 +2293,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/qtbase-5-use-TZDIR.patch \
|
||||
%D%/packages/patches/qtscript-disable-tests.patch \
|
||||
%D%/packages/patches/quagga-reproducible-build.patch \
|
||||
%D%/packages/patches/quickjs-ng-64-bits-precision-on-i686.patch \
|
||||
%D%/packages/patches/quickjs-ng-fix-atomics.pause-on-32-bit.patch \
|
||||
%D%/packages/patches/quilt-grep-compat.patch \
|
||||
%D%/packages/patches/qmk-firmware-fix-hacker-dvorak.patch \
|
||||
%D%/packages/patches/qtwayland-update-wayland-xml.patch \
|
||||
@@ -2619,9 +2623,9 @@ dist_patch_DATA = \
|
||||
%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-abseil-cpp.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-audio-processing-gcc-14.patch \
|
||||
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
|
||||
%D%/packages/patches/wmctrl-64-fix.patch \
|
||||
%D%/packages/patches/wmfire-dont-inline-draw-fire.patch \
|
||||
|
||||
+10
-4
@@ -202,7 +202,7 @@ Have you run 'guix archive --generate-key'?")
|
||||
(build-locally? hetzner-configuration-build-locally? ; boolean
|
||||
(default #t))
|
||||
(delete? hetzner-configuration-delete? ; boolean
|
||||
(default #f))
|
||||
(default #t))
|
||||
(labels hetzner-configuration-labels ; list of strings
|
||||
(default '()))
|
||||
(location hetzner-configuration-location ; #f | string
|
||||
@@ -395,9 +395,7 @@ Available locations:~%~%~a~%~%For more details, see: ~a")
|
||||
(type ,root-fs-type))
|
||||
%base-file-systems))))
|
||||
(services
|
||||
;; guix 1.4.0 does not have dhcpcd-service-type,
|
||||
;; so we use dhcp-client-service-type here.
|
||||
(cons* (service dhcp-client-service-type)
|
||||
(cons* (service dhcpcd-service-type)
|
||||
(service openssh-service-type
|
||||
(openssh-configuration
|
||||
(openssh openssh-sans-x)
|
||||
@@ -592,6 +590,14 @@ mkdir -p /gnu/store
|
||||
mount --bind /mnt/tmp/gnu/store /gnu/store
|
||||
|
||||
wget -O /tmp/guix-install.sh https://guix.gnu.org/guix-install.sh
|
||||
|
||||
# Modify the install script to point the systemd unit of the /gnu/store
|
||||
# mountpoint to the same /mnt/tmp/gnu/store which was introduced above.
|
||||
store_fix=\"sed -i 's#Where=/gnu/store#Where=/mnt/tmp/gnu/store#'
|
||||
~~root/.config/guix/current/lib/systemd/system/gnu-store.mount\"
|
||||
sed -i \"s@install_unit gnu-store.mount\"\\
|
||||
\"@$(printf \"%q \" $store_fix)\\ninstall_unit gnu-store.mount@\" /tmp/guix-install.sh
|
||||
|
||||
chmod +x /tmp/guix-install.sh
|
||||
set +o pipefail # avoid hangup on 'yes' killing this script
|
||||
yes '' | /tmp/guix-install.sh
|
||||
|
||||
@@ -12132,7 +12132,7 @@ It can be used to calculate the trajectory of satellites.")
|
||||
gtksourceview-4
|
||||
healpix-cxx
|
||||
json-glib
|
||||
lcms-next
|
||||
lcms
|
||||
|
||||
;; XXX: It downloads script and data during start up, check if they
|
||||
;; may be presented as packages with wrapped environment variables
|
||||
|
||||
+119
-26
@@ -11,7 +11,7 @@
|
||||
;;; Copyright © 2016–2023 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2020, 2024 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2018 okapi <okapi@firemail.cc>
|
||||
;;; Copyright © 2018, 2020, 2022-2025 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2018, 2020, 2022-2026 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2018 Brett Gilio <brettg@gnu.org>
|
||||
;;; Copyright © 2018, 2019, 2022 Marius Bakke <marius@gnu.org>
|
||||
@@ -51,7 +51,7 @@
|
||||
;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me>
|
||||
;;; Copyright © 2024 Roman Scherer <roman@burningswell.com>
|
||||
;;; Copyright © 2024 Sughosha <sughosha@disroot.org>
|
||||
;;; Copyright © 2025 Junker <dk@junkeria.club>
|
||||
;;; Copyright © 2025, 2026 Junker <dk@junkeria.club>
|
||||
;;; Copyright © 2025 Sughosha <sughosha@disroot.org>
|
||||
;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com>
|
||||
;;; Copyright © 2025 Kjartan Oli Agustsson <kjartanoli@outlook.com>
|
||||
@@ -127,6 +127,7 @@
|
||||
#:use-module (gnu packages linphone)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages llvm)
|
||||
#:use-module (gnu packages logging)
|
||||
#:use-module (gnu packages machine-learning)
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages maths)
|
||||
@@ -194,6 +195,45 @@
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define-public adplug
|
||||
(package
|
||||
(name "adplug")
|
||||
(version "2.4")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/adplug/adplug")
|
||||
(commit (string-append "adplug-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0l31ya42g3q7ry2m0y5djgjb9ax8ciy8jn86252vdjkjswwqgscd"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list #:configure-flags
|
||||
#~(list "-DBUILD_SHARED_LIBS=ON")
|
||||
#:modules
|
||||
'((guix build cmake-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-26)) ;for cute
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'install 'install-headers
|
||||
(lambda _
|
||||
(for-each (cute install-file <>
|
||||
(string-append #$output "/include/adplug"))
|
||||
(find-files "../source/src" "\\.h$")))))))
|
||||
(propagated-inputs
|
||||
(list libbinio))
|
||||
(home-page "https://adplug.github.io/")
|
||||
(synopsis "AdLib sound player library")
|
||||
(description
|
||||
"AdPlug is a hardware independent AdLib sound player library, mainly
|
||||
written in C++. AdPlug plays sound data, originally created for the AdLib
|
||||
(OPL2/3) audio board, on top of an OPL2/3 emulator or by using the real
|
||||
hardware. No OPL2/3 chips are required for playback.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public opensles
|
||||
(package
|
||||
(name "opensles")
|
||||
@@ -363,7 +403,7 @@ displays a histogram of the roundtrip time jitter.")
|
||||
(define-public webrtc-audio-processing
|
||||
(package
|
||||
(name "webrtc-audio-processing")
|
||||
(version "1.3")
|
||||
(version "2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -371,30 +411,14 @@ displays a histogram of the roundtrip time jitter.")
|
||||
(string-append "http://freedesktop.org/software/pulseaudio/"
|
||||
name "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0xfvq5lxg612vfzk3zk6896zcb4cgrrb7fq76w9h40magz0jymcm"))))
|
||||
(base32 "0lrjzhshwj1rkh4fxh7sq2dkkfimlyjs2ha7s3ribsh2dnc6ps1m"))
|
||||
(patches (search-patches "webrtc-audio-processing-abseil-cpp.patch"
|
||||
"webrtc-audio-processing-gcc-14.patch"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list #:configure-flags (if (target-x86-32?)
|
||||
#~(list "-Dc_args=-DPFFFT_SIMD_DISABLE")
|
||||
#~'())
|
||||
#:phases
|
||||
(if (or (target-x86-32?) (target-powerpc?))
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'apply-patches
|
||||
(lambda _
|
||||
(define (patch file)
|
||||
(invoke "patch" "-p1" "--force" "-i" file))
|
||||
|
||||
;; https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/5
|
||||
;; TODO: Move to the 'patches' field of the origin on
|
||||
;; the next rebuild.
|
||||
(patch #$(local-file
|
||||
(search-patch
|
||||
"webrtc-audio-processing-byte-order-pointer-size.patch")))
|
||||
(patch #$(local-file
|
||||
(search-patch
|
||||
"webrtc-audio-processing-x86-no-sse.patch"))))))
|
||||
#~%standard-phases)))
|
||||
#~'())))
|
||||
(native-inputs (list pkg-config))
|
||||
(inputs (list abseil-cpp))
|
||||
(synopsis "WebRTC's Audio Processing Library")
|
||||
@@ -4465,6 +4489,33 @@ This includes device enumeration and initialization, file loading, and
|
||||
streaming.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public wp-notifyd
|
||||
(package
|
||||
(name "wp-notifyd")
|
||||
(version "1.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/LDAP/wp-notifyd")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1nkndz0li15maf0dc9x631p0dr8085wzz5358552wljv7chywrza"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list #:tests? #f)) ;there are no tests
|
||||
(inputs (list libnotify
|
||||
wireplumber-minimal
|
||||
pipewire
|
||||
spdlog))
|
||||
(native-inputs (list pkg-config))
|
||||
(home-page "https://github.com/LDAP/wp-notifyd")
|
||||
(synopsis "Notification daemon for Wireplumber")
|
||||
(description "@command{wp-notifyd} is a lightweight notification daemon for
|
||||
@dfn{WirePlumber} (the session and policy manager for PipeWire).")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public pa-notify
|
||||
(package
|
||||
(name "pa-notify")
|
||||
@@ -4869,6 +4920,42 @@ using Guix System.")
|
||||
;; GNU Library (not Lesser) General Public License.
|
||||
(license license:lgpl2.0+)))
|
||||
|
||||
(define-public hiir
|
||||
(let ((commit "4a9a1e67fa6f8ce7688e1c0c8a2b017cecd206a3")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "hiir")
|
||||
(version (git-version "0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/LostRobotMusic/hiir")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1wzlg0di768mzcik6fij4pd6dnpmbw8q236h478c057d10qfp44g"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-plan
|
||||
#~`(("." "/include/hiir"))))
|
||||
(home-page "https://github.com/LostRobotMusic/hiir")
|
||||
(synopsis "Header-only version of Laurent de Soras's HIIR 1.40 library")
|
||||
(description
|
||||
"This package provides a header-only version of the
|
||||
@uref{http://ldesoras.free.fr/prod.html#src_hiir, HIIR library by Laurent De
|
||||
Soras}, updated to version 1.40. HIIR is a C++ library for changing the
|
||||
sampling rate of a signal by a factor two, in both directions (upsampling and
|
||||
downsampling), obtaining two signals with a π/2 phase difference (Hilbert
|
||||
transform). It is made of a two-path polyphase IIR filter, implemented with
|
||||
FPU, 3DNow!, SSE, SSE2, AVX, AVX-512 and NEON instruction sets.
|
||||
|
||||
This package contains the same as the original library, except with the
|
||||
contents of one source file moved into a header file (and set as inline) to
|
||||
make the library header-only, and with the test folder removed.")
|
||||
(license license:wtfpl2))))
|
||||
|
||||
(define-public redumper
|
||||
(package
|
||||
(name "redumper")
|
||||
@@ -7265,6 +7352,7 @@ as is the case with audio plugins.")
|
||||
(find-files "bin")))))))))
|
||||
(inputs
|
||||
(list alsa-lib
|
||||
bash-minimal
|
||||
ffmpeg
|
||||
fluidsynth
|
||||
file
|
||||
@@ -7322,8 +7410,8 @@ default and preferred audio driver but also supports native drivers like ALSA.")
|
||||
|
||||
;;; This package variant tracks the latest in-development 2.6 release.
|
||||
(define-public carla-2.6
|
||||
(let ((commit "aa400535b31c67f4b6c1b28e6e20e4d4f82111a3")
|
||||
(revision "0"))
|
||||
(let ((commit "294a80145e39c0755ab9073d90fd8b9524fbfc84")
|
||||
(revision "1"))
|
||||
(package
|
||||
(inherit carla)
|
||||
(name "carla")
|
||||
@@ -7337,7 +7425,12 @@ default and preferred audio driver but also supports native drivers like ALSA.")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0cnj2sgr60f5h6wdfmihc214wf3n74686sipl3iyzmylqrcyhbjn")))))))
|
||||
(base32 "053yfwf9l9vqvq95c354by6nm8ym0wgkv3fr1434x5w9n1344z0z"))))
|
||||
(inputs
|
||||
(modify-inputs (package-inputs carla)
|
||||
(replace "python-pyqt" python-pyqt-6)
|
||||
(replace "qtbase" qtbase)
|
||||
(replace "qtwayland" qtwayland))))))
|
||||
|
||||
;; This source is a fork of vst3sdk with the documentation and VSTGUI
|
||||
;; submodules removed and a dummy `meson.build` file that just lists all
|
||||
|
||||
@@ -7651,78 +7651,6 @@ reads at a typical sensitivity of 90-99% relative to BLAST depending on the
|
||||
data and settings.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public discrover
|
||||
(package
|
||||
(name "discrover")
|
||||
(version "1.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/maaskola/discrover")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"173fwi2vb6a5kp406hm3jj6j7v4whww796f2qcygp4rpvamh307y"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; there are no tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'set-force-source-date
|
||||
;; for reproducible dates, texlive needs this to respect
|
||||
;; SOURCE_DATE_EPOCH
|
||||
(lambda _
|
||||
(setenv "FORCE_SOURCE_DATE" "1")))
|
||||
(add-before 'build 'use-writable-texmfvar
|
||||
;; Use writable TEXMFVAR to generate fonts.
|
||||
(lambda _
|
||||
(setenv "TEXMFVAR" "/tmp")))
|
||||
(add-after 'unpack 'fix-latex-errors
|
||||
(lambda _
|
||||
(with-fluids ((%default-port-encoding #f))
|
||||
(substitute* "doc/references.bib"
|
||||
(("\\{S\\}illanp[^,]+,")
|
||||
"{S}illanp{\\\"a}{\\\"a},")))
|
||||
;; XXX: I just can't get pdflatex to not complain about these
|
||||
;; characters. They end up in the manual via the generated
|
||||
;; discrover-cli-help.txt.
|
||||
(substitute* "src/hmm/cli.cpp"
|
||||
(("µ") "mu")
|
||||
(("η") "eta")
|
||||
(("≤") "<="))
|
||||
;; This seems to be a syntax error.
|
||||
(substitute* "doc/discrover-manual.tex"
|
||||
(("theverbbox\\[t\\]") "theverbbox"))))
|
||||
(add-after 'unpack 'add-missing-includes
|
||||
(lambda _
|
||||
(substitute* "src/executioninformation.hpp"
|
||||
(("#define EXECUTIONINFORMATION_HPP" line)
|
||||
(string-append line "\n#include <random>")))
|
||||
(substitute* "src/plasma/fasta.hpp"
|
||||
(("#define FASTA_HPP" line)
|
||||
(string-append line "\n#include <random>"))))))))
|
||||
(inputs
|
||||
(list boost cairo rmath-standalone))
|
||||
(native-inputs
|
||||
(list (texlive-local-tree
|
||||
(list texlive-doi
|
||||
texlive-etoolbox
|
||||
texlive-examplep
|
||||
texlive-forloop
|
||||
texlive-listofitems
|
||||
texlive-natbib
|
||||
texlive-pgf ;tikz
|
||||
texlive-readarray
|
||||
texlive-verbatimbox))
|
||||
imagemagick))
|
||||
(home-page "https://dorina.mdc-berlin.de/public/rajewsky/discrover/")
|
||||
(synopsis "Discover discriminative nucleotide sequence motifs")
|
||||
(description "Discrover is a motif discovery method to find binding sites
|
||||
of nucleic acid binding proteins.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public eddylab-squid
|
||||
(package
|
||||
(name "eddylab-squid")
|
||||
|
||||
@@ -427,7 +427,10 @@ files and generates build instructions for the Ninja build system.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13a9pj7d2mxgv5gbd78di4pb4w722vjis0vmk38m1vdm95v2f9yd"))))
|
||||
"13a9pj7d2mxgv5gbd78di4pb4w722vjis0vmk38m1vdm95v2f9yd"))
|
||||
(patches
|
||||
(search-patches "meson-gir-fallback-path.patch"
|
||||
"meson-keep-rpath-vicinity.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
@@ -1327,25 +1327,6 @@ for the @acronym{AWS,Amazon Web Services} SDK.")
|
||||
(home-page "https://github.com/awslabs/aws-c-sdkutils")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public pcl
|
||||
(package
|
||||
(name "pcl")
|
||||
(version "1.12")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.xmailserver.org/pcl-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"06ly65rq4iyj2p4704i215c8y4rgspwl8sxfaifmf4ahfr30bcz7"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.xmailserver.org/libpcl.html")
|
||||
(synopsis "Portable Coroutine Library")
|
||||
(description "The @acronym{PCL, Portable Coroutine Library} implements the
|
||||
low level functionality for coroutines.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public aws-c-http
|
||||
(package
|
||||
(name "aws-c-http")
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages)
|
||||
@@ -1000,18 +1001,17 @@ Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
|
||||
(define-public libudfread
|
||||
(package
|
||||
(name "libudfread")
|
||||
(version "1.1.2")
|
||||
(version "1.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://download.videolan.org/pub/videolan/libudfread/"
|
||||
name "-" version ".tar.bz2"))
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05c943ymw94nzjxf7v102916frqk7icgw4gb244wx23jn8cnz56m"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list automake autoconf libtool pkg-config))
|
||||
"03q5b1wm90vygx4rf4mzzrf0yhvhbvp72nyhv63pgz7v9jypqixv"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs (list pkg-config))
|
||||
(home-page "https://code.videolan.org/videolan/libudfread")
|
||||
(synopsis "C library to read UDF file systems")
|
||||
(description "@code{libudfread} is a C library for reading
|
||||
|
||||
@@ -134,6 +134,7 @@
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages tex)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages webkit)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
@@ -1672,6 +1673,38 @@ maintained anymore.")
|
||||
concurrent queue for C++11.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public ringbuffer
|
||||
(package
|
||||
(name "ringbuffer")
|
||||
(version "0.9.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/JohannesLorenz/ringbuffer")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1c57hj6zyvcjpcbwrq8c1hj5brk1bnh69ayd88ny1p0gx031sjpk"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list #:configure-flags
|
||||
#~(list "-DCMAKE_CXX_FLAGS=-Wno-error=array-bounds"
|
||||
(string-append "-DINSTALL_LIB_DIR=" #$output "/lib"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'install 'install-export-header
|
||||
(lambda _
|
||||
(install-file "src/lib/ringbuffer_export.h"
|
||||
(string-append #$output
|
||||
"/include/ringbuffer")))))))
|
||||
(home-page "https://github.com/JohannesLorenz/ringbuffer")
|
||||
(synopsis "Lock-free multi-reader ringbuffer")
|
||||
(description
|
||||
"@code{ringbuffer} is a library containing a ringbuffer. It is lock-free
|
||||
(using atomics only), and allows multiple readers, but only one writer.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public spscqueue
|
||||
(package
|
||||
(name "spscqueue")
|
||||
@@ -3668,6 +3701,39 @@ computing Fast Fourier transformations. It supports multidimensional arrays,
|
||||
different floating point sizes and complex transformations.")
|
||||
(license license:bsd-3))))
|
||||
|
||||
(define-public libbinio
|
||||
;; The latest tagged version does not support CMake build. This commit has
|
||||
;; builds with CMake and has updated CMake version support.
|
||||
(let ((commit "e88dad086265e179ab6aef7f479e19f3917c7a98")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "libbinio")
|
||||
(version (git-version "1.5" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/adplug/libbinio")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0rb33jl6gpxb88zymzl996m43b7r6wyw4lq0ib3626kna3baqnha"))))
|
||||
(native-inputs
|
||||
(list autoconf automake libtool texinfo))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list #:tests? #f ;no tests
|
||||
#:configure-flags
|
||||
#~(list "-DBUILD_SHARED_LIBS=ON")))
|
||||
(home-page "http://adplug.github.io/libbinio/")
|
||||
(synopsis "Binary I/O stream class library")
|
||||
(description
|
||||
"This binary I/O stream class library presents a platform-independent
|
||||
way to access binary data streams in C++. The library is hardware independent
|
||||
in the form that it transparently converts between the different forms of
|
||||
machine-internal binary data representation.")
|
||||
(license license:lgpl2.1+))))
|
||||
|
||||
(define-public priocpp
|
||||
;; Latest release is from 2022-08-14.
|
||||
(let ((commit "ea15402adcd0d9191dc29ca6f7e4dd0bff67b9b5")
|
||||
@@ -4494,6 +4560,47 @@ meta data function.")
|
||||
;; or the CECILL-C license:
|
||||
(license (list license:lgpl3 license:cecill-c))))
|
||||
|
||||
(define-public tcbrindle-span
|
||||
(let ((commit "836dc6a0efd9849cb194e88e4aa2387436bb079b")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "tcbrindle-span")
|
||||
(version (git-version "0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tcbrindle/span")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1v3x1mj4if8jrr7cmrcbhv8n8ygla0liqb0dic6g6ji7px2pr6jf"))
|
||||
(modules '((guix build utils)))
|
||||
;; Unbundle catch.
|
||||
(snippet
|
||||
'(with-directory-excursion "test"
|
||||
(delete-file "catch.hpp")
|
||||
(substitute* (find-files "." "\\.cpp$")
|
||||
(("\"catch\\.hpp\"") "<catch.hpp>"))))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs (list catch-framework))
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(mkdir-p (string-append #$output))
|
||||
(copy-recursively "../source/include"
|
||||
(string-append #$output "/include")))))))
|
||||
(home-page "https://github.com/tcbrindle/span")
|
||||
(synopsis "Implementation of C++20's @code{std::span} for older compilers")
|
||||
(description
|
||||
"This package provides a single-header implementation of C++20's
|
||||
@code{std::span}, conforming to the C++20 committee draft. It is compatible
|
||||
with C++11, but will use newer language features if they are available.")
|
||||
(license license:boost1.0))))
|
||||
|
||||
(define-public tsl-hopscotch-map
|
||||
(package
|
||||
(name "tsl-hopscotch-map")
|
||||
|
||||
@@ -9232,7 +9232,7 @@ similar rank-based tests for equal probability distributions due to Neuhauser
|
||||
(("^PKG_LIBS=.*")
|
||||
(string-append "PKG_LIBS="
|
||||
(assoc-ref inputs "libnode")
|
||||
"/lib/libnode.so.137\n")))
|
||||
"/lib/libnode.so.127\n")))
|
||||
(setenv "INCLUDE_DIR"
|
||||
(string-append
|
||||
(assoc-ref inputs "libnode")
|
||||
|
||||
@@ -266,14 +266,14 @@ tmpfs/ramfs filesystems.")
|
||||
(define-public parted
|
||||
(package
|
||||
(name "parted")
|
||||
(version "3.6")
|
||||
(version "3.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/parted/parted-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04p6b4rygrfd1jrskwrx3bn2icajg1mvbfhyc0c9l3ya7kixnhrv"))))
|
||||
"0yzga4cjq3yplqs47dl9714vwc3v3v8nxrj80rdc5wx4c5syb380"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -296,6 +296,7 @@ tmpfs/ramfs filesystems.")
|
||||
(,util-linux "lib")))
|
||||
(native-inputs
|
||||
(list gettext-minimal
|
||||
pkg-config
|
||||
|
||||
;; For the tests.
|
||||
e2fsprogs
|
||||
|
||||
+48
-41
@@ -1005,7 +1005,7 @@ e.g. emacs-geiser-guile for Guile.")
|
||||
(define-public emacs-gptel
|
||||
(package
|
||||
(name "emacs-gptel")
|
||||
(version "0.9.9.4")
|
||||
(version "0.9.9.5")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -1014,7 +1014,7 @@ e.g. emacs-geiser-guile for Guile.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ffh2mwy9znjd0v9mh065lv122xg4nlnkbxwjfrsaqn1j1q2xc0c"))))
|
||||
"1bf7xynmrm859471nxc56sv028i039qnqhhmkhzkhf76mwac6cx8"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -1025,8 +1025,7 @@ e.g. emacs-geiser-guile for Guile.")
|
||||
(lambda _
|
||||
(copy-recursively
|
||||
#$(this-package-native-input "emacs-gptel-test-files")
|
||||
"test")
|
||||
(invoke "chmod" "--recursive" "u+w" "test")))
|
||||
"test")))
|
||||
;; gptel-pkg.el produces an error during the check phase.
|
||||
(add-before 'check 'rename-pkg
|
||||
(lambda _ (rename-file "gptel-pkg.el" "gptel-pkg.el_")))
|
||||
@@ -1035,16 +1034,9 @@ e.g. emacs-geiser-guile for Guile.")
|
||||
(add-after 'unpack 'use-appropriate-curl
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; These two alternatives error on the substitution.
|
||||
;; (emacs-substitute-variables "gptel-openai.el"
|
||||
;; ("gptel-use-curl"
|
||||
;; (search-input-file inputs "/bin/curl")))
|
||||
;; (emacs-substitute-sexps "gptel-openai.el"
|
||||
;; ("(defvar gptel-use-curl"
|
||||
;; (search-input-file inputs "/bin/curl")))
|
||||
(substitute* "gptel-openai.el"
|
||||
(("defvar gptel-use-curl")
|
||||
(format #f "defvar gptel-use-curl \"~a\""
|
||||
(search-input-file inputs "/bin/curl")))))))))
|
||||
(emacs-substitute-variables "gptel-request.el"
|
||||
("gptel-use-curl"
|
||||
(search-input-file inputs "/bin/curl"))))))))
|
||||
(inputs (list curl))
|
||||
(propagated-inputs (list emacs-compat emacs-transient))
|
||||
(native-inputs
|
||||
@@ -1053,11 +1045,11 @@ e.g. emacs-geiser-guile for Guile.")
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/karthink/gptel-test")
|
||||
(commit "318c9dda9e6dbb3e61311cf4de23f124c4d2960a")))
|
||||
(commit "c62e2f78d843f3454e068eb7ec6bb8d6001b0649")))
|
||||
(file-name "emacs-gptel-test-files")
|
||||
(sha256
|
||||
(base32
|
||||
"1368qrxxrw5zd2i0gx55r7yvi5xjma1khs8p5f2w76m7c6ms83yg")))))
|
||||
"1xixi1fa2iwixi6f0wdva2pyisxb8myljwbx2v5nxd3v0i3fbgq9")))))
|
||||
(home-page "https://github.com/karthink/gptel")
|
||||
(synopsis "GPTel is a simple ChatGPT client for Emacs")
|
||||
(description
|
||||
@@ -11904,22 +11896,22 @@ not hang at all.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-elastic-modes
|
||||
(let ((commit "c577e8921a4d9bd77742729707152bc557fae3e2")
|
||||
(revision "2"))
|
||||
(let ((commit "13c2b94a994717bb1517af0c19b10de33b29a94b")
|
||||
(revision "3"))
|
||||
(package
|
||||
(name "emacs-elastic-modes")
|
||||
(version (git-version "1.0.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jyp/elastic-modes")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0r40g7zgz9072x74qbnv8lmql0gajsz2p8b8jckmgyniakmln69v"))))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jyp/elastic-modes")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1fb7hy65ax288zqc2y1qjmkja1ksdslvsjbz3jzw7cjcb4yvfkpc"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments (list #:tests? #false)) ;no tests
|
||||
(arguments (list #:tests? #f)) ;no tests
|
||||
(propagated-inputs (list emacs-dash))
|
||||
(home-page "https://github.com/jyp/elastic-modes")
|
||||
(synopsis "Text and code alignment for variable-width fonts")
|
||||
@@ -35200,21 +35192,36 @@ customisation options to control its behaviour.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-dired-launch
|
||||
(let ((commit "97eb002a2090518df86182e9f1db703850534fb7")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "emacs-dired-launch")
|
||||
(version (git-version "0.2" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://codeberg.org/thomp/dired-launch")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1rnjp0fb0rakaky7pa6vdpz8cpf2dg5k9zsvxl8h6lcc9b7qa61c"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f)) ; No tests
|
||||
(home-page "https://codeberg.org/thomp/dired-launch")
|
||||
(synopsis "Extra command to launch external programs")
|
||||
(description
|
||||
"This package provides a method to open entries in external programs from dired.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-dired-launch-superseded-version
|
||||
(package
|
||||
(name "emacs-dired-launch")
|
||||
(inherit emacs-dired-launch)
|
||||
(version "20240809.1910")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://melpa.org/packages/dired-launch-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zgs1hzy04pywpcgn5r8s7aah2bv1p5x5lmlcqg9yranxj8a9k6d"))))
|
||||
(build-system emacs-build-system)
|
||||
(synopsis "Extra command to launch external programs")
|
||||
(description "This package provides a method to open entries in external programs from dired.")
|
||||
(home-page "https://codeberg.org/thomp/dired-launch")
|
||||
(license license:gpl3+)))
|
||||
(properties (list (cons 'superseded emacs-dired-launch)))))
|
||||
|
||||
(define-public emacs-dired-rsync
|
||||
(package
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
;;; Copyright © 2017 Dave Love <fx@gnu.org>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019, 2023 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2019, 2023, 2026 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -226,15 +226,19 @@ testing InfiniBand networks.")
|
||||
|
||||
(string-append "--with-rdmacm="
|
||||
#$(this-package-input "rdma-core"))
|
||||
(string-append "--with-rocm="
|
||||
#$(this-package-input "rocr-runtime")))
|
||||
|
||||
#$@(if (this-package-input "rocr-runtime")
|
||||
#~((string-append "--with-rocm="
|
||||
#$(this-package-input
|
||||
"rocr-runtime")))
|
||||
#~()))
|
||||
|
||||
;; Be verbose so that compiler flags are displayed.
|
||||
#:make-flags #~'("V=1")))
|
||||
(native-inputs
|
||||
(list autoconf automake libtool pkg-config))
|
||||
(inputs
|
||||
(list numactl rdma-core rocr-runtime))
|
||||
(list numactl rdma-core))
|
||||
(synopsis "Optimized communication layer for message passing in HPC")
|
||||
(description
|
||||
"Unified Communication X (UCX) provides an optimized communication layer
|
||||
@@ -250,3 +254,13 @@ memory mechanisms for efficient intra-node communication.")
|
||||
;; and x86_64 as supported.
|
||||
(supported-systems '("x86_64-linux" "aarch64-linux" "powerpc64le-linux"
|
||||
"riscv64-linux"))))
|
||||
|
||||
;; Note: ROCm support is kept separate to avoid a significant increase in
|
||||
;; closure size: <https://codeberg.org/guix/guix/issues/7225>.
|
||||
(define-public ucx-rocm
|
||||
(package/inherit ucx
|
||||
(name "ucx-rocm")
|
||||
(inputs (modify-inputs inputs
|
||||
(append rocr-runtime)))
|
||||
(synopsis "Optimized communication layer for message passing in HPC (with
|
||||
ROCm support)")))
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
;;; Copyright © 2025 45mg <45mg.writes@gmail.com>
|
||||
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2026 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;; Copyright © 2026 Daniel Littlewood <dan@danielittlewood.xyz>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -1138,28 +1139,23 @@ transaction log.
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26))
|
||||
(let* ((jfsutils (assoc-ref %build-inputs "jfsutils"))
|
||||
(fsck "jfs_fsck")
|
||||
(out (assoc-ref %outputs "out"))
|
||||
(sbin (string-append out "/sbin")))
|
||||
(mkdir-p sbin)
|
||||
(with-directory-excursion sbin
|
||||
(install-file (string-append jfsutils "/sbin/" fsck)
|
||||
".")
|
||||
(remove-store-references fsck)
|
||||
(chmod fsck #o555))
|
||||
#t))))
|
||||
(list
|
||||
#:modules '((guix build utils))
|
||||
#:builder
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
(let* ((sbin (string-append #$output "/sbin"))
|
||||
(fsck (string-append sbin "/jfs_fsck")))
|
||||
(install-file (search-input-file %build-inputs "sbin/jfs_fsck")
|
||||
sbin)
|
||||
(remove-store-references fsck)
|
||||
(chmod fsck #o555)))))
|
||||
(inputs
|
||||
`(("jfsutils" ,jfsutils/static)))
|
||||
(list jfsutils/static))
|
||||
(home-page (package-home-page jfsutils))
|
||||
(synopsis "Statically-linked jfs_fsck command from jfsutils")
|
||||
(description "This package provides statically-linked jfs_fsck command taken
|
||||
(description
|
||||
"This package provides statically-linked jfs_fsck command taken
|
||||
from the jfsutils package. It is meant to be used in initrds.")
|
||||
(license (package-license jfsutils))))
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2020, 2021, 2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2021-2025 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2021-2026 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
|
||||
;;; Copyright © 2022 Eric Bavier <bavier@posteo.net>
|
||||
;;; Copyright © 2022 Felipe Balbi <balbi@kernel.org>
|
||||
@@ -1382,14 +1382,15 @@ Font Format (WOFF).")
|
||||
(hidden-package
|
||||
(package
|
||||
(name "fontconfig-minimal")
|
||||
(version "2.16.0")
|
||||
(version "2.17.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://www.freedesktop.org/software/"
|
||||
"fontconfig/release/fontconfig-" version ".tar.xz"))
|
||||
"https://gitlab.freedesktop.org/api/v4/projects/890"
|
||||
"/packages/generic/fontconfig/" version "/fontconfig-"
|
||||
version ".tar.xz"))
|
||||
(sha256 (base32
|
||||
"086jdsdxmc9ryr0n0dmgs0vfnkhkxxw5hsgpr888pfn9biaxqcva"))
|
||||
"0hd5dw15q0i7518w1zqjcvyhvmlcf3ycv6df0ny1zz7zyj9swp4z"))
|
||||
(patches (search-patches "fontconfig-cache-ignore-mtime.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
;; In Requires or Requires.private of fontconfig.pc.
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
;;; Copyright © 2025 wvlab <me@wvlab.xyz>
|
||||
;;; Copyright © 2025 jgart <jgart@dismail.de>
|
||||
;;; Copyright © 2026 Daniel Littlewood <dan@danielittlewood.xyz>
|
||||
;;; Copyright © 2026 Luis Guilherme Coelho <lgcoelho@disroot.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -793,16 +794,16 @@ the freedesktop.org XDG Base Directory specification.")
|
||||
(define-public elogind
|
||||
(package
|
||||
(name "elogind")
|
||||
(version "255.17")
|
||||
(version "257.14")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/elogind/elogind")
|
||||
(commit (string-append "v" version))))
|
||||
(url "https://github.com/elogind/elogind")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0cb6p559281dzh24is91v6d4v4kz45yhyizibi4sfql9nign865h"))))
|
||||
"16cbkkia2wmcjwqxgzl714igi9sgpcl4sdvag388vlh941136bs9"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
@@ -3301,6 +3302,7 @@ compatible with the well-known scripts of the same name.")
|
||||
(list gettext-minimal
|
||||
`(,glib "bin")
|
||||
gst-plugins-good ;for wavparse plugin
|
||||
(librsvg-for-system) ;SVG loader needed for one test
|
||||
pkg-config
|
||||
python
|
||||
python-dbusmock
|
||||
@@ -3475,6 +3477,45 @@ remote-desktop @code{xdg-desktop-portal} interfaces for wlroots based
|
||||
compositors.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public xdg-desktop-portal-termfilechooser
|
||||
(package
|
||||
(name "xdg-desktop-portal-termfilechooser")
|
||||
(version "1.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/hunkyburrito/xdg-desktop-portal-termfilechooser")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1wvmwl678fr5pxz7x248pm5v4jd3bycz8nqa2q87akys5b9d1xpd"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list #:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'install 'fix-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((sed (search-input-file inputs "/bin/sed")))
|
||||
(substitute* (find-files #$output "-wrapper\\.sh")
|
||||
((" sed") (string-append " " sed)))))))))
|
||||
(native-inputs
|
||||
(list cmake-minimal
|
||||
pkg-config
|
||||
scdoc))
|
||||
(inputs
|
||||
(list basu
|
||||
libinih
|
||||
sed))
|
||||
(home-page "https://github.com/hunkyburrito/xdg-desktop-portal-termfilechooser")
|
||||
(synopsis "@code{xdg-desktop-portal} backend for choosing files with your
|
||||
favorite terminal file chooser")
|
||||
(description
|
||||
"This package provides a backend implementation for xdg-desktop-portal that
|
||||
allows using your preferred terminal file manager as file chooser in other
|
||||
applications.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public poweralertd
|
||||
(package
|
||||
(name "poweralertd")
|
||||
|
||||
+88
-34
@@ -227,6 +227,7 @@
|
||||
#:use-module (gnu packages shells)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages squirrel)
|
||||
#:use-module (gnu packages stb)
|
||||
#:use-module (gnu packages swig)
|
||||
#:use-module (gnu packages tcl)
|
||||
#:use-module (gnu packages terminals)
|
||||
@@ -1234,11 +1235,11 @@ original rogue game found on 4.2BSD.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public sgt-puzzles
|
||||
(let ((commit "28032bd5a0d3dc409eb225b8bdb23fd0b18a28d7")
|
||||
(let ((commit "06e37f1e334d85c7c779f79ef9e484ff2f708269")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "sgt-puzzles")
|
||||
(version (git-version "20251120" revision commit))
|
||||
(version (git-version "20260308" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -1247,7 +1248,7 @@ original rogue game found on 4.2BSD.")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0533fzzagmi7g7sw1fdgpzy6gjpif77gxf3avz1qnjsma5gq7f2l"))))
|
||||
(base32 "141d57s1va2ng7nxjzdgmsqh5mdb0mpy3yiqaj4rplya8xlhm34h"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -5348,36 +5349,78 @@ also available.")
|
||||
(sha256
|
||||
(base32 "05aj09rm50xb6910zx6imarj8k728x9bpvpa7ydwgb4sj1nypil8"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(begin
|
||||
(with-directory-excursion "thirdparty"
|
||||
(delete-file-recursively "glm")
|
||||
(substitute* "CMakeLists.txt"
|
||||
(("add_subdirectory\\(glm\\)")
|
||||
"find_package(glm REQUIRED)")))
|
||||
(with-directory-excursion "src"
|
||||
(substitute* "CMakeLists.txt"
|
||||
(("glm::glm")
|
||||
"glm")))
|
||||
;; Rename the icon to match with the executable file.
|
||||
(rename-file "srb2.png" "ringracers.png")))))
|
||||
(snippet
|
||||
'(begin
|
||||
(with-directory-excursion "thirdparty"
|
||||
;; Delete third party ibraries, except these libraries:
|
||||
;; glad: header file is not available in the system glad package.
|
||||
;; imgui: configured with "srb2_imconfig.h".
|
||||
;; libwebm: Not available in Guix.
|
||||
;; renamenoise: Not available in Guix.
|
||||
;; tracy: header files are not available in the system tracy
|
||||
;; package.
|
||||
(for-each delete-file-recursively
|
||||
'("discord-rpc"
|
||||
"glm"
|
||||
"nlohmann-json"
|
||||
"overlay-ports/libyuv"
|
||||
"tcbrindle_span"
|
||||
"vma"
|
||||
"volk"
|
||||
"vulkan-headers"
|
||||
"xmp-lite"))
|
||||
;; Unbundle stb.
|
||||
(with-directory-excursion "stb"
|
||||
(for-each delete-file
|
||||
'("include/stb_rect_pack.h"
|
||||
"stb_vorbis.c"))
|
||||
(substitute* "stb_rect_pack.c"
|
||||
(("\"include\\/stb_rect_pack\\.h\"") "<stb_rect_pack.h>"))
|
||||
(substitute* "CMakeLists.txt"
|
||||
(("include\\/stb_rect_pack\\.h ") "")))
|
||||
;; Find third party libraries from the system and do not add the
|
||||
;; deleted directories.
|
||||
(substitute* "CMakeLists.txt"
|
||||
(("add_subdirectory\\((glm|discord-rpc|xmp-lite|fmt|volk)\\)"
|
||||
_ keep)
|
||||
(string-append "find_package(" keep " REQUIRED)"))
|
||||
(("xmp-lite") "libxmp")
|
||||
((".*nlohmann-json.*") "")
|
||||
((".*tcbrindle_span.*") "")
|
||||
((".*vulkan-headers.*") "")
|
||||
((".*vma.*") "")))
|
||||
(with-directory-excursion "src"
|
||||
;; Link the system libraries instead of the unbundled ones.
|
||||
(substitute* "CMakeLists.txt"
|
||||
((".*tcbrindle::span.*") "")
|
||||
(("glm::glm") "glm")
|
||||
(("xmp-lite::xmp-lite") "xmp")
|
||||
(("fmt::fmt-header-only") "fmt")
|
||||
((".*nlohmann_json::nlohmann_json.*") "")))
|
||||
;; Rename the icon to match with the executable file.
|
||||
(rename-file "srb2.png" "ringracers.png")))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ;There are no tests.
|
||||
#:configure-flags
|
||||
#~(list "-DCMAKE_C_FLAGS_RELWITHDEBINFO='-O3 -g -DNDEBUG'"
|
||||
#~(list "-DSRB2_CONFIG_ENABLE_DISCORDRPC=OFF"
|
||||
"-DCMAKE_C_FLAGS_RELWITHDEBINFO='-O3 -g -DNDEBUG'"
|
||||
"-DCMAKE_CXX_FLAGS_RELWITHDEBINFO='-O3 -g -DNDEBUG'")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'copy-stb_vorbis.c
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(install-file (search-input-file inputs "/stb_vorbis.c")
|
||||
"thirdparty/stb")))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(install-file "bin/ringracers" (string-append #$output "/bin"))
|
||||
(install-file "../source/ringracers.png"
|
||||
(string-append #$output "/share/pixmaps"))))
|
||||
(add-after 'install 'wrap-program
|
||||
;; Install executable to $out/bin.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(wrap-program "bin/ringracers"
|
||||
(wrap-program (string-append #$output "/bin/ringracers")
|
||||
`("RINGRACERSWADDIR" =
|
||||
(,(assoc-ref inputs "ring-racers-data"))))))
|
||||
(add-after 'wrap-program 'create-desktop-entry
|
||||
@@ -5393,26 +5436,37 @@ also available.")
|
||||
#:exec (string-append #$output "/bin/ringracers")
|
||||
#:startup-notify #f
|
||||
#:categories '("Application" "Game"))))))))
|
||||
(native-inputs (list pkg-config))
|
||||
(inputs (list glm
|
||||
(native-inputs
|
||||
(list pkg-config
|
||||
(package-source stb)))
|
||||
(inputs (list bash-minimal
|
||||
curl
|
||||
fmt
|
||||
glm
|
||||
libogg
|
||||
libpng
|
||||
libvorbis
|
||||
libvpx
|
||||
libxmp
|
||||
libyuv
|
||||
nlohmann-json
|
||||
opus
|
||||
ring-racers-data
|
||||
sdl2
|
||||
zlib
|
||||
curl))
|
||||
(home-page "https://kartkrew.org")
|
||||
stb-rect-pack
|
||||
tcbrindle-span
|
||||
vulkan-headers
|
||||
vulkan-memory-allocator
|
||||
vulkan-volk
|
||||
zlib))
|
||||
(home-page "https://www.kartkrew.org/")
|
||||
(synopsis "Technical kart racing game")
|
||||
(description
|
||||
"Dr. Robotnik's Ring Racers is a kart racing game drawing inspiration from
|
||||
``anti-gravity'' racers, fighting games, and traditional-style kart racing.
|
||||
Ring Racers is designed with an emphasis on player agency in the face of highly
|
||||
technical game-play challenges in both single-player and online multiplayer
|
||||
modes.")
|
||||
"Dr.@: Robotnik's Ring Racers is a kart racing game drawing inspiration
|
||||
from \"anti-gravity\" racers, fighting games, and traditional-style kart
|
||||
racing. Ring Racers is designed with an emphasis on player agency in the face
|
||||
of highly technical game-play challenges in both single-player and online
|
||||
multiplayer modes.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public unknown-horizons
|
||||
@@ -5743,14 +5797,14 @@ world}, @uref{http://evolonline.org, Evol Online} and
|
||||
(define-public openttd-engine
|
||||
(package
|
||||
(name "openttd-engine")
|
||||
(version "15.2")
|
||||
(version "15.3")
|
||||
(source
|
||||
(origin (method url-fetch)
|
||||
(uri (string-append "https://cdn.openttd.org/openttd-releases/"
|
||||
version "/openttd-" version "-source.tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xpzschcf562giqh3p8jj9gbi8chqrikdwgqqipabyn0nwbvd6nj"))))
|
||||
"1rrvjxsr2dp9zr6b35ifiw41c0dwqqcaq90r0x18misrgpm1x8jy"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
(list allegro
|
||||
@@ -5984,7 +6038,7 @@ Transport Tycoon Deluxe.")
|
||||
(package
|
||||
(inherit openttd)
|
||||
(name "openttd-jgrpp")
|
||||
(version "0.71.2")
|
||||
(version "0.72.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -5993,7 +6047,7 @@ Transport Tycoon Deluxe.")
|
||||
(commit (string-append "jgrpp-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1gb5gickmf1d1wkzqny5ryapvw32a2g94f77iq0102xhyyw8g8s0"))))
|
||||
(base32 "0xbnnx03y8vhbgi6s7hsxhiqhsy6rhj7fypq6dfqh0z74m5bldkf"))))
|
||||
(inputs (modify-inputs inputs
|
||||
(append zstd harfbuzz)))
|
||||
(arguments
|
||||
@@ -10171,7 +10225,7 @@ their own levels.")
|
||||
(define-public libmanette
|
||||
(package
|
||||
(name "libmanette")
|
||||
(version "0.2.12")
|
||||
(version "0.2.13")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/libmanette/"
|
||||
@@ -10179,7 +10233,7 @@ their own levels.")
|
||||
"libmanette-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1n513s8ksjbrwqq7k46f3550avx11gly3a85shsdrwc0f4k4kcs8"))))
|
||||
"1bnqfxd9b5vff9256f8vxd404fkvbvc5gxva6qcjj2fyw3yw4z18"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs
|
||||
(list `(,glib "bin") ; for glib-compile-resources
|
||||
|
||||
@@ -50,15 +50,15 @@
|
||||
(define-public lcms
|
||||
(package
|
||||
(name "lcms")
|
||||
(version "2.13.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/lcms/lcms/"
|
||||
(version-major+minor version)
|
||||
"/lcms2-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"121v414bg2zk0fcwx0kigr2l6nxl88nmblfn3gq5lz5jwybffwyl"))))
|
||||
(version "2.16.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/lcms/lcms/"
|
||||
(version-major+minor version)
|
||||
"/lcms2-" (version-major+minor version) ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0lasskcj7k0sp0z7cpnwwisp826j51i1l7v322hcxd5rv15d6wyq"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--disable-static")))
|
||||
@@ -73,19 +73,8 @@ Consortium standard (ICC), approved as ISO 15076-1.")
|
||||
(home-page "https://www.littlecms.com/")
|
||||
(properties '((cpe-name . "little_cms_color_engine")))))
|
||||
|
||||
(define-public lcms-next
|
||||
(package
|
||||
(inherit lcms)
|
||||
(name "lcms-next")
|
||||
(version "2.16.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/lcms/lcms/"
|
||||
(version-major+minor version)
|
||||
"/lcms2-" (version-major+minor version) ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0lasskcj7k0sp0z7cpnwwisp826j51i1l7v322hcxd5rv15d6wyq"))))))
|
||||
;; Can be removed after 2027/05/01.
|
||||
(define-deprecated-package lcms-next lcms)
|
||||
|
||||
(define-public libpaper
|
||||
(package
|
||||
|
||||
@@ -994,7 +994,7 @@ useful for C++.")
|
||||
(define-public python-pygobject
|
||||
(package
|
||||
(name "python-pygobject")
|
||||
(version "3.54.3")
|
||||
(version "3.54.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -1003,7 +1003,7 @@ useful for C++.")
|
||||
"/pygobject-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rxsj85xl73a14vz7s30sy8lx9sswd2j2hgj3i4mcz8g989hknm8"))))
|
||||
"11dm5yi80v143dn21bayqxb53w67hk1lishmrw35c97m91inyrdn"))))
|
||||
(build-system meson-build-system)
|
||||
;; The tests require mutter, which would introduce a circular dependency.
|
||||
(arguments (list #:tests? #f))
|
||||
|
||||
@@ -682,7 +682,7 @@ and a high score table.")
|
||||
(define-public komikku
|
||||
(package
|
||||
(name "komikku")
|
||||
(version "50.1.0")
|
||||
(version "50.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -692,7 +692,7 @@ and a high score table.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0q858zvpqy32nb2lxdfy1k6fgal46kp634534fg983192fyk1pqp"))))
|
||||
"0hm1infvdsms193g2yp7qw7lrsxjsx5zziib8hgch34y6dbhfhf1"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -780,7 +780,7 @@ developed with the aim of being used with the Librem 5 phone.")
|
||||
(define-public komikku-servers
|
||||
(package
|
||||
(name "komikku-servers")
|
||||
(version "50.1.0")
|
||||
(version "50.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -790,7 +790,7 @@ developed with the aim of being used with the Librem 5 phone.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0q858zvpqy32nb2lxdfy1k6fgal46kp634534fg983192fyk1pqp"))))
|
||||
"0hm1infvdsms193g2yp7qw7lrsxjsx5zziib8hgch34y6dbhfhf1"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
+227
-164
@@ -215,6 +215,7 @@
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages ruby-xyz)
|
||||
#:use-module (gnu packages rust)
|
||||
#:use-module (gnu packages rust-apps)
|
||||
#:use-module (gnu packages samba)
|
||||
#:use-module (gnu packages scanner)
|
||||
#:use-module (gnu packages sdl)
|
||||
@@ -2084,7 +2085,7 @@ offline sources, providing a centralized place for managing your contacts.")
|
||||
(define-public gnome-desktop
|
||||
(package
|
||||
(name "gnome-desktop")
|
||||
(version "44.4")
|
||||
(version "44.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -2093,11 +2094,16 @@ offline sources, providing a centralized place for managing your contacts.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1129nh32ga5vv869fwby3n2lvj2chd9wys8j1jdnisr8lg3bk30x"))))
|
||||
"0br33ma7l45nr8yp9bcjqgy9zrj57yy2fnkc0b0yh0rsdrd9kq10"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-problematic-tests
|
||||
(lambda _
|
||||
;; The languages test fails due to Guix defaulting to C.UTF-8.
|
||||
(substitute* "tests/meson.build"
|
||||
((".*'languages':.*") ""))))
|
||||
(add-before 'configure 'patch-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "libgnome-desktop/gnome-languages.c"
|
||||
@@ -2687,7 +2693,7 @@ and single page document formats like PDF and DejaVu.")
|
||||
(define-public gsettings-desktop-schemas
|
||||
(package
|
||||
(name "gsettings-desktop-schemas")
|
||||
(version "48.0")
|
||||
(version "49.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -2696,7 +2702,7 @@ and single page document formats like PDF and DejaVu.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1lqv5mn7r1c8nxm6dfxgvk56r2sqfgafkj5jm1jzh65z2dc1b3z6"))))
|
||||
"0qqfxml3kqg87ly5w8rhqalin6qv20jcn2gqkdmhga75sn1pyykp"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
@@ -2874,7 +2880,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
|
||||
(define-public adwaita-icon-theme
|
||||
(package
|
||||
(name "adwaita-icon-theme")
|
||||
(version "48.1")
|
||||
(version "49.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@@ -2882,7 +2888,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04kfi8qpvghhmj83p03k509pnsp8ywlrii1qm0xv056dxf39pznb"))))
|
||||
"0p3mj6bl8wp1cri2qdszqrqqs47irh7qvajr5yaaly5js5hn85k5"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list #:phases
|
||||
@@ -3221,6 +3227,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:glib-or-gtk? #t
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'skip-gtk-update-icon-cache
|
||||
@@ -3228,17 +3235,13 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
|
||||
(lambda _
|
||||
(substitute* "meson_post_install.py"
|
||||
(("gtk-update-icon-cache") "true"))))
|
||||
|
||||
#$@(if (this-package-input "gjs")
|
||||
'()
|
||||
'((add-after 'unpack 'skip-gjs-test
|
||||
(lambda _
|
||||
;; When the optional dependency on GJS is missing, skip
|
||||
;; the GJS plugin tests.
|
||||
(substitute* "tests/modules.c"
|
||||
(("g_test_add.*JavaScript.*" all)
|
||||
(string-append "// " all "\n")))
|
||||
(delete-file "tests/catalogs/gjsplugin.xml")))))
|
||||
(add-after 'unpack 'skip-modules-test
|
||||
;; This test fails with 'GLib-GObject-FATAL-CRITICAL: cannot
|
||||
;; register existing type 'GIRepository' since the GNOME 49
|
||||
;; upgrades.
|
||||
(lambda _
|
||||
(substitute* "tests/meson.build"
|
||||
((".*'modules', .*") ""))))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
(setenv "HOME" "/tmp")
|
||||
@@ -3494,7 +3497,7 @@ XML/CSS rendering engine.")
|
||||
(define-public libgsf
|
||||
(package
|
||||
(name "libgsf")
|
||||
(version "1.14.54")
|
||||
(version "1.14.55")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@@ -3502,7 +3505,7 @@ XML/CSS rendering engine.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"08vny43clswk95djch50z17hdnns2p8qc93if6qcy4r598k6k26i"))))
|
||||
"0c91l0l3camxpanpgp634nd68vz3v0jbk9bxs5dfmlsvl6xhmmkl"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(outputs '("out" "bin" "doc"))
|
||||
(arguments
|
||||
@@ -3550,7 +3553,7 @@ for dealing with different structured file formats.")
|
||||
(define-public librsvg
|
||||
(package
|
||||
(name "librsvg")
|
||||
(version "2.58.5")
|
||||
(version "2.61.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/librsvg/"
|
||||
@@ -3558,45 +3561,31 @@ for dealing with different structured file formats.")
|
||||
"librsvg-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ym2yg94sc7ralh1kwqqrhz3wcc51079z90mbx0qrls7wfh36hi2"))))
|
||||
(build-system gnu-build-system)
|
||||
"036afbhd2h4brbd491kmgig0ib1df3s7j9bx8349b3zjs4lfm87w"))))
|
||||
(build-system meson-build-system)
|
||||
(outputs '("out" "doc" "debug"))
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags
|
||||
#~(list "--disable-static"
|
||||
#$@(if (%current-target-system)
|
||||
#~(;; g-ir-scanner can't import its modules
|
||||
#~(list #$@(if (%current-target-system)
|
||||
#~( ;; g-ir-scanner can't import its modules
|
||||
;; and vala currently can't be cross-compiled.
|
||||
"--enable-introspection=no"
|
||||
"--enable-vala=no"
|
||||
;; These two are necessary for cross-compiling.
|
||||
(string-append
|
||||
"--build=" #$(nix-system->gnu-triplet
|
||||
(%current-system)))
|
||||
(string-append
|
||||
"--host=" #$(%current-target-system))
|
||||
"-Dintrospection=false"
|
||||
"-Dvala=false"
|
||||
;; This is needed when cross-compiling for some
|
||||
;; architectures as autoconf and rust disagree about
|
||||
;; the target triplet.
|
||||
(string-append "RUST_TARGET="
|
||||
(string-append "-Dtriplet="
|
||||
#$(platform-rust-target
|
||||
(lookup-platform-by-target
|
||||
(%current-target-system)))))
|
||||
#~("--enable-vala")))
|
||||
#:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target))
|
||||
(string-append "PKG_CONFIG=" #$(pkg-config-for-target))
|
||||
#$@(if (%current-target-system)
|
||||
#~((string-append "RUST_TARGET="
|
||||
#$(platform-rust-target
|
||||
(lookup-platform-by-target
|
||||
(%current-target-system)))))
|
||||
#~()))
|
||||
#:imported-modules %cargo-build-system-modules
|
||||
#~())
|
||||
"-Dpixbuf-loader=enabled") ;disabled since 2.61.2
|
||||
#:imported-modules (append %cargo-build-system-modules
|
||||
%meson-build-system-modules)
|
||||
#:modules
|
||||
'(((guix build cargo-build-system) #:prefix cargo:)
|
||||
(guix build gnu-build-system)
|
||||
(guix build meson-build-system)
|
||||
(guix build utils))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
@@ -3613,12 +3602,19 @@ for dealing with different structured file formats.")
|
||||
(lambda _
|
||||
;; Something about the build environment resists building
|
||||
;; successfully with the '--locked' flag.
|
||||
(substitute* '("Makefile.am" "Makefile.in")
|
||||
(("--locked") ""))))
|
||||
(add-after 'unpack 'loosen-test-boundaries
|
||||
(substitute* "meson/cargo_wrapper.py"
|
||||
(("\"--locked\",?") ""))
|
||||
;; This is needed so Cargo embeds the correct RUNPATH
|
||||
;; information to the binaries it produces,
|
||||
;; e.g. libpixbufloader_svg.so.
|
||||
(setenv "RUSTFLAGS"
|
||||
(string-append "-C link-arg=-Wl,-rpath,"
|
||||
#$output "/lib"))))
|
||||
(add-after 'unpack 'prepare-for-tests
|
||||
(lambda _
|
||||
(setenv "HOME" "/tmp") ;placate fontconfig errors
|
||||
;; Increase reftest tolerance a bit to account for different
|
||||
;; harfbuzz, pango, etc.
|
||||
;; libraries like pango, etc.
|
||||
(setenv "RSVG_TEST_TOLERANCE" "20")
|
||||
;; These tests fail even after loosening the tolerance.
|
||||
(substitute* "rsvg/tests/reference.rs"
|
||||
@@ -3626,19 +3622,16 @@ for dealing with different structured file formats.")
|
||||
((".*rtl_tspan_svg.*") ""))))
|
||||
(add-before 'configure 'pre-configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute* "gdk-pixbuf-loader/Makefile.in"
|
||||
(substitute* "gdk-pixbuf-loader/meson.build"
|
||||
;; By default the gdk-pixbuf loader is installed under
|
||||
;; gdk-pixbuf's prefix. Work around that.
|
||||
(("gdk_pixbuf_moduledir = .*$")
|
||||
(string-append "gdk_pixbuf_moduledir = "
|
||||
"$(prefix)/"
|
||||
#$(dirname %gdk-pixbuf-loaders-cache-file) "/"
|
||||
"loaders\n")))
|
||||
(substitute* "configure"
|
||||
(("gdk_pixbuf_cache_file=.*")
|
||||
(string-append "gdk_pixbuf_cache_file="
|
||||
#$output "/"
|
||||
#$%gdk-pixbuf-loaders-cache-file "\n")))))
|
||||
(("pixbuf_dep.get_variable.*'gdk_pixbuf_moduledir'.*),")
|
||||
(format #f "get_option('prefix') / '~a',"
|
||||
#$%gdk-pixbuf-loaders-directory))
|
||||
(("pixbuf_dep.get_variable.*'gdk_pixbuf_query_loaders'.*),")
|
||||
(format #f "'~a'," (which "gdk-pixbuf-query-loaders")))
|
||||
(("pixbuf_dep.get_variable.*'gdk_pixbuf_cache_file'.*)")
|
||||
(format #f "prefix / '~a'" #$%gdk-pixbuf-loaders-cache-file)))))
|
||||
(add-after 'unpack 'prepare-cargo-build-system
|
||||
(lambda args
|
||||
(for-each
|
||||
@@ -3650,23 +3643,30 @@ for dealing with different structured file formats.")
|
||||
'(unpack-rust-crates
|
||||
configure
|
||||
check-for-pregenerated-files
|
||||
patch-cargo-checksums)))))))
|
||||
patch-cargo-checksums))))
|
||||
(add-after 'install 'sanitize-pkg-config-files
|
||||
(lambda _
|
||||
(substitute* (find-files #$output "\\.pc$")
|
||||
(("^Requires.private:.*") "")))))))
|
||||
(native-inputs
|
||||
(append
|
||||
(list gdk-pixbuf
|
||||
gi-docgen
|
||||
`(,glib "bin")
|
||||
gobject-introspection
|
||||
pkg-config
|
||||
python
|
||||
python-docutils ;for rst2man
|
||||
rust
|
||||
`(,rust "cargo")
|
||||
rust-cargo-c
|
||||
vala)
|
||||
(or (and=> (%current-target-system)
|
||||
(compose list make-rust-sysroot))
|
||||
'())))
|
||||
(inputs
|
||||
(cons* freetype
|
||||
(cons* dav1d
|
||||
freetype
|
||||
gobject-introspection
|
||||
harfbuzz
|
||||
libxml2
|
||||
pango
|
||||
(cargo-inputs 'librsvg)))
|
||||
@@ -4667,7 +4667,7 @@ and RDP protocols.")
|
||||
(define-public dconf
|
||||
(package
|
||||
(name "dconf")
|
||||
(version "0.40.0")
|
||||
(version "0.49.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -4676,7 +4676,7 @@ and RDP protocols.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg"))))
|
||||
"0dkc7nbd0byibf6i5gm9xqclr7i94n1p1qbqcnwxnml1lm4px90n"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -4685,7 +4685,8 @@ and RDP protocols.")
|
||||
;; there and loaded without having to set GCONF_PROFILE, which cannot be
|
||||
;; safely set globally (as a gconf profile is a per-user thing).
|
||||
#:configure-flags #~(list "--sysconfdir=/etc"
|
||||
"-Dgtk_doc=true")
|
||||
"-Dgtk_doc=true"
|
||||
"--wrap-mode=nodownload") ;for gvdb
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'increase-test-timeout
|
||||
(lambda _
|
||||
@@ -5211,17 +5212,26 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.")
|
||||
(define-public gi-docgen
|
||||
(package
|
||||
(name "gi-docgen")
|
||||
(version "2025.4")
|
||||
(version "2026.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "gi_docgen" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1i9dlwirizc0n5sw9w60yscaj14x9x06fdq64kwxqkia13d6dq3z"))))
|
||||
"1df7yb6d5zsr4wks4p2lf40a2v4v2dasx3pv2v3d2ma25d7krb35"))))
|
||||
(build-system pyproject-build-system)
|
||||
(native-inputs
|
||||
(list python-pytest-bootstrap
|
||||
python-setuptools))
|
||||
(arguments
|
||||
(list
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-commands
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* '("gidocgen/config.py"
|
||||
"gidocgen/utils.py")
|
||||
(("find_program\\(['\"]dot['\"])")
|
||||
(format #f "find_program(~s)"
|
||||
(search-input-file inputs "bin/dot")))))))))
|
||||
(native-inputs (list python-pytest-bootstrap python-setuptools))
|
||||
(inputs (list graphviz-14))
|
||||
(propagated-inputs (list python-jinja2
|
||||
python-markdown
|
||||
python-markupsafe
|
||||
@@ -6978,10 +6988,10 @@ side panel;
|
||||
(license license:gpl2+)))
|
||||
|
||||
;; Also update (@ (gnu packages rust-sources) rust-glycin-3) when updating this.
|
||||
(define-public glycin-loaders
|
||||
(define-public libglycin
|
||||
(package
|
||||
(name "glycin-loaders")
|
||||
(version "2.0.7")
|
||||
(name "libglycin")
|
||||
(version "2.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -6991,12 +7001,16 @@ side panel;
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0v6szxk5h8a4b28xb0lrhqrq6b4vka2ha4qgpdp35f6c49v9pdyp"))
|
||||
"1mrv733xhbxydww4szskv7jc0hif908aavh8h4kjcxp0zgy13blf"))
|
||||
(patches (search-patches "glycin-sandbox-Adapt-bwrap-invocation.patch"))))
|
||||
(outputs '("out" "debug"))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags #~(list "-Dglycin-loaders=false"
|
||||
"-Dglycin-thumbnailer=true"
|
||||
"-Dlibglycin=true"
|
||||
"-Dlibglycin-gtk4=true")
|
||||
#:imported-modules `(,@%meson-build-system-modules
|
||||
,@%cargo-build-system-modules)
|
||||
#:modules `(((guix build cargo-build-system) #:prefix cargo:)
|
||||
@@ -7082,18 +7096,15 @@ side panel;
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.gnome.org/sophie-h/test-images.git")
|
||||
(commit "b148bcf70847d6f126a8e83e27e1c59d2e474adf")))
|
||||
(commit "b3a107267cc4f1d136b7007938556250ce06fc4f")))
|
||||
(file-name "glycin-test-images")
|
||||
(sha256
|
||||
(base32
|
||||
"16s3lss4cbny5d0ixhc0vaxxcvq2n7rcnbklrxdm84p2m21192vm")))))
|
||||
"1jvra75kjqkndxzzpmi5lb8d3q4fi3yc4hha0r1g9brdsnbhsp6f")))))
|
||||
(inputs (cons* bubblewrap
|
||||
libheif
|
||||
libjxl
|
||||
librsvg
|
||||
(cargo-inputs 'glycin)))
|
||||
;; The following inputs are 'Required' in the pkg-config files.
|
||||
(propagated-inputs (list fontconfig glib gtk lcms-next libseccomp))
|
||||
(propagated-inputs (list fontconfig glib gtk lcms libseccomp))
|
||||
(home-page "https://gitlab.gnome.org/GNOME/glycin")
|
||||
(synopsis "Rust library for sandboxed image decoding")
|
||||
(description "Glycin is a sandbox image decoder for image viewers and
|
||||
@@ -7101,6 +7112,22 @@ thumbnails to display untrusted content safely. This package provides the
|
||||
runtime image loader executables that are used inside the sandbox.")
|
||||
(license (list license:mpl2.0 license:lgpl2.1+))))
|
||||
|
||||
(define-public glycin-loaders
|
||||
(package/inherit libglycin
|
||||
(name "glycin-loaders")
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:configure-flags original-flags #~(list))
|
||||
#~(list "-Dglycin-loaders=true"
|
||||
"-Dglycin-thumbnailer=false"
|
||||
"-Dlibglycin=false"
|
||||
"-Dlibglycin-gtk4=false"))))
|
||||
(inputs
|
||||
(modify-inputs inputs
|
||||
(prepend libheif
|
||||
libjxl
|
||||
librsvg)))))
|
||||
|
||||
(define-public loupe
|
||||
(package
|
||||
(name "loupe")
|
||||
@@ -7171,6 +7198,7 @@ runtime image loader executables that are used inside the sandbox.")
|
||||
gtk
|
||||
lcms
|
||||
libadwaita
|
||||
libglycin
|
||||
libgweather
|
||||
libseccomp
|
||||
(cargo-inputs 'loupe)))
|
||||
@@ -7211,14 +7239,14 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.")
|
||||
(define-public msgraph
|
||||
(package
|
||||
(name "msgraph")
|
||||
(version "0.3.3")
|
||||
(version "0.3.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/msgraph/"
|
||||
(version-major+minor version) "/"
|
||||
"msgraph-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "04j00lf0aqiccgbg95jh9sxmx48bgsrg110ilap9014r58py3mrp"))))
|
||||
(base32 "1iyn0jdqgw238cxaxvji0v9ds0xwfzffz65xpgzywcibn3kfqc87"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs (list gi-docgen gobject-introspection pkg-config uhttpmock))
|
||||
(inputs (list gnome-online-accounts json-glib libsoup librest))
|
||||
@@ -7231,7 +7259,7 @@ MS Graph APIs.")
|
||||
(define-public gvfs
|
||||
(package
|
||||
(name "gvfs")
|
||||
(version "1.58.0")
|
||||
(version "1.58.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/gvfs/"
|
||||
@@ -7239,7 +7267,7 @@ MS Graph APIs.")
|
||||
"gvfs-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0bqq9z1y31yk3c8wz8i8fql7dr8cfxsd5a49xc4v7z6hfdlf76yx"))))
|
||||
"0fywnla2xwyi44jfipyixcczxh5h34c4lzfzf9lsgzxip9mpslzw"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -7589,7 +7617,7 @@ environments.")
|
||||
(define-public yelp-xsl
|
||||
(package
|
||||
(name "yelp-xsl")
|
||||
(version "42.4")
|
||||
(version "49.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -7598,7 +7626,7 @@ environments.")
|
||||
(version-major version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1lfpmdc4y46a528q5filn6xs8add921avrnwl2vpysp6n9zb1szx"))))
|
||||
(base32 "1v7va1xa80pyj0dyfraalvsag4m0lza4v87r2i7phyz6iy7kmm2r"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs
|
||||
(list mallard-ducktype
|
||||
@@ -7626,7 +7654,7 @@ jQuery.Syntax JavaScript libraries.")
|
||||
(define-public yelp
|
||||
(package
|
||||
(name "yelp")
|
||||
(version "42.3")
|
||||
(version "49.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@@ -7634,7 +7662,7 @@ jQuery.Syntax JavaScript libraries.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18w95bfhq3d364af1qqb63rgaixkrl7xk0x079x6m7lscwic9k16"))))
|
||||
"0mrlqsbr2wb0k2p3dmywzdb0c0rzcx1dv6qlimxzx9ab3w5lwqg6"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list #:phases
|
||||
@@ -7659,7 +7687,9 @@ jQuery.Syntax JavaScript libraries.")
|
||||
`("PATH" ":" prefix
|
||||
(,(dirname (search-input-file inputs "bin/groff"))))))))))
|
||||
(native-inputs
|
||||
(list `(,glib "bin") ; for glib-genmarshal, etc.
|
||||
(list desktop-file-utils
|
||||
`(,glib "bin") ;for glib-genmarshal, etc.
|
||||
`(,gtk "bin")
|
||||
intltool
|
||||
itstool
|
||||
pkg-config))
|
||||
@@ -7668,13 +7698,14 @@ jQuery.Syntax JavaScript libraries.")
|
||||
(inputs
|
||||
(list bash-minimal
|
||||
gsettings-desktop-schemas
|
||||
libadwaita
|
||||
libhandy
|
||||
libxslt
|
||||
man-db ;for URIs like "man:ls"
|
||||
groff-minimal ;ditto
|
||||
gtk+
|
||||
man-db ;for URIs like "man:ls"
|
||||
groff-minimal ;ditto
|
||||
gtk
|
||||
sqlite
|
||||
webkitgtk-for-gtk3
|
||||
webkitgtk
|
||||
yelp-xsl))
|
||||
(home-page "https://wiki.gnome.org/Apps/Yelp")
|
||||
(synopsis "GNOME help browser")
|
||||
@@ -7963,57 +7994,88 @@ configuration program to choose applications starting on login.")
|
||||
(define-public gjs
|
||||
(package
|
||||
(name "gjs")
|
||||
(version "1.84.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rh1fkkb35aa1zrhzbizzxllkwc3snkw67i901in61ap6kgjw51m"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(substitute* "installed-tests/scripts/testCommandLine.sh"
|
||||
(("Valentín") "")
|
||||
(("☭") ""))
|
||||
(substitute* "modules/script/package.js"
|
||||
(("type_default_interface_ref")
|
||||
"type_default_interface_get"))))))
|
||||
(version "1.88.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ly43lcpafl0an3k4g4mvwrwvc78f0y91ckdi6qn13ky67rvk81h"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(delete-all-but "subprojects"
|
||||
"gobject-introspection-tests")))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("-Dinstalled_tests=false")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
;; The test suite requires a running X server.
|
||||
(system "Xvfb :1 &")
|
||||
(setenv "DISPLAY" ":1")
|
||||
|
||||
;; For the missing /etc/machine-id.
|
||||
(setenv "DBUS_FATAL_WARNINGS" "0")
|
||||
(setenv "HOME" (getcwd))))
|
||||
(add-after 'unpack 'skip-failing-tests
|
||||
(lambda _
|
||||
;; Expects to test against 2.84, but we're using 2.86.
|
||||
(substitute* "installed-tests/js/testIntrospection.js"
|
||||
(("const skip = imports.gi.versions.GioUnix !== '2\\.0';")
|
||||
"const skip = true;"))))
|
||||
(add-after 'install 'wrap-gi
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(wrap-program (string-append (assoc-ref outputs "out")
|
||||
"/bin/gjs")
|
||||
`("GI_TYPELIB_PATH" suffix
|
||||
(,(dirname
|
||||
(search-input-file
|
||||
inputs
|
||||
"lib/girepository-1.0/GObject-2.0.typelib"))
|
||||
,(dirname
|
||||
(search-input-file
|
||||
inputs
|
||||
"lib/girepository-1.0/GIRepository-2.0.typelib"))))))))))
|
||||
(list
|
||||
#:modules '((guix build meson-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 match))
|
||||
#:configure-flags #~(list "-Dinstalled_tests=false")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'install 'wrap-gi
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(wrap-program (string-append #$output "/bin/gjs")
|
||||
`("GI_TYPELIB_PATH" suffix
|
||||
(,(dirname
|
||||
(search-input-file
|
||||
inputs
|
||||
"lib/girepository-1.0/GObject-2.0.typelib"))
|
||||
,(dirname
|
||||
(search-input-file
|
||||
inputs
|
||||
"lib/girepository-1.0/GIRepository-2.0.typelib")))))))
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
;; For the missing /etc/machine-id.
|
||||
(setenv "DBUS_FATAL_WARNINGS" "0")
|
||||
(setenv "HOME" (getcwd))
|
||||
;; In Guix, gobject-introspection is patched to always embed
|
||||
;; the absolute path of a typelib library; unfortunately it
|
||||
;; does this also for test typelibs not meant to be installed;
|
||||
;; work around it via temporary symlinks.
|
||||
(let* ((test-libraries (find-files (getcwd)
|
||||
"\\.so(\\.[0-9]*)?$"))
|
||||
(test-library-links (map (lambda (x)
|
||||
(cons x (string-append
|
||||
#$output "/lib/"
|
||||
(basename x))))
|
||||
test-libraries)))
|
||||
(for-each (match-lambda
|
||||
((old . new)
|
||||
(symlink old new)))
|
||||
test-library-links)
|
||||
(invoke "xvfb-run" "--" "dbus-run-session"
|
||||
"meson" "test" "--print-errorlogs" "-t" "0"
|
||||
"-j" (if parallel-tests?
|
||||
(number->string (parallel-job-count))
|
||||
"1"))
|
||||
(for-each delete-file (map cdr test-library-links))))))
|
||||
(add-after 'install 'delete-installed-tests
|
||||
(lambda _
|
||||
;; Installed tests libraries are installed despite
|
||||
;; -Dinstalled_tests=false.
|
||||
(delete-file-recursively
|
||||
(string-append #$output "/libexec/installed-tests"))))
|
||||
(add-after 'install 'sanitize-pkg-config-files
|
||||
(lambda _
|
||||
(substitute* (find-files #$output "\\.pc$")
|
||||
(("^Requires.private:.*") "")))))))
|
||||
(native-inputs
|
||||
(list `(,glib "bin") ;for glib-compile-resources
|
||||
pkg-config
|
||||
@@ -8021,16 +8083,16 @@ configuration program to choose applications starting on login.")
|
||||
;; For testing
|
||||
dbus
|
||||
dconf ;required to properly store settings
|
||||
gtk+
|
||||
sysprof
|
||||
util-linux
|
||||
xorg-server-for-tests))
|
||||
xvfb-run))
|
||||
(inputs (list mozjs readline))
|
||||
(propagated-inputs
|
||||
;; These are all in the Requires.private field of gjs-1.0.pc.
|
||||
;; Check the version of mozjs required in meson.build.
|
||||
(list cairo gobject-introspection mozjs-128))
|
||||
(inputs
|
||||
(list gtk+ readline))
|
||||
;; These are all in the Requires field of gjs-1.0.pc.
|
||||
(list glib gobject-introspection))
|
||||
(synopsis "Javascript bindings for GNOME")
|
||||
(home-page "https://wiki.gnome.org/Gjs")
|
||||
(home-page "https://gitlab.gnome.org/GNOME/gjs")
|
||||
(description
|
||||
"Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
|
||||
javascript engine and the GObject introspection framework.")
|
||||
@@ -8352,7 +8414,7 @@ window manager.")
|
||||
(define-public gnome-online-accounts
|
||||
(package
|
||||
(name "gnome-online-accounts")
|
||||
(version "3.54.9")
|
||||
(version "3.56.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@@ -8360,7 +8422,7 @@ window manager.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10bwrc50aqaf7j3qabv7zpfnf2dmf9mwbmnjpgqfqsmny2ba80pb"))))
|
||||
"1cv1l757g4iac39l0ccwvqhibyjdjhy9q8p86fp8mqs5mfnix0ra"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -9881,7 +9943,7 @@ easy, safe, and automatic.")
|
||||
(define-public tinysparql
|
||||
(package
|
||||
(name "tinysparql")
|
||||
(version "3.9.2")
|
||||
(version "3.10.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/tinysparql/"
|
||||
@@ -9889,7 +9951,7 @@ easy, safe, and automatic.")
|
||||
"tinysparql-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13mddmszrk4ihfwi5n67v5ykf01fmld4pkmw4881hphk4j807khl"))))
|
||||
"0r824dz8szfwd2z95nk8ffkvwq0ayva0wa6n1railrxnkmw3wzss"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -10172,6 +10234,7 @@ through portals.")
|
||||
gst-plugins-base
|
||||
json-glib
|
||||
libadwaita
|
||||
libglycin
|
||||
libportal
|
||||
libseccomp
|
||||
libselinux
|
||||
@@ -10243,7 +10306,7 @@ is complete it provides a graphical representation of each selected folder.")
|
||||
(define-public gnome-backgrounds
|
||||
(package
|
||||
(name "gnome-backgrounds")
|
||||
(version "48.2.1")
|
||||
(version "49.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -10252,7 +10315,7 @@ is complete it provides a graphical representation of each selected folder.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1n8ypmdgpp2hj7jsbpicha0d2pfnqbwmavcjfzlmr3qd5rxmn73a"))))
|
||||
"1dgl8jxczx2cwszg07bhrjpcg2rywfcak2d5md20x84bwl6jdzh1"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs (list gettext-minimal))
|
||||
(home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
|
||||
@@ -10317,7 +10380,7 @@ beautifying border effects.")
|
||||
(define-public dconf-editor
|
||||
(package
|
||||
(name "dconf-editor")
|
||||
(version "45.0.1")
|
||||
(version "49.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@@ -10325,7 +10388,7 @@ beautifying border effects.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pa1k510qx4v0ywhqwpj3qfjyz8qiiis4565ghhydnpfg1v2k00i"))))
|
||||
"16fkppclv7xzglfafqg8b9nd5cjqlfwlyci800gg7psivzxcra4h"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list #:phases #~(modify-phases %standard-phases
|
||||
@@ -13383,7 +13446,7 @@ GObject introspection bindings.")
|
||||
(define-public sysprof
|
||||
(package
|
||||
(name "sysprof")
|
||||
(version "48.1")
|
||||
(version "49.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -13391,7 +13454,7 @@ GObject introspection bindings.")
|
||||
(version-major version) "/"
|
||||
"sysprof-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1qmv76877vkw2ajfnc4cr8gw5qch5m32qm1fybig3vgizvymgwal"))))
|
||||
(base32 "0y18535lymqv684n8aa2v601d61v6aj8f84690cq8p3q6yb1617z"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -13688,7 +13751,7 @@ Document Analysis and Recognition program.")
|
||||
(define-public libadwaita
|
||||
(package
|
||||
(name "libadwaita")
|
||||
(version "1.8.2")
|
||||
(version "1.8.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/libadwaita/"
|
||||
@@ -13696,7 +13759,7 @@ Document Analysis and Recognition program.")
|
||||
"libadwaita-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1cdda2sk1w5jmfkism8v6ihl03gs2s72klx7j230wx4i847nx6jq"))))
|
||||
"074j59bz5zgnb7grw3clpwyxickw9268k6fj0980bw8gdxxvfayh"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
||||
+349
-349
@@ -106,355 +106,6 @@
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages time))
|
||||
|
||||
(define-public mozjs
|
||||
(package
|
||||
(name "mozjs")
|
||||
(version "140.3.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; TODO: Switch to IceCat source once available on ftp.gnu.org.
|
||||
(uri (string-append "https://ftp.mozilla.org/pub/firefox"
|
||||
"/releases/" version "esr/source/firefox-"
|
||||
version "esr.source.tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05i3czn3v2qnhir8apcphbqy7rmy1dn7kcwx5yyi2qvmjcyfpipg"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:imported-modules %cargo-utils-modules ;for `generate-all-checksums'
|
||||
#:modules `((guix build cargo-utils)
|
||||
,@%default-gnu-modules)
|
||||
#:test-target "check-jstests"
|
||||
#:configure-flags
|
||||
#~(list
|
||||
;; Disable debugging symbols to save space.
|
||||
"--disable-debug"
|
||||
"--disable-debug-symbols"
|
||||
;; This is important because without it gjs will segfault during the
|
||||
;; configure phase. With jemalloc only the standalone mozjs console
|
||||
;; will work.
|
||||
"--disable-jemalloc"
|
||||
"--enable-tests"
|
||||
"--enable-hardening"
|
||||
"--enable-optimize"
|
||||
"--enable-release"
|
||||
"--enable-readline"
|
||||
"--enable-rust-simd"
|
||||
"--enable-shared-js"
|
||||
"--with-system-icu"
|
||||
"--with-system-nspr"
|
||||
"--with-system-zlib"
|
||||
"--with-intl-api")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'python-3.11-compatibility
|
||||
(lambda _
|
||||
(substitute* '("python/mozbuild/mozpack/files.py"
|
||||
"python/mozbuild/mozbuild/util.py"
|
||||
"python/mozbuild/mozbuild/action/process_define_files.py"
|
||||
"python/mozbuild/mozbuild/backend/base.py"
|
||||
"python/mozbuild/mozbuild/preprocessor.py")
|
||||
(("\"rU\"") "\"r\""))))
|
||||
(add-after 'patch-source-shebangs 'patch-cargo-checksums
|
||||
(lambda _
|
||||
(let ((null-hash
|
||||
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
|
||||
(for-each (lambda (file)
|
||||
(format #t "patching checksums in ~a~%" file)
|
||||
(substitute* file
|
||||
(("^checksum = \".*\"")
|
||||
(string-append "checksum = \"" null-hash "\""))))
|
||||
(find-files "." "Cargo\\.lock$"))
|
||||
(for-each generate-all-checksums
|
||||
'("js" "third_party/rust")))))
|
||||
(replace 'configure
|
||||
(lambda* (#:key configure-flags #:allow-other-keys)
|
||||
;; The configure script does not accept environment variables as
|
||||
;; arguments. It also must be run from a different directory,
|
||||
;; but not the root directory either.
|
||||
(mkdir "run-configure-from-here")
|
||||
(chdir "run-configure-from-here")
|
||||
;; Configure script writes to $HOME.
|
||||
(setenv "HOME" (getcwd))
|
||||
(setenv "SHELL" (which "sh"))
|
||||
(setenv "CONFIG_SHELL" (which "sh"))
|
||||
(setenv "AUTOCONF" (which "autoconf"))
|
||||
(apply invoke "python" "../configure.py"
|
||||
"--enable-project=js"
|
||||
(string-append "--prefix=" #$output)
|
||||
configure-flags)))
|
||||
(add-before 'check 'adjust-tests
|
||||
(lambda _
|
||||
(with-directory-excursion "../js/src/tests"
|
||||
(substitute* "shell/os.js"
|
||||
;; FIXME: Why does the killed process have an exit status?
|
||||
((".*killed process should not have exitStatus.*")
|
||||
""))
|
||||
|
||||
;; Most of the timezone related failures are probably
|
||||
;; attributable to our use of a system-provided icu4c library
|
||||
;; instead of the bundled one.
|
||||
(for-each
|
||||
delete-file
|
||||
'( ;; FIXME: An one-hour difference is produced after DST
|
||||
;; starting in the timezone the test suite uses.
|
||||
"non262/Date/15.9.5.7.js"
|
||||
|
||||
;; The test suite expects a lightly patched ICU. Disable tests
|
||||
;; that do not work with the system version. See
|
||||
;; "intl/icu-patches" for clues.
|
||||
|
||||
;; See <https://unicode-org.atlassian.net/browse/ICU-20992> and
|
||||
;; <https://bugzilla.mozilla.org/show_bug.cgi?id=1636984> and
|
||||
;; related patch for why this is failing.
|
||||
"non262/Intl/DateTimeFormat/fractional-second-digits-append-item.js"
|
||||
;; FIXME: got "0 \u251CAM/PM: noon\u2524", expected "0 (AM/PM: noon)"
|
||||
"non262/Intl/DateTimeFormat/day-period-hour-cycle.js"
|
||||
;; FIXME: got "en-US-posix", expected "en-US-POSIX".
|
||||
"non262/Intl/available-locales-supported.js"
|
||||
;; FIXME: got "en-US", expected "en-US-POSIX"
|
||||
"non262/Intl/available-locales-resolved.js"
|
||||
|
||||
;;; Since 115:
|
||||
;; Mismatching array lengths
|
||||
"non262/Intl/supportedValuesOf-timeZones-canonical.js"
|
||||
;; TODO: tzdata 2024a expected – find a way to regenerate
|
||||
;; these generated tests
|
||||
"non262/Intl/DateTimeFormat/timeZone_version.js"
|
||||
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u5047"
|
||||
"non262/Intl/Collator/implicithan.js"
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u3467"
|
||||
"non262/Intl/Collator/big5han-gb2312han.js"
|
||||
|
||||
;; Since 128:
|
||||
;; FIXME: got (void 0), expected "GMT"
|
||||
"non262/Intl/DateTimeFormat/formatRange-timeZoneName-matches-format.js"
|
||||
;; FIXME: got 7, expected 9: parts count mismatch
|
||||
"non262/Intl/DateTimeFormat/formatRange-timeZone-offset.js"
|
||||
"non262/Intl/DateTimeFormat/formatRange-timeZoneName.js"
|
||||
|
||||
;; Since 140:
|
||||
;; RangeError: invalid time zone: America/Coyhaique
|
||||
"non262/Temporal/ZonedDateTime/zones-and-links.js"
|
||||
;; got 2042, expected 2043
|
||||
"non262/Temporal/Intl/consistent-dates.js"
|
||||
;; got "Pacific/Auckland", expected "Antarctica/McMurdo"
|
||||
"non262/Intl/DateTimeFormat/timeZone_links.js"
|
||||
"test262/staging/sm/Temporal/ZonedDateTime/zones-and-links.js"
|
||||
;; Test262Error: Expected true but got false
|
||||
"test262/staging/Intl402/Temporal/old/zoneddatetime-dst-corner-cases.js"
|
||||
;; Test262Error: getTimeZoneTransition(next) does not return its input
|
||||
"test262/intl402/Temporal/ZonedDateTime/prototype/\
|
||||
getTimeZoneTransition/result-type.js"
|
||||
;; Expected SameValue («1912-01-01T00:16:08+00:00[Africa/Abidjan]», «null»
|
||||
"test262/intl402/Temporal/ZonedDateTime/prototype/\
|
||||
getTimeZoneTransition/transition-at-instant-boundaries.js"
|
||||
;; Expected SameValue(«1762063200000000000n», «1572760800000000000n»
|
||||
"test262/intl402/Temporal/ZonedDateTime/prototype/\
|
||||
getTimeZoneTransition/specific-tzdb-values.js"
|
||||
;; Expected SameValue(«"2025-03-30T03:00:00+02:00[Europe/Berlin]"»,
|
||||
;; «"2020-10-25T02:00:00+01:00[Europe/Berlin]"»
|
||||
"test262/intl402/Temporal/ZonedDateTime/prototype/\
|
||||
getTimeZoneTransition/nanoseconds-subtracted-or-added-at-dst-transition.js"
|
||||
;; TypeError: can't access property "epochNanoseconds",
|
||||
;; before.getTimeZoneTransition(...) is null
|
||||
"test262/intl402/Temporal/ZonedDateTime/prototype/\
|
||||
getTimeZoneTransition/transitions-close-together.js")))))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
(setenv "JSTESTS_EXTRA_ARGS"
|
||||
(string-join
|
||||
(list
|
||||
;; Do not run tests marked as "random".
|
||||
"--exclude-random"
|
||||
;; Exclude web platform tests.
|
||||
"--wpt=disabled"
|
||||
;; Respect the daemons configured number of jobs.
|
||||
(string-append "--worker-count="
|
||||
(number->string (parallel-job-count)))))))))))
|
||||
(native-inputs
|
||||
(list autoconf
|
||||
llvm ;for llvm-objdump
|
||||
m4
|
||||
perl
|
||||
pkg-config
|
||||
python-wrapper
|
||||
rust
|
||||
`(,rust "cargo")
|
||||
rust-cbindgen))
|
||||
(inputs
|
||||
(list icu4c-77 readline zlib))
|
||||
(propagated-inputs
|
||||
(list nspr)) ; in the Requires.private field of mozjs-*.pc
|
||||
(home-page
|
||||
"https://spidermonkey.dev/")
|
||||
(synopsis "Mozilla JavaScript engine")
|
||||
(description "SpiderMonkey is Mozilla's JavaScript engine written
|
||||
in C/C++.")
|
||||
(license license:mpl2.0))) ; and others for some files
|
||||
|
||||
(define-public mozjs-128
|
||||
(package
|
||||
(inherit mozjs)
|
||||
(version "128.3.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; TODO: Switch to IceCat source once available on ftp.gnu.org.
|
||||
(uri (string-append "https://ftp.mozilla.org/pub/firefox"
|
||||
"/releases/" version "esr/source/firefox-"
|
||||
version "esr.source.tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1a3h7p7126pxzpidb1lqckvhfh1had805mai4l96mnc878phbx61"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:configure-flags flags)
|
||||
#~(delete "--enable-rust-simd" #$flags))
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(replace 'adjust-tests
|
||||
(lambda _
|
||||
(with-directory-excursion "../js/src/tests"
|
||||
(substitute* "shell/os.js"
|
||||
;; FIXME: Why does the killed process have an exit status?
|
||||
((".*killed process should not have exitStatus.*")
|
||||
""))
|
||||
|
||||
;; This was fixed sometime between 102.15.1 and 115.11.0.
|
||||
;; These tests are supposed to be skipped on all 64-bit systems.
|
||||
#$@(if (target-riscv64?)
|
||||
#~((substitute* '("non262/Array/regress-157652.js"
|
||||
"non262/regress/regress-422348.js")
|
||||
(("mips64") "mips64|riscv64")))
|
||||
#~())
|
||||
|
||||
;; FIXME: An one-hour difference is produced after DST
|
||||
;; starting in the timezone the test suite uses.
|
||||
(delete-file "non262/Date/15.9.5.7.js")
|
||||
|
||||
;; The test suite expects a lightly patched ICU. Disable tests
|
||||
;; that do not work with the system version. See
|
||||
;; "intl/icu-patches" for clues.
|
||||
|
||||
;; See <https://unicode-org.atlassian.net/browse/ICU-20992> and
|
||||
;; <https://bugzilla.mozilla.org/show_bug.cgi?id=1636984> and
|
||||
;; related patch for why this is failing.
|
||||
(delete-file "non262/Intl/DateTimeFormat/\
|
||||
fractional-second-digits-append-item.js")
|
||||
;; FIXME: got "0 \u251CAM/PM: noon\u2524", expected "0 (AM/PM: noon)"
|
||||
(delete-file "non262/Intl/DateTimeFormat/day-period-hour-cycle.js")
|
||||
;; FIXME: got "en-US-posix", expected "en-US-POSIX".
|
||||
(delete-file "non262/Intl/available-locales-supported.js")
|
||||
;; FIXME: got "en-US", expected "en-US-POSIX"
|
||||
(delete-file "non262/Intl/available-locales-resolved.js")
|
||||
|
||||
;;; Since 115:
|
||||
;; Mismatching array lengths
|
||||
(delete-file "non262/Intl/supportedValuesOf-timeZones-canonical.js")
|
||||
;; FIXME: got "America/Santa_Isabel", expected "America/Tijuana":
|
||||
;; America/Santa_Isabel -> America/Tijuana
|
||||
(delete-file "non262/Intl/DateTimeFormat/timeZone_backward_links.js")
|
||||
;; TODO: tzdata 2024a expected – find a way to regenerate
|
||||
;; these generated tests
|
||||
(delete-file "non262/Intl/DateTimeFormat/timeZone_version.js")
|
||||
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u5047"
|
||||
(delete-file "non262/Intl/Collator/implicithan.js")
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u3467"
|
||||
(delete-file "non262/Intl/Collator/big5han-gb2312han.js")
|
||||
|
||||
;; Since 128:
|
||||
;; FIXME: got (void 0), expected "GMT"
|
||||
(delete-file "non262/Intl/DateTimeFormat/formatRange-timeZoneName-matches-format.js")
|
||||
;; FIXME: got 7, expected 9: parts count mismatch
|
||||
(delete-file "non262/Intl/DateTimeFormat/formatRange-timeZone-offset.js")
|
||||
(delete-file "non262/Intl/DateTimeFormat/formatRange-timeZoneName.js"))))))))
|
||||
(inputs
|
||||
(list icu4c-73 readline zlib))))
|
||||
|
||||
(define-public mozjs-115
|
||||
(package
|
||||
(inherit mozjs)
|
||||
(version "115.26.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://archive.mozilla.org/pub/firefox"
|
||||
"/releases/" version "esr/source/firefox-"
|
||||
version "esr.source.tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xvwk3vkbxnybpi3gwk48nxffg44lbv58mbk2xq6cz50ffq0k5k2"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:configure-flags flags)
|
||||
#~(delete "--enable-rust-simd" #$flags))
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(replace 'adjust-tests
|
||||
(lambda _
|
||||
(with-directory-excursion "../js/src/tests"
|
||||
;; The test suite expects a lightly patched ICU. Disable tests
|
||||
;; that do not work with the system version. See
|
||||
;; "intl/icu-patches" for clues.
|
||||
|
||||
;; See <https://unicode-org.atlassian.net/browse/ICU-20992> and
|
||||
;; <https://bugzilla.mozilla.org/show_bug.cgi?id=1636984> and
|
||||
;; related patch for why this is failing.
|
||||
(delete-file "non262/Intl/DateTimeFormat/\
|
||||
fractional-second-digits-append-item.js")
|
||||
;; FIXME: got "0 \u251CAM/PM: noon\u2524", expected "0 (AM/PM: noon)"
|
||||
(delete-file "non262/Intl/DateTimeFormat/day-period-hour-cycle.js")
|
||||
;; FIXME: got "en-US-posix", expected "en-US-POSIX".
|
||||
(delete-file "non262/Intl/available-locales-supported.js")
|
||||
;; FIXME: got "en-US", expected "en-US-POSIX"
|
||||
(delete-file "non262/Intl/available-locales-resolved.js")
|
||||
|
||||
;;; Since 115:
|
||||
;; Mismatching array lengths
|
||||
(delete-file "non262/Intl/supportedValuesOf-timeZones-canonical.js")
|
||||
;; FIXME: got "America/Santa_Isabel", expected "America/Tijuana":
|
||||
;; America/Santa_Isabel -> America/Tijuana
|
||||
(delete-file "non262/Intl/DateTimeFormat/timeZone_backward_links.js")
|
||||
;; TODO: tzdata 2024a expected – find a way to regenerate
|
||||
;; these generated tests
|
||||
(delete-file "non262/Intl/DateTimeFormat/timeZone_version.js")
|
||||
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u5047"
|
||||
(delete-file "non262/Intl/Collator/implicithan.js")
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u3467"
|
||||
(delete-file "non262/Intl/Collator/big5han-gb2312han.js"))))
|
||||
|
||||
(replace 'pre-check
|
||||
(lambda _
|
||||
(with-directory-excursion "../js/src/tests"
|
||||
(substitute* "shell/os.js"
|
||||
;; FIXME: Why does the killed process have an exit status?
|
||||
((".*killed process should not have exitStatus.*")
|
||||
""))
|
||||
|
||||
;; XXX: Delete all tests that test time zone functionality,
|
||||
;; because the test suite uses /etc/localtime to figure out
|
||||
;; the offset from the hardware clock, which does not work
|
||||
;; in the build container. See <tests/non262/Date/shell.js>.
|
||||
(delete-file-recursively "non262/Date")
|
||||
(delete-file "non262/Intl/DateTimeFormat/tz-environment-variable.js")
|
||||
|
||||
(setenv "JSTESTS_EXTRA_ARGS"
|
||||
(string-join
|
||||
(list
|
||||
;; Do not run tests marked as "random".
|
||||
"--exclude-random"
|
||||
;; Exclude web platform tests.
|
||||
"--wpt=disabled"
|
||||
;; Respect the daemons configured number of jobs.
|
||||
(string-append "--worker-count="
|
||||
(number->string
|
||||
(parallel-job-count)))))))))))))
|
||||
(inputs
|
||||
(list icu4c-73 readline zlib))))
|
||||
|
||||
(define computed-origin-method (@@ (guix packages) computed-origin-method))
|
||||
|
||||
(define mozilla-compare-locales
|
||||
@@ -1249,6 +900,355 @@ testing.")
|
||||
(cpe-name . "firefox_esr")
|
||||
(cpe-version . ,(first (string-split version #\-)))))))
|
||||
|
||||
(define-public mozjs
|
||||
(package
|
||||
(name "mozjs")
|
||||
(version %icecat-version)
|
||||
(source (origin (inherit icecat-source)
|
||||
(patches (search-patches "mozjs-xp-win.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:imported-modules %cargo-utils-modules ;for `generate-all-checksums'
|
||||
#:modules `((guix build cargo-utils)
|
||||
,@%default-gnu-modules)
|
||||
#:test-target "check-jstests"
|
||||
#:configure-flags
|
||||
#~(list
|
||||
;; Disable debugging symbols to save space.
|
||||
"--disable-debug"
|
||||
"--disable-debug-symbols"
|
||||
;; This is important because without it gjs will segfault during the
|
||||
;; configure phase. With jemalloc only the standalone mozjs console
|
||||
;; will work.
|
||||
"--disable-jemalloc"
|
||||
"--enable-tests"
|
||||
"--enable-hardening"
|
||||
"--enable-optimize"
|
||||
"--enable-release"
|
||||
"--enable-readline"
|
||||
"--enable-rust-simd"
|
||||
"--enable-shared-js"
|
||||
"--with-system-icu"
|
||||
"--with-system-nspr"
|
||||
"--with-system-zlib"
|
||||
"--with-intl-api")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'python-3.11-compatibility
|
||||
(lambda _
|
||||
(substitute* '("python/mozbuild/mozpack/files.py"
|
||||
"python/mozbuild/mozbuild/util.py"
|
||||
"python/mozbuild/mozbuild/action/process_define_files.py"
|
||||
"python/mozbuild/mozbuild/backend/base.py"
|
||||
"python/mozbuild/mozbuild/preprocessor.py")
|
||||
(("\"rU\"") "\"r\""))))
|
||||
(add-after 'unpack 'restore-api-compat
|
||||
(lambda _
|
||||
(substitute* "js/public/GCAPI.h"
|
||||
(("enum class GCReason")
|
||||
"#define FIRST_FIREFOX_REASON FIRST_ICECAT_REASON
|
||||
#define LAST_FIREFOX_REASON LAST_ICECAT_REASON
|
||||
enum class GCReason"))))
|
||||
(add-after 'patch-source-shebangs 'patch-cargo-checksums
|
||||
(lambda _
|
||||
(let ((null-hash
|
||||
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
|
||||
(for-each (lambda (file)
|
||||
(format #t "patching checksums in ~a~%" file)
|
||||
(substitute* file
|
||||
(("^checksum = \".*\"")
|
||||
(string-append "checksum = \"" null-hash "\""))))
|
||||
(find-files "." "Cargo\\.lock$"))
|
||||
(for-each generate-all-checksums
|
||||
'("js" "third_party/rust")))))
|
||||
(replace 'configure
|
||||
(lambda* (#:key configure-flags #:allow-other-keys)
|
||||
;; The configure script does not accept environment variables as
|
||||
;; arguments. It also must be run from a different directory,
|
||||
;; but not the root directory either.
|
||||
(mkdir "run-configure-from-here")
|
||||
(chdir "run-configure-from-here")
|
||||
;; Configure script writes to $HOME.
|
||||
(setenv "HOME" (getcwd))
|
||||
(setenv "SHELL" (which "sh"))
|
||||
(setenv "CONFIG_SHELL" (which "sh"))
|
||||
(setenv "AUTOCONF" (which "autoconf"))
|
||||
(apply invoke "python" "../configure.py"
|
||||
"--enable-project=js"
|
||||
(string-append "--prefix=" #$output)
|
||||
configure-flags)))
|
||||
(add-before 'check 'adjust-tests
|
||||
(lambda _
|
||||
(with-directory-excursion "../js/src/tests"
|
||||
(substitute* "shell/os.js"
|
||||
;; FIXME: Why does the killed process have an exit status?
|
||||
((".*killed process should not have exitStatus.*")
|
||||
""))
|
||||
|
||||
;; Most of the timezone related failures are probably
|
||||
;; attributable to our use of a system-provided icu4c library
|
||||
;; instead of the bundled one.
|
||||
(for-each
|
||||
delete-file
|
||||
'( ;; FIXME: An one-hour difference is produced after DST
|
||||
;; starting in the timezone the test suite uses.
|
||||
"non262/Date/15.9.5.7.js"
|
||||
|
||||
;; The test suite expects a lightly patched ICU. Disable tests
|
||||
;; that do not work with the system version. See
|
||||
;; "intl/icu-patches" for clues.
|
||||
|
||||
;; See <https://unicode-org.atlassian.net/browse/ICU-20992> and
|
||||
;; <https://bugzilla.mozilla.org/show_bug.cgi?id=1636984> and
|
||||
;; related patch for why this is failing.
|
||||
"non262/Intl/DateTimeFormat/fractional-second-digits-append-item.js"
|
||||
;; FIXME: got "0 \u251CAM/PM: noon\u2524", expected "0 (AM/PM: noon)"
|
||||
"non262/Intl/DateTimeFormat/day-period-hour-cycle.js"
|
||||
;; FIXME: got "en-US-posix", expected "en-US-POSIX".
|
||||
"non262/Intl/available-locales-supported.js"
|
||||
;; FIXME: got "en-US", expected "en-US-POSIX"
|
||||
"non262/Intl/available-locales-resolved.js"
|
||||
|
||||
;;; Since 115:
|
||||
;; Mismatching array lengths
|
||||
"non262/Intl/supportedValuesOf-timeZones-canonical.js"
|
||||
;; TODO: tzdata 2024a expected – find a way to regenerate
|
||||
;; these generated tests
|
||||
"non262/Intl/DateTimeFormat/timeZone_version.js"
|
||||
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u5047"
|
||||
"non262/Intl/Collator/implicithan.js"
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u3467"
|
||||
"non262/Intl/Collator/big5han-gb2312han.js"
|
||||
|
||||
;; Since 128:
|
||||
;; FIXME: got (void 0), expected "GMT"
|
||||
"non262/Intl/DateTimeFormat/formatRange-timeZoneName-matches-format.js"
|
||||
;; FIXME: got 7, expected 9: parts count mismatch
|
||||
"non262/Intl/DateTimeFormat/formatRange-timeZone-offset.js"
|
||||
"non262/Intl/DateTimeFormat/formatRange-timeZoneName.js"
|
||||
|
||||
;; Since 140:
|
||||
;; RangeError: invalid time zone: America/Coyhaique
|
||||
"non262/Temporal/ZonedDateTime/zones-and-links.js"
|
||||
;; got 2042, expected 2043
|
||||
"non262/Temporal/Intl/consistent-dates.js"
|
||||
;; got "Pacific/Auckland", expected "Antarctica/McMurdo"
|
||||
"non262/Intl/DateTimeFormat/timeZone_links.js"
|
||||
"test262/staging/sm/Temporal/ZonedDateTime/zones-and-links.js"
|
||||
;; Test262Error: Expected true but got false
|
||||
"test262/staging/Intl402/Temporal/old/zoneddatetime-dst-corner-cases.js"
|
||||
;; Test262Error: getTimeZoneTransition(next) does not return its input
|
||||
"test262/intl402/Temporal/ZonedDateTime/prototype/\
|
||||
getTimeZoneTransition/result-type.js"
|
||||
;; Expected SameValue («1912-01-01T00:16:08+00:00[Africa/Abidjan]», «null»
|
||||
"test262/intl402/Temporal/ZonedDateTime/prototype/\
|
||||
getTimeZoneTransition/transition-at-instant-boundaries.js"
|
||||
;; Expected SameValue(«1762063200000000000n», «1572760800000000000n»
|
||||
"test262/intl402/Temporal/ZonedDateTime/prototype/\
|
||||
getTimeZoneTransition/specific-tzdb-values.js"
|
||||
;; Expected SameValue(«"2025-03-30T03:00:00+02:00[Europe/Berlin]"»,
|
||||
;; «"2020-10-25T02:00:00+01:00[Europe/Berlin]"»
|
||||
"test262/intl402/Temporal/ZonedDateTime/prototype/\
|
||||
getTimeZoneTransition/nanoseconds-subtracted-or-added-at-dst-transition.js"
|
||||
;; TypeError: can't access property "epochNanoseconds",
|
||||
;; before.getTimeZoneTransition(...) is null
|
||||
"test262/intl402/Temporal/ZonedDateTime/prototype/\
|
||||
getTimeZoneTransition/transitions-close-together.js")))))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
(setenv "JSTESTS_EXTRA_ARGS"
|
||||
(string-join
|
||||
(list
|
||||
;; Do not run tests marked as "random".
|
||||
"--exclude-random"
|
||||
;; Exclude web platform tests.
|
||||
"--wpt=disabled"
|
||||
;; Respect the daemons configured number of jobs.
|
||||
(string-append "--worker-count="
|
||||
(number->string (parallel-job-count)))))))))))
|
||||
(native-inputs
|
||||
(list autoconf
|
||||
llvm ;for llvm-objdump
|
||||
m4
|
||||
perl
|
||||
pkg-config
|
||||
python-wrapper
|
||||
rust
|
||||
`(,rust "cargo")
|
||||
rust-cbindgen))
|
||||
(inputs
|
||||
(list icu4c-77 readline zlib))
|
||||
(propagated-inputs
|
||||
(list nspr)) ; in the Requires.private field of mozjs-*.pc
|
||||
(home-page
|
||||
"https://spidermonkey.dev/")
|
||||
(synopsis "Mozilla JavaScript engine")
|
||||
(description "SpiderMonkey is Mozilla's JavaScript engine written
|
||||
in C/C++.")
|
||||
(license license:mpl2.0))) ; and others for some files
|
||||
|
||||
(define-public mozjs-128
|
||||
(package
|
||||
(inherit mozjs)
|
||||
(version "128.3.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; TODO: Switch to IceCat source once available on ftp.gnu.org.
|
||||
(uri (string-append "https://ftp.mozilla.org/pub/firefox"
|
||||
"/releases/" version "esr/source/firefox-"
|
||||
version "esr.source.tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1a3h7p7126pxzpidb1lqckvhfh1had805mai4l96mnc878phbx61"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:configure-flags flags)
|
||||
#~(delete "--enable-rust-simd" #$flags))
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(replace 'adjust-tests
|
||||
(lambda _
|
||||
(with-directory-excursion "../js/src/tests"
|
||||
(substitute* "shell/os.js"
|
||||
;; FIXME: Why does the killed process have an exit status?
|
||||
((".*killed process should not have exitStatus.*")
|
||||
""))
|
||||
|
||||
;; This was fixed sometime between 102.15.1 and 115.11.0.
|
||||
;; These tests are supposed to be skipped on all 64-bit systems.
|
||||
#$@(if (target-riscv64?)
|
||||
#~((substitute* '("non262/Array/regress-157652.js"
|
||||
"non262/regress/regress-422348.js")
|
||||
(("mips64") "mips64|riscv64")))
|
||||
#~())
|
||||
|
||||
;; FIXME: An one-hour difference is produced after DST
|
||||
;; starting in the timezone the test suite uses.
|
||||
(delete-file "non262/Date/15.9.5.7.js")
|
||||
|
||||
;; The test suite expects a lightly patched ICU. Disable tests
|
||||
;; that do not work with the system version. See
|
||||
;; "intl/icu-patches" for clues.
|
||||
|
||||
;; See <https://unicode-org.atlassian.net/browse/ICU-20992> and
|
||||
;; <https://bugzilla.mozilla.org/show_bug.cgi?id=1636984> and
|
||||
;; related patch for why this is failing.
|
||||
(delete-file "non262/Intl/DateTimeFormat/\
|
||||
fractional-second-digits-append-item.js")
|
||||
;; FIXME: got "0 \u251CAM/PM: noon\u2524", expected "0 (AM/PM: noon)"
|
||||
(delete-file "non262/Intl/DateTimeFormat/day-period-hour-cycle.js")
|
||||
;; FIXME: got "en-US-posix", expected "en-US-POSIX".
|
||||
(delete-file "non262/Intl/available-locales-supported.js")
|
||||
;; FIXME: got "en-US", expected "en-US-POSIX"
|
||||
(delete-file "non262/Intl/available-locales-resolved.js")
|
||||
|
||||
;;; Since 115:
|
||||
;; Mismatching array lengths
|
||||
(delete-file "non262/Intl/supportedValuesOf-timeZones-canonical.js")
|
||||
;; FIXME: got "America/Santa_Isabel", expected "America/Tijuana":
|
||||
;; America/Santa_Isabel -> America/Tijuana
|
||||
(delete-file "non262/Intl/DateTimeFormat/timeZone_backward_links.js")
|
||||
;; TODO: tzdata 2024a expected – find a way to regenerate
|
||||
;; these generated tests
|
||||
(delete-file "non262/Intl/DateTimeFormat/timeZone_version.js")
|
||||
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u5047"
|
||||
(delete-file "non262/Intl/Collator/implicithan.js")
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u3467"
|
||||
(delete-file "non262/Intl/Collator/big5han-gb2312han.js")
|
||||
|
||||
;; Since 128:
|
||||
;; FIXME: got (void 0), expected "GMT"
|
||||
(delete-file "non262/Intl/DateTimeFormat/formatRange-timeZoneName-matches-format.js")
|
||||
;; FIXME: got 7, expected 9: parts count mismatch
|
||||
(delete-file "non262/Intl/DateTimeFormat/formatRange-timeZone-offset.js")
|
||||
(delete-file "non262/Intl/DateTimeFormat/formatRange-timeZoneName.js"))))))))
|
||||
(inputs
|
||||
(list icu4c-73 readline zlib))))
|
||||
|
||||
(define-public mozjs-115
|
||||
(package
|
||||
(inherit mozjs)
|
||||
(version "115.26.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://archive.mozilla.org/pub/firefox"
|
||||
"/releases/" version "esr/source/firefox-"
|
||||
version "esr.source.tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xvwk3vkbxnybpi3gwk48nxffg44lbv58mbk2xq6cz50ffq0k5k2"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:configure-flags flags)
|
||||
#~(delete "--enable-rust-simd" #$flags))
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(replace 'adjust-tests
|
||||
(lambda _
|
||||
(with-directory-excursion "../js/src/tests"
|
||||
;; The test suite expects a lightly patched ICU. Disable tests
|
||||
;; that do not work with the system version. See
|
||||
;; "intl/icu-patches" for clues.
|
||||
|
||||
;; See <https://unicode-org.atlassian.net/browse/ICU-20992> and
|
||||
;; <https://bugzilla.mozilla.org/show_bug.cgi?id=1636984> and
|
||||
;; related patch for why this is failing.
|
||||
(delete-file "non262/Intl/DateTimeFormat/\
|
||||
fractional-second-digits-append-item.js")
|
||||
;; FIXME: got "0 \u251CAM/PM: noon\u2524", expected "0 (AM/PM: noon)"
|
||||
(delete-file "non262/Intl/DateTimeFormat/day-period-hour-cycle.js")
|
||||
;; FIXME: got "en-US-posix", expected "en-US-POSIX".
|
||||
(delete-file "non262/Intl/available-locales-supported.js")
|
||||
;; FIXME: got "en-US", expected "en-US-POSIX"
|
||||
(delete-file "non262/Intl/available-locales-resolved.js")
|
||||
|
||||
;;; Since 115:
|
||||
;; Mismatching array lengths
|
||||
(delete-file "non262/Intl/supportedValuesOf-timeZones-canonical.js")
|
||||
;; FIXME: got "America/Santa_Isabel", expected "America/Tijuana":
|
||||
;; America/Santa_Isabel -> America/Tijuana
|
||||
(delete-file "non262/Intl/DateTimeFormat/timeZone_backward_links.js")
|
||||
;; TODO: tzdata 2024a expected – find a way to regenerate
|
||||
;; these generated tests
|
||||
(delete-file "non262/Intl/DateTimeFormat/timeZone_version.js")
|
||||
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u5047"
|
||||
(delete-file "non262/Intl/Collator/implicithan.js")
|
||||
;; FIXME: got "\uD840\uDDF2", expected "\u3467"
|
||||
(delete-file "non262/Intl/Collator/big5han-gb2312han.js"))))
|
||||
|
||||
(replace 'pre-check
|
||||
(lambda _
|
||||
(with-directory-excursion "../js/src/tests"
|
||||
(substitute* "shell/os.js"
|
||||
;; FIXME: Why does the killed process have an exit status?
|
||||
((".*killed process should not have exitStatus.*")
|
||||
""))
|
||||
|
||||
;; XXX: Delete all tests that test time zone functionality,
|
||||
;; because the test suite uses /etc/localtime to figure out
|
||||
;; the offset from the hardware clock, which does not work
|
||||
;; in the build container. See <tests/non262/Date/shell.js>.
|
||||
(delete-file-recursively "non262/Date")
|
||||
(delete-file "non262/Intl/DateTimeFormat/tz-environment-variable.js")
|
||||
|
||||
(setenv "JSTESTS_EXTRA_ARGS"
|
||||
(string-join
|
||||
(list
|
||||
;; Do not run tests marked as "random".
|
||||
"--exclude-random"
|
||||
;; Exclude web platform tests.
|
||||
"--wpt=disabled"
|
||||
;; Respect the daemons configured number of jobs.
|
||||
(string-append "--worker-count="
|
||||
(number->string
|
||||
(parallel-job-count)))))))))))))
|
||||
(inputs
|
||||
(list icu4c-73 readline zlib))))
|
||||
|
||||
;;; TEMPORARY old version of icecat-source for use by icedove until it is updated.
|
||||
(define %icecat-140.9.1-base-version "140.9.1")
|
||||
(define %icecat-140.9.1-version (string-append %icecat-140.9.1-base-version "-gnu1"))
|
||||
|
||||
+32
-20
@@ -578,7 +578,10 @@ This package provides the core library and elements.")
|
||||
(substitute* "tests/check/meson.build"
|
||||
;; This test causes nondeterministic failures (see:
|
||||
;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/895>).
|
||||
((".*'elements/appsrc.c'.*") ""))
|
||||
((".*'elements/appsrc.c'.*") "")
|
||||
;; This one is flaky (see:
|
||||
;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5016>).
|
||||
((".*'elements/inputselector.c'.*") ""))
|
||||
;; Some other tests fail on other architectures.
|
||||
#$@(cond
|
||||
((target-x86-32?)
|
||||
@@ -766,7 +769,8 @@ model to base your own plug-in on, here it is.")
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags #~(list "-Dsctp-internal-usrsctp=disabled"
|
||||
#:configure-flags #~(list "-Dgpl=enabled"
|
||||
"-Dsctp-internal-usrsctp=disabled"
|
||||
;; TODO: Figure out why audiovisualizer test
|
||||
;; fails on riscv64-linux.
|
||||
#$@(if (target-riscv64?)
|
||||
@@ -776,6 +780,15 @@ model to base your own plug-in on, here it is.")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
#$@%common-gstreamer-phases
|
||||
(add-after 'unpack 'patch-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "ext/resindvd/resindvdsrc.c"
|
||||
;; `g_module_open' is a wrapper above dlopen; pass it the
|
||||
;; absolute file name of the library to ensure it is always
|
||||
;; found.
|
||||
(("\"libdvdcss\"")
|
||||
(format #f "~s"
|
||||
(search-input-file inputs "lib/libdvdcss.so"))))))
|
||||
(add-after 'unpack 'adjust-tests
|
||||
(lambda* (#:key native-inputs inputs #:allow-other-keys)
|
||||
(let ((gst-plugins-good (assoc-ref (or native-inputs inputs)
|
||||
@@ -789,18 +802,18 @@ model to base your own plug-in on, here it is.")
|
||||
|
||||
;; The 'elements_shm.test_shm_live' test sometimes times out
|
||||
;; (see:
|
||||
;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/790).
|
||||
;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/790>).
|
||||
((".*'elements/shm\\.c'.*") "")
|
||||
|
||||
;; The 'elements_curlhttpsrc' test sometimes times out.
|
||||
((".*'elements/curlhttpsrc\\.c'.*") "")
|
||||
|
||||
;; The 'mxfdemux' test fails for unknown reasons (see:
|
||||
;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3921).
|
||||
;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3921>).
|
||||
((".*'elements/mxfdemux.c'.*") "")
|
||||
|
||||
;; Unexpected critical/warning, see
|
||||
;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3000>
|
||||
;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/792>
|
||||
((".*'elements/netsim\\.c'.*") "")
|
||||
|
||||
;; TODO: Figure out why this test fails on riscv64-linux.
|
||||
@@ -809,30 +822,19 @@ model to base your own plug-in on, here it is.")
|
||||
"'elements/viewfinderbin.c'], true, ],"))
|
||||
'())
|
||||
|
||||
;; This test is flaky on at least some architectures.
|
||||
;; This test is flaky.
|
||||
;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1244
|
||||
#$@(if (member (%current-system)
|
||||
'("aarch64-linux" "riscv64-linux"))
|
||||
`((("'elements/camerabin\\.c'\\].*],")
|
||||
"'elements/camerabin.c'], true, ],"))
|
||||
'())
|
||||
(("'elements/camerabin\\.c'\\].*],")
|
||||
"'elements/camerabin.c'], true, ],")
|
||||
|
||||
;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412
|
||||
((".*elements/dtls\\.c.*") "")
|
||||
|
||||
;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3921
|
||||
((".*elements/mxfdemux\\.c.*") "")
|
||||
|
||||
;; Unable to create pipeline 'bin.
|
||||
;; ( vulkanupload ! vulkancolorconvert ! vulkandownload )':
|
||||
;; no element "vulkanupload"
|
||||
((".*elements/vkcolorconvert\\.c.*") "")
|
||||
((".*elements/vkupload\\.c.*") ""))
|
||||
(substitute* "tests/check/elements/zxing.c"
|
||||
;; zxing 1.2.0 seemingly changed the type representation of
|
||||
;; the EAN_13 structure; disable it.
|
||||
((".*\"EAN_13\".*")
|
||||
"")))))
|
||||
((".*elements/vkupload\\.c.*") "")))))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
;; Tests require a running X server.
|
||||
@@ -1162,9 +1164,19 @@ after their category.")
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
|
||||
#:configure-flags #~(list "-Dgpl=enabled")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
#$@%common-gstreamer-phases
|
||||
(add-after 'unpack 'patch-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "ext/dvdread/dvdreadsrc.c"
|
||||
;; `g_module_open' is a wrapper above dlopen; pass it the
|
||||
;; absolute file name of the library to ensure it is always
|
||||
;; found.
|
||||
(("\"libdvdcss\"")
|
||||
(format #f "~s"
|
||||
(search-input-file inputs "lib/libdvdcss.so"))))))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
;; Tests require a running X server.
|
||||
|
||||
+44
-38
@@ -24,7 +24,7 @@
|
||||
;;; Copyright © 2019 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
|
||||
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;; Copyright © 2020-2025 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2020-2026 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
|
||||
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
|
||||
@@ -387,7 +387,7 @@ applications.")
|
||||
(define-public pango
|
||||
(package
|
||||
(name "pango")
|
||||
(version "1.56.4")
|
||||
(version "1.57.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -396,7 +396,7 @@ applications.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0jnmydds9dmdah4fjj5rr5gmf1imxlxjc0w98if642n98vmsdf67"))))
|
||||
"0dfvlag7jhf4fzraxwhx4s016h2z7igq3knza9vfklkss8igs00a"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -647,7 +647,7 @@ highlighting and other features typical of a source code editor.")
|
||||
(define-public gdk-pixbuf
|
||||
(package
|
||||
(name "gdk-pixbuf")
|
||||
(version "2.44.4")
|
||||
(version "2.44.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@@ -655,7 +655,7 @@ highlighting and other features typical of a source code editor.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05xxpl3sd37lsp5qqy01m0w9c14dqfi84x9rawsffyj2y71sm8ck"))
|
||||
"0s5b010jlinmki5iidbj2yip8n2sxc6xc0qmcvpc104v2c4kxfb9"))
|
||||
(patches
|
||||
(search-patches
|
||||
"gdk-pixbuf-honor-GUIX_GDK_PIXBUF_MODULE_FILES.patch"))))
|
||||
@@ -781,7 +781,7 @@ images.")
|
||||
(hidden-package
|
||||
(package
|
||||
(name "at-spi2-core")
|
||||
(version "2.52.0")
|
||||
(version "2.60.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@@ -789,7 +789,7 @@ images.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1azmbzik0gl2s03c9lq3dff3h1iql1zvlwn28yhizl68421zrhqa"))))
|
||||
"16fb2hv12k2vzh462gbd4qf8ipvnb2ijrc5d7w56dzfqjwd0rrc0"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -987,7 +987,7 @@ application suites.")
|
||||
(package
|
||||
(inherit gtk+-2)
|
||||
(name "gtk+")
|
||||
(version "3.24.51")
|
||||
(version "3.24.52")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -996,10 +996,11 @@ application suites.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"07vw0rani9d65px36fzzj7sprv5r48shyjdgzipkihzqaldd98yh"))
|
||||
"197w1mb5vqm5d07sgdqkg54can7f1p4yjh42zx0y8z6m9p43shck"))
|
||||
(patches (search-patches
|
||||
"gtk3-respect-GUIX_GTK3_PATH.patch"
|
||||
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
|
||||
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"
|
||||
"gtk3-treeview-test-fix.patch"))))
|
||||
;; There is no "doc" output, because adding gtk-doc here would introduce a
|
||||
;; dependency cycle with itself.
|
||||
(outputs '("out" "bin"))
|
||||
@@ -1075,22 +1076,20 @@ application suites.")
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-failing-tests
|
||||
(lambda _
|
||||
;; These tests fail only in the containerized environment, for
|
||||
;; unknown reasons.
|
||||
(substitute* "testsuite/gtk/meson.build"
|
||||
((".*\\['defaultvalue'],.*") "")
|
||||
((".*\\['objects-finalize',.*") ""))
|
||||
;; The 'flipping-icons.ui' and 'gtk-icontheme-sizing.ui' tests
|
||||
;; fail for unknown reasons (see:
|
||||
;; <https://gitlab.gnome.org/GNOME/gtk/-/issues/7679>).
|
||||
(substitute* "testsuite/reftests/meson.build"
|
||||
((" 'flipping-icons.ui',.*") "")
|
||||
((" 'gtk-icontheme-sizing.ui',.*") ""))
|
||||
;; This test fails just on i686-linux, for unknown reasons.
|
||||
#$@(if (target-x86-32?)
|
||||
#~((substitute* "testsuite/reftests/meson.build"
|
||||
((" 'linear-gradient.ui',.*") "")))
|
||||
#~())))
|
||||
(substitute* "testsuite/gtk/meson.build"
|
||||
((".*\\['defaultvalue'],.*") "")
|
||||
((".*\\['objects-finalize',.*") ""))
|
||||
;; The 'flipping-icons.ui' and 'gtk-icontheme-sizing.ui' tests
|
||||
;; fail for unknown reasons (see:
|
||||
;; <https://gitlab.gnome.org/GNOME/gtk/-/issues/7679>).
|
||||
(substitute* "testsuite/reftests/meson.build"
|
||||
((" 'flipping-icons.ui',.*") "")
|
||||
((" 'gtk-icontheme-sizing.ui',.*") ""))
|
||||
;; This test fails just on i686-linux, for unknown reasons.
|
||||
#$@(if (target-x86-32?)
|
||||
#~((substitute* "testsuite/reftests/meson.build"
|
||||
((" 'linear-gradient.ui',.*") "")))
|
||||
#~())))
|
||||
(add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
|
||||
(assoc-ref glib-or-gtk:%standard-phases
|
||||
'generate-gdk-pixbuf-loaders-cache-file))
|
||||
@@ -1114,13 +1113,13 @@ application suites.")
|
||||
"/share/applications")))))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "GUIX_GTK3_PATH")
|
||||
(files '("lib/gtk-3.0")))))))
|
||||
(variable "GUIX_GTK3_PATH")
|
||||
(files '("lib/gtk-3.0")))))))
|
||||
|
||||
(define-public gtk
|
||||
(package
|
||||
(name "gtk")
|
||||
(version "4.20.3")
|
||||
(version "4.22.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -1128,9 +1127,11 @@ application suites.")
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0ly1gqc6ybxv5f2a9hvjp5k6l9mfzy2yv8iy2xqnr9l8628g4wr8"))
|
||||
(base32 "1z2mkmazc2d51jbg3qwwdycycqiwswm88nhw6bxscz8j86f5lyyd"))
|
||||
(patches
|
||||
(search-patches "gtk4-respect-GUIX_GTK4_PATH.patch"))
|
||||
(search-patches "gtk4-demo-reproducible.patch"
|
||||
"gtk4-needs-udmabuf.patch"
|
||||
"gtk4-respect-GUIX_GTK4_PATH.patch"))
|
||||
(modules '((guix build utils)))))
|
||||
(build-system meson-build-system)
|
||||
(outputs '("out" "bin" "doc"))
|
||||
@@ -1198,6 +1199,9 @@ application suites.")
|
||||
(("[ \t]*'empty-text.node',") "")
|
||||
(("[ \t]*'testswitch.node',") "")
|
||||
(("[ \t]*'widgetfactory.node',") "")
|
||||
;; The gtklistitemmanager test is flaky (see:
|
||||
;; <https://gitlab.gnome.org/GNOME/gtk/-/issues/6547>).
|
||||
((".*'gtklistitemmanager.c',.*") "")
|
||||
;; XXX: Figure out why this fails and report upstream.
|
||||
((".*'memorytexture',.*") "")
|
||||
((".*'yuv-matrix-dmabuf',.*") ""))
|
||||
@@ -1254,8 +1258,10 @@ application suites.")
|
||||
(setenv "XDG_CACHE_HOME" (getcwd))))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Tests require a running X server.
|
||||
(system "Xvfb :1 +extension GLX &")
|
||||
;; Tests require a running X server. The '-noreset' option is
|
||||
;; necessary to avoid spurious "Failed to open display" test
|
||||
;; errors.
|
||||
(system "Xvfb :1 +extension GLX -screen 0 1024x768x24 -noreset &")
|
||||
(setenv "DISPLAY" ":1")
|
||||
;; Tests write to $HOME.
|
||||
(setenv "HOME" (getcwd))
|
||||
@@ -1298,6 +1304,7 @@ application suites.")
|
||||
docbook-xsl
|
||||
gettext-minimal
|
||||
`(,glib "bin")
|
||||
glibc-utf8-locales ;some tests require en_US.UTF-8
|
||||
gobject-introspection ;for building introspection data
|
||||
graphene
|
||||
gtk-doc/stable ;for building documentation
|
||||
@@ -1321,7 +1328,6 @@ application suites.")
|
||||
(inputs
|
||||
(list colord ;for color printing support
|
||||
cups ;for CUPS print-backend
|
||||
ffmpeg ;for ffmpeg media-backend
|
||||
fribidi
|
||||
gi-docgen
|
||||
gstreamer ;for gstreamer media-backend
|
||||
@@ -1365,8 +1371,8 @@ application suites.")
|
||||
(native-search-paths
|
||||
(list
|
||||
(search-path-specification
|
||||
(variable "GUIX_GTK4_PATH")
|
||||
(files '("lib/gtk-4.0")))))
|
||||
(variable "GUIX_GTK4_PATH")
|
||||
(files '("lib/gtk-4.0")))))
|
||||
(search-paths native-search-paths)
|
||||
(home-page "https://www.gtk.org/")
|
||||
(synopsis "Cross-platform widget toolkit")
|
||||
@@ -2205,7 +2211,7 @@ information.")
|
||||
(define-public gtk-doc
|
||||
(package
|
||||
(name "gtk-doc")
|
||||
(version "1.34.0")
|
||||
(version "1.35.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@@ -2213,7 +2219,7 @@ information.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0746lwxgybc5ss3hzdd0crjjghk0ck0x9jbmz73iig405arp42xj"))
|
||||
"1qi5bgqca1chdcfw7v4h3sw8jg661nmp77d7x658mn6nxlj9y731"))
|
||||
(patches
|
||||
(search-patches "gtk-doc-respect-xml-catalog.patch"
|
||||
"gtk-doc-mkhtml-test-fix.patch"))))
|
||||
|
||||
@@ -89,14 +89,14 @@
|
||||
(define-public ibus-minimal
|
||||
(package
|
||||
(name "ibus")
|
||||
(version "1.5.32")
|
||||
(version "1.5.34-rc2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ibus/ibus")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256 (base32 "1rn2xpzi6x57n01rjin4a2h8yy1wdmvadgnglw0p6bdnc31q17a6"))))
|
||||
(sha256 (base32 "1x05dwhi79s1mqgs34srdr2d5fvkyvihqvcnw91630xyf4r76b1h"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(arguments
|
||||
@@ -204,7 +204,7 @@
|
||||
wayland
|
||||
xmodmap))
|
||||
(native-inputs
|
||||
(list autoconf
|
||||
(list autoconf-2.72
|
||||
automake
|
||||
docbook-xml-4.1.2
|
||||
`(,glib "bin") ;for glib-genmarshal
|
||||
|
||||
+75
-29
@@ -71,11 +71,12 @@
|
||||
#:use-module (gnu packages build-tools)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpp)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages datastructures)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gcc)
|
||||
@@ -96,10 +97,11 @@
|
||||
#:use-module (gnu packages mcrypt)
|
||||
#:use-module (gnu packages mp3)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages ocr)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages photo)
|
||||
#:use-module (gnu packages popt)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages popt)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-build)
|
||||
#:use-module (gnu packages python-check)
|
||||
@@ -115,7 +117,6 @@
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix gexp)
|
||||
@@ -183,36 +184,81 @@ convert images in more than 100 different formats.")
|
||||
(define-public gradia
|
||||
(package
|
||||
(name "gradia")
|
||||
(version "1.2.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/AlexanderVanhee/Gradia")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "07hal4h3kkjf7la02nqmqgw19sa6hkd130bkfmgwjimkv9zi8z2i"))))
|
||||
(version "1.13.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/AlexanderVanhee/Gradia")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "00s6xj9crj5gkh233q98fmq67f41y877xgrn49cycwb3kybp237n"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list #:glib-or-gtk? #t
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'skip-gtk-update-icon-cache
|
||||
(lambda _
|
||||
(substitute* "meson.build"
|
||||
(("gtk_update_icon_cache: true")
|
||||
"gtk_update_icon_cache: false")
|
||||
(("update_desktop_database: true")
|
||||
"update_desktop_database: false")))))))
|
||||
(inputs (list gtk libadwaita python python-pygobject))
|
||||
(native-inputs
|
||||
(list blueprint-compiler gettext-minimal `(,glib "bin") pkg-config))
|
||||
(list
|
||||
#:imported-modules (append %meson-build-system-modules
|
||||
%pyproject-build-system-modules)
|
||||
#:modules '((guix build meson-build-system)
|
||||
((guix build pyproject-build-system)
|
||||
#:prefix py:)
|
||||
(guix build utils))
|
||||
#:glib-or-gtk? #t
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'skip-gtk-update-icon-cache
|
||||
(lambda _
|
||||
(substitute* "meson.build"
|
||||
(("gtk_update_icon_cache: true")
|
||||
"gtk_update_icon_cache: false")
|
||||
(("update_desktop_database: true")
|
||||
"update_desktop_database: false"))))
|
||||
(add-after 'unpack 'set-tesseract-and-tessdata-path
|
||||
(lambda _
|
||||
(let* ((tesseract #$(this-package-input "tesseract-ocr"))
|
||||
(tesseract-bin (string-append tesseract "/bin/tesseract"))
|
||||
(tessdata (string-append tesseract "/share/tessdata")))
|
||||
(substitute* "meson.build"
|
||||
(("OCR_TESSERACT_CMD = '/app/bin/tesseract'")
|
||||
(format #f "OCR_TESSERACT_CMD = '~a'" tesseract-bin))
|
||||
(("OCR_ORIGINAL_TESSDATA_DIR = '/app/share/tessdata'")
|
||||
(format #f "OCR_ORIGINAL_TESSDATA_DIR = '~a'" tessdata))))))
|
||||
(add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(wrap-program (string-append #$output "/bin/gradia")
|
||||
`("GUIX_PYTHONPATH" =
|
||||
(,(getenv "GUIX_PYTHONPATH") ,(py:site-packages inputs
|
||||
outputs)))
|
||||
`("GI_TYPELIB_PATH" =
|
||||
(,(getenv "GI_TYPELIB_PATH")))
|
||||
`("GDK_PIXBUF_MODULE_FILE" =
|
||||
(,(getenv "GDK_PIXBUF_MODULE_FILE")))))))))
|
||||
(inputs (list bash-minimal
|
||||
gtk
|
||||
gtksourceview
|
||||
libadwaita
|
||||
libportal
|
||||
libsoup
|
||||
python
|
||||
python-pillow
|
||||
python-pycairo
|
||||
python-pygobject
|
||||
python-pytesseract
|
||||
tesseract-ocr
|
||||
webp-pixbuf-loader))
|
||||
(native-inputs (list blueprint-compiler
|
||||
desktop-file-utils
|
||||
gettext-minimal
|
||||
`(,glib "bin")
|
||||
gobject-introspection
|
||||
pkg-config))
|
||||
(home-page "https://github.com/AlexanderVanhee/Gradia")
|
||||
(synopsis "Edit screenshots")
|
||||
(description "Gradia is a GTK 4 application for enhancing and preparing
|
||||
(description
|
||||
"Gradia is a GTK 4 application for enhancing and preparing
|
||||
screenshots for blogs, social media, and documentation. It supports background
|
||||
customization, annotation tools (pen, arrow, text, highlight, stamp), padding,
|
||||
cropping, and various export formats.")
|
||||
cropping, @acronym{OCR, optical character recognition} and various export formats.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public iqa
|
||||
@@ -2808,7 +2854,7 @@ Format) file format decoder and encoder.")
|
||||
(define-public libjxl
|
||||
(package
|
||||
(name "libjxl")
|
||||
(version "0.11.1")
|
||||
(version "0.11.2")
|
||||
(outputs (list "out" "pixbuf-loader"))
|
||||
(source
|
||||
(origin
|
||||
@@ -2819,7 +2865,7 @@ Format) file format decoder and encoder.")
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1wfxzrhj8a19z6x47ib1qbmgyg56jsxjs955xcvqhdkrx8l2271r"))
|
||||
(base32 "1c7d0mlxmmjby00hzgwqfyr6nb6lqcgcjsqcdmg2l10rmxiw33rg"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Delete the bundles that will not be used.
|
||||
|
||||
@@ -1088,9 +1088,9 @@ wrappers.")
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference (url "https://github.com/tc39/test262")
|
||||
(commit "a5e69a1534de88d1eb29b76657d84c8541b72df7")))
|
||||
(commit "a6f387de323eb9ae56448bdb71c5d315df631ce4")))
|
||||
(file-name "test262")
|
||||
(sha256 (base32 "078a7nim0n9x36q7q8yvjwhk4ig29p25b03rr4l7g2b545cky66l"))
|
||||
(sha256 (base32 "09avg4f75rzbmh3hcybdvjij7hbl2m79x6xp1hgl6h8ihfbn33l0"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet #~(begin
|
||||
(for-each delete-file
|
||||
@@ -1100,7 +1100,7 @@ wrappers.")
|
||||
(define-public quickjs-ng
|
||||
(package
|
||||
(name "quickjs-ng")
|
||||
(version "0.11.0")
|
||||
(version "0.14.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -1109,11 +1109,7 @@ wrappers.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0mfk32zvvh6c9a9plp6ad07888g795lhdmal3jyaclyn2k5iig9i"))
|
||||
;; Remove these patches on next release as they will be included.
|
||||
(patches (search-patches
|
||||
"quickjs-ng-64-bits-precision-on-i686.patch"
|
||||
"quickjs-ng-fix-atomics.pause-on-32-bit.patch"))))
|
||||
(base32 "05k8niswh0ly5sx0129jdhiinqs84s86b7sv29ff68v3546dl04i"))))
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags
|
||||
@@ -1146,6 +1142,23 @@ wrappers.")
|
||||
"")
|
||||
(("BUILD_DIR=build")
|
||||
"BUILD_DIR=../build"))))
|
||||
;; XXX: Unknown test failures in quickjs-ng 1.4.0.
|
||||
;; Remove for future versions.
|
||||
(add-before 'configure 'skip-failing-tests
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((test262 (assoc-ref inputs "test262"))
|
||||
(lang-path (in-vicinity test262 "test/language")))
|
||||
(substitute* "test262.conf"
|
||||
(("# list excluded tests and directories here" all)
|
||||
(string-join
|
||||
(cons* all
|
||||
(map (lambda (f)
|
||||
(in-vicinity lang-path f))
|
||||
'(;; export 'foo' in module /gnu/store is ambiguous
|
||||
"module-code/ambiguous-export-bindings/"
|
||||
;; Could not find export 'default'
|
||||
"import/import-attributes/text-self.js")))
|
||||
"\n"))))))
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
|
||||
@@ -164,14 +164,14 @@ resolution, asynchronous file system operations, and threading primitives.")
|
||||
(package
|
||||
(inherit libuv)
|
||||
(name "libuv")
|
||||
(version "1.51.0")
|
||||
(version "1.49.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dist.libuv.org/dist/v" version
|
||||
"/libuv-v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1szqivvs7izbhw1a3nd1ipbk012yvqqkjg0sjmqxw1hi1fwmf1az"))))
|
||||
"1a75p8wp4l43y2ffj1szs1ssm6nzjad7k51bqi2r04ngs9mp044c"))))
|
||||
(properties '((hidden? . #t)))))
|
||||
|
||||
(define-public libuv-for-r-httpuv
|
||||
|
||||
+21
-22
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012-2021, 2021-2025 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012-2021, 2021-2026 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
|
||||
@@ -10460,7 +10460,6 @@ known as Slingshot.")
|
||||
(cons package extra)
|
||||
'()))))
|
||||
(append (list rdma-core libnl)
|
||||
(if-supported rocr-runtime)
|
||||
(if-supported psm)
|
||||
(if-supported psm2)
|
||||
(if-supported libcxi curl json-c))))
|
||||
@@ -10504,6 +10503,15 @@ applications deal with directly. It works in conjunction with provider
|
||||
libraries, which are often integrated directly into libfabric.")
|
||||
(license (list license:bsd-2 license:gpl2)))) ;dual
|
||||
|
||||
;; Note: ROCm support is kept separate to avoid a significant increase in
|
||||
;; closure size: <https://codeberg.org/guix/guix/issues/7225>.
|
||||
(define-public libfabric-rocm
|
||||
(package/inherit libfabric
|
||||
(name "libfabric-rocm")
|
||||
(inputs (modify-inputs inputs
|
||||
(append rocr-runtime)))
|
||||
(synopsis "Open Fabric Interfaces (with ROCm support)")))
|
||||
|
||||
(define-public libfabric-1 ;needed by Open MPI 4.x
|
||||
(package
|
||||
(inherit libfabric)
|
||||
@@ -11527,7 +11535,7 @@ of Linux application development.")
|
||||
(define-public wireplumber
|
||||
(package
|
||||
(name "wireplumber")
|
||||
(version "0.5.12")
|
||||
(version "0.5.14")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -11537,7 +11545,7 @@ of Linux application development.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1dljz669ywy1lvvn0jh14ymynmbii45q5vay71zajpcg31249dyw"))))
|
||||
(base32 "0rr2vlbwjjhgsk6lk2iwaww21gks2v63f0cs01rh2mdi8jpfz7h2"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-Dsystemd=disabled"
|
||||
@@ -12260,7 +12268,7 @@ that avoids the usage of older system-wide @file{/sys} interface.")
|
||||
(define-public libtracefs
|
||||
(package
|
||||
(name "libtracefs")
|
||||
(version "1.7.0")
|
||||
(version "1.8.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -12269,25 +12277,16 @@ that avoids the usage of older system-wide @file{/sys} interface.")
|
||||
(commit (string-append name "-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0v896n3q0df0nxx5drbwyaqhrqiyxl06rvrdw3gp2r37awa9g1zb"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
#~(begin
|
||||
(substitute* (list "Makefile" "scripts/utils.mk")
|
||||
(("/bin/(pwd)" _ command) command))))))
|
||||
(build-system gnu-build-system)
|
||||
(base32 "1bc4mwf488nlja64zawjznvb6640vchjb25xa02v53x6qfb1mpmq"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ; no test suite
|
||||
#:make-flags
|
||||
#~(list
|
||||
(string-append "CC=" #$(cc-for-target))
|
||||
(string-append "pkgconfig_dir=" #$output "/lib/pkgconfig")
|
||||
(string-append "prefix=" #$output))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)))) ; no configure script
|
||||
(native-inputs (list pkg-config))
|
||||
#:configure-flags
|
||||
#~(list "-Ddoc=false")))
|
||||
(native-inputs
|
||||
(list bison
|
||||
flex
|
||||
pkg-config))
|
||||
(inputs (list libtraceevent))
|
||||
(home-page "https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/")
|
||||
(synopsis "Linux kernel trace file system library")
|
||||
|
||||
+16
-33
@@ -229,42 +229,25 @@ provides some unique features such as CSV log format and wide string support.")
|
||||
(define-public multitail
|
||||
(package
|
||||
(name "multitail")
|
||||
(version "6.5.2")
|
||||
(version "7.1.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/halturin/multitail")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "17hg5qpangyx4m7hp2x4h56mp6w3wsaslg1il39qcpwsffh1rihc"))))
|
||||
(build-system gnu-build-system)
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/folkertvanheusden/multitail")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "11kkd2rg3qc7ck5iyha0f8l5lqc1bvwypn80di0h77h7p106blvk"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
(list (string-append "CC=" ,(cc-for-target))
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||
"SYSCONFDIR=$(PREFIX)/etc")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-broken-build
|
||||
;; With some luck, you might be able to remove this when updating…
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
((" \\*\\.txt") "")
|
||||
((".*CONFIG_DIR.*") "")
|
||||
(("^install: .*" match)
|
||||
(string-append match
|
||||
"\t$(INSTALL_DIR) $(DESTDIR)$(SYSCONFDIR)\n")))
|
||||
(substitute* "version"
|
||||
(("(VERSION=).*" _ assign)
|
||||
(string-append assign ,version)))))
|
||||
(add-after 'unpack 'patch-curses-headers
|
||||
(lambda _
|
||||
(substitute* "mt.h"
|
||||
(("ncursesw/") ""))))
|
||||
(delete 'configure)) ; no configure script
|
||||
#:tests? #f)) ; no test suite (make check just runs cppcheck)
|
||||
(list
|
||||
#:tests? #f ;no test suite
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-curses-headers
|
||||
(lambda _
|
||||
(substitute* "mt.h"
|
||||
(("ncursesw/") "")))))))
|
||||
(inputs (list ncurses))
|
||||
(home-page "https://vanheusden.com/multitail/")
|
||||
(synopsis "Monitor multiple log files")
|
||||
|
||||
@@ -1129,7 +1129,7 @@ Grammars (PEGs).")
|
||||
(define (make-lua-luv name lua)
|
||||
(package
|
||||
(name name)
|
||||
(version "1.43.0-0")
|
||||
(version "1.44.2-0")
|
||||
(source (origin
|
||||
;; The release tarball includes the sources of libuv but does
|
||||
;; not include the pkg-config files.
|
||||
@@ -1140,7 +1140,7 @@ Grammars (PEGs).")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1yzi4bm845vl84wyv2qw4z1n1v285lgwm681swmp84brfy2s7czp"))))
|
||||
"0jdvsznzha290gnzd66vscsdacd5dapq0scwy4zj64d9wnsv39p7"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list #:tests? #f ; there are none
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2014-2025 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014-2026 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
||||
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2017 Dave Love <fx@gnu.org>
|
||||
@@ -432,7 +432,7 @@ software vendors, application developers and computer science researchers.")
|
||||
(package/inherit openmpi-5
|
||||
(name "openmpi-rocm")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments openmpi-5)
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:configure-flags flags '())
|
||||
#~(cons* (string-append "--with-rocm="
|
||||
#$(this-package-input "rocm-hip-runtime"))
|
||||
@@ -440,7 +440,9 @@ software vendors, application developers and computer science researchers.")
|
||||
(inputs (modify-inputs (package-inputs openmpi-5)
|
||||
;; XXX: This might break openmpi-5 for architectures where ROCm
|
||||
;; is not supported.
|
||||
(append rocm-hip-runtime)))
|
||||
(append rocm-hip-runtime)
|
||||
(replace "ucx" ucx-rocm)
|
||||
(replace "libfabric" libfabric-rocm)))
|
||||
(synopsis "MPI-3 implementation (with ROCm support)")))
|
||||
|
||||
(define-public openmpi-c++
|
||||
|
||||
@@ -171,6 +171,7 @@
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages machine-learning)
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages messaging)
|
||||
#:use-module (gnu packages mp3)
|
||||
#:use-module (gnu packages mpd)
|
||||
@@ -224,6 +225,7 @@
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages wine)
|
||||
#:use-module ((srfi srfi-1) #:select (last)))
|
||||
|
||||
(define-public alsa-scarlett-gui
|
||||
@@ -5355,6 +5357,132 @@ includes instruments based on audio samples and various soft sythesizers. It
|
||||
can receive input from a MIDI keyboard.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
;; This version tracks the latest commit from master branch.
|
||||
(define-public lmms-next
|
||||
(let ((commit "83313e737d3137f7939f3daa9063a94a1ac01f7c")
|
||||
(revision "0"))
|
||||
(package/inherit lmms
|
||||
(name "lmms-next")
|
||||
(version (git-version "1.3.0-alpha.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(inherit (package-source lmms))
|
||||
(uri (git-reference
|
||||
(url "https://github.com/LMMS/lmms")
|
||||
(commit commit)
|
||||
;; Clone recursively only for the optional plugins. The 3rd
|
||||
;; party libraries will be deleted by the snippet.
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1mpp449rvn9f10bcxhpmxfinvj3jdv4s6qjhlp0sj9l783pv3h69"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Delete the bundled 3rd party libraries.
|
||||
(for-each delete-file-recursively
|
||||
(list "plugins/CarlaBase/carla"
|
||||
"plugins/OpulenZ/adplug"
|
||||
"plugins/Xpressive/exprtk"
|
||||
"src/3rdparty"))
|
||||
;; Do not check submodules.
|
||||
(substitute* "CMakeLists.txt"
|
||||
((".*CheckSubmodules.*") "")
|
||||
;; Do not use the bundled weakjack.
|
||||
(("JACK libraries\" ON") "JACK libraries\" OFF"))
|
||||
(substitute* "src/CMakeLists.txt"
|
||||
;; Do not add 3rd party libraries.
|
||||
((".*3rdparty.*") "")
|
||||
;; Use adplug and ringbuffer from the system.
|
||||
(("\\$\\{EXTRA_LIBRARIES\\}" all)
|
||||
(string-append all
|
||||
"\n\tadplug"
|
||||
"\n\tringbuffer")))
|
||||
(with-directory-excursion "plugins"
|
||||
;; Use carla from the system.
|
||||
(substitute* "CarlaBase/Carla.h"
|
||||
(("#include <CarlaDefines")
|
||||
"#include <carla/includes/CarlaDefines")
|
||||
(("#include <CarlaNative")
|
||||
"#include <carla/includes/CarlaNative")
|
||||
(("#include <CarlaBackend") "#include <carla/CarlaBackend")
|
||||
(("#include <CarlaUtils") "#include <carla/CarlaUtils"))
|
||||
(with-directory-excursion "OpulenZ"
|
||||
;; Do not use the bundled adplug.
|
||||
(substitute* "CMakeLists.txt"
|
||||
((".*adplug .*") "")
|
||||
((".*adplug/.*") "")
|
||||
(("^\\)") "")
|
||||
(("\\.png\"") ".png\"\n)"))
|
||||
;; Use adplug from the system.
|
||||
(substitute* "OpulenZ.cpp"
|
||||
(("<opl\\.h>") "<adplug/opl.h>")
|
||||
(("<temuopl\\.h>") "<adplug/temuopl.h>")
|
||||
(("<mididata\\.h>") "<adplug/mididata.h>")))
|
||||
;; Do not use the bundled hiir.
|
||||
(substitute* "SlewDistortion/CMakeLists.txt"
|
||||
(("TARGET_LINK_LIBRARIES\\(slewdistortion hiir\\)") ""))
|
||||
;; Do not use the bundled exprtk.
|
||||
(substitute* "Xpressive/CMakeLists.txt"
|
||||
((".*\\(exprtk .*") "")
|
||||
((".*xpressive exprtk.*") "")))
|
||||
;; Avoid "invalid conversion from 'const unsigned char*' to
|
||||
;; 'unsigned char*'" error.
|
||||
(substitute* "plugins/OpulenZ/OpulenZ.cpp"
|
||||
(("unsigned char \\*inst") "const unsigned char *inst"))))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:qtbase _ #f) qtbase)
|
||||
((#:configure-flags flags)
|
||||
#~(cons* "-DWANT_QT6=ON" (delete "-DWANT_QT5=ON" #$flags)))
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(delete 'unpack-rpmalloc)
|
||||
(replace 'fix-carla-export
|
||||
;; Taken from NixOS package definition.
|
||||
(lambda _
|
||||
(substitute* "plugins/CarlaBase/Carla.h"
|
||||
(("CARLA_EXPORT")
|
||||
"CARLA_API_EXPORT"))))))))
|
||||
(native-inputs
|
||||
(modify-inputs native-inputs
|
||||
(delete "rpmalloc")
|
||||
(replace "qttools" qttools)))
|
||||
(inputs
|
||||
(modify-inputs inputs
|
||||
(delete "qtx11extras")
|
||||
(replace "carla" carla-2.6)
|
||||
(replace "qtwayland" qtwayland)
|
||||
(replace "sdl12-compat" sdl2)
|
||||
(append adplug
|
||||
exprtk
|
||||
hiir
|
||||
libxml2
|
||||
lilv
|
||||
lv2
|
||||
perl
|
||||
perl-list-moreutils
|
||||
perl-xml-parser
|
||||
qtsvg
|
||||
ringbuffer
|
||||
suil)))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "LV2_PATH")
|
||||
(files '("lib/lv2"))))))))
|
||||
|
||||
(define-public lmms-next-with-vst
|
||||
(package/inherit lmms-next
|
||||
(name "lmms-next-with-vst")
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:configure-flags flags)
|
||||
#~(cons* (string-append "-DWINE_LOCATIONS=" #$(wine-for-system))
|
||||
(delete "-DWANT_VST=OFF" #$flags)))))
|
||||
(inputs
|
||||
(modify-inputs inputs
|
||||
(append (wine-for-system))))))
|
||||
|
||||
(define-public stargate
|
||||
(package
|
||||
(name "stargate")
|
||||
|
||||
@@ -591,7 +591,7 @@ Android, and ChromeOS.")
|
||||
(define-public libnice
|
||||
(package
|
||||
(name "libnice")
|
||||
(version "0.1.22")
|
||||
(version "0.1.23")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -601,7 +601,7 @@ Android, and ChromeOS.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0ik45q1qlr04llr2ssm6zb73840dmn31q303k3qrcpgj0jp578hg"))))
|
||||
"0zqnqhcm1rx5axbzd448yi6j4bq4kykiqb4wihs2p8h1k49nkyjh"))))
|
||||
(build-system meson-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(arguments
|
||||
@@ -614,23 +614,25 @@ Android, and ChromeOS.")
|
||||
(add-after 'unpack 'disable-failing-tests
|
||||
(lambda _
|
||||
(substitute* "tests/meson.build"
|
||||
;; This test is flaky (see:
|
||||
;; <https://gitlab.freedesktop.org/libnice/libnice/-/work_items/210>).
|
||||
((".*'test-send-recv',.*") "")
|
||||
;; ‘test-set-port-range.c:66:main: assertion failed:
|
||||
;; (nice_agent_gather_candidates (agent, stream1))’
|
||||
(("'test-set-port-range'" all)
|
||||
(string-append "# " all))
|
||||
;; The following test is disabled as it fails in a
|
||||
;; nondeterministic fashion (see:
|
||||
;; https://gitlab.freedesktop.org/libnice/libnice/-/issues/151).
|
||||
;; <https://gitlab.freedesktop.org/libnice/libnice/-/issues/151>).
|
||||
(("'test-bsd'" all)
|
||||
(string-append "# " all))
|
||||
;; The test-new-trickle fails with GLib 2.83.0 (see:
|
||||
;; https://gitlab.freedesktop.org/libnice/libnice/-/issues/198).
|
||||
(("'test-new-trickle'" all)
|
||||
(string-append "# " all)))
|
||||
;; This test uses getaddrinfo, which cannot resolve in the
|
||||
;; build environment.
|
||||
((".*'test-slow-resolving',.*") ""))
|
||||
(substitute* "stun/tests/meson.build"
|
||||
;; test-bind.c:234: bad_responses: Assertion `len >= 20'
|
||||
;; failed (see:
|
||||
;; https://gitlab.freedesktop.org/libnice/libnice/-/issues/150).
|
||||
;; <https://gitlab.freedesktop.org/libnice/libnice/-/issues/150>).
|
||||
(("'bind', ")
|
||||
""))))
|
||||
(add-after 'install 'move-docs
|
||||
|
||||
@@ -2324,7 +2324,7 @@ a string consisting of a number and a time unit is converted to milliseconds.")
|
||||
(define-public node-nan
|
||||
(package
|
||||
(name "node-nan")
|
||||
(version "2.26.2")
|
||||
(version "2.22.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -2333,7 +2333,7 @@ a string consisting of a number and a time unit is converted to milliseconds.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "18xv0m40jgy3sc4pldw95w6p72ms5a5h0x2sm2mimlwlmxmrjlmb"))))
|
||||
(base32 "02gqm23x26glffvyxrnk610hy3hg0kwh2v58dhnb032l0jhjzqvp"))))
|
||||
(build-system node-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
||||
+58
-48
@@ -274,7 +274,7 @@
|
||||
(lambda (file stat)
|
||||
(executable-file? file))
|
||||
#:stat lstat)))))
|
||||
(add-after 'install 'fix-node-gyp-reference
|
||||
(add-after 'install 'install-npmrc
|
||||
;; Note: programs like node-gyp only receive these values if
|
||||
;; they are started via `npm` or `npx`.
|
||||
;; See: https://github.com/nodejs/node-gyp#npm-configuration
|
||||
@@ -482,7 +482,7 @@ Node.js and web browsers.")
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/nodejs/llparse-builder.git")
|
||||
(url "https://github.com/indutny/llparse-builder.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
@@ -491,6 +491,10 @@ Node.js and web browsers.")
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; FIXME: Unneeded runtime dependency.
|
||||
;; https://github.com/indutny/llparse-builder/pull/2
|
||||
(substitute* "package.json"
|
||||
(("\"@types/debug.*,") ""))
|
||||
;; Fix imports for esbuild.
|
||||
;; https://github.com/evanw/esbuild/issues/477
|
||||
(substitute* '("src/node/invoke.ts"
|
||||
@@ -517,8 +521,7 @@ Node.js and web browsers.")
|
||||
(add-after 'patch-dependencies 'delete-dependencies
|
||||
(lambda _
|
||||
(modify-json (delete-dependencies
|
||||
`("@types/debug"
|
||||
"@types/mocha"
|
||||
`("@types/mocha"
|
||||
"@types/node"
|
||||
"mocha"
|
||||
"ts-node"
|
||||
@@ -536,7 +539,7 @@ Node.js and web browsers.")
|
||||
(list node-binary-search-bootstrap node-debug-bootstrap))
|
||||
(native-inputs
|
||||
(list esbuild))
|
||||
(home-page "https://github.com/nodejs/llparse-builder#readme")
|
||||
(home-page "https://github.com/indutny/llparse-builder#readme")
|
||||
(properties '((hidden? . #t)))
|
||||
(synopsis "Graph builder for consumption by llparse")
|
||||
(description "This package builds graphs for consumption by llparse.")
|
||||
@@ -550,7 +553,7 @@ Node.js and web browsers.")
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/nodejs/llparse-frontend.git")
|
||||
(url "https://github.com/indutny/llparse-frontend.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
@@ -599,7 +602,7 @@ Node.js and web browsers.")
|
||||
(list node-debug-bootstrap node-llparse-builder-bootstrap))
|
||||
(native-inputs
|
||||
(list esbuild))
|
||||
(home-page "https://github.com/nodejs/llparse-frontend#readme")
|
||||
(home-page "https://github.com/indutny/llparse-frontend#readme")
|
||||
(properties '((hidden? . #t)))
|
||||
(synopsis "Frontend for the llparse compiler")
|
||||
(description "This package is a frontend for the llparse compiler.")
|
||||
@@ -608,17 +611,17 @@ Node.js and web browsers.")
|
||||
(define-public node-llparse-bootstrap
|
||||
(package
|
||||
(name "node-llparse")
|
||||
(version "7.3.0")
|
||||
(version "7.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/nodejs/llparse.git")
|
||||
(url "https://github.com/indutny/llparse.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"09hqjcynkz5iv7aydzdwgs42r7y2zylplv0ff7w0vkdsgb08j22a"))
|
||||
"10da273iy2if88hp79cwms6c8qpsl1fkgzll6gmqyx5yxv5mkyp6"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@@ -642,14 +645,10 @@ Node.js and web browsers.")
|
||||
(add-after 'patch-dependencies 'delete-dependencies
|
||||
(lambda args
|
||||
(modify-json (delete-dependencies
|
||||
`("@stylistic/eslint-plugin"
|
||||
"@typescript-eslint/eslint-plugin"
|
||||
"@typescript-eslint/parser"
|
||||
"@types/debug"
|
||||
`("@types/debug"
|
||||
"@types/mocha"
|
||||
"@types/node"
|
||||
"esm"
|
||||
"eslint"
|
||||
"llparse-test-fixture"
|
||||
"mocha"
|
||||
"ts-node"
|
||||
@@ -677,7 +676,7 @@ parser definition into a C output.")
|
||||
(define-public llhttp-bootstrap
|
||||
(package
|
||||
(name "llhttp")
|
||||
(version "9.3.0")
|
||||
(version "9.2.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -686,7 +685,7 @@ parser definition into a C output.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0yz4ys94pjq2fs2pihpqjvmxj2mbpm8k5prlm445z4qlajzlr4kb"))
|
||||
"0mzg19aqb1am498gms0z75cwd5kmfg9p78b1hhxw67019nsjcbac"))
|
||||
(patches (search-patches "llhttp-ponyfill-object-fromentries.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
@@ -748,14 +747,14 @@ source files.")
|
||||
(define-public node-lts
|
||||
(package
|
||||
(inherit node-bootstrap)
|
||||
(version "24.14.1")
|
||||
(version "22.14.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://nodejs.org/dist/v" version
|
||||
"/node-v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1cri5lp3a9jhh34dbd48hq2zyb7xjb9qs6zl36l3q2blawgwz642"))
|
||||
"12msprh604s6qdsgwymxw4kl8ivaldbaydf4v37lbp02aznk2kkc"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@@ -771,17 +770,13 @@ source files.")
|
||||
"deps/icu-small"
|
||||
"deps/nghttp2"
|
||||
"deps/ngtcp2"
|
||||
"deps/llhttp"
|
||||
"deps/uv"
|
||||
"deps/zlib"
|
||||
"deps/zstd"))))))
|
||||
"deps/zlib"))))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:configure-flags configure-flags)
|
||||
''("--shared-cares"
|
||||
"--shared-libuv"
|
||||
"--shared-http-parser"
|
||||
"--shared-http-parser-libname=llhttp"
|
||||
"--shared-nghttp2"
|
||||
"--shared-openssl"
|
||||
"--shared-zlib"
|
||||
@@ -789,7 +784,6 @@ source files.")
|
||||
"--with-intl=system-icu"
|
||||
"--shared-ngtcp2"
|
||||
"--shared-nghttp3"
|
||||
"--shared-zstd"
|
||||
;;Needed for correct snapshot checksums
|
||||
"--v8-enable-snapshot-compression"))
|
||||
((#:phases phases)
|
||||
@@ -852,11 +846,9 @@ source files.")
|
||||
(for-each delete-file
|
||||
'("test/parallel/test-https-agent-unref-socket.js"))
|
||||
|
||||
;; These tests are timing-sensitive, and fail sporadically on
|
||||
;; This test is timing-sensitive, and fails sporadically on
|
||||
;; slow, busy, or even very fast machines.
|
||||
(for-each delete-file
|
||||
'("test/parallel/test-fs-utimes.js"
|
||||
"test/sequential/test-performance-eventloopdelay.js"))
|
||||
(delete-file "test/parallel/test-fs-utimes.js")
|
||||
|
||||
;; FIXME: This test fails randomly:
|
||||
;; https://github.com/nodejs/node/issues/31213
|
||||
@@ -907,6 +899,18 @@ source files.")
|
||||
"test/parallel/test-http2-invalid-last-stream-id.js")
|
||||
(("client\\.connect\\(address\\)")
|
||||
"client.connect(address.port)"))))
|
||||
(add-after 'delete-problematic-tests 'replace-llhttp-sources
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Replace pre-generated llhttp sources
|
||||
(let ((llhttp (assoc-ref inputs "llhttp")))
|
||||
(copy-file (string-append llhttp "/src/llhttp.c")
|
||||
"deps/llhttp/src/llhttp.c")
|
||||
(copy-file (string-append llhttp "/src/api.c")
|
||||
"deps/llhttp/src/api.c")
|
||||
(copy-file (string-append llhttp "/src/http.c")
|
||||
"deps/llhttp/src/http.c")
|
||||
(copy-file (string-append llhttp "/include/llhttp.h")
|
||||
"deps/llhttp/include/llhttp.h"))))
|
||||
;; npm installs dependencies by copying their files over a tar
|
||||
;; stream. A file with more than one hardlink is marked as a
|
||||
;; "Link". pacote/lib/fetcher.js calls node-tar's extractor with a
|
||||
@@ -931,22 +935,30 @@ source files.")
|
||||
;; https://github.com/npm/pacote/issues/285
|
||||
(add-after 'install 'ignore-number-of-hardlinks
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((dir (string-append (assoc-ref outputs "out")
|
||||
"/lib/node_modules/npm/node_modules"
|
||||
"/tar/dist")))
|
||||
(substitute*
|
||||
(list (string-append dir "/esm/write-entry.js")
|
||||
(string-append dir "/commonjs/write-entry.js"))
|
||||
(let ((file (string-append (assoc-ref outputs "out")
|
||||
"/lib/node_modules/npm/node_modules"
|
||||
"/tar/lib/write-entry.js")))
|
||||
(substitute* file
|
||||
(("this.stat.nlink > 1") "false")))))
|
||||
(replace 'fix-node-gyp-reference
|
||||
(add-after 'install 'install-node-gyp-wrapper
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(for-each
|
||||
(lambda (spec)
|
||||
(wrap-program (string-append out spec)
|
||||
`("npm_package_config_node_gyp_nodedir" = (,out))))
|
||||
'("/bin/npm"
|
||||
"/bin/npx")))))))))
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(dir (string-append out "/lib/node_modules/npm/bin/node-gyp-bin"))
|
||||
(file (string-append dir "/node-gyp")))
|
||||
(mkdir-p dir)
|
||||
;; See https://github.com/npm/cli/issues/6842
|
||||
(call-with-output-file file
|
||||
(lambda (port)
|
||||
(format port "#!~a/bin/sh
|
||||
if [ \"x$npm_config_node_gyp\" = \"x\" ]; then
|
||||
~a/bin/node \"~a/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"$@\"
|
||||
else
|
||||
\"$npm_config_node_gyp\" \"$@\"
|
||||
fi"
|
||||
(assoc-ref inputs "bash")
|
||||
out
|
||||
out)))
|
||||
(chmod file #o555))))))))
|
||||
(native-inputs
|
||||
(list ;; Runtime dependencies for binaries used as a bootstrap.
|
||||
c-ares-for-node-lts
|
||||
@@ -962,8 +974,7 @@ source files.")
|
||||
pkg-config
|
||||
procps
|
||||
python
|
||||
util-linux
|
||||
gcc-14))
|
||||
util-linux))
|
||||
(inputs
|
||||
(list bash-minimal
|
||||
coreutils
|
||||
@@ -976,8 +987,7 @@ source files.")
|
||||
nghttp3
|
||||
`(,nghttp2 "lib")
|
||||
openssl-3.0
|
||||
zlib
|
||||
`(,zstd-1.5.7 "lib")))
|
||||
zlib))
|
||||
(supported-systems
|
||||
(cons "riscv64-linux" (package-supported-systems node-bootstrap)))
|
||||
(properties (alist-delete 'hidden? (package-properties node-bootstrap)))))
|
||||
@@ -993,6 +1003,6 @@ source files.")
|
||||
`(cons* "--shared" "--without-npm" ,flags))
|
||||
((#:phases phases '%standard-phases)
|
||||
`(modify-phases ,phases
|
||||
(delete 'fix-node-gyp-reference)
|
||||
(delete 'install-npmrc)
|
||||
(delete 'patch-nested-shebangs)
|
||||
(delete 'ignore-number-of-hardlinks)))))))
|
||||
|
||||
+60
-2
@@ -31,6 +31,7 @@
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
@@ -46,13 +47,16 @@
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages pdf)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-build)
|
||||
#:use-module (gnu packages python-science)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages scanner)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages image))
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
(define-public ocrad
|
||||
(package
|
||||
@@ -75,6 +79,60 @@ feature extraction method. It can read images in PBM, PGM or PPM formats and
|
||||
it produces text in 8-bit or UTF-8 formats.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public python-pytesseract
|
||||
(package
|
||||
(name "python-pytesseract")
|
||||
(version "0.3.13")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/madmaze/pytesseract")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "16arn7ygk7ain5j5ayjcy10y6yhwfcc090i3r8q553m89rr1w0w1"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:test-flags
|
||||
#~(map (lambda (name)
|
||||
(string-append "--deselect=tests/pytesseract_test.py::" name))
|
||||
;; These tests cannot find generated files
|
||||
'("test_image_to_pdf_or_hocr[pdf]"
|
||||
"test_run_and_get_multiple_output[extensions0]"
|
||||
"test_run_and_get_multiple_output[extensions1]"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'set-tesseract-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "pytesseract/pytesseract.py"
|
||||
(("tesseract_cmd = 'tesseract'")
|
||||
(format #f "tesseract_cmd = '~a'"
|
||||
(search-input-file inputs "/bin/tesseract"))))))
|
||||
(add-before 'check 'set-tessdata-prefix
|
||||
(lambda _
|
||||
(setenv "TESSDATA_PREFIX"
|
||||
;; needs "fra" language
|
||||
(string-append #$(this-package-native-input
|
||||
"tesseract-ocr-tessdata-fast")
|
||||
"/share/tessdata")))))))
|
||||
(native-inputs (list python-numpy
|
||||
python-packaging
|
||||
python-pandas
|
||||
python-pytest
|
||||
python-setuptools
|
||||
tesseract-ocr
|
||||
tesseract-ocr-tessdata-fast))
|
||||
(inputs (list tesseract-ocr))
|
||||
(propagated-inputs (list python-pandas python-pillow))
|
||||
(home-page "https://github.com/madmaze/pytesseract")
|
||||
(synopsis "Python wrapper for Google's Tesseract-OCR")
|
||||
(description
|
||||
"This package provides @command{pytesseract} and Python wrapper library
|
||||
for Google's Tesseract-@acronym{OCR, optical character recognition}.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public tesseract-ocr-tessdata-fast
|
||||
(package
|
||||
(name "tesseract-ocr-tessdata-fast")
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
Pretend that stat's mtime is broken, so that the fontconfig cache does not
|
||||
depend upon modification time to determine if a cache is stale.
|
||||
|
||||
diff --git a/src/fcstat.c b/src/fcstat.c
|
||||
index 9b54e2b4..76d7780e 100644
|
||||
--- a/src/fcstat.c
|
||||
@@ -10,6 +7,6 @@ index 9b54e2b4..76d7780e 100644
|
||||
FcIsFsMtimeBroken (const FcChar8 *dir)
|
||||
{
|
||||
+ return FcTrue;
|
||||
int fd = FcOpen ((const char *) dir, O_RDONLY);
|
||||
int fd = FcOpen ((const char *)dir, O_RDONLY);
|
||||
|
||||
if (fd != -1)
|
||||
if (fd != -1) {
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
Some udmapbuf relying tests were still selected despite using --no-suite=needs-udmabuf.
|
||||
|
||||
Upstream-status: Patch prepared by upstream, not yet committed.
|
||||
|
||||
diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build
|
||||
index 0118304bf8..6bf4d4bb93 100644
|
||||
--- a/testsuite/gsk/meson.build
|
||||
+++ b/testsuite/gsk/meson.build
|
||||
@@ -275,6 +275,16 @@ compare_render_tests = [
|
||||
'zero-length-path-stroke',
|
||||
]
|
||||
|
||||
+# These tests use dmabufs and fail in testrunners that have
|
||||
+# dmabuf support but no access to /dev/udmabuf.
|
||||
+# For that purpose we add them to the 'needs-udmabuf' suite
|
||||
+# with this list
|
||||
+needs_udmabuf = [
|
||||
+ 'yuv-matrix-dmabuf-nv12',
|
||||
+ 'yuv-matrix-dmabuf-rgba',
|
||||
+ 'yuv-matrix-dmabuf-yuyv',
|
||||
+]
|
||||
+
|
||||
# These tests are either slow or need lots of memory.
|
||||
# So we don't run them in parallel with other such tests to not
|
||||
# cause CI failures
|
||||
@@ -386,6 +396,9 @@ foreach renderer : renderers
|
||||
if test_xfails.contains(variant) or (renderer_name == 'cairo' and variant == 'clip')
|
||||
extra_suites += ['failing']
|
||||
endif
|
||||
+ if needs_udmabuf.contains(testname)
|
||||
+ extra_suites += ['needs-udmabuf']
|
||||
+ endif
|
||||
test('compare ' + renderer_name + ' ' + testname + ' ' + variant, compare_render,
|
||||
protocol: 'tap',
|
||||
args: [
|
||||
@@ -0,0 +1,67 @@
|
||||
From 8fb3557bce1fdf9e2c4146e89b43753688d64455 Mon Sep 17 00:00:00 2001
|
||||
From: Alessandro Astone <alessandro.astone@canonical.com>
|
||||
Date: Mon, 23 Mar 2026 15:48:20 +0100
|
||||
Subject: [PATCH] testsuite/a11y: Fixup treeview test after focus policy
|
||||
changes
|
||||
|
||||
Since commit
|
||||
fbc28541f0 ("a11y: Don't send focus-related events for unfocused treeview")
|
||||
the window must have focus in order for the treeview to have focus and emit
|
||||
the signal we want to test for.
|
||||
|
||||
Part-of: <https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/9716>
|
||||
---
|
||||
testsuite/a11y/tree-relationships.c | 26 +++++++++++++++++++++++---
|
||||
1 file changed, 23 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/testsuite/a11y/tree-relationships.c b/testsuite/a11y/tree-relationships.c
|
||||
index 34f45b690a5..a1cc1f38288 100644
|
||||
--- a/testsuite/a11y/tree-relationships.c
|
||||
+++ b/testsuite/a11y/tree-relationships.c
|
||||
@@ -223,6 +223,24 @@ process_pending_idles ()
|
||||
g_main_loop_run (loop);
|
||||
}
|
||||
|
||||
+static void
|
||||
+on_window_focus (GObject *obj,
|
||||
+ GParamSpec *pspec,
|
||||
+ gpointer data)
|
||||
+{
|
||||
+ GMainLoop *loop = data;
|
||||
+ g_main_loop_quit (loop);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+static void
|
||||
+wait_window_focus (GtkWidget *window)
|
||||
+{
|
||||
+ GMainLoop *loop = g_main_loop_new (NULL, FALSE);
|
||||
+ g_signal_connect (window, "notify::is-active", G_CALLBACK (on_window_focus), loop);
|
||||
+ g_main_loop_run (loop);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
test_a11y_tree_focus (void)
|
||||
{
|
||||
@@ -243,13 +261,15 @@ test_a11y_tree_focus (void)
|
||||
window = builder_get_toplevel (builder);
|
||||
g_assert (window);
|
||||
|
||||
- populate_tree (builder);
|
||||
+ gtk_widget_show (window);
|
||||
+ gtk_window_present (GTK_WINDOW (window));
|
||||
+ wait_window_focus (window);
|
||||
|
||||
+ populate_tree (builder);
|
||||
tv = (GtkTreeView *)gtk_builder_get_object (builder, "treeview1");
|
||||
gtk_tree_view_expand_all (tv);
|
||||
|
||||
- gtk_widget_show (window);
|
||||
-
|
||||
+ gtk_widget_grab_focus (GTK_WIDGET (tv));
|
||||
gtk_tree_view_get_cursor (tv, &path, &focus_column);
|
||||
gtk_tree_path_down (path);
|
||||
data.count = 0;
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
Upstream-status: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/9675
|
||||
|
||||
diff --git a/demos/gtk-demo/geninclude.py b/demos/gtk-demo/geninclude.py
|
||||
index 2ebfaeb625..5864a608f5 100755
|
||||
--- a/demos/gtk-demo/geninclude.py
|
||||
+++ b/demos/gtk-demo/geninclude.py
|
||||
@@ -2,19 +2,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
-import re
|
||||
-import os
|
||||
from collections import *
|
||||
|
||||
+
|
||||
def add_quotes(s):
|
||||
return "\"" + s.lower() + "\""
|
||||
|
||||
+
|
||||
def wordify(s):
|
||||
return s.strip().rstrip(".,;:")
|
||||
|
||||
+
|
||||
def is_keyword(s):
|
||||
if s == "GTK":
|
||||
- return False
|
||||
+ return False
|
||||
elif s.startswith(("Gtk", "Gdk", "Pango")):
|
||||
return True
|
||||
elif s.startswith("G") and s[1].isupper():
|
||||
@@ -22,6 +23,7 @@ def is_keyword(s):
|
||||
else:
|
||||
return False
|
||||
|
||||
+
|
||||
out_file = sys.argv[1]
|
||||
in_files = sys.argv[2:]
|
||||
|
||||
@@ -82,6 +84,10 @@ for demo in demos:
|
||||
parent_index = parent_index + 1
|
||||
|
||||
|
||||
+# Sort demos by title
|
||||
+demos = sorted(demos, key=lambda x: x[1])
|
||||
+
|
||||
+
|
||||
# For every child with a parent, generate a list of child demos
|
||||
i = 0
|
||||
for parent in parents:
|
||||
@@ -91,15 +97,12 @@ for parent in parents:
|
||||
for child in demos:
|
||||
if child[1].startswith(parent + "/"):
|
||||
title = child[1][child[1].rfind('/') + 1:]
|
||||
- file_output += " { \"" + child[0] + "\", \"" + title + "\", " + "(const char*[]) {" + ", ".join(list(map(add_quotes, child[2])) + ["NULL"]) + " }, \"" + child[3] + "\", " + child[4] + ", NULL },\n"
|
||||
+ file_output += " { \"" + child[0] + "\", \"" + title + "\", " + "(const char*[]) {" + ", ".join(list(map(add_quotes, sorted(child[2]))) + ["NULL"]) + " }, \"" + child[3] + "\", " + child[4] + ", NULL },\n"
|
||||
|
||||
file_output += " { NULL }\n};\n"
|
||||
i = i + 1
|
||||
|
||||
|
||||
-# Sort demos by title
|
||||
-demos = sorted(demos, key=lambda x: x[1])
|
||||
-
|
||||
file_output += "\nDemoData gtk_demos[] = {\n"
|
||||
for demo in demos:
|
||||
# Do not generate one of these for demos with a parent demo
|
||||
@@ -118,10 +121,10 @@ for demo in demos:
|
||||
|
||||
if demo[5] != -1:
|
||||
child_array = "child" + str(demo[5])
|
||||
- file_output += " { " + name + ", " + title + ", " + "(const char*[]) {" + ", ".join(list(map(add_quotes, keywords)) + ["NULL"]) + " }, " + file + ", " + demo[4] + ", " + child_array + " },\n"
|
||||
+ file_output += " { " + name + ", " + title + ", " + "(const char*[]) {" + ", ".join(list(map(add_quotes, sorted(keywords))) + ["NULL"]) + " }, " + file + ", " + demo[4] + ", " + child_array + " },\n"
|
||||
|
||||
-file_output += " { NULL }\n};\n"
|
||||
|
||||
+file_output += " { NULL }\n};\n"
|
||||
ofile = open(out_file, "w")
|
||||
ofile.write(file_output)
|
||||
ofile.close()
|
||||
@@ -0,0 +1,35 @@
|
||||
Some udmapbuf relying tests were still selected despite using --no-suite=needs-udmabuf.
|
||||
|
||||
Upstream-status: Patch prepared by upstream, not yet committed.
|
||||
|
||||
diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build
|
||||
index 0118304bf8..6bf4d4bb93 100644
|
||||
--- a/testsuite/gsk/meson.build
|
||||
+++ b/testsuite/gsk/meson.build
|
||||
@@ -275,6 +275,16 @@ compare_render_tests = [
|
||||
'zero-length-path-stroke',
|
||||
]
|
||||
|
||||
+# These tests use dmabufs and fail in testrunners that have
|
||||
+# dmabuf support but no access to /dev/udmabuf.
|
||||
+# For that purpose we add them to the 'needs-udmabuf' suite
|
||||
+# with this list
|
||||
+needs_udmabuf = [
|
||||
+ 'yuv-matrix-dmabuf-nv12',
|
||||
+ 'yuv-matrix-dmabuf-rgba',
|
||||
+ 'yuv-matrix-dmabuf-yuyv',
|
||||
+]
|
||||
+
|
||||
# These tests are either slow or need lots of memory.
|
||||
# So we don't run them in parallel with other such tests to not
|
||||
# cause CI failures
|
||||
@@ -386,6 +396,9 @@ foreach renderer : renderers
|
||||
if test_xfails.contains(variant) or (renderer_name == 'cairo' and variant == 'clip')
|
||||
extra_suites += ['failing']
|
||||
endif
|
||||
+ if needs_udmabuf.contains(testname)
|
||||
+ extra_suites += ['needs-udmabuf']
|
||||
+ endif
|
||||
test('compare ' + renderer_name + ' ' + testname + ' ' + variant, compare_render,
|
||||
protocol: 'tap',
|
||||
args: [
|
||||
@@ -0,0 +1,29 @@
|
||||
This patch provides a correct library path when shared libraries referenced by
|
||||
typelibs are installed in a subdirectory of lib/ rather than directly
|
||||
underneath it. It works in combination with the
|
||||
gobject-introspection-absolute-shlib-path.patch patch that adds the
|
||||
'--fallback-library-path' option to its 'g-ir-scanner' command.
|
||||
|
||||
Retrieved-from: <https://raw.githubusercontent.com/NixOS/nixpkgs/refs/heads/master/pkgs/by-name/me/meson/004-gir-fallback-path.patch>
|
||||
|
||||
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
|
||||
index 1c6952df7..9466a0b7d 100644
|
||||
--- a/mesonbuild/modules/gnome.py
|
||||
+++ b/mesonbuild/modules/gnome.py
|
||||
@@ -923,6 +923,16 @@ class GnomeModule(ExtensionModule):
|
||||
if fatal_warnings:
|
||||
scan_command.append('--warn-error')
|
||||
|
||||
+ if len(set(girtarget.get_custom_install_dir()[0] for girtarget in girtargets if girtarget.get_custom_install_dir())) > 1:
|
||||
+ raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets])))
|
||||
+
|
||||
+ if girtargets[0].get_custom_install_dir():
|
||||
+ fallback_libpath = girtargets[0].get_custom_install_dir()[0]
|
||||
+ else:
|
||||
+ fallback_libpath = None
|
||||
+ if fallback_libpath is not None and isinstance(fallback_libpath, str) and len(fallback_libpath) > 0 and fallback_libpath[0] == "/":
|
||||
+ scan_command += ['--fallback-library-path=' + fallback_libpath]
|
||||
+
|
||||
generated_files = [f for f in libsources if isinstance(f, (GeneratedList, CustomTarget, CustomTargetIndex))]
|
||||
|
||||
scan_target = self._make_gir_target(state, girfile, scan_command, generated_files, depends, kwargs)
|
||||
@@ -0,0 +1,25 @@
|
||||
This patch provides a roundabout way of keeping "$prefix/..", i.e. the store
|
||||
directory, in DT_RPATH/DT_RUNPATH. See <https://issues.guix.gnu.org/70349>
|
||||
for motivation.
|
||||
|
||||
Upstream-Status: Not submitted.
|
||||
|
||||
--- a/mesonbuild/build.py
|
||||
+++ b/mesonbuild/build.py
|
||||
@@ -1826,6 +1826,7 @@ class BuildTarget(Target):
|
||||
def rpaths_for_non_system_absolute_shared_libraries(self, exclude_system: bool = True) -> ImmutableListProtocol[str]:
|
||||
paths: OrderedSet[str] = OrderedSet()
|
||||
srcdir = self.environment.get_source_dir()
|
||||
+ vicinity = os.path.dirname(self.prefix)
|
||||
|
||||
system_dirs = set()
|
||||
if exclude_system:
|
||||
@@ -1840,7 +1841,7 @@ class BuildTarget(Target):
|
||||
if dep.type_name not in {'library', 'pkgconfig', 'cmake'}:
|
||||
continue
|
||||
for libpath in dep.link_args:
|
||||
- if libpath.startswith('-'):
|
||||
+ if libpath.startswith('-') or libpath.startswith(vicinity):
|
||||
continue
|
||||
# For all link args that are absolute paths to a library file, add RPATH args
|
||||
if not os.path.isabs(libpath):
|
||||
@@ -0,0 +1,27 @@
|
||||
Retrieved-from: <https://src.fedoraproject.org/rpms/mozjs140/raw/49492baa47bc1d7b7d5bc738c4c81b4661302f27/f/9aa8b4b051dd539e0fbd5e08040870b3c712a846.patch>
|
||||
Upstream-status: https://bugzilla.mozilla.org/show_bug.cgi?id=1973994
|
||||
|
||||
From 9aa8b4b051dd539e0fbd5e08040870b3c712a846 Mon Sep 17 00:00:00 2001
|
||||
From: Philip Chimento <philip.chimento@gmail.com>
|
||||
Date: Wed, 16 Jul 2025 22:50:50 -0700
|
||||
Subject: [PATCH] Bug 1973994 - mozjs-140.pc does not contain -DXP_UNIX on
|
||||
Linux
|
||||
|
||||
Temporary fix.
|
||||
---
|
||||
js/src/js-config.h.in | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/js/src/js-config.h.in b/js/src/js-config.h.in
|
||||
index 8372623586..498ea968ba 100644
|
||||
--- a/js/src/js-config.h.in
|
||||
+++ b/js/src/js-config.h.in
|
||||
@@ -68,4 +68,8 @@
|
||||
#undef MOZJS_MAJOR_VERSION
|
||||
#undef MOZJS_MINOR_VERSION
|
||||
|
||||
+/* Controls API in UniquePtrExtensions.h. */
|
||||
+#undef XP_UNIX
|
||||
+#undef XP_WIN
|
||||
+
|
||||
#endif /* js_config_h */
|
||||
@@ -1,211 +0,0 @@
|
||||
From bd4ee689a854252665fd607758f078d930fbc4c8 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Noordhuis <info@bnoordhuis.nl>
|
||||
Date: Fri, 21 Nov 2025 11:56:28 +0100
|
||||
Subject: [PATCH] Fix JS number rounding on x87 (#1244)
|
||||
|
||||
Disable 80-bits extended precision, use standard 64-bits precision.
|
||||
The extra precision affects rounding and is user-observable, meaning
|
||||
it causes test262 tests to fail.
|
||||
|
||||
The rounding mode is a per-CPU (or, more accurately, per-FPU) property,
|
||||
and since quickjs is often used as a library, take care to tweak the FPU
|
||||
control word before sensitive operations, and restore it afterwards.
|
||||
|
||||
Only affects x87. SSE is IEEE-754 conforming.
|
||||
|
||||
Fixes: https://github.com/quickjs-ng/quickjs/issues/1236
|
||||
---
|
||||
.github/workflows/ci.yml | 4 ++--
|
||||
cutils.h | 19 +++++++++++++++++++
|
||||
quickjs.c | 34 +++++++++++++++++++++++++++++-----
|
||||
3 files changed, 50 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
|
||||
index d1efee1b9..c722b517d 100644
|
||||
--- a/.github/workflows/ci.yml
|
||||
+++ b/.github/workflows/ci.yml
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
- { os: ubuntu-latest, configType: asan+ubsan, runTest262: true }
|
||||
- { os: ubuntu-latest, configType: msan }
|
||||
- { os: ubuntu-latest, configType: tcc }
|
||||
- - { os: ubuntu-latest, arch: x86 }
|
||||
+ - { os: ubuntu-latest, arch: x86, runTest262: true }
|
||||
- { os: ubuntu-latest, arch: riscv64 }
|
||||
- { os: ubuntu-latest, arch: s390x }
|
||||
|
||||
@@ -97,7 +97,7 @@ jobs:
|
||||
uses: jirutka/setup-alpine@v1
|
||||
with:
|
||||
arch: ${{ matrix.config.arch }}
|
||||
- packages: "build-base make cmake"
|
||||
+ packages: "build-base make cmake git"
|
||||
|
||||
- name: uname
|
||||
run: uname -a
|
||||
diff --git a/cutils.h b/cutils.h
|
||||
index 5129c3cb2..f5d2a8bce 100644
|
||||
--- a/cutils.h
|
||||
+++ b/cutils.h
|
||||
@@ -634,6 +634,25 @@ int js_thread_join(js_thread_t thrd);
|
||||
|
||||
#endif /* !defined(EMSCRIPTEN) && !defined(__wasi__) */
|
||||
|
||||
+// JS requires strict rounding behavior. Turn on 64-bits double precision
|
||||
+// and disable x87 80-bits extended precision for intermediate floating-point
|
||||
+// results. 0x300 is extended precision, 0x200 is double precision.
|
||||
+// Note that `*&cw` in the asm constraints looks redundant but isn't.
|
||||
+#if defined(__i386__) && !defined(_MSC_VER)
|
||||
+#define JS_X87_FPCW_SAVE_AND_ADJUST(cw) \
|
||||
+ unsigned short cw; \
|
||||
+ __asm__ __volatile__("fnstcw %0" : "=m"(*&cw)); \
|
||||
+ do { \
|
||||
+ unsigned short t = 0x200 | (cw & ~0x300); \
|
||||
+ __asm__ __volatile__("fldcw %0" : /*empty*/ : "m"(*&t)); \
|
||||
+ } while (0)
|
||||
+#define JS_X87_FPCW_RESTORE(cw) \
|
||||
+ __asm__ __volatile__("fldcw %0" : /*empty*/ : "m"(*&cw))
|
||||
+#else
|
||||
+#define JS_X87_FPCW_SAVE_AND_ADJUST(cw)
|
||||
+#define JS_X87_FPCW_RESTORE(cw)
|
||||
+#endif
|
||||
+
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" { */
|
||||
#endif
|
||||
diff --git a/quickjs.c b/quickjs.c
|
||||
index 3970bb247..7900c5e3d 100644
|
||||
--- a/quickjs.c
|
||||
+++ b/quickjs.c
|
||||
@@ -13395,12 +13395,17 @@ static int js_is_array(JSContext *ctx, JSValueConst val)
|
||||
|
||||
static double js_math_pow(double a, double b)
|
||||
{
|
||||
+ double d;
|
||||
+
|
||||
if (unlikely(!isfinite(b)) && fabs(a) == 1) {
|
||||
/* not compatible with IEEE 754 */
|
||||
- return NAN;
|
||||
+ d = NAN;
|
||||
} else {
|
||||
- return pow(a, b);
|
||||
+ JS_X87_FPCW_SAVE_AND_ADJUST(fpcw);
|
||||
+ d = pow(a, b);
|
||||
+ JS_X87_FPCW_RESTORE(fpcw);
|
||||
}
|
||||
+ return d;
|
||||
}
|
||||
|
||||
JSValue JS_NewBigInt64(JSContext *ctx, int64_t v)
|
||||
@@ -13820,11 +13825,15 @@ static no_inline __exception int js_binary_arith_slow(JSContext *ctx, JSValue *s
|
||||
}
|
||||
break;
|
||||
case OP_div:
|
||||
+ JS_X87_FPCW_SAVE_AND_ADJUST(fpcw);
|
||||
sp[-2] = js_number((double)v1 / (double)v2);
|
||||
+ JS_X87_FPCW_RESTORE(fpcw);
|
||||
return 0;
|
||||
case OP_mod:
|
||||
if (v1 < 0 || v2 <= 0) {
|
||||
+ JS_X87_FPCW_SAVE_AND_ADJUST(fpcw);
|
||||
sp[-2] = js_number(fmod(v1, v2));
|
||||
+ JS_X87_FPCW_RESTORE(fpcw);
|
||||
return 0;
|
||||
} else {
|
||||
v = (int64_t)v1 % (int64_t)v2;
|
||||
@@ -13888,6 +13897,7 @@ static no_inline __exception int js_binary_arith_slow(JSContext *ctx, JSValue *s
|
||||
if (JS_ToFloat64Free(ctx, &d2, op2))
|
||||
goto exception;
|
||||
handle_float64:
|
||||
+ JS_X87_FPCW_SAVE_AND_ADJUST(fpcw);
|
||||
switch(op) {
|
||||
case OP_sub:
|
||||
dr = d1 - d2;
|
||||
@@ -13907,6 +13917,7 @@ static no_inline __exception int js_binary_arith_slow(JSContext *ctx, JSValue *s
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
+ JS_X87_FPCW_RESTORE(fpcw);
|
||||
sp[-2] = js_float64(dr);
|
||||
}
|
||||
return 0;
|
||||
@@ -14023,7 +14034,9 @@ static no_inline __exception int js_add_slow(JSContext *ctx, JSValue *sp)
|
||||
}
|
||||
if (JS_ToFloat64Free(ctx, &d2, op2))
|
||||
goto exception;
|
||||
+ JS_X87_FPCW_SAVE_AND_ADJUST(fpcw);
|
||||
sp[-2] = js_float64(d1 + d2);
|
||||
+ JS_X87_FPCW_RESTORE(fpcw);
|
||||
}
|
||||
return 0;
|
||||
exception:
|
||||
@@ -17998,8 +18011,10 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
|
||||
sp[-2] = js_int32(r);
|
||||
sp--;
|
||||
} else if (JS_VALUE_IS_BOTH_FLOAT(op1, op2)) {
|
||||
+ JS_X87_FPCW_SAVE_AND_ADJUST(fpcw);
|
||||
sp[-2] = js_float64(JS_VALUE_GET_FLOAT64(op1) +
|
||||
JS_VALUE_GET_FLOAT64(op2));
|
||||
+ JS_X87_FPCW_RESTORE(fpcw);
|
||||
sp--;
|
||||
} else {
|
||||
add_slow:
|
||||
@@ -18066,8 +18081,10 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
|
||||
sp[-2] = js_int32(r);
|
||||
sp--;
|
||||
} else if (JS_VALUE_IS_BOTH_FLOAT(op1, op2)) {
|
||||
+ JS_X87_FPCW_SAVE_AND_ADJUST(fpcw);
|
||||
sp[-2] = js_float64(JS_VALUE_GET_FLOAT64(op1) -
|
||||
JS_VALUE_GET_FLOAT64(op2));
|
||||
+ JS_X87_FPCW_RESTORE(fpcw);
|
||||
sp--;
|
||||
} else {
|
||||
goto binary_arith_slow;
|
||||
@@ -18098,7 +18115,9 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
|
||||
sp[-2] = js_int32(r);
|
||||
sp--;
|
||||
} else if (JS_VALUE_IS_BOTH_FLOAT(op1, op2)) {
|
||||
+ JS_X87_FPCW_SAVE_AND_ADJUST(fpcw);
|
||||
d = JS_VALUE_GET_FLOAT64(op1) * JS_VALUE_GET_FLOAT64(op2);
|
||||
+ JS_X87_FPCW_RESTORE(fpcw);
|
||||
mul_fp_res:
|
||||
sp[-2] = js_float64(d);
|
||||
sp--;
|
||||
@@ -52277,7 +52296,9 @@ static double set_date_fields(double fields[minimum_length(7)], int is_local) {
|
||||
int yi, mi, i;
|
||||
int64_t days;
|
||||
volatile double temp; /* enforce evaluation order */
|
||||
+ double d = NAN;
|
||||
|
||||
+ JS_X87_FPCW_SAVE_AND_ADJUST(fpcw);
|
||||
/* emulate 21.4.1.15 MakeDay ( year, month, date ) */
|
||||
y = fields[0];
|
||||
m = fields[1];
|
||||
@@ -52287,7 +52308,7 @@ static double set_date_fields(double fields[minimum_length(7)], int is_local) {
|
||||
if (mn < 0)
|
||||
mn += 12;
|
||||
if (ym < -271821 || ym > 275760)
|
||||
- return NAN;
|
||||
+ goto out;
|
||||
|
||||
yi = ym;
|
||||
mi = mn;
|
||||
@@ -52319,14 +52340,17 @@ static double set_date_fields(double fields[minimum_length(7)], int is_local) {
|
||||
/* emulate 21.4.1.16 MakeDate ( day, time ) */
|
||||
tv = (temp = day * 86400000) + time; /* prevent generation of FMA */
|
||||
if (!isfinite(tv))
|
||||
- return NAN;
|
||||
+ goto out;
|
||||
|
||||
/* adjust for local time and clip */
|
||||
if (is_local) {
|
||||
int64_t ti = tv < INT64_MIN ? INT64_MIN : tv >= 0x1p63 ? INT64_MAX : (int64_t)tv;
|
||||
tv += getTimezoneOffset(ti) * 60000;
|
||||
}
|
||||
- return time_clip(tv);
|
||||
+ d = time_clip(tv);
|
||||
+out:
|
||||
+ JS_X87_FPCW_RESTORE(fpcw);
|
||||
+ return d;
|
||||
}
|
||||
|
||||
static JSValue get_date_field(JSContext *ctx, JSValueConst this_val,
|
||||
@@ -1,26 +0,0 @@
|
||||
From c211485e6f6c9fcd0ea9f5aa1943f8c95fdd186b Mon Sep 17 00:00:00 2001
|
||||
From: Ben Noordhuis <info@bnoordhuis.nl>
|
||||
Date: Sun, 9 Nov 2025 21:28:14 +0100
|
||||
Subject: [PATCH] Fix Atomics.pause on 32 bits platforms
|
||||
|
||||
Use JS_VALUE_GET_NORM_TAG to get the type tag, not JS_VALUE_GET_TAG.
|
||||
The latter doesn't work correctly with NaN boxing.
|
||||
|
||||
Refs: https://github.com/quickjs-ng/quickjs/issues/986#issuecomment-3508547332
|
||||
---
|
||||
quickjs.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/quickjs.c b/quickjs.c
|
||||
index 4fb9f95b7..3970bb247 100644
|
||||
--- a/quickjs.c
|
||||
+++ b/quickjs.c
|
||||
@@ -57112,7 +57112,7 @@ static JSValue js_atomics_pause(JSContext *ctx, JSValueConst this_obj,
|
||||
double d;
|
||||
|
||||
if (argc > 0) {
|
||||
- switch (JS_VALUE_GET_TAG(argv[0])) {
|
||||
+ switch (JS_VALUE_GET_NORM_TAG(argv[0])) {
|
||||
case JS_TAG_FLOAT64: // accepted if and only if fraction == 0.0
|
||||
d = JS_VALUE_GET_FLOAT64(argv[0]);
|
||||
if (isfinite(d))
|
||||
@@ -0,0 +1,299 @@
|
||||
From c8896801dfbfe03b56f85c1533abc077ff74a533 Mon Sep 17 00:00:00 2001
|
||||
From: Reilly Brogan <reilly@reillybrogan.com>
|
||||
Date: Tue, 19 Aug 2025 14:47:03 -0500
|
||||
Subject: [PATCH 1/2] Fix build with abseil-cpp 202508
|
||||
|
||||
---
|
||||
webrtc/api/audio/audio_processing.h | 12 +++++++++
|
||||
webrtc/api/make_ref_counted.h | 13 ++++++++++
|
||||
webrtc/api/scoped_refptr.h | 15 +++++++++++
|
||||
.../aec_dump/aec_dump_factory.h | 15 +++++++++++
|
||||
.../aec_dump/null_aec_dump_factory.cc | 25 +++++++++++++++++++
|
||||
.../audio_processing/audio_processing_impl.cc | 9 +++++++
|
||||
.../audio_processing/audio_processing_impl.h | 9 +++++++
|
||||
7 files changed, 98 insertions(+)
|
||||
|
||||
diff --git a/webrtc/api/audio/audio_processing.h b/webrtc/api/audio/audio_processing.h
|
||||
index dca75f2..4580ba9 100644
|
||||
--- a/webrtc/api/audio/audio_processing.h
|
||||
+++ b/webrtc/api/audio/audio_processing.h
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
+#include "absl/base/config.h"
|
||||
#include "absl/base/nullability.h"
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "api/array_view.h"
|
||||
@@ -632,6 +633,7 @@ class RTC_EXPORT AudioProcessing : public RefCountInterface {
|
||||
// return value of true indicates that the file has been
|
||||
// sucessfully opened, while a value of false indicates that
|
||||
// opening the file failed.
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
virtual bool CreateAndAttachAecDump(
|
||||
absl::string_view file_name,
|
||||
int64_t max_log_size_bytes,
|
||||
@@ -640,6 +642,16 @@ class RTC_EXPORT AudioProcessing : public RefCountInterface {
|
||||
absl::Nonnull<FILE*> handle,
|
||||
int64_t max_log_size_bytes,
|
||||
absl::Nonnull<TaskQueueBase*> worker_queue) = 0;
|
||||
+#else
|
||||
+ virtual bool CreateAndAttachAecDump(absl::string_view file_name,
|
||||
+ int64_t max_log_size_bytes,
|
||||
+ TaskQueueBase* absl_nonnull
|
||||
+ worker_queue) = 0;
|
||||
+ virtual bool CreateAndAttachAecDump(FILE* absl_nonnull handle,
|
||||
+ int64_t max_log_size_bytes,
|
||||
+ TaskQueueBase* absl_nonnull
|
||||
+ worker_queue) = 0;
|
||||
+#endif
|
||||
|
||||
// TODO(webrtc:5298) Deprecated variant.
|
||||
// Attaches provided webrtc::AecDump for recording debugging
|
||||
diff --git a/webrtc/api/make_ref_counted.h b/webrtc/api/make_ref_counted.h
|
||||
index b5f4e99..080023a 100644
|
||||
--- a/webrtc/api/make_ref_counted.h
|
||||
+++ b/webrtc/api/make_ref_counted.h
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
|
||||
+#include "absl/base/config.h"
|
||||
#include "absl/base/nullability.h"
|
||||
#include "api/ref_count.h"
|
||||
#include "api/scoped_refptr.h"
|
||||
@@ -86,7 +87,11 @@ template <
|
||||
typename std::enable_if<std::is_convertible_v<T*, RefCountInterface*> &&
|
||||
std::is_abstract_v<T>,
|
||||
T>::type* = nullptr>
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
absl::Nonnull<scoped_refptr<T>> make_ref_counted(Args&&... args) {
|
||||
+#else
|
||||
+absl_nonnull scoped_refptr<T> make_ref_counted(Args&&... args) {
|
||||
+#endif
|
||||
return scoped_refptr<T>(new RefCountedObject<T>(std::forward<Args>(args)...));
|
||||
}
|
||||
|
||||
@@ -99,7 +104,11 @@ template <
|
||||
!std::is_convertible_v<T*, RefCountInterface*> &&
|
||||
webrtc_make_ref_counted_internal::HasAddRefAndRelease<T>::value,
|
||||
T>::type* = nullptr>
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
absl::Nonnull<scoped_refptr<T>> make_ref_counted(Args&&... args) {
|
||||
+#else
|
||||
+absl_nonnull scoped_refptr<T> make_ref_counted(Args&&... args) {
|
||||
+#endif
|
||||
return scoped_refptr<T>(new T(std::forward<Args>(args)...));
|
||||
}
|
||||
|
||||
@@ -113,7 +122,11 @@ template <
|
||||
!webrtc_make_ref_counted_internal::HasAddRefAndRelease<T>::value,
|
||||
|
||||
T>::type* = nullptr>
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
absl::Nonnull<scoped_refptr<FinalRefCountedObject<T>>> make_ref_counted(
|
||||
+#else
|
||||
+absl_nonnull scoped_refptr<FinalRefCountedObject<T>> make_ref_counted(
|
||||
+#endif
|
||||
Args&&... args) {
|
||||
return scoped_refptr<FinalRefCountedObject<T>>(
|
||||
new FinalRefCountedObject<T>(std::forward<Args>(args)...));
|
||||
diff --git a/webrtc/api/scoped_refptr.h b/webrtc/api/scoped_refptr.h
|
||||
index c6fb560..8c441ff 100644
|
||||
--- a/webrtc/api/scoped_refptr.h
|
||||
+++ b/webrtc/api/scoped_refptr.h
|
||||
@@ -66,6 +66,7 @@
|
||||
#include <cstddef>
|
||||
#include <utility>
|
||||
|
||||
+#include "absl/base/config.h"
|
||||
#include "absl/base/nullability.h"
|
||||
|
||||
namespace webrtc {
|
||||
@@ -73,13 +74,19 @@ namespace webrtc {
|
||||
template <class T>
|
||||
class ABSL_NULLABILITY_COMPATIBLE scoped_refptr {
|
||||
public:
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
using absl_nullability_compatible = void;
|
||||
+#endif
|
||||
using element_type = T;
|
||||
|
||||
scoped_refptr() : ptr_(nullptr) {}
|
||||
scoped_refptr(std::nullptr_t) : ptr_(nullptr) {} // NOLINT(runtime/explicit)
|
||||
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
explicit scoped_refptr(absl::Nullable<T*> p) : ptr_(p) {
|
||||
+#else
|
||||
+ explicit scoped_refptr(T* absl_nullable p) : ptr_(p) {
|
||||
+#endif
|
||||
if (ptr_)
|
||||
ptr_->AddRef();
|
||||
}
|
||||
@@ -122,7 +129,11 @@ class ABSL_NULLABILITY_COMPATIBLE scoped_refptr {
|
||||
return retVal;
|
||||
}
|
||||
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
scoped_refptr<T>& operator=(absl::Nullable<T*> p) {
|
||||
+#else
|
||||
+ scoped_refptr<T>& operator=(T* absl_nullable p) {
|
||||
+#endif
|
||||
// AddRef first so that self assignment should work
|
||||
if (p)
|
||||
p->AddRef();
|
||||
@@ -152,7 +163,11 @@ class ABSL_NULLABILITY_COMPATIBLE scoped_refptr {
|
||||
return *this;
|
||||
}
|
||||
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
void swap(absl::Nonnull<T**> pp) noexcept {
|
||||
+#else
|
||||
+ void swap(T** absl_nonnull pp) noexcept {
|
||||
+#endif
|
||||
T* p = ptr_;
|
||||
ptr_ = *pp;
|
||||
*pp = p;
|
||||
diff --git a/webrtc/modules/audio_processing/aec_dump/aec_dump_factory.h b/webrtc/modules/audio_processing/aec_dump/aec_dump_factory.h
|
||||
index 0d258a9..14d8b39 100644
|
||||
--- a/webrtc/modules/audio_processing/aec_dump/aec_dump_factory.h
|
||||
+++ b/webrtc/modules/audio_processing/aec_dump/aec_dump_factory.h
|
||||
@@ -29,6 +29,7 @@ class RTC_EXPORT AecDumpFactory {
|
||||
// The AecDump takes responsibility for `handle` and closes it in the
|
||||
// destructor. A non-null return value indicates that the file has been
|
||||
// sucessfully opened.
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
static absl::Nullable<std::unique_ptr<AecDump>> Create(
|
||||
FileWrapper file,
|
||||
int64_t max_log_size_bytes,
|
||||
@@ -41,6 +42,20 @@ class RTC_EXPORT AecDumpFactory {
|
||||
absl::Nonnull<FILE*> handle,
|
||||
int64_t max_log_size_bytes,
|
||||
absl::Nonnull<TaskQueueBase*> worker_queue);
|
||||
+#else
|
||||
+ static absl_nullable std::unique_ptr<AecDump> Create(
|
||||
+ FileWrapper file,
|
||||
+ int64_t max_log_size_bytes,
|
||||
+ TaskQueueBase* absl_nonnull worker_queue);
|
||||
+ static absl_nullable std::unique_ptr<AecDump> Create(
|
||||
+ absl::string_view file_name,
|
||||
+ int64_t max_log_size_bytes,
|
||||
+ TaskQueueBase* absl_nonnull worker_queue);
|
||||
+ static absl_nullable std::unique_ptr<AecDump> Create(
|
||||
+ FILE* absl_nonnull handle,
|
||||
+ int64_t max_log_size_bytes,
|
||||
+ TaskQueueBase* absl_nonnull worker_queue);
|
||||
+#endif
|
||||
};
|
||||
|
||||
} // namespace webrtc
|
||||
diff --git a/webrtc/modules/audio_processing/aec_dump/null_aec_dump_factory.cc b/webrtc/modules/audio_processing/aec_dump/null_aec_dump_factory.cc
|
||||
index 63929af..658bcee 100644
|
||||
--- a/webrtc/modules/audio_processing/aec_dump/null_aec_dump_factory.cc
|
||||
+++ b/webrtc/modules/audio_processing/aec_dump/null_aec_dump_factory.cc
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
absl::Nullable<std::unique_ptr<AecDump>> AecDumpFactory::Create(
|
||||
FileWrapper file,
|
||||
int64_t max_log_size_bytes,
|
||||
@@ -37,3 +38,27 @@ absl::Nullable<std::unique_ptr<AecDump>> AecDumpFactory::Create(
|
||||
return nullptr;
|
||||
}
|
||||
} // namespace webrtc
|
||||
+#else
|
||||
+absl_nullable std::unique_ptr<AecDump> AecDumpFactory::Create(
|
||||
+ FileWrapper file,
|
||||
+ int64_t max_log_size_bytes,
|
||||
+ TaskQueueBase* absl_nonnull worker_queue) {
|
||||
+ return nullptr;
|
||||
+}
|
||||
+
|
||||
+absl_nullable std::unique_ptr<AecDump> AecDumpFactory::Create(
|
||||
+ absl::string_view file_name,
|
||||
+ int64_t max_log_size_bytes,
|
||||
+ TaskQueueBase* absl_nonnull worker_queue) {
|
||||
+ return nullptr;
|
||||
+}
|
||||
+
|
||||
+absl_nullable std::unique_ptr<AecDump> AecDumpFactory::Create(
|
||||
+ FILE* absl_nonnull handle,
|
||||
+ int64_t max_log_size_bytes,
|
||||
+ TaskQueueBase* absl_nonnull worker_queue) {
|
||||
+ return nullptr;
|
||||
+}
|
||||
+} // namespace webrtc
|
||||
+
|
||||
+#endif
|
||||
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc
|
||||
index a1cba51..1dfe26d 100644
|
||||
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
|
||||
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
|
||||
+#include "absl/base/config.h"
|
||||
#include "absl/base/nullability.h"
|
||||
#include "absl/strings/match.h"
|
||||
#include "absl/strings/string_view.h"
|
||||
@@ -1787,7 +1788,11 @@ void AudioProcessingImpl::UpdateRecommendedInputVolumeLocked() {
|
||||
bool AudioProcessingImpl::CreateAndAttachAecDump(
|
||||
absl::string_view file_name,
|
||||
int64_t max_log_size_bytes,
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
absl::Nonnull<TaskQueueBase*> worker_queue) {
|
||||
+#else
|
||||
+ TaskQueueBase* absl_nonnull worker_queue) {
|
||||
+#endif
|
||||
std::unique_ptr<AecDump> aec_dump =
|
||||
AecDumpFactory::Create(file_name, max_log_size_bytes, worker_queue);
|
||||
if (!aec_dump) {
|
||||
@@ -1801,7 +1806,11 @@ bool AudioProcessingImpl::CreateAndAttachAecDump(
|
||||
bool AudioProcessingImpl::CreateAndAttachAecDump(
|
||||
FILE* handle,
|
||||
int64_t max_log_size_bytes,
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
absl::Nonnull<TaskQueueBase*> worker_queue) {
|
||||
+#else
|
||||
+ TaskQueueBase* absl_nonnull worker_queue) {
|
||||
+#endif
|
||||
std::unique_ptr<AecDump> aec_dump =
|
||||
AecDumpFactory::Create(handle, max_log_size_bytes, worker_queue);
|
||||
if (!aec_dump) {
|
||||
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.h b/webrtc/modules/audio_processing/audio_processing_impl.h
|
||||
index ecdc055..51a2bfb 100644
|
||||
--- a/webrtc/modules/audio_processing/audio_processing_impl.h
|
||||
+++ b/webrtc/modules/audio_processing/audio_processing_impl.h
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
+#include "absl/base/config.h"
|
||||
#include "absl/base/nullability.h"
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "api/array_view.h"
|
||||
@@ -74,11 +75,19 @@ class AudioProcessingImpl : public AudioProcessing {
|
||||
bool CreateAndAttachAecDump(
|
||||
absl::string_view file_name,
|
||||
int64_t max_log_size_bytes,
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
absl::Nonnull<TaskQueueBase*> worker_queue) override;
|
||||
+#else
|
||||
+ TaskQueueBase* absl_nonnull worker_queue) override;
|
||||
+#endif
|
||||
bool CreateAndAttachAecDump(
|
||||
FILE* handle,
|
||||
int64_t max_log_size_bytes,
|
||||
+#if defined(ABSL_LTS_RELEASE_VERSION) && ABSL_LTS_RELEASE_VERSION < 20250512
|
||||
absl::Nonnull<TaskQueueBase*> worker_queue) override;
|
||||
+#else
|
||||
+ TaskQueueBase* absl_nonnull worker_queue) override;
|
||||
+#endif
|
||||
// TODO(webrtc:5298) Deprecated variant.
|
||||
void AttachAecDump(std::unique_ptr<AecDump> aec_dump) override;
|
||||
void DetachAecDump() override;
|
||||
--
|
||||
GitLab
|
||||
@@ -1,32 +0,0 @@
|
||||
https://bugs.gentoo.org/917493
|
||||
https://sources.debian.org/src/webrtc-audio-processing/1.0-0.2/debian/patches/Add-generic-byte-order-and-pointer-size-detection.patch/
|
||||
|
||||
Description: Add generic byte order and pointer size detection
|
||||
Author: Than <than@redhat.com>
|
||||
Origin: https://bugs.freedesktop.org/show_bug.cgi?id=95738#c4
|
||||
Last-Update: 2022-02-01
|
||||
---
|
||||
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
||||
--- a/webrtc/rtc_base/system/arch.h
|
||||
+++ b/webrtc/rtc_base/system/arch.h
|
||||
@@ -58,7 +58,19 @@
|
||||
#define WEBRTC_ARCH_32_BITS
|
||||
#define WEBRTC_ARCH_LITTLE_ENDIAN
|
||||
#else
|
||||
-#error Please add support for your architecture in rtc_base/system/arch.h
|
||||
+/* instead of failing, use typical unix defines... */
|
||||
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
||||
+#define WEBRTC_ARCH_LITTLE_ENDIAN
|
||||
+#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
+#define WEBRTC_ARCH_BIG_ENDIAN
|
||||
+#else
|
||||
+#error __BYTE_ORDER__ is not defined
|
||||
+#endif
|
||||
+#if defined(__LP64__)
|
||||
+#define WEBRTC_ARCH_64_BITS
|
||||
+#else
|
||||
+#define WEBRTC_ARCH_32_BITS
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
#if !(defined(WEBRTC_ARCH_LITTLE_ENDIAN) ^ defined(WEBRTC_ARCH_BIG_ENDIAN))
|
||||
@@ -0,0 +1,48 @@
|
||||
From e9c78dc4712fa6362b0c839ad57b6b46dce1ba83 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Fran=C3=A7ois=20Laignel?= <francois@centricular.com>
|
||||
Date: Mon, 14 Apr 2025 16:48:19 +0200
|
||||
Subject: [PATCH] Fix compilation with gcc-15
|
||||
|
||||
This commit fixes compilation errors with gcc-15 (default for Fedora 42).
|
||||
|
||||
From [1]:
|
||||
|
||||
> Common C++ headers (like <memory>) in GCC 15.0.0 (combined with libstdc++)
|
||||
> don't transitively include uint64_t anymore.
|
||||
|
||||
See also [2].
|
||||
|
||||
[1]: https://github.com/ROCm/rocm_smi_lib/pull/198
|
||||
[2]: https://github.com/root-project/root/issues/17444
|
||||
---
|
||||
.../audio_processing/aec3/multi_channel_content_detector.h | 1 +
|
||||
webrtc/rtc_base/trace_event.h | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/webrtc/modules/audio_processing/aec3/multi_channel_content_detector.h b/webrtc/modules/audio_processing/aec3/multi_channel_content_detector.h
|
||||
index 2b2f3b8..feb29fd 100644
|
||||
--- a/webrtc/modules/audio_processing/aec3/multi_channel_content_detector.h
|
||||
+++ b/webrtc/modules/audio_processing/aec3/multi_channel_content_detector.h
|
||||
@@ -12,6 +12,7 @@
|
||||
#define MODULES_AUDIO_PROCESSING_AEC3_MULTI_CHANNEL_CONTENT_DETECTOR_H_
|
||||
|
||||
#include <stddef.h>
|
||||
+#include <cstdint>
|
||||
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
diff --git a/webrtc/rtc_base/trace_event.h b/webrtc/rtc_base/trace_event.h
|
||||
index 2aee713..f88a68e 100644
|
||||
--- a/webrtc/rtc_base/trace_event.h
|
||||
+++ b/webrtc/rtc_base/trace_event.h
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
#if !defined(RTC_USE_PERFETTO)
|
||||
#include <string>
|
||||
+#include <cstdint>
|
||||
|
||||
#include "rtc_base/event_tracer.h"
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
https://bugs.gentoo.org/921140
|
||||
https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/5
|
||||
--- a/webrtc/rtc_base/system/arch.h
|
||||
+++ b/webrtc/rtc_base/system/arch.h
|
||||
@@ -34,7 +34,7 @@
|
||||
#else
|
||||
#define WEBRTC_ARCH_32_BITS
|
||||
#endif
|
||||
-#elif defined(_M_IX86) || defined(__i386__)
|
||||
+#elif defined(__SSE__) && (defined(_M_IX86) || defined(__i386__))
|
||||
#define WEBRTC_ARCH_X86_FAMILY
|
||||
#define WEBRTC_ARCH_X86
|
||||
#define WEBRTC_ARCH_32_BITS
|
||||
+33
-32
@@ -31,6 +31,7 @@
|
||||
;;; Copyright © 2024 Aaron Covrig <aaron.covrig.us@ieee.org>
|
||||
;;; Copyright © 2025 Jussi Timperi <jussi.timperi@iki.fi>
|
||||
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2026 Daniel Littlewood <dan@danielittlewood.xyz>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -1611,41 +1612,41 @@ information for every pixel as the input.")
|
||||
"0f242mix20rgsqz1llibhsz4r2pbvx6k32rmky0zjvnbaqaw1dwm"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-FHS-file-names
|
||||
(lambda _
|
||||
(substitute* "mk/Autoconf.mk"
|
||||
(("/bin/echo") "echo")
|
||||
(("/sbin/ldconfig -p") "echo lib")) #t))
|
||||
(add-before 'build 'set-fcommon
|
||||
(lambda _
|
||||
(setenv "CFLAGS" "-fcommon")))
|
||||
(delete 'configure))
|
||||
#:tests? #f
|
||||
#:make-flags
|
||||
(list (string-append "CC=" ,(cc-for-target))
|
||||
(string-append "prefix=" (assoc-ref %outputs "out")))))
|
||||
(inputs `(("libjpeg" ,libjpeg-turbo)
|
||||
("curl" ,curl)
|
||||
("libtiff" ,libtiff)
|
||||
("libudev" ,eudev)
|
||||
("libwebp" ,libwebp)
|
||||
("libdrm" ,libdrm)
|
||||
("giflib" ,giflib)
|
||||
("glib" ,glib)
|
||||
("cairo-xcb" ,cairo-xcb)
|
||||
("freetype" ,freetype)
|
||||
("fontconfig" ,fontconfig)
|
||||
("libexif" ,libexif)
|
||||
("mesa" ,mesa)
|
||||
("libepoxy" ,libepoxy)
|
||||
("libpng" ,libpng)
|
||||
("poppler" ,poppler)))
|
||||
(list
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-FHS-file-names
|
||||
(lambda _
|
||||
(substitute* "mk/Autoconf.mk"
|
||||
(("/bin/echo") "echo")
|
||||
(("/sbin/ldconfig -p") "echo lib"))))
|
||||
(add-before 'build 'set-fcommon
|
||||
(lambda _
|
||||
(setenv "CFLAGS" "-fcommon")))
|
||||
(delete 'configure))
|
||||
#:tests? #f
|
||||
#:make-flags #~(list (string-append "CC=" #+(cc-for-target))
|
||||
(string-append "prefix=" #$output))))
|
||||
(inputs
|
||||
(list cairo-xcb
|
||||
curl
|
||||
eudev
|
||||
fontconfig
|
||||
freetype
|
||||
giflib
|
||||
glib
|
||||
libdrm
|
||||
libepoxy
|
||||
libexif
|
||||
libjpeg-turbo
|
||||
libpng
|
||||
libtiff
|
||||
libwebp
|
||||
mesa
|
||||
poppler))
|
||||
(native-inputs (list pkg-config))
|
||||
(synopsis "Framebuffer and drm-based image viewer")
|
||||
(description
|
||||
"fbida contains a few applications for viewing and editing images on
|
||||
"fbida contains a few applications for viewing and editing images on
|
||||
the framebuffer.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
|
||||
@@ -237,7 +237,7 @@ it.")
|
||||
(define-public trealla
|
||||
(package
|
||||
(name "trealla")
|
||||
(version "2.94.12")
|
||||
(version "2.94.20")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -246,7 +246,7 @@ it.")
|
||||
(url "https://github.com/trealla-prolog/trealla")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "0mpzpc69agcnp2dnay08z7xjx0zq2b77ddd2kds1w6qlh2fc36s9"))
|
||||
(base32 "15qqs0iy50g3caqjbyhsdkfmbv0rlg541lcpdj9ajv7lwmpxm2ba"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
||||
@@ -173,7 +173,7 @@ rates.")
|
||||
(define-public pulseaudio
|
||||
(package
|
||||
(name "pulseaudio")
|
||||
(version "16.1")
|
||||
(version "17.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -181,7 +181,7 @@ rates.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1r2aa0g7al9jhrrbrnih6i3bfznd73kkbafrbzwpjyflj7735vwf"))
|
||||
"1dc7xdfbn5rknwsvv5m2ijfwnqrap208liwyhiykjghsczb98dq5"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Disable console-kit support by default since it's deprecated
|
||||
|
||||
@@ -16986,12 +16986,11 @@ the @code{sendfile(2)} system call.")
|
||||
(arguments
|
||||
(list
|
||||
#:test-flags
|
||||
#~(list "-k" "not TestCommandLineParser"
|
||||
#$@(if (target-aarch64?)
|
||||
;; TimeoutError: timed out
|
||||
'((string-append "--deselect=pyftpdlib/test/test_functional.py"
|
||||
"::TestTimeouts::test_idle_data_timeout2"))
|
||||
'()))))
|
||||
#~(list
|
||||
"-k" "not TestCommandLineParser"
|
||||
;; These contains flaky tests.
|
||||
"--deselect=pyftpdlib/test/test_functional.py"
|
||||
"--deselect=pyftpdlib/test/test_functional_ssl.py")))
|
||||
(native-inputs
|
||||
(list python-psutil
|
||||
python-pytest
|
||||
@@ -21073,7 +21072,8 @@ into 22 character URL-safe base64 slug representation.")
|
||||
(sha256
|
||||
(base32 "0zwjry4ylqncqvxrywp0km96jng4f288dgz8kz5vymk7nr2z21m1"))))
|
||||
(build-system pyproject-build-system)
|
||||
;; tests: 856 passed, 24 skipped
|
||||
;; The test_brokenpipeerror is flaky.
|
||||
(arguments (list #:test-flags #~(list "-k" "not test_brokenpipeerror")))
|
||||
(native-inputs
|
||||
(list python-poetry-core
|
||||
python-pytest
|
||||
|
||||
+13
-4
@@ -1093,11 +1093,16 @@ tst_qt_cmake_create.cpp"
|
||||
|
||||
;; See https://bugreports.qt.io/browse/QTBUG-113371
|
||||
;; Adding glibc-utf8-locales to native-inpus is no help.
|
||||
;; TODO: when core-updates is merged, check again.
|
||||
"tst_selftests"
|
||||
|
||||
;; The 'tst_qsqlthread' test sometimes fails.
|
||||
"tst_qsqlthread"
|
||||
;; The qsqldatabase test is flaky (see:
|
||||
;; <https://qt-project.atlassian.net/browse/QTBUG-145385>).
|
||||
"tst_qsqldatabase"
|
||||
|
||||
;; The 'tst_qtimer' test has a propensity to hang and
|
||||
;; fail (see:
|
||||
;; <https://qt-project.atlassian.net/browse/QTBUG-145261>).
|
||||
"tst_qtimer_no_glib"
|
||||
|
||||
;; The 'tst_qthread' test is also flaky, despite the
|
||||
;; patch applied that promised to fix it.
|
||||
@@ -1196,7 +1201,11 @@ tst_qt_cmake_create.cpp"
|
||||
;; This test may fail non-deterministically as reported
|
||||
;; in Guix bug#73233 and upstream at
|
||||
;; https://bugreports.qt.io/browse/QTBUG-119321.
|
||||
"tst_qsharedmemory")
|
||||
"tst_qsharedmemory"
|
||||
|
||||
;; This test fails deterministically on a non-privileged
|
||||
;; daemon.
|
||||
"tst_qstandardpaths")
|
||||
#$@(cond
|
||||
((target-ppc64le?)
|
||||
#~((list
|
||||
|
||||
@@ -1509,7 +1509,7 @@ defaults for 80% of the use cases.")
|
||||
(define-public gitlogue
|
||||
(package
|
||||
(name "gitlogue")
|
||||
(version "0.8.0")
|
||||
(version "0.9.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -1519,7 +1519,7 @@ defaults for 80% of the use cases.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"007sf2b605jkjk4qyxar1bq7fh71yvv9ixsxfqrs3hzschyj3m2g"))
|
||||
"008cqcc4kjandfi6pqrnr689xb11d6fdhcb48kbv0227v3f5gvn3"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@@ -3360,7 +3360,7 @@ command.")
|
||||
(define-public wasm-bindgen-cli
|
||||
(package
|
||||
(name "wasm-bindgen-cli")
|
||||
(version "0.2.118")
|
||||
(version "0.2.120")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -3369,7 +3369,7 @@ command.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "02yy57pa4p53vrhpgc8xf737dnqiifnnnjinh49yq1345kd3287j"))
|
||||
(base32 "0404jgzfcbmjvr1zl9jgw49nqs1s182cbvdzwh92i76qd2cpg166"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
||||
+3096
-2841
File diff suppressed because it is too large
Load Diff
@@ -1736,18 +1736,18 @@ and runtime for AI-assisted coding.")
|
||||
(define-public rust-glycin-3
|
||||
(package
|
||||
(name "rust-glycin")
|
||||
(version "3.0.7")
|
||||
(version "3.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.gnome.org/GNOME/glycin.git")
|
||||
;; Rust library version is different from the tagged version.
|
||||
(commit "2.0.7")))
|
||||
(commit "2.1.1")))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0v6szxk5h8a4b28xb0lrhqrq6b4vka2ha4qgpdp35f6c49v9pdyp"))
|
||||
"1mrv733xhbxydww4szskv7jc0hif908aavh8h4kjcxp0zgy13blf"))
|
||||
(patches (search-patches "glycin-sandbox-Adapt-bwrap-invocation.patch"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
|
||||
+14
-2
@@ -48,6 +48,7 @@
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages emacs)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
@@ -272,13 +273,24 @@ efficiency through the use of a compact vector representation of n-grams.")
|
||||
;; Disable support for proprietary TTS engines.
|
||||
"--with-voxin=no" "--with-ibmtts=no"
|
||||
"--with-kali=no" "--with-baratinoo=no")
|
||||
#:imported-modules ,%pyproject-build-system-modules
|
||||
#:modules ((guix build gnu-build-system)
|
||||
((guix build pyproject-build-system)
|
||||
#:prefix python:)
|
||||
(guix build utils))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-bin-bash
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "src/modules/generic.c"
|
||||
(("/bin/bash")
|
||||
(search-input-file inputs "/bin/bash"))))))))
|
||||
(search-input-file inputs "/bin/bash")))))
|
||||
(add-after 'install 'wrap-spd-conf
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(wrap-program (search-input-file outputs "bin/spd-conf")
|
||||
`("GUIX_PYTHONPATH" =
|
||||
(,(getenv "GUIX_PYTHONPATH")
|
||||
,(python:site-packages inputs outputs)))))))))
|
||||
(native-inputs
|
||||
(list autoconf
|
||||
automake
|
||||
@@ -297,7 +309,7 @@ efficiency through the use of a compact vector representation of n-grams.")
|
||||
pipewire
|
||||
pulseaudio
|
||||
python
|
||||
python-xdg-base-dirs))
|
||||
python-pyxdg))
|
||||
(synopsis "Common interface to speech synthesizers")
|
||||
(description "The Speech Dispatcher project provides a high-level
|
||||
device independent layer for access to speech synthesis through a simple,
|
||||
|
||||
@@ -118,13 +118,13 @@ is in the public domain.")
|
||||
(define-public sqlite-next
|
||||
(package
|
||||
(inherit sqlite)
|
||||
(version "3.51.0")
|
||||
(version "3.53.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (sqlite-uri version 2025))
|
||||
(uri (sqlite-uri version 2026))
|
||||
(sha256
|
||||
(base32
|
||||
"19bc2inw7f9fn0y6j3b57w4mk6bzi2q8hp5yn6qyd8kav7ynvqj2"))))
|
||||
"0ninfc6kh0idcslsdlcv7l6261pswxjsdfp0cnmcxqig34w9n7l5"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:tests? _ #f)
|
||||
|
||||
+46
-50
@@ -50,7 +50,7 @@
|
||||
;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
|
||||
;;; Copyright © 2021, 2022, 2023 Andrew Tropin <andrew@trop.in>
|
||||
;;; Copyright © 2021 David Wilson <david@daviwil.com>
|
||||
;;; Copyright © 2021-2025 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2021-2026 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
|
||||
;;; Copyright © 2021 Thiago Jung Bauermann <bauermann@kolabnow.com>
|
||||
@@ -3573,38 +3573,21 @@ soon as it starts.")
|
||||
(define-public libbluray
|
||||
(package
|
||||
(name "libbluray")
|
||||
(version "1.3.4")
|
||||
(version "1.4.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.videolan.org/videolan/"
|
||||
name "/" version "/"
|
||||
name "-" version ".tar.bz2"))
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0aszpsz3pc7p7z6yahlib4na585m6pqbg2d9dkpyipgml1lgv3s7"))))
|
||||
(build-system gnu-build-system)
|
||||
"0jglp44wsjpp5k3mrxskfj9b488ksn7cj2dhxfjdqa3z150drdbn"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags #~(list "--disable-bdjava-jar" "--disable-static")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'move-packages-to-libs
|
||||
;; Avoid the need to propagate libxml2 et al. by referring to them
|
||||
;; directly.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(define (search-input-vicinity lib)
|
||||
(dirname
|
||||
(search-input-file inputs
|
||||
(string-append "lib/lib" lib ".so"))))
|
||||
(substitute* "src/libbluray.pc.in"
|
||||
(("@PACKAGES@") "")
|
||||
(("^Libs.private:" field)
|
||||
(string-append field
|
||||
" -L" (search-input-vicinity "xml2")
|
||||
" -L" (search-input-vicinity "freetype")
|
||||
" -L" (search-input-vicinity "fontconfig")
|
||||
" -lxml2 -lfreetype -lfontconfig")))))
|
||||
(add-before 'build 'fix-dlopen-paths
|
||||
(add-after 'unpack 'fix-dlopen-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(define (lib/no.so library)
|
||||
(let ((found (search-input-file inputs library)))
|
||||
@@ -3612,11 +3595,29 @@ soon as it starts.")
|
||||
(string-length ".so")))))
|
||||
(substitute* "src/libbluray/disc/aacs.c"
|
||||
(("\"libaacs\"")
|
||||
(string-append "\"" (lib/no.so "lib/libaacs.so") "\""))
|
||||
(string-append "\"" (lib/no.so "lib/libaacs.so") "\"")))
|
||||
(substitute* "src/libbluray/disc/bdplus.c"
|
||||
(("\"libbdplus\"")
|
||||
(string-append "\"" (lib/no.so "lib/libbdplus.so") "\""))))))))
|
||||
(string-append "\"" (lib/no.so "lib/libbdplus.so") "\"")))))
|
||||
(add-after 'install 'move-packages-to-libs
|
||||
;; Avoid the need to propagate libxml2 et al. by referring to them
|
||||
;; directly.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(define (search-input-vicinity lib)
|
||||
(dirname
|
||||
(search-input-file inputs
|
||||
(string-append "lib/lib" lib ".so"))))
|
||||
(substitute* (string-append #$output
|
||||
"/lib/pkgconfig/libbluray.pc")
|
||||
(("^Requires.private.*") "")
|
||||
(("^Libs.private:" field)
|
||||
(string-append field
|
||||
" -L" (search-input-vicinity "xml2")
|
||||
" -L" (search-input-vicinity "freetype")
|
||||
" -L" (search-input-vicinity "fontconfig")
|
||||
" -lxml2 -lfreetype -lfontconfig"))))))))
|
||||
(native-inputs (list pkg-config))
|
||||
(inputs (list fontconfig freetype libaacs libbdplus libxml2))
|
||||
(inputs (list fontconfig freetype libaacs libbdplus libudfread libxml2))
|
||||
(home-page "https://www.videolan.org/developers/libbluray.html")
|
||||
(synopsis "Blu-Ray Disc playback library")
|
||||
(description
|
||||
@@ -3627,22 +3628,18 @@ players, like VLC or MPlayer.")
|
||||
(define-public libdvdread
|
||||
(package
|
||||
(name "libdvdread")
|
||||
(version "6.1.3")
|
||||
(version "7.0.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.videolan.org/videolan/"
|
||||
"libdvdread/" version "/"
|
||||
"libdvdread-" version ".tar.bz2"))
|
||||
"libdvdread-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0sakl4c8y2kkp09km0b5353w66pvfc72y8wi1vjwn252jx4ladff"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--with-libdvdcss=yes")))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(propagated-inputs
|
||||
(list libdvdcss))
|
||||
"01ylalrr9lw6x7fz7z030243kln1hfd1pbh3m9ikjp610nih8gif"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs (list pkg-config))
|
||||
(propagated-inputs (list libdvdcss))
|
||||
(home-page "http://dvdnav.mplayerhq.hu/")
|
||||
(synopsis "Library for reading video DVDs")
|
||||
(description
|
||||
@@ -3706,16 +3703,16 @@ MPEG-2 stream containing VOB packets.")
|
||||
(define-public libdvdnav
|
||||
(package
|
||||
(name "libdvdnav")
|
||||
(version "6.1.1")
|
||||
(version "7.0.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.videolan.org/videolan/"
|
||||
"libdvdnav/" version "/"
|
||||
"libdvdnav-" version ".tar.bz2"))
|
||||
"libdvdnav-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0j4ds6c4xl34dijkfpw805vj7s0vzg095kw0fvzj7ls7b53sg4f1"))))
|
||||
(build-system gnu-build-system)
|
||||
"07i2gdj4nfah4lwlc6hl14xjbyh6b12bc1lipxs3q4vdsdd8z8d2"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs (list pkg-config))
|
||||
(propagated-inputs (list libdvdread)) ;in 'Requires.private' of dvdnav.pc
|
||||
(home-page "http://dvdnav.mplayerhq.hu/")
|
||||
@@ -3736,16 +3733,16 @@ encapsulated.")
|
||||
(define-public libdvdcss
|
||||
(package
|
||||
(name "libdvdcss")
|
||||
(version "1.4.3")
|
||||
(version "1.5.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.videolan.org/pub/"
|
||||
name "/" version "/"
|
||||
name "-" version ".tar.bz2"))
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0y800y33spblb20s1lsjbaiybknmwwmmiczmjqx5s760blpwjg13"))))
|
||||
(build-system gnu-build-system)
|
||||
"16f3lnwcldy0ssq2yah97qsb0b8scsvhsivfbhpgizmys7j6752j"))))
|
||||
(build-system meson-build-system)
|
||||
(home-page "https://www.videolan.org/developers/libdvdcss.html")
|
||||
(synopsis "Library for accessing DVDs as block devices")
|
||||
(description
|
||||
@@ -5194,19 +5191,18 @@ specifications.")
|
||||
(define-public libaacs
|
||||
(package
|
||||
(name "libaacs")
|
||||
(version "0.11.0")
|
||||
(version "0.11.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ftp.videolan.org/pub/videolan/libaacs/"
|
||||
version "/libaacs-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "11skjqjlldmbjkyxdcz4fmcn6y4p95r1xagbcnjy4ndnzf0l723d"))))
|
||||
(inputs
|
||||
(list libgcrypt))
|
||||
(native-inputs
|
||||
(list bison flex))
|
||||
(base32 "0f8ax9dp49mrm1484bl2df659b34xyrjmngzmvvpg2n9wkms12m8"))))
|
||||
(inputs (list libgcrypt))
|
||||
(native-inputs (list bison flex))
|
||||
(build-system gnu-build-system)
|
||||
(arguments (list #:configure-flags #~(list "--disable-static")))
|
||||
(home-page "https://www.videolan.org/developers/libaacs.html")
|
||||
(synopsis "Library for decrypting certain Blu-Ray discs")
|
||||
(description "libaacs is a library which implements the Advanced Access
|
||||
|
||||
+2
-2
@@ -3358,7 +3358,7 @@ compository, supporting the following features:
|
||||
(define-public waybar
|
||||
(package
|
||||
(name "waybar")
|
||||
(version "0.14.0")
|
||||
(version "0.15.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -3367,7 +3367,7 @@ compository, supporting the following features:
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1b1783382y38mzzrzw53p20lwpfs0n2npqbs91j9ddgg6xk82s4q"))))
|
||||
(base32 "1ify8zywlq6zrmbzp293q72pnzy3czkvrb4zia2xnsvsmy04mmp3"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list #:configure-flags #~(list "--wrap-mode=nodownload")))
|
||||
|
||||
@@ -116,7 +116,7 @@ knowledge of the Z-Wave protocol.")
|
||||
(lambda _
|
||||
(substitute* "binding.gyp"
|
||||
(("std=c\\+\\+11")
|
||||
"std=c++20"))))
|
||||
"std=c++17"))))
|
||||
(replace 'build
|
||||
;; For some reason, `npm install` doesn't build
|
||||
;; the addon automatically, so we do it explicitly here.
|
||||
|
||||
@@ -216,6 +216,10 @@
|
||||
|
||||
syslog-configuration
|
||||
syslog-configuration?
|
||||
syslog-configuration-syslogd
|
||||
syslog-configuration-config-file
|
||||
syslog-configuration-pid-file
|
||||
syslog-configuration-extra-options
|
||||
syslog-service ; deprecated
|
||||
syslog-service-type
|
||||
%default-syslog.conf
|
||||
@@ -1686,6 +1690,8 @@ mail.* -/var/log/maillog
|
||||
(default (file-append inetutils "/libexec/syslogd")))
|
||||
(config-file syslog-configuration-config-file
|
||||
(default %default-syslog.conf))
|
||||
(pid-file syslog-configuration-pid-file
|
||||
(default "/var/run/syslog.pid"))
|
||||
(extra-options syslog-configuration-extra-options
|
||||
(default '())))
|
||||
|
||||
@@ -1721,7 +1727,7 @@ reload its settings file.")))
|
||||
"-f" #$syslog.conf
|
||||
#$@(syslog-configuration-extra-options config))
|
||||
#:file-creation-mask #o137
|
||||
#:pid-file "/var/run/syslog.pid"))
|
||||
#:pid-file #$(syslog-configuration-pid-file config)))
|
||||
(stop #~(make-kill-destructor))))
|
||||
|
||||
(define %default-syslog-files
|
||||
|
||||
@@ -801,7 +801,9 @@ port=" (number->string port) "
|
||||
(list (service-extension account-service-type
|
||||
(const %mysql-accounts))
|
||||
(service-extension shepherd-root-service-type
|
||||
mysql-shepherd-services)))
|
||||
mysql-shepherd-services)
|
||||
(service-extension profile-service-type
|
||||
(compose list mysql-configuration-mysql))))
|
||||
(default-value (mysql-configuration))
|
||||
(description "Run the MySQL or MariaDB database server,
|
||||
@command{mysqld}.")))
|
||||
|
||||
@@ -1542,66 +1542,6 @@ the user shall be removed when the user fully logs out.")
|
||||
'#$(elogind-configuration-system-shutdown-hook-files
|
||||
config))))))
|
||||
|
||||
(define (elogind-dbus-service config)
|
||||
"Return a @file{org.freedesktop.login1.service} file that tells D-Bus how to
|
||||
\"start\" elogind. In practice though, our elogind is started when booting by
|
||||
shepherd. Thus, the @code{Exec} line of this @file{.service} file does not
|
||||
explain how to start elogind; instead, it spawns a wrapper that waits for the
|
||||
@code{elogind} shepherd service. This avoids a race condition where both
|
||||
@command{shepherd} and @command{dbus-daemon} would attempt to start elogind."
|
||||
;; For more info on the elogind startup race, see
|
||||
;; <https://issues.guix.gnu.org/55444>.
|
||||
|
||||
(define elogind
|
||||
(elogind-configuration-elogind config))
|
||||
|
||||
(define wrapper
|
||||
(program-file "elogind-dbus-shepherd-sync"
|
||||
(with-imported-modules '((gnu services herd))
|
||||
#~(begin
|
||||
(use-modules (gnu services herd)
|
||||
(srfi srfi-34))
|
||||
|
||||
(guard (c ((service-not-found-error? c)
|
||||
(format (current-error-port)
|
||||
"no elogind shepherd service~%")
|
||||
(exit 1))
|
||||
((shepherd-error? c)
|
||||
(format (current-error-port)
|
||||
"elogind shepherd service not \
|
||||
started~%")
|
||||
(exit 2)))
|
||||
(wait-for-service 'elogind))))))
|
||||
|
||||
(define build
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 match))
|
||||
|
||||
(define service-directory
|
||||
"/share/dbus-1/system-services")
|
||||
|
||||
(mkdir-p (dirname (string-append #$output service-directory)))
|
||||
(copy-recursively (string-append #$elogind service-directory)
|
||||
(string-append #$output service-directory))
|
||||
(symlink (string-append #$elogind "/etc") ;for etc/dbus-1
|
||||
(string-append #$output "/etc"))
|
||||
;; Also expose the D-Bus policy configurations (.conf) files, now
|
||||
;; installed under '/share' instead of the legacy '/etc' prefix.
|
||||
(symlink (string-append #$elogind "/share/dbus-1/system.d")
|
||||
(string-append #$output "/share/dbus-1/system.d"))
|
||||
|
||||
;; Replace the "Exec=" line of the 'org.freedesktop.login1.service'
|
||||
;; file with one that refers to WRAPPER instead of elogind.
|
||||
(match (find-files #$output "\\.service$")
|
||||
((file)
|
||||
(substitute* file
|
||||
(("Exec[[:blank:]]*=.*" _)
|
||||
(string-append "Exec=" #$wrapper "\n"))))))))
|
||||
|
||||
(list (computed-file "elogind-dbus-service-wrapper" build)))
|
||||
|
||||
(define (pam-extension-procedure config)
|
||||
"Return an extension for PAM-ROOT-SERVICE-TYPE that ensures that all the PAM
|
||||
services use 'pam_elogind.so', a module that allows elogind to keep track of
|
||||
@@ -1649,7 +1589,7 @@ of the service's configuration files."
|
||||
(name 'elogind)
|
||||
(extensions
|
||||
(list (service-extension dbus-root-service-type
|
||||
elogind-dbus-service)
|
||||
(compose list elogind-configuration-elogind))
|
||||
(service-extension udev-service-type
|
||||
(compose list elogind-configuration-elogind))
|
||||
(service-extension polkit-service-type
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix search-paths)
|
||||
#:use-module ((guix build glib-or-gtk-build-system)
|
||||
#:select (%gdk-pixbuf-loaders-cache-file))
|
||||
#:select (%gdk-pixbuf-loaders-cache-file
|
||||
%gdk-pixbuf-loaders-directory))
|
||||
#:use-module (guix build-system)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix packages)
|
||||
@@ -35,7 +36,8 @@
|
||||
glib-or-gtk-build
|
||||
glib-or-gtk-cross-build
|
||||
glib-or-gtk-build-system)
|
||||
#:re-export (%gdk-pixbuf-loaders-cache-file)) ;for convenience
|
||||
#:re-export (%gdk-pixbuf-loaders-cache-file
|
||||
%gdk-pixbuf-loaders-directory)) ;for convenience
|
||||
|
||||
;; Commentary:
|
||||
;;
|
||||
|
||||
@@ -30,16 +30,10 @@
|
||||
#:use-module (guix search-paths)
|
||||
#:use-module (guix build-system)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:export (%default-lockfiles
|
||||
%node-build-system-modules
|
||||
#:export (%node-build-system-modules
|
||||
node-build
|
||||
node-build-system))
|
||||
|
||||
(define %default-lockfiles
|
||||
(list "package-lock.json"
|
||||
"yarn.lock"
|
||||
"npm-shrinkwrap.json"))
|
||||
|
||||
(define %node-build-system-modules
|
||||
;; Build-side modules imported by default.
|
||||
`((guix build node-build-system)
|
||||
@@ -53,10 +47,6 @@
|
||||
"Return the default Node package, resolved lazily."
|
||||
(@* (gnu packages node) node-lts))
|
||||
|
||||
(define (default-guile-json)
|
||||
"Return the default guile-json package, resolved lazily."
|
||||
(@* (gnu packages guile) guile-json-4))
|
||||
|
||||
(define* (lower name
|
||||
#:key source inputs native-inputs outputs system target
|
||||
(node (default-node))
|
||||
@@ -88,12 +78,17 @@
|
||||
(build node-build)
|
||||
(arguments (strip-keyword-arguments private-keywords arguments)))))
|
||||
|
||||
(define (default-guile-json)
|
||||
"Return the default guile-json package."
|
||||
;; Lazily resolve the binding to avoid a circular dependency.
|
||||
(let ((mod (resolve-interface '(gnu packages guile))))
|
||||
(module-ref mod 'guile-json-4)))
|
||||
|
||||
(define* (node-build name inputs
|
||||
#:key
|
||||
source
|
||||
(npm-flags ''())
|
||||
(test-target "test")
|
||||
(lockfiles %default-lockfiles)
|
||||
(tests? #t)
|
||||
(phases '%standard-phases)
|
||||
(outputs '("out"))
|
||||
@@ -115,7 +110,6 @@
|
||||
#:system #$system
|
||||
#:npm-flags #$npm-flags
|
||||
#:test-target #$test-target
|
||||
#:lockfiles '#$lockfiles
|
||||
#:tests? #$tests?
|
||||
#:phases #$phases
|
||||
#:outputs #$(outputs->gexp outputs)
|
||||
|
||||
@@ -105,7 +105,6 @@
|
||||
source
|
||||
(phases '%standard-phases)
|
||||
(grammar-directories '("."))
|
||||
(lockfiles %default-lockfiles)
|
||||
(tests? #t)
|
||||
(outputs '("out" "js"))
|
||||
(search-paths '())
|
||||
@@ -124,7 +123,6 @@
|
||||
#:source #+source
|
||||
#:system #$system
|
||||
#:phases #$phases
|
||||
#:lockfiles '#$lockfiles
|
||||
#:tests? #$tests?
|
||||
#:grammar-directories '#$grammar-directories
|
||||
#:outputs #$(outputs->gexp outputs)
|
||||
@@ -147,7 +145,6 @@
|
||||
guile source
|
||||
(phases '%standard-phases)
|
||||
(grammar-directories '("."))
|
||||
(lockfiles %default-lockfiles)
|
||||
(tests? #t)
|
||||
(outputs '("out" "js"))
|
||||
(search-paths '())
|
||||
@@ -182,7 +179,6 @@
|
||||
#:build #$build
|
||||
#:target #$target
|
||||
#:phases #$phases
|
||||
#:lockfiles '#$lockfiles
|
||||
#:tests? #$tests?
|
||||
#:grammar-directories '#$grammar-directories
|
||||
#:outputs #$(outputs->gexp outputs)
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#:use-module (srfi srfi-26)
|
||||
#:export (%standard-phases
|
||||
%gdk-pixbuf-loaders-cache-file
|
||||
%gdk-pixbuf-loaders-directory
|
||||
generate-gdk-pixbuf-loaders-cache
|
||||
glib-or-gtk-build))
|
||||
|
||||
@@ -207,6 +208,8 @@ if needed."
|
||||
;; `generate-gdk-pixbuf-loaders-cache' build phase defined below.
|
||||
(define %gdk-pixbuf-loaders-cache-file
|
||||
"lib/gdk-pixbuf-2.0/2.10.0/loaders.cache")
|
||||
(define %gdk-pixbuf-loaders-directory
|
||||
"lib/gdk-pixbuf-2.0/2.10.0/loaders")
|
||||
|
||||
(define (generate-gdk-pixbuf-loaders-cache directories outputs)
|
||||
"Generate the loaders.cache file used by gdk-pixbuf to locate the available
|
||||
@@ -214,8 +217,9 @@ loaders among DIRECTORIES, and set the GDK_PIXBUF_MODULE_FILE environment
|
||||
variable. The cache file is installed under OUTPUTS. Return the first cache
|
||||
file name if one was created else #f."
|
||||
(let* ((loaders (append-map
|
||||
(cut find-files <> "^libpixbufloader-.*\\.so$")
|
||||
(delete-duplicates directories)))
|
||||
(lambda (dir)
|
||||
(find-files (in-vicinity dir %gdk-pixbuf-loaders-directory) "^.*.so$"))
|
||||
directories))
|
||||
(outputs* (map (cut string-append <> "/"
|
||||
%gdk-pixbuf-loaders-cache-file)
|
||||
outputs))
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
;;; Copyright © 2021, 2022 Philip McGrath <philip@philipmcgrath.com>
|
||||
;;; Copyright © 2022 Liliana Marie Prikler <liliana.prikler@gmail.com>
|
||||
;;; Copyright © 2024 Daniel Khodabakhsh <d.khodabakhsh@gmail.com>
|
||||
;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -30,7 +29,6 @@
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (json)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-71)
|
||||
#:export (%standard-phases
|
||||
delete-dependencies
|
||||
@@ -42,6 +40,34 @@
|
||||
replace-fields
|
||||
with-atomic-json-file-replacement))
|
||||
|
||||
(define* (assoc-ref* alist key #:optional default)
|
||||
"Like assoc-ref, but return DEFAULT instead of #f if no value exists."
|
||||
(match (assoc key alist)
|
||||
(#f default)
|
||||
((_ . value) value)))
|
||||
|
||||
(define* (alist-pop alist key #:optional (= equal?))
|
||||
"Return two values, the first pair in ALIST with key KEY, and the other
|
||||
elements. Equality calls are made as (= KEY ALISTCAR)."
|
||||
(define (found? pair)
|
||||
(= key (car pair)))
|
||||
|
||||
(let ((before after (break found? alist)))
|
||||
(if (pair? after)
|
||||
(values (car after) (append before (cdr after)))
|
||||
(values #f before))))
|
||||
|
||||
(define* (alist-update alist key proc #:optional (= equal?))
|
||||
"Return an association list like ALIST, but with KEY mapped to the result of
|
||||
PROC applied to the first value found under the comparison (= KEY ALISTCAR).
|
||||
If no such value exists, return the list unchanged.
|
||||
Unlike acons, this removes the previous association of KEY (assuming it is
|
||||
unique), but the result may still share storage with ALIST."
|
||||
(let ((pair rest (alist-pop alist key =)))
|
||||
(if (pair? pair)
|
||||
(acons key (proc (cdr pair)) rest)
|
||||
alist)))
|
||||
|
||||
;;;
|
||||
;;; package.json modification procedures
|
||||
;;;
|
||||
@@ -80,19 +106,23 @@ listed in 'dependencies-to-remove', a list of strings naming npm packages.
|
||||
|
||||
To prevent the deleted dependencies from being reintroduced, use this function
|
||||
only after the 'patch-dependencies' phase."
|
||||
(let ((predicate (lambda (dependency)
|
||||
(member (car dependency) dependencies-to-remove)))
|
||||
(dependency? (cut member <> (list "devDependencies"
|
||||
"dependencies"
|
||||
"peerDependencies"
|
||||
"optionalDependencies"))))
|
||||
(lambda (pkg-meta)
|
||||
(map (match-lambda
|
||||
(((? dependency? key) . dependencies)
|
||||
(cons key (remove predicate dependencies)))
|
||||
(otherwise
|
||||
otherwise))
|
||||
pkg-meta))))
|
||||
(lambda (pkg-meta)
|
||||
(fold
|
||||
(lambda (dependency-key pkg-meta)
|
||||
(alist-update
|
||||
pkg-meta
|
||||
dependency-key
|
||||
(lambda (dependencies)
|
||||
(remove
|
||||
(lambda (dependency)
|
||||
(member (car dependency) dependencies-to-remove))
|
||||
dependencies))))
|
||||
pkg-meta
|
||||
(list
|
||||
"devDependencies"
|
||||
"dependencies"
|
||||
"peerDependencies"
|
||||
"optionalDependencies"))))
|
||||
|
||||
(define* (modify-json-fields
|
||||
fields
|
||||
@@ -206,7 +236,8 @@ only after the 'patch-dependencies' phase."
|
||||
(begin
|
||||
(mkdir dir)
|
||||
(setenv "HOME" (string-append (getcwd) "/" dir))
|
||||
(format #t "set HOME to ~s~%" (getenv "HOME"))))))))
|
||||
(format #t "set HOME to ~s~%" (getenv "HOME")))))))
|
||||
#t)
|
||||
|
||||
(define (module-name module)
|
||||
(let* ((package.json (string-append module "/package.json"))
|
||||
@@ -226,65 +257,67 @@ only after the 'patch-dependencies' phase."
|
||||
(for-each (lambda (dir)
|
||||
(let ((nm (string-append dir "/lib/node_modules")))
|
||||
(for-each (lambda (module)
|
||||
(hash-set! index (module-name module)
|
||||
(string-append "file://" module)))
|
||||
(hash-set! index (module-name module) module))
|
||||
(list-modules nm))))
|
||||
input-paths)
|
||||
index))
|
||||
|
||||
(define* (patch-dependencies #:key inputs #:allow-other-keys)
|
||||
"Replace versions by paths when found among INPUTS in `package.json'."
|
||||
|
||||
(define resolve-dependencies
|
||||
(let ((index (index-modules (map cdr inputs))))
|
||||
(cut map
|
||||
(match-lambda
|
||||
((dependency . version)
|
||||
(cons dependency (hash-ref index dependency version))))
|
||||
<>)))
|
||||
(define index (index-modules (map cdr inputs)))
|
||||
|
||||
(define (resolve key getter)
|
||||
(define (resolve-dependencies dependencies)
|
||||
(map
|
||||
(match-lambda
|
||||
((dependency . version)
|
||||
(cons dependency (hash-ref index dependency version))))
|
||||
dependencies))
|
||||
|
||||
(with-atomic-json-file-replacement
|
||||
(lambda (pkg-meta)
|
||||
(assoc-set! pkg-meta key
|
||||
(resolve-dependencies (getter pkg-meta)))))
|
||||
(fold
|
||||
(lambda (proc pkg-meta) (proc pkg-meta))
|
||||
pkg-meta
|
||||
(list
|
||||
(lambda (pkg-meta)
|
||||
(alist-update pkg-meta "devDependencies" resolve-dependencies))
|
||||
(lambda (pkg-meta)
|
||||
(assoc-set!
|
||||
pkg-meta
|
||||
"dependencies"
|
||||
(resolve-dependencies
|
||||
; Combined "peerDependencies" and "dependencies" dependencies
|
||||
; with "dependencies" taking precedent.
|
||||
(fold
|
||||
(lambda (dependency dependencies)
|
||||
(assoc-set! dependencies (car dependency) (cdr dependency)))
|
||||
(assoc-ref* pkg-meta "peerDependencies" '())
|
||||
(assoc-ref* pkg-meta "dependencies" '())))))))))
|
||||
#t)
|
||||
|
||||
(modify-json
|
||||
(resolve "devDependencies"
|
||||
(lambda (pkg-meta)
|
||||
(or (assoc-ref pkg-meta "devDependencies") '())))
|
||||
(resolve "dependencies"
|
||||
;; Combined "peerDependencies" and "dependencies" dependencies
|
||||
;; with "dependencies" taking precedent.
|
||||
(lambda (pkg-meta)
|
||||
(fold
|
||||
(lambda (dependency dependencies)
|
||||
(assoc-set! dependencies
|
||||
(car dependency) (cdr dependency)))
|
||||
(or (assoc-ref pkg-meta "peerDependencies") '())
|
||||
(or (assoc-ref pkg-meta "dependencies") '()))))))
|
||||
|
||||
(define* (delete-lockfiles #:key lockfiles #:allow-other-keys)
|
||||
"Delete LOCKFILES if they exist."
|
||||
(define* (delete-lockfiles #:key inputs #:allow-other-keys)
|
||||
"Delete 'package-lock.json', 'yarn.lock', and 'npm-shrinkwrap.json', if they
|
||||
exist."
|
||||
(for-each (lambda (pth)
|
||||
(when (file-exists? pth)
|
||||
(delete-file pth)))
|
||||
lockfiles))
|
||||
'("package-lock.json"
|
||||
"yarn.lock"
|
||||
"npm-shrinkwrap.json"))
|
||||
#t)
|
||||
|
||||
(define* (configure #:key inputs #:allow-other-keys)
|
||||
(define* (configure #:key outputs inputs #:allow-other-keys)
|
||||
(let ((npm (string-append (assoc-ref inputs "node") "/bin/npm")))
|
||||
(invoke npm "--offline"
|
||||
"--ignore-scripts"
|
||||
"--install-links"
|
||||
"--no-audit"
|
||||
"install")))
|
||||
(invoke npm "--offline" "--ignore-scripts" "--install-links" "install")
|
||||
#t))
|
||||
|
||||
(define* (build #:key inputs #:allow-other-keys)
|
||||
(let* ((package-meta (call-with-input-file "package.json" json->scm))
|
||||
(scripts (assoc-ref package-meta "scripts")))
|
||||
(if (and scripts (assoc-ref scripts "build"))
|
||||
(let ((package-meta (call-with-input-file "package.json" json->scm)))
|
||||
(if (assoc-ref* (assoc-ref* package-meta "scripts" '()) "build" #f)
|
||||
(let ((npm (string-append (assoc-ref inputs "node") "/bin/npm")))
|
||||
(invoke npm "run" "build"))
|
||||
(format #t "there is no build script to run~%"))))
|
||||
(format #t "there is no build script to run~%"))
|
||||
#t))
|
||||
|
||||
(define* (check #:key tests? inputs test-target #:allow-other-keys)
|
||||
"Run 'npm run TEST-TARGET' if TESTS?"
|
||||
@@ -301,7 +334,8 @@ only after the 'patch-dependencies' phase."
|
||||
"--owner=0"
|
||||
"--group=0"
|
||||
"--numeric-owner"
|
||||
"-czf" "../package.tgz" "."))
|
||||
"-czf" "../package.tgz" ".")
|
||||
#t)
|
||||
|
||||
(define* (install #:key outputs inputs #:allow-other-keys)
|
||||
"Install the node module to the output store item."
|
||||
@@ -313,7 +347,8 @@ only after the 'patch-dependencies' phase."
|
||||
"--loglevel" "info"
|
||||
"--production"
|
||||
"--install-links"
|
||||
"install" "../package.tgz")))
|
||||
"install" "../package.tgz")
|
||||
#t))
|
||||
|
||||
(define* (avoid-node-gyp-rebuild #:key outputs #:allow-other-keys)
|
||||
"Adjust the installed 'package.json' to remove an 'install' script that
|
||||
@@ -341,25 +376,28 @@ would try to run 'node-gyp rebuild'."
|
||||
;; For further details, see:
|
||||
;; - https://docs.npmjs.com/cli/v8/configuring-npm/package-json#default-values
|
||||
;; - https://docs.npmjs.com/cli/v8/using-npm/scripts#best-practices
|
||||
(let* ((installed-package.json
|
||||
(search-input-file outputs (string-append "/lib/node_modules/"
|
||||
(module-name ".")
|
||||
"/package.json")))
|
||||
;; We don't want to use an atomic replacement here, because we often
|
||||
;; don't even need to overwrite this file. Therefore, let's use some
|
||||
;; helpers that we'd otherwise not need.
|
||||
(pkg-meta (call-with-input-file installed-package.json json->scm))
|
||||
(scripts (or (assoc-ref pkg-meta "scripts") '())))
|
||||
(when (equal? "node-gyp rebuild" (assoc-ref scripts "install"))
|
||||
(call-with-output-file installed-package.json
|
||||
(lambda (out)
|
||||
(scm->json
|
||||
(assoc-set! pkg-meta
|
||||
"scripts"
|
||||
(assoc-set! scripts
|
||||
"install"
|
||||
"echo Guix: avoiding node-gyp rebuild"))
|
||||
out))))))
|
||||
(define installed-package.json
|
||||
(search-input-file outputs (string-append "/lib/node_modules/"
|
||||
(module-name ".")
|
||||
"/package.json")))
|
||||
;; We don't want to use an atomic replacement here, because we often don't
|
||||
;; even need to overwrite this file. Therefore, let's use some helpers
|
||||
;; that we'd otherwise not need.
|
||||
(define pkg-meta
|
||||
(call-with-input-file installed-package.json json->scm))
|
||||
(define scripts
|
||||
(assoc-ref* pkg-meta "scripts" '()))
|
||||
|
||||
(when (equal? "node-gyp rebuild" (assoc-ref* scripts "install" #f))
|
||||
(call-with-output-file installed-package.json
|
||||
(lambda (out)
|
||||
(scm->json
|
||||
(assoc-set! pkg-meta
|
||||
"scripts"
|
||||
(assoc-set! scripts
|
||||
"install"
|
||||
"echo Guix: avoiding node-gyp rebuild"))
|
||||
out)))))
|
||||
|
||||
(define %standard-phases
|
||||
(modify-phases gnu:%standard-phases
|
||||
|
||||
+1
-1
@@ -162,7 +162,7 @@ etc/guix-%.service: etc/guix-%.service.in \
|
||||
etc/guix-gc.timer: etc/guix-gc.timer.in \
|
||||
$(top_builddir)/config.status
|
||||
$(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \
|
||||
cp "$@.in" "$@"
|
||||
cp "$<" "$@"
|
||||
|
||||
# The service script for sysvinit.
|
||||
sysvinitservicedir = $(sysconfdir)/init.d
|
||||
|
||||
Reference in New Issue
Block a user